UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

490 lines (271 loc) 14.7 kB
# Technical Changelog - Template All notable technical changes to the laif-ds core will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [laif-ds@0.2.80] ### 🚀 Added - **AppSelect**: Added `selectableAll` prop (multi-select only, default `true`) — renders a tri-state checkbox toggle to the left of the search bar with four icon states (`Square` / `SquareMinus` / `SquareCheck` / `SquareDot`). Both select-all and deselect-all are scoped to the current search filter, preserving out-of-view selections and `fixed: true` items - **DatePicker**: Added range dragging — in range mode, click and drag the `from` or `to` handle to extend or shrink the selected interval; the range automatically inverts when handles cross over ### 🔧 Changed - **AppSelect**: Prevented automatic focus of the search input on popover open via `onOpenAutoFocus` — fixes the mobile soft-keyboard collapsing the visual viewport and pushing the dropdown off-screen - **DatePicker**: Reworked range click behavior — a third click on a completed range now starts a new range from that day instead of resetting to empty; clicking an end-date earlier than the current `from` resets the start anchor to that day ## [laif-ds@0.2.79] ### 🚀 Added - **MarkdownRenderer**: Added support for raw HTML rendering via `rehype-raw`, including native `<u>...</u>` underline tags - **Storybook**: Added dedicated `MarkdownRenderer` stories with underline and full-formatting examples ### 🔧 Changed - **AppEditor**: Switched external underline markdown format from `++text++` to standard HTML `<u>text</u>` while keeping internal conversion compatibility - **AppEditor**: Improved editor layout flexibility with `wrpClassName` and updated content container sizing behavior - **Documentation and Stories**: Updated `AppEditor` docs and stories to reflect `<u>...</u>` underline usage ## [laif-ds@0.2.78] ### 🐛 Fixed - **AppEditor**: Fixed missing underline text save in the component output ## [laif-ds@0.2.77] ### 🚀 Added - **AppCard**: Added new card wrapper component with 4 visual variants (default, elevated, outlined, ghost), support for title, description, body, footer, and actions props with optional header and footer borders, and comprehensive Storybook examples and documentation - **AppForm**: Added column span sizing, configurable icon placement, enhanced search options, and comprehensive TypeScript typing improvements ### 🔧 Changed - **AppForm**: Updated to adopt new form pattern with improved layout, enhanced JSDoc comments, and better type safety across components - **General**: Removed "use client" directives and fixed export formatting across components for better compatibility ## [laif-ds@0.2.76] ### 🚀 Added - **FileUploader**: Added support for archive file types including `zip`, `rar`, `7z`, `tar`, `gz`, and `tgz` - **TruncatedCell**: Added a new component for displaying truncated text content with tooltip expansion and responsive text handling - **DataTable**: Added `rowClassName` prop for custom CSS classes based on row data - **DataTable**: Added `headerClassName` and `cellClassName` support in column meta for custom styling - **DataTable**: Enhanced utils typing with mapped union for better accessor config type inference ## [laif-ds@0.2.75] ### ⚠️ Breaking changes - **DataTable**: the cell value type is now defined better so some small compatibility issues my emerge with strict typing in precedent versions - **general**: Since the introduction of strict EsLint in the repository a big number of components has got updated, some small bugs may emerge ### 🚀 Added - **Storybook**: Added a dedicated changelog documentation page with markdown rendering and release-oriented navigation ### 🔧 Changed - **DataTable**: Updated datatable with new double re-render patch and better filter interactions - **ESLint**: Strengthened linting rules to improve code quality and prevent errors - **Storybook**: Improved story sorting and dev server startup behavior, and disabled telemetry in the core configuration - **Tooling**: Added parallel command execution support with animated status feedback for local development utilities ## [laif-ds@0.2.74] ### 🔧 Changed - **Icon**: Updated the Lucide icon library to the latest version ## [laif-ds@0.2.73] ### 🚀 Added - **FilePreview**: Added `showThumbnail` to disable thumbnail preview ### 🔧 Changed - **AppTimePicker and DatePicker**: Added configurable minute and second step support - **Internal Types**: Improved internal type management - **Action Menu**: Added support for disabling the action menu trigger ## [laif-ds - Storybook Update] ### 🔧 Changed - **Map Docs**: Added Storybook documentation explaining which libraries to use when an interactive map is needed in applications ## [laif-ds@0.2.71] ### 🚀 Added - **AppTimePicker**: Added a new component for selecting hours, minutes and seconds ### 🔧 Changed - **DatePicker**: Added DateTimePicker functionality through the `showTime` prop ## [laif-ds@0.2.70] ### 🐛 Fixed - **Textarea**: Fixed long content handling ### 🔧 Changed - **Kanban**: Improved UI and UX ## [laif-ds@0.2.69] ### 🚀 Added - **Toaster**: Added a new toaster component based on Sonner ### 🐛 Fixed - **AppDialog**: Fixed the console warning shown when title or description is not provided ## [laif-ds@0.2.68] ### 🚀 Added - **AppForm**: Added `datePickerProps` to customize DatePicker options inside the form ## [laif-ds@0.2.67] ### 🚀 Added - **Calendar**: Added range support ### 🔧 Changed - **Documentation**: Updated the calendar range documentation ## [laif-ds@0.2.66] ### 🚀 Added - **AppSelect**: Added `renderValue` for custom selected value rendering - **AppSelect**: Added `noGroupLabel` to customize the label for ungrouped options - **AppCheckbox**: Added a new component for quickly building checkbox groups - **DatePicker and Calendar**: Added `minDate` and `maxDate` constraints for selectable date ranges ### � Changed - **AppSelect**: Removed `groupBy` - **AppSelect**: On open, options now scroll to the selected option - **DatePicker and Calendar**: Reduced the default available year range to ±50 years from today ## [laif-ds@0.2.65] ### 🔧 Changed - **DataTable**: Added empty / not empty operators in all column filters ### ⚠️ Breaking Changes - **Upstream Requirement**: Use this version only after updating to the upstream release that fixes `eq_null` and `n_eq_null` ## [laif-ds@0.2.64] ### 🚀 Added - **Testing and Accessibility**: Added support for `id` and `data-testid` on interactive library components ### 🔧 Changed - **Interactive Components**: Updated `AppSelect`, `AsyncSelect`, `DatePicker`, `AppRadioGroup`, `InputSelector`, `FileUploader`, `DataTable`, `MessageInput` and `AppStepper` - **Documentation**: Listed components that already support `id` and `data-testid` through spread props ## [laif-ds@0.2.63] ### 🐛 Fixed - **DataTable**: Center-aligned the clear button inside the searchbar input ## [laif-ds@0.2.62] ### 🚀 Added - **AppDialog**: Added the new component for simpler dialog implementation - **DataTable**: Added support for custom components inside column headers ## [laif-ds@0.2.61] ### 🔧 Changed - **AppSelect and AsyncSelect**: Improved dropdown placement to open above or below depending on available space ## [laif-ds@0.2.60] ### 🔧 Changed - **Calendar**: Added search to the month and year selectors ## [laif-ds@0.2.59] ### 🔧 Changed - **AppStepper**: Exported the required component types ## [laif-ds@0.2.58] ### 🔧 Changed - **DataTable**: Increased horizontal scrollbar `z-index` to avoid overlap with the last row - **DataTable**: Added `columnVisibility` support inside `initialState` ## [laif-ds@0.2.57] ### 🐛 Fixed - **AsyncSelect**: Fixed missing classes in some UI states - **AsyncSelect**: Fixed coexistence between initial options and fetched options ## [laif-ds@0.2.54] ### 🚀 Added - **AppTooltip**: Added a tooltip component with variant support aligned with the rest of the library ### 🐛 Fixed - **FilePreview**: Fixed action menu alignment to the right side of the title area ## [laif-ds@0.2.53] ### 🐛 Fixed - **UI Alignment**: Fixed focus and label alignment issues ## [laif-ds@0.2.52] ### 🐛 Fixed - **Button**: Fixed shrink effect ## [laif-ds@0.2.48] ### 🚀 Added - **AppKanban**: Released the first version of the component - **AppForm**: Added `async` and `async-multiple` modes ### 🔧 Changed - **AsyncSelect**: Added debounce support with custom delay support and `initialOptions` ### ⚠️ Breaking Changes - **AsyncSelect API**: Removed `preload`, `filterFn` and `width` - **AsyncSelect API**: Renamed `getOptionValue` to `resolveOptionValue` - **AsyncSelect API**: Renamed `getDisplayValue` to `renderSelectedValue` - **AsyncSelect API**: Renamed `renderOption` to `renderOptionItems` ## [laif-ds@0.2.47] ### 🔧 Changed - **AppForm**: Added support for defining input types externally ## [laif-ds@0.2.46] ### 🔧 Changed - **DatePicker**: Set Italian as the default language while keeping it configurable - **AppForm**: Added `showSubmitButton` - **AppForm**: Exported the items interface ## [laif-ds@0.2.45] ### 🔧 Changed - **Documentation**: Added auto-generated docs for all `laif-ds` components under `/node_modules/laif-ds/dist/agent-docs` ## [laif-ds@0.2.44] ### 🚀 Added - **Spinner**: Added a new spinner component with size, variant and `className` support ## [laif-ds@0.2.43] ### 🚀 Added - **DataTable Utilities**: Added simplified utilities for column definition and state management - **DataTable Utilities**: Added visual indicators for filterable, sortable and searchable columns - **DataTable Utilities**: Added support for duplicate accessors, display-only columns, calculated columns and automatic unique IDs ## [laif-ds@0.2.42] ### 🐛 Fixed - **DataTable**: Fixed a rare server mode loading loop caused by table loading state interaction ## [laif-ds@0.2.39] ### 🔧 Changed - **DatePicker**: Set the default upper year selector limit to 100 years in the future ## [laif-ds@0.2.38] ### 🚀 Added - **DatePicker**: Added `locale`, `initialCalendarMonth` and `customCalendarProps` ### 🔧 Changed - **DatePicker**: The calendar now opens on the selected day by default - **DatePicker**: Added default month and year selectors ## [laif-ds@0.2.37] ### 🚀 Added - **Input**: Added `showValidMessage`, `showValidityMessage` and `validityI18n` - **Storybook**: Added a showcase story for validation behavior ## [laif-ds@0.2.36] ### 🚀 Added - **Badge**: Added `iconLeft`, `iconRight` and `disabled` - **Badge**: Added new variants including `success` and `warning` ### ⚠️ Breaking Changes - **CSS Variables**: To use `success` and `warning` variants immediately, update the required `shadcn.css` variables in the template or upstream them first ## [laif-ds@0.2.35] ### 🚀 Added - **Input**: Added `startContent` and `endContent` support for custom React nodes - **Input**: Added native validation support through the HTML5 validation API - **Input**: Added `errorMessage`, internal validation state and ARIA improvements ## [laif-ds@0.2.34] ### 🚀 Added - **Button**: Added the `outline-destructive` variant and improved IntelliSense for variants and sizes ### 🔧 Changed - **Checkbox**: Updated cursor behavior to `pointer` when enabled - **Checkbox**: Updated border color for consistency with the radio button and improved contrast ## [laif-ds@0.2.32] ### 🚀 Added - **AppRadioGroup**: Added a new radio group component with icon, layout, orientation, required indicator, disabled option and TypeScript support - **TextArea**: Added `wrpClassName` ### 🔧 Changed - **RadioGroup**: Deprecated in favor of `AppRadioGroup` - **Storybook**: Deprecated components are now visible in Storybook ## [laif-ds@0.2.30] ### 🐛 Fixed - **Checkbox**: Fixed incorrect checkmark color ## [laif-ds@0.2.28 / 0.2.29] ### 🔧 Changed - **Documentation**: Updated documentation only, with no component logic changes ## [laif-ds@0.2.26] ### 🔧 Changed - **Documentation**: Updated docs pages with no component logic changes ## [laif-ds@0.2.24] ### 🚀 Added - **Confirmer**: Added a `destructive` variant for delete flows - **Button**: Added new ghost variants - **AppSelect**: Added `isSingleSelectClearable` for single-select clearing ### 🐛 Fixed - **AppSelect**: Fixed HTML label rendering ### 🔧 Changed - **DataTable**: Refactored the component and published updated documentation ## [laif-ds@0.2.21] ### 🚀 Added - **Stepper**: Added `Stepper` and `AppStepper` ## [laif-ds@0.2.15] ### 🐛 Fixed - **AppSelect**: Fixed options overflow when used inside `Dialog` ## [laif-ds@0.2.14] ### 🚀 Added - **File Preview Modal**: Added `previewFileModal` utility for modal previews - **File Preview Modal**: Added `FilePreviewer` integration at layout level ## [laif-ds@0.2.13] ### 🐛 Fixed - **AppSelect**: Fixed options overflow when used inside `Drawer` or `Sheet` ## [laif-ds@0.2.12] ### ⚠️ Breaking Changes - **Select Components**: Deprecated `AppMultipleSelectDropdown` and `MultipleSelector` in favor of `AppSelect` ### 🔧 Changed - **AppSelect**: Documented supported value types and main props ## [laif-ds@0.2.8] ### 🚀 Added - **FileUploader**: Added `maxTotalSize` and `maxFiles` ## [laif-ds@0.2.6] ### 🚀 Added - **File Management**: Added `FileUploader` and `FilePreview` ## [laif-ds@0.2.5] ### 🔧 Changed - **MultipleSelector**: Updated default `placeholder` to `Cerca...` - **MultipleSelector**: Set `hidePlaceholderWhenSelected` default to `true` ## [laif-ds@0.2.4] ### ⚠️ Breaking Changes - **AppMultipleSelectDropdown**: Removed `cancelButtonLabel` - **AppMultipleSelectDropdown**: Renamed `filterable` to `searchable` - **AppMultipleSelectDropdown**: Renamed `filterPlaceholder` to `searchPlaceholder` ### 🔧 Changed - **AppMultipleSelectDropdown**: Enabled `searchable` by default --- ## Version History For older versions and detailed commit history, please refer to the Git repository history. ## Contributing When adding new features or making changes: 1. Update this changelog with your changes 2. Follow the format: Added/Changed/Fixed/Breaking Changes 3. Include migration instructions for breaking changes 4. Update version number in `version.laif-template.txt`