@simplysm/solid 13.0.69 → 13.0.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +168 -195
- package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/data/calendar/Calendar.js +15 -2
- package/dist/components/data/calendar/Calendar.js.map +2 -2
- package/dist/components/data/kanban/KanbanContext.js +2 -2
- package/dist/components/data/kanban/KanbanContext.js.map +1 -1
- package/dist/components/data/list/List.d.ts +8 -8
- package/dist/components/data/list/ListContext.d.ts +1 -1
- package/dist/components/data/list/ListItem.d.ts +15 -15
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +6 -4
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/DataSheetConfigDialog.js +8 -8
- package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
- package/dist/components/data/sheet/types.d.ts +4 -4
- package/dist/components/data/sheet/types.d.ts.map +1 -1
- package/dist/components/disclosure/Collapse.d.ts +4 -4
- package/dist/components/disclosure/Dialog.d.ts +24 -24
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +7 -2
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/DialogContext.d.ts +25 -25
- package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
- package/dist/components/disclosure/DialogContext.js +1 -1
- package/dist/components/disclosure/DialogContext.js.map +1 -1
- package/dist/components/disclosure/DialogInstanceContext.d.ts +7 -7
- package/dist/components/disclosure/DialogInstanceContext.d.ts.map +1 -1
- package/dist/components/disclosure/DialogProvider.d.ts +3 -3
- package/dist/components/disclosure/Dropdown.d.ts +26 -24
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js +24 -8
- package/dist/components/disclosure/Dropdown.js.map +2 -2
- package/dist/components/disclosure/Tabs.js +1 -1
- package/dist/components/disclosure/Tabs.js.map +1 -1
- package/dist/components/disclosure/dialogZIndex.d.ts +9 -7
- package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
- package/dist/components/disclosure/dialogZIndex.js +4 -0
- package/dist/components/disclosure/dialogZIndex.js.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +34 -22
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +48 -33
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crudRegistry.d.ts +16 -0
- package/dist/components/features/crudRegistry.d.ts.map +1 -0
- package/dist/components/features/crudRegistry.js +37 -0
- package/dist/components/features/crudRegistry.js.map +6 -0
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +14 -14
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +27 -9
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/permission-table/PermissionTable.d.ts +3 -3
- package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
- package/dist/components/features/permission-table/PermissionTable.js +74 -85
- package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +12 -12
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +10 -6
- package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +10 -10
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts +23 -15
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +191 -65
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +15 -0
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +1 -0
- package/dist/components/features/shared-data/SharedDataSelectListContext.js +27 -0
- package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +6 -0
- package/dist/components/feedback/Progress.d.ts +1 -1
- package/dist/components/feedback/Progress.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
- package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContext.d.ts +11 -11
- package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContext.js +1 -1
- package/dist/components/feedback/busy/BusyContext.js.map +1 -1
- package/dist/components/feedback/busy/BusyProvider.d.ts +6 -6
- package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBanner.js +7 -3
- package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
- package/dist/components/feedback/notification/NotificationBell.js +2 -2
- package/dist/components/feedback/notification/NotificationBell.js.map +1 -1
- package/dist/components/feedback/notification/NotificationContext.d.ts +22 -22
- package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationContext.js +1 -1
- package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
- package/dist/components/feedback/notification/NotificationProvider.d.ts +5 -5
- package/dist/components/feedback/notification/NotificationProvider.js +1 -1
- package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
- package/dist/components/feedback/print/PrintContext.js +1 -1
- package/dist/components/feedback/print/PrintContext.js.map +1 -1
- package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
- package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
- package/dist/components/form-control/ThemeToggle.d.ts +7 -7
- package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
- package/dist/components/form-control/ThemeToggle.js +3 -3
- package/dist/components/form-control/checkbox/Checkbox.js +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.js +1 -1
- package/dist/components/form-control/checkbox/Radio.js +1 -1
- package/dist/components/form-control/checkbox/RadioGroup.js +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.d.ts +12 -12
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +22 -22
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +2 -2
- package/dist/components/form-control/combobox/ComboboxContext.d.ts +4 -4
- package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +1 -1
- package/dist/components/form-control/combobox/ComboboxContext.js +1 -1
- package/dist/components/form-control/combobox/ComboboxContext.js.map +1 -1
- package/dist/components/form-control/combobox/ComboboxItem.d.ts +3 -3
- package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts +14 -14
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +20 -9
- package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
- package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
- package/dist/components/form-control/editor/EditorToolbar.js +65 -20
- package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
- package/dist/components/form-control/editor/RichTextEditor.d.ts +6 -6
- package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/form-control/editor/RichTextEditor.js +1 -1
- package/dist/components/form-control/editor/editor.css +5 -5
- package/dist/components/form-control/field/DatePicker.d.ts +22 -22
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +4 -4
- package/dist/components/form-control/field/DatePicker.js.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.d.ts +21 -21
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +4 -4
- package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
- package/dist/components/form-control/field/FieldPlaceholder.d.ts +1 -1
- package/dist/components/form-control/field/FieldPlaceholder.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.d.ts +23 -23
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +4 -4
- package/dist/components/form-control/field/NumberInput.js.map +1 -1
- package/dist/components/form-control/field/TextInput.d.ts +25 -25
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +5 -5
- package/dist/components/form-control/field/TextInput.js.map +1 -1
- package/dist/components/form-control/field/Textarea.d.ts +19 -19
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +4 -4
- package/dist/components/form-control/field/Textarea.js.map +1 -1
- package/dist/components/form-control/field/TimePicker.d.ts +20 -20
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +4 -4
- package/dist/components/form-control/field/TimePicker.js.map +1 -1
- package/dist/components/form-control/numpad/Numpad.d.ts +11 -11
- package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.d.ts +26 -26
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +34 -23
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/select/SelectContext.d.ts +7 -7
- package/dist/components/form-control/select/SelectContext.d.ts.map +1 -1
- package/dist/components/form-control/select/SelectContext.js +1 -1
- package/dist/components/form-control/select/SelectContext.js.map +1 -1
- package/dist/components/form-control/select/SelectItem.d.ts +4 -4
- package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
- package/dist/components/form-control/state-preset/StatePreset.js +8 -8
- package/dist/components/form-control/state-preset/StatePreset.js.map +1 -1
- package/dist/components/layout/FormTable.js +4 -4
- package/dist/components/layout/sidebar/Sidebar.d.ts +5 -5
- package/dist/components/layout/sidebar/SidebarContainer.d.ts +11 -11
- package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
- package/dist/components/layout/sidebar/SidebarContainer.js +6 -1
- package/dist/components/layout/sidebar/SidebarContainer.js.map +2 -2
- package/dist/components/layout/sidebar/SidebarContext.d.ts +7 -7
- package/dist/components/layout/sidebar/SidebarContext.js +1 -1
- package/dist/components/layout/sidebar/SidebarContext.js.map +1 -1
- package/dist/components/layout/sidebar/SidebarMenu.d.ts +11 -11
- package/dist/components/layout/sidebar/SidebarUser.d.ts +14 -14
- package/dist/components/layout/topbar/Topbar.d.ts +6 -6
- package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
- package/dist/components/layout/topbar/Topbar.js +11 -6
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/components/layout/topbar/TopbarContainer.d.ts +6 -6
- package/dist/components/layout/topbar/TopbarContext.js +2 -2
- package/dist/components/layout/topbar/TopbarContext.js.map +1 -1
- package/dist/components/layout/topbar/TopbarMenu.d.ts +11 -11
- package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
- package/dist/components/layout/topbar/TopbarMenu.js +5 -1
- package/dist/components/layout/topbar/TopbarMenu.js.map +2 -2
- package/dist/components/layout/topbar/TopbarUser.d.ts +9 -9
- package/dist/directives/ripple.d.ts +5 -5
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js +7 -3
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/helpers/createHmrSafeContext.d.ts +3 -0
- package/dist/helpers/createHmrSafeContext.d.ts.map +1 -0
- package/dist/helpers/createHmrSafeContext.js +10 -0
- package/dist/helpers/createHmrSafeContext.js.map +6 -0
- package/dist/helpers/createSlotComponent.d.ts +3 -3
- package/dist/helpers/mergeStyles.d.ts +8 -8
- package/dist/hooks/createControllableSignal.d.ts +10 -10
- package/dist/hooks/createControllableStore.d.ts +6 -6
- package/dist/hooks/createIMEHandler.d.ts +7 -7
- package/dist/hooks/createMountTransition.d.ts +4 -4
- package/dist/hooks/createSelectionGroup.d.ts.map +1 -1
- package/dist/hooks/createSelectionGroup.js +4 -3
- package/dist/hooks/createSelectionGroup.js.map +2 -2
- package/dist/hooks/createSlotSignal.d.ts +2 -2
- package/dist/hooks/useLocalStorage.d.ts +11 -11
- package/dist/hooks/useLogger.d.ts +1 -1
- package/dist/hooks/useLogger.d.ts.map +1 -1
- package/dist/hooks/useLogger.js +1 -1
- package/dist/hooks/useLogger.js.map +1 -1
- package/dist/hooks/useRouterLink.d.ts +10 -10
- package/dist/hooks/useRouterLink.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/ClipboardProvider.d.ts +5 -5
- package/dist/providers/ConfigContext.d.ts +6 -6
- package/dist/providers/ConfigContext.js +2 -2
- package/dist/providers/ConfigContext.js.map +1 -1
- package/dist/providers/ErrorLoggerProvider.d.ts +3 -3
- package/dist/providers/LoggerContext.d.ts +13 -13
- package/dist/providers/PwaUpdateProvider.d.ts +4 -4
- package/dist/providers/PwaUpdateProvider.js +2 -2
- package/dist/providers/PwaUpdateProvider.js.map +1 -1
- package/dist/providers/ServiceClientContext.d.ts +8 -8
- package/dist/providers/ServiceClientContext.d.ts.map +1 -1
- package/dist/providers/ServiceClientContext.js +1 -1
- package/dist/providers/ServiceClientContext.js.map +1 -1
- package/dist/providers/ServiceClientProvider.d.ts +6 -6
- package/dist/providers/ServiceClientProvider.js +7 -7
- package/dist/providers/ServiceClientProvider.js.map +1 -1
- package/dist/providers/SyncStorageContext.d.ts +14 -14
- package/dist/providers/SystemProvider.d.ts.map +1 -1
- package/dist/providers/SystemProvider.js +21 -16
- package/dist/providers/SystemProvider.js.map +2 -2
- package/dist/providers/ThemeContext.d.ts +20 -20
- package/dist/providers/ThemeContext.d.ts.map +1 -1
- package/dist/providers/ThemeContext.js +1 -1
- package/dist/providers/ThemeContext.js.map +1 -1
- package/dist/providers/i18n/I18nContext.d.ts +44 -0
- package/dist/providers/i18n/I18nContext.d.ts.map +1 -0
- package/dist/providers/i18n/I18nContext.js +73 -0
- package/dist/providers/i18n/I18nContext.js.map +6 -0
- package/dist/providers/i18n/I18nContext.types.d.ts +28 -0
- package/dist/providers/i18n/I18nContext.types.d.ts.map +1 -0
- package/dist/providers/i18n/I18nContext.types.js +1 -0
- package/dist/providers/i18n/I18nContext.types.js.map +6 -0
- package/dist/providers/i18n/i18nUtils.d.ts +18 -0
- package/dist/providers/i18n/i18nUtils.d.ts.map +1 -0
- package/dist/providers/i18n/i18nUtils.js +25 -0
- package/dist/providers/i18n/i18nUtils.js.map +6 -0
- package/dist/providers/i18n/locales/en.d.ts +163 -0
- package/dist/providers/i18n/locales/en.d.ts.map +1 -0
- package/dist/providers/i18n/locales/en.js +165 -0
- package/dist/providers/i18n/locales/en.js.map +6 -0
- package/dist/providers/i18n/locales/ko.d.ts +163 -0
- package/dist/providers/i18n/locales/ko.d.ts.map +1 -0
- package/dist/providers/i18n/locales/ko.js +165 -0
- package/dist/providers/i18n/locales/ko.js.map +6 -0
- package/dist/providers/shared-data/SharedDataChangeEvent.d.ts +4 -4
- package/dist/providers/shared-data/SharedDataContext.d.ts +28 -28
- package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataContext.js +1 -1
- package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts +9 -9
- package/dist/providers/shared-data/SharedDataProvider.js +4 -4
- package/dist/providers/shared-data/SharedDataProvider.js.map +1 -1
- package/package.json +9 -8
- package/src/components/data/calendar/Calendar.tsx +10 -4
- package/src/components/data/kanban/Kanban.tsx +14 -14
- package/src/components/data/kanban/KanbanContext.ts +3 -3
- package/src/components/data/list/List.tsx +10 -10
- package/src/components/data/list/ListContext.ts +1 -1
- package/src/components/data/list/ListItem.styles.ts +8 -8
- package/src/components/data/list/ListItem.tsx +15 -15
- package/src/components/data/sheet/DataSheet.styles.ts +22 -22
- package/src/components/data/sheet/DataSheet.tsx +52 -48
- package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +9 -9
- package/src/components/data/sheet/sheetUtils.ts +7 -7
- package/src/components/data/sheet/types.ts +16 -16
- package/src/components/disclosure/Collapse.tsx +11 -11
- package/src/components/disclosure/Dialog.tsx +60 -57
- package/src/components/disclosure/DialogContext.ts +26 -26
- package/src/components/disclosure/DialogInstanceContext.ts +7 -7
- package/src/components/disclosure/DialogProvider.tsx +5 -5
- package/src/components/disclosure/Dropdown.tsx +89 -75
- package/src/components/disclosure/Tabs.tsx +1 -1
- package/src/components/disclosure/dialogZIndex.ts +16 -11
- package/src/components/display/Echarts.tsx +4 -4
- package/src/components/features/address/AddressSearch.tsx +2 -2
- package/src/components/features/crud-detail/CrudDetail.tsx +34 -21
- package/src/components/features/crud-detail/CrudDetailAfter.tsx +1 -1
- package/src/components/features/crud-detail/CrudDetailBefore.tsx +1 -1
- package/src/components/features/crud-detail/CrudDetailTools.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheet.tsx +52 -40
- package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheetFilter.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheetHeader.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
- package/src/components/features/crudRegistry.ts +60 -0
- package/src/components/features/data-select-button/DataSelectButton.tsx +34 -32
- package/src/components/features/permission-table/PermissionTable.tsx +70 -64
- package/src/components/features/shared-data/SharedDataSelect.tsx +24 -22
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +10 -10
- package/src/components/features/shared-data/SharedDataSelectList.tsx +231 -59
- package/src/components/features/shared-data/SharedDataSelectListContext.ts +39 -0
- package/src/components/feedback/Progress.tsx +1 -1
- package/src/components/feedback/busy/BusyContainer.tsx +6 -6
- package/src/components/feedback/busy/BusyContext.ts +12 -12
- package/src/components/feedback/busy/BusyProvider.tsx +6 -6
- package/src/components/feedback/notification/NotificationBanner.tsx +3 -1
- package/src/components/feedback/notification/NotificationBell.tsx +4 -4
- package/src/components/feedback/notification/NotificationContext.ts +28 -28
- package/src/components/feedback/notification/NotificationProvider.tsx +9 -9
- package/src/components/feedback/print/PrintContext.ts +1 -1
- package/src/components/form-control/Button.tsx +1 -1
- package/src/components/form-control/DropdownTrigger.styles.ts +1 -1
- package/src/components/form-control/Invalid.tsx +5 -5
- package/src/components/form-control/ThemeToggle.tsx +10 -10
- package/src/components/form-control/checkbox/Checkbox.styles.ts +8 -8
- package/src/components/form-control/checkbox/Checkbox.tsx +2 -2
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +1 -1
- package/src/components/form-control/checkbox/Radio.tsx +2 -2
- package/src/components/form-control/checkbox/RadioGroup.tsx +1 -1
- package/src/components/form-control/color-picker/ColorPicker.tsx +17 -17
- package/src/components/form-control/combobox/Combobox.tsx +55 -55
- package/src/components/form-control/combobox/ComboboxContext.ts +5 -5
- package/src/components/form-control/combobox/ComboboxItem.tsx +3 -3
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +40 -26
- package/src/components/form-control/editor/EditorToolbar.tsx +52 -50
- package/src/components/form-control/editor/RichTextEditor.tsx +16 -16
- package/src/components/form-control/editor/editor.css +5 -5
- package/src/components/form-control/field/DatePicker.tsx +39 -39
- package/src/components/form-control/field/DateTimePicker.tsx +38 -38
- package/src/components/form-control/field/Field.styles.ts +11 -11
- package/src/components/form-control/field/FieldPlaceholder.tsx +1 -1
- package/src/components/form-control/field/NumberInput.tsx +63 -63
- package/src/components/form-control/field/TextInput.tsx +48 -48
- package/src/components/form-control/field/Textarea.tsx +32 -32
- package/src/components/form-control/field/TimePicker.tsx +37 -37
- package/src/components/form-control/numpad/Numpad.tsx +26 -26
- package/src/components/form-control/select/Select.tsx +82 -86
- package/src/components/form-control/select/SelectContext.ts +8 -8
- package/src/components/form-control/select/SelectItem.tsx +5 -5
- package/src/components/form-control/state-preset/StatePreset.tsx +13 -13
- package/src/components/layout/FormTable.tsx +4 -4
- package/src/components/layout/sidebar/Sidebar.tsx +8 -8
- package/src/components/layout/sidebar/SidebarContainer.tsx +19 -17
- package/src/components/layout/sidebar/SidebarContext.ts +8 -8
- package/src/components/layout/sidebar/SidebarMenu.tsx +19 -19
- package/src/components/layout/sidebar/SidebarUser.tsx +14 -14
- package/src/components/layout/topbar/Topbar.tsx +15 -13
- package/src/components/layout/topbar/TopbarContainer.tsx +6 -6
- package/src/components/layout/topbar/TopbarContext.ts +2 -2
- package/src/components/layout/topbar/TopbarMenu.tsx +18 -16
- package/src/components/layout/topbar/TopbarUser.tsx +9 -9
- package/src/directives/ripple.ts +8 -8
- package/src/helpers/createAppStructure.ts +15 -8
- package/src/helpers/createHmrSafeContext.ts +8 -0
- package/src/helpers/createSlotComponent.ts +4 -4
- package/src/helpers/mergeStyles.ts +11 -11
- package/src/hooks/createControllableSignal.ts +11 -11
- package/src/hooks/createControllableStore.ts +8 -8
- package/src/hooks/createIMEHandler.ts +7 -7
- package/src/hooks/createMountTransition.ts +4 -4
- package/src/hooks/createSelectionGroup.tsx +5 -3
- package/src/hooks/createSlotSignal.ts +2 -2
- package/src/hooks/useLocalStorage.ts +13 -13
- package/src/hooks/useLogger.ts +2 -2
- package/src/hooks/useRouterLink.ts +15 -15
- package/src/index.ts +4 -3
- package/src/providers/ClipboardProvider.tsx +19 -19
- package/src/providers/ConfigContext.tsx +8 -8
- package/src/providers/ErrorLoggerProvider.tsx +3 -3
- package/src/providers/LoggerContext.tsx +13 -13
- package/src/providers/PwaUpdateProvider.tsx +6 -6
- package/src/providers/ServiceClientContext.ts +9 -9
- package/src/providers/ServiceClientProvider.tsx +15 -15
- package/src/providers/SyncStorageContext.tsx +15 -15
- package/src/providers/SystemProvider.tsx +15 -12
- package/src/providers/ThemeContext.tsx +26 -26
- package/src/providers/i18n/I18nContext.tsx +129 -0
- package/src/providers/i18n/I18nContext.types.ts +30 -0
- package/src/providers/i18n/i18nUtils.ts +38 -0
- package/src/providers/i18n/locales/en.ts +161 -0
- package/src/providers/i18n/locales/ko.ts +161 -0
- package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -4
- package/src/providers/shared-data/SharedDataContext.ts +29 -29
- package/src/providers/shared-data/SharedDataProvider.tsx +21 -21
- package/src/styles/patterns.styles.ts +6 -6
- package/src/styles/tokens.styles.ts +5 -5
- package/tailwind.config.ts +1 -1
- package/tailwind.css +4 -4
- package/tests/components/data/List.spec.tsx +689 -0
- package/tests/components/data/Pagination.spec.tsx +336 -0
- package/tests/components/data/Table.spec.tsx +55 -0
- package/tests/components/data/kanban/Kanban.selection.spec.tsx +213 -0
- package/tests/components/data/sheet/DataSheet.spec.tsx +645 -0
- package/tests/components/disclosure/Collapse.spec.tsx +173 -0
- package/tests/components/disclosure/Dialog.spec.tsx +438 -0
- package/tests/components/disclosure/DialogProvider.spec.tsx +142 -0
- package/tests/components/disclosure/Dropdown.spec.tsx +333 -0
- package/tests/components/disclosure/Tabs.spec.tsx +220 -0
- package/tests/components/disclosure/dialogZIndex.spec.ts +45 -0
- package/tests/components/display/Alert.spec.tsx +47 -0
- package/tests/components/display/Barcode.spec.tsx +61 -0
- package/tests/components/display/Card.spec.tsx +41 -0
- package/tests/components/display/Link.spec.tsx +62 -0
- package/tests/components/display/Tag.spec.tsx +47 -0
- package/tests/components/features/address/AddressSearch.spec.tsx +45 -0
- package/tests/components/features/crud-detail/CrudDetail.spec.tsx +537 -0
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +491 -0
- package/tests/components/features/crudRegistry.spec.ts +119 -0
- package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +482 -0
- package/tests/components/features/permission-table/PermissionTable.spec.tsx +288 -0
- package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +448 -0
- package/tests/components/feedback/busy/BusyContainer.spec.tsx +80 -0
- package/tests/components/feedback/notification/LiveRegion.spec.tsx +52 -0
- package/tests/components/feedback/notification/NotificationBanner.spec.tsx +187 -0
- package/tests/components/feedback/notification/NotificationBell.spec.tsx +226 -0
- package/tests/components/feedback/notification/NotificationContext.spec.tsx +362 -0
- package/tests/components/feedback/print/Print.spec.tsx +45 -0
- package/tests/components/form-control/Button.spec.tsx +119 -0
- package/tests/components/form-control/Invalid.spec.tsx +131 -0
- package/tests/components/form-control/checkbox/Checkbox.spec.tsx +137 -0
- package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +108 -0
- package/tests/components/form-control/checkbox/Radio.spec.tsx +138 -0
- package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +108 -0
- package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +94 -0
- package/tests/components/form-control/combobox/Combobox.spec.tsx +253 -0
- package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +88 -0
- package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +208 -0
- package/tests/components/form-control/field/DatePicker.spec.tsx +381 -0
- package/tests/components/form-control/field/DateTimePicker.spec.tsx +383 -0
- package/tests/components/form-control/field/NumberInput.spec.tsx +371 -0
- package/tests/components/form-control/field/TextInput.spec.tsx +341 -0
- package/tests/components/form-control/field/Textarea.spec.tsx +224 -0
- package/tests/components/form-control/field/TimePicker.spec.tsx +315 -0
- package/tests/components/form-control/numpad/Numpad.spec.tsx +248 -0
- package/tests/components/form-control/select/Select.spec.tsx +676 -0
- package/tests/components/form-control/select/SelectItem.spec.tsx +174 -0
- package/tests/components/layout/FormGroup.spec.tsx +104 -0
- package/tests/components/layout/FormTable.spec.tsx +43 -0
- package/tests/components/layout/sidebar/Sidebar.spec.tsx +192 -0
- package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +261 -0
- package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +219 -0
- package/tests/components/layout/sidebar/SidebarUser.spec.tsx +133 -0
- package/tests/components/layout/topbar/TopbarActions.spec.tsx +77 -0
- package/tests/components/layout/topbar/TopbarContainer.spec.tsx +38 -0
- package/tests/components/layout/topbar/createTopbarActions.spec.tsx +66 -0
- package/tests/directives/ripple.spec.tsx +130 -0
- package/tests/helpers/createAppStructure.spec.tsx +843 -0
- package/tests/helpers/mergeStyles.spec.ts +172 -0
- package/tests/hooks/createControllableSignal.spec.ts +194 -0
- package/tests/hooks/createIMEHandler.spec.ts +80 -0
- package/tests/hooks/createMountTransition.spec.ts +86 -0
- package/tests/hooks/useLocalStorage.spec.tsx +223 -0
- package/tests/hooks/useLogger.spec.tsx +116 -0
- package/tests/hooks/usePrint.spec.tsx +134 -0
- package/tests/hooks/useRouterLink.spec.tsx +183 -0
- package/tests/hooks/useSyncConfig.spec.tsx +304 -0
- package/tests/providers/ClipboardProvider.spec.tsx +20 -0
- package/tests/providers/ConfigContext.spec.tsx +42 -0
- package/tests/providers/ErrorLoggerProvider.spec.tsx +73 -0
- package/tests/providers/LoggerContext.spec.tsx +76 -0
- package/tests/providers/PwaUpdateProvider.spec.tsx +22 -0
- package/tests/providers/ServiceClientContext.spec.tsx +88 -0
- package/tests/providers/SyncStorageContext.spec.tsx +77 -0
- package/tests/providers/i18n/I18nContext.spec.tsx +110 -0
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +401 -0
- package/tests/vitest-env.d.ts +1 -0
- package/dist/components/form-control/select-list/SelectList.d.ts +0 -54
- package/dist/components/form-control/select-list/SelectList.d.ts.map +0 -1
- package/dist/components/form-control/select-list/SelectList.js +0 -280
- package/dist/components/form-control/select-list/SelectList.js.map +0 -6
- package/dist/components/form-control/select-list/SelectListContext.d.ts +0 -13
- package/dist/components/form-control/select-list/SelectListContext.d.ts.map +0 -1
- package/dist/components/form-control/select-list/SelectListContext.js +0 -14
- package/dist/components/form-control/select-list/SelectListContext.js.map +0 -6
- package/docs/data-components.md +0 -782
- package/docs/disclosure.md +0 -254
- package/docs/display.md +0 -153
- package/docs/feedback.md +0 -238
- package/docs/form-controls.md +0 -1068
- package/docs/helpers.md +0 -54
- package/docs/hooks.md +0 -588
- package/docs/layout.md +0 -384
- package/docs/providers.md +0 -211
- package/docs/styling.md +0 -184
- package/src/components/form-control/select-list/SelectList.tsx +0 -385
- package/src/components/form-control/select-list/SelectListContext.ts +0 -23
|
@@ -3,6 +3,7 @@ import { DateOnly } from "@simplysm/core-common";
|
|
|
3
3
|
import clsx from "clsx";
|
|
4
4
|
import { twMerge } from "tailwind-merge";
|
|
5
5
|
import { createControllableSignal } from "../../../hooks/createControllableSignal";
|
|
6
|
+
import { useI18nOptional } from "../../../providers/i18n/I18nContext";
|
|
6
7
|
|
|
7
8
|
export interface CalendarProps<TValue> extends Omit<
|
|
8
9
|
JSX.HTMLAttributes<HTMLTableElement>,
|
|
@@ -17,8 +18,6 @@ export interface CalendarProps<TValue> extends Omit<
|
|
|
17
18
|
minDaysInFirstWeek?: number;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
const WEEKS = ["일", "월", "화", "수", "목", "금", "토"];
|
|
21
|
-
|
|
22
21
|
const baseClass = clsx(
|
|
23
22
|
"w-full",
|
|
24
23
|
"border-separate border-spacing-0",
|
|
@@ -63,9 +62,16 @@ function CalendarBase<TValue>(props: CalendarProps<TValue>) {
|
|
|
63
62
|
onChange: () => local.onYearMonthChange,
|
|
64
63
|
});
|
|
65
64
|
|
|
65
|
+
const i18n = useI18nOptional();
|
|
66
|
+
const weekNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"] as const;
|
|
67
|
+
|
|
66
68
|
const weekHeaders = createMemo(() => {
|
|
67
69
|
const start = weekStartDay();
|
|
68
|
-
return Array.from({ length: 7 }, (_, i) =>
|
|
70
|
+
return Array.from({ length: 7 }, (_, i) => {
|
|
71
|
+
const key = weekNames[(start + i) % 7];
|
|
72
|
+
return i18n?.t(`calendar.weeks.${key}`) ??
|
|
73
|
+
{ sun: "Sun", mon: "Mon", tue: "Tue", wed: "Wed", thu: "Thu", fri: "Fri", sat: "Sat" }[key];
|
|
74
|
+
});
|
|
69
75
|
});
|
|
70
76
|
|
|
71
77
|
const dataTable = createMemo(() => {
|
|
@@ -73,7 +79,7 @@ function CalendarBase<TValue>(props: CalendarProps<TValue>) {
|
|
|
73
79
|
const items = local.items;
|
|
74
80
|
const getDate = local.getItemDate;
|
|
75
81
|
|
|
76
|
-
//
|
|
82
|
+
// Group items by date (O(N))
|
|
77
83
|
const itemMap = new Map<number, { item: TValue; index: number }[]>();
|
|
78
84
|
for (let i = 0; i < items.length; i++) {
|
|
79
85
|
const date = getDate(items[i], i);
|
|
@@ -108,7 +108,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
|
|
|
108
108
|
}
|
|
109
109
|
e.dataTransfer?.setData("text/plain", "");
|
|
110
110
|
const heightOnDrag = hostRef.offsetHeight;
|
|
111
|
-
//
|
|
111
|
+
// Delay one frame so the browser can capture the drag ghost image before hiding
|
|
112
112
|
requestAnimationFrame(() => {
|
|
113
113
|
boardCtx.setDragCard({
|
|
114
114
|
value: local.value,
|
|
@@ -144,7 +144,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
|
|
|
144
144
|
boardCtx.onDropTo(laneCtx.value(), local.value, current?.position ?? "before");
|
|
145
145
|
};
|
|
146
146
|
|
|
147
|
-
// Shift+Click
|
|
147
|
+
// Shift+Click multi-select toggle
|
|
148
148
|
const handleClick = (e: MouseEvent) => {
|
|
149
149
|
if (longPressed) {
|
|
150
150
|
e.preventDefault();
|
|
@@ -160,7 +160,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
|
|
|
160
160
|
boardCtx.toggleSelection(local.value);
|
|
161
161
|
};
|
|
162
162
|
|
|
163
|
-
// Long press →
|
|
163
|
+
// Long press → select only this card (deselect all others)
|
|
164
164
|
let longPressTimer: ReturnType<typeof setTimeout> | undefined;
|
|
165
165
|
let longPressed = false;
|
|
166
166
|
|
|
@@ -329,10 +329,10 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
|
|
|
329
329
|
const [dropTarget, setDropTarget] = createSignal<KanbanDropTarget>();
|
|
330
330
|
const [dragEnterCount, setDragEnterCount] = createSignal(0);
|
|
331
331
|
|
|
332
|
-
//
|
|
332
|
+
// Drag-over state: counter > 0 && dragging
|
|
333
333
|
const isDragOverLane = () => dragEnterCount() > 0 && boardCtx.dragCard() != null;
|
|
334
334
|
|
|
335
|
-
// dragCard
|
|
335
|
+
// When dragCard resets, also reset dropTarget and counter
|
|
336
336
|
createEffect(() => {
|
|
337
337
|
if (!boardCtx.dragCard()) {
|
|
338
338
|
setDragEnterCount(0);
|
|
@@ -340,7 +340,7 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
|
|
|
340
340
|
}
|
|
341
341
|
});
|
|
342
342
|
|
|
343
|
-
// Lane
|
|
343
|
+
// Lane exit detection: dragenter/dragleave counter
|
|
344
344
|
const handleLaneDragEnter = () => {
|
|
345
345
|
setDragEnterCount((c) => c + 1);
|
|
346
346
|
};
|
|
@@ -353,23 +353,23 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
|
|
|
353
353
|
}
|
|
354
354
|
};
|
|
355
355
|
|
|
356
|
-
//
|
|
356
|
+
// Empty area dragover (no cards, or below cards)
|
|
357
357
|
const handleLaneDragOver = (e: DragEvent) => {
|
|
358
358
|
if (!boardCtx.dragCard()) return;
|
|
359
359
|
e.preventDefault();
|
|
360
360
|
};
|
|
361
361
|
|
|
362
|
-
//
|
|
362
|
+
// Empty area or placeholder drop
|
|
363
363
|
const handleLaneDrop = (e: DragEvent) => {
|
|
364
364
|
if (!boardCtx.dragCard()) return;
|
|
365
365
|
e.preventDefault();
|
|
366
366
|
|
|
367
367
|
const current = dropTarget();
|
|
368
368
|
if (current) {
|
|
369
|
-
// placeholder
|
|
369
|
+
// Dropped on placeholder or gap between cards — use dropTarget position
|
|
370
370
|
boardCtx.onDropTo(local.value, current.value, current.position);
|
|
371
371
|
} else {
|
|
372
|
-
//
|
|
372
|
+
// Dropped onto an empty lane — append to end
|
|
373
373
|
boardCtx.onDropTo(local.value, undefined, undefined);
|
|
374
374
|
}
|
|
375
375
|
};
|
|
@@ -391,7 +391,7 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
|
|
|
391
391
|
const hasHeader = () =>
|
|
392
392
|
local.collapsible || hasSelectableCards() || title() != null || tools() != null;
|
|
393
393
|
|
|
394
|
-
//
|
|
394
|
+
// Placeholder div (owned by Lane, direct DOM control)
|
|
395
395
|
let bodyRef: HTMLDivElement | undefined;
|
|
396
396
|
const placeholderEl = document.createElement("div");
|
|
397
397
|
placeholderEl.className = placeholderBaseClass;
|
|
@@ -407,14 +407,14 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
|
|
|
407
407
|
return;
|
|
408
408
|
}
|
|
409
409
|
|
|
410
|
-
// placeholder
|
|
410
|
+
// Set placeholder height
|
|
411
411
|
placeholderEl.style.height = `${dc.heightOnDrag}px`;
|
|
412
412
|
|
|
413
|
-
//
|
|
413
|
+
// Calculate insertion position
|
|
414
414
|
const referenceNode =
|
|
415
415
|
target.position === "before" ? target.element : target.element.nextElementSibling;
|
|
416
416
|
|
|
417
|
-
//
|
|
417
|
+
// Skip DOM manipulation if already in the correct position
|
|
418
418
|
if (placeholderEl.parentNode === bodyRef && placeholderEl.nextSibling === referenceNode) {
|
|
419
419
|
return;
|
|
420
420
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, useContext, type Accessor, type Setter } from "solid-js";
|
|
2
2
|
import type { SlotAccessor } from "../../../hooks/createSlotSignal";
|
|
3
3
|
|
|
4
|
-
// ──
|
|
4
|
+
// ── Types ──────────────────────────────────────────────────────
|
|
5
5
|
|
|
6
6
|
export interface KanbanCardRef<L = unknown, T = unknown> {
|
|
7
7
|
value: T | undefined;
|
|
@@ -44,7 +44,7 @@ export const KanbanContext = createContext<KanbanContextValue>();
|
|
|
44
44
|
export function useKanbanContext(): KanbanContextValue {
|
|
45
45
|
const context = useContext(KanbanContext);
|
|
46
46
|
if (!context) {
|
|
47
|
-
throw new Error("useKanbanContext
|
|
47
|
+
throw new Error("useKanbanContext can only be used inside Kanban");
|
|
48
48
|
}
|
|
49
49
|
return context;
|
|
50
50
|
}
|
|
@@ -70,7 +70,7 @@ export const KanbanLaneContext = createContext<KanbanLaneContextValue>();
|
|
|
70
70
|
export function useKanbanLaneContext(): KanbanLaneContextValue {
|
|
71
71
|
const context = useContext(KanbanLaneContext);
|
|
72
72
|
if (!context) {
|
|
73
|
-
throw new Error("useKanbanLaneContext
|
|
73
|
+
throw new Error("useKanbanLaneContext can only be used inside Kanban.Lane");
|
|
74
74
|
}
|
|
75
75
|
return context;
|
|
76
76
|
}
|
|
@@ -18,20 +18,20 @@ const insetClass = clsx(
|
|
|
18
18
|
|
|
19
19
|
export interface ListProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Apply transparent background style
|
|
22
22
|
*/
|
|
23
23
|
inset?: boolean;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Container component for ListItems
|
|
28
28
|
*
|
|
29
|
-
*
|
|
30
|
-
* - `Space`/`Enter`:
|
|
31
|
-
* - `ArrowUp`/`ArrowDown`:
|
|
32
|
-
* - `Home`/`End`:
|
|
33
|
-
* - `ArrowRight`:
|
|
34
|
-
* - `ArrowLeft`:
|
|
29
|
+
* Supports tree-view style keyboard navigation:
|
|
30
|
+
* - `Space`/`Enter`: toggle current item
|
|
31
|
+
* - `ArrowUp`/`ArrowDown`: move focus to previous/next item
|
|
32
|
+
* - `Home`/`End`: move focus to first/last item
|
|
33
|
+
* - `ArrowRight`: open if closed, or focus first child if open
|
|
34
|
+
* - `ArrowLeft`: close if open, or focus parent if closed
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
37
|
* ```tsx
|
|
@@ -78,7 +78,7 @@ const ListBase: ParentComponent<ListProps> = (props) => {
|
|
|
78
78
|
if (!isOpen) {
|
|
79
79
|
current.click();
|
|
80
80
|
} else {
|
|
81
|
-
//
|
|
81
|
+
// Find the first child item inside the next sibling (Collapse) of the button
|
|
82
82
|
const collapse = current.nextElementSibling;
|
|
83
83
|
const nestedItem = collapse?.querySelector<HTMLElement>("[data-list-item]");
|
|
84
84
|
nestedItem?.focus();
|
|
@@ -92,7 +92,7 @@ const ListBase: ParentComponent<ListProps> = (props) => {
|
|
|
92
92
|
if (hasChildren && isOpen) {
|
|
93
93
|
current.click();
|
|
94
94
|
} else {
|
|
95
|
-
// Collapse
|
|
95
|
+
// The previous sibling of the Collapse is the parent button
|
|
96
96
|
const parentItem = current.closest("[data-collapse]")
|
|
97
97
|
?.previousElementSibling as HTMLElement | null;
|
|
98
98
|
if (parentItem?.hasAttribute("data-list-item")) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import { borderDefault, type ComponentSize } from "../../../styles/tokens.styles";
|
|
3
3
|
|
|
4
|
-
//
|
|
4
|
+
// Base item style
|
|
5
5
|
export const listItemBaseClass = clsx(
|
|
6
6
|
"flex",
|
|
7
7
|
"items-center",
|
|
@@ -17,7 +17,7 @@ export const listItemBaseClass = clsx(
|
|
|
17
17
|
"hover:bg-base-500/10 dark:hover:bg-base-700",
|
|
18
18
|
);
|
|
19
19
|
|
|
20
|
-
//
|
|
20
|
+
// Size-based styles
|
|
21
21
|
export const listItemSizeClasses: Record<ComponentSize, string> = {
|
|
22
22
|
xs: clsx("px-0.5 py-0"),
|
|
23
23
|
sm: clsx("px-1 py-0.5"),
|
|
@@ -25,7 +25,7 @@ export const listItemSizeClasses: Record<ComponentSize, string> = {
|
|
|
25
25
|
xl: clsx("px-3 py-2"),
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
//
|
|
28
|
+
// Selected state
|
|
29
29
|
export const listItemSelectedClass = clsx(
|
|
30
30
|
"bg-primary-100",
|
|
31
31
|
"dark:bg-primary-800/50",
|
|
@@ -34,18 +34,18 @@ export const listItemSelectedClass = clsx(
|
|
|
34
34
|
"dark:hover:bg-primary-700",
|
|
35
35
|
);
|
|
36
36
|
|
|
37
|
-
//
|
|
37
|
+
// Disabled state
|
|
38
38
|
export const listItemDisabledClass = clsx("pointer-events-none cursor-auto opacity-50");
|
|
39
39
|
|
|
40
|
-
//
|
|
40
|
+
// Readonly state
|
|
41
41
|
export const listItemReadonlyClass = clsx("cursor-auto select-text hover:bg-transparent");
|
|
42
42
|
|
|
43
|
-
//
|
|
43
|
+
// Indent guide (for nested items)
|
|
44
44
|
export const listItemIndentGuideClass = clsx("ml-4 w-2 border-l", borderDefault);
|
|
45
45
|
|
|
46
|
-
//
|
|
46
|
+
// Item content area
|
|
47
47
|
export const listItemContentClass = clsx("flex flex-1 flex-row", "items-center gap-1", "text-left");
|
|
48
48
|
|
|
49
|
-
//
|
|
49
|
+
// Selection icon color
|
|
50
50
|
export const getListItemSelectedIconClass = (selected: boolean) =>
|
|
51
51
|
clsx(selected ? "text-primary-600 dark:text-primary-400" : "text-black/30 dark:text-white/30");
|
|
@@ -46,64 +46,64 @@ export interface ListItemProps extends Omit<
|
|
|
46
46
|
"onClick"
|
|
47
47
|
> {
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
49
|
+
* Open state of the nested list (controlled mode)
|
|
50
50
|
*/
|
|
51
51
|
open?: boolean;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* Callback for open state change (enables controlled mode)
|
|
55
55
|
*/
|
|
56
56
|
onOpenChange?: (open: boolean) => void;
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
|
-
*
|
|
59
|
+
* Selected state
|
|
60
60
|
*/
|
|
61
61
|
selected?: boolean;
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
64
|
+
* Readonly (click disabled, normal color retained)
|
|
65
65
|
*/
|
|
66
66
|
readonly?: boolean;
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* Disabled (unclickable, dimmed)
|
|
70
70
|
*/
|
|
71
71
|
disabled?: boolean;
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
|
-
*
|
|
74
|
+
* Selection icon component (shown only when no nested List)
|
|
75
75
|
*/
|
|
76
76
|
selectedIcon?: Component<IconProps>;
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
79
|
+
* Item size
|
|
80
80
|
*/
|
|
81
81
|
size?: ComponentSize;
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
|
-
*
|
|
84
|
+
* Click handler (called when no nested List)
|
|
85
85
|
*/
|
|
86
86
|
onClick?: (e: MouseEvent) => void;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
*
|
|
90
|
+
* List item component
|
|
91
91
|
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
92
|
+
* Supports accordion behavior when a nested list is included via `ListItem.Children`.
|
|
93
|
+
* Provide both open and onOpenChange for controlled mode.
|
|
94
94
|
*
|
|
95
95
|
* @example
|
|
96
96
|
* ```tsx
|
|
97
|
-
* //
|
|
97
|
+
* // Basic usage
|
|
98
98
|
* <List.Item>Simple item</List.Item>
|
|
99
99
|
*
|
|
100
|
-
* //
|
|
100
|
+
* // Selected state
|
|
101
101
|
* <List.Item selected>Selected item</List.Item>
|
|
102
102
|
*
|
|
103
|
-
* //
|
|
103
|
+
* // Selection icon
|
|
104
104
|
* <List.Item selectedIcon={IconCheck} selected>Icon selection</List.Item>
|
|
105
105
|
*
|
|
106
|
-
* //
|
|
106
|
+
* // Nested list (accordion)
|
|
107
107
|
* <List.Item>
|
|
108
108
|
* Folder
|
|
109
109
|
* <List.Item.Children>
|
|
@@ -44,22 +44,22 @@ export const insetTableClass = clsx(
|
|
|
44
44
|
|
|
45
45
|
export const defaultContainerClass = clsx("border", borderDefault, "rounded");
|
|
46
46
|
|
|
47
|
-
//
|
|
47
|
+
// Sortable header — shows clickable indicator
|
|
48
48
|
export const sortableThClass = clsx("cursor-pointer", "hover:underline");
|
|
49
49
|
|
|
50
|
-
//
|
|
50
|
+
// Sort icon area
|
|
51
51
|
export const sortIconClass = clsx("px-1 py-0.5", "bg-base-100 dark:bg-base-900");
|
|
52
52
|
|
|
53
|
-
//
|
|
53
|
+
// Top toolbar (settings button + pagination)
|
|
54
54
|
export const toolbarClass = clsx("flex items-center gap-2", "px-2 py-1", "border-b", borderDefault);
|
|
55
55
|
|
|
56
|
-
//
|
|
56
|
+
// Fixed column base (sticky)
|
|
57
57
|
export const fixedClass = "sticky";
|
|
58
58
|
|
|
59
|
-
//
|
|
59
|
+
// Visual effect for fixed/unfixed boundary — applied to last cell of fixed column
|
|
60
60
|
export const fixedLastClass = clsx("border-r border-r-base-400", "dark:border-r-base-600");
|
|
61
61
|
|
|
62
|
-
//
|
|
62
|
+
// Resizer handle (right-side drag area of header cell)
|
|
63
63
|
export const resizerClass = clsx(
|
|
64
64
|
"absolute inset-y-0 right-0",
|
|
65
65
|
"w-1",
|
|
@@ -68,7 +68,7 @@ export const resizerClass = clsx(
|
|
|
68
68
|
"hover:bg-primary-300 dark:hover:bg-primary-600",
|
|
69
69
|
);
|
|
70
70
|
|
|
71
|
-
//
|
|
71
|
+
// Vertical dashed indicator while dragging
|
|
72
72
|
export const resizeIndicatorClass = clsx(
|
|
73
73
|
"absolute inset-y-0",
|
|
74
74
|
"w-0 border-l-2 border-dashed border-primary-500",
|
|
@@ -76,7 +76,7 @@ export const resizeIndicatorClass = clsx(
|
|
|
76
76
|
"z-[7]",
|
|
77
77
|
);
|
|
78
78
|
|
|
79
|
-
//
|
|
79
|
+
// Feature column base (expand/select column common)
|
|
80
80
|
export const featureThClass = clsx(
|
|
81
81
|
"bg-base-100 dark:bg-base-800",
|
|
82
82
|
"border-b border-r",
|
|
@@ -94,13 +94,13 @@ export const featureTdClass = clsx(
|
|
|
94
94
|
"h-px",
|
|
95
95
|
);
|
|
96
96
|
|
|
97
|
-
//
|
|
97
|
+
// Expand column depth guide — wrapper (same width as toggle icon, vertically centered line)
|
|
98
98
|
export const expandIndentGuideClass = clsx("mr-0.5 w-3 self-stretch", "flex justify-end");
|
|
99
99
|
|
|
100
|
-
//
|
|
100
|
+
// Expand column depth guide — vertical line
|
|
101
101
|
export const expandIndentGuideLineClass = clsx("w-0 self-stretch", "border-r", borderDefault);
|
|
102
102
|
|
|
103
|
-
//
|
|
103
|
+
// Expand toggle button
|
|
104
104
|
export const expandToggleClass = clsx(
|
|
105
105
|
"flex items-center justify-center",
|
|
106
106
|
"size-6",
|
|
@@ -109,7 +109,7 @@ export const expandToggleClass = clsx(
|
|
|
109
109
|
"hover:bg-base-200 dark:hover:bg-base-600",
|
|
110
110
|
);
|
|
111
111
|
|
|
112
|
-
//
|
|
112
|
+
// Select column — icon wrapper for single mode
|
|
113
113
|
export const selectSingleClass = clsx(
|
|
114
114
|
"flex items-center justify-center",
|
|
115
115
|
"size-6",
|
|
@@ -117,13 +117,13 @@ export const selectSingleClass = clsx(
|
|
|
117
117
|
"rounded",
|
|
118
118
|
);
|
|
119
119
|
|
|
120
|
-
//
|
|
120
|
+
// Single mode — selected
|
|
121
121
|
export const selectSingleSelectedClass = clsx("text-primary-500", "dark:text-primary-400");
|
|
122
122
|
|
|
123
|
-
//
|
|
123
|
+
// Single mode — unselected
|
|
124
124
|
export const selectSingleUnselectedClass = clsx("text-base-300", "dark:text-base-600");
|
|
125
125
|
|
|
126
|
-
//
|
|
126
|
+
// Drag handle feature column
|
|
127
127
|
export const reorderHandleClass = clsx(
|
|
128
128
|
"flex items-center justify-center",
|
|
129
129
|
"size-6",
|
|
@@ -132,7 +132,7 @@ export const reorderHandleClass = clsx(
|
|
|
132
132
|
"hover:text-base-600 dark:hover:text-base-400",
|
|
133
133
|
);
|
|
134
134
|
|
|
135
|
-
//
|
|
135
|
+
// Drag indicator (before/after horizontal line)
|
|
136
136
|
export const reorderIndicatorClass = clsx(
|
|
137
137
|
"absolute inset-x-0",
|
|
138
138
|
"h-0 border-t-2 border-primary-500",
|
|
@@ -140,31 +140,31 @@ export const reorderIndicatorClass = clsx(
|
|
|
140
140
|
"z-[7]",
|
|
141
141
|
);
|
|
142
142
|
|
|
143
|
-
//
|
|
143
|
+
// Feature column header inner wrapper (expand/select, etc.)
|
|
144
144
|
export const featureCellWrapperClass = clsx("flex items-center", "px-1");
|
|
145
145
|
|
|
146
|
-
//
|
|
146
|
+
// Feature column body inner wrapper (expand/select/reorder, etc. — full height)
|
|
147
147
|
export const featureCellBodyWrapperClass = clsx("flex h-full items-center", "px-1");
|
|
148
148
|
|
|
149
|
-
//
|
|
149
|
+
// Feature column header clickable wrapper (select all, etc.)
|
|
150
150
|
export const featureCellClickableClass = clsx(
|
|
151
151
|
"flex cursor-pointer items-center justify-center",
|
|
152
152
|
"px-1",
|
|
153
153
|
);
|
|
154
154
|
|
|
155
|
-
//
|
|
155
|
+
// Feature column body clickable wrapper (select/reorder, etc. — full height)
|
|
156
156
|
export const featureCellBodyClickableClass = clsx(
|
|
157
157
|
"flex h-full cursor-pointer items-center justify-center",
|
|
158
158
|
"px-1",
|
|
159
159
|
);
|
|
160
160
|
|
|
161
|
-
//
|
|
161
|
+
// Reorder handle wrapper (with touch-none added)
|
|
162
162
|
export const reorderCellWrapperClass = clsx(
|
|
163
163
|
"flex h-full touch-none items-center justify-center",
|
|
164
164
|
"px-1",
|
|
165
165
|
);
|
|
166
166
|
|
|
167
|
-
//
|
|
167
|
+
// Settings button
|
|
168
168
|
export const configButtonClass = clsx(
|
|
169
169
|
"flex items-center justify-center",
|
|
170
170
|
"size-6 rounded",
|