@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
package/docs/disclosure.md
DELETED
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
# Disclosure Components
|
|
2
|
-
|
|
3
|
-
## Tabs
|
|
4
|
-
|
|
5
|
-
Tab navigation component.
|
|
6
|
-
|
|
7
|
-
```tsx
|
|
8
|
-
import { Tabs } from "@simplysm/solid";
|
|
9
|
-
|
|
10
|
-
<Tabs value={activeTab()} onValueChange={setActiveTab}>
|
|
11
|
-
<Tabs.Tab value="tab1">Tab 1</Tabs.Tab>
|
|
12
|
-
<Tabs.Tab value="tab2">Tab 2</Tabs.Tab>
|
|
13
|
-
<Tabs.Tab value="tab3" disabled>Tab 3</Tabs.Tab>
|
|
14
|
-
</Tabs>
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
| Prop | Type | Default | Description |
|
|
18
|
-
|------|------|---------|-------------|
|
|
19
|
-
| `value` | `string` | - | Selected tab value |
|
|
20
|
-
| `onValueChange` | `(value: string) => void` | - | Tab change callback |
|
|
21
|
-
| `size` | `"xs" \| "sm" \| "lg" \| "xl"` | - | Size |
|
|
22
|
-
| `class` | `string` | - | Additional CSS class |
|
|
23
|
-
| `style` | `JSX.CSSProperties` | - | Inline style |
|
|
24
|
-
|
|
25
|
-
**Sub-components:**
|
|
26
|
-
- `Tabs.Tab` -- Individual tab (`value: string`, `disabled?: boolean`, `class?: string`)
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Collapse
|
|
31
|
-
|
|
32
|
-
Content collapse/expand animation component. Uses `margin-top`-based transition for smooth open/close effects.
|
|
33
|
-
|
|
34
|
-
```tsx
|
|
35
|
-
import { Collapse, Button } from "@simplysm/solid";
|
|
36
|
-
import { createSignal } from "solid-js";
|
|
37
|
-
|
|
38
|
-
const [open, setOpen] = createSignal(false);
|
|
39
|
-
|
|
40
|
-
<Button
|
|
41
|
-
aria-expanded={open()}
|
|
42
|
-
aria-controls="content"
|
|
43
|
-
onClick={() => setOpen(!open())}
|
|
44
|
-
>
|
|
45
|
-
Toggle
|
|
46
|
-
</Button>
|
|
47
|
-
<Collapse id="content" open={open()}>
|
|
48
|
-
<p>Collapsible content</p>
|
|
49
|
-
</Collapse>
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
| Prop | Type | Default | Description |
|
|
53
|
-
|------|------|---------|-------------|
|
|
54
|
-
| `open` | `boolean` | `false` | Open state |
|
|
55
|
-
|
|
56
|
-
Animation is automatically disabled when `prefers-reduced-motion` is set.
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Dropdown
|
|
61
|
-
|
|
62
|
-
Positioned dropdown popup using compound components. Trigger click auto-toggles open state.
|
|
63
|
-
|
|
64
|
-
```tsx
|
|
65
|
-
import { Dropdown, Button, List } from "@simplysm/solid";
|
|
66
|
-
|
|
67
|
-
// Trigger/Content compound components
|
|
68
|
-
<Dropdown>
|
|
69
|
-
<Dropdown.Trigger>
|
|
70
|
-
<Button>Open</Button>
|
|
71
|
-
</Dropdown.Trigger>
|
|
72
|
-
<Dropdown.Content>
|
|
73
|
-
<p class="p-3">Dropdown content</p>
|
|
74
|
-
</Dropdown.Content>
|
|
75
|
-
</Dropdown>
|
|
76
|
-
|
|
77
|
-
// Controlled open state
|
|
78
|
-
<Dropdown open={open()} onOpenChange={setOpen}>
|
|
79
|
-
<Dropdown.Trigger>
|
|
80
|
-
<Button>Open</Button>
|
|
81
|
-
</Dropdown.Trigger>
|
|
82
|
-
<Dropdown.Content>
|
|
83
|
-
<p class="p-3">Dropdown content</p>
|
|
84
|
-
</Dropdown.Content>
|
|
85
|
-
</Dropdown>
|
|
86
|
-
|
|
87
|
-
// Context menu (absolute position, no Trigger)
|
|
88
|
-
<Dropdown position={{ x: 100, y: 200 }} open={menuOpen()} onOpenChange={setMenuOpen}>
|
|
89
|
-
<Dropdown.Content>
|
|
90
|
-
<List inset>
|
|
91
|
-
<List.Item>Menu item 1</List.Item>
|
|
92
|
-
<List.Item>Menu item 2</List.Item>
|
|
93
|
-
</List>
|
|
94
|
-
</Dropdown.Content>
|
|
95
|
-
</Dropdown>
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
| Prop | Type | Default | Description |
|
|
99
|
-
|------|------|---------|-------------|
|
|
100
|
-
| `position` | `{ x: number; y: number }` | - | Absolute position (context menu mode, no Trigger needed) |
|
|
101
|
-
| `open` | `boolean` | - | Open state |
|
|
102
|
-
| `onOpenChange` | `(open: boolean) => void` | - | State change callback |
|
|
103
|
-
| `maxHeight` | `number` | `300` | Maximum height (px) |
|
|
104
|
-
| `disabled` | `boolean` | - | Disabled state (Trigger click ignored) |
|
|
105
|
-
| `keyboardNav` | `boolean` | - | Enable keyboard navigation (used by Select, etc.) |
|
|
106
|
-
| `class` | `string` | - | Additional CSS class for popup |
|
|
107
|
-
| `style` | `JSX.CSSProperties` | - | Inline style for popup |
|
|
108
|
-
|
|
109
|
-
**Sub-components:**
|
|
110
|
-
- `Dropdown.Trigger` -- Trigger element wrapper (click to toggle)
|
|
111
|
-
- `Dropdown.Content` -- Dropdown popup content
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Dialog
|
|
116
|
-
|
|
117
|
-
Modal dialog component. Supports drag movement, resize, floating mode, fullscreen mode, and programmatic opening via `useDialog`.
|
|
118
|
-
|
|
119
|
-
**Declarative usage:**
|
|
120
|
-
|
|
121
|
-
```tsx
|
|
122
|
-
import { Dialog, Button } from "@simplysm/solid";
|
|
123
|
-
import { createSignal } from "solid-js";
|
|
124
|
-
|
|
125
|
-
const [open, setOpen] = createSignal(false);
|
|
126
|
-
|
|
127
|
-
<Button onClick={() => setOpen(true)}>Open</Button>
|
|
128
|
-
<Dialog open={open()} onOpenChange={setOpen} closeOnBackdrop width={600}>
|
|
129
|
-
<Dialog.Header>Dialog Title</Dialog.Header>
|
|
130
|
-
<div class="p-4">
|
|
131
|
-
Dialog content
|
|
132
|
-
</div>
|
|
133
|
-
</Dialog>
|
|
134
|
-
|
|
135
|
-
// With header action buttons
|
|
136
|
-
<Dialog open={open()} onOpenChange={setOpen}>
|
|
137
|
-
<Dialog.Header>My Dialog</Dialog.Header>
|
|
138
|
-
<Dialog.Action>
|
|
139
|
-
<Button size="sm" variant="ghost">Help</Button>
|
|
140
|
-
</Dialog.Action>
|
|
141
|
-
<div class="p-4">Dialog content</div>
|
|
142
|
-
</Dialog>
|
|
143
|
-
|
|
144
|
-
// Floating mode (no backdrop)
|
|
145
|
-
<Dialog open={open()} onOpenChange={setOpen} float position="bottom-right">
|
|
146
|
-
<Dialog.Header>Notification</Dialog.Header>
|
|
147
|
-
<div class="p-4">Floating dialog</div>
|
|
148
|
-
</Dialog>
|
|
149
|
-
|
|
150
|
-
// No header (content only)
|
|
151
|
-
<Dialog open={open()} onOpenChange={setOpen}>
|
|
152
|
-
<div class="p-4">Dialog without header</div>
|
|
153
|
-
</Dialog>
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Programmatic usage with `useDialog`:**
|
|
157
|
-
|
|
158
|
-
```tsx
|
|
159
|
-
import { useDialog, useDialogInstance, Button, TextInput } from "@simplysm/solid";
|
|
160
|
-
import { createSignal } from "solid-js";
|
|
161
|
-
|
|
162
|
-
// Dialog content component
|
|
163
|
-
function EditDialog() {
|
|
164
|
-
const dialogInstance = useDialogInstance<string>();
|
|
165
|
-
const [name, setName] = createSignal("");
|
|
166
|
-
|
|
167
|
-
return (
|
|
168
|
-
<div class="p-4 space-y-4">
|
|
169
|
-
<TextInput value={name()} onValueChange={setName} placeholder="Enter name" />
|
|
170
|
-
<Button theme="primary" onClick={() => dialogInstance?.close(name())}>
|
|
171
|
-
Save
|
|
172
|
-
</Button>
|
|
173
|
-
</div>
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// Opening dialog programmatically
|
|
178
|
-
function MyPage() {
|
|
179
|
-
const dialog = useDialog();
|
|
180
|
-
|
|
181
|
-
const handleOpen = async () => {
|
|
182
|
-
const result = await dialog.show<string>(
|
|
183
|
-
() => <EditDialog />,
|
|
184
|
-
{ header: "Edit Name", width: 400, closeOnBackdrop: true },
|
|
185
|
-
);
|
|
186
|
-
if (result != null) {
|
|
187
|
-
// result is the value passed to dialogInstance.close()
|
|
188
|
-
console.log("Saved:", result);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
return <Button onClick={handleOpen}>Open Editor</Button>;
|
|
193
|
-
}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**Dialog Props:**
|
|
197
|
-
|
|
198
|
-
| Prop | Type | Default | Description |
|
|
199
|
-
|------|------|---------|-------------|
|
|
200
|
-
| `open` | `boolean` | - | Open state |
|
|
201
|
-
| `onOpenChange` | `(open: boolean) => void` | - | State change callback |
|
|
202
|
-
| `closable` | `boolean` | `true` | Show close button |
|
|
203
|
-
| `closeOnBackdrop` | `boolean` | - | Close on backdrop click |
|
|
204
|
-
| `closeOnEscape` | `boolean` | `true` | Close on Escape key |
|
|
205
|
-
| `resizable` | `boolean` | `false` | Resizable |
|
|
206
|
-
| `movable` | `boolean` | `true` | Draggable |
|
|
207
|
-
| `float` | `boolean` | - | Floating mode (no backdrop) |
|
|
208
|
-
| `fill` | `boolean` | - | Fullscreen mode |
|
|
209
|
-
| `width` | `number` | - | Width (px) |
|
|
210
|
-
| `height` | `number` | - | Height (px) |
|
|
211
|
-
| `minWidth` | `number` | - | Minimum width (px) |
|
|
212
|
-
| `minHeight` | `number` | - | Minimum height (px) |
|
|
213
|
-
| `position` | `"bottom-right" \| "top-right"` | - | Fixed position |
|
|
214
|
-
| `headerStyle` | `JSX.CSSProperties \| string` | - | Header style |
|
|
215
|
-
| `canDeactivate` | `() => boolean` | - | Pre-close confirmation function |
|
|
216
|
-
| `onCloseComplete` | `() => void` | - | Post-close animation callback |
|
|
217
|
-
| `class` | `string` | - | Additional CSS class applied to the dialog element |
|
|
218
|
-
|
|
219
|
-
**Sub-components:**
|
|
220
|
-
- `Dialog.Header` -- Dialog title (renders as `<h5>`, sets `aria-labelledby` on the dialog)
|
|
221
|
-
- `Dialog.Action` -- Header action area (rendered between header text and close button)
|
|
222
|
-
|
|
223
|
-
> The header bar (including close button) is only rendered when `Dialog.Header` is present. If no `Dialog.Header` is provided, the dialog renders content only with no header bar.
|
|
224
|
-
|
|
225
|
-
**useDialog API:**
|
|
226
|
-
|
|
227
|
-
| Method | Signature | Description |
|
|
228
|
-
|--------|-----------|-------------|
|
|
229
|
-
| `show` | `<T>(factory: () => JSX.Element, options: DialogShowOptions) => Promise<T \| undefined>` | Open dialog, returns result on close |
|
|
230
|
-
|
|
231
|
-
`DialogShowOptions` accepts all Dialog props except `open`, `onOpenChange`, `onCloseComplete`, and `children`, plus:
|
|
232
|
-
|
|
233
|
-
| Option | Type | Description |
|
|
234
|
-
|--------|------|-------------|
|
|
235
|
-
| `header` | `JSX.Element` | Dialog header content (renders inside `Dialog.Header`) |
|
|
236
|
-
|
|
237
|
-
**useDialogInstance API:**
|
|
238
|
-
|
|
239
|
-
| Method | Signature | Description |
|
|
240
|
-
|--------|-----------|-------------|
|
|
241
|
-
| `close` | `(result?: T) => void` | Close dialog with optional return value |
|
|
242
|
-
|
|
243
|
-
**Dialog Defaults:**
|
|
244
|
-
|
|
245
|
-
`DialogDefaultsContext` and `DialogDefaults` are exported for advanced use cases such as providing default dialog options to a subtree. Add `<DialogProvider>` to your provider tree to enable `useDialog()`. See [Provider Placement Guide](providers.md#provider-placement-guide).
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
import { DialogDefaultsContext, type DialogDefaults } from "@simplysm/solid";
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
| Export | Kind | Description |
|
|
252
|
-
|--------|------|-------------|
|
|
253
|
-
| `DialogDefaultsContext` | context | Context for providing default dialog options |
|
|
254
|
-
| `DialogDefaults` | interface | `{ closeOnEscape?: boolean; closeOnBackdrop?: boolean }` |
|
package/docs/display.md
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
# Display Components
|
|
2
|
-
|
|
3
|
-
## Card
|
|
4
|
-
|
|
5
|
-
Container with shadow effect.
|
|
6
|
-
|
|
7
|
-
```tsx
|
|
8
|
-
import { Card } from "@simplysm/solid";
|
|
9
|
-
|
|
10
|
-
<Card>Card content</Card>
|
|
11
|
-
<Card class="p-4">Card with padding</Card>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Tag
|
|
17
|
-
|
|
18
|
-
Inline tag/badge component.
|
|
19
|
-
|
|
20
|
-
```tsx
|
|
21
|
-
import { Tag } from "@simplysm/solid";
|
|
22
|
-
|
|
23
|
-
<Tag theme="primary">New</Tag>
|
|
24
|
-
<Tag theme="success">Complete</Tag>
|
|
25
|
-
<Tag theme="danger">Urgent</Tag>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
| Prop | Type | Default | Description |
|
|
29
|
-
|------|------|---------|-------------|
|
|
30
|
-
| `theme` | `"primary" \| "info" \| "success" \| "warning" \| "danger" \| "base"` | `"base"` | Color theme |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Link
|
|
35
|
-
|
|
36
|
-
Inline text link component. Renders an `<a>` element with primary color and hover underline.
|
|
37
|
-
|
|
38
|
-
```tsx
|
|
39
|
-
import { Link } from "@simplysm/solid";
|
|
40
|
-
|
|
41
|
-
<Link href="https://example.com">Visit site</Link>
|
|
42
|
-
<Link href="https://example.com" target="_blank" rel="noopener noreferrer">
|
|
43
|
-
Open in new tab
|
|
44
|
-
</Link>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Accepts all standard HTML `<a>` attributes (`href`, `target`, `rel`, etc.).
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Alert
|
|
52
|
-
|
|
53
|
-
Block-level alert/notice component.
|
|
54
|
-
|
|
55
|
-
```tsx
|
|
56
|
-
import { Alert } from "@simplysm/solid";
|
|
57
|
-
|
|
58
|
-
<Alert theme="info">This is an information message.</Alert>
|
|
59
|
-
<Alert theme="warning">Please pay attention to this.</Alert>
|
|
60
|
-
<Alert theme="danger">An error has occurred.</Alert>
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
| Prop | Type | Default | Description |
|
|
64
|
-
|------|------|---------|-------------|
|
|
65
|
-
| `theme` | `"primary" \| "info" \| "success" \| "warning" \| "danger" \| "base"` | `"base"` | Color theme |
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Icon
|
|
70
|
-
|
|
71
|
-
Tabler Icons wrapper component. Displayed in `em` units to scale proportionally with surrounding text.
|
|
72
|
-
|
|
73
|
-
```tsx
|
|
74
|
-
import { Icon } from "@simplysm/solid";
|
|
75
|
-
import { IconCheck, IconAlertTriangle } from "@tabler/icons-solidjs";
|
|
76
|
-
|
|
77
|
-
<Icon icon={IconCheck} />
|
|
78
|
-
<Icon icon={IconAlertTriangle} size="2em" />
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
| Prop | Type | Default | Description |
|
|
82
|
-
|------|------|---------|-------------|
|
|
83
|
-
| `icon` | `Component` | **(required)** | Tabler icon component |
|
|
84
|
-
| `size` | `string \| number` | `"1.25em"` | Icon size |
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Progress
|
|
89
|
-
|
|
90
|
-
Progress indicator component.
|
|
91
|
-
|
|
92
|
-
```tsx
|
|
93
|
-
import { Progress } from "@simplysm/solid";
|
|
94
|
-
|
|
95
|
-
<Progress value={0.65} />
|
|
96
|
-
<Progress value={0.8} theme="success" size="lg" />
|
|
97
|
-
|
|
98
|
-
// Custom text
|
|
99
|
-
<Progress value={progress()}>
|
|
100
|
-
{Math.round(progress() * 100)}% complete
|
|
101
|
-
</Progress>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
| Prop | Type | Default | Description |
|
|
105
|
-
|------|------|---------|-------------|
|
|
106
|
-
| `value` | `number` | **(required)** | Progress (0~1) |
|
|
107
|
-
| `theme` | `"primary" \| "info" \| "success" \| "warning" \| "danger" \| "base"` | `"primary"` | Color theme |
|
|
108
|
-
| `size` | `"sm" \| "lg"` | - | Size |
|
|
109
|
-
| `inset` | `boolean` | - | Inset style |
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## Barcode
|
|
114
|
-
|
|
115
|
-
bwip-js-based barcode/QR code rendering component. Supports over 100 barcode types.
|
|
116
|
-
|
|
117
|
-
```tsx
|
|
118
|
-
import { Barcode } from "@simplysm/solid";
|
|
119
|
-
|
|
120
|
-
<Barcode type="qrcode" value="https://example.com" />
|
|
121
|
-
<Barcode type="code128" value="ABC-12345" />
|
|
122
|
-
<Barcode type="ean13" value="4901234567890" />
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
| Prop | Type | Default | Description |
|
|
126
|
-
|------|------|---------|-------------|
|
|
127
|
-
| `type` | `BarcodeType` | **(required)** | Barcode type (`"qrcode"`, `"code128"`, `"ean13"`, etc.) |
|
|
128
|
-
| `value` | `string` | - | Barcode value |
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Echarts
|
|
133
|
-
|
|
134
|
-
Apache ECharts chart wrapper component. Requires `echarts` peer dependency installation.
|
|
135
|
-
|
|
136
|
-
```tsx
|
|
137
|
-
import { Echarts } from "@simplysm/solid";
|
|
138
|
-
|
|
139
|
-
<Echarts
|
|
140
|
-
option={{
|
|
141
|
-
xAxis: { type: "category", data: ["Mon", "Tue", "Wed"] },
|
|
142
|
-
yAxis: { type: "value" },
|
|
143
|
-
series: [{ data: [120, 200, 150], type: "bar" }],
|
|
144
|
-
}}
|
|
145
|
-
/>
|
|
146
|
-
|
|
147
|
-
<Echarts option={chartOption()} busy={isBusy()} />
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
| Prop | Type | Default | Description |
|
|
151
|
-
|------|------|---------|-------------|
|
|
152
|
-
| `option` | `echarts.EChartsOption` | **(required)** | ECharts option object |
|
|
153
|
-
| `busy` | `boolean` | - | Show busy state |
|
package/docs/feedback.md
DELETED
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
# Feedback Components
|
|
2
|
-
|
|
3
|
-
## Notification
|
|
4
|
-
|
|
5
|
-
Notification system. Set up `NotificationProvider` and `NotificationBanner` in your provider tree. Use the `useNotification` hook to show notifications and optionally add `NotificationBell` in your layout.
|
|
6
|
-
|
|
7
|
-
```tsx
|
|
8
|
-
import {
|
|
9
|
-
NotificationBell,
|
|
10
|
-
useNotification,
|
|
11
|
-
} from "@simplysm/solid";
|
|
12
|
-
|
|
13
|
-
// Trigger notifications within components
|
|
14
|
-
function MyComponent() {
|
|
15
|
-
const notification = useNotification();
|
|
16
|
-
|
|
17
|
-
const handleSave = () => {
|
|
18
|
-
notification.success("Success", "Saved successfully.");
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const handleError = () => {
|
|
22
|
-
notification.danger("Error", "An issue occurred.", {
|
|
23
|
-
action: { label: "Retry", onClick: handleRetry },
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// Error handling with error()
|
|
28
|
-
const handleLoad = async () => {
|
|
29
|
-
try {
|
|
30
|
-
const data = await fetchData();
|
|
31
|
-
} catch (err) {
|
|
32
|
-
notification.error(err, "Failed to load data"); // optional header
|
|
33
|
-
// Shows danger notification with header + err.message,
|
|
34
|
-
// logs err.stack via useLogger
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
return <Button onClick={handleSave}>Save</Button>;
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**useNotification API:**
|
|
43
|
-
|
|
44
|
-
| Property/Method | Type/Signature | Description |
|
|
45
|
-
|-----------------|----------------|-------------|
|
|
46
|
-
| `items` | `Accessor<NotificationItem[]>` | Reactive notification list |
|
|
47
|
-
| `unreadCount` | `Accessor<number>` | Unread notification count |
|
|
48
|
-
| `latestUnread` | `Accessor<NotificationItem \| undefined>` | Most recent unread notification |
|
|
49
|
-
| `info` | `(title: string, message?: string, options?: NotificationOptions) => string` | Info notification |
|
|
50
|
-
| `success` | `(title: string, message?: string, options?: NotificationOptions) => string` | Success notification |
|
|
51
|
-
| `warning` | `(title: string, message?: string, options?: NotificationOptions) => string` | Warning notification |
|
|
52
|
-
| `danger` | `(title: string, message?: string, options?: NotificationOptions) => string` | Error notification |
|
|
53
|
-
| `error` | `(err?: any, header?: string) => void` | Show error notification from caught error (shows danger notification + logs to `useLogger`). Re-throws if `err` is not an `Error` instance. |
|
|
54
|
-
| `update` | `(id: string, updates: Partial<NotificationItem>, options?: { renotify?: boolean }) => void` | Update notification |
|
|
55
|
-
| `remove` | `(id: string) => void` | Remove notification |
|
|
56
|
-
| `markAsRead` | `(id: string) => void` | Mark as read |
|
|
57
|
-
| `markAllAsRead` | `() => void` | Mark all as read |
|
|
58
|
-
| `dismissBanner` | `() => void` | Dismiss banner |
|
|
59
|
-
| `clear` | `() => void` | Clear all |
|
|
60
|
-
|
|
61
|
-
**Components:**
|
|
62
|
-
- `NotificationBanner` -- Top-of-screen notification banner. Automatically included by `SystemProvider`.
|
|
63
|
-
- `NotificationBell` -- Notification bell icon (shows unread count badge; click to view history). Add to your layout as needed. By default includes its own `NotificationBanner` instance via `showBanner` prop — set `showBanner={false}` when using with `SystemProvider` to avoid a duplicate banner.
|
|
64
|
-
|
|
65
|
-
**NotificationBell Props:**
|
|
66
|
-
|
|
67
|
-
| Prop | Type | Default | Description |
|
|
68
|
-
|------|------|---------|-------------|
|
|
69
|
-
| `showBanner` | `boolean` | `true` | Render a `NotificationBanner` alongside the bell. Set to `false` when `SystemProvider` already provides one. |
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Busy
|
|
74
|
-
|
|
75
|
-
Busy overlay system. Set up `BusyProvider` in your provider tree. Pass `variant` prop to choose between `"spinner"` (default) and `"bar"` variants. Control the busy state using the `useBusy` hook.
|
|
76
|
-
|
|
77
|
-
```tsx
|
|
78
|
-
import { useBusy } from "@simplysm/solid";
|
|
79
|
-
|
|
80
|
-
// Control busy within components
|
|
81
|
-
function MyComponent() {
|
|
82
|
-
const busy = useBusy();
|
|
83
|
-
|
|
84
|
-
const fetchData = async () => {
|
|
85
|
-
busy.show("Loading data...");
|
|
86
|
-
try {
|
|
87
|
-
await fetch("/api/data");
|
|
88
|
-
} finally {
|
|
89
|
-
busy.hide();
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
return <Button onClick={fetchData}>Load Data</Button>;
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**useBusy API:**
|
|
98
|
-
|
|
99
|
-
| Method | Signature | Description |
|
|
100
|
-
|--------|-----------|-------------|
|
|
101
|
-
| `show` | `(message?: string) => void` | Show busy overlay |
|
|
102
|
-
| `hide` | `() => void` | Hide busy overlay |
|
|
103
|
-
| `setProgress` | `(percent: number \| undefined) => void` | Set progress |
|
|
104
|
-
|
|
105
|
-
**BusyContainer Props:**
|
|
106
|
-
|
|
107
|
-
`BusyContainer` can also be used directly to wrap content with busy state control:
|
|
108
|
-
|
|
109
|
-
```tsx
|
|
110
|
-
import { BusyContainer } from "@simplysm/solid";
|
|
111
|
-
|
|
112
|
-
<BusyContainer busy={isLoading()} message="Loading...">
|
|
113
|
-
{/* wrapped content */}
|
|
114
|
-
</BusyContainer>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
| Prop | Type | Default | Description |
|
|
118
|
-
|------|------|---------|-------------|
|
|
119
|
-
| `busy` | `boolean` | - | Show busy overlay |
|
|
120
|
-
| `ready` | `boolean` | `true` | When `false`, shows busy and hides children; when `true`, shows children (controls rendering) |
|
|
121
|
-
| `variant` | `"spinner" \| "bar"` | - | Busy overlay variant |
|
|
122
|
-
| `message` | `string` | - | Message to display |
|
|
123
|
-
| `progressPercent` | `number` | - | Progress percentage (0-100) |
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Print / usePrint
|
|
128
|
-
|
|
129
|
-
Browser printing and PDF generation. Requires `<PrintProvider>` in the component tree.
|
|
130
|
-
|
|
131
|
-
```tsx
|
|
132
|
-
// Provider setup:
|
|
133
|
-
<SystemProvider clientName="my-app">
|
|
134
|
-
<PrintProvider>
|
|
135
|
-
<App />
|
|
136
|
-
</PrintProvider>
|
|
137
|
-
</SystemProvider>
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
```tsx
|
|
141
|
-
import { Print, usePrint } from "@simplysm/solid";
|
|
142
|
-
|
|
143
|
-
function MyComponent() {
|
|
144
|
-
const { toPrinter, toPdf } = usePrint();
|
|
145
|
-
|
|
146
|
-
const handlePrint = async () => {
|
|
147
|
-
await toPrinter(
|
|
148
|
-
() => (
|
|
149
|
-
<Print>
|
|
150
|
-
<Print.Page>
|
|
151
|
-
<h1>Print content</h1>
|
|
152
|
-
<p>Page 1</p>
|
|
153
|
-
</Print.Page>
|
|
154
|
-
<Print.Page>
|
|
155
|
-
<p>Page 2</p>
|
|
156
|
-
</Print.Page>
|
|
157
|
-
</Print>
|
|
158
|
-
),
|
|
159
|
-
{ size: "A4", margin: "10mm" },
|
|
160
|
-
);
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
const handlePdf = async () => {
|
|
164
|
-
const pdfData = await toPdf(
|
|
165
|
-
() => (
|
|
166
|
-
<Print>
|
|
167
|
-
<Print.Page>
|
|
168
|
-
<h1>PDF content</h1>
|
|
169
|
-
</Print.Page>
|
|
170
|
-
</Print>
|
|
171
|
-
),
|
|
172
|
-
{ size: "A4 landscape" },
|
|
173
|
-
);
|
|
174
|
-
// pdfData: Uint8Array
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
return (
|
|
178
|
-
<>
|
|
179
|
-
<Button onClick={handlePrint}>Print</Button>
|
|
180
|
-
<Button onClick={handlePdf}>Download PDF</Button>
|
|
181
|
-
</>
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
**usePrint API:**
|
|
187
|
-
|
|
188
|
-
| Method | Signature | Description |
|
|
189
|
-
|--------|-----------|-------------|
|
|
190
|
-
| `toPrinter` | `(factory: () => JSX.Element, options?: PrintOptions) => Promise<void>` | Browser print |
|
|
191
|
-
| `toPdf` | `(factory: () => JSX.Element, options?: PrintOptions) => Promise<Uint8Array>` | PDF generation |
|
|
192
|
-
|
|
193
|
-
**PrintOptions:**
|
|
194
|
-
|
|
195
|
-
| Option | Type | Default | Description |
|
|
196
|
-
|--------|------|---------|-------------|
|
|
197
|
-
| `size` | `string` | `"A4"` | Paper size (`"A4"`, `"A3"`, `"A4 landscape"`, `"210mm 297mm"`, etc.) |
|
|
198
|
-
| `margin` | `string` | `"0"` | Margins (`"10mm"`, `"1cm"`, etc.) |
|
|
199
|
-
|
|
200
|
-
**Sub-components:**
|
|
201
|
-
- `Print.Page` -- Explicit page breaks (auto-breaks if not used)
|
|
202
|
-
|
|
203
|
-
**usePrintInstance (for async data in print content):**
|
|
204
|
-
|
|
205
|
-
Use `usePrintInstance` inside print content components when you need to load async data before rendering. Call `ready()` to signal that the content is ready to print.
|
|
206
|
-
|
|
207
|
-
```tsx
|
|
208
|
-
import { usePrintInstance } from "@simplysm/solid";
|
|
209
|
-
import { createResource, Show } from "solid-js";
|
|
210
|
-
|
|
211
|
-
function InvoicePrintContent(props: { invoiceId: number }) {
|
|
212
|
-
const printInstance = usePrintInstance();
|
|
213
|
-
const [invoice] = createResource(() => fetchInvoice(props.invoiceId));
|
|
214
|
-
|
|
215
|
-
createEffect(() => {
|
|
216
|
-
if (invoice()) {
|
|
217
|
-
printInstance?.ready(); // signal that content is ready
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
return (
|
|
222
|
-
<Show when={invoice()}>
|
|
223
|
-
{(inv) => (
|
|
224
|
-
<Print>
|
|
225
|
-
<Print.Page>
|
|
226
|
-
<h1>Invoice #{inv().id}</h1>
|
|
227
|
-
{/* invoice content */}
|
|
228
|
-
</Print.Page>
|
|
229
|
-
</Print>
|
|
230
|
-
)}
|
|
231
|
-
</Show>
|
|
232
|
-
);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// Usage
|
|
236
|
-
const { toPrinter } = usePrint();
|
|
237
|
-
await toPrinter(() => <InvoicePrintContent invoiceId={123} />, { size: "A4", margin: "10mm" });
|
|
238
|
-
```
|