@simplysm/solid 13.0.75 → 13.0.77
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 +13 -14
- 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 +50 -16
- 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 +7 -28
- package/dist/components/data/list/List.d.ts.map +1 -1
- package/dist/components/data/list/List.js +5 -7
- 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 -7
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +557 -843
- 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/{types.d.ts → DataSheet.types.d.ts} +14 -9
- package/dist/components/data/sheet/DataSheet.types.d.ts.map +1 -0
- package/dist/components/data/sheet/DataSheet.types.js +1 -0
- package/dist/components/data/sheet/{sheetUtils.d.ts → DataSheet.utils.d.ts} +4 -4
- package/dist/components/data/sheet/DataSheet.utils.d.ts.map +1 -0
- package/dist/components/data/sheet/{sheetUtils.js → DataSheet.utils.js} +8 -8
- package/dist/components/data/sheet/DataSheet.utils.js.map +6 -0
- 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 +2 -1
- 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/useDataSheetHeaderCell.d.ts +27 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js +173 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.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 +20 -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/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 +79 -25
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +251 -113
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts +8 -35
- 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 +4 -6
- 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 +1 -1
- package/dist/components/display/Barcode.d.ts.map +1 -1
- package/dist/components/display/Barcode.js +3 -4
- package/dist/components/display/Barcode.js.map +2 -2
- package/dist/components/display/Barcode.types.d.ts +2 -0
- package/dist/components/display/Barcode.types.d.ts.map +1 -0
- package/dist/components/display/Barcode.types.js +1 -0
- 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 +2 -2
- package/dist/components/display/Echarts.d.ts.map +1 -1
- package/dist/components/display/Echarts.js +8 -11
- 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 +7 -5
- package/dist/components/features/address/AddressSearch.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetail.d.ts +12 -13
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +218 -206
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-detail/{types.d.ts → CrudDetail.types.d.ts} +3 -13
- package/dist/components/features/crud-detail/CrudDetail.types.d.ts.map +1 -0
- package/dist/components/features/crud-detail/CrudDetail.types.js +1 -0
- 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-sheet/CrudSheet.d.ts +6 -9
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +147 -141
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/{types.d.ts → CrudSheet.types.d.ts} +14 -44
- package/dist/components/features/crud-sheet/CrudSheet.types.d.ts.map +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.types.js +1 -0
- 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/data-select-button/DataSelectButton.d.ts +25 -28
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +27 -38
- 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 +20 -19
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +62 -84
- 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 +12 -8
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +136 -116
- 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 +22 -5
- package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
- package/dist/components/feedback/print/Print.d.ts +4 -6
- package/dist/components/feedback/print/Print.d.ts.map +1 -1
- package/dist/components/feedback/print/Print.js +3 -2
- package/dist/components/feedback/print/Print.js.map +2 -2
- 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 +16 -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/Invalid.d.ts +1 -1
- package/dist/components/form-control/Invalid.d.ts.map +1 -1
- package/dist/components/form-control/Invalid.js +27 -26
- package/dist/components/form-control/Invalid.js.map +2 -2
- 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 +2 -2
- 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 +10 -10
- 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 +2 -2
- 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 +10 -10
- 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 +3 -3
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +6 -18
- package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +28 -49
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +116 -63
- 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 +16 -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 +250 -239
- 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 +3 -3
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +50 -131
- package/dist/components/form-control/field/DatePicker.js.map +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts +3 -3
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +50 -131
- 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 +13 -32
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +92 -196
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +14 -29
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +87 -197
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/field/Textarea.d.ts +3 -3
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +81 -156
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +3 -3
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +46 -123
- 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 +48 -51
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +220 -117
- 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 +68 -57
- 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 +60 -29
- 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 +5 -6
- 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 +17 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -23
- 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/i18n/I18nProvider.types.js.map +6 -0
- package/dist/providers/shared-data/SharedDataProvider.d.ts +75 -2
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +111 -91
- 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 +133 -94
- package/src/components/data/list/List.tsx +8 -22
- 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 +356 -747
- package/src/components/data/sheet/{types.ts → DataSheet.types.ts} +13 -8
- package/src/components/data/sheet/{sheetUtils.ts → DataSheet.utils.ts} +8 -8
- package/src/components/data/sheet/DataSheetColumn.tsx +7 -29
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +15 -21
- 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/useDataSheetHeaderCell.tsx +168 -0
- package/src/components/data/sheet/hooks/useDataSheetPaging.ts +51 -0
- package/src/components/data/sheet/hooks/useDataSheetReorder.ts +154 -0
- package/src/components/data/sheet/hooks/useDataSheetSelection.ts +99 -0
- package/src/components/data/sheet/hooks/useDataSheetSorting.ts +68 -0
- package/src/components/disclosure/Collapse.tsx +1 -9
- package/src/components/disclosure/Dialog.tsx +254 -59
- package/src/components/disclosure/Dropdown.tsx +66 -80
- package/src/components/disclosure/Tabs.tsx +23 -37
- package/src/components/display/Alert.tsx +2 -5
- package/src/components/display/Barcode.tsx +5 -117
- package/src/components/display/Barcode.types.ts +111 -0
- package/src/components/display/Card.animate.css +11 -0
- package/src/components/display/Card.tsx +10 -11
- package/src/components/display/Echarts.tsx +11 -15
- package/src/components/display/Link.tsx +3 -5
- package/src/components/display/Tag.tsx +2 -5
- package/src/components/features/address/AddressSearch.tsx +24 -7
- package/src/components/features/crud-detail/CrudDetail.tsx +135 -165
- package/src/components/features/crud-detail/{types.ts → CrudDetail.types.ts} +3 -16
- 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-sheet/CrudSheet.tsx +158 -176
- package/src/components/features/crud-sheet/{types.ts → CrudSheet.types.ts} +13 -47
- 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/data-select-button/DataSelectButton.tsx +57 -66
- package/src/components/features/permission-table/PermissionTable.tsx +9 -13
- package/src/components/features/shared-data/SharedDataSelect.tsx +97 -127
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +22 -14
- package/src/components/features/shared-data/SharedDataSelectList.tsx +61 -42
- 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 +105 -11
- package/src/components/feedback/print/Print.tsx +4 -8
- package/src/components/feedback/print/PrintProvider.tsx +37 -5
- package/src/components/form-control/Button.tsx +11 -29
- package/src/components/form-control/DropdownTrigger.styles.ts +16 -17
- package/src/components/form-control/Invalid.tsx +33 -29
- 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 +15 -101
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +83 -17
- package/src/components/form-control/checkbox/Radio.tsx +15 -104
- package/src/components/form-control/checkbox/RadioGroup.tsx +80 -17
- 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 +12 -32
- package/src/components/form-control/combobox/Combobox.tsx +143 -44
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +10 -10
- package/src/components/form-control/editor/EditorToolbar.tsx +120 -217
- 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 +34 -76
- package/src/components/form-control/field/DateTimePicker.tsx +35 -83
- 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 +75 -137
- package/src/components/form-control/field/TextInput.tsx +58 -120
- package/src/components/form-control/field/Textarea.tsx +67 -111
- package/src/components/form-control/field/TimePicker.tsx +33 -74
- package/src/components/form-control/numpad/Numpad.tsx +5 -6
- package/src/components/form-control/select/Select.tsx +266 -151
- package/src/components/form-control/state-preset/StatePreset.tsx +65 -88
- package/src/components/layout/FormGroup.tsx +10 -13
- package/src/components/layout/FormTable.tsx +40 -19
- package/src/components/layout/sidebar/Sidebar.tsx +456 -44
- package/src/components/layout/topbar/Topbar.tsx +420 -49
- package/src/helpers/createAppStructure.ts +22 -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 +5 -6
- package/src/hooks/useLogger.ts +1 -1
- package/src/hooks/useSyncConfig.ts +1 -1
- package/src/index.ts +18 -23
- package/src/providers/ConfigContext.tsx +0 -1
- package/src/providers/PwaUpdateProvider.tsx +1 -1
- package/src/providers/ServiceClientProvider.tsx +62 -56
- package/src/providers/SystemProvider.tsx +4 -5
- package/src/providers/i18n/{I18nContext.tsx → I18nProvider.tsx} +1 -1
- package/src/providers/shared-data/SharedDataProvider.tsx +228 -124
- 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 +38 -67
- 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 +362 -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 +11 -61
- 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 +15 -15
- 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 +19 -72
- 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 +5 -20
- 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 +28 -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 +5 -5
- package/tests/components/layout/topbar/{createTopbarActions.spec.tsx → useTopbarActions.spec.tsx} +4 -13
- 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 +143 -21
- 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/data/sheet/sheetUtils.d.ts.map +0 -1
- package/dist/components/data/sheet/sheetUtils.js.map +0 -6
- package/dist/components/data/sheet/types.d.ts.map +0 -1
- package/dist/components/data/sheet/types.js +0 -1
- 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/crud-detail/types.d.ts.map +0 -1
- package/dist/components/features/crud-detail/types.js +0 -1
- package/dist/components/features/crud-sheet/types.d.ts.map +0 -1
- package/dist/components/features/crud-sheet/types.js +0 -1
- 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/notification/index.d.ts +0 -5
- package/dist/components/feedback/notification/index.d.ts.map +0 -1
- package/dist/components/feedback/notification/index.js +0 -5
- package/dist/components/feedback/notification/index.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/notification/index.ts +0 -4
- 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/data/sheet/{types.js.map → DataSheet.types.js.map} +0 -0
- /package/dist/components/{features/crud-detail/types.js.map → display/Barcode.types.js.map} +0 -0
- /package/dist/components/features/{crud-sheet/types.js.map → crud-detail/CrudDetail.types.js.map} +0 -0
- /package/dist/{providers/i18n/I18nContext.types.js.map → components/features/crud-sheet/CrudSheet.types.js.map} +0 -0
- /package/dist/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +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
|
@@ -4,7 +4,7 @@ export interface DataSheetProps<TItem> {
|
|
|
4
4
|
// Data
|
|
5
5
|
items?: TItem[];
|
|
6
6
|
// Config
|
|
7
|
-
|
|
7
|
+
storageKey?: string;
|
|
8
8
|
hideConfigBar?: boolean;
|
|
9
9
|
inset?: boolean;
|
|
10
10
|
contentStyle?: JSX.CSSProperties | string;
|
|
@@ -18,20 +18,26 @@ export interface DataSheetProps<TItem> {
|
|
|
18
18
|
page?: number;
|
|
19
19
|
onPageChange?: (page: number) => void;
|
|
20
20
|
totalPageCount?: number;
|
|
21
|
-
|
|
21
|
+
pageSize?: number;
|
|
22
22
|
displayPageCount?: number;
|
|
23
23
|
|
|
24
24
|
// Selection
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
autoSelect?:
|
|
25
|
+
selectionMode?: "single" | "multiple";
|
|
26
|
+
selection?: TItem[];
|
|
27
|
+
onSelectionChange?: (items: TItem[]) => void;
|
|
28
|
+
autoSelect?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Determines if an item can be selected.
|
|
31
|
+
* - `true` → selectable
|
|
32
|
+
* - `false` → not selectable
|
|
33
|
+
* - `string` → not selectable, string shown as tooltip explaining why
|
|
34
|
+
*/
|
|
29
35
|
isItemSelectable?: (item: TItem) => boolean | string;
|
|
30
36
|
|
|
31
37
|
// Tree expansion
|
|
32
38
|
expandedItems?: TItem[];
|
|
33
39
|
onExpandedItemsChange?: (items: TItem[]) => void;
|
|
34
|
-
|
|
40
|
+
itemChildren?: (item: TItem, index: number) => TItem[] | undefined;
|
|
35
41
|
|
|
36
42
|
// Cell styling
|
|
37
43
|
cellClass?: (item: TItem, colKey: string) => string | undefined;
|
|
@@ -88,7 +94,6 @@ export interface DataSheetConfigColumn {
|
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
export interface DataSheetColumnDef<TItem> {
|
|
91
|
-
__type: "sheet-column";
|
|
92
97
|
key: string;
|
|
93
98
|
header: string[];
|
|
94
99
|
headerContent?: () => JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DataSheetColumnDef, FlatItem, HeaderDef, SortingDef } from "./types";
|
|
2
|
-
import {
|
|
1
|
+
import type { DataSheetColumnDef, FlatItem, HeaderDef, SortingDef } from "./DataSheet.types";
|
|
2
|
+
import { obj } from "@simplysm/core-common";
|
|
3
3
|
|
|
4
4
|
export function normalizeHeader(header?: string | string[]): string[] {
|
|
5
5
|
if (header == null) return [""];
|
|
@@ -102,10 +102,10 @@ function isSameGroup(
|
|
|
102
102
|
export function flattenTree<TNode>(
|
|
103
103
|
items: TNode[],
|
|
104
104
|
expandedItems: TNode[],
|
|
105
|
-
|
|
105
|
+
itemChildren?: (item: TNode, index: number) => TNode[] | undefined,
|
|
106
106
|
getOriginalIndex?: (item: TNode) => number,
|
|
107
107
|
): FlatItem<TNode>[] {
|
|
108
|
-
if (!
|
|
108
|
+
if (!itemChildren) {
|
|
109
109
|
return items.map((item, i) => ({
|
|
110
110
|
item,
|
|
111
111
|
index: getOriginalIndex ? getOriginalIndex(item) : i,
|
|
@@ -122,7 +122,7 @@ export function flattenTree<TNode>(
|
|
|
122
122
|
for (let localIdx = 0; localIdx < list.length; localIdx++) {
|
|
123
123
|
const item = list[localIdx];
|
|
124
124
|
const index = depth === 0 && getOriginalIndex ? getOriginalIndex(item) : localIdx;
|
|
125
|
-
const children =
|
|
125
|
+
const children = itemChildren!(item, index);
|
|
126
126
|
const hasChildren = children != null && children.length > 0;
|
|
127
127
|
result.push({ item, index, row, depth, hasChildren, parent });
|
|
128
128
|
row++;
|
|
@@ -139,7 +139,7 @@ export function flattenTree<TNode>(
|
|
|
139
139
|
|
|
140
140
|
export function collectAllExpandable<TItem>(
|
|
141
141
|
items: TItem[],
|
|
142
|
-
|
|
142
|
+
itemChildren: (item: TItem, index: number) => TItem[] | undefined,
|
|
143
143
|
getOriginalIndex?: (item: TItem) => number,
|
|
144
144
|
): TItem[] {
|
|
145
145
|
const result: TItem[] = [];
|
|
@@ -148,7 +148,7 @@ export function collectAllExpandable<TItem>(
|
|
|
148
148
|
for (let localIdx = 0; localIdx < list.length; localIdx++) {
|
|
149
149
|
const item = list[localIdx];
|
|
150
150
|
const index = depth === 0 && getOriginalIndex ? getOriginalIndex(item) : localIdx;
|
|
151
|
-
const children =
|
|
151
|
+
const children = itemChildren(item, index);
|
|
152
152
|
if (children != null && children.length > 0) {
|
|
153
153
|
result.push(item);
|
|
154
154
|
walk(children, depth + 1);
|
|
@@ -166,7 +166,7 @@ export function applySorting<TItem>(items: TItem[], sorts: SortingDef[]): TItem[
|
|
|
166
166
|
let result = [...items];
|
|
167
167
|
for (const sort of [...sorts].reverse()) {
|
|
168
168
|
const selector = (item: TItem) =>
|
|
169
|
-
|
|
169
|
+
obj.getChainValue(item, sort.key) as string | number | undefined;
|
|
170
170
|
result = sort.desc ? result.orderByDesc(selector) : result.orderBy(selector);
|
|
171
171
|
}
|
|
172
172
|
return result;
|
|
@@ -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 "./DataSheet.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,24 +1,19 @@
|
|
|
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,
|
|
8
7
|
DataSheetConfigColumnInfo,
|
|
9
8
|
DataSheetReorderEvent,
|
|
10
|
-
} from "./types";
|
|
9
|
+
} from "./DataSheet.types";
|
|
11
10
|
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 "../DataSheet.types";
|
|
3
|
+
import { collectAllExpandable, flattenTree } from "../DataSheet.utils";
|
|
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, DataSheetReorderEvent } from "../DataSheet.types";
|
|
4
|
+
|
|
5
|
+
export interface UseDataSheetFixedColumnsProps<TItem> {
|
|
6
|
+
itemChildren?: (item: TItem, index: number) => TItem[] | undefined;
|
|
7
|
+
selectionMode?: "single" | "multiple";
|
|
8
|
+
onItemsReorder?: (event: DataSheetReorderEvent<TItem>) => 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,168 @@
|
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
|
+
import { Show } from "solid-js";
|
|
3
|
+
import clsx from "clsx";
|
|
4
|
+
import { twMerge } from "tailwind-merge";
|
|
5
|
+
import { Icon } from "../../../display/Icon";
|
|
6
|
+
import { IconArrowsSort, IconSortAscending, IconSortDescending } from "@tabler/icons-solidjs";
|
|
7
|
+
import type { HeaderDef, DataSheetColumnDef } from "../DataSheet.types";
|
|
8
|
+
|
|
9
|
+
export interface UseDataSheetHeaderCellProps<TItem> {
|
|
10
|
+
effectiveColumns: () => DataSheetColumnDef<TItem>[];
|
|
11
|
+
headerRowTops: () => number[];
|
|
12
|
+
getFixedStyle: (colIndex: number) => string | undefined;
|
|
13
|
+
isLastFixed: (colIndex: number) => boolean;
|
|
14
|
+
registerColumnRef: (colIndex: number, el: HTMLElement) => void;
|
|
15
|
+
toggleSort: (key: string, multi: boolean) => void;
|
|
16
|
+
getSortDef: (key: string) => { desc: boolean } | undefined;
|
|
17
|
+
sortIndex: (key: string) => number | undefined;
|
|
18
|
+
onResizerPointerdown: (e: PointerEvent, key: string) => void;
|
|
19
|
+
onResizerDoubleClick: (key: string) => void;
|
|
20
|
+
thClass: string;
|
|
21
|
+
fixedClass: string;
|
|
22
|
+
sortableThClass: string;
|
|
23
|
+
fixedLastClass: string;
|
|
24
|
+
thContentClass: string;
|
|
25
|
+
resizerClass: string;
|
|
26
|
+
sortIconClass: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function useDataSheetHeaderCell<TItem>(props: UseDataSheetHeaderCellProps<TItem>) {
|
|
30
|
+
function renderHeaderCell(header: HeaderDef, colIndex: number, rowIndex: number): JSX.Element {
|
|
31
|
+
const isSortable = () =>
|
|
32
|
+
header.isLastRow &&
|
|
33
|
+
header.colIndex != null &&
|
|
34
|
+
props.effectiveColumns()[header.colIndex].sortable;
|
|
35
|
+
const colKey = () =>
|
|
36
|
+
header.colIndex != null
|
|
37
|
+
? props.effectiveColumns()[header.colIndex].key
|
|
38
|
+
: undefined;
|
|
39
|
+
|
|
40
|
+
const isGroupFixed = (): boolean => {
|
|
41
|
+
if (header.isLastRow) return false;
|
|
42
|
+
const start = colIndex;
|
|
43
|
+
const span = header.colspan;
|
|
44
|
+
const cols = props.effectiveColumns();
|
|
45
|
+
for (let i = start; i < start + span && i < cols.length; i++) {
|
|
46
|
+
if (!cols[i].fixed) return false;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const isCellFixed = () =>
|
|
52
|
+
(header.isLastRow &&
|
|
53
|
+
header.colIndex != null &&
|
|
54
|
+
props.effectiveColumns()[header.colIndex].fixed) ||
|
|
55
|
+
isGroupFixed();
|
|
56
|
+
|
|
57
|
+
const isCellLastFixed = () => {
|
|
58
|
+
if (header.isLastRow && header.colIndex != null)
|
|
59
|
+
return props.isLastFixed(header.colIndex);
|
|
60
|
+
if (isGroupFixed()) {
|
|
61
|
+
const lastCol = colIndex + header.colspan - 1;
|
|
62
|
+
return props.isLastFixed(lastCol);
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const cellStyle = (): string | undefined => {
|
|
68
|
+
const parts: string[] = [];
|
|
69
|
+
const top = props.headerRowTops()[rowIndex];
|
|
70
|
+
parts.push(`top: ${top}px`);
|
|
71
|
+
if (header.isLastRow && header.colIndex != null) {
|
|
72
|
+
const left = props.getFixedStyle(header.colIndex);
|
|
73
|
+
if (left != null) parts.push(left);
|
|
74
|
+
const col = props.effectiveColumns()[header.colIndex];
|
|
75
|
+
if (col.width != null) parts.push(`max-width: ${col.width.replace(/;/g, "")}`);
|
|
76
|
+
} else if (isGroupFixed()) {
|
|
77
|
+
const left = props.getFixedStyle(colIndex);
|
|
78
|
+
if (left != null) parts.push(left);
|
|
79
|
+
}
|
|
80
|
+
return parts.length > 0 ? parts.join("; ") : undefined;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
return (
|
|
84
|
+
<th
|
|
85
|
+
class={twMerge(
|
|
86
|
+
props.thClass,
|
|
87
|
+
props.fixedClass,
|
|
88
|
+
isSortable() ? props.sortableThClass : undefined,
|
|
89
|
+
isCellFixed() ? "z-[5]" : "z-[3]",
|
|
90
|
+
isCellLastFixed() ? props.fixedLastClass : undefined,
|
|
91
|
+
)}
|
|
92
|
+
colspan={header.colspan > 1 ? header.colspan : undefined}
|
|
93
|
+
rowspan={header.rowspan > 1 ? header.rowspan : undefined}
|
|
94
|
+
style={cellStyle()}
|
|
95
|
+
title={
|
|
96
|
+
header.isLastRow && header.colIndex != null
|
|
97
|
+
? (props.effectiveColumns()[header.colIndex].tooltip ?? header.text)
|
|
98
|
+
: header.text
|
|
99
|
+
}
|
|
100
|
+
ref={(el: HTMLElement) => {
|
|
101
|
+
if (
|
|
102
|
+
header.isLastRow &&
|
|
103
|
+
header.colIndex != null &&
|
|
104
|
+
props.effectiveColumns()[header.colIndex].fixed
|
|
105
|
+
) {
|
|
106
|
+
props.registerColumnRef(header.colIndex, el);
|
|
107
|
+
}
|
|
108
|
+
}}
|
|
109
|
+
onClick={(e) => {
|
|
110
|
+
if (!isSortable()) return;
|
|
111
|
+
const key = colKey();
|
|
112
|
+
if (key == null) return;
|
|
113
|
+
props.toggleSort(key, e.shiftKey || e.ctrlKey);
|
|
114
|
+
}}
|
|
115
|
+
>
|
|
116
|
+
<div class={clsx("flex items-center gap-2", props.thContentClass)}>
|
|
117
|
+
<div class="flex-1">{header.headerContent?.() ?? header.text}</div>
|
|
118
|
+
<Show when={isSortable() && colKey()}>
|
|
119
|
+
{(key) => {
|
|
120
|
+
const sortDef = () => props.getSortDef(key());
|
|
121
|
+
const sortIdx = () => props.sortIndex(key());
|
|
122
|
+
return (
|
|
123
|
+
<div class={props.sortIconClass}>
|
|
124
|
+
<Show when={sortDef()?.desc === false}>
|
|
125
|
+
<Icon icon={IconSortAscending} />
|
|
126
|
+
</Show>
|
|
127
|
+
<Show when={sortDef()?.desc === true}>
|
|
128
|
+
<Icon icon={IconSortDescending} />
|
|
129
|
+
</Show>
|
|
130
|
+
<Show when={sortDef() == null}>
|
|
131
|
+
<Icon
|
|
132
|
+
icon={IconArrowsSort}
|
|
133
|
+
class="opacity-30"
|
|
134
|
+
/>
|
|
135
|
+
</Show>
|
|
136
|
+
<Show when={sortIdx()}>
|
|
137
|
+
{(idx) => <sub>{idx()}</sub>}
|
|
138
|
+
</Show>
|
|
139
|
+
</div>
|
|
140
|
+
);
|
|
141
|
+
}}
|
|
142
|
+
</Show>
|
|
143
|
+
</div>
|
|
144
|
+
<Show
|
|
145
|
+
when={
|
|
146
|
+
header.isLastRow &&
|
|
147
|
+
header.colIndex != null &&
|
|
148
|
+
props.effectiveColumns()[header.colIndex].resizable
|
|
149
|
+
}
|
|
150
|
+
>
|
|
151
|
+
<div
|
|
152
|
+
class={props.resizerClass}
|
|
153
|
+
onClick={(e) => e.stopPropagation()}
|
|
154
|
+
onPointerDown={(e) =>
|
|
155
|
+
props.onResizerPointerdown(e, props.effectiveColumns()[header.colIndex!].key)
|
|
156
|
+
}
|
|
157
|
+
onDblClick={(e) => {
|
|
158
|
+
e.stopPropagation();
|
|
159
|
+
props.onResizerDoubleClick(props.effectiveColumns()[header.colIndex!].key);
|
|
160
|
+
}}
|
|
161
|
+
/>
|
|
162
|
+
</Show>
|
|
163
|
+
</th>
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return { renderHeaderCell };
|
|
168
|
+
}
|
|
@@ -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
|
+
}
|