@simplysm/solid 13.0.68 → 13.0.70
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 +24 -24
- package/dist/components/disclosure/Tabs.js +1 -1
- package/dist/components/disclosure/Tabs.js.map +1 -1
- package/dist/components/disclosure/dialogZIndex.d.ts +7 -7
- package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +19 -16
- 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 +34 -28
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- 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 +6 -2
- 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 +8 -2
- 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 -13
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +219 -58
- 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 +4 -1
- package/dist/helpers/createAppStructure.js.map +1 -1
- 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.js +1 -1
- package/dist/hooks/createSelectionGroup.js.map +1 -1
- 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 +8 -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 +64 -64
- package/src/components/disclosure/Tabs.tsx +1 -1
- package/src/components/disclosure/dialogZIndex.ts +11 -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 +18 -16
- 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 +39 -37
- 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/data-select-button/DataSelectButton.tsx +34 -32
- package/src/components/features/permission-table/PermissionTable.tsx +22 -19
- package/src/components/features/shared-data/SharedDataSelect.tsx +22 -20
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +10 -10
- package/src/components/features/shared-data/SharedDataSelectList.tsx +245 -48
- 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 +84 -84
- 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 +12 -6
- 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 +1 -1
- 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 +213 -0
- package/tests/components/disclosure/Tabs.spec.tsx +220 -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/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 +463 -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
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# @simplysm/solid
|
|
2
2
|
|
|
3
|
-
A SolidJS UI component library for enterprise back-office applications such as ERP and MES.
|
|
3
|
+
A SolidJS UI component library for enterprise back-office applications such as ERP and MES.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
```
|
|
7
|
+
```
|
|
8
8
|
pnpm add @simplysm/solid
|
|
9
9
|
```
|
|
10
10
|
|
|
@@ -13,232 +13,205 @@ pnpm add @simplysm/solid
|
|
|
13
13
|
- `tailwindcss` ^3.4
|
|
14
14
|
|
|
15
15
|
**Optional Peer Dependencies:**
|
|
16
|
-
- `echarts` ^6.0
|
|
16
|
+
- `echarts` ^6.0 — Required for Echarts chart components
|
|
17
17
|
|
|
18
18
|
## Configuration
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
`@simplysm/solid` provides a Tailwind CSS preset. Register it as a preset in your app's `tailwind.config.ts` to automatically apply custom themes including semantic colors, field sizes, and z-index values.
|
|
20
|
+
Register the Tailwind preset in your app's `tailwind.config.ts`:
|
|
23
21
|
|
|
24
22
|
```typescript
|
|
25
|
-
// tailwind.config.ts
|
|
26
23
|
import simplysmPreset from "@simplysm/solid/tailwind.config";
|
|
27
|
-
|
|
28
24
|
export default {
|
|
29
25
|
darkMode: "class",
|
|
30
26
|
presets: [simplysmPreset],
|
|
31
|
-
content: [
|
|
32
|
-
"./src/**/*.{ts,tsx}",
|
|
33
|
-
...simplysmPreset.content,
|
|
34
|
-
],
|
|
27
|
+
content: ["./src/**/*.{ts,tsx}", ...simplysmPreset.content],
|
|
35
28
|
};
|
|
36
29
|
```
|
|
37
30
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Use `SystemProvider` to wrap your app. It provides all infrastructure providers (config, theme, logger, notification, service client, etc.).
|
|
41
|
-
|
|
42
|
-
For programmatic dialogs and printing, add `DialogProvider` and/or `PrintProvider` separately. Place them **below your own Providers** if your dialog/print content needs access to them.
|
|
43
|
-
|
|
44
|
-
```tsx
|
|
45
|
-
import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
|
|
46
|
-
|
|
47
|
-
function App() {
|
|
48
|
-
return (
|
|
49
|
-
<SystemProvider clientName="my-app">
|
|
50
|
-
{/* Your Providers can go here */}
|
|
51
|
-
<DialogProvider>
|
|
52
|
-
<PrintProvider>
|
|
53
|
-
<AppRoot />
|
|
54
|
-
</PrintProvider>
|
|
55
|
-
</DialogProvider>
|
|
56
|
-
</SystemProvider>
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
> **Why separate?** `DialogProvider` and `PrintProvider` render user-provided components (via `dialog.show(factory)` / `print.toPrinter(factory)`). By placing them below your Providers, the factory content can access your contexts (e.g., auth, data stores). `SystemProvider` provides infrastructure that doesn't render user components.
|
|
62
|
-
|
|
63
|
-
| Provider | Required | Must be inside | Description |
|
|
64
|
-
|----------|----------|----------------|-------------|
|
|
65
|
-
| `SystemProvider` | Yes | (root) | Infrastructure: config, theme, logger, notification, busy, service client, shared data |
|
|
66
|
-
| `DialogProvider` | If using `useDialog()` | `SystemProvider` | Programmatic dialog management |
|
|
67
|
-
| `PrintProvider` | If using `usePrint()` | `SystemProvider` | Printing and PDF generation |
|
|
68
|
-
|
|
69
|
-
```tsx
|
|
70
|
-
import { SystemProvider, DialogProvider, PrintProvider, useServiceClient, useSyncStorage, useLogger, useSharedData } from "@simplysm/solid";
|
|
71
|
-
import { onMount } from "solid-js";
|
|
72
|
-
|
|
73
|
-
function AppRoot() {
|
|
74
|
-
const serviceClient = useServiceClient();
|
|
75
|
-
|
|
76
|
-
onMount(async () => {
|
|
77
|
-
await serviceClient.connect("main", { port: 3000 });
|
|
78
|
-
useSyncStorage()!.configure((origin) => myStorageAdapter);
|
|
79
|
-
useLogger().configure((origin) => myLogAdapter);
|
|
80
|
-
useSharedData().configure((origin) => definitions);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
| Prop | Type | Default | Description |
|
|
86
|
-
|------|------|---------|-------------|
|
|
87
|
-
| `clientName` | `string` | (required) | Client identifier (used as storage key prefix) |
|
|
88
|
-
| `busyVariant` | `BusyVariant` | `"spinner"` | Busy overlay display variant (`"spinner"` or `"bar"`) |
|
|
89
|
-
|
|
90
|
-
**StorageAdapter interface:**
|
|
31
|
+
Import base CSS in your entry point:
|
|
91
32
|
|
|
92
33
|
```typescript
|
|
93
|
-
|
|
94
|
-
getItem(key: string): string | null | Promise<string | null>;
|
|
95
|
-
setItem(key: string, value: string): void | Promise<unknown>;
|
|
96
|
-
removeItem(key: string): void | Promise<void>;
|
|
97
|
-
}
|
|
34
|
+
import "@simplysm/solid/tailwind.css";
|
|
98
35
|
```
|
|
99
36
|
|
|
100
|
-
|
|
37
|
+
Wrap your app with providers:
|
|
101
38
|
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
39
|
+
```tsx
|
|
40
|
+
import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
|
|
41
|
+
<SystemProvider clientName="my-app">
|
|
42
|
+
<DialogProvider>
|
|
43
|
+
<PrintProvider>
|
|
44
|
+
<App />
|
|
45
|
+
</PrintProvider>
|
|
46
|
+
</DialogProvider>
|
|
47
|
+
</SystemProvider>
|
|
106
48
|
```
|
|
107
49
|
|
|
108
|
-
|
|
50
|
+
| Provider | Required | Description |
|
|
51
|
+
|----------|----------|-------------|
|
|
52
|
+
| `SystemProvider` | Yes | Infrastructure: config, theme, logger, notification, busy, service client, shared data |
|
|
53
|
+
| `DialogProvider` | If using `useDialog()` | Programmatic dialog management |
|
|
54
|
+
| `PrintProvider` | If using `usePrint()` | Printing and PDF generation |
|
|
55
|
+
|
|
56
|
+
## Source Index
|
|
57
|
+
|
|
58
|
+
### Form Control
|
|
59
|
+
|
|
60
|
+
| Source | Exports | Description | Test |
|
|
61
|
+
|--------|---------|-------------|------|
|
|
62
|
+
| `src/components/form-control/Button.tsx` | `ButtonProps`, `Button` | Button with ripple effect, theme/variant/size/inset options | `Button.spec.tsx` |
|
|
63
|
+
| `src/components/form-control/select/Select.tsx` | `SelectProps`, `Select` | Dropdown selection with single/multiple mode, search, hierarchical items | `Select.spec.tsx` |
|
|
64
|
+
| `src/components/form-control/combobox/Combobox.tsx` | `ComboboxProps`, `Combobox` | Autocomplete with async search, debounce, and custom value support | `Combobox.spec.tsx` |
|
|
65
|
+
| `src/components/form-control/field/TextInput.tsx` | `TextInputProps`, `TextInput` | Text input with IME support, format mask, prefix slot, validation | `TextInput.spec.tsx` |
|
|
66
|
+
| `src/components/form-control/field/NumberInput.tsx` | `NumberInputProps`, `NumberInput` | Numeric input with thousand-separator, min/max, prefix slot, validation | `NumberInput.spec.tsx` |
|
|
67
|
+
| `src/components/form-control/field/DatePicker.tsx` | `DatePickerProps`, `DatePicker` | Date input supporting year/month/date units (DateOnly type) | `DatePicker.spec.tsx` |
|
|
68
|
+
| `src/components/form-control/field/DateTimePicker.tsx` | `DateTimePickerProps`, `DateTimePicker` | Date-time input supporting minute/second units (DateTime type) | `DateTimePicker.spec.tsx` |
|
|
69
|
+
| `src/components/form-control/field/TimePicker.tsx` | `TimePickerProps`, `TimePicker` | Time input supporting minute/second units (Time type) | `TimePicker.spec.tsx` |
|
|
70
|
+
| `src/components/form-control/field/Textarea.tsx` | `TextareaProps`, `Textarea` | Auto-height textarea with IME support, minRows, validation | `Textarea.spec.tsx` |
|
|
71
|
+
| `src/components/form-control/field/Field.styles.ts` | `FieldSize`, `fieldBaseClass`, `fieldSizeClasses`, `fieldInsetClass`, `fieldInsetHeightClass`, `fieldInsetSizeHeightClasses`, `fieldDisabledClass`, `textAreaBaseClass`, `textAreaSizeClasses`, `fieldInputClass`, `fieldGapClasses`, `getFieldWrapperClass`, `getTextareaWrapperClass` | Shared Tailwind class tokens and wrapper class generators for field components | - |
|
|
72
|
+
| `src/components/form-control/checkbox/Checkbox.tsx` | `CheckboxProps`, `Checkbox` | Checkbox with ripple, controlled/uncontrolled, inset/inline modes | `Checkbox.spec.tsx` |
|
|
73
|
+
| `src/components/form-control/checkbox/Checkbox.styles.ts` | `CheckboxSize`, `checkboxBaseClass`, `indicatorBaseClass`, `checkedClass`, `checkboxSizeClasses`, `checkboxInsetClass`, `checkboxInsetSizeHeightClasses`, `checkboxInlineClass`, `checkboxDisabledClass` | Tailwind class tokens shared by Checkbox and Radio components | - |
|
|
74
|
+
| `src/components/form-control/checkbox/Radio.tsx` | `RadioProps`, `Radio` | Radio button (single-select variant of Checkbox) with ripple effect | `Radio.spec.tsx` |
|
|
75
|
+
| `src/components/form-control/checkbox/CheckboxGroup.tsx` | `CheckboxGroup` | Group of checkboxes with multi-select value binding and validation | `CheckboxGroup.spec.tsx` |
|
|
76
|
+
| `src/components/form-control/checkbox/RadioGroup.tsx` | `RadioGroup` | Group of radio buttons with single-select value binding and validation | `RadioGroup.spec.tsx` |
|
|
77
|
+
| `src/components/form-control/color-picker/ColorPicker.tsx` | `ColorPickerProps`, `ColorPicker` | Native color picker input (#RRGGBB) with size and inset support | `ColorPicker.spec.tsx` |
|
|
78
|
+
| `src/components/form-control/date-range-picker/DateRangePicker.tsx` | `DateRangePeriodType`, `DateRangePickerProps`, `DateRangePicker` | Date range input with day/month/range period type selection | `DateRangePicker.spec.tsx` |
|
|
79
|
+
| `src/components/form-control/editor/RichTextEditor.tsx` | `RichTextEditorProps`, `RichTextEditor` | WYSIWYG rich text editor (Tiptap) with toolbar, table, image support | - |
|
|
80
|
+
| `src/components/form-control/numpad/Numpad.tsx` | `NumpadProps`, `Numpad` | On-screen numeric keypad with optional ENT/minus buttons | `Numpad.spec.tsx` |
|
|
81
|
+
| `src/components/form-control/state-preset/StatePreset.tsx` | `StatePresetProps`, `StatePreset` | Named state preset chips — save, restore, and overwrite arbitrary values | - |
|
|
82
|
+
| `src/components/form-control/ThemeToggle.tsx` | `ThemeToggleProps`, `ThemeToggle` | Icon button that cycles light/system/dark theme modes | - |
|
|
83
|
+
| `src/components/form-control/Invalid.tsx` | `InvalidProps`, `Invalid` | Validation wrapper that shows border or dot indicator with native form validity | `Invalid.spec.tsx` |
|
|
109
84
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
// entry point (e.g., index.tsx)
|
|
114
|
-
import "@simplysm/solid/tailwind.css";
|
|
115
|
-
```
|
|
85
|
+
### Layout
|
|
116
86
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
- [`DateTimePicker`](docs/form-controls.md#datetimepicker) - Date-time input supporting minute and second units (`DateTime` type)
|
|
126
|
-
- [`TimePicker`](docs/form-controls.md#timepicker) - Time input supporting minute and second units (`Time` type)
|
|
127
|
-
- [`DateRangePicker`](docs/form-controls.md#daterangepicker) - Date range input with period type selection (day/month/range)
|
|
128
|
-
- [`Textarea`](docs/form-controls.md#textarea) - Multi-line text input with auto-height and IME support
|
|
129
|
-
- [`Select`](docs/form-controls.md#select) - Dropdown selection with single/multiple, hierarchical items, and compound components
|
|
130
|
-
- [`SelectList`](docs/form-controls.md#selectlist) - List-style single selection with search, pagination, and slot customization
|
|
131
|
-
- [`DataSelectButton`](docs/form-controls.md#dataselectbutton) - Modal-based selection button with key-based loading
|
|
132
|
-
- [`SharedDataSelect`](docs/form-controls.md#shareddataselect) - SharedData-connected Select wrapper
|
|
133
|
-
- [`SharedDataSelectButton`](docs/form-controls.md#shareddataselectbutton) - SharedData-connected DataSelectButton wrapper
|
|
134
|
-
- [`SharedDataSelectList`](docs/form-controls.md#shareddataselectlist) - SharedData-connected SelectList wrapper
|
|
135
|
-
- [`Combobox`](docs/form-controls.md#combobox) - Autocomplete with async search and debouncing
|
|
136
|
-
- [`Checkbox`](docs/form-controls.md#checkbox--radio) / [`Radio`](docs/form-controls.md#checkbox--radio) - Checkbox and radio button
|
|
137
|
-
- [`CheckboxGroup`](docs/form-controls.md#checkboxgroup--radiogroup) / [`RadioGroup`](docs/form-controls.md#checkboxgroup--radiogroup) - Group components for multiple/single selection
|
|
138
|
-
- [`ColorPicker`](docs/form-controls.md#colorpicker) - Color selection component
|
|
139
|
-
- [`ThemeToggle`](docs/form-controls.md#themetoggle) - Dark/light/system theme cycle toggle
|
|
140
|
-
- [`RichTextEditor`](docs/form-controls.md#richtexteditor) - Tiptap-based rich text editor with formatting, tables, images
|
|
141
|
-
- [`Invalid`](docs/form-controls.md#invalid) - Wrapper component for form validation using native browser validation
|
|
142
|
-
- [`Numpad`](docs/form-controls.md#numpad) - Numeric keypad for touch-based input
|
|
143
|
-
- [`StatePreset`](docs/form-controls.md#statepreset) - Save/load screen state as presets
|
|
87
|
+
| Source | Exports | Description | Test |
|
|
88
|
+
|--------|---------|-------------|------|
|
|
89
|
+
| `src/components/layout/FormGroup.tsx` | `FormGroupProps`, `FormGroupItemProps`, `FormGroup` | Labeled field group in vertical or inline (horizontal) layout | `FormGroup.spec.tsx` |
|
|
90
|
+
| `src/components/layout/FormTable.tsx` | `FormTableProps`, `FormTable` | Table layout for aligned label/field rows in forms | `FormTable.spec.tsx` |
|
|
91
|
+
| `src/components/layout/sidebar/Sidebar.tsx` | `SidebarProps`, `SidebarContainerProps`, `SidebarMenuProps`, `SidebarUserMenu`, `SidebarUserProps`, `Sidebar` | Collapsible sidebar with slide animation, responsive desktop/mobile behavior | `Sidebar.spec.tsx` |
|
|
92
|
+
| `src/components/layout/sidebar/SidebarContext.ts` | `SM_MEDIA_QUERY`, `SidebarContextValue`, `SidebarContext`, `useSidebarContext`, `useSidebarContextOptional` | Context providing toggle state for Sidebar open/close coordination | - |
|
|
93
|
+
| `src/components/layout/topbar/Topbar.tsx` | `TopbarProps`, `TopbarContainerProps`, `TopbarMenuItem`, `TopbarMenuProps`, `TopbarUserMenu`, `TopbarUserProps`, `Topbar` | App topbar with optional sidebar toggle button and menu/user slots | - |
|
|
94
|
+
| `src/components/layout/topbar/TopbarContext.ts` | `TopbarContextValue`, `TopbarContext`, `useTopbarActionsAccessor`, `createTopbarActions` | Context for injecting page-level action buttons into the topbar | `createTopbarActions.spec.tsx` |
|
|
144
95
|
|
|
145
96
|
### Data
|
|
146
97
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
- [`Topbar`](docs/layout.md#topbar) - Top navigation bar with menus, user dropdown, and actions slot
|
|
161
|
-
- [`FormGroup`](docs/layout.md#formgroup) - Form fields layout with labels (vertical/inline)
|
|
162
|
-
- [`FormTable`](docs/layout.md#formtable) - Table-based form layout
|
|
98
|
+
| Source | Exports | Description | Test |
|
|
99
|
+
|--------|---------|-------------|------|
|
|
100
|
+
| `src/components/data/Table.tsx` | `TableProps`, `Table` | Simple bordered HTML table with optional inset (borderless) style | `Table.spec.tsx` |
|
|
101
|
+
| `src/components/data/list/List.tsx` | `ListProps`, `List` | Keyboard-navigable list container with tree expand/collapse support | `List.spec.tsx` |
|
|
102
|
+
| `src/components/data/list/ListContext.ts` | `ListContextValue`, `ListContext`, `useListContext` | Context carrying nesting level for recursive List rendering | - |
|
|
103
|
+
| `src/components/data/list/ListItem.styles.ts` | `listItemBaseClass`, `listItemSizeClasses`, `listItemSelectedClass`, `listItemDisabledClass`, `listItemReadonlyClass`, `listItemIndentGuideClass`, `listItemContentClass`, `getListItemSelectedIconClass` | Tailwind class tokens for ListItem states (selected, disabled, readonly, indent) | - |
|
|
104
|
+
| `src/components/data/Pagination.tsx` | `PaginationProps`, `Pagination` | Page navigation bar with first/prev/next/last buttons | `Pagination.spec.tsx` |
|
|
105
|
+
| `src/components/data/sheet/DataSheet.tsx` | `DataSheet` | Feature-rich data grid with sorting, selection, tree expand, reorder, pagination | `DataSheet.spec.tsx` |
|
|
106
|
+
| `src/components/data/sheet/DataSheet.styles.ts` | `dataSheetContainerClass`, `tableClass`, `thClass`, `thContentClass`, `tdClass`, `summaryThClass`, `insetContainerClass`, `insetTableClass`, `defaultContainerClass`, `sortableThClass`, `sortIconClass`, `toolbarClass`, `fixedClass`, `fixedLastClass`, `resizerClass`, `resizeIndicatorClass`, `featureThClass`, `featureTdClass`, `expandIndentGuideClass`, `expandIndentGuideLineClass`, `expandToggleClass`, `selectSingleClass`, `selectSingleSelectedClass`, `selectSingleUnselectedClass`, `reorderHandleClass`, `reorderIndicatorClass`, `featureCellWrapperClass`, `featureCellBodyWrapperClass`, `featureCellClickableClass`, `featureCellBodyClickableClass`, `reorderCellWrapperClass`, `configButtonClass` | Tailwind class tokens for all DataSheet internal visual elements | - |
|
|
107
|
+
| `src/components/data/sheet/types.ts` | `DataSheetProps`, `DataSheetColumnProps`, `DataSheetCellContext`, `SortingDef`, `DataSheetConfig`, `DataSheetConfigColumn`, `DataSheetColumnDef`, `HeaderDef`, `FlatItem`, `DataSheetDragPosition`, `DataSheetReorderEvent`, `DataSheetConfigColumnInfo` | TypeScript types and interfaces for DataSheet props, column defs, and internal structures | - |
|
|
108
|
+
| `src/components/data/calendar/Calendar.tsx` | `CalendarProps`, `Calendar` | Monthly calendar grid that renders arbitrary items on their DateOnly date | - |
|
|
109
|
+
| `src/components/data/kanban/Kanban.tsx` | `KanbanCardProps`, `KanbanLaneProps`, `KanbanProps`, `Kanban` | Kanban board with drag-and-drop card reordering and multi-select | `Kanban.selection.spec.tsx` |
|
|
110
|
+
| `src/components/data/kanban/KanbanContext.ts` | `KanbanCardRef`, `KanbanDropInfo`, `KanbanDropTarget`, `KanbanContextValue`, `KanbanContext`, `useKanbanContext`, `KanbanLaneContextValue`, `KanbanLaneContext`, `useKanbanLaneContext` | Contexts sharing drag state and selection state between Kanban board and lanes | - |
|
|
163
111
|
|
|
164
112
|
### Display
|
|
165
113
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
114
|
+
| Source | Exports | Description | Test |
|
|
115
|
+
|--------|---------|-------------|------|
|
|
116
|
+
| `src/components/display/Barcode.tsx` | `BarcodeType`, `BarcodeProps`, `Barcode` | Barcode/QR code renderer using bwip-js with many format options | `Barcode.spec.tsx` |
|
|
117
|
+
| `src/components/display/Card.tsx` | `CardProps`, `Card` | Elevated card container with shadow and fade-in animation | `Card.spec.tsx` |
|
|
118
|
+
| `src/components/display/Echarts.tsx` | `EchartsProps`, `Echarts` | Apache ECharts wrapper with resize observer and busy overlay support | - |
|
|
119
|
+
| `src/components/display/Icon.tsx` | `IconProps`, `Icon` | Wrapper for Tabler icon components with size normalization | - |
|
|
120
|
+
| `src/components/display/Tag.tsx` | `TagTheme`, `TagProps`, `Tag` | Inline colored badge/tag with semantic theme options | `Tag.spec.tsx` |
|
|
121
|
+
| `src/components/display/Link.tsx` | `LinkTheme`, `LinkProps`, `Link` | Themed anchor link with disabled state support | `Link.spec.tsx` |
|
|
122
|
+
| `src/components/display/Alert.tsx` | `AlertTheme`, `AlertProps`, `Alert` | Block alert box with semantic theme background colors | `Alert.spec.tsx` |
|
|
174
123
|
|
|
175
124
|
### Disclosure
|
|
176
125
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
126
|
+
| Source | Exports | Description | Test |
|
|
127
|
+
|--------|---------|-------------|------|
|
|
128
|
+
| `src/components/disclosure/Collapse.tsx` | `CollapseProps`, `Collapse` | Animated height-based expand/collapse container | `Collapse.spec.tsx` |
|
|
129
|
+
| `src/components/disclosure/Dropdown.tsx` | `DropdownProps`, `Dropdown` | Positioned floating dropdown with Portal rendering and keyboard navigation | `Dropdown.spec.tsx` |
|
|
130
|
+
| `src/components/disclosure/Dialog.tsx` | `DialogProps`, `Dialog` | Modal dialog with draggable/resizable/closable options and backdrop | `Dialog.spec.tsx` |
|
|
131
|
+
| `src/components/disclosure/DialogContext.ts` | `DialogDefaults`, `DialogShowOptions`, `DialogContextValue`, `DialogDefaultsContext`, `DialogContext`, `useDialog` | Context and hook for opening programmatic dialogs imperatively | - |
|
|
132
|
+
| `src/components/disclosure/DialogInstanceContext.ts` | `DialogInstance`, `DialogInstanceContext`, `useDialogInstance` | Context providing close() to components rendered inside a dialog | - |
|
|
133
|
+
| `src/components/disclosure/DialogProvider.tsx` | `DialogProviderProps`, `DialogProvider` | Provider that manages programmatic dialog stack via useDialog() | `DialogProvider.spec.tsx` |
|
|
134
|
+
| `src/components/disclosure/Tabs.tsx` | `Tabs` | Tab bar with controlled/uncontrolled active tab selection | `Tabs.spec.tsx` |
|
|
181
135
|
|
|
182
136
|
### Feedback
|
|
183
137
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
138
|
+
| Source | Exports | Description | Test |
|
|
139
|
+
|--------|---------|-------------|------|
|
|
140
|
+
| `src/components/feedback/notification/NotificationContext.ts` | `NotificationTheme`, `NotificationAction`, `NotificationItem`, `NotificationOptions`, `NotificationUpdateOptions`, `NotificationContextValue`, `NotificationContext`, `useNotification` | Context and hook for creating/updating/removing toast notifications | `NotificationContext.spec.tsx` |
|
|
141
|
+
| `src/components/feedback/notification/NotificationBell.tsx` | `NotificationBellProps`, `NotificationBell` | Bell icon button that shows notification history dropdown | `NotificationBell.spec.tsx` |
|
|
142
|
+
| `src/components/feedback/notification/NotificationBanner.tsx` | `NotificationBanner` | Fixed top-right banner that displays incoming notifications | `NotificationBanner.spec.tsx` |
|
|
143
|
+
| `src/components/feedback/busy/BusyContext.ts` | `BusyVariant`, `BusyContextValue`, `BusyContext`, `useBusy` | Context and hook for showing/hiding spinner or progress bar overlay | - |
|
|
144
|
+
| `src/components/feedback/busy/BusyContainer.tsx` | `BusyContainerProps`, `BusyContainer` | Container that overlays a spinner or progress bar while busy | `BusyContainer.spec.tsx` |
|
|
145
|
+
| `src/components/feedback/print/PrintContext.ts` | `PrintOptions`, `PrintContextValue`, `PrintContext`, `usePrint` | Context and hook for sending content to printer or exporting as PDF | - |
|
|
146
|
+
| `src/components/feedback/print/PrintProvider.tsx` | `PrintProvider` | Provider that implements toPrinter() and toPdf() via jsPDF and html-to-image | - |
|
|
147
|
+
| `src/components/feedback/print/Print.tsx` | `Print` | Declarative print content wrapper with Print.Page sub-component | `Print.spec.tsx` |
|
|
148
|
+
| `src/components/feedback/print/PrintInstanceContext.ts` | `PrintInstance`, `PrintInstanceContext`, `usePrintInstance` | Context providing ready() callback to print content components | - |
|
|
149
|
+
| `src/components/feedback/Progress.tsx` | `ProgressTheme`, `ProgressProps`, `Progress` | Horizontal progress bar with theme and size options | - |
|
|
150
|
+
|
|
151
|
+
### Providers
|
|
152
|
+
|
|
153
|
+
| Source | Exports | Description | Test |
|
|
154
|
+
|--------|---------|-------------|------|
|
|
155
|
+
| `src/providers/ConfigContext.tsx` | `AppConfig`, `ConfigContext`, `useConfig`, `ConfigProvider` | App-wide configuration provider (clientName as storage key prefix) | `ConfigContext.spec.tsx` |
|
|
156
|
+
| `src/providers/SyncStorageContext.tsx` | `StorageAdapter`, `SyncStorageContextValue`, `SyncStorageContext`, `useSyncStorage`, `SyncStorageProvider` | Pluggable storage adapter provider (localStorage by default, swappable) | `SyncStorageContext.spec.tsx` |
|
|
157
|
+
| `src/providers/LoggerContext.tsx` | `LogAdapter`, `LoggerContextValue`, `LoggerContext`, `LoggerProvider` | Logger provider with chainable adapter decoration (consola by default) | `LoggerContext.spec.tsx` |
|
|
158
|
+
| `src/providers/ThemeContext.tsx` | `ThemeMode`, `ResolvedTheme`, `useTheme`, `ThemeProvider` | Theme provider managing light/dark/system mode with OS detection | - |
|
|
159
|
+
| `src/providers/ServiceClientContext.ts` | `ServiceClientContextValue`, `ServiceClientContext`, `useServiceClient` | Context for managing named WebSocket service client connections | `ServiceClientContext.spec.tsx` |
|
|
160
|
+
| `src/providers/shared-data/SharedDataContext.ts` | `SharedDataDefinition`, `SharedDataAccessor`, `SharedDataValue`, `SharedDataContext`, `useSharedData` | Context for reactive server-synced shared data with live-update subscriptions | `SharedDataProvider.spec.tsx` |
|
|
161
|
+
| `src/providers/shared-data/SharedDataChangeEvent.ts` | `SharedDataChangeEvent` | Service event definition for broadcasting shared data changes | - |
|
|
162
|
+
| `src/providers/SystemProvider.tsx` | `BusyVariant`, `SystemProvider` | Composite root provider that composes all infrastructure providers | - |
|
|
163
|
+
| `src/providers/i18n/I18nContext.tsx` | `useI18n`, `useI18nOptional`, `I18nProvider` | Internationalization provider with t(), locale management, and localStorage persistence | `I18nContext.spec.tsx` |
|
|
164
|
+
| `src/providers/i18n/I18nContext.types.ts` | `I18nContextValue`, `I18nConfigureOptions`, `FlatDict` | TypeScript types for I18n context value, configure options, and flat dict | - |
|
|
165
|
+
|
|
166
|
+
### Hooks
|
|
167
|
+
|
|
168
|
+
| Source | Exports | Description | Test |
|
|
169
|
+
|--------|---------|-------------|------|
|
|
170
|
+
| `src/hooks/useLocalStorage.ts` | `useLocalStorage` | Reactive localStorage signal with clientName-prefixed keys | `useLocalStorage.spec.tsx` |
|
|
171
|
+
| `src/hooks/useSyncConfig.ts` | `useSyncConfig` | Persistent config signal synced via SyncStorageProvider (falls back to localStorage) | `useSyncConfig.spec.tsx` |
|
|
172
|
+
| `src/hooks/useLogger.ts` | `Logger`, `useLogger` | Logger hook that delegates to LoggerContext adapter (consola fallback) | `useLogger.spec.tsx` |
|
|
173
|
+
| `src/hooks/createControllableSignal.ts` | `createControllableSignal` | Controlled/uncontrolled signal pattern hook supporting functional setters | `createControllableSignal.spec.ts` |
|
|
174
|
+
| `src/hooks/createControllableStore.ts` | `createControllableStore` | Controlled/uncontrolled store pattern hook for object/array state | - |
|
|
175
|
+
| `src/hooks/createIMEHandler.ts` | `createIMEHandler` | IME composition handler that delays value commit to prevent Korean input breakage | `createIMEHandler.spec.ts` |
|
|
176
|
+
| `src/hooks/createMountTransition.ts` | `createMountTransition` | Mount/unmount animation hook providing mounted and animating signals | `createMountTransition.spec.ts` |
|
|
177
|
+
| `src/hooks/createSlotSignal.ts` | `SlotAccessor`, `createSlotSignal` | Signal factory for registering JSX slot content from child components | - |
|
|
178
|
+
| `src/hooks/useRouterLink.ts` | `RouterLinkOptions`, `useRouterLink` | Router navigation hook with Shift+click new-window support | `useRouterLink.spec.tsx` |
|
|
179
|
+
|
|
180
|
+
### Styles
|
|
181
|
+
|
|
182
|
+
| Source | Exports | Description | Test |
|
|
183
|
+
|--------|---------|-------------|------|
|
|
184
|
+
| `src/styles/tokens.styles.ts` | `borderDefault`, `borderSubtle`, `bgSurface`, `textDefault`, `textMuted`, `textPlaceholder`, `disabledOpacity`, `ComponentSize`, `ComponentSizeCompact`, `paddingXs`, `paddingSm`, `paddingLg`, `paddingXl`, `SemanticTheme`, `themeTokens` | Design token constants (colors, sizes, themes) as Tailwind class strings | - |
|
|
185
|
+
| `src/styles/patterns.styles.ts` | `iconButtonBase`, `insetFocusOutline`, `insetFocusOutlineSelf`, `insetBase`, `fieldSurface`, `inputBase` | Reusable Tailwind class patterns for icon buttons, inset fields, and input elements | - |
|
|
186
|
+
|
|
187
|
+
### Directives
|
|
188
|
+
|
|
189
|
+
| Source | Exports | Description | Test |
|
|
190
|
+
|--------|---------|-------------|------|
|
|
191
|
+
| `src/directives/ripple.ts` | `ripple` | SolidJS directive that adds a Material-style ripple effect on click | `ripple.spec.tsx` |
|
|
192
|
+
|
|
193
|
+
### Helpers
|
|
194
|
+
|
|
195
|
+
| Source | Exports | Description | Test |
|
|
196
|
+
|--------|---------|-------------|------|
|
|
197
|
+
| `src/helpers/mergeStyles.ts` | `mergeStyles` | Merges multiple JSX style objects or strings into a single style object | `mergeStyles.spec.ts` |
|
|
198
|
+
| `src/helpers/createAppStructure.ts` | `AppStructureGroupItem`, `AppStructureLeafItem`, `AppStructureItem`, `AppStructureSubPerm`, `AppMenu`, `AppPerm`, `AppFlatPerm`, `AppRoute`, `AppFlatMenu`, `AppStructure`, `createAppStructure` | Builds typed app route/menu/permission structures from a nested definition tree | `createAppStructure.spec.tsx` |
|
|
199
|
+
| `src/helpers/createSlotComponent.ts` | `createSlotComponent` | Factory for creating slot registration sub-components that inject into parent context | - |
|
|
200
|
+
|
|
201
|
+
### Features
|
|
202
|
+
|
|
203
|
+
| Source | Exports | Description | Test |
|
|
204
|
+
|--------|---------|-------------|------|
|
|
205
|
+
| `src/components/features/address/AddressSearch.tsx` | `AddressSearchResult`, `AddressSearchContent` | Daum Postcode address search dialog content component | `AddressSearch.spec.tsx` |
|
|
206
|
+
| `src/components/features/shared-data/SharedDataSelect.tsx` | `SharedDataSelectProps`, `SharedDataSelect` | Select dropdown bound to a SharedDataAccessor with search and edit action | - |
|
|
207
|
+
| `src/components/features/shared-data/SharedDataSelectButton.tsx` | `SharedDataSelectButtonProps`, `SharedDataSelectButton` | Button-trigger selector bound to a SharedDataAccessor via modal list | - |
|
|
208
|
+
| `src/components/features/shared-data/SharedDataSelectList.tsx` | `SharedDataSelectListProps`, `SharedDataSelectList` | Paginated list for selecting a single item from a SharedDataAccessor | `SharedDataSelectList.spec.tsx` |
|
|
209
|
+
| `src/components/features/data-select-button/DataSelectButton.tsx` | `DataSelectModalResult`, `DataSelectButtonProps`, `DataSelectButton` | Button that opens a modal dialog for selecting items from an async data source | `DataSelectButton.spec.tsx` |
|
|
210
|
+
| `src/components/features/crud-sheet/CrudSheet.tsx` | `CrudSheet` | Full CRUD data grid with inline/modal edit, Excel import/export, search | `CrudSheet.spec.tsx` |
|
|
211
|
+
| `src/components/features/crud-sheet/types.ts` | `SearchResult`, `InlineEditConfig`, `ModalEditConfig`, `ExcelConfig`, `SelectResult`, `CrudSheetCellContext`, `CrudSheetContext`, `CrudSheetProps`, `CrudSheetColumnDef`, `CrudSheetColumnProps`, `CrudSheetFilterDef`, `CrudSheetToolsDef`, `CrudSheetHeaderDef` | TypeScript types and interfaces for CrudSheet configuration and callbacks | - |
|
|
212
|
+
| `src/components/features/crud-detail/CrudDetail.tsx` | `CrudDetail` | Detail form panel with load/save/refresh lifecycle and change tracking | `CrudDetail.spec.tsx` |
|
|
213
|
+
| `src/components/features/crud-detail/types.ts` | `CrudDetailInfo`, `CrudDetailContext`, `CrudDetailProps`, `CrudDetailToolsDef`, `CrudDetailBeforeDef`, `CrudDetailAfterDef` | TypeScript types and interfaces for CrudDetail props and context | - |
|
|
214
|
+
| `src/components/features/permission-table/PermissionTable.tsx` | `PermissionTableProps`, `collectAllPerms`, `filterByModules`, `changePermCheck`, `PermissionTable` | Permission matrix table for managing role-based access per module/action | `PermissionTable.spec.tsx` |
|
|
242
215
|
|
|
243
216
|
## License
|
|
244
217
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\calendar\\Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,GAAG,EAAc,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\calendar\\Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,GAAG,EAAc,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjD,MAAM,WAAW,aAAa,CAAC,MAAM,CAAE,SAAQ,IAAI,CACjD,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACpC,UAAU,CACX;IACC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA0BD,iBAAS,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,eAgHzD;AAED,eAAO,MAAM,QAAQ,qBAAe,CAAC"}
|
|
@@ -11,7 +11,7 @@ import { DateOnly } from "@simplysm/core-common";
|
|
|
11
11
|
import clsx from "clsx";
|
|
12
12
|
import { twMerge } from "tailwind-merge";
|
|
13
13
|
import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
|
|
14
|
-
|
|
14
|
+
import { useI18nOptional } from "../../../providers/i18n/I18nContext.js";
|
|
15
15
|
const baseClass = clsx(
|
|
16
16
|
"w-full",
|
|
17
17
|
"border-separate border-spacing-0",
|
|
@@ -39,11 +39,24 @@ function CalendarBase(props) {
|
|
|
39
39
|
value: () => local.yearMonth ?? new DateOnly().setDay(1),
|
|
40
40
|
onChange: () => local.onYearMonthChange
|
|
41
41
|
});
|
|
42
|
+
const i18n = useI18nOptional();
|
|
43
|
+
const weekNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
|
|
42
44
|
const weekHeaders = createMemo(() => {
|
|
43
45
|
const start = weekStartDay();
|
|
44
46
|
return Array.from({
|
|
45
47
|
length: 7
|
|
46
|
-
}, (_, i) =>
|
|
48
|
+
}, (_, i) => {
|
|
49
|
+
const key = weekNames[(start + i) % 7];
|
|
50
|
+
return (i18n == null ? void 0 : i18n.t(`calendar.weeks.${key}`)) ?? {
|
|
51
|
+
sun: "Sun",
|
|
52
|
+
mon: "Mon",
|
|
53
|
+
tue: "Tue",
|
|
54
|
+
wed: "Wed",
|
|
55
|
+
thu: "Thu",
|
|
56
|
+
fri: "Fri",
|
|
57
|
+
sat: "Sat"
|
|
58
|
+
}[key];
|
|
59
|
+
});
|
|
47
60
|
});
|
|
48
61
|
const dataTable = createMemo(() => {
|
|
49
62
|
const ym = yearMonth();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/data/calendar/Calendar.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;AAAA,SAASA,YAAYC,KAAeC,kBAAkB;AACtD,SAASC,gBAAgB;AACzB,OAAOC,UAAU;AACjB,SAASC,eAAe;AACxB,SAASC,gCAAgC;
|
|
5
|
-
"names": ["createMemo", "For", "splitProps", "DateOnly", "clsx", "twMerge", "createControllableSignal", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["createMemo", "For", "splitProps", "DateOnly", "clsx", "twMerge", "createControllableSignal", "useI18nOptional", "baseClass", "notCurrentClass", "dayClass", "notCurrentDayClass", "contentClass", "CalendarBase", "props", "local", "rest", "weekStartDay", "minDaysInFirstWeek", "yearMonth", "value", "setDay", "onChange", "onYearMonthChange", "i18n", "weekNames", "weekHeaders", "start", "Array", "from", "length", "_", "i", "key", "t", "sun", "mon", "tue", "wed", "thu", "fri", "sat", "dataTable", "ym", "items", "getDate", "getItemDate", "itemMap", "Map", "date", "tick", "arr", "get", "push", "item", "index", "set", "firstDate", "getWeekSeqStartDate", "result", "r", "row", "c", "addDays", "getClassName", "class", "_el$", "_tmpl$", "_el$2", "firstChild", "_el$3", "_el$4", "nextSibling", "_$spread", "_$mergeProps", "_$insert", "_$createComponent", "each", "children", "header", "_el$5", "_tmpl$2", "_el$6", "_tmpl$3", "cell", "_el$7", "_tmpl$4", "_el$8", "_el$9", "day", "_$className", "entry", "renderItem", "_$effect", "_p$", "_v$", "month", "_v$2", "e", "undefined", "Calendar"]
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@ const KanbanContext = createContext();
|
|
|
3
3
|
function useKanbanContext() {
|
|
4
4
|
const context = useContext(KanbanContext);
|
|
5
5
|
if (!context) {
|
|
6
|
-
throw new Error("useKanbanContext
|
|
6
|
+
throw new Error("useKanbanContext can only be used inside Kanban");
|
|
7
7
|
}
|
|
8
8
|
return context;
|
|
9
9
|
}
|
|
@@ -11,7 +11,7 @@ const KanbanLaneContext = createContext();
|
|
|
11
11
|
function useKanbanLaneContext() {
|
|
12
12
|
const context = useContext(KanbanLaneContext);
|
|
13
13
|
if (!context) {
|
|
14
|
-
throw new Error("useKanbanLaneContext
|
|
14
|
+
throw new Error("useKanbanLaneContext can only be used inside Kanban.Lane");
|
|
15
15
|
}
|
|
16
16
|
return context;
|
|
17
17
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/data/kanban/KanbanContext.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,eAAe,kBAA8C;AAyC/D,MAAM,gBAAgB,cAAkC;AAExD,SAAS,mBAAuC;AACrD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,
|
|
4
|
+
"mappings": "AAAA,SAAS,eAAe,kBAA8C;AAyC/D,MAAM,gBAAgB,cAAkC;AAExD,SAAS,mBAAuC;AACrD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AACA,SAAO;AACT;AAkBO,MAAM,oBAAoB,cAAsC;AAEhE,SAAS,uBAA+C;AAC7D,QAAM,UAAU,WAAW,iBAAiB;AAC5C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,SAAO;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -2,19 +2,19 @@ import { type JSX, type ParentComponent } from "solid-js";
|
|
|
2
2
|
import { ListItem } from "./ListItem";
|
|
3
3
|
export interface ListProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Apply transparent background style
|
|
6
6
|
*/
|
|
7
7
|
inset?: boolean;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Container component for ListItems
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
* - `Space`/`Enter`:
|
|
14
|
-
* - `ArrowUp`/`ArrowDown`:
|
|
15
|
-
* - `Home`/`End`:
|
|
16
|
-
* - `ArrowRight`:
|
|
17
|
-
* - `ArrowLeft`:
|
|
12
|
+
* Supports tree-view style keyboard navigation:
|
|
13
|
+
* - `Space`/`Enter`: toggle current item
|
|
14
|
+
* - `ArrowUp`/`ArrowDown`: move focus to previous/next item
|
|
15
|
+
* - `Home`/`End`: move focus to first/last item
|
|
16
|
+
* - `ArrowRight`: open if closed, or focus first child if open
|
|
17
|
+
* - `ArrowLeft`: close if open, or focus parent if closed
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```tsx
|