@simplysm/solid 13.0.74 → 13.0.76
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 +4 -4
- package/dist/components/data/Pagination.d.ts +2 -2
- package/dist/components/data/Pagination.d.ts.map +1 -1
- package/dist/components/data/Pagination.js +7 -5
- package/dist/components/data/Pagination.js.map +2 -2
- package/dist/components/data/Table.d.ts +5 -1
- package/dist/components/data/Table.d.ts.map +1 -1
- package/dist/components/data/Table.js +64 -22
- package/dist/components/data/Table.js.map +2 -2
- package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/data/calendar/Calendar.js +10 -26
- package/dist/components/data/calendar/Calendar.js.map +2 -2
- package/dist/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
- package/dist/components/data/kanban/Kanban.d.ts +46 -5
- package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
- package/dist/components/data/kanban/Kanban.js +144 -119
- package/dist/components/data/kanban/Kanban.js.map +2 -2
- package/dist/components/data/list/List.d.ts.map +1 -1
- package/dist/components/data/list/List.js +2 -5
- package/dist/components/data/list/List.js.map +2 -2
- package/dist/components/data/list/ListItem.d.ts +7 -34
- package/dist/components/data/list/ListItem.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.js +15 -20
- package/dist/components/data/list/ListItem.js.map +2 -2
- package/dist/components/data/list/ListItem.styles.d.ts +1 -1
- package/dist/components/data/list/ListItem.styles.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.styles.js +8 -8
- package/dist/components/data/list/ListItem.styles.js.map +1 -1
- package/dist/components/data/sheet/DataSheet.d.ts +3 -2
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +677 -850
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/DataSheet.styles.d.ts +2 -1
- package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.styles.js +32 -10
- package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
- package/dist/components/data/sheet/DataSheetColumn.d.ts +4 -3
- package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetColumn.js +4 -22
- package/dist/components/data/sheet/DataSheetColumn.js.map +2 -2
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +1 -0
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.js +19 -18
- package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +61 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +29 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js +101 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.js +32 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts +21 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js +112 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +22 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js +63 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js +45 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js.map +6 -0
- package/dist/components/data/sheet/sheetUtils.d.ts +2 -2
- package/dist/components/data/sheet/sheetUtils.d.ts.map +1 -1
- package/dist/components/data/sheet/sheetUtils.js +5 -5
- package/dist/components/data/sheet/sheetUtils.js.map +1 -1
- package/dist/components/data/sheet/types.d.ts +7 -8
- package/dist/components/data/sheet/types.d.ts.map +1 -1
- package/dist/components/disclosure/Collapse.d.ts.map +1 -1
- package/dist/components/disclosure/Collapse.js +1 -3
- package/dist/components/disclosure/Collapse.js.map +2 -2
- package/dist/components/disclosure/Dialog.d.ts +78 -20
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +251 -110
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts +6 -29
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js +60 -61
- package/dist/components/disclosure/Dropdown.js.map +2 -2
- package/dist/components/disclosure/Tabs.d.ts +1 -1
- package/dist/components/disclosure/Tabs.d.ts.map +1 -1
- package/dist/components/disclosure/Tabs.js +16 -17
- package/dist/components/disclosure/Tabs.js.map +2 -2
- package/dist/components/display/Alert.d.ts +1 -1
- package/dist/components/display/Alert.d.ts.map +1 -1
- package/dist/components/display/Alert.js +2 -4
- package/dist/components/display/Alert.js.map +2 -2
- package/dist/components/display/Barcode.d.ts.map +1 -1
- package/dist/components/display/Barcode.js +1 -3
- package/dist/components/display/Barcode.js.map +2 -2
- package/dist/components/display/Card.animate.css +11 -0
- package/dist/components/display/Card.d.ts +1 -0
- package/dist/components/display/Card.d.ts.map +1 -1
- package/dist/components/display/Card.js +3 -2
- package/dist/components/display/Card.js.map +2 -2
- package/dist/components/display/Echarts.d.ts.map +1 -1
- package/dist/components/display/Echarts.js +1 -3
- package/dist/components/display/Echarts.js.map +2 -2
- package/dist/components/display/Link.d.ts +1 -1
- package/dist/components/display/Link.d.ts.map +1 -1
- package/dist/components/display/Link.js +3 -4
- package/dist/components/display/Link.js.map +2 -2
- package/dist/components/display/Tag.d.ts +1 -1
- package/dist/components/display/Tag.d.ts.map +1 -1
- package/dist/components/display/Tag.js +2 -4
- package/dist/components/display/Tag.js.map +2 -2
- package/dist/components/features/address/AddressSearch.d.ts +3 -1
- package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
- package/dist/components/features/address/AddressSearch.js +3 -4
- package/dist/components/features/address/AddressSearch.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +205 -196
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetailAfter.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailAfter.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailAfter.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailAfter.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetailBefore.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailBefore.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailBefore.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailBefore.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetailTools.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailTools.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailTools.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailTools.js.map +2 -2
- package/dist/components/features/crud-detail/types.d.ts +2 -12
- package/dist/components/features/crud-detail/types.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.d.ts +8 -1
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +94 -77
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +4 -3
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetColumn.js +4 -23
- package/dist/components/features/crud-sheet/CrudSheetColumn.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts +7 -5
- package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetFilter.js +4 -8
- package/dist/components/features/crud-sheet/CrudSheetFilter.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts +5 -4
- package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetHeader.js +3 -10
- package/dist/components/features/crud-sheet/CrudSheetHeader.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +7 -5
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.js +4 -8
- package/dist/components/features/crud-sheet/CrudSheetTools.js.map +2 -2
- package/dist/components/features/crud-sheet/types.d.ts +6 -36
- package/dist/components/features/crud-sheet/types.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +23 -26
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +25 -36
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
- package/dist/components/features/permission-table/PermissionTable.js +9 -13
- package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +17 -12
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +57 -80
- package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +12 -9
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts +13 -2
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +131 -113
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
- package/dist/components/feedback/Progress.d.ts +3 -2
- package/dist/components/feedback/Progress.d.ts.map +1 -1
- package/dist/components/feedback/Progress.js +9 -7
- package/dist/components/feedback/Progress.js.map +2 -2
- 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/BusyContainer.js +35 -32
- package/dist/components/feedback/busy/BusyContainer.js.map +2 -2
- package/dist/components/feedback/busy/BusyProvider.d.ts +26 -2
- package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyProvider.js +13 -7
- package/dist/components/feedback/busy/BusyProvider.js.map +2 -2
- package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBanner.js +13 -19
- package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
- package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBell.js +69 -71
- package/dist/components/feedback/notification/NotificationBell.js.map +2 -2
- package/dist/components/feedback/notification/NotificationProvider.d.ts +68 -1
- package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationProvider.js +13 -4
- package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
- package/dist/components/feedback/notification/index.d.ts +0 -1
- package/dist/components/feedback/notification/index.d.ts.map +1 -1
- package/dist/components/feedback/notification/index.js +0 -1
- package/dist/components/feedback/notification/index.js.map +1 -1
- package/dist/components/feedback/print/PrintProvider.d.ts +14 -1
- package/dist/components/feedback/print/PrintProvider.d.ts.map +1 -1
- package/dist/components/feedback/print/PrintProvider.js +15 -5
- package/dist/components/feedback/print/PrintProvider.js.map +2 -2
- package/dist/components/form-control/Button.d.ts +2 -1
- package/dist/components/form-control/Button.d.ts.map +1 -1
- package/dist/components/form-control/Button.js +9 -8
- package/dist/components/form-control/Button.js.map +2 -2
- 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/DropdownTrigger.styles.js +16 -16
- package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
- package/dist/components/form-control/ThemeToggle.d.ts +2 -1
- package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
- package/dist/components/form-control/ThemeToggle.js +71 -74
- package/dist/components/form-control/ThemeToggle.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.d.ts +1 -1
- package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.js +14 -95
- package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.d.ts +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.styles.js +20 -25
- package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.js +84 -9
- package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/Radio.d.ts +1 -1
- package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Radio.js +12 -95
- package/dist/components/form-control/checkbox/Radio.js.map +2 -2
- package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/RadioGroup.js +81 -9
- package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectableBase.d.ts +26 -0
- package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -0
- package/dist/components/form-control/checkbox/SelectableBase.js +100 -0
- package/dist/components/form-control/checkbox/SelectableBase.js.map +6 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +17 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.js +53 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +6 -0
- package/dist/components/form-control/color-picker/ColorPicker.d.ts +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +3 -15
- package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +26 -47
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +107 -59
- package/dist/components/form-control/combobox/Combobox.js.map +2 -2
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +12 -5
- 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 +358 -211
- package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
- package/dist/components/form-control/editor/RichTextEditor.d.ts +1 -1
- package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/form-control/editor/RichTextEditor.js +10 -10
- package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
- package/{src/components/form-control/editor/editor.css → dist/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
- package/dist/components/form-control/field/DatePicker.d.ts +1 -1
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +48 -129
- package/dist/components/form-control/field/DatePicker.js.map +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts +1 -1
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +48 -129
- package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
- package/dist/components/form-control/field/Field.styles.d.ts +3 -3
- package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
- package/dist/components/form-control/field/Field.styles.js +46 -40
- package/dist/components/form-control/field/Field.styles.js.map +1 -1
- package/dist/components/form-control/field/FieldPlaceholder.js +4 -3
- package/dist/components/form-control/field/FieldPlaceholder.js.map +2 -2
- package/dist/components/form-control/field/FieldShell.d.ts +37 -0
- package/dist/components/form-control/field/FieldShell.d.ts.map +1 -0
- package/dist/components/form-control/field/FieldShell.js +124 -0
- package/dist/components/form-control/field/FieldShell.js.map +6 -0
- package/dist/components/form-control/field/NumberInput.d.ts +8 -6
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +86 -192
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +7 -6
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +82 -193
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/field/Textarea.d.ts +1 -1
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +79 -154
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +1 -1
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +44 -121
- package/dist/components/form-control/field/TimePicker.js.map +2 -2
- package/dist/components/form-control/numpad/Numpad.d.ts +1 -1
- package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
- package/dist/components/form-control/numpad/Numpad.js +5 -5
- package/dist/components/form-control/numpad/Numpad.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +54 -35
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +215 -114
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/state-preset/StatePreset.d.ts +2 -2
- package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
- package/dist/components/form-control/state-preset/StatePreset.js +63 -52
- package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
- package/dist/components/layout/FormGroup.d.ts +3 -6
- package/dist/components/layout/FormGroup.d.ts.map +1 -1
- package/dist/components/layout/FormGroup.js +5 -7
- package/dist/components/layout/FormGroup.js.map +2 -2
- package/dist/components/layout/FormTable.d.ts +7 -1
- package/dist/components/layout/FormTable.d.ts.map +1 -1
- package/dist/components/layout/FormTable.js +52 -18
- package/dist/components/layout/FormTable.js.map +2 -2
- package/dist/components/layout/sidebar/Sidebar.d.ts +136 -8
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.js +341 -21
- package/dist/components/layout/sidebar/Sidebar.js.map +2 -2
- package/dist/components/layout/topbar/Topbar.d.ts +44 -33
- package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
- package/dist/components/layout/topbar/Topbar.js +426 -39
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js +4 -5
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/helpers/createSlot.d.ts +3 -0
- package/dist/helpers/createSlot.d.ts.map +1 -0
- package/dist/helpers/createSlot.js +40 -0
- package/dist/helpers/createSlot.js.map +6 -0
- package/dist/helpers/createSlots.d.ts +7 -0
- package/dist/helpers/createSlots.d.ts.map +1 -0
- package/dist/helpers/createSlots.js +34 -0
- package/dist/helpers/createSlots.js.map +6 -0
- package/dist/hooks/createControllableSignal.d.ts +4 -12
- package/dist/hooks/createControllableSignal.d.ts.map +1 -1
- package/dist/hooks/createControllableSignal.js +4 -3
- package/dist/hooks/createControllableSignal.js.map +1 -1
- package/dist/hooks/createControllableStore.d.ts.map +1 -1
- package/dist/hooks/createControllableStore.js +3 -4
- package/dist/hooks/createControllableStore.js.map +1 -1
- 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/useSyncConfig.js +1 -1
- package/dist/index.d.ts +13 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -20
- package/dist/index.js.map +1 -1
- package/dist/providers/ConfigContext.d.ts.map +1 -1
- package/dist/providers/ConfigContext.js +10 -13
- package/dist/providers/ConfigContext.js.map +1 -1
- package/dist/providers/{LoggerContext.d.ts → LoggerProvider.d.ts} +1 -1
- package/dist/providers/LoggerProvider.d.ts.map +1 -0
- package/dist/providers/{LoggerContext.js → LoggerProvider.js} +1 -1
- package/dist/providers/{LoggerContext.js.map → LoggerProvider.js.map} +1 -1
- package/dist/providers/PwaUpdateProvider.js +1 -1
- package/dist/providers/ServiceClientProvider.d.ts +22 -0
- package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.js +39 -48
- package/dist/providers/ServiceClientProvider.js.map +2 -2
- package/dist/providers/{SyncStorageContext.d.ts → SyncStorageProvider.d.ts} +1 -1
- package/dist/providers/SyncStorageProvider.d.ts.map +1 -0
- package/dist/providers/{SyncStorageContext.js → SyncStorageProvider.js} +1 -1
- package/dist/providers/{SyncStorageContext.js.map → SyncStorageProvider.js.map} +1 -1
- package/dist/providers/SystemProvider.d.ts +1 -1
- package/dist/providers/SystemProvider.d.ts.map +1 -1
- package/dist/providers/SystemProvider.js +3 -3
- package/dist/providers/SystemProvider.js.map +1 -1
- package/dist/providers/i18n/{I18nContext.d.ts → I18nProvider.d.ts} +2 -2
- package/dist/providers/i18n/I18nProvider.d.ts.map +1 -0
- package/dist/providers/i18n/{I18nContext.js → I18nProvider.js} +1 -1
- package/dist/providers/i18n/{I18nContext.js.map → I18nProvider.js.map} +1 -1
- package/dist/providers/i18n/{I18nContext.types.d.ts → I18nProvider.types.d.ts} +1 -1
- package/dist/providers/i18n/I18nProvider.types.d.ts.map +1 -0
- package/dist/providers/i18n/I18nProvider.types.js +1 -0
- package/dist/providers/shared-data/SharedDataProvider.d.ts +74 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +15 -7
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/dist/styles/base.styles.d.ts +15 -0
- package/dist/styles/base.styles.d.ts.map +1 -0
- package/dist/styles/base.styles.js +21 -0
- package/dist/styles/base.styles.js.map +6 -0
- package/dist/styles/control.styles.d.ts +19 -0
- package/dist/styles/control.styles.d.ts.map +1 -0
- package/dist/styles/control.styles.js +24 -0
- package/dist/styles/control.styles.js.map +6 -0
- package/dist/styles/theme.styles.d.ts +52 -0
- package/dist/styles/theme.styles.d.ts.map +1 -0
- package/dist/styles/theme.styles.js +55 -0
- package/dist/styles/theme.styles.js.map +6 -0
- package/package.json +5 -5
- package/src/components/data/Pagination.tsx +9 -9
- package/src/components/data/Table.tsx +63 -30
- package/src/components/data/calendar/Calendar.tsx +38 -36
- package/src/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
- package/src/components/data/kanban/Kanban.tsx +118 -84
- package/src/components/data/list/List.tsx +5 -16
- package/src/components/data/list/ListItem.styles.ts +8 -8
- package/src/components/data/list/ListItem.tsx +20 -31
- package/src/components/data/sheet/DataSheet.styles.ts +32 -9
- package/src/components/data/sheet/DataSheet.tsx +159 -440
- package/src/components/data/sheet/DataSheetColumn.tsx +7 -29
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +14 -20
- package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +85 -0
- package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +131 -0
- package/src/components/data/sheet/hooks/useDataSheetPaging.ts +51 -0
- package/src/components/data/sheet/hooks/useDataSheetReorder.ts +155 -0
- package/src/components/data/sheet/hooks/useDataSheetSelection.ts +99 -0
- package/src/components/data/sheet/hooks/useDataSheetSorting.ts +68 -0
- package/src/components/data/sheet/sheetUtils.ts +5 -5
- package/src/components/data/sheet/types.ts +7 -8
- package/src/components/disclosure/Collapse.tsx +1 -9
- package/src/components/disclosure/Dialog.tsx +242 -41
- package/src/components/disclosure/Dropdown.tsx +66 -75
- package/src/components/disclosure/Tabs.tsx +23 -32
- package/src/components/display/Alert.tsx +2 -5
- package/src/components/display/Barcode.tsx +1 -4
- package/src/components/display/Card.animate.css +11 -0
- package/src/components/display/Card.tsx +10 -11
- package/src/components/display/Echarts.tsx +1 -4
- package/src/components/display/Link.tsx +3 -5
- package/src/components/display/Tag.tsx +2 -5
- package/src/components/features/address/AddressSearch.tsx +4 -5
- package/src/components/features/crud-detail/CrudDetail.tsx +129 -142
- package/src/components/features/crud-detail/CrudDetailAfter.tsx +3 -16
- package/src/components/features/crud-detail/CrudDetailBefore.tsx +3 -16
- package/src/components/features/crud-detail/CrudDetailTools.tsx +3 -16
- package/src/components/features/crud-detail/types.ts +3 -16
- package/src/components/features/crud-sheet/CrudSheet.tsx +90 -92
- package/src/components/features/crud-sheet/CrudSheetColumn.tsx +7 -30
- package/src/components/features/crud-sheet/CrudSheetFilter.tsx +12 -16
- package/src/components/features/crud-sheet/CrudSheetHeader.tsx +3 -16
- package/src/components/features/crud-sheet/CrudSheetTools.tsx +12 -16
- package/src/components/features/crud-sheet/types.ts +6 -40
- package/src/components/features/data-select-button/DataSelectButton.tsx +55 -64
- package/src/components/features/permission-table/PermissionTable.tsx +9 -13
- package/src/components/features/shared-data/SharedDataSelect.tsx +89 -108
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +26 -15
- package/src/components/features/shared-data/SharedDataSelectList.tsx +55 -32
- package/src/components/feedback/Progress.tsx +16 -21
- package/src/components/feedback/busy/BusyContainer.tsx +18 -45
- package/src/components/feedback/busy/BusyProvider.tsx +40 -7
- package/src/components/feedback/notification/NotificationBanner.tsx +13 -32
- package/src/components/feedback/notification/NotificationBell.tsx +18 -47
- package/src/components/feedback/notification/NotificationProvider.tsx +96 -10
- package/src/components/feedback/notification/index.ts +0 -1
- package/src/components/feedback/print/PrintProvider.tsx +35 -4
- package/src/components/form-control/Button.tsx +11 -29
- package/src/components/form-control/DropdownTrigger.styles.ts +16 -17
- package/src/components/form-control/ThemeToggle.tsx +18 -15
- package/src/components/form-control/checkbox/Checkbox.styles.ts +20 -26
- package/src/components/form-control/checkbox/Checkbox.tsx +14 -100
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +85 -10
- package/src/components/form-control/checkbox/Radio.tsx +14 -103
- package/src/components/form-control/checkbox/RadioGroup.tsx +82 -10
- package/src/components/form-control/checkbox/SelectableBase.tsx +123 -0
- package/src/components/form-control/checkbox/SelectionGroupBase.tsx +57 -0
- package/src/components/form-control/color-picker/ColorPicker.tsx +8 -28
- package/src/components/form-control/combobox/Combobox.tsx +124 -30
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +5 -5
- package/src/components/form-control/editor/EditorToolbar.tsx +105 -82
- package/{dist/components/form-control/editor/editor.css → src/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
- package/src/components/form-control/editor/RichTextEditor.tsx +14 -29
- package/src/components/form-control/field/DatePicker.tsx +30 -72
- package/src/components/form-control/field/DateTimePicker.tsx +31 -79
- package/src/components/form-control/field/Field.styles.ts +48 -42
- package/src/components/form-control/field/FieldPlaceholder.tsx +2 -2
- package/src/components/form-control/field/FieldShell.tsx +113 -0
- package/src/components/form-control/field/NumberInput.tsx +67 -126
- package/src/components/form-control/field/TextInput.tsx +51 -109
- package/src/components/form-control/field/Textarea.tsx +64 -108
- package/src/components/form-control/field/TimePicker.tsx +29 -70
- package/src/components/form-control/numpad/Numpad.tsx +5 -6
- package/src/components/form-control/select/Select.tsx +243 -119
- package/src/components/form-control/state-preset/StatePreset.tsx +60 -83
- package/src/components/layout/FormGroup.tsx +10 -13
- package/src/components/layout/FormTable.tsx +40 -19
- package/src/components/layout/sidebar/Sidebar.tsx +456 -38
- package/src/components/layout/topbar/Topbar.tsx +420 -49
- package/src/helpers/createAppStructure.ts +6 -7
- package/src/helpers/createSlot.ts +45 -0
- package/src/helpers/createSlots.ts +44 -0
- package/src/hooks/createControllableSignal.ts +10 -18
- package/src/hooks/createControllableStore.ts +3 -4
- package/src/hooks/useLogger.ts +1 -1
- package/src/hooks/useSyncConfig.ts +1 -1
- package/src/index.ts +14 -20
- package/src/providers/ConfigContext.tsx +0 -1
- package/src/providers/PwaUpdateProvider.tsx +1 -1
- package/src/providers/ServiceClientProvider.tsx +59 -53
- package/src/providers/SystemProvider.tsx +4 -5
- package/src/providers/i18n/{I18nContext.tsx → I18nProvider.tsx} +1 -1
- package/src/providers/shared-data/SharedDataProvider.tsx +95 -14
- package/src/styles/base.styles.ts +21 -0
- package/src/styles/control.styles.ts +25 -0
- package/src/styles/theme.styles.ts +54 -0
- package/tailwind.config.ts +0 -11
- package/tests/components/data/List.spec.tsx +1 -262
- package/tests/components/data/Pagination.spec.tsx +0 -75
- package/tests/components/data/kanban/Kanban.selection.spec.tsx +1 -17
- package/tests/components/data/sheet/DataSheet.spec.tsx +36 -65
- package/tests/components/data/sheet/hooks/useDataSheetExpansion.spec.ts +254 -0
- package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +488 -0
- package/tests/components/data/sheet/hooks/useDataSheetPaging.spec.ts +359 -0
- package/tests/components/data/sheet/hooks/useDataSheetReorder.spec.ts +251 -0
- package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +345 -0
- package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +279 -0
- package/tests/components/disclosure/Collapse.spec.tsx +0 -24
- package/tests/components/disclosure/Dialog.spec.tsx +4 -54
- package/tests/components/disclosure/DialogProvider.spec.tsx +9 -12
- package/tests/components/disclosure/Tabs.spec.tsx +0 -99
- package/tests/components/display/Barcode.spec.tsx +0 -14
- package/tests/components/features/address/AddressSearch.spec.tsx +3 -4
- package/tests/components/features/crud-detail/CrudDetail.spec.tsx +12 -74
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +13 -66
- package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +51 -29
- package/tests/components/features/permission-table/PermissionTable.spec.tsx +5 -30
- package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +15 -19
- package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +17 -44
- package/tests/components/feedback/busy/BusyContainer.spec.tsx +15 -9
- package/tests/components/feedback/notification/LiveRegion.spec.tsx +2 -27
- package/tests/components/feedback/notification/NotificationBanner.spec.tsx +2 -27
- package/tests/components/feedback/notification/NotificationBell.spec.tsx +2 -16
- package/tests/components/feedback/notification/NotificationContext.spec.tsx +2 -16
- package/tests/components/form-control/Button.spec.tsx +0 -97
- package/tests/components/form-control/Invalid.spec.tsx +0 -15
- package/tests/components/form-control/checkbox/Checkbox.spec.tsx +1 -47
- package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +1 -26
- package/tests/components/form-control/checkbox/Radio.spec.tsx +1 -46
- package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +1 -26
- package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +1 -31
- package/tests/components/form-control/combobox/Combobox.spec.tsx +5 -49
- package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +7 -27
- package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +1 -58
- package/tests/components/form-control/field/DatePicker.spec.tsx +5 -93
- package/tests/components/form-control/field/DateTimePicker.spec.tsx +5 -86
- package/tests/components/form-control/field/FieldShell.spec.tsx +127 -0
- package/tests/components/form-control/field/NumberInput.spec.tsx +14 -133
- package/tests/components/form-control/field/TextInput.spec.tsx +6 -148
- package/tests/components/form-control/field/Textarea.spec.tsx +5 -69
- package/tests/components/form-control/field/TimePicker.spec.tsx +5 -84
- package/tests/components/form-control/numpad/Numpad.spec.tsx +1 -78
- package/tests/components/form-control/select/Select.spec.tsx +9 -59
- package/tests/components/form-control/select/SelectItem.spec.tsx +10 -62
- package/tests/components/layout/sidebar/Sidebar.spec.tsx +3 -122
- package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +3 -45
- package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +1 -74
- package/tests/components/layout/sidebar/SidebarUser.spec.tsx +0 -48
- package/tests/components/layout/topbar/TopbarActions.spec.tsx +1 -1
- package/tests/components/layout/topbar/createTopbarActions.spec.tsx +0 -9
- package/tests/helpers/createAppStructure.spec.tsx +0 -26
- package/tests/helpers/createSlot.spec.tsx +99 -0
- package/tests/helpers/createSlots.spec.tsx +100 -0
- package/tests/hooks/createControllableSignal.spec.ts +0 -50
- package/tests/hooks/createControllableStore.spec.ts +67 -0
- package/tests/hooks/createMountTransition.spec.ts +0 -9
- package/tests/hooks/useLocalStorage.spec.tsx +0 -34
- package/tests/hooks/useLogger.spec.tsx +1 -18
- package/tests/hooks/usePrint.spec.tsx +1 -24
- package/tests/hooks/useSyncConfig.spec.tsx +1 -18
- package/tests/providers/ErrorLoggerProvider.spec.tsx +1 -11
- package/tests/providers/ServiceClientContext.spec.tsx +2 -20
- package/tests/providers/i18n/I18nContext.spec.tsx +1 -5
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +13 -13
- package/dist/components/data/kanban/KanbanContext.d.ts +0 -43
- package/dist/components/data/kanban/KanbanContext.d.ts.map +0 -1
- package/dist/components/data/kanban/KanbanContext.js +0 -24
- package/dist/components/data/kanban/KanbanContext.js.map +0 -6
- package/dist/components/data/sheet/DataSheet.css +0 -44
- package/dist/components/disclosure/DialogContext.d.ts +0 -57
- package/dist/components/disclosure/DialogContext.d.ts.map +0 -1
- package/dist/components/disclosure/DialogContext.js +0 -14
- package/dist/components/disclosure/DialogContext.js.map +0 -6
- package/dist/components/disclosure/DialogInstanceContext.d.ts +0 -20
- package/dist/components/disclosure/DialogInstanceContext.d.ts.map +0 -1
- package/dist/components/disclosure/DialogInstanceContext.js +0 -10
- package/dist/components/disclosure/DialogInstanceContext.js.map +0 -6
- package/dist/components/disclosure/DialogProvider.d.ts +0 -19
- package/dist/components/disclosure/DialogProvider.d.ts.map +0 -1
- package/dist/components/disclosure/DialogProvider.js +0 -145
- package/dist/components/disclosure/DialogProvider.js.map +0 -6
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +0 -15
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +0 -1
- package/dist/components/features/shared-data/SharedDataSelectListContext.js +0 -27
- package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +0 -6
- package/dist/components/feedback/busy/BusyContext.d.ts +0 -29
- package/dist/components/feedback/busy/BusyContext.d.ts.map +0 -1
- package/dist/components/feedback/busy/BusyContext.js +0 -14
- package/dist/components/feedback/busy/BusyContext.js.map +0 -6
- package/dist/components/feedback/notification/NotificationContext.d.ts +0 -69
- package/dist/components/feedback/notification/NotificationContext.d.ts.map +0 -1
- package/dist/components/feedback/notification/NotificationContext.js +0 -14
- package/dist/components/feedback/notification/NotificationContext.js.map +0 -6
- package/dist/components/feedback/print/PrintContext.d.ts +0 -12
- package/dist/components/feedback/print/PrintContext.d.ts.map +0 -1
- package/dist/components/feedback/print/PrintContext.js +0 -12
- package/dist/components/feedback/print/PrintContext.js.map +0 -6
- package/dist/components/feedback/print/PrintInstanceContext.d.ts +0 -6
- package/dist/components/feedback/print/PrintInstanceContext.d.ts.map +0 -1
- package/dist/components/feedback/print/PrintInstanceContext.js +0 -10
- package/dist/components/feedback/print/PrintInstanceContext.js.map +0 -6
- package/dist/components/form-control/combobox/ComboboxContext.d.ts +0 -14
- package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +0 -1
- package/dist/components/form-control/combobox/ComboboxContext.js +0 -14
- package/dist/components/form-control/combobox/ComboboxContext.js.map +0 -6
- package/dist/components/form-control/combobox/ComboboxItem.d.ts +0 -12
- package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +0 -1
- package/dist/components/form-control/combobox/ComboboxItem.js +0 -56
- package/dist/components/form-control/combobox/ComboboxItem.js.map +0 -6
- package/dist/components/form-control/select/SelectContext.d.ts +0 -21
- package/dist/components/form-control/select/SelectContext.d.ts.map +0 -1
- package/dist/components/form-control/select/SelectContext.js +0 -14
- package/dist/components/form-control/select/SelectContext.js.map +0 -6
- package/dist/components/form-control/select/SelectItem.d.ts +0 -30
- package/dist/components/form-control/select/SelectItem.d.ts.map +0 -1
- package/dist/components/form-control/select/SelectItem.js +0 -112
- package/dist/components/form-control/select/SelectItem.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarContainer.d.ts +0 -34
- package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarContainer.js +0 -88
- package/dist/components/layout/sidebar/SidebarContainer.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarContext.d.ts +0 -28
- package/dist/components/layout/sidebar/SidebarContext.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarContext.js +0 -20
- package/dist/components/layout/sidebar/SidebarContext.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarMenu.d.ts +0 -35
- package/dist/components/layout/sidebar/SidebarMenu.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarMenu.js +0 -153
- package/dist/components/layout/sidebar/SidebarMenu.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarUser.d.ts +0 -48
- package/dist/components/layout/sidebar/SidebarUser.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarUser.js +0 -128
- package/dist/components/layout/sidebar/SidebarUser.js.map +0 -6
- package/dist/components/layout/topbar/TopbarActions.d.ts +0 -3
- package/dist/components/layout/topbar/TopbarActions.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarActions.js +0 -17
- package/dist/components/layout/topbar/TopbarActions.js.map +0 -6
- package/dist/components/layout/topbar/TopbarContainer.d.ts +0 -25
- package/dist/components/layout/topbar/TopbarContainer.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarContainer.js +0 -37
- package/dist/components/layout/topbar/TopbarContainer.js.map +0 -6
- package/dist/components/layout/topbar/TopbarContext.d.ts +0 -9
- package/dist/components/layout/topbar/TopbarContext.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarContext.js +0 -29
- package/dist/components/layout/topbar/TopbarContext.js.map +0 -6
- package/dist/components/layout/topbar/TopbarMenu.d.ts +0 -41
- package/dist/components/layout/topbar/TopbarMenu.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarMenu.js +0 -288
- package/dist/components/layout/topbar/TopbarMenu.js.map +0 -6
- package/dist/components/layout/topbar/TopbarUser.d.ts +0 -35
- package/dist/components/layout/topbar/TopbarUser.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarUser.js +0 -110
- package/dist/components/layout/topbar/TopbarUser.js.map +0 -6
- package/dist/helpers/createHmrSafeContext.d.ts +0 -3
- package/dist/helpers/createHmrSafeContext.d.ts.map +0 -1
- package/dist/helpers/createHmrSafeContext.js +0 -10
- package/dist/helpers/createHmrSafeContext.js.map +0 -6
- package/dist/helpers/createSlotComponent.d.ts +0 -12
- package/dist/helpers/createSlotComponent.d.ts.map +0 -1
- package/dist/helpers/createSlotComponent.js +0 -13
- package/dist/helpers/createSlotComponent.js.map +0 -6
- package/dist/hooks/createSelectionGroup.d.ts +0 -70
- package/dist/hooks/createSelectionGroup.d.ts.map +0 -1
- package/dist/hooks/createSelectionGroup.js +0 -145
- package/dist/hooks/createSelectionGroup.js.map +0 -6
- package/dist/hooks/createSlotSignal.d.ts +0 -9
- package/dist/hooks/createSlotSignal.d.ts.map +0 -1
- package/dist/hooks/createSlotSignal.js +0 -10
- package/dist/hooks/createSlotSignal.js.map +0 -6
- package/dist/providers/LoggerContext.d.ts.map +0 -1
- package/dist/providers/ServiceClientContext.d.ts +0 -23
- package/dist/providers/ServiceClientContext.d.ts.map +0 -1
- package/dist/providers/ServiceClientContext.js +0 -14
- package/dist/providers/ServiceClientContext.js.map +0 -6
- package/dist/providers/SyncStorageContext.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.types.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.types.js +0 -1
- package/dist/providers/shared-data/SharedDataContext.d.ts +0 -77
- package/dist/providers/shared-data/SharedDataContext.d.ts.map +0 -1
- package/dist/providers/shared-data/SharedDataContext.js +0 -14
- package/dist/providers/shared-data/SharedDataContext.js.map +0 -6
- package/dist/styles/patterns.styles.d.ts +0 -7
- package/dist/styles/patterns.styles.d.ts.map +0 -1
- package/dist/styles/patterns.styles.js +0 -47
- package/dist/styles/patterns.styles.js.map +0 -6
- package/dist/styles/tokens.styles.d.ts +0 -23
- package/dist/styles/tokens.styles.d.ts.map +0 -1
- package/dist/styles/tokens.styles.js +0 -76
- package/dist/styles/tokens.styles.js.map +0 -6
- package/src/components/data/kanban/KanbanContext.ts +0 -76
- package/src/components/data/sheet/DataSheet.css +0 -44
- package/src/components/disclosure/DialogContext.ts +0 -69
- package/src/components/disclosure/DialogInstanceContext.ts +0 -25
- package/src/components/disclosure/DialogProvider.tsx +0 -147
- package/src/components/features/shared-data/SharedDataSelectListContext.ts +0 -39
- package/src/components/feedback/busy/BusyContext.ts +0 -38
- package/src/components/feedback/notification/NotificationContext.ts +0 -95
- package/src/components/feedback/print/PrintContext.ts +0 -20
- package/src/components/feedback/print/PrintInstanceContext.ts +0 -11
- package/src/components/form-control/combobox/ComboboxContext.ts +0 -25
- package/src/components/form-control/combobox/ComboboxItem.tsx +0 -69
- package/src/components/form-control/select/SelectContext.ts +0 -35
- package/src/components/form-control/select/SelectItem.tsx +0 -128
- package/src/components/layout/sidebar/SidebarContainer.tsx +0 -123
- package/src/components/layout/sidebar/SidebarContext.ts +0 -40
- package/src/components/layout/sidebar/SidebarMenu.tsx +0 -182
- package/src/components/layout/sidebar/SidebarUser.tsx +0 -142
- package/src/components/layout/topbar/TopbarActions.tsx +0 -8
- package/src/components/layout/topbar/TopbarContainer.tsx +0 -44
- package/src/components/layout/topbar/TopbarContext.ts +0 -36
- package/src/components/layout/topbar/TopbarMenu.tsx +0 -227
- package/src/components/layout/topbar/TopbarUser.tsx +0 -97
- package/src/helpers/createHmrSafeContext.ts +0 -8
- package/src/helpers/createSlotComponent.ts +0 -23
- package/src/hooks/createSelectionGroup.tsx +0 -241
- package/src/hooks/createSlotSignal.ts +0 -14
- package/src/providers/ServiceClientContext.ts +0 -32
- package/src/providers/shared-data/SharedDataContext.ts +0 -91
- package/src/styles/patterns.styles.ts +0 -50
- package/src/styles/tokens.styles.ts +0 -86
- package/tests/components/data/Table.spec.tsx +0 -55
- package/tests/components/display/Alert.spec.tsx +0 -47
- package/tests/components/display/Card.spec.tsx +0 -41
- package/tests/components/display/Link.spec.tsx +0 -62
- package/tests/components/display/Tag.spec.tsx +0 -47
- package/tests/components/feedback/print/Print.spec.tsx +0 -45
- package/tests/components/layout/FormGroup.spec.tsx +0 -104
- package/tests/components/layout/FormTable.spec.tsx +0 -43
- package/tests/components/layout/topbar/TopbarContainer.spec.tsx +0 -38
- package/tests/providers/ClipboardProvider.spec.tsx +0 -20
- package/tests/providers/ConfigContext.spec.tsx +0 -42
- package/tests/providers/LoggerContext.spec.tsx +0 -76
- package/tests/providers/PwaUpdateProvider.spec.tsx +0 -32
- package/tests/providers/SyncStorageContext.spec.tsx +0 -77
- /package/dist/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
- /package/dist/providers/i18n/{I18nContext.types.js.map → I18nProvider.types.js.map} +0 -0
- /package/src/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
- /package/src/providers/{LoggerContext.tsx → LoggerProvider.tsx} +0 -0
- /package/src/providers/{SyncStorageContext.tsx → SyncStorageProvider.tsx} +0 -0
- /package/src/providers/i18n/{I18nContext.types.ts → I18nProvider.types.ts} +0 -0
|
@@ -1,33 +1,11 @@
|
|
|
1
1
|
import type { JSX } from "solid-js";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import { createSlots } from "../../../helpers/createSlots";
|
|
3
|
+
import type { DataSheetColumnProps } from "./types";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
return (
|
|
7
|
-
value != null &&
|
|
8
|
-
typeof value === "object" &&
|
|
9
|
-
(value as Record<string, unknown>)["__type"] === "sheet-column"
|
|
10
|
-
);
|
|
11
|
-
}
|
|
5
|
+
const [SlotComponent, createColumnSlotsAccessor] = createSlots<DataSheetColumnProps<any>>();
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return {
|
|
16
|
-
__type: "sheet-column",
|
|
17
|
-
key: props.key,
|
|
18
|
-
header: normalizeHeader(props.header),
|
|
19
|
-
headerContent: props.headerContent,
|
|
20
|
-
headerStyle: props.headerStyle,
|
|
21
|
-
summary: props.summary,
|
|
22
|
-
tooltip: props.tooltip,
|
|
23
|
-
cell: props.children,
|
|
24
|
-
class: props.class,
|
|
25
|
-
fixed: props.fixed ?? false,
|
|
26
|
-
hidden: props.hidden ?? false,
|
|
27
|
-
collapse: props.collapse ?? false,
|
|
28
|
-
width: props.width,
|
|
29
|
-
sortable: props.sortable ?? true,
|
|
30
|
-
resizable: props.resizable ?? true,
|
|
31
|
-
} as unknown as JSX.Element;
|
|
7
|
+
function DataSheetColumn<TItem>(props: DataSheetColumnProps<TItem>): JSX.Element {
|
|
8
|
+
return SlotComponent(props as DataSheetColumnProps<any>);
|
|
32
9
|
}
|
|
33
|
-
|
|
10
|
+
|
|
11
|
+
export { DataSheetColumn, createColumnSlotsAccessor };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Component } from "solid-js";
|
|
2
2
|
import { createStore, reconcile } from "solid-js/store";
|
|
3
3
|
import clsx from "clsx";
|
|
4
|
-
import { useDialogInstance } from "../../disclosure/DialogInstanceContext";
|
|
5
4
|
import type {
|
|
6
5
|
DataSheetConfig,
|
|
7
6
|
DataSheetConfigColumn,
|
|
@@ -12,13 +11,9 @@ import { DataSheet } from "./DataSheet";
|
|
|
12
11
|
import { Checkbox } from "../../form-control/checkbox/Checkbox";
|
|
13
12
|
import { TextInput } from "../../form-control/field/TextInput";
|
|
14
13
|
import { Button } from "../../form-control/Button";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
const containerClass = clsx("flex flex-col", "gap-2", "p-2");
|
|
19
|
-
const sheetWrapperClass = clsx("rounded border", borderSubtle);
|
|
20
|
-
const footerClass = clsx("flex justify-between", "gap-2");
|
|
21
|
-
const footerActionsClass = clsx("flex gap-2");
|
|
14
|
+
import { border } from "../../../styles/base.styles";
|
|
15
|
+
import { pad } from "../../../styles/control.styles";
|
|
16
|
+
import { useI18n } from "../../../providers/i18n/I18nProvider";
|
|
22
17
|
|
|
23
18
|
interface EditColumnItem {
|
|
24
19
|
key: string;
|
|
@@ -31,13 +26,12 @@ interface EditColumnItem {
|
|
|
31
26
|
export interface DataSheetConfigDialogProps {
|
|
32
27
|
columnInfos: DataSheetConfigColumnInfo[];
|
|
33
28
|
currentConfig: DataSheetConfig;
|
|
29
|
+
close?: (result?: DataSheetConfig) => void;
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (props) => {
|
|
37
|
-
const dialog = useDialogInstance<DataSheetConfig>();
|
|
38
33
|
const i18n = useI18n();
|
|
39
34
|
|
|
40
|
-
/* eslint-disable solid/reactivity -- dialog props are static values only used once at mount time */
|
|
41
35
|
const initialItems: EditColumnItem[] = props.columnInfos
|
|
42
36
|
.filter((info) => !info.collapse)
|
|
43
37
|
.map((info) => {
|
|
@@ -55,7 +49,6 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
|
|
|
55
49
|
const orderB = props.currentConfig.columnRecord?.[b.key]?.displayOrder ?? Infinity;
|
|
56
50
|
return orderA - orderB;
|
|
57
51
|
});
|
|
58
|
-
/* eslint-enable solid/reactivity */
|
|
59
52
|
|
|
60
53
|
const [editItems, setEditItems] = createStore<EditColumnItem[]>(initialItems);
|
|
61
54
|
|
|
@@ -89,7 +82,8 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
|
|
|
89
82
|
|
|
90
83
|
for (let i = 0; i < editItems.length; i++) {
|
|
91
84
|
const item = editItems[i];
|
|
92
|
-
const info = props.columnInfos.find((c) => c.key === item.key)
|
|
85
|
+
const info = props.columnInfos.find((c) => c.key === item.key);
|
|
86
|
+
if (!info) continue;
|
|
93
87
|
|
|
94
88
|
const entry: DataSheetConfigColumn = {};
|
|
95
89
|
|
|
@@ -103,22 +97,22 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
|
|
|
103
97
|
}
|
|
104
98
|
}
|
|
105
99
|
|
|
106
|
-
|
|
100
|
+
props.close?.({ columnRecord });
|
|
107
101
|
}
|
|
108
102
|
|
|
109
103
|
function handleReset(): void {
|
|
110
104
|
if (!confirm(i18n.t("dataSheetConfigDialog.resetConfirm"))) return;
|
|
111
|
-
|
|
105
|
+
props.close?.({ columnRecord: {} });
|
|
112
106
|
}
|
|
113
107
|
|
|
114
108
|
return (
|
|
115
|
-
<div class=
|
|
116
|
-
<div class={
|
|
109
|
+
<div class="flex flex-col gap-2 p-2">
|
|
110
|
+
<div class={clsx("rounded border", border.subtle)}>
|
|
117
111
|
<DataSheet items={editItems} inset hideConfigBar onItemsReorder={handleReorder}>
|
|
118
112
|
<DataSheet.Column<EditColumnItem>
|
|
119
113
|
key="header"
|
|
120
114
|
header={i18n.t("dataSheetConfigDialog.column")}
|
|
121
|
-
class=
|
|
115
|
+
class={pad.default}
|
|
122
116
|
sortable={false}
|
|
123
117
|
>
|
|
124
118
|
{(ctx) => ctx.item.headerText}
|
|
@@ -154,12 +148,12 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
|
|
|
154
148
|
</DataSheet>
|
|
155
149
|
</div>
|
|
156
150
|
|
|
157
|
-
<div class=
|
|
151
|
+
<div class="flex justify-between gap-2">
|
|
158
152
|
<Button onClick={handleReset} theme="warning" variant="solid">
|
|
159
153
|
{i18n.t("dataSheetConfigDialog.reset")}
|
|
160
154
|
</Button>
|
|
161
|
-
<div class=
|
|
162
|
-
<Button onClick={() =>
|
|
155
|
+
<div class="flex gap-2">
|
|
156
|
+
<Button onClick={() => props.close?.(undefined)}>{i18n.t("dataSheetConfigDialog.cancel")}</Button>
|
|
163
157
|
<Button onClick={handleOk} theme="primary" variant="solid">
|
|
164
158
|
{i18n.t("dataSheetConfigDialog.confirm")}
|
|
165
159
|
</Button>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
2
|
+
import type { FlatItem } from "../types";
|
|
3
|
+
import { collectAllExpandable, flattenTree } from "../sheetUtils";
|
|
4
|
+
import { createControllableSignal } from "../../../../hooks/createControllableSignal";
|
|
5
|
+
|
|
6
|
+
export interface UseDataSheetExpansionProps<TItem> {
|
|
7
|
+
expandedItems?: TItem[];
|
|
8
|
+
onExpandedItemsChange?: (items: TItem[]) => void;
|
|
9
|
+
itemChildren?: (item: TItem, index: number) => TItem[] | undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface UseDataSheetExpansionReturn<TItem> {
|
|
13
|
+
expandedItems: Accessor<TItem[]>;
|
|
14
|
+
setExpandedItems: (newValue: TItem[] | ((prev: TItem[]) => TItem[])) => TItem[];
|
|
15
|
+
flatItems: Accessor<FlatItem<TItem>[]>;
|
|
16
|
+
toggleExpand: (item: TItem) => void;
|
|
17
|
+
isAllExpanded: Accessor<boolean>;
|
|
18
|
+
toggleExpandAll: () => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function useDataSheetExpansion<TItem>(
|
|
22
|
+
props: UseDataSheetExpansionProps<TItem>,
|
|
23
|
+
pagedItems: Accessor<TItem[]>,
|
|
24
|
+
originalIndexMap: Accessor<Map<TItem, number>>,
|
|
25
|
+
): UseDataSheetExpansionReturn<TItem> {
|
|
26
|
+
const [expandedItems, setExpandedItems] = createControllableSignal({
|
|
27
|
+
value: () => props.expandedItems ?? [],
|
|
28
|
+
onChange: () => props.onExpandedItemsChange,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
function toggleExpand(item: TItem): void {
|
|
32
|
+
const current = expandedItems();
|
|
33
|
+
if (current.includes(item)) {
|
|
34
|
+
setExpandedItems(current.filter((i) => i !== item));
|
|
35
|
+
} else {
|
|
36
|
+
setExpandedItems([...current, item]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function toggleExpandAll(): void {
|
|
41
|
+
if (!props.itemChildren) return;
|
|
42
|
+
const indexMap = originalIndexMap();
|
|
43
|
+
const allExpandable = collectAllExpandable(
|
|
44
|
+
pagedItems(),
|
|
45
|
+
props.itemChildren,
|
|
46
|
+
(item) => indexMap.get(item) ?? -1,
|
|
47
|
+
);
|
|
48
|
+
const isAllCurrentlyExpanded = allExpandable.every((item) =>
|
|
49
|
+
expandedItems().includes(item),
|
|
50
|
+
);
|
|
51
|
+
setExpandedItems(isAllCurrentlyExpanded ? [] : allExpandable);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const flatItems = createMemo((): FlatItem<TItem>[] => {
|
|
55
|
+
const indexMap = originalIndexMap();
|
|
56
|
+
return flattenTree(
|
|
57
|
+
pagedItems(),
|
|
58
|
+
expandedItems(),
|
|
59
|
+
props.itemChildren,
|
|
60
|
+
(item) => indexMap.get(item) ?? -1,
|
|
61
|
+
);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const isAllExpanded = createMemo(() => {
|
|
65
|
+
if (!props.itemChildren) return false;
|
|
66
|
+
const indexMap = originalIndexMap();
|
|
67
|
+
const allExpandable = collectAllExpandable(
|
|
68
|
+
pagedItems(),
|
|
69
|
+
props.itemChildren,
|
|
70
|
+
(item) => indexMap.get(item) ?? -1,
|
|
71
|
+
);
|
|
72
|
+
return (
|
|
73
|
+
allExpandable.length > 0 && allExpandable.every((item) => expandedItems().includes(item))
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
expandedItems,
|
|
79
|
+
setExpandedItems,
|
|
80
|
+
flatItems,
|
|
81
|
+
toggleExpand,
|
|
82
|
+
isAllExpanded,
|
|
83
|
+
toggleExpandAll,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { createMemo, createSignal, type Accessor } from "solid-js";
|
|
2
|
+
import { createResizeObserver } from "@solid-primitives/resize-observer";
|
|
3
|
+
import type { DataSheetColumnDef } from "../types";
|
|
4
|
+
|
|
5
|
+
export interface UseDataSheetFixedColumnsProps<TItem> {
|
|
6
|
+
itemChildren?: (item: TItem, index: number) => TItem[] | undefined;
|
|
7
|
+
selectionMode?: "single" | "multiple";
|
|
8
|
+
onItemsReorder?: (event: any) => void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function useDataSheetFixedColumns<TItem>(
|
|
12
|
+
props: UseDataSheetFixedColumnsProps<TItem>,
|
|
13
|
+
effectiveColumns: Accessor<DataSheetColumnDef<TItem>[]>
|
|
14
|
+
) {
|
|
15
|
+
// Feature column presence checks
|
|
16
|
+
const hasExpandFeature = () => props.itemChildren != null;
|
|
17
|
+
const hasSelectFeature = () => props.selectionMode != null;
|
|
18
|
+
const hasReorderFeature = () => props.onItemsReorder != null;
|
|
19
|
+
|
|
20
|
+
// Feature column width tracking helper
|
|
21
|
+
function createTrackedWidth(): [() => number, (el: HTMLElement) => void] {
|
|
22
|
+
const [width, setWidth] = createSignal(0);
|
|
23
|
+
const register = (el: HTMLElement) => {
|
|
24
|
+
createResizeObserver(el, () => {
|
|
25
|
+
setWidth(el.offsetWidth);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
return [width, register];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const [expandColWidth, registerExpandColRef] = createTrackedWidth();
|
|
32
|
+
const [selectColWidth, registerSelectColRef] = createTrackedWidth();
|
|
33
|
+
const [reorderColWidth, registerReorderColRef] = createTrackedWidth();
|
|
34
|
+
|
|
35
|
+
// Feature column left position (used in select/reorder column style)
|
|
36
|
+
const selectColLeft = createMemo(() => (hasExpandFeature() ? `${expandColWidth()}px` : "0"));
|
|
37
|
+
|
|
38
|
+
const reorderColLeft = createMemo(() => {
|
|
39
|
+
let left = 0;
|
|
40
|
+
if (hasExpandFeature()) left += expandColWidth();
|
|
41
|
+
if (hasSelectFeature()) left += selectColWidth();
|
|
42
|
+
return `${left}px`;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Column cell refs — for width measurement
|
|
46
|
+
const columnRefs = new Map<number, HTMLElement>();
|
|
47
|
+
|
|
48
|
+
// Measured width of each column
|
|
49
|
+
const [columnWidths, setColumnWidths] = createSignal<Map<number, number>>(new Map());
|
|
50
|
+
|
|
51
|
+
// Total width of feature columns (expand, etc.) — used for fixed column left offset
|
|
52
|
+
const featureColTotalWidth = createMemo(() => {
|
|
53
|
+
let w = 0;
|
|
54
|
+
if (hasExpandFeature()) w += expandColWidth();
|
|
55
|
+
if (hasSelectFeature()) w += selectColWidth();
|
|
56
|
+
if (hasReorderFeature()) w += reorderColWidth();
|
|
57
|
+
return w;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// Calculate left position of fixed columns
|
|
61
|
+
const fixedLeftMap = createMemo(() => {
|
|
62
|
+
const map = new Map<number, number>();
|
|
63
|
+
const cols = effectiveColumns();
|
|
64
|
+
const widths = columnWidths();
|
|
65
|
+
let left = featureColTotalWidth();
|
|
66
|
+
for (let c = 0; c < cols.length; c++) {
|
|
67
|
+
if (!cols[c].fixed) break; // Fixed columns are placed continuously at front
|
|
68
|
+
map.set(c, left);
|
|
69
|
+
left += widths.get(c) ?? 0;
|
|
70
|
+
}
|
|
71
|
+
return map;
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Last fixed column index
|
|
75
|
+
const lastFixedIndex = createMemo(() => {
|
|
76
|
+
const cols = effectiveColumns();
|
|
77
|
+
let last = -1;
|
|
78
|
+
for (let c = 0; c < cols.length; c++) {
|
|
79
|
+
if (cols[c].fixed) last = c;
|
|
80
|
+
else break;
|
|
81
|
+
}
|
|
82
|
+
return last;
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
function getFixedStyle(colIndex: number): string | undefined {
|
|
86
|
+
const leftVal = fixedLeftMap().get(colIndex);
|
|
87
|
+
if (leftVal == null) return undefined;
|
|
88
|
+
return `left: ${leftVal}px`;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function isLastFixed(colIndex: number): boolean {
|
|
92
|
+
return colIndex === lastFixedIndex();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Register ResizeObserver for fixed column cells
|
|
96
|
+
function registerColumnRef(colIndex: number, el: HTMLElement): void {
|
|
97
|
+
columnRefs.set(colIndex, el);
|
|
98
|
+
createResizeObserver(el, () => {
|
|
99
|
+
setColumnWidths((prev) => {
|
|
100
|
+
const next = new Map(prev);
|
|
101
|
+
next.set(colIndex, el.offsetWidth);
|
|
102
|
+
return next;
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
// Feature column tracking
|
|
109
|
+
hasExpandFeature,
|
|
110
|
+
hasSelectFeature,
|
|
111
|
+
hasReorderFeature,
|
|
112
|
+
expandColWidth,
|
|
113
|
+
selectColWidth,
|
|
114
|
+
reorderColWidth,
|
|
115
|
+
registerExpandColRef,
|
|
116
|
+
registerSelectColRef,
|
|
117
|
+
registerReorderColRef,
|
|
118
|
+
selectColLeft,
|
|
119
|
+
reorderColLeft,
|
|
120
|
+
|
|
121
|
+
// Fixed columns
|
|
122
|
+
columnRefs,
|
|
123
|
+
columnWidths,
|
|
124
|
+
featureColTotalWidth,
|
|
125
|
+
fixedLeftMap,
|
|
126
|
+
lastFixedIndex,
|
|
127
|
+
getFixedStyle,
|
|
128
|
+
isLastFixed,
|
|
129
|
+
registerColumnRef,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
2
|
+
import { createControllableSignal } from "../../../../hooks/createControllableSignal";
|
|
3
|
+
|
|
4
|
+
export interface UseDataSheetPagingOptions<TItem> {
|
|
5
|
+
page: Accessor<number | undefined>;
|
|
6
|
+
onPageChange: Accessor<((page: number) => void) | undefined>;
|
|
7
|
+
pageSize: Accessor<number | undefined>;
|
|
8
|
+
totalPageCount: Accessor<number | undefined>;
|
|
9
|
+
items: Accessor<TItem[] | undefined>;
|
|
10
|
+
sortedItems: Accessor<TItem[]>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface UseDataSheetPagingReturn<TItem> {
|
|
14
|
+
currentPage: Accessor<number>;
|
|
15
|
+
setCurrentPage: (newValue: number | ((prev: number) => number)) => number;
|
|
16
|
+
pageCount: Accessor<number>;
|
|
17
|
+
pagedItems: Accessor<TItem[]>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function useDataSheetPaging<TItem>(
|
|
21
|
+
options: UseDataSheetPagingOptions<TItem>,
|
|
22
|
+
): UseDataSheetPagingReturn<TItem> {
|
|
23
|
+
const [currentPage, setCurrentPage] = createControllableSignal({
|
|
24
|
+
value: () => options.page() ?? 1,
|
|
25
|
+
onChange: () => options.onPageChange(),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const pageCount = createMemo(() => {
|
|
29
|
+
const ipp = options.pageSize();
|
|
30
|
+
if (ipp != null && ipp !== 0 && (options.items() ?? []).length > 0) {
|
|
31
|
+
return Math.ceil((options.items() ?? []).length / ipp);
|
|
32
|
+
}
|
|
33
|
+
return options.totalPageCount() ?? 0;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const pagedItems = createMemo(() => {
|
|
37
|
+
const ipp = options.pageSize();
|
|
38
|
+
if (ipp == null || ipp === 0) return options.sortedItems();
|
|
39
|
+
if ((options.items() ?? []).length <= 0) return options.sortedItems();
|
|
40
|
+
|
|
41
|
+
const page = Math.max(1, currentPage());
|
|
42
|
+
return options.sortedItems().slice((page - 1) * ipp, page * ipp);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
currentPage,
|
|
47
|
+
setCurrentPage,
|
|
48
|
+
pageCount,
|
|
49
|
+
pagedItems,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { createSignal, type Accessor } from "solid-js";
|
|
2
|
+
import { startPointerDrag } from "../../../../helpers/startPointerDrag";
|
|
3
|
+
import type { DataSheetReorderEvent } from "../types";
|
|
4
|
+
import type { FlatItem } from "../types";
|
|
5
|
+
|
|
6
|
+
export interface UseDataSheetReorderProps<TItem> {
|
|
7
|
+
onItemsReorder?: (event: DataSheetReorderEvent<TItem>) => void;
|
|
8
|
+
itemChildren?: (item: TItem, index: number) => TItem[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function useDataSheetReorder<TItem>(
|
|
12
|
+
props: UseDataSheetReorderProps<TItem>,
|
|
13
|
+
displayItems: Accessor<FlatItem<TItem>[]>
|
|
14
|
+
) {
|
|
15
|
+
const [dragState, setDragState] = createSignal<{
|
|
16
|
+
draggingItem: TItem;
|
|
17
|
+
targetItem: TItem | null;
|
|
18
|
+
position: "before" | "after" | "inside" | null;
|
|
19
|
+
} | null>(null);
|
|
20
|
+
|
|
21
|
+
function isDescendant(parent: TItem, child: TItem, visited = new Set<TItem>()): boolean {
|
|
22
|
+
if (visited.has(parent)) return false;
|
|
23
|
+
visited.add(parent);
|
|
24
|
+
if (!props.itemChildren) return false;
|
|
25
|
+
const childItems = props.itemChildren(parent, 0);
|
|
26
|
+
if (!childItems) return false;
|
|
27
|
+
for (const c of childItems) {
|
|
28
|
+
if (c === child) return true;
|
|
29
|
+
if (isDescendant(c, child, visited)) return true;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function onReorderPointerDown(e: PointerEvent, item: TItem): void {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
const target = e.currentTarget as HTMLElement;
|
|
37
|
+
|
|
38
|
+
const tableEl = target.closest("table")!;
|
|
39
|
+
const tbody = tableEl.querySelector("tbody")!;
|
|
40
|
+
const rows = Array.from(tbody.rows);
|
|
41
|
+
|
|
42
|
+
setDragState({ draggingItem: item, targetItem: null, position: null });
|
|
43
|
+
|
|
44
|
+
startPointerDrag(target, e.pointerId, {
|
|
45
|
+
onMove(ev) {
|
|
46
|
+
let foundTarget: TItem | null = null;
|
|
47
|
+
let foundPosition: "before" | "after" | "inside" | null = null;
|
|
48
|
+
|
|
49
|
+
for (let i = 0; i < rows.length; i++) {
|
|
50
|
+
const row = rows[i];
|
|
51
|
+
const rect = row.getBoundingClientRect();
|
|
52
|
+
if (ev.clientY < rect.top || ev.clientY > rect.bottom) continue;
|
|
53
|
+
|
|
54
|
+
if (i >= displayItems().length) break;
|
|
55
|
+
const flat = displayItems()[i];
|
|
56
|
+
if (flat.item === item) break;
|
|
57
|
+
|
|
58
|
+
// Cannot drop to child items of self
|
|
59
|
+
if (isDescendant(item, flat.item)) break;
|
|
60
|
+
|
|
61
|
+
const relY = ev.clientY - rect.top;
|
|
62
|
+
const third = rect.height / 3;
|
|
63
|
+
|
|
64
|
+
if (relY < third) {
|
|
65
|
+
foundPosition = "before";
|
|
66
|
+
} else if (relY > third * 2) {
|
|
67
|
+
foundPosition = "after";
|
|
68
|
+
} else {
|
|
69
|
+
foundPosition = props.itemChildren
|
|
70
|
+
? "inside"
|
|
71
|
+
: relY < rect.height / 2
|
|
72
|
+
? "before"
|
|
73
|
+
: "after";
|
|
74
|
+
}
|
|
75
|
+
foundTarget = flat.item;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
setDragState({ draggingItem: item, targetItem: foundTarget, position: foundPosition });
|
|
80
|
+
|
|
81
|
+
// Update indicator DOM
|
|
82
|
+
for (let i = 0; i < rows.length; i++) {
|
|
83
|
+
rows[i].removeAttribute("data-dragging");
|
|
84
|
+
rows[i].removeAttribute("data-drag-over");
|
|
85
|
+
|
|
86
|
+
if (i < displayItems().length) {
|
|
87
|
+
const flat = displayItems()[i];
|
|
88
|
+
if (flat.item === item) {
|
|
89
|
+
rows[i].setAttribute("data-dragging", "");
|
|
90
|
+
}
|
|
91
|
+
if (flat.item === foundTarget && foundPosition === "inside") {
|
|
92
|
+
rows[i].setAttribute("data-drag-over", "inside");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// before/after indicator
|
|
98
|
+
const indicatorEl = tableEl
|
|
99
|
+
.closest("[data-sheet-scroll]")
|
|
100
|
+
?.querySelector("[data-reorder-indicator]") as HTMLElement | null;
|
|
101
|
+
if (indicatorEl) {
|
|
102
|
+
if (foundTarget != null && foundPosition != null && foundPosition !== "inside") {
|
|
103
|
+
const targetIdx = displayItems().findIndex((f) => f.item === foundTarget);
|
|
104
|
+
if (targetIdx >= 0) {
|
|
105
|
+
const targetRow = rows[targetIdx];
|
|
106
|
+
const containerRect = tableEl.closest("[data-sheet-scroll]")!.getBoundingClientRect();
|
|
107
|
+
const rowRect = targetRow.getBoundingClientRect();
|
|
108
|
+
const scrollEl = tableEl.closest("[data-sheet-scroll]") as HTMLElement;
|
|
109
|
+
|
|
110
|
+
const top =
|
|
111
|
+
foundPosition === "before"
|
|
112
|
+
? rowRect.top - containerRect.top + scrollEl.scrollTop
|
|
113
|
+
: rowRect.bottom - containerRect.top + scrollEl.scrollTop;
|
|
114
|
+
|
|
115
|
+
indicatorEl.style.display = "block";
|
|
116
|
+
indicatorEl.style.top = `${top}px`;
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
indicatorEl.style.display = "none";
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
onEnd() {
|
|
124
|
+
const state = dragState();
|
|
125
|
+
if (state?.targetItem != null && state.position != null) {
|
|
126
|
+
props.onItemsReorder?.({
|
|
127
|
+
item: state.draggingItem,
|
|
128
|
+
targetItem: state.targetItem,
|
|
129
|
+
position: state.position,
|
|
130
|
+
} as DataSheetReorderEvent<TItem>);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Clean up
|
|
134
|
+
for (const row of rows) {
|
|
135
|
+
row.removeAttribute("data-dragging");
|
|
136
|
+
row.removeAttribute("data-drag-over");
|
|
137
|
+
}
|
|
138
|
+
const indicatorEl = tableEl
|
|
139
|
+
.closest("[data-sheet-scroll]")
|
|
140
|
+
?.querySelector("[data-reorder-indicator]") as HTMLElement | null;
|
|
141
|
+
if (indicatorEl) {
|
|
142
|
+
indicatorEl.style.display = "none";
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
setDragState(null);
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return {
|
|
151
|
+
dragState,
|
|
152
|
+
setDragState,
|
|
153
|
+
onReorderPointerDown,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createSignal, type Accessor } from "solid-js";
|
|
2
|
+
import type { FlatItem } from "../types";
|
|
3
|
+
import { createControllableSignal } from "../../../../hooks/createControllableSignal";
|
|
4
|
+
|
|
5
|
+
export interface UseDataSheetSelectionProps<TItem> {
|
|
6
|
+
selectionMode?: "single" | "multiple";
|
|
7
|
+
selection?: TItem[];
|
|
8
|
+
onSelectionChange?: (items: TItem[]) => void;
|
|
9
|
+
itemSelectable?: (item: TItem) => boolean | string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface UseDataSheetSelectionReturn<TItem> {
|
|
13
|
+
selection: Accessor<TItem[]>;
|
|
14
|
+
setSelection: (newValue: TItem[] | ((prev: TItem[]) => TItem[])) => TItem[];
|
|
15
|
+
getItemSelectable: (item: TItem) => boolean | string;
|
|
16
|
+
toggleSelect: (item: TItem) => void;
|
|
17
|
+
toggleSelectAll: () => void;
|
|
18
|
+
rangeSelect: (targetRow: number) => void;
|
|
19
|
+
lastClickedRow: Accessor<number | null>;
|
|
20
|
+
setLastClickedRow: (value: number | null) => void;
|
|
21
|
+
lastClickAction: Accessor<"select" | "deselect">;
|
|
22
|
+
setLastClickAction: (value: "select" | "deselect") => void;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function useDataSheetSelection<TItem>(
|
|
26
|
+
props: UseDataSheetSelectionProps<TItem>,
|
|
27
|
+
displayItems: Accessor<FlatItem<TItem>[]>,
|
|
28
|
+
): UseDataSheetSelectionReturn<TItem> {
|
|
29
|
+
const [selection, setSelection] = createControllableSignal({
|
|
30
|
+
value: () => props.selection ?? [],
|
|
31
|
+
onChange: () => props.onSelectionChange,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const [lastClickedRow, setLastClickedRow] = createSignal<number | null>(null);
|
|
35
|
+
const [lastClickAction, setLastClickAction] = createSignal<"select" | "deselect">("select");
|
|
36
|
+
|
|
37
|
+
function getItemSelectable(item: TItem): boolean | string {
|
|
38
|
+
if (!props.itemSelectable) return true;
|
|
39
|
+
return props.itemSelectable(item);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function toggleSelect(item: TItem): void {
|
|
43
|
+
if (getItemSelectable(item) !== true) return;
|
|
44
|
+
const isSelected = selection().includes(item);
|
|
45
|
+
setLastClickAction(isSelected ? "deselect" : "select");
|
|
46
|
+
|
|
47
|
+
if (props.selectionMode === "single") {
|
|
48
|
+
setSelection(isSelected ? [] : [item]);
|
|
49
|
+
} else {
|
|
50
|
+
setSelection(
|
|
51
|
+
isSelected ? selection().filter((i) => i !== item) : [...selection(), item],
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function toggleSelectAll(): void {
|
|
57
|
+
const selectableItems = displayItems()
|
|
58
|
+
.map((flat) => flat.item)
|
|
59
|
+
.filter((item) => getItemSelectable(item) === true);
|
|
60
|
+
const isAllSelected = selectableItems.every((item) => selection().includes(item));
|
|
61
|
+
setSelection(isAllSelected ? [] : selectableItems);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function rangeSelect(targetRow: number): void {
|
|
65
|
+
const lastRow = lastClickedRow();
|
|
66
|
+
if (lastRow == null) return;
|
|
67
|
+
|
|
68
|
+
const start = Math.min(lastRow, targetRow);
|
|
69
|
+
const end = Math.max(lastRow, targetRow);
|
|
70
|
+
|
|
71
|
+
const rangeItems = displayItems()
|
|
72
|
+
.slice(start, end + 1)
|
|
73
|
+
.map((flat) => flat.item)
|
|
74
|
+
.filter((item) => getItemSelectable(item) === true);
|
|
75
|
+
|
|
76
|
+
if (lastClickAction() === "select") {
|
|
77
|
+
const newItems = [...selection()];
|
|
78
|
+
for (const item of rangeItems) {
|
|
79
|
+
if (!newItems.includes(item)) newItems.push(item);
|
|
80
|
+
}
|
|
81
|
+
setSelection(newItems);
|
|
82
|
+
} else {
|
|
83
|
+
setSelection(selection().filter((item) => !rangeItems.includes(item)));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
selection,
|
|
89
|
+
setSelection,
|
|
90
|
+
getItemSelectable,
|
|
91
|
+
toggleSelect,
|
|
92
|
+
toggleSelectAll,
|
|
93
|
+
rangeSelect,
|
|
94
|
+
lastClickedRow,
|
|
95
|
+
setLastClickedRow,
|
|
96
|
+
lastClickAction,
|
|
97
|
+
setLastClickAction,
|
|
98
|
+
};
|
|
99
|
+
}
|