@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
|
@@ -1,95 +1,95 @@
|
|
|
1
1
|
import { type Accessor, createContext, useContext } from "solid-js";
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/** Notification theme */
|
|
4
4
|
export type NotificationTheme = "info" | "success" | "warning" | "danger";
|
|
5
5
|
|
|
6
|
-
/**
|
|
6
|
+
/** Notification action button */
|
|
7
7
|
export interface NotificationAction {
|
|
8
|
-
/**
|
|
8
|
+
/** Button text */
|
|
9
9
|
label: string;
|
|
10
|
-
/**
|
|
10
|
+
/** Click handler */
|
|
11
11
|
onClick: () => void;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/** Notification item */
|
|
15
15
|
export interface NotificationItem {
|
|
16
|
-
/**
|
|
16
|
+
/** Unique identifier */
|
|
17
17
|
id: string;
|
|
18
|
-
/**
|
|
18
|
+
/** Theme (info, success, warning, danger) */
|
|
19
19
|
theme: NotificationTheme;
|
|
20
|
-
/**
|
|
20
|
+
/** Notification title */
|
|
21
21
|
title: string;
|
|
22
|
-
/**
|
|
22
|
+
/** Notification message (optional) */
|
|
23
23
|
message?: string;
|
|
24
|
-
/**
|
|
24
|
+
/** Action button (optional) */
|
|
25
25
|
action?: NotificationAction;
|
|
26
|
-
/**
|
|
26
|
+
/** Creation time */
|
|
27
27
|
createdAt: Date;
|
|
28
|
-
/**
|
|
28
|
+
/** Read status */
|
|
29
29
|
read: boolean;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
/**
|
|
32
|
+
/** Notification creation options */
|
|
33
33
|
export interface NotificationOptions {
|
|
34
|
-
/**
|
|
34
|
+
/** Action button to display in notification */
|
|
35
35
|
action?: NotificationAction;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
/**
|
|
38
|
+
/** Notification update options */
|
|
39
39
|
export interface NotificationUpdateOptions {
|
|
40
|
-
/** true
|
|
40
|
+
/** If true, mark read notification as unread (redisplay banner) */
|
|
41
41
|
renotify?: boolean;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
*
|
|
45
|
+
* Notification system Context value
|
|
46
46
|
*
|
|
47
47
|
* @remarks
|
|
48
|
-
*
|
|
49
|
-
*
|
|
48
|
+
* Provides methods to create, update, delete, and manage read status of notifications.
|
|
49
|
+
* Maintains up to 50 notifications; older items are removed when exceeded.
|
|
50
50
|
*/
|
|
51
51
|
export interface NotificationContextValue {
|
|
52
|
-
//
|
|
52
|
+
// State
|
|
53
53
|
items: Accessor<NotificationItem[]>;
|
|
54
54
|
unreadCount: Accessor<number>;
|
|
55
55
|
latestUnread: Accessor<NotificationItem | undefined>;
|
|
56
56
|
|
|
57
|
-
//
|
|
57
|
+
// Create notification (returns id)
|
|
58
58
|
info: (title: string, message?: string, options?: NotificationOptions) => string;
|
|
59
59
|
success: (title: string, message?: string, options?: NotificationOptions) => string;
|
|
60
60
|
warning: (title: string, message?: string, options?: NotificationOptions) => string;
|
|
61
61
|
danger: (title: string, message?: string, options?: NotificationOptions) => string;
|
|
62
62
|
error: (err?: any, header?: string) => void;
|
|
63
63
|
|
|
64
|
-
//
|
|
64
|
+
// Update notification
|
|
65
65
|
update: (
|
|
66
66
|
id: string,
|
|
67
67
|
updates: Partial<Pick<NotificationItem, "title" | "message" | "theme" | "action">>,
|
|
68
68
|
options?: NotificationUpdateOptions,
|
|
69
69
|
) => void;
|
|
70
70
|
|
|
71
|
-
//
|
|
71
|
+
// Delete notification
|
|
72
72
|
remove: (id: string) => void;
|
|
73
73
|
|
|
74
|
-
//
|
|
74
|
+
// Management
|
|
75
75
|
markAsRead: (id: string) => void;
|
|
76
76
|
markAllAsRead: () => void;
|
|
77
77
|
dismissBanner: () => void;
|
|
78
78
|
clear: () => void;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
/**
|
|
81
|
+
/** Notification system Context */
|
|
82
82
|
export const NotificationContext = createContext<NotificationContextValue>();
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* Hook to access the notification system
|
|
86
86
|
*
|
|
87
|
-
* @throws
|
|
87
|
+
* @throws Error if used outside NotificationProvider
|
|
88
88
|
*/
|
|
89
89
|
export function useNotification(): NotificationContextValue {
|
|
90
90
|
const context = useContext(NotificationContext);
|
|
91
91
|
if (!context) {
|
|
92
|
-
throw new Error("useNotification
|
|
92
|
+
throw new Error("useNotification can only be used inside NotificationProvider");
|
|
93
93
|
}
|
|
94
94
|
return context;
|
|
95
95
|
}
|
|
@@ -12,13 +12,13 @@ import { useLogger } from "../../../hooks/useLogger";
|
|
|
12
12
|
const MAX_ITEMS = 50;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Notification system Provider
|
|
16
16
|
*
|
|
17
17
|
* @remarks
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
21
|
-
* -
|
|
18
|
+
* - Maintains up to 50 notifications (older items auto-removed)
|
|
19
|
+
* - Shows latest unread notification in banner
|
|
20
|
+
* - Includes aria-live region for screen readers
|
|
21
|
+
* - Logs errors to logger if LoggerProvider is present
|
|
22
22
|
*/
|
|
23
23
|
export const NotificationProvider: ParentComponent = (props) => {
|
|
24
24
|
const logger = useLogger();
|
|
@@ -99,10 +99,10 @@ export const NotificationProvider: ParentComponent = (props) => {
|
|
|
99
99
|
|
|
100
100
|
const updated = { ...item, ...updates };
|
|
101
101
|
|
|
102
|
-
// renotify:
|
|
102
|
+
// renotify: if read, change back to unread
|
|
103
103
|
if (options?.renotify && item.read) {
|
|
104
104
|
updated.read = false;
|
|
105
|
-
//
|
|
105
|
+
// if dismissed banner is renotified, show it again
|
|
106
106
|
setDismissedBannerId(null);
|
|
107
107
|
}
|
|
108
108
|
|
|
@@ -155,10 +155,10 @@ export const NotificationProvider: ParentComponent = (props) => {
|
|
|
155
155
|
|
|
156
156
|
return (
|
|
157
157
|
<NotificationContext.Provider value={contextValue}>
|
|
158
|
-
{/*
|
|
158
|
+
{/* Screen reader Live Region */}
|
|
159
159
|
<div role="status" aria-live="polite" aria-atomic="true" class="sr-only">
|
|
160
160
|
<Show when={latestUnread()}>
|
|
161
|
-
{(item) =>
|
|
161
|
+
{(item) => `Notification: ${item().title} ${item().message ?? ""}`}
|
|
162
162
|
</Show>
|
|
163
163
|
</div>
|
|
164
164
|
{props.children}
|
|
@@ -15,6 +15,6 @@ export const PrintContext = createContext<PrintContextValue>();
|
|
|
15
15
|
|
|
16
16
|
export function usePrint(): PrintContextValue {
|
|
17
17
|
const ctx = useContext(PrintContext);
|
|
18
|
-
if (!ctx) throw new Error("usePrint
|
|
18
|
+
if (!ctx) throw new Error("usePrint can only be used inside PrintProvider");
|
|
19
19
|
return ctx;
|
|
20
20
|
}
|
|
@@ -38,7 +38,7 @@ export const triggerSizeClasses: Record<ComponentSize, string> = {
|
|
|
38
38
|
|
|
39
39
|
export const chevronWrapperClass = clsx("opacity-30", "hover:opacity-100");
|
|
40
40
|
|
|
41
|
-
/** Select/Combobox
|
|
41
|
+
/** Select/Combobox shared trigger class builder */
|
|
42
42
|
export function getTriggerClass(options: {
|
|
43
43
|
size?: ComponentSize;
|
|
44
44
|
disabled?: boolean;
|
|
@@ -27,13 +27,13 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
27
27
|
|
|
28
28
|
const resolved = children(() => props.children);
|
|
29
29
|
|
|
30
|
-
//
|
|
30
|
+
// Reactively update setCustomValidity when message changes (always, regardless of touchMode)
|
|
31
31
|
createEffect(() => {
|
|
32
32
|
const msg = props.message ?? "";
|
|
33
33
|
hiddenInputEl.setCustomValidity(msg);
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
-
// target
|
|
36
|
+
// Set target to relative + insert hidden input inside target
|
|
37
37
|
createEffect(() => {
|
|
38
38
|
const targetEl = resolved.toArray().find((el): el is HTMLElement => el instanceof HTMLElement);
|
|
39
39
|
if (!targetEl) return;
|
|
@@ -52,7 +52,7 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
52
52
|
});
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
-
//
|
|
55
|
+
// Handle visual indication
|
|
56
56
|
createEffect(() => {
|
|
57
57
|
const variant = props.variant ?? "dot";
|
|
58
58
|
const message = props.message ?? "";
|
|
@@ -102,7 +102,7 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
102
102
|
}
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
-
// touchMode:
|
|
105
|
+
// touchMode: register focusout event on target to track touched state
|
|
106
106
|
createEffect(() => {
|
|
107
107
|
if (!(props.touchMode ?? false)) return;
|
|
108
108
|
|
|
@@ -121,7 +121,7 @@ export const Invalid: ParentComponent<InvalidProps> = (props) => {
|
|
|
121
121
|
});
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
-
// hidden input
|
|
124
|
+
// Redirect hidden input focus to focusable child of target
|
|
125
125
|
hiddenInputEl.addEventListener("focus", () => {
|
|
126
126
|
const targetEl = resolved.toArray().find((el): el is HTMLElement => el instanceof HTMLElement);
|
|
127
127
|
|
|
@@ -19,33 +19,33 @@ const iconSizes: Record<"sm" | "lg", string> = {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
const modeLabels: Record<ThemeMode, string> = {
|
|
22
|
-
light: "
|
|
23
|
-
system: "
|
|
24
|
-
dark: "
|
|
22
|
+
light: "Light mode",
|
|
23
|
+
system: "System settings",
|
|
24
|
+
dark: "Dark mode",
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export interface ThemeToggleProps extends Omit<
|
|
28
28
|
JSX.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
29
29
|
"children"
|
|
30
30
|
> {
|
|
31
|
-
/**
|
|
31
|
+
/** Button size */
|
|
32
32
|
size?: "sm" | "lg";
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* Theme toggle button component
|
|
37
37
|
*
|
|
38
38
|
* @remarks
|
|
39
|
-
* -
|
|
40
|
-
* -
|
|
41
|
-
* -
|
|
39
|
+
* - Must be used inside ThemeProvider
|
|
40
|
+
* - Cycles through light → system → dark → light on click
|
|
41
|
+
* - Shows appropriate icon for current mode (☀️ / 💻 / 🌙)
|
|
42
42
|
*
|
|
43
43
|
* @example
|
|
44
44
|
* ```tsx
|
|
45
|
-
* //
|
|
45
|
+
* // Basic usage
|
|
46
46
|
* <ThemeToggle />
|
|
47
47
|
*
|
|
48
|
-
* //
|
|
48
|
+
* // Adjust size
|
|
49
49
|
* <ThemeToggle size="sm" />
|
|
50
50
|
* <ThemeToggle size="lg" />
|
|
51
51
|
* ```
|
|
@@ -12,7 +12,7 @@ import { insetBase, insetFocusOutlineSelf } from "../../../styles/patterns.style
|
|
|
12
12
|
|
|
13
13
|
export type CheckboxSize = ComponentSize;
|
|
14
14
|
|
|
15
|
-
// wrapper
|
|
15
|
+
// wrapper base styles
|
|
16
16
|
export const checkboxBaseClass = clsx(
|
|
17
17
|
"inline-flex items-center gap-2",
|
|
18
18
|
"whitespace-nowrap",
|
|
@@ -25,7 +25,7 @@ export const checkboxBaseClass = clsx(
|
|
|
25
25
|
"focus-visible:ring-2",
|
|
26
26
|
);
|
|
27
27
|
|
|
28
|
-
//
|
|
28
|
+
// Indicator base styles
|
|
29
29
|
export const indicatorBaseClass = clsx(
|
|
30
30
|
"flex shrink-0 items-center justify-center",
|
|
31
31
|
"size-4",
|
|
@@ -36,10 +36,10 @@ export const indicatorBaseClass = clsx(
|
|
|
36
36
|
"transition-colors",
|
|
37
37
|
);
|
|
38
38
|
|
|
39
|
-
//
|
|
39
|
+
// Checked state styles (primary fixed)
|
|
40
40
|
export const checkedClass = clsx("border-primary-500 bg-primary-500", "text-white");
|
|
41
41
|
|
|
42
|
-
//
|
|
42
|
+
// Size-specific styles
|
|
43
43
|
export const checkboxSizeClasses: Record<CheckboxSize, string> = {
|
|
44
44
|
xs: clsx("h-field-xs", paddingXs),
|
|
45
45
|
sm: clsx("h-field-sm", paddingSm),
|
|
@@ -47,14 +47,14 @@ export const checkboxSizeClasses: Record<CheckboxSize, string> = {
|
|
|
47
47
|
xl: clsx("h-field-xl", paddingXl),
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
//
|
|
50
|
+
// Inset styles
|
|
51
51
|
export const checkboxInsetClass = clsx(
|
|
52
52
|
"h-field-inset justify-center bg-transparent",
|
|
53
53
|
insetBase,
|
|
54
54
|
insetFocusOutlineSelf,
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
-
//
|
|
57
|
+
// Inset size-specific heights (excluding 2px border)
|
|
58
58
|
export const checkboxInsetSizeHeightClasses: Record<CheckboxSize, string> = {
|
|
59
59
|
xs: "h-field-inset-xs",
|
|
60
60
|
sm: "h-field-inset-sm",
|
|
@@ -62,8 +62,8 @@ export const checkboxInsetSizeHeightClasses: Record<CheckboxSize, string> = {
|
|
|
62
62
|
xl: "h-field-inset-xl",
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
//
|
|
65
|
+
// Inline styles
|
|
66
66
|
export const checkboxInlineClass = clsx("!h-auto", "!p-0", "gap-1");
|
|
67
67
|
|
|
68
|
-
//
|
|
68
|
+
// Disabled styles
|
|
69
69
|
export const checkboxDisabledClass = disabledOpacity;
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./Checkbox.styles";
|
|
18
18
|
import { Invalid } from "../Invalid";
|
|
19
19
|
|
|
20
|
-
// Directive
|
|
20
|
+
// Directive usage declaration (for TypeScript)
|
|
21
21
|
void ripple;
|
|
22
22
|
|
|
23
23
|
export interface CheckboxProps {
|
|
@@ -84,7 +84,7 @@ export const Checkbox: ParentComponent<CheckboxProps> = (props) => {
|
|
|
84
84
|
|
|
85
85
|
const errorMsg = createMemo(() => {
|
|
86
86
|
const v = local.value ?? false;
|
|
87
|
-
if (local.required && !v) return "
|
|
87
|
+
if (local.required && !v) return "This is a required selection";
|
|
88
88
|
return local.validate?.(v);
|
|
89
89
|
});
|
|
90
90
|
|
|
@@ -31,7 +31,7 @@ const { Group } = createSelectionGroup({
|
|
|
31
31
|
mode: "multiple",
|
|
32
32
|
contextName: "CheckboxGroup",
|
|
33
33
|
ItemComponent: Checkbox,
|
|
34
|
-
emptyErrorMsg: "
|
|
34
|
+
emptyErrorMsg: "Please select an item",
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
export const CheckboxGroup = Group as unknown as CheckboxGroupComponent;
|
|
@@ -18,7 +18,7 @@ import { Invalid } from "../Invalid";
|
|
|
18
18
|
|
|
19
19
|
const radioDotClass = clsx("size-2", "rounded-full", "bg-current");
|
|
20
20
|
|
|
21
|
-
// Directive
|
|
21
|
+
// Directive usage declaration (for TypeScript)
|
|
22
22
|
void ripple;
|
|
23
23
|
|
|
24
24
|
export interface RadioProps {
|
|
@@ -85,7 +85,7 @@ export const Radio: ParentComponent<RadioProps> = (props) => {
|
|
|
85
85
|
|
|
86
86
|
const errorMsg = createMemo(() => {
|
|
87
87
|
const v = local.value ?? false;
|
|
88
|
-
if (local.required && !v) return "
|
|
88
|
+
if (local.required && !v) return "This is a required selection";
|
|
89
89
|
return local.validate?.(v);
|
|
90
90
|
});
|
|
91
91
|
|
|
@@ -31,7 +31,7 @@ const { Group } = createSelectionGroup({
|
|
|
31
31
|
mode: "single",
|
|
32
32
|
contextName: "RadioGroup",
|
|
33
33
|
ItemComponent: Radio,
|
|
34
|
-
emptyErrorMsg: "
|
|
34
|
+
emptyErrorMsg: "Please select an item",
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
export const RadioGroup = Group as unknown as RadioGroupComponent;
|
|
@@ -5,13 +5,13 @@ import { createControllableSignal } from "../../../hooks/createControllableSigna
|
|
|
5
5
|
import { Invalid } from "../Invalid";
|
|
6
6
|
import { type ComponentSize } from "../../../styles/tokens.styles";
|
|
7
7
|
|
|
8
|
-
//
|
|
8
|
+
// Base style
|
|
9
9
|
const baseClass = clsx(
|
|
10
10
|
"size-field",
|
|
11
11
|
"rounded",
|
|
12
12
|
"border border-black/10 dark:border-white/10",
|
|
13
13
|
"cursor-pointer",
|
|
14
|
-
// color input
|
|
14
|
+
// Remove color input default styles
|
|
15
15
|
"[&::-webkit-color-swatch-wrapper]:p-0",
|
|
16
16
|
"[&::-webkit-color-swatch]:border-none",
|
|
17
17
|
"[&::-webkit-color-swatch]:rounded-none",
|
|
@@ -19,7 +19,7 @@ const baseClass = clsx(
|
|
|
19
19
|
"[&::-moz-color-swatch]:rounded-none",
|
|
20
20
|
);
|
|
21
21
|
|
|
22
|
-
//
|
|
22
|
+
// Size-specific styles
|
|
23
23
|
const sizeClasses: Record<ComponentSize, string> = {
|
|
24
24
|
xs: "size-field-xs",
|
|
25
25
|
sm: "size-field-sm",
|
|
@@ -27,7 +27,7 @@ const sizeClasses: Record<ComponentSize, string> = {
|
|
|
27
27
|
xl: "size-field-xl",
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
//
|
|
30
|
+
// Disabled style - shown as diagonal stripes
|
|
31
31
|
// eslint-disable-next-line tailwindcss/enforces-shorthand
|
|
32
32
|
const disabledClass = clsx(
|
|
33
33
|
"cursor-default",
|
|
@@ -37,42 +37,42 @@ const disabledClass = clsx(
|
|
|
37
37
|
);
|
|
38
38
|
|
|
39
39
|
export interface ColorPickerProps {
|
|
40
|
-
/**
|
|
40
|
+
/** Color value (#RRGGBB format) */
|
|
41
41
|
value?: string;
|
|
42
42
|
|
|
43
|
-
/**
|
|
43
|
+
/** Value change callback */
|
|
44
44
|
onValueChange?: (value: string | undefined) => void;
|
|
45
45
|
|
|
46
|
-
/**
|
|
46
|
+
/** Title (tooltip) */
|
|
47
47
|
title?: string;
|
|
48
48
|
|
|
49
|
-
/**
|
|
49
|
+
/** Disable input */
|
|
50
50
|
disabled?: boolean;
|
|
51
51
|
|
|
52
|
-
/**
|
|
52
|
+
/** Size */
|
|
53
53
|
size?: ComponentSize;
|
|
54
54
|
|
|
55
|
-
/** inset
|
|
55
|
+
/** inset mode (e.g., inside DataSheet cell) */
|
|
56
56
|
inset?: boolean;
|
|
57
57
|
|
|
58
|
-
/**
|
|
58
|
+
/** Required input */
|
|
59
59
|
required?: boolean;
|
|
60
60
|
|
|
61
|
-
/**
|
|
61
|
+
/** Custom validation function */
|
|
62
62
|
validate?: (value: string | undefined) => string | undefined;
|
|
63
63
|
|
|
64
|
-
/** touchMode:
|
|
64
|
+
/** touchMode: show errors only after blur */
|
|
65
65
|
touchMode?: boolean;
|
|
66
66
|
|
|
67
|
-
/**
|
|
67
|
+
/** Custom class */
|
|
68
68
|
class?: string;
|
|
69
69
|
|
|
70
|
-
/**
|
|
70
|
+
/** Custom style */
|
|
71
71
|
style?: JSX.CSSProperties;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
|
-
* ColorPicker
|
|
75
|
+
* ColorPicker component
|
|
76
76
|
*
|
|
77
77
|
* @example
|
|
78
78
|
* ```tsx
|
|
@@ -113,7 +113,7 @@ export const ColorPicker: Component<ColorPickerProps> = (props) => {
|
|
|
113
113
|
|
|
114
114
|
const errorMsg = createMemo(() => {
|
|
115
115
|
const v = value();
|
|
116
|
-
if (local.required && (v === undefined || v === "")) return "
|
|
116
|
+
if (local.required && (v === undefined || v === "")) return "This field is required";
|
|
117
117
|
return local.validate?.(v);
|
|
118
118
|
});
|
|
119
119
|
|