@iamsaroj/smart-ui 0.2.0
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/CHANGELOG.md +35 -0
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/dist/calendar-engine/agenda-view.d.ts +8 -0
- package/dist/calendar-engine/agenda-view.d.ts.map +1 -0
- package/dist/calendar-engine/agenda-view.js +26 -0
- package/dist/calendar-engine/agenda-view.js.map +1 -0
- package/dist/calendar-engine/booking.d.ts +13 -0
- package/dist/calendar-engine/booking.d.ts.map +1 -0
- package/dist/calendar-engine/booking.js +45 -0
- package/dist/calendar-engine/booking.js.map +1 -0
- package/dist/calendar-engine/calendar-utils.d.ts +74 -0
- package/dist/calendar-engine/calendar-utils.d.ts.map +1 -0
- package/dist/calendar-engine/calendar-utils.js +221 -0
- package/dist/calendar-engine/calendar-utils.js.map +1 -0
- package/dist/calendar-engine/calendar.d.ts +62 -0
- package/dist/calendar-engine/calendar.d.ts.map +1 -0
- package/dist/calendar-engine/calendar.js +81 -0
- package/dist/calendar-engine/calendar.js.map +1 -0
- package/dist/calendar-engine/event-color.d.ts +20 -0
- package/dist/calendar-engine/event-color.d.ts.map +1 -0
- package/dist/calendar-engine/event-color.js +59 -0
- package/dist/calendar-engine/event-color.js.map +1 -0
- package/dist/calendar-engine/index.d.ts +11 -0
- package/dist/calendar-engine/index.d.ts.map +1 -0
- package/dist/calendar-engine/index.js +6 -0
- package/dist/calendar-engine/index.js.map +1 -0
- package/dist/calendar-engine/month-view.d.ts +10 -0
- package/dist/calendar-engine/month-view.d.ts.map +1 -0
- package/dist/calendar-engine/month-view.js +72 -0
- package/dist/calendar-engine/month-view.js.map +1 -0
- package/dist/calendar-engine/recurrence.d.ts +47 -0
- package/dist/calendar-engine/recurrence.d.ts.map +1 -0
- package/dist/calendar-engine/recurrence.js +209 -0
- package/dist/calendar-engine/recurrence.js.map +1 -0
- package/dist/calendar-engine/shared.d.ts +72 -0
- package/dist/calendar-engine/shared.d.ts.map +1 -0
- package/dist/calendar-engine/shared.js +34 -0
- package/dist/calendar-engine/shared.js.map +1 -0
- package/dist/calendar-engine/time-grid-view.d.ts +13 -0
- package/dist/calendar-engine/time-grid-view.d.ts.map +1 -0
- package/dist/calendar-engine/time-grid-view.js +203 -0
- package/dist/calendar-engine/time-grid-view.js.map +1 -0
- package/dist/calendar-engine/types.d.ts +138 -0
- package/dist/calendar-engine/types.d.ts.map +1 -0
- package/dist/calendar-engine/types.js +2 -0
- package/dist/calendar-engine/types.js.map +1 -0
- package/dist/calendar-engine/use-calendar.d.ts +7 -0
- package/dist/calendar-engine/use-calendar.d.ts.map +1 -0
- package/dist/calendar-engine/use-calendar.js +25 -0
- package/dist/calendar-engine/use-calendar.js.map +1 -0
- package/dist/components/accordion.d.ts +7 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +10 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +19 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +18 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.d.ts +11 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +20 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +5 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +7 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.d.ts +12 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +11 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +8 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +33 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +11 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +23 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +9 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +34 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +11 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +77 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +12 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +11 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.d.ts +29 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +94 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +45 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +133 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +4 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +8 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +6 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +7 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +35 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +45 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command.d.ts +20 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +18 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +30 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +22 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/data-table.d.ts +12 -0
- package/dist/components/data-table.d.ts.map +1 -0
- package/dist/components/data-table.js +44 -0
- package/dist/components/data-table.js.map +1 -0
- package/dist/components/date-picker.d.ts +33 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.js +29 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.d.ts +18 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +18 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.d.ts +14 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +15 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +30 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +22 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/hover-card.d.ts +6 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +8 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.d.ts +19 -0
- package/dist/components/input-group.d.ts.map +1 -0
- package/dist/components/input-group.js +46 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.d.ts +12 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +16 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.d.ts +4 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +6 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/kbd.d.ts +5 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +6 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.d.ts +4 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +5 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menubar.d.ts +30 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +24 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +12 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +18 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.d.ts +18 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +13 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +10 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +12 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +8 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +10 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +6 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +9 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/scroll-area.d.ts +5 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +8 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +16 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +4 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +6 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +15 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +18 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +64 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +224 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +5 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +4 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +13 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.d.ts +4 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +25 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/switch.d.ts +6 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +7 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +12 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +11 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +23 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +4 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +5 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toggle-group.d.ts +11 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +22 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +9 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +25 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.d.ts +7 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +10 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/data-grid/action-column-cell.d.ts +41 -0
- package/dist/data-grid/action-column-cell.d.ts.map +1 -0
- package/dist/data-grid/action-column-cell.js +114 -0
- package/dist/data-grid/action-column-cell.js.map +1 -0
- package/dist/data-grid/action-column.d.ts +144 -0
- package/dist/data-grid/action-column.d.ts.map +1 -0
- package/dist/data-grid/action-column.js +156 -0
- package/dist/data-grid/action-column.js.map +1 -0
- package/dist/data-grid/create-page-fetcher.d.ts +57 -0
- package/dist/data-grid/create-page-fetcher.d.ts.map +1 -0
- package/dist/data-grid/create-page-fetcher.js +41 -0
- package/dist/data-grid/create-page-fetcher.js.map +1 -0
- package/dist/data-grid/data-grid.d.ts +65 -0
- package/dist/data-grid/data-grid.d.ts.map +1 -0
- package/dist/data-grid/data-grid.js +95 -0
- package/dist/data-grid/data-grid.js.map +1 -0
- package/dist/data-grid/empty-state.d.ts +13 -0
- package/dist/data-grid/empty-state.d.ts.map +1 -0
- package/dist/data-grid/empty-state.js +6 -0
- package/dist/data-grid/empty-state.js.map +1 -0
- package/dist/data-grid/formula-guard.d.ts +22 -0
- package/dist/data-grid/formula-guard.d.ts.map +1 -0
- package/dist/data-grid/formula-guard.js +28 -0
- package/dist/data-grid/formula-guard.js.map +1 -0
- package/dist/data-grid/grid-internals.d.ts +16 -0
- package/dist/data-grid/grid-internals.d.ts.map +1 -0
- package/dist/data-grid/grid-internals.js +73 -0
- package/dist/data-grid/grid-internals.js.map +1 -0
- package/dist/data-grid/grid-theme.d.ts +8 -0
- package/dist/data-grid/grid-theme.d.ts.map +1 -0
- package/dist/data-grid/grid-theme.js +23 -0
- package/dist/data-grid/grid-theme.js.map +1 -0
- package/dist/data-grid/grid-toolbar.d.ts +40 -0
- package/dist/data-grid/grid-toolbar.d.ts.map +1 -0
- package/dist/data-grid/grid-toolbar.js +13 -0
- package/dist/data-grid/grid-toolbar.js.map +1 -0
- package/dist/data-grid/index.d.ts +10 -0
- package/dist/data-grid/index.d.ts.map +1 -0
- package/dist/data-grid/index.js +9 -0
- package/dist/data-grid/index.js.map +1 -0
- package/dist/data-grid/pagination.d.ts +146 -0
- package/dist/data-grid/pagination.d.ts.map +1 -0
- package/dist/data-grid/pagination.js +128 -0
- package/dist/data-grid/pagination.js.map +1 -0
- package/dist/data-grid/server-data-grid.d.ts +109 -0
- package/dist/data-grid/server-data-grid.d.ts.map +1 -0
- package/dist/data-grid/server-data-grid.js +240 -0
- package/dist/data-grid/server-data-grid.js.map +1 -0
- package/dist/data-grid/server-grid-internals.d.ts +79 -0
- package/dist/data-grid/server-grid-internals.d.ts.map +1 -0
- package/dist/data-grid/server-grid-internals.js +137 -0
- package/dist/data-grid/server-grid-internals.js.map +1 -0
- package/dist/data-grid/use-action-column.d.ts +22 -0
- package/dist/data-grid/use-action-column.d.ts.map +1 -0
- package/dist/data-grid/use-action-column.js +63 -0
- package/dist/data-grid/use-action-column.js.map +1 -0
- package/dist/data-grid/use-server-grid-selection.d.ts +35 -0
- package/dist/data-grid/use-server-grid-selection.d.ts.map +1 -0
- package/dist/data-grid/use-server-grid-selection.js +81 -0
- package/dist/data-grid/use-server-grid-selection.js.map +1 -0
- package/dist/form-engine/base.d.ts +19 -0
- package/dist/form-engine/base.d.ts.map +1 -0
- package/dist/form-engine/base.js +2 -0
- package/dist/form-engine/base.js.map +1 -0
- package/dist/form-engine/field-registry.d.ts +285 -0
- package/dist/form-engine/field-registry.d.ts.map +1 -0
- package/dist/form-engine/field-registry.js +306 -0
- package/dist/form-engine/field-registry.js.map +1 -0
- package/dist/form-engine/field-types.d.ts +201 -0
- package/dist/form-engine/field-types.d.ts.map +1 -0
- package/dist/form-engine/field-types.js +14 -0
- package/dist/form-engine/field-types.js.map +1 -0
- package/dist/form-engine/index.d.ts +20 -0
- package/dist/form-engine/index.d.ts.map +1 -0
- package/dist/form-engine/index.js +21 -0
- package/dist/form-engine/index.js.map +1 -0
- package/dist/form-engine/smart-checkbox-field.d.ts +5 -0
- package/dist/form-engine/smart-checkbox-field.d.ts.map +1 -0
- package/dist/form-engine/smart-checkbox-field.js +9 -0
- package/dist/form-engine/smart-checkbox-field.js.map +1 -0
- package/dist/form-engine/smart-checkbox-group-field.d.ts +10 -0
- package/dist/form-engine/smart-checkbox-group-field.d.ts.map +1 -0
- package/dist/form-engine/smart-checkbox-group-field.js +5 -0
- package/dist/form-engine/smart-checkbox-group-field.js.map +1 -0
- package/dist/form-engine/smart-combobox-field.d.ts +11 -0
- package/dist/form-engine/smart-combobox-field.d.ts.map +1 -0
- package/dist/form-engine/smart-combobox-field.js +5 -0
- package/dist/form-engine/smart-combobox-field.js.map +1 -0
- package/dist/form-engine/smart-date-field.d.ts +8 -0
- package/dist/form-engine/smart-date-field.d.ts.map +1 -0
- package/dist/form-engine/smart-date-field.js +17 -0
- package/dist/form-engine/smart-date-field.js.map +1 -0
- package/dist/form-engine/smart-date-range-field.d.ts +15 -0
- package/dist/form-engine/smart-date-range-field.d.ts.map +1 -0
- package/dist/form-engine/smart-date-range-field.js +25 -0
- package/dist/form-engine/smart-date-range-field.js.map +1 -0
- package/dist/form-engine/smart-datetime-field.d.ts +12 -0
- package/dist/form-engine/smart-datetime-field.d.ts.map +1 -0
- package/dist/form-engine/smart-datetime-field.js +12 -0
- package/dist/form-engine/smart-datetime-field.js.map +1 -0
- package/dist/form-engine/smart-form-internals.d.ts +14 -0
- package/dist/form-engine/smart-form-internals.d.ts.map +1 -0
- package/dist/form-engine/smart-form-internals.js +64 -0
- package/dist/form-engine/smart-form-internals.js.map +1 -0
- package/dist/form-engine/smart-form.d.ts +55 -0
- package/dist/form-engine/smart-form.d.ts.map +1 -0
- package/dist/form-engine/smart-form.js +229 -0
- package/dist/form-engine/smart-form.js.map +1 -0
- package/dist/form-engine/smart-input-field.d.ts +9 -0
- package/dist/form-engine/smart-input-field.d.ts.map +1 -0
- package/dist/form-engine/smart-input-field.js +5 -0
- package/dist/form-engine/smart-input-field.js.map +1 -0
- package/dist/form-engine/smart-month-field.d.ts +8 -0
- package/dist/form-engine/smart-month-field.d.ts.map +1 -0
- package/dist/form-engine/smart-month-field.js +12 -0
- package/dist/form-engine/smart-month-field.js.map +1 -0
- package/dist/form-engine/smart-multi-select-field.d.ts +11 -0
- package/dist/form-engine/smart-multi-select-field.d.ts.map +1 -0
- package/dist/form-engine/smart-multi-select-field.js +5 -0
- package/dist/form-engine/smart-multi-select-field.js.map +1 -0
- package/dist/form-engine/smart-number-field.d.ts +22 -0
- package/dist/form-engine/smart-number-field.d.ts.map +1 -0
- package/dist/form-engine/smart-number-field.js +115 -0
- package/dist/form-engine/smart-number-field.js.map +1 -0
- package/dist/form-engine/smart-password-field.d.ts +7 -0
- package/dist/form-engine/smart-password-field.d.ts.map +1 -0
- package/dist/form-engine/smart-password-field.js +5 -0
- package/dist/form-engine/smart-password-field.js.map +1 -0
- package/dist/form-engine/smart-radio-group-field.d.ts +10 -0
- package/dist/form-engine/smart-radio-group-field.d.ts.map +1 -0
- package/dist/form-engine/smart-radio-group-field.js +5 -0
- package/dist/form-engine/smart-radio-group-field.js.map +1 -0
- package/dist/form-engine/smart-segmented-field.d.ts +9 -0
- package/dist/form-engine/smart-segmented-field.d.ts.map +1 -0
- package/dist/form-engine/smart-segmented-field.js +5 -0
- package/dist/form-engine/smart-segmented-field.js.map +1 -0
- package/dist/form-engine/smart-select-field.d.ts +10 -0
- package/dist/form-engine/smart-select-field.d.ts.map +1 -0
- package/dist/form-engine/smart-select-field.js +5 -0
- package/dist/form-engine/smart-select-field.js.map +1 -0
- package/dist/form-engine/smart-slug-field.d.ts +12 -0
- package/dist/form-engine/smart-slug-field.d.ts.map +1 -0
- package/dist/form-engine/smart-slug-field.js +14 -0
- package/dist/form-engine/smart-slug-field.js.map +1 -0
- package/dist/form-engine/smart-switch-field.d.ts +5 -0
- package/dist/form-engine/smart-switch-field.d.ts.map +1 -0
- package/dist/form-engine/smart-switch-field.js +9 -0
- package/dist/form-engine/smart-switch-field.js.map +1 -0
- package/dist/form-engine/smart-tel-field.d.ts +7 -0
- package/dist/form-engine/smart-tel-field.d.ts.map +1 -0
- package/dist/form-engine/smart-tel-field.js +6 -0
- package/dist/form-engine/smart-tel-field.js.map +1 -0
- package/dist/form-engine/smart-text-editor-field.d.ts +15 -0
- package/dist/form-engine/smart-text-editor-field.d.ts.map +1 -0
- package/dist/form-engine/smart-text-editor-field.js +5 -0
- package/dist/form-engine/smart-text-editor-field.js.map +1 -0
- package/dist/form-engine/smart-textarea-field.d.ts +8 -0
- package/dist/form-engine/smart-textarea-field.d.ts.map +1 -0
- package/dist/form-engine/smart-textarea-field.js +5 -0
- package/dist/form-engine/smart-textarea-field.js.map +1 -0
- package/dist/form-engine/smart-time-field.d.ts +10 -0
- package/dist/form-engine/smart-time-field.d.ts.map +1 -0
- package/dist/form-engine/smart-time-field.js +5 -0
- package/dist/form-engine/smart-time-field.js.map +1 -0
- package/dist/form-engine/smart-time-range-field.d.ts +13 -0
- package/dist/form-engine/smart-time-range-field.d.ts.map +1 -0
- package/dist/form-engine/smart-time-range-field.js +5 -0
- package/dist/form-engine/smart-time-range-field.js.map +1 -0
- package/dist/form-engine/smart-year-field.d.ts +8 -0
- package/dist/form-engine/smart-year-field.d.ts.map +1 -0
- package/dist/form-engine/smart-year-field.js +5 -0
- package/dist/form-engine/smart-year-field.js.map +1 -0
- package/dist/form-engine/smart-yesno-field.d.ts +12 -0
- package/dist/form-engine/smart-yesno-field.d.ts.map +1 -0
- package/dist/form-engine/smart-yesno-field.js +14 -0
- package/dist/form-engine/smart-yesno-field.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +17 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/lexical-text-editor/SmartTextEditor.d.ts +61 -0
- package/dist/lexical-text-editor/SmartTextEditor.d.ts.map +1 -0
- package/dist/lexical-text-editor/SmartTextEditor.js +145 -0
- package/dist/lexical-text-editor/SmartTextEditor.js.map +1 -0
- package/dist/lexical-text-editor/editor-nodes.d.ts +3 -0
- package/dist/lexical-text-editor/editor-nodes.d.ts.map +1 -0
- package/dist/lexical-text-editor/editor-nodes.js +25 -0
- package/dist/lexical-text-editor/editor-nodes.js.map +1 -0
- package/dist/lexical-text-editor/editor-theme.d.ts +3 -0
- package/dist/lexical-text-editor/editor-theme.d.ts.map +1 -0
- package/dist/lexical-text-editor/editor-theme.js +78 -0
- package/dist/lexical-text-editor/editor-theme.js.map +1 -0
- package/dist/lexical-text-editor/index.d.ts +8 -0
- package/dist/lexical-text-editor/index.d.ts.map +1 -0
- package/dist/lexical-text-editor/index.js +6 -0
- package/dist/lexical-text-editor/index.js.map +1 -0
- package/dist/lexical-text-editor/nodes/image-node.d.ts +41 -0
- package/dist/lexical-text-editor/nodes/image-node.d.ts.map +1 -0
- package/dist/lexical-text-editor/nodes/image-node.js +89 -0
- package/dist/lexical-text-editor/nodes/image-node.js.map +1 -0
- package/dist/lexical-text-editor/nodes/page-break-node.d.ts +25 -0
- package/dist/lexical-text-editor/nodes/page-break-node.d.ts.map +1 -0
- package/dist/lexical-text-editor/nodes/page-break-node.js +84 -0
- package/dist/lexical-text-editor/nodes/page-break-node.js.map +1 -0
- package/dist/lexical-text-editor/plugins/auto-link-plugin.d.ts +3 -0
- package/dist/lexical-text-editor/plugins/auto-link-plugin.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/auto-link-plugin.js +12 -0
- package/dist/lexical-text-editor/plugins/auto-link-plugin.js.map +1 -0
- package/dist/lexical-text-editor/plugins/code-highlight-plugin.d.ts +6 -0
- package/dist/lexical-text-editor/plugins/code-highlight-plugin.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/code-highlight-plugin.js +14 -0
- package/dist/lexical-text-editor/plugins/code-highlight-plugin.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/align-menu.d.ts +7 -0
- package/dist/lexical-text-editor/plugins/toolbar/align-menu.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/align-menu.js +8 -0
- package/dist/lexical-text-editor/plugins/toolbar/align-menu.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.d.ts +20 -0
- package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.js +78 -0
- package/dist/lexical-text-editor/plugins/toolbar/block-format-menu.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/constants.d.ts +36 -0
- package/dist/lexical-text-editor/plugins/toolbar/constants.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/constants.js +67 -0
- package/dist/lexical-text-editor/plugins/toolbar/constants.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/inline-marks.d.ts +14 -0
- package/dist/lexical-text-editor/plugins/toolbar/inline-marks.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/inline-marks.js +129 -0
- package/dist/lexical-text-editor/plugins/toolbar/inline-marks.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/insert-menu.d.ts +8 -0
- package/dist/lexical-text-editor/plugins/toolbar/insert-menu.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/insert-menu.js +87 -0
- package/dist/lexical-text-editor/plugins/toolbar/insert-menu.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/link-editor.d.ts +11 -0
- package/dist/lexical-text-editor/plugins/toolbar/link-editor.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/link-editor.js +51 -0
- package/dist/lexical-text-editor/plugins/toolbar/link-editor.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/primitives.d.ts +39 -0
- package/dist/lexical-text-editor/plugins/toolbar/primitives.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/primitives.js +47 -0
- package/dist/lexical-text-editor/plugins/toolbar/primitives.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.d.ts +9 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.js +29 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-insert-commands.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.d.ts +30 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.js +128 -0
- package/dist/lexical-text-editor/plugins/toolbar/use-toolbar-state.js.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar-plugin.d.ts +8 -0
- package/dist/lexical-text-editor/plugins/toolbar-plugin.d.ts.map +1 -0
- package/dist/lexical-text-editor/plugins/toolbar-plugin.js +51 -0
- package/dist/lexical-text-editor/plugins/toolbar-plugin.js.map +1 -0
- package/dist/lexical-text-editor/sanitize.d.ts +24 -0
- package/dist/lexical-text-editor/sanitize.d.ts.map +1 -0
- package/dist/lexical-text-editor/sanitize.js +140 -0
- package/dist/lexical-text-editor/sanitize.js.map +1 -0
- package/dist/lib/format.d.ts +17 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +40 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/leading-space.d.ts +28 -0
- package/dist/lib/leading-space.d.ts.map +1 -0
- package/dist/lib/leading-space.js +34 -0
- package/dist/lib/leading-space.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +4 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/xlsx.d.ts +80 -0
- package/dist/lib/xlsx.d.ts.map +1 -0
- package/dist/lib/xlsx.js +377 -0
- package/dist/lib/xlsx.js.map +1 -0
- package/dist/search-engine/build-query.d.ts +29 -0
- package/dist/search-engine/build-query.d.ts.map +1 -0
- package/dist/search-engine/build-query.js +51 -0
- package/dist/search-engine/build-query.js.map +1 -0
- package/dist/search-engine/index.d.ts +15 -0
- package/dist/search-engine/index.d.ts.map +1 -0
- package/dist/search-engine/index.js +13 -0
- package/dist/search-engine/index.js.map +1 -0
- package/dist/search-engine/smart-search-form.d.ts +92 -0
- package/dist/search-engine/smart-search-form.d.ts.map +1 -0
- package/dist/search-engine/smart-search-form.js +136 -0
- package/dist/search-engine/smart-search-form.js.map +1 -0
- package/dist/search-engine/types.d.ts +40 -0
- package/dist/search-engine/types.d.ts.map +1 -0
- package/dist/search-engine/types.js +11 -0
- package/dist/search-engine/types.js.map +1 -0
- package/dist/smart-components/buttons/action-button.d.ts +66 -0
- package/dist/smart-components/buttons/action-button.d.ts.map +1 -0
- package/dist/smart-components/buttons/action-button.js +79 -0
- package/dist/smart-components/buttons/action-button.js.map +1 -0
- package/dist/smart-components/buttons/action-buttons.d.ts +122 -0
- package/dist/smart-components/buttons/action-buttons.d.ts.map +1 -0
- package/dist/smart-components/buttons/action-buttons.js +42 -0
- package/dist/smart-components/buttons/action-buttons.js.map +1 -0
- package/dist/smart-components/buttons/action-config.d.ts +181 -0
- package/dist/smart-components/buttons/action-config.d.ts.map +1 -0
- package/dist/smart-components/buttons/action-config.js +128 -0
- package/dist/smart-components/buttons/action-config.js.map +1 -0
- package/dist/smart-components/buttons/index.d.ts +4 -0
- package/dist/smart-components/buttons/index.d.ts.map +1 -0
- package/dist/smart-components/buttons/index.js +7 -0
- package/dist/smart-components/buttons/index.js.map +1 -0
- package/dist/smart-components/loading-overlay.d.ts +16 -0
- package/dist/smart-components/loading-overlay.d.ts.map +1 -0
- package/dist/smart-components/loading-overlay.js +13 -0
- package/dist/smart-components/loading-overlay.js.map +1 -0
- package/dist/smart-components/page/index.d.ts +19 -0
- package/dist/smart-components/page/index.d.ts.map +1 -0
- package/dist/smart-components/page/index.js +33 -0
- package/dist/smart-components/page/index.js.map +1 -0
- package/dist/smart-components/page/layouts/page-states.d.ts +17 -0
- package/dist/smart-components/page/layouts/page-states.d.ts.map +1 -0
- package/dist/smart-components/page/layouts/page-states.js +12 -0
- package/dist/smart-components/page/layouts/page-states.js.map +1 -0
- package/dist/smart-components/page/layouts/slot-buckets.d.ts +21 -0
- package/dist/smart-components/page/layouts/slot-buckets.d.ts.map +1 -0
- package/dist/smart-components/page/layouts/slot-buckets.js +2 -0
- package/dist/smart-components/page/layouts/slot-buckets.js.map +1 -0
- package/dist/smart-components/page/layouts/split-layout.d.ts +13 -0
- package/dist/smart-components/page/layouts/split-layout.d.ts.map +1 -0
- package/dist/smart-components/page/layouts/split-layout.js +14 -0
- package/dist/smart-components/page/layouts/split-layout.js.map +1 -0
- package/dist/smart-components/page/layouts/standard-layout.d.ts +18 -0
- package/dist/smart-components/page/layouts/standard-layout.d.ts.map +1 -0
- package/dist/smart-components/page/layouts/standard-layout.js +61 -0
- package/dist/smart-components/page/layouts/standard-layout.js.map +1 -0
- package/dist/smart-components/page/page-context.d.ts +51 -0
- package/dist/smart-components/page/page-context.d.ts.map +1 -0
- package/dist/smart-components/page/page-context.js +21 -0
- package/dist/smart-components/page/page-context.js.map +1 -0
- package/dist/smart-components/page/slot.d.ts +19 -0
- package/dist/smart-components/page/slot.d.ts.map +1 -0
- package/dist/smart-components/page/slot.js +18 -0
- package/dist/smart-components/page/slot.js.map +1 -0
- package/dist/smart-components/page/smart-grid-area.d.ts +75 -0
- package/dist/smart-components/page/smart-grid-area.d.ts.map +1 -0
- package/dist/smart-components/page/smart-grid-area.js +61 -0
- package/dist/smart-components/page/smart-grid-area.js.map +1 -0
- package/dist/smart-components/page/smart-page-container.d.ts +66 -0
- package/dist/smart-components/page/smart-page-container.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-container.js +93 -0
- package/dist/smart-components/page/smart-page-container.js.map +1 -0
- package/dist/smart-components/page/smart-page-content.d.ts +70 -0
- package/dist/smart-components/page/smart-page-content.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-content.js +78 -0
- package/dist/smart-components/page/smart-page-content.js.map +1 -0
- package/dist/smart-components/page/smart-page-empty.d.ts +47 -0
- package/dist/smart-components/page/smart-page-empty.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-empty.js +37 -0
- package/dist/smart-components/page/smart-page-empty.js.map +1 -0
- package/dist/smart-components/page/smart-page-error.d.ts +59 -0
- package/dist/smart-components/page/smart-page-error.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-error.js +45 -0
- package/dist/smart-components/page/smart-page-error.js.map +1 -0
- package/dist/smart-components/page/smart-page-filters.d.ts +38 -0
- package/dist/smart-components/page/smart-page-filters.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-filters.js +33 -0
- package/dist/smart-components/page/smart-page-filters.js.map +1 -0
- package/dist/smart-components/page/smart-page-footer.d.ts +49 -0
- package/dist/smart-components/page/smart-page-footer.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-footer.js +49 -0
- package/dist/smart-components/page/smart-page-footer.js.map +1 -0
- package/dist/smart-components/page/smart-page-header.d.ts +145 -0
- package/dist/smart-components/page/smart-page-header.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-header.js +129 -0
- package/dist/smart-components/page/smart-page-header.js.map +1 -0
- package/dist/smart-components/page/smart-page-hero.d.ts +43 -0
- package/dist/smart-components/page/smart-page-hero.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-hero.js +42 -0
- package/dist/smart-components/page/smart-page-hero.js.map +1 -0
- package/dist/smart-components/page/smart-page-loading.d.ts +31 -0
- package/dist/smart-components/page/smart-page-loading.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-loading.js +29 -0
- package/dist/smart-components/page/smart-page-loading.js.map +1 -0
- package/dist/smart-components/page/smart-page-search.d.ts +39 -0
- package/dist/smart-components/page/smart-page-search.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-search.js +38 -0
- package/dist/smart-components/page/smart-page-search.js.map +1 -0
- package/dist/smart-components/page/smart-page-section.d.ts +55 -0
- package/dist/smart-components/page/smart-page-section.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-section.js +41 -0
- package/dist/smart-components/page/smart-page-section.js.map +1 -0
- package/dist/smart-components/page/smart-page-status-bar.d.ts +34 -0
- package/dist/smart-components/page/smart-page-status-bar.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-status-bar.js +33 -0
- package/dist/smart-components/page/smart-page-status-bar.js.map +1 -0
- package/dist/smart-components/page/smart-page-tabs.d.ts +93 -0
- package/dist/smart-components/page/smart-page-tabs.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page-tabs.js +87 -0
- package/dist/smart-components/page/smart-page-tabs.js.map +1 -0
- package/dist/smart-components/page/smart-page.d.ts +141 -0
- package/dist/smart-components/page/smart-page.d.ts.map +1 -0
- package/dist/smart-components/page/smart-page.js +295 -0
- package/dist/smart-components/page/smart-page.js.map +1 -0
- package/dist/smart-components/page/smart-sidebar.d.ts +70 -0
- package/dist/smart-components/page/smart-sidebar.d.ts.map +1 -0
- package/dist/smart-components/page/smart-sidebar.js +54 -0
- package/dist/smart-components/page/smart-sidebar.js.map +1 -0
- package/dist/smart-components/page/smart-toolbar.d.ts +40 -0
- package/dist/smart-components/page/smart-toolbar.d.ts.map +1 -0
- package/dist/smart-components/page/smart-toolbar.js +39 -0
- package/dist/smart-components/page/smart-toolbar.js.map +1 -0
- package/dist/smart-components/search-input.d.ts +20 -0
- package/dist/smart-components/search-input.d.ts.map +1 -0
- package/dist/smart-components/search-input.js +12 -0
- package/dist/smart-components/search-input.js.map +1 -0
- package/dist/smart-components/smart-accordion.d.ts +53 -0
- package/dist/smart-components/smart-accordion.d.ts.map +1 -0
- package/dist/smart-components/smart-accordion.js +33 -0
- package/dist/smart-components/smart-accordion.js.map +1 -0
- package/dist/smart-components/smart-alert.d.ts +44 -0
- package/dist/smart-components/smart-alert.d.ts.map +1 -0
- package/dist/smart-components/smart-alert.js +27 -0
- package/dist/smart-components/smart-alert.js.map +1 -0
- package/dist/smart-components/smart-avatar.d.ts +3 -0
- package/dist/smart-components/smart-avatar.d.ts.map +1 -0
- package/dist/smart-components/smart-avatar.js +4 -0
- package/dist/smart-components/smart-avatar.js.map +1 -0
- package/dist/smart-components/smart-badge.d.ts +28 -0
- package/dist/smart-components/smart-badge.d.ts.map +1 -0
- package/dist/smart-components/smart-badge.js +24 -0
- package/dist/smart-components/smart-badge.js.map +1 -0
- package/dist/smart-components/smart-breadcrumb.d.ts +43 -0
- package/dist/smart-components/smart-breadcrumb.d.ts.map +1 -0
- package/dist/smart-components/smart-breadcrumb.js +37 -0
- package/dist/smart-components/smart-breadcrumb.js.map +1 -0
- package/dist/smart-components/smart-button.d.ts +22 -0
- package/dist/smart-components/smart-button.d.ts.map +1 -0
- package/dist/smart-components/smart-button.js +15 -0
- package/dist/smart-components/smart-button.js.map +1 -0
- package/dist/smart-components/smart-calendar.d.ts +78 -0
- package/dist/smart-components/smart-calendar.d.ts.map +1 -0
- package/dist/smart-components/smart-calendar.js +45 -0
- package/dist/smart-components/smart-calendar.js.map +1 -0
- package/dist/smart-components/smart-card.d.ts +55 -0
- package/dist/smart-components/smart-card.d.ts.map +1 -0
- package/dist/smart-components/smart-card.js +37 -0
- package/dist/smart-components/smart-card.js.map +1 -0
- package/dist/smart-components/smart-checkbox-group.d.ts +48 -0
- package/dist/smart-components/smart-checkbox-group.d.ts.map +1 -0
- package/dist/smart-components/smart-checkbox-group.js +48 -0
- package/dist/smart-components/smart-checkbox-group.js.map +1 -0
- package/dist/smart-components/smart-checkbox.d.ts +34 -0
- package/dist/smart-components/smart-checkbox.d.ts.map +1 -0
- package/dist/smart-components/smart-checkbox.js +34 -0
- package/dist/smart-components/smart-checkbox.js.map +1 -0
- package/dist/smart-components/smart-combobox.d.ts +36 -0
- package/dist/smart-components/smart-combobox.d.ts.map +1 -0
- package/dist/smart-components/smart-combobox.js +32 -0
- package/dist/smart-components/smart-combobox.js.map +1 -0
- package/dist/smart-components/smart-confirm-dialog.d.ts +63 -0
- package/dist/smart-components/smart-confirm-dialog.d.ts.map +1 -0
- package/dist/smart-components/smart-confirm-dialog.js +45 -0
- package/dist/smart-components/smart-confirm-dialog.js.map +1 -0
- package/dist/smart-components/smart-context-menu.d.ts +58 -0
- package/dist/smart-components/smart-context-menu.d.ts.map +1 -0
- package/dist/smart-components/smart-context-menu.js +38 -0
- package/dist/smart-components/smart-context-menu.js.map +1 -0
- package/dist/smart-components/smart-date-picker.d.ts +99 -0
- package/dist/smart-components/smart-date-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-date-picker.js +78 -0
- package/dist/smart-components/smart-date-picker.js.map +1 -0
- package/dist/smart-components/smart-date-range-picker.d.ts +37 -0
- package/dist/smart-components/smart-date-range-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-date-range-picker.js +38 -0
- package/dist/smart-components/smart-date-range-picker.js.map +1 -0
- package/dist/smart-components/smart-dialog.d.ts +75 -0
- package/dist/smart-components/smart-dialog.d.ts.map +1 -0
- package/dist/smart-components/smart-dialog.js +61 -0
- package/dist/smart-components/smart-dialog.js.map +1 -0
- package/dist/smart-components/smart-drawer.d.ts +48 -0
- package/dist/smart-components/smart-drawer.d.ts.map +1 -0
- package/dist/smart-components/smart-drawer.js +32 -0
- package/dist/smart-components/smart-drawer.js.map +1 -0
- package/dist/smart-components/smart-field.d.ts +47 -0
- package/dist/smart-components/smart-field.d.ts.map +1 -0
- package/dist/smart-components/smart-field.js +44 -0
- package/dist/smart-components/smart-field.js.map +1 -0
- package/dist/smart-components/smart-input-group.d.ts +60 -0
- package/dist/smart-components/smart-input-group.d.ts.map +1 -0
- package/dist/smart-components/smart-input-group.js +40 -0
- package/dist/smart-components/smart-input-group.js.map +1 -0
- package/dist/smart-components/smart-input.d.ts +46 -0
- package/dist/smart-components/smart-input.d.ts.map +1 -0
- package/dist/smart-components/smart-input.js +36 -0
- package/dist/smart-components/smart-input.js.map +1 -0
- package/dist/smart-components/smart-label.d.ts +22 -0
- package/dist/smart-components/smart-label.d.ts.map +1 -0
- package/dist/smart-components/smart-label.js +17 -0
- package/dist/smart-components/smart-label.js.map +1 -0
- package/dist/smart-components/smart-month-picker.d.ts +30 -0
- package/dist/smart-components/smart-month-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-month-picker.js +53 -0
- package/dist/smart-components/smart-month-picker.js.map +1 -0
- package/dist/smart-components/smart-multi-select.d.ts +38 -0
- package/dist/smart-components/smart-multi-select.d.ts.map +1 -0
- package/dist/smart-components/smart-multi-select.js +56 -0
- package/dist/smart-components/smart-multi-select.js.map +1 -0
- package/dist/smart-components/smart-native-select.d.ts +45 -0
- package/dist/smart-components/smart-native-select.d.ts.map +1 -0
- package/dist/smart-components/smart-native-select.js +33 -0
- package/dist/smart-components/smart-native-select.js.map +1 -0
- package/dist/smart-components/smart-nav-sidebar.d.ts +47 -0
- package/dist/smart-components/smart-nav-sidebar.d.ts.map +1 -0
- package/dist/smart-components/smart-nav-sidebar.js +37 -0
- package/dist/smart-components/smart-nav-sidebar.js.map +1 -0
- package/dist/smart-components/smart-password-input.d.ts +31 -0
- package/dist/smart-components/smart-password-input.d.ts.map +1 -0
- package/dist/smart-components/smart-password-input.js +30 -0
- package/dist/smart-components/smart-password-input.js.map +1 -0
- package/dist/smart-components/smart-radio-group.d.ts +58 -0
- package/dist/smart-components/smart-radio-group.d.ts.map +1 -0
- package/dist/smart-components/smart-radio-group.js +49 -0
- package/dist/smart-components/smart-radio-group.js.map +1 -0
- package/dist/smart-components/smart-segmented.d.ts +33 -0
- package/dist/smart-components/smart-segmented.d.ts.map +1 -0
- package/dist/smart-components/smart-segmented.js +25 -0
- package/dist/smart-components/smart-segmented.js.map +1 -0
- package/dist/smart-components/smart-select.d.ts +71 -0
- package/dist/smart-components/smart-select.d.ts.map +1 -0
- package/dist/smart-components/smart-select.js +44 -0
- package/dist/smart-components/smart-select.js.map +1 -0
- package/dist/smart-components/smart-separator.d.ts +3 -0
- package/dist/smart-components/smart-separator.d.ts.map +1 -0
- package/dist/smart-components/smart-separator.js +4 -0
- package/dist/smart-components/smart-separator.js.map +1 -0
- package/dist/smart-components/smart-sheet.d.ts +79 -0
- package/dist/smart-components/smart-sheet.d.ts.map +1 -0
- package/dist/smart-components/smart-sheet.js +47 -0
- package/dist/smart-components/smart-sheet.js.map +1 -0
- package/dist/smart-components/smart-stat-card.d.ts +47 -0
- package/dist/smart-components/smart-stat-card.d.ts.map +1 -0
- package/dist/smart-components/smart-stat-card.js +35 -0
- package/dist/smart-components/smart-stat-card.js.map +1 -0
- package/dist/smart-components/smart-stepper.d.ts +24 -0
- package/dist/smart-components/smart-stepper.d.ts.map +1 -0
- package/dist/smart-components/smart-stepper.js +24 -0
- package/dist/smart-components/smart-stepper.js.map +1 -0
- package/dist/smart-components/smart-switch.d.ts +34 -0
- package/dist/smart-components/smart-switch.d.ts.map +1 -0
- package/dist/smart-components/smart-switch.js +34 -0
- package/dist/smart-components/smart-switch.js.map +1 -0
- package/dist/smart-components/smart-textarea.d.ts +38 -0
- package/dist/smart-components/smart-textarea.d.ts.map +1 -0
- package/dist/smart-components/smart-textarea.js +28 -0
- package/dist/smart-components/smart-textarea.js.map +1 -0
- package/dist/smart-components/smart-time-picker.d.ts +59 -0
- package/dist/smart-components/smart-time-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-time-picker.js +129 -0
- package/dist/smart-components/smart-time-picker.js.map +1 -0
- package/dist/smart-components/smart-time-range-picker.d.ts +39 -0
- package/dist/smart-components/smart-time-range-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-time-range-picker.js +26 -0
- package/dist/smart-components/smart-time-range-picker.js.map +1 -0
- package/dist/smart-components/smart-toaster.d.ts +10 -0
- package/dist/smart-components/smart-toaster.d.ts.map +1 -0
- package/dist/smart-components/smart-toaster.js +21 -0
- package/dist/smart-components/smart-toaster.js.map +1 -0
- package/dist/smart-components/smart-year-picker.d.ts +29 -0
- package/dist/smart-components/smart-year-picker.d.ts.map +1 -0
- package/dist/smart-components/smart-year-picker.js +43 -0
- package/dist/smart-components/smart-year-picker.js.map +1 -0
- package/dist/smart-components/spinner.d.ts +10 -0
- package/dist/smart-components/spinner.d.ts.map +1 -0
- package/dist/smart-components/spinner.js +5 -0
- package/dist/smart-components/spinner.js.map +1 -0
- package/dist/transfer-list-engine/index.d.ts +5 -0
- package/dist/transfer-list-engine/index.d.ts.map +1 -0
- package/dist/transfer-list-engine/index.js +3 -0
- package/dist/transfer-list-engine/index.js.map +1 -0
- package/dist/transfer-list-engine/transfer-list.d.ts +53 -0
- package/dist/transfer-list-engine/transfer-list.d.ts.map +1 -0
- package/dist/transfer-list-engine/transfer-list.js +190 -0
- package/dist/transfer-list-engine/transfer-list.js.map +1 -0
- package/dist/transfer-list-engine/transfer-utils.d.ts +30 -0
- package/dist/transfer-list-engine/transfer-utils.d.ts.map +1 -0
- package/dist/transfer-list-engine/transfer-utils.js +69 -0
- package/dist/transfer-list-engine/transfer-utils.js.map +1 -0
- package/dist/transfer-list-engine/types.d.ts +51 -0
- package/dist/transfer-list-engine/types.d.ts.map +1 -0
- package/dist/transfer-list-engine/types.js +2 -0
- package/dist/transfer-list-engine/types.js.map +1 -0
- package/dist/tree-engine/index.d.ts +6 -0
- package/dist/tree-engine/index.d.ts.map +1 -0
- package/dist/tree-engine/index.js +3 -0
- package/dist/tree-engine/index.js.map +1 -0
- package/dist/tree-engine/tree-utils.d.ts +84 -0
- package/dist/tree-engine/tree-utils.d.ts.map +1 -0
- package/dist/tree-engine/tree-utils.js +271 -0
- package/dist/tree-engine/tree-utils.js.map +1 -0
- package/dist/tree-engine/tree.d.ts +98 -0
- package/dist/tree-engine/tree.d.ts.map +1 -0
- package/dist/tree-engine/tree.js +430 -0
- package/dist/tree-engine/tree.js.map +1 -0
- package/dist/tree-engine/types.d.ts +85 -0
- package/dist/tree-engine/types.d.ts.map +1 -0
- package/dist/tree-engine/types.js +2 -0
- package/dist/tree-engine/types.js.map +1 -0
- package/dist/tree-engine/use-tree.d.ts +12 -0
- package/dist/tree-engine/use-tree.d.ts.map +1 -0
- package/dist/tree-engine/use-tree.js +34 -0
- package/dist/tree-engine/use-tree.js.map +1 -0
- package/package.json +158 -0
- package/src/styles/globals.css +161 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
2
|
+
declare const TooltipProvider: ({ delay, ...props }: TooltipPrimitive.Provider.Props) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare const Tooltip: ({ ...props }: TooltipPrimitive.Root.Props) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare const TooltipTrigger: ({ ...props }: TooltipPrimitive.Trigger.Props) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare const TooltipContent: ({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
7
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIpE,QAAA,MAAM,eAAe,GAAI,qBAGtB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,4CAMjC,CAAA;AAED,QAAA,MAAM,OAAO,GAAI,cAAc,gBAAgB,CAAC,IAAI,CAAC,KAAK,4CAEzD,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,cAAc,gBAAgB,CAAC,OAAO,CAAC,KAAK,4CAEnE,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,yEAQrB,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CACF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAChD,4CAsBF,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
4
|
+
import { cn } from "@iamsaroj/smart-ui/lib/utils";
|
|
5
|
+
const TooltipProvider = ({ delay = 0, ...props }) => (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props }));
|
|
6
|
+
const Tooltip = ({ ...props }) => (_jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }));
|
|
7
|
+
const TooltipTrigger = ({ ...props }) => (_jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props }));
|
|
8
|
+
const TooltipContent = ({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) => (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })] }) }) }));
|
|
9
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
10
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEpE,OAAO,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAA;AAEjD,MAAM,eAAe,GAAG,CAAC,EACvB,KAAK,GAAG,CAAC,EACT,GAAG,KAAK,EACwB,EAAE,EAAE,CAAC,CACrC,KAAC,gBAAgB,CAAC,QAAQ,iBACd,kBAAkB,EAC5B,KAAK,EAAE,KAAK,KACR,KAAK,GACT,CACH,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,KAAK,EAA+B,EAAE,EAAE,CAAC,CAC7D,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CACzD,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,KAAK,EAAkC,EAAE,EAAE,CAAC,CACvE,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CACpE,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,EACtB,SAAS,EACT,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,QAAQ,EACR,GAAG,KAAK,EAKP,EAAE,EAAE,CAAC,CACN,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,UAAU,IAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,cAAc,YAExB,MAAC,gBAAgB,CAAC,KAAK,iBACX,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACX,iwBAAiwB,EACjwB,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAC,0hBAA0hB,GAAG,IACxiB,GACG,GACN,CAC3B,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { ICellRendererParams } from "ag-grid-community";
|
|
3
|
+
import type { DataGridColumn } from "./grid-internals";
|
|
4
|
+
import { type GridActionColumnOptions } from "./action-column";
|
|
5
|
+
/**
|
|
6
|
+
* Bridge between the grid component and the mounted action cells: cells read
|
|
7
|
+
* the latest options through it and subscribe to be re-rendered whenever the
|
|
8
|
+
* `actionColumn` prop changes identity (see `useGridActionColumn`).
|
|
9
|
+
*/
|
|
10
|
+
export interface GridActionColumnStore<TRow> {
|
|
11
|
+
/** Reads the *latest* options (ref-backed) so callbacks are never stale. */
|
|
12
|
+
getOptions: () => GridActionColumnOptions<TRow>;
|
|
13
|
+
/** Monotonic change counter — the `useSyncExternalStore` snapshot. */
|
|
14
|
+
getVersion: () => number;
|
|
15
|
+
/** Register for change notifications; returns the unsubscribe. */
|
|
16
|
+
subscribe: (listener: () => void) => () => void;
|
|
17
|
+
}
|
|
18
|
+
/** Extra cellRendererParams `buildActionColumnDef` wires into the renderer. */
|
|
19
|
+
export interface GridActionCellParams<TRow> {
|
|
20
|
+
actionColumnStore: GridActionColumnStore<TRow>;
|
|
21
|
+
}
|
|
22
|
+
declare const GridActionCellInner: <TRow>(props: ICellRendererParams<TRow> & GridActionCellParams<TRow>) => ReactElement | null;
|
|
23
|
+
/**
|
|
24
|
+
* Memoized action-cell renderer. AG Grid re-renders it only on
|
|
25
|
+
* `refreshCells({ force: true })` or row-data changes, keeping the column
|
|
26
|
+
* cheap across thousands of virtualized rows.
|
|
27
|
+
*/
|
|
28
|
+
export declare const GridActionCell: typeof GridActionCellInner;
|
|
29
|
+
/**
|
|
30
|
+
* Build the injected action ColDef. The structural options (pin, width, label
|
|
31
|
+
* mode, header, exportability) are baked in; the per-row behavior flows through
|
|
32
|
+
* the `store` so the returned object can stay referentially stable (see
|
|
33
|
+
* `useGridActionColumn`).
|
|
34
|
+
*
|
|
35
|
+
* The column opts out of everything a utility column must not do: sort,
|
|
36
|
+
* filter, edit, resize (by default), move, hide, header menu, grouping /
|
|
37
|
+
* pivot / aggregation, and (by default) export.
|
|
38
|
+
*/
|
|
39
|
+
export declare const buildActionColumnDef: <TRow>(options: GridActionColumnOptions<TRow>, store: GridActionColumnStore<TRow>) => DataGridColumn<TRow>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=action-column-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-column-cell.d.ts","sourceRoot":"","sources":["../../src/data-grid/action-column-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAI5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAQL,KAAK,uBAAuB,EAG7B,MAAM,iBAAiB,CAAA;AAqFxB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,4EAA4E;IAC5E,UAAU,EAAE,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/C,sEAAsE;IACtE,UAAU,EAAE,MAAM,MAAM,CAAA;IACxB,kEAAkE;IAClE,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;CAChD;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,iBAAiB,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAA;CAC/C;AAED,QAAA,MAAM,mBAAmB,GAAI,IAAI,EAC/B,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAC5D,YAAY,GAAG,IAiCjB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAEtB,OAAO,mBAAmB,CAAA;AAE/B;;;;;;;;;GASG;AAEH,eAAO,MAAM,oBAAoB,GAAI,IAAI,EACvC,SAAS,uBAAuB,CAAC,IAAI,CAAC,EACtC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KACjC,cAAc,CAAC,IAAI,CA8CrB,CAAA"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useState, useSyncExternalStore } from "react";
|
|
3
|
+
import { cn } from "@iamsaroj/smart-ui/lib/utils";
|
|
4
|
+
import { ActionButton } from "@iamsaroj/smart-ui/smart-components/buttons";
|
|
5
|
+
import { SmartConfirmDialog } from "@iamsaroj/smart-ui/smart-components/smart-confirm-dialog";
|
|
6
|
+
import { ACTION_COLUMN_ID, resolveActionAriaLabel, resolveActionColumnWidth, resolveActionTooltip, resolveActiveActions, resolveConfirmOptions, resolveRowValue, } from "./action-column";
|
|
7
|
+
/**
|
|
8
|
+
* One Edit/Delete button for one row: resolves the per-row visible / disabled /
|
|
9
|
+
* loading flags, applies the destructive treatment for delete, and routes the
|
|
10
|
+
* click through an optional {@link SmartConfirmDialog}.
|
|
11
|
+
*/
|
|
12
|
+
const GridActionButton = ({ kind, config, row, showLabel, }) => {
|
|
13
|
+
const [confirmOpen, setConfirmOpen] = useState(false);
|
|
14
|
+
const visible = resolveRowValue(config.visible, row, true);
|
|
15
|
+
if (!visible)
|
|
16
|
+
return null;
|
|
17
|
+
const disabled = resolveRowValue(config.disabled, row, false);
|
|
18
|
+
const loading = resolveRowValue(config.loading, row, false);
|
|
19
|
+
const confirm = resolveConfirmOptions(kind, config.confirm);
|
|
20
|
+
const tooltip = resolveActionTooltip(kind, config.tooltip);
|
|
21
|
+
const fire = () => config.onClick?.(row);
|
|
22
|
+
const handleClick = () => {
|
|
23
|
+
// The button is disabled while loading, but guard anyway so a queued
|
|
24
|
+
// event can never double-fire the action.
|
|
25
|
+
if (loading || disabled)
|
|
26
|
+
return;
|
|
27
|
+
if (confirm)
|
|
28
|
+
setConfirmOpen(true);
|
|
29
|
+
else
|
|
30
|
+
fire();
|
|
31
|
+
};
|
|
32
|
+
return (_jsxs(_Fragment, { children: [_jsx(ActionButton, { action: kind, iconOnly: !showLabel, size: "sm", variant: "ghost", className: cn(kind === "delete" &&
|
|
33
|
+
"text-destructive hover:bg-destructive/10 hover:text-destructive"), loading: loading,
|
|
34
|
+
// Icon-only: spinner replaces the icon inside the same fixed-size
|
|
35
|
+
// button, so the row height never changes while deleting.
|
|
36
|
+
loadingText: showLabel ? undefined : "", disabled: disabled, tooltip: tooltip === false ? false : tooltip, "aria-label": resolveActionAriaLabel(kind, config.tooltip), onClick: handleClick }), confirm ? (_jsx(SmartConfirmDialog, { open: confirmOpen, onOpenChange: setConfirmOpen, title: confirm.title, description: confirm.description, confirmLabel: confirm.confirmLabel, cancelLabel: confirm.cancelLabel, variant: kind === "delete" ? "destructive" : "default", onConfirm: fire })) : null] }));
|
|
37
|
+
};
|
|
38
|
+
const GridActionCellInner = (props) => {
|
|
39
|
+
const { actionColumnStore } = props;
|
|
40
|
+
// Re-render whenever the grid's `actionColumn` prop changes — this is what
|
|
41
|
+
// makes row-external state (deletingId, permissions, …) show up without the
|
|
42
|
+
// consumer touching row data or AG Grid's refresh APIs.
|
|
43
|
+
useSyncExternalStore(actionColumnStore.subscribe, actionColumnStore.getVersion, actionColumnStore.getVersion);
|
|
44
|
+
const row = props.data;
|
|
45
|
+
// Infinite row model: placeholder rows have no data yet.
|
|
46
|
+
if (row == null)
|
|
47
|
+
return null;
|
|
48
|
+
const options = actionColumnStore.getOptions();
|
|
49
|
+
const actions = resolveActiveActions(options);
|
|
50
|
+
if (actions.length === 0)
|
|
51
|
+
return null;
|
|
52
|
+
const showLabel = options.showLabel ?? false;
|
|
53
|
+
return (_jsx("div", { className: "flex h-full items-center gap-1", children: actions.map(({ kind, config }) => (_jsx(GridActionButton, { kind: kind, config: config, row: row, showLabel: showLabel }, kind))) }));
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Memoized action-cell renderer. AG Grid re-renders it only on
|
|
57
|
+
* `refreshCells({ force: true })` or row-data changes, keeping the column
|
|
58
|
+
* cheap across thousands of virtualized rows.
|
|
59
|
+
*/
|
|
60
|
+
export const GridActionCell = memo(GridActionCellInner);
|
|
61
|
+
/**
|
|
62
|
+
* Build the injected action ColDef. The structural options (pin, width, label
|
|
63
|
+
* mode, header, exportability) are baked in; the per-row behavior flows through
|
|
64
|
+
* the `store` so the returned object can stay referentially stable (see
|
|
65
|
+
* `useGridActionColumn`).
|
|
66
|
+
*
|
|
67
|
+
* The column opts out of everything a utility column must not do: sort,
|
|
68
|
+
* filter, edit, resize (by default), move, hide, header menu, grouping /
|
|
69
|
+
* pivot / aggregation, and (by default) export.
|
|
70
|
+
*/
|
|
71
|
+
// eslint-disable-next-line react-refresh/only-export-components
|
|
72
|
+
export const buildActionColumnDef = (options, store) => {
|
|
73
|
+
const pinned = options.pinned ?? "left";
|
|
74
|
+
const resizable = options.resizable ?? false;
|
|
75
|
+
const width = resolveActionColumnWidth(resolveActiveActions(options).length, options.showLabel ?? false, options.width);
|
|
76
|
+
return {
|
|
77
|
+
colId: ACTION_COLUMN_ID,
|
|
78
|
+
headerName: options.headerName ?? "Actions",
|
|
79
|
+
// `pinned` is a *stateful* attribute: on a columnDefs update, `undefined`
|
|
80
|
+
// means "keep the current state", so unpinning must be an explicit null.
|
|
81
|
+
pinned: pinned === false ? null : pinned,
|
|
82
|
+
lockPinned: true,
|
|
83
|
+
lockPosition: pinned === "left" ? "left" : pinned === "right" ? "right" : undefined,
|
|
84
|
+
lockVisible: true,
|
|
85
|
+
suppressMovable: true,
|
|
86
|
+
sortable: false,
|
|
87
|
+
filter: false,
|
|
88
|
+
floatingFilter: false,
|
|
89
|
+
editable: false,
|
|
90
|
+
resizable,
|
|
91
|
+
suppressHeaderMenuButton: true,
|
|
92
|
+
suppressHeaderFilterButton: true,
|
|
93
|
+
suppressAutoSize: true,
|
|
94
|
+
suppressColumnsToolPanel: true,
|
|
95
|
+
enableRowGroup: false,
|
|
96
|
+
enablePivot: false,
|
|
97
|
+
enableValue: false,
|
|
98
|
+
// `flex: 0` opts this column out of defaultColDef's `flex: 1`; the
|
|
99
|
+
// min/max pair pins the width (defaultColDef.minWidth is 120, wider than
|
|
100
|
+
// the icon-only column, so it must be overridden here).
|
|
101
|
+
flex: 0,
|
|
102
|
+
width,
|
|
103
|
+
minWidth: width,
|
|
104
|
+
maxWidth: resizable ? undefined : width,
|
|
105
|
+
cellClass: "smart-grid-action-cell",
|
|
106
|
+
cellRenderer: GridActionCell,
|
|
107
|
+
cellRendererParams: {
|
|
108
|
+
actionColumnStore: store,
|
|
109
|
+
},
|
|
110
|
+
// Read by both grids' export paths (CSV + XLSX) via `isExportSuppressed`.
|
|
111
|
+
context: { suppressExport: options.exportable !== true },
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=action-column-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-column-cell.js","sourceRoot":"","sources":["../../src/data-grid/action-column-cell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Types and pure logic behind the grids' `actionColumn` prop — the config-driven
|
|
4
|
+
* Edit/Delete column shared by {@link SmartGrid} and {@link SmartServerGrid}.
|
|
5
|
+
* Everything here is renderer-free and unit-tested in `action-column.test.ts`;
|
|
6
|
+
* the cell renderer and ColDef builder live in `action-column-cell.tsx`, the
|
|
7
|
+
* React wiring in `use-action-column.ts`.
|
|
8
|
+
*/
|
|
9
|
+
/** Stable `colId` of the injected action column. */
|
|
10
|
+
export declare const ACTION_COLUMN_ID = "smart-actions";
|
|
11
|
+
/** The built-in row actions, rendered in this order. */
|
|
12
|
+
export type GridActionKind = "edit" | "delete";
|
|
13
|
+
export declare const GRID_ACTION_KINDS: readonly GridActionKind[];
|
|
14
|
+
/** A static value or a per-row resolver. */
|
|
15
|
+
export type GridActionRowValue<TRow, V> = V | ((row: TRow) => V);
|
|
16
|
+
/** Confirmation dialog copy; unset fields fall back to per-action defaults. */
|
|
17
|
+
export interface GridActionConfirmOptions {
|
|
18
|
+
/** Headline question. @default "Delete this row?" (delete) */
|
|
19
|
+
title?: string;
|
|
20
|
+
/** Supporting text explaining the consequences. */
|
|
21
|
+
description?: ReactNode;
|
|
22
|
+
/** Confirm button label. @default the action label */
|
|
23
|
+
confirmLabel?: string;
|
|
24
|
+
/** Cancel button label. @default "Cancel" */
|
|
25
|
+
cancelLabel?: string;
|
|
26
|
+
}
|
|
27
|
+
/** Configuration for one row action (Edit or Delete). */
|
|
28
|
+
export interface GridRowActionConfig<TRow> {
|
|
29
|
+
/** Static on/off switch for the action. @default true */
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
/** Show/hide the button — statically or per row. @default true */
|
|
32
|
+
visible?: GridActionRowValue<TRow, boolean>;
|
|
33
|
+
/** Disable the button (kept visible) — statically or per row. @default false */
|
|
34
|
+
disabled?: GridActionRowValue<TRow, boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Per-row loading state: shows a spinner, disables the button and swallows
|
|
37
|
+
* further clicks — only for the rows the resolver matches. Row height is
|
|
38
|
+
* unaffected (the spinner replaces the icon inside a fixed-size button).
|
|
39
|
+
*/
|
|
40
|
+
loading?: GridActionRowValue<TRow, boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Tooltip content. `true`/omitted uses the default ("Edit row" / "Delete
|
|
43
|
+
* row"), `false` disables it, a string replaces it. Also used as the
|
|
44
|
+
* button's `aria-label` in icon-only mode.
|
|
45
|
+
*/
|
|
46
|
+
tooltip?: boolean | string;
|
|
47
|
+
/**
|
|
48
|
+
* Ask for confirmation before firing `onClick`. `true` uses the per-action
|
|
49
|
+
* default copy; pass {@link GridActionConfirmOptions} to customize it.
|
|
50
|
+
*/
|
|
51
|
+
confirm?: boolean | GridActionConfirmOptions;
|
|
52
|
+
/** Fired with the row (after confirmation, when `confirm` is set). */
|
|
53
|
+
onClick?: (row: TRow) => void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* One action as accepted by the `actions` prop: `false` hides it, `true`
|
|
57
|
+
* enables it with defaults, an object configures it.
|
|
58
|
+
*/
|
|
59
|
+
export type GridRowActionProp<TRow> = boolean | GridRowActionConfig<TRow>;
|
|
60
|
+
export interface GridActionColumnActions<TRow> {
|
|
61
|
+
edit?: GridRowActionProp<TRow>;
|
|
62
|
+
delete?: GridRowActionProp<TRow>;
|
|
63
|
+
}
|
|
64
|
+
/** Where the action column is pinned. `false` = a regular scrolling column. */
|
|
65
|
+
export type GridActionColumnPin = "left" | "right" | false;
|
|
66
|
+
/** The grids' `actionColumn` prop. */
|
|
67
|
+
export interface GridActionColumnOptions<TRow> {
|
|
68
|
+
/** Master switch — `false` removes the column entirely. @default true */
|
|
69
|
+
enabled?: boolean;
|
|
70
|
+
/** Pin side; pinned columns stay visible while scrolling. @default "left" */
|
|
71
|
+
pinned?: GridActionColumnPin;
|
|
72
|
+
/** Fixed width in px. Omit to auto-size from the button count. */
|
|
73
|
+
width?: number;
|
|
74
|
+
/** Render "Edit"/"Delete" labels next to the icons. @default false */
|
|
75
|
+
showLabel?: boolean;
|
|
76
|
+
/** Include the column in CSV/Excel exports. @default false */
|
|
77
|
+
exportable?: boolean;
|
|
78
|
+
/** Let the user resize the column. @default false */
|
|
79
|
+
resizable?: boolean;
|
|
80
|
+
/** Header text. @default "Actions" */
|
|
81
|
+
headerName?: string;
|
|
82
|
+
/** The row actions. Omitting both (or hiding both) removes the column. */
|
|
83
|
+
actions?: GridActionColumnActions<TRow>;
|
|
84
|
+
}
|
|
85
|
+
/** An action that survived static filtering, ready for the cell renderer. */
|
|
86
|
+
export interface ResolvedGridAction<TRow> {
|
|
87
|
+
kind: GridActionKind;
|
|
88
|
+
config: GridRowActionConfig<TRow>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Collapse the `boolean | config` action prop into a config, or `null` when the
|
|
92
|
+
* action is statically off (`false`, `enabled: false`, or `visible: false` as a
|
|
93
|
+
* literal). Function `visible` predicates stay — they are per-row decisions.
|
|
94
|
+
*/
|
|
95
|
+
export declare const normalizeRowAction: <TRow>(input: GridRowActionProp<TRow> | undefined) => GridRowActionConfig<TRow> | null;
|
|
96
|
+
/**
|
|
97
|
+
* The actions that can render for at least one row, in display order
|
|
98
|
+
* (edit, delete). An empty result means the column should not render at all
|
|
99
|
+
* (see the auto-hide contract in {@link isActionColumnEnabled}).
|
|
100
|
+
*/
|
|
101
|
+
export declare const resolveActiveActions: <TRow>(options: GridActionColumnOptions<TRow>) => ResolvedGridAction<TRow>[];
|
|
102
|
+
/**
|
|
103
|
+
* Auto-hide contract: the column exists only when it is enabled *and* at least
|
|
104
|
+
* one action is statically visible. (Per-row `visible` functions count as
|
|
105
|
+
* potentially visible — they can only be judged row by row.)
|
|
106
|
+
*/
|
|
107
|
+
export declare const isActionColumnEnabled: <TRow>(options: GridActionColumnOptions<TRow> | undefined) => options is GridActionColumnOptions<TRow>;
|
|
108
|
+
/** Evaluate a {@link GridActionRowValue} against a row. */
|
|
109
|
+
export declare const resolveRowValue: <TRow, V>(value: GridActionRowValue<TRow, V> | undefined, row: TRow, fallback: V) => V;
|
|
110
|
+
/**
|
|
111
|
+
* Tooltip/aria-label for an action: `false` disables it, a string overrides it,
|
|
112
|
+
* anything else falls back to "Edit row" / "Delete row".
|
|
113
|
+
*/
|
|
114
|
+
export declare const resolveActionTooltip: (kind: GridActionKind, tooltip: boolean | string | undefined) => string | false;
|
|
115
|
+
/** Accessible name for the button — never disabled, even when tooltip is. */
|
|
116
|
+
export declare const resolveActionAriaLabel: (kind: GridActionKind, tooltip: boolean | string | undefined) => string;
|
|
117
|
+
export interface ResolvedConfirmOptions {
|
|
118
|
+
title: string;
|
|
119
|
+
description: ReactNode;
|
|
120
|
+
confirmLabel: string;
|
|
121
|
+
cancelLabel: string;
|
|
122
|
+
}
|
|
123
|
+
/** Merge user confirm options over the per-action defaults; `null` = no confirm. */
|
|
124
|
+
export declare const resolveConfirmOptions: (kind: GridActionKind, confirm: boolean | GridActionConfirmOptions | undefined) => ResolvedConfirmOptions | null;
|
|
125
|
+
/**
|
|
126
|
+
* Width for the action column: an explicit `width` wins; otherwise size from
|
|
127
|
+
* the button count, clamped to 80–120px icon-only (per the design spec) or up
|
|
128
|
+
* to 200px with labels.
|
|
129
|
+
*/
|
|
130
|
+
export declare const resolveActionColumnWidth: (actionCount: number, showLabel: boolean, width?: number) => number;
|
|
131
|
+
/**
|
|
132
|
+
* Memo key over the *structural* fields of the options — the ones baked into
|
|
133
|
+
* the ColDef. Per-row callbacks/predicates are deliberately excluded: they are
|
|
134
|
+
* read through a ref at render time, so changing them must not recreate the
|
|
135
|
+
* column (which would reset AG Grid column state).
|
|
136
|
+
*/
|
|
137
|
+
export declare const actionColumnSignature: <TRow>(options: GridActionColumnOptions<TRow> | undefined) => string;
|
|
138
|
+
/**
|
|
139
|
+
* `true` when a ColDef `context` carries the export opt-out set by
|
|
140
|
+
* `buildActionColumnDef` (`exportable: false`, the default). Checked by both
|
|
141
|
+
* grids' CSV/XLSX export paths.
|
|
142
|
+
*/
|
|
143
|
+
export declare const isExportSuppressed: (context: unknown) => boolean;
|
|
144
|
+
//# sourceMappingURL=action-column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-column.d.ts","sourceRoot":"","sources":["../../src/data-grid/action-column.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;;;;;GAMG;AAEH,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,kBAAkB,CAAA;AAE/C,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE9C,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAAuB,CAAA;AAE9E,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,CAAA;AAEhE,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,IAAI;IACvC,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC5C;;;;OAIG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAA;IAC5C,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,IAAI,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAEzE,MAAM,WAAW,uBAAuB,CAAC,IAAI;IAC3C,IAAI,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;AAE1D,sCAAsC;AACtC,MAAM,WAAW,uBAAuB,CAAC,IAAI;IAC3C,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB,CAAC,IAAI;IACtC,IAAI,EAAE,cAAc,CAAA;IACpB,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAA;CAClC;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,IAAI,EACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAS,KACzC,mBAAmB,CAAC,IAAI,CAAC,GAAG,IAM9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,EACvC,SAAS,uBAAuB,CAAC,IAAI,CAAC,KACrC,kBAAkB,CAAC,IAAI,CAAC,EAO1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,EACxC,SAAS,uBAAuB,CAAC,IAAI,CAAC,GAAG,SAAS,KACjD,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAGA,CAAA;AAI1C,2DAA2D;AAC3D,eAAO,MAAM,eAAe,GAAI,IAAI,EAAE,CAAC,EACrC,OAAO,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,SAAS,EAC9C,KAAK,IAAI,EACT,UAAU,CAAC,KACV,CAIF,CAAA;AASD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,cAAc,EACpB,SAAS,OAAO,GAAG,MAAM,GAAG,SAAS,KACpC,MAAM,GAAG,KAIX,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,GACjC,MAAM,cAAc,EACpB,SAAS,OAAO,GAAG,MAAM,GAAG,SAAS,KACpC,MAGwB,CAAA;AAE3B,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,SAAS,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAiBD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,EACpB,SAAS,OAAO,GAAG,wBAAwB,GAAG,SAAS,KACtD,sBAAsB,GAAG,IAU3B,CAAA;AAUD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,EACnB,WAAW,OAAO,EAClB,QAAQ,MAAM,KACb,MAKF,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,EACxC,SAAS,uBAAuB,CAAC,IAAI,CAAC,GAAG,SAAS,KACjD,MAcF,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,OAGa,CAAA"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and pure logic behind the grids' `actionColumn` prop — the config-driven
|
|
3
|
+
* Edit/Delete column shared by {@link SmartGrid} and {@link SmartServerGrid}.
|
|
4
|
+
* Everything here is renderer-free and unit-tested in `action-column.test.ts`;
|
|
5
|
+
* the cell renderer and ColDef builder live in `action-column-cell.tsx`, the
|
|
6
|
+
* React wiring in `use-action-column.ts`.
|
|
7
|
+
*/
|
|
8
|
+
/** Stable `colId` of the injected action column. */
|
|
9
|
+
export const ACTION_COLUMN_ID = "smart-actions";
|
|
10
|
+
export const GRID_ACTION_KINDS = ["edit", "delete"];
|
|
11
|
+
/* ------------------------------ normalization ------------------------------ */
|
|
12
|
+
/**
|
|
13
|
+
* Collapse the `boolean | config` action prop into a config, or `null` when the
|
|
14
|
+
* action is statically off (`false`, `enabled: false`, or `visible: false` as a
|
|
15
|
+
* literal). Function `visible` predicates stay — they are per-row decisions.
|
|
16
|
+
*/
|
|
17
|
+
export const normalizeRowAction = (input) => {
|
|
18
|
+
if (input === undefined || input === false)
|
|
19
|
+
return null;
|
|
20
|
+
if (input === true)
|
|
21
|
+
return {};
|
|
22
|
+
if (input.enabled === false)
|
|
23
|
+
return null;
|
|
24
|
+
if (input.visible === false)
|
|
25
|
+
return null;
|
|
26
|
+
return input;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The actions that can render for at least one row, in display order
|
|
30
|
+
* (edit, delete). An empty result means the column should not render at all
|
|
31
|
+
* (see the auto-hide contract in {@link isActionColumnEnabled}).
|
|
32
|
+
*/
|
|
33
|
+
export const resolveActiveActions = (options) => {
|
|
34
|
+
const active = [];
|
|
35
|
+
for (const kind of GRID_ACTION_KINDS) {
|
|
36
|
+
const config = normalizeRowAction(options.actions?.[kind]);
|
|
37
|
+
if (config)
|
|
38
|
+
active.push({ kind, config });
|
|
39
|
+
}
|
|
40
|
+
return active;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Auto-hide contract: the column exists only when it is enabled *and* at least
|
|
44
|
+
* one action is statically visible. (Per-row `visible` functions count as
|
|
45
|
+
* potentially visible — they can only be judged row by row.)
|
|
46
|
+
*/
|
|
47
|
+
export const isActionColumnEnabled = (options) => options !== undefined &&
|
|
48
|
+
options.enabled !== false &&
|
|
49
|
+
resolveActiveActions(options).length > 0;
|
|
50
|
+
/* ------------------------------- row resolvers ----------------------------- */
|
|
51
|
+
/** Evaluate a {@link GridActionRowValue} against a row. */
|
|
52
|
+
export const resolveRowValue = (value, row, fallback) => {
|
|
53
|
+
if (value === undefined)
|
|
54
|
+
return fallback;
|
|
55
|
+
if (typeof value === "function")
|
|
56
|
+
return value(row);
|
|
57
|
+
return value;
|
|
58
|
+
};
|
|
59
|
+
/* --------------------------------- defaults -------------------------------- */
|
|
60
|
+
const ACTION_TOOLTIPS = {
|
|
61
|
+
edit: "Edit row",
|
|
62
|
+
delete: "Delete row",
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Tooltip/aria-label for an action: `false` disables it, a string overrides it,
|
|
66
|
+
* anything else falls back to "Edit row" / "Delete row".
|
|
67
|
+
*/
|
|
68
|
+
export const resolveActionTooltip = (kind, tooltip) => {
|
|
69
|
+
if (tooltip === false)
|
|
70
|
+
return false;
|
|
71
|
+
if (typeof tooltip === "string")
|
|
72
|
+
return tooltip;
|
|
73
|
+
return ACTION_TOOLTIPS[kind];
|
|
74
|
+
};
|
|
75
|
+
/** Accessible name for the button — never disabled, even when tooltip is. */
|
|
76
|
+
export const resolveActionAriaLabel = (kind, tooltip) => typeof tooltip === "string" && tooltip.length > 0
|
|
77
|
+
? tooltip
|
|
78
|
+
: ACTION_TOOLTIPS[kind];
|
|
79
|
+
const CONFIRM_DEFAULTS = {
|
|
80
|
+
edit: {
|
|
81
|
+
title: "Edit this row?",
|
|
82
|
+
description: "You are about to edit this row.",
|
|
83
|
+
confirmLabel: "Edit",
|
|
84
|
+
cancelLabel: "Cancel",
|
|
85
|
+
},
|
|
86
|
+
delete: {
|
|
87
|
+
title: "Delete this row?",
|
|
88
|
+
description: "This action cannot be undone.",
|
|
89
|
+
confirmLabel: "Delete",
|
|
90
|
+
cancelLabel: "Cancel",
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
/** Merge user confirm options over the per-action defaults; `null` = no confirm. */
|
|
94
|
+
export const resolveConfirmOptions = (kind, confirm) => {
|
|
95
|
+
if (confirm === undefined || confirm === false)
|
|
96
|
+
return null;
|
|
97
|
+
const overrides = confirm === true ? {} : confirm;
|
|
98
|
+
const defaults = CONFIRM_DEFAULTS[kind];
|
|
99
|
+
return {
|
|
100
|
+
title: overrides.title ?? defaults.title,
|
|
101
|
+
description: overrides.description ?? defaults.description,
|
|
102
|
+
confirmLabel: overrides.confirmLabel ?? defaults.confirmLabel,
|
|
103
|
+
cancelLabel: overrides.cancelLabel ?? defaults.cancelLabel,
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
/* ---------------------------------- width ---------------------------------- */
|
|
107
|
+
// Horizontal budget per button: icon-only buttons are 24px (`icon-sm`) plus the
|
|
108
|
+
// 4px flex gap; labeled buttons add the text. CHROME covers the cell padding.
|
|
109
|
+
const ICON_BUTTON_SPAN = 28;
|
|
110
|
+
const LABEL_BUTTON_SPAN = 78;
|
|
111
|
+
const CELL_CHROME = 30;
|
|
112
|
+
/**
|
|
113
|
+
* Width for the action column: an explicit `width` wins; otherwise size from
|
|
114
|
+
* the button count, clamped to 80–120px icon-only (per the design spec) or up
|
|
115
|
+
* to 200px with labels.
|
|
116
|
+
*/
|
|
117
|
+
export const resolveActionColumnWidth = (actionCount, showLabel, width) => {
|
|
118
|
+
if (width !== undefined)
|
|
119
|
+
return width;
|
|
120
|
+
const span = showLabel ? LABEL_BUTTON_SPAN : ICON_BUTTON_SPAN;
|
|
121
|
+
const auto = CELL_CHROME + actionCount * span;
|
|
122
|
+
return Math.min(Math.max(auto, 80), showLabel ? 200 : 120);
|
|
123
|
+
};
|
|
124
|
+
/* -------------------------------- signature -------------------------------- */
|
|
125
|
+
/**
|
|
126
|
+
* Memo key over the *structural* fields of the options — the ones baked into
|
|
127
|
+
* the ColDef. Per-row callbacks/predicates are deliberately excluded: they are
|
|
128
|
+
* read through a ref at render time, so changing them must not recreate the
|
|
129
|
+
* column (which would reset AG Grid column state).
|
|
130
|
+
*/
|
|
131
|
+
export const actionColumnSignature = (options) => {
|
|
132
|
+
if (!isActionColumnEnabled(options))
|
|
133
|
+
return "off";
|
|
134
|
+
const kinds = resolveActiveActions(options)
|
|
135
|
+
.map((action) => action.kind)
|
|
136
|
+
.join("+");
|
|
137
|
+
return [
|
|
138
|
+
kinds,
|
|
139
|
+
String(options.pinned ?? "left"),
|
|
140
|
+
String(options.width ?? "auto"),
|
|
141
|
+
options.showLabel ? "label" : "icon",
|
|
142
|
+
options.exportable ? "exportable" : "no-export",
|
|
143
|
+
options.resizable ? "resizable" : "fixed",
|
|
144
|
+
options.headerName ?? "Actions",
|
|
145
|
+
].join("|");
|
|
146
|
+
};
|
|
147
|
+
/* --------------------------------- export ---------------------------------- */
|
|
148
|
+
/**
|
|
149
|
+
* `true` when a ColDef `context` carries the export opt-out set by
|
|
150
|
+
* `buildActionColumnDef` (`exportable: false`, the default). Checked by both
|
|
151
|
+
* grids' CSV/XLSX export paths.
|
|
152
|
+
*/
|
|
153
|
+
export const isExportSuppressed = (context) => typeof context === "object" &&
|
|
154
|
+
context !== null &&
|
|
155
|
+
context.suppressExport === true;
|
|
156
|
+
//# sourceMappingURL=action-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-column.js","sourceRoot":"","sources":["../../src/data-grid/action-column.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type ServerFetchParams, type ServerFetchResult } from "./pagination";
|
|
3
|
+
/**
|
|
4
|
+
* A `fetchRows` implementation for {@link SmartServerGrid}: takes the
|
|
5
|
+
* normalized grid request plus an abort signal and resolves to a block of rows
|
|
6
|
+
* and the total count. An optional third argument carries per-call query params
|
|
7
|
+
* (e.g. a demo `simulateError` toggle) merged on top of the built query.
|
|
8
|
+
*/
|
|
9
|
+
export type PageFetcher<TItem> = (params: ServerFetchParams, signal: AbortSignal, extraParams?: Record<string, string>) => Promise<ServerFetchResult<TItem>>;
|
|
10
|
+
export interface CreatePageFetcherOptions<TItem> {
|
|
11
|
+
/** Endpoint to fetch from. The built query string is appended after `?`. */
|
|
12
|
+
url: string;
|
|
13
|
+
/**
|
|
14
|
+
* Zod schema for a single row. The response is validated against
|
|
15
|
+
* `pageSchema(itemSchema)` (the Spring Data `Page<T>` envelope) so malformed
|
|
16
|
+
* responses fail loudly instead of silently rendering garbage.
|
|
17
|
+
*/
|
|
18
|
+
itemSchema: z.ZodType<TItem>;
|
|
19
|
+
/**
|
|
20
|
+
* Serialize grid params into a query string (without the leading `?`).
|
|
21
|
+
* Defaults to {@link buildSpringQuery} (the Spring Data dialect). Override to
|
|
22
|
+
* speak a different backend contract.
|
|
23
|
+
*/
|
|
24
|
+
buildQuery?: (params: ServerFetchParams) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Turn a non-OK response into the error thrown to the grid. Receives the
|
|
27
|
+
* `Response` so callers can read a status-specific message. Defaults to
|
|
28
|
+
* `Error("Server error: <status>")`.
|
|
29
|
+
*/
|
|
30
|
+
mapError?: (response: Response) => Error;
|
|
31
|
+
/**
|
|
32
|
+
* Injected `fetch` implementation. Defaults to the global `fetch`. Provided so
|
|
33
|
+
* this module stays testable (fake transport) and usable outside the browser
|
|
34
|
+
* (SSR / node with a polyfill) without reaching for the global.
|
|
35
|
+
*/
|
|
36
|
+
fetchImpl?: typeof fetch;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build a validated `fetchRows` adapter for {@link SmartServerGrid}: it
|
|
40
|
+
* serializes normalized grid params to a query string, calls `url`, checks the
|
|
41
|
+
* HTTP status, and validates the response against the Spring Data `Page<T>`
|
|
42
|
+
* envelope before returning `{ rows, total }`.
|
|
43
|
+
*
|
|
44
|
+
* Every server-grid page shares this fetch → status-check → Zod-parse pipeline,
|
|
45
|
+
* so it lives here once instead of being re-hand-rolled per page.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const fetchUsers = createPageFetcher({
|
|
50
|
+
* url: "/api/users",
|
|
51
|
+
* itemSchema: userRowSchema,
|
|
52
|
+
* })
|
|
53
|
+
* // <SmartServerGrid fetchRows={fetchUsers} … />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare const createPageFetcher: <TItem>({ url, itemSchema, buildQuery, mapError, fetchImpl, }: CreatePageFetcherOptions<TItem>) => PageFetcher<TItem>;
|
|
57
|
+
//# sourceMappingURL=create-page-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-page-fetcher.d.ts","sourceRoot":"","sources":["../../src/data-grid/create-page-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAA;AAErB;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,CAC/B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,WAAW,EACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA;AAEtC,MAAM,WAAW,wBAAwB,CAAC,KAAK;IAC7C,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAA;IACX;;;;OAIG;IACH,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,MAAM,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAA;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,EAAE,uDAMtC,wBAAwB,CAAC,KAAK,CAAC,KAAG,WAAW,CAAC,KAAK,CAWrD,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { pageSchema, buildSpringQuery, } from "./pagination";
|
|
2
|
+
const mergeQuery = (query, extra) => {
|
|
3
|
+
if (!extra)
|
|
4
|
+
return query;
|
|
5
|
+
const sp = new URLSearchParams(query);
|
|
6
|
+
for (const [key, value] of Object.entries(extra))
|
|
7
|
+
sp.set(key, value);
|
|
8
|
+
return sp.toString();
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Build a validated `fetchRows` adapter for {@link SmartServerGrid}: it
|
|
12
|
+
* serializes normalized grid params to a query string, calls `url`, checks the
|
|
13
|
+
* HTTP status, and validates the response against the Spring Data `Page<T>`
|
|
14
|
+
* envelope before returning `{ rows, total }`.
|
|
15
|
+
*
|
|
16
|
+
* Every server-grid page shares this fetch → status-check → Zod-parse pipeline,
|
|
17
|
+
* so it lives here once instead of being re-hand-rolled per page.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const fetchUsers = createPageFetcher({
|
|
22
|
+
* url: "/api/users",
|
|
23
|
+
* itemSchema: userRowSchema,
|
|
24
|
+
* })
|
|
25
|
+
* // <SmartServerGrid fetchRows={fetchUsers} … />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export const createPageFetcher = ({ url, itemSchema, buildQuery = buildSpringQuery, mapError = (response) => new Error(`Server error: ${response.status}`), fetchImpl, }) => {
|
|
29
|
+
const envelope = pageSchema(itemSchema);
|
|
30
|
+
return async (params, signal, extraParams) => {
|
|
31
|
+
const doFetch = fetchImpl ?? fetch;
|
|
32
|
+
const query = mergeQuery(buildQuery(params), extraParams);
|
|
33
|
+
const response = await doFetch(`${url}?${query}`, { signal });
|
|
34
|
+
if (!response.ok)
|
|
35
|
+
throw mapError(response);
|
|
36
|
+
const data = await response.json();
|
|
37
|
+
const page = envelope.parse(data);
|
|
38
|
+
return { rows: page.content, total: page.totalElements };
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=create-page-fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-page-fetcher.js","sourceRoot":"","sources":["../../src/data-grid/create-page-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,gBAAgB,GAGjB,MAAM,cAAc,CAAA;AA2CrB,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAA8B,EAAU,EAAE;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACpE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA;AACtB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAQ,EACvC,GAAG,EACH,UAAU,EACV,UAAU,GAAG,gBAAgB,EAC7B,QAAQ,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC,EACtE,SAAS,GACuB,EAAsB,EAAE;IACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAA;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAA;IAC1D,CAAC,CAAA;AACH,CAAC,CAAA"}
|