@vritti/quantum-ui 0.2.9 → 0.3.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/dist/Alert.js +8 -31
- package/dist/Alert.js.map +1 -1
- package/dist/AppSelector.js +37 -0
- package/dist/AppSelector.js.map +1 -0
- package/dist/Avatar.js +5 -5
- package/dist/Avatar.js.map +1 -1
- package/dist/Badge.js +2 -28
- package/dist/Badge.js.map +1 -1
- package/dist/Badge2.js +30 -0
- package/dist/Badge2.js.map +1 -0
- package/dist/Breadcrumb.js +125 -0
- package/dist/Breadcrumb.js.map +1 -0
- package/dist/Button.js +8 -4
- package/dist/Button.js.map +1 -1
- package/dist/Button2.js +34 -15
- package/dist/Button2.js.map +1 -1
- package/dist/CardSkeleton.js +17 -0
- package/dist/CardSkeleton.js.map +1 -0
- package/dist/Chart.js +6195 -6401
- package/dist/Chart.js.map +1 -1
- package/dist/Checkbox.js +2 -289
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox2.js +293 -0
- package/dist/Checkbox2.js.map +1 -0
- package/dist/CheckboxGroup.js +74 -0
- package/dist/CheckboxGroup.js.map +1 -0
- package/dist/CloudProviderSelector.js +37 -0
- package/dist/CloudProviderSelector.js.map +1 -0
- package/dist/Collapsible.js +8 -0
- package/dist/Collapsible.js.map +1 -0
- package/dist/Combination.js +10 -2509
- package/dist/Combination.js.map +1 -1
- package/dist/ConfirmContext.js +75 -0
- package/dist/ConfirmContext.js.map +1 -0
- package/dist/CurrencySelector.js +194 -0
- package/dist/CurrencySelector.js.map +1 -0
- package/dist/DangerZoneSkeleton.js +52 -0
- package/dist/DangerZoneSkeleton.js.map +1 -0
- package/dist/DatePicker.js +36 -340
- package/dist/DatePicker.js.map +1 -1
- package/dist/DeploymentSelector.js +37 -0
- package/dist/DeploymentSelector.js.map +1 -0
- package/dist/Dialog.js +159 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/DropdownMenu.js +66 -1423
- package/dist/DropdownMenu.js.map +1 -1
- package/dist/Empty.js +49 -0
- package/dist/Empty.js.map +1 -0
- package/dist/ErrorBoundary.js +255 -0
- package/dist/ErrorBoundary.js.map +1 -0
- package/dist/FeatureSelector.js +37 -0
- package/dist/FeatureSelector.js.map +1 -0
- package/dist/FilePreview.js +194 -0
- package/dist/FilePreview.js.map +1 -0
- package/dist/Form.js +1938 -19
- package/dist/Form.js.map +1 -1
- package/dist/HierarchyGraph.js +10729 -0
- package/dist/HierarchyGraph.js.map +1 -0
- package/dist/IndustrySelector.js +37 -0
- package/dist/IndustrySelector.js.map +1 -0
- package/dist/Input.js +22 -0
- package/dist/Input.js.map +1 -0
- package/dist/Label.js +1 -21
- package/dist/Label.js.map +1 -1
- package/dist/LocaleSelector.js +111 -0
- package/dist/LocaleSelector.js.map +1 -0
- package/dist/MicrofrontendSelector.js +19 -0
- package/dist/MicrofrontendSelector.js.map +1 -0
- package/dist/OTPField.js +28 -26
- package/dist/OTPField.js.map +1 -1
- package/dist/PageHeaderSkeleton.js +35 -0
- package/dist/PageHeaderSkeleton.js.map +1 -0
- package/dist/PasswordField.js +1 -49
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneField.js +11 -16
- package/dist/PhoneField.js.map +1 -1
- package/dist/PlanSelector.js +37 -0
- package/dist/PlanSelector.js.map +1 -0
- package/dist/Progress.js +4 -3
- package/dist/Progress.js.map +1 -1
- package/dist/RadioGroup.js +392 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RegionSelector.js +37 -0
- package/dist/RegionSelector.js.map +1 -0
- package/dist/Select.js +780 -0
- package/dist/Select.js.map +1 -0
- package/dist/SelectFilter.js +387 -0
- package/dist/SelectFilter.js.map +1 -0
- package/dist/Sidebar.js +616 -0
- package/dist/Sidebar.js.map +1 -0
- package/dist/SingleSelect.js +429 -0
- package/dist/SingleSelect.js.map +1 -0
- package/dist/Sonner.js +6 -1135
- package/dist/Sonner.js.map +1 -1
- package/dist/Sortable.js +4517 -0
- package/dist/Sortable.js.map +1 -0
- package/dist/StepProgressIndicator.js +42 -0
- package/dist/StepProgressIndicator.js.map +1 -0
- package/dist/Switch.js +15 -15
- package/dist/Switch.js.map +1 -1
- package/dist/TabsSkeleton.js +188 -0
- package/dist/TabsSkeleton.js.map +1 -0
- package/dist/TextArea.js +16 -19
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.js +5 -20
- package/dist/TextField.js.map +1 -1
- package/dist/ThemeContext.js +2 -8
- package/dist/ThemeContext.js.map +1 -1
- package/dist/TimezoneSelector.js +144 -0
- package/dist/TimezoneSelector.js.map +1 -0
- package/dist/Toggle.js +2 -32
- package/dist/Toggle.js.map +1 -1
- package/dist/UploadFile.js +232 -0
- package/dist/UploadFile.js.map +1 -0
- package/dist/ValueFilter.js +123 -0
- package/dist/ValueFilter.js.map +1 -0
- package/dist/ViewTabs.js +218 -0
- package/dist/ViewTabs.js.map +1 -0
- package/dist/_commonjsHelpers.js +3 -1
- package/dist/_commonjsHelpers.js.map +1 -1
- package/dist/assets/quantum-ui.css +827 -57
- package/dist/axios.js +1239 -892
- package/dist/axios.js.map +1 -1
- package/dist/{chevron-down.js → chevron-left.js} +4 -4
- package/dist/chevron-left.js.map +1 -0
- package/dist/circle-alert.js +19 -0
- package/dist/circle-alert.js.map +1 -0
- package/dist/circle-check.js +18 -0
- package/dist/circle-check.js.map +1 -0
- package/dist/collapsible2.js +154 -0
- package/dist/collapsible2.js.map +1 -0
- package/dist/components/Badge.js +2 -1
- package/dist/components/Badge.js.map +1 -1
- package/dist/components/Breadcrumb.js +2 -0
- package/dist/components/Breadcrumb.js.map +1 -0
- package/dist/components/Card.js +1 -0
- package/dist/components/Card.js.map +1 -1
- package/dist/components/CheckboxGroup.js +2 -0
- package/dist/components/CheckboxGroup.js.map +1 -0
- package/dist/components/Collapsible.js +2 -0
- package/dist/components/Collapsible.js.map +1 -0
- package/dist/components/DangerZone.js +2 -0
- package/dist/components/DangerZone.js.map +1 -0
- package/dist/components/DataTable.js +2 -0
- package/dist/components/DataTable.js.map +1 -0
- package/dist/components/Dialog.js +2 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DropdownMenu.js +1 -1
- package/dist/components/Empty.js +2 -0
- package/dist/components/Empty.js.map +1 -0
- package/dist/components/ErrorBoundary.js +2 -0
- package/dist/components/ErrorBoundary.js.map +1 -0
- package/dist/components/FilePreview.js +2 -0
- package/dist/components/FilePreview.js.map +1 -0
- package/dist/components/HierarchyGraph.js +2 -0
- package/dist/components/HierarchyGraph.js.map +1 -0
- package/dist/components/PageHeader.js +2 -0
- package/dist/components/PageHeader.js.map +1 -0
- package/dist/components/RadioGroup.js +2 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/RichTextEditor.js +4 -0
- package/dist/components/RichTextEditor.js.map +1 -0
- package/dist/components/Select.js +29 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Sidebar.js +2 -0
- package/dist/components/Sidebar.js.map +1 -0
- package/dist/components/Sortable.js +2 -0
- package/dist/components/Sortable.js.map +1 -0
- package/dist/components/StepProgressIndicator.js +2 -0
- package/dist/components/StepProgressIndicator.js.map +1 -0
- package/dist/components/Tabs.js +2 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/UploadFile.js +2 -0
- package/dist/components/UploadFile.js.map +1 -0
- package/dist/components/ValueFilter.js +2 -0
- package/dist/components/ValueFilter.js.map +1 -0
- package/dist/components/ViewTabs.js +2 -0
- package/dist/components/ViewTabs.js.map +1 -0
- package/dist/context/index.js +1 -0
- package/dist/context/index.js.map +1 -1
- package/dist/dropdown-menu.js +1209 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/ellipsis.js +19 -0
- package/dist/ellipsis.js.map +1 -0
- package/dist/eye.js +52 -0
- package/dist/eye.js.map +1 -0
- package/dist/field.js +1 -1
- package/dist/file-text.js +27 -0
- package/dist/file-text.js.map +1 -0
- package/dist/grip-vertical.js +22 -0
- package/dist/grip-vertical.js.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/image-component.js +614 -0
- package/dist/image-component.js.map +1 -0
- package/dist/index.js +49 -9
- package/dist/index.js.map +1 -1
- package/dist/index10.js +175 -94
- package/dist/index10.js.map +1 -1
- package/dist/index11.js +202 -67
- package/dist/index11.js.map +1 -1
- package/dist/index12.js +17 -38
- package/dist/index12.js.map +1 -1
- package/dist/index13.js +204 -188
- package/dist/index13.js.map +1 -1
- package/dist/index14.js +124 -192
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +79 -0
- package/dist/index15.js.map +1 -0
- package/dist/index16.js +16 -0
- package/dist/index16.js.map +1 -0
- package/dist/index17.js +1137 -0
- package/dist/index17.js.map +1 -0
- package/dist/index18.js +41 -0
- package/dist/index18.js.map +1 -0
- package/dist/index19.js +314 -0
- package/dist/index19.js.map +1 -0
- package/dist/index2.js +54033 -55
- package/dist/index2.js.map +1 -1
- package/dist/index20.js +488 -0
- package/dist/index20.js.map +1 -0
- package/dist/index21.js +2540 -0
- package/dist/index21.js.map +1 -0
- package/dist/index22.js +36 -0
- package/dist/index22.js.map +1 -0
- package/dist/index23.js +13 -0
- package/dist/index23.js.map +1 -0
- package/dist/index24.js +8 -0
- package/dist/index24.js.map +1 -0
- package/dist/index25.js +35 -0
- package/dist/index25.js.map +1 -0
- package/dist/index26.js +65 -0
- package/dist/index26.js.map +1 -0
- package/dist/index27.js +16 -0
- package/dist/index27.js.map +1 -0
- package/dist/index28.js +41 -0
- package/dist/index28.js.map +1 -0
- package/dist/index29.js +84 -0
- package/dist/index29.js.map +1 -0
- package/dist/index3.js +42 -10
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +199 -0
- package/dist/index30.js.map +1 -0
- package/dist/index4.js +290 -118
- package/dist/index4.js.map +1 -1
- package/dist/index5.js +96 -31
- package/dist/index5.js.map +1 -1
- package/dist/index6.js +36 -4
- package/dist/index6.js.map +1 -1
- package/dist/index7.js +1157 -11
- package/dist/index7.js.map +1 -1
- package/dist/index8.js +22 -42
- package/dist/index8.js.map +1 -1
- package/dist/index9.js +25 -35
- package/dist/index9.js.map +1 -1
- package/dist/lib/components/Alert/Alert.d.ts +2 -1
- package/dist/lib/components/Alert/Alert.d.ts.map +1 -1
- package/dist/lib/components/Breadcrumb/Breadcrumb.d.ts +17 -0
- package/dist/lib/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/lib/components/Breadcrumb/index.d.ts +4 -0
- package/dist/lib/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/lib/components/Button/Button.d.ts +3 -1
- package/dist/lib/components/Button/Button.d.ts.map +1 -1
- package/dist/lib/components/Card/CardSkeleton.d.ts +9 -0
- package/dist/lib/components/Card/CardSkeleton.d.ts.map +1 -0
- package/dist/lib/components/Card/index.d.ts +1 -0
- package/dist/lib/components/Card/index.d.ts.map +1 -1
- package/dist/lib/components/Chart/Chart.d.ts +1 -1
- package/dist/lib/components/Chart/Chart.d.ts.map +1 -1
- package/dist/lib/components/CheckboxGroup/CheckboxGroup.d.ts +24 -0
- package/dist/lib/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/lib/components/CheckboxGroup/index.d.ts +3 -0
- package/dist/lib/components/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/lib/components/Collapsible/Collapsible.d.ts +5 -0
- package/dist/lib/components/Collapsible/Collapsible.d.ts.map +1 -0
- package/dist/lib/components/Collapsible/index.d.ts +2 -0
- package/dist/lib/components/Collapsible/index.d.ts.map +1 -0
- package/dist/lib/components/DangerZone/DangerZone.d.ts +13 -0
- package/dist/lib/components/DangerZone/DangerZone.d.ts.map +1 -0
- package/dist/lib/components/DangerZone/DangerZoneSkeleton.d.ts +9 -0
- package/dist/lib/components/DangerZone/DangerZoneSkeleton.d.ts.map +1 -0
- package/dist/lib/components/DangerZone/index.d.ts +4 -0
- package/dist/lib/components/DangerZone/index.d.ts.map +1 -0
- package/dist/lib/components/DataTable/DataTable.d.ts +6 -0
- package/dist/lib/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableColumnHeader.d.ts +12 -0
- package/dist/lib/components/DataTable/components/DataTableColumnHeader.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableEmpty.d.ts +13 -0
- package/dist/lib/components/DataTable/components/DataTableEmpty.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableFilters.d.ts +11 -0
- package/dist/lib/components/DataTable/components/DataTableFilters.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableImportDialog.d.ts +16 -0
- package/dist/lib/components/DataTable/components/DataTableImportDialog.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTablePagination.d.ts +12 -0
- package/dist/lib/components/DataTable/components/DataTablePagination.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableRowDensity.d.ts +11 -0
- package/dist/lib/components/DataTable/components/DataTableRowDensity.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableSearch.d.ts +14 -0
- package/dist/lib/components/DataTable/components/DataTableSearch.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableSelectionBar.d.ts +14 -0
- package/dist/lib/components/DataTable/components/DataTableSelectionBar.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableViewOptions.d.ts +11 -0
- package/dist/lib/components/DataTable/components/DataTableViewOptions.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableViewTabs.d.ts +7 -0
- package/dist/lib/components/DataTable/components/DataTableViewTabs.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/DataTableViewsMenu.d.ts +14 -0
- package/dist/lib/components/DataTable/components/DataTableViewsMenu.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/FilterWrapper.d.ts +21 -0
- package/dist/lib/components/DataTable/components/FilterWrapper.d.ts.map +1 -0
- package/dist/lib/components/DataTable/components/RowActions.d.ts +20 -0
- package/dist/lib/components/DataTable/components/RowActions.d.ts.map +1 -0
- package/dist/lib/components/DataTable/hooks/useAutoUpsert.d.ts +3 -0
- package/dist/lib/components/DataTable/hooks/useAutoUpsert.d.ts.map +1 -0
- package/dist/lib/components/DataTable/hooks/useDataTable.d.ts +25 -0
- package/dist/lib/components/DataTable/hooks/useDataTable.d.ts.map +1 -0
- package/dist/lib/components/DataTable/index.d.ts +18 -0
- package/dist/lib/components/DataTable/index.d.ts.map +1 -0
- package/dist/lib/components/DataTable/store/store.d.ts +28 -0
- package/dist/lib/components/DataTable/store/store.d.ts.map +1 -0
- package/dist/lib/components/DataTable/store/useTableSlice.d.ts +18 -0
- package/dist/lib/components/DataTable/store/useTableSlice.d.ts.map +1 -0
- package/dist/lib/components/DataTable/types.d.ts +66 -0
- package/dist/lib/components/DataTable/types.d.ts.map +1 -0
- package/dist/lib/components/DataTable/utils.d.ts +10 -0
- package/dist/lib/components/DataTable/utils.d.ts.map +1 -0
- package/dist/lib/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/lib/components/Dialog/Dialog.d.ts +31 -0
- package/dist/lib/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/lib/components/Dialog/index.d.ts +3 -0
- package/dist/lib/components/Dialog/index.d.ts.map +1 -0
- package/dist/lib/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/dist/lib/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/lib/components/DropdownMenu/types.d.ts +10 -1
- package/dist/lib/components/DropdownMenu/types.d.ts.map +1 -1
- package/dist/lib/components/Editor/context/editor-config-context.d.ts +9 -0
- package/dist/lib/components/Editor/context/editor-config-context.d.ts.map +1 -0
- package/dist/lib/components/Editor/context/toolbar-context.d.ts +18 -0
- package/dist/lib/components/Editor/context/toolbar-context.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-hooks/use-debounce.d.ts +2 -0
- package/dist/lib/components/Editor/editor-hooks/use-debounce.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-hooks/use-modal.d.ts +6 -0
- package/dist/lib/components/Editor/editor-hooks/use-modal.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-hooks/use-report.d.ts +2 -0
- package/dist/lib/components/Editor/editor-hooks/use-report.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-hooks/use-update-toolbar.d.ts +3 -0
- package/dist/lib/components/Editor/editor-hooks/use-update-toolbar.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/button-group.d.ts +12 -0
- package/dist/lib/components/Editor/editor-ui/button-group.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/button.d.ts +11 -0
- package/dist/lib/components/Editor/editor-ui/button.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/code-button.d.ts +8 -0
- package/dist/lib/components/Editor/editor-ui/code-button.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/color-picker.d.ts +92 -0
- package/dist/lib/components/Editor/editor-ui/color-picker.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/command.d.ts +19 -0
- package/dist/lib/components/Editor/editor-ui/command.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/content-editable.d.ts +9 -0
- package/dist/lib/components/Editor/editor-ui/content-editable.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/dialog.d.ts +16 -0
- package/dist/lib/components/Editor/editor-ui/dialog.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/image-component.d.ts +16 -0
- package/dist/lib/components/Editor/editor-ui/image-component.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/image-resizer.d.ts +18 -0
- package/dist/lib/components/Editor/editor-ui/image-resizer.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/input.d.ts +4 -0
- package/dist/lib/components/Editor/editor-ui/input.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/label.d.ts +5 -0
- package/dist/lib/components/Editor/editor-ui/label.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/popover.d.ts +8 -0
- package/dist/lib/components/Editor/editor-ui/popover.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/scroll-area.d.ts +6 -0
- package/dist/lib/components/Editor/editor-ui/scroll-area.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/select.d.ts +16 -0
- package/dist/lib/components/Editor/editor-ui/select.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/separator.d.ts +5 -0
- package/dist/lib/components/Editor/editor-ui/separator.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/tabs.d.ts +8 -0
- package/dist/lib/components/Editor/editor-ui/tabs.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/toggle-group.d.ts +8 -0
- package/dist/lib/components/Editor/editor-ui/toggle-group.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/toggle.d.ts +10 -0
- package/dist/lib/components/Editor/editor-ui/toggle.d.ts.map +1 -0
- package/dist/lib/components/Editor/editor-ui/tooltip.d.ts +8 -0
- package/dist/lib/components/Editor/editor-ui/tooltip.d.ts.map +1 -0
- package/dist/lib/components/Editor/index.d.ts +4 -0
- package/dist/lib/components/Editor/index.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/autocomplete-node.d.ts +19 -0
- package/dist/lib/components/Editor/nodes/autocomplete-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/embeds/tweet-node.d.ts +22 -0
- package/dist/lib/components/Editor/nodes/embeds/tweet-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/embeds/youtube-node.d.ts +23 -0
- package/dist/lib/components/Editor/nodes/embeds/youtube-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/emoji-node.d.ts +18 -0
- package/dist/lib/components/Editor/nodes/emoji-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/image-node.d.ts +49 -0
- package/dist/lib/components/Editor/nodes/image-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/keyword-node.d.ts +15 -0
- package/dist/lib/components/Editor/nodes/keyword-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/layout-container-node.d.ts +23 -0
- package/dist/lib/components/Editor/nodes/layout-container-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/layout-item-node.d.ts +15 -0
- package/dist/lib/components/Editor/nodes/layout-item-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/mention-node.d.ts +21 -0
- package/dist/lib/components/Editor/nodes/mention-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes/nodes.d.ts +3 -0
- package/dist/lib/components/Editor/nodes/nodes.d.ts.map +1 -0
- package/dist/lib/components/Editor/nodes.d.ts +2 -0
- package/dist/lib/components/Editor/nodes.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/actions-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/actions/actions-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/character-limit-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/actions/character-limit-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/clear-editor-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/actions/clear-editor-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/counter-character-plugin.d.ts +6 -0
- package/dist/lib/components/Editor/plugins/actions/counter-character-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/edit-mode-toggle-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/actions/edit-mode-toggle-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/import-export-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/actions/import-export-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/markdown-toggle-plugin.d.ts +6 -0
- package/dist/lib/components/Editor/plugins/actions/markdown-toggle-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/max-length-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/actions/max-length-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/share-content-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/actions/share-content-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/speech-to-text-plugin.d.ts +7 -0
- package/dist/lib/components/Editor/plugins/actions/speech-to-text-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/actions/tree-view-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/actions/tree-view-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/auto-link-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/auto-link-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/autocomplete-plugin.d.ts +11 -0
- package/dist/lib/components/Editor/plugins/autocomplete-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/code-action-menu-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/code-action-menu-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/code-highlight-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/code-highlight-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/component-picker-menu-plugin.d.ts +9 -0
- package/dist/lib/components/Editor/plugins/component-picker-menu-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/context-menu-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/context-menu-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/drag-drop-paste-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/drag-drop-paste-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/draggable-block-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/draggable-block-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/embeds/auto-embed-plugin.d.ts +18 -0
- package/dist/lib/components/Editor/plugins/embeds/auto-embed-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/embeds/twitter-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/embeds/twitter-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/embeds/youtube-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/embeds/youtube-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/emoji-picker-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/emoji-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/emojis-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/emojis-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/floating-link-editor-plugin.d.ts +7 -0
- package/dist/lib/components/Editor/plugins/floating-link-editor-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/floating-text-format-plugin.d.ts +7 -0
- package/dist/lib/components/Editor/plugins/floating-text-format-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/images-plugin.d.ts +25 -0
- package/dist/lib/components/Editor/plugins/images-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/keywords-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/keywords-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/layout-plugin.d.ts +13 -0
- package/dist/lib/components/Editor/plugins/layout-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/link-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/link-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/list-max-indent-level-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/list-max-indent-level-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/mentions-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/mentions-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/alignment-picker-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/picker/alignment-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/bulleted-list-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/bulleted-list-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/check-list-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/check-list-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/code-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/code-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/columns-layout-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/columns-layout-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/component-picker-menu-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/picker/component-picker-menu-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/component-picker-option.d.ts +17 -0
- package/dist/lib/components/Editor/plugins/picker/component-picker-option.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/divider-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/divider-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/embeds-picker-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/picker/embeds-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/heading-picker-plugin.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/picker/heading-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/image-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/image-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/numbered-list-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/numbered-list-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/paragraph-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/paragraph-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/quote-picker-plugin.d.ts +3 -0
- package/dist/lib/components/Editor/plugins/picker/quote-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/picker/table-picker-plugin.d.ts +6 -0
- package/dist/lib/components/Editor/plugins/picker/table-picker-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/plugins.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/plugins.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/tab-focus-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/tab-focus-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/table-plugin.d.ts +34 -0
- package/dist/lib/components/Editor/plugins/table-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/block-format-data.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/block-format-data.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-bulleted-list.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-bulleted-list.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-check-list.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-check-list.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-code-block.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-code-block.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-heading.d.ts +5 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-heading.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-numbered-list.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-numbered-list.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-paragraph.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-paragraph.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-quote.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format/format-quote.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format-toolbar-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-format-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-columns-layout.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-columns-layout.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-embeds.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-embeds.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-horizontal-rule.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-horizontal-rule.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-image.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-image.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-table.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert/insert-table.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/toolbar/block-insert-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/clear-formatting-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/clear-formatting-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/code-language-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/code-language-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/element-format-toolbar-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/toolbar/element-format-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-background-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-background-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-color-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-color-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-family-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-family-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-format-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-format-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-size-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/font-size-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/history-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/history-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/horizontal-rule-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/horizontal-rule-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/image-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/image-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/link-toolbar-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/toolbar/link-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/subsuper-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/subsuper-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/table-toolbar-plugin.d.ts +2 -0
- package/dist/lib/components/Editor/plugins/toolbar/table-toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/toolbar/toolbar-plugin.d.ts +6 -0
- package/dist/lib/components/Editor/plugins/toolbar/toolbar-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins/typing-pref-plugin.d.ts +4 -0
- package/dist/lib/components/Editor/plugins/typing-pref-plugin.d.ts.map +1 -0
- package/dist/lib/components/Editor/plugins.d.ts +2 -0
- package/dist/lib/components/Editor/plugins.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/can-use-dom.d.ts +2 -0
- package/dist/lib/components/Editor/shared/can-use-dom.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/caret-from-point.d.ts +5 -0
- package/dist/lib/components/Editor/shared/caret-from-point.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/environment.d.ts +18 -0
- package/dist/lib/components/Editor/shared/environment.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/invariant.d.ts +2 -0
- package/dist/lib/components/Editor/shared/invariant.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/normalize-class-names.d.ts +2 -0
- package/dist/lib/components/Editor/shared/normalize-class-names.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/react-patches.d.ts +2 -0
- package/dist/lib/components/Editor/shared/react-patches.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/react-test-utils.d.ts +3 -0
- package/dist/lib/components/Editor/shared/react-test-utils.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/simple-diff-with-cursor.d.ts +6 -0
- package/dist/lib/components/Editor/shared/simple-diff-with-cursor.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/use-layout-effect.d.ts +4 -0
- package/dist/lib/components/Editor/shared/use-layout-effect.d.ts.map +1 -0
- package/dist/lib/components/Editor/shared/warn-only-once.d.ts +2 -0
- package/dist/lib/components/Editor/shared/warn-only-once.d.ts.map +1 -0
- package/dist/lib/components/Editor/themes/editor-theme.d.ts +3 -0
- package/dist/lib/components/Editor/themes/editor-theme.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/index.d.ts +16 -0
- package/dist/lib/components/Editor/transformers/index.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/markdown-emoji-transformer.d.ts +3 -0
- package/dist/lib/components/Editor/transformers/markdown-emoji-transformer.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/markdown-hr-transformer.d.ts +3 -0
- package/dist/lib/components/Editor/transformers/markdown-hr-transformer.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/markdown-image-transformer.d.ts +3 -0
- package/dist/lib/components/Editor/transformers/markdown-image-transformer.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/markdown-table-transformer.d.ts +3 -0
- package/dist/lib/components/Editor/transformers/markdown-table-transformer.d.ts.map +1 -0
- package/dist/lib/components/Editor/transformers/markdown-tweet-transformer.d.ts +3 -0
- package/dist/lib/components/Editor/transformers/markdown-tweet-transformer.d.ts.map +1 -0
- package/dist/lib/components/Editor/types.d.ts +23 -0
- package/dist/lib/components/Editor/types.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/can-use-dom.d.ts +2 -0
- package/dist/lib/components/Editor/utils/can-use-dom.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/collapsible.d.ts +3 -0
- package/dist/lib/components/Editor/utils/collapsible.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/doc-serialization.d.ts +4 -0
- package/dist/lib/components/Editor/utils/doc-serialization.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/emoji-list.d.ts +21 -0
- package/dist/lib/components/Editor/utils/emoji-list.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/get-dom-range-rect.d.ts +2 -0
- package/dist/lib/components/Editor/utils/get-dom-range-rect.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/get-selected-node.d.ts +3 -0
- package/dist/lib/components/Editor/utils/get-selected-node.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/guard.d.ts +2 -0
- package/dist/lib/components/Editor/utils/guard.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/is-mobile-width.d.ts +2 -0
- package/dist/lib/components/Editor/utils/is-mobile-width.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/set-floating-elem-position-for-link-editor.d.ts +2 -0
- package/dist/lib/components/Editor/utils/set-floating-elem-position-for-link-editor.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/set-floating-elem-position.d.ts +2 -0
- package/dist/lib/components/Editor/utils/set-floating-elem-position.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/swipe.d.ts +5 -0
- package/dist/lib/components/Editor/utils/swipe.d.ts.map +1 -0
- package/dist/lib/components/Editor/utils/url.d.ts +3 -0
- package/dist/lib/components/Editor/utils/url.d.ts.map +1 -0
- package/dist/lib/components/Empty/Empty.d.ts +12 -0
- package/dist/lib/components/Empty/Empty.d.ts.map +1 -0
- package/dist/lib/components/Empty/index.d.ts +3 -0
- package/dist/lib/components/Empty/index.d.ts.map +1 -0
- package/dist/lib/components/ErrorBoundary/ErrorBoundary.d.ts +7 -0
- package/dist/lib/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
- package/dist/lib/components/ErrorBoundary/ErrorPage.d.ts +38 -0
- package/dist/lib/components/ErrorBoundary/ErrorPage.d.ts.map +1 -0
- package/dist/lib/components/ErrorBoundary/index.d.ts +3 -0
- package/dist/lib/components/ErrorBoundary/index.d.ts.map +1 -0
- package/dist/lib/components/FilePreview/FilePreview.d.ts +8 -0
- package/dist/lib/components/FilePreview/FilePreview.d.ts.map +1 -0
- package/dist/lib/components/FilePreview/index.d.ts +2 -0
- package/dist/lib/components/FilePreview/index.d.ts.map +1 -0
- package/dist/lib/components/Form/Form.d.ts +6 -3
- package/dist/lib/components/Form/Form.d.ts.map +1 -1
- package/dist/lib/components/HierarchyGraph/HierarchyGraph.d.ts +24 -0
- package/dist/lib/components/HierarchyGraph/HierarchyGraph.d.ts.map +1 -0
- package/dist/lib/components/HierarchyGraph/index.d.ts +5 -0
- package/dist/lib/components/HierarchyGraph/index.d.ts.map +1 -0
- package/dist/lib/components/PageHeader/PageHeader.d.ts +8 -0
- package/dist/lib/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/lib/components/PageHeader/PageHeaderSkeleton.d.ts +10 -0
- package/dist/lib/components/PageHeader/PageHeaderSkeleton.d.ts.map +1 -0
- package/dist/lib/components/PageHeader/index.d.ts +3 -0
- package/dist/lib/components/PageHeader/index.d.ts.map +1 -0
- package/dist/lib/components/PhoneField/PhoneField.d.ts +1 -0
- package/dist/lib/components/PhoneField/PhoneField.d.ts.map +1 -1
- package/dist/lib/components/RadioGroup/RadioGroup.d.ts +23 -0
- package/dist/lib/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/lib/components/RadioGroup/index.d.ts +3 -0
- package/dist/lib/components/RadioGroup/index.d.ts.map +1 -0
- package/dist/lib/components/Select/Select.d.ts +21 -0
- package/dist/lib/components/Select/Select.d.ts.map +1 -0
- package/dist/lib/components/Select/SelectFilter.d.ts +20 -0
- package/dist/lib/components/Select/SelectFilter.d.ts.map +1 -0
- package/dist/lib/components/Select/components/MultiSelect/MultiSelect.d.ts +27 -0
- package/dist/lib/components/Select/components/MultiSelect/MultiSelect.d.ts.map +1 -0
- package/dist/lib/components/Select/components/MultiSelect/MultiSelectFilter.d.ts +28 -0
- package/dist/lib/components/Select/components/MultiSelect/MultiSelectFilter.d.ts.map +1 -0
- package/dist/lib/components/Select/components/SingleSelect/SingleSelect.d.ts +41 -0
- package/dist/lib/components/Select/components/SingleSelect/SingleSelect.d.ts.map +1 -0
- package/dist/lib/components/Select/components/SingleSelect/SingleSelectFilter.d.ts +28 -0
- package/dist/lib/components/Select/components/SingleSelect/SingleSelectFilter.d.ts.map +1 -0
- package/dist/lib/components/Select/hooks/useMultiSelect.d.ts +33 -0
- package/dist/lib/components/Select/hooks/useMultiSelect.d.ts.map +1 -0
- package/dist/lib/components/Select/hooks/useSelect.d.ts +25 -0
- package/dist/lib/components/Select/hooks/useSelect.d.ts.map +1 -0
- package/dist/lib/components/Select/hooks/useSingleSelect.d.ts +31 -0
- package/dist/lib/components/Select/hooks/useSingleSelect.d.ts.map +1 -0
- package/dist/lib/components/Select/index.d.ts +40 -0
- package/dist/lib/components/Select/index.d.ts.map +1 -0
- package/dist/lib/components/Select/types.d.ts +38 -0
- package/dist/lib/components/Select/types.d.ts.map +1 -0
- package/dist/lib/components/Sidebar/Sidebar.d.ts +24 -0
- package/dist/lib/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/lib/components/Sidebar/index.d.ts +2 -0
- package/dist/lib/components/Sidebar/index.d.ts.map +1 -0
- package/dist/lib/components/Sortable/Sortable.d.ts +39 -0
- package/dist/lib/components/Sortable/Sortable.d.ts.map +1 -0
- package/dist/lib/components/Sortable/index.d.ts +3 -0
- package/dist/lib/components/Sortable/index.d.ts.map +1 -0
- package/dist/lib/components/StepProgressIndicator/StepProgressIndicator.d.ts +12 -0
- package/dist/lib/components/StepProgressIndicator/StepProgressIndicator.d.ts.map +1 -0
- package/dist/lib/components/StepProgressIndicator/index.d.ts +3 -0
- package/dist/lib/components/StepProgressIndicator/index.d.ts.map +1 -0
- package/dist/lib/components/Switch/Switch.d.ts.map +1 -1
- package/dist/lib/components/Tabs/Tabs.d.ts +27 -0
- package/dist/lib/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/lib/components/Tabs/TabsSkeleton.d.ts +11 -0
- package/dist/lib/components/Tabs/TabsSkeleton.d.ts.map +1 -0
- package/dist/lib/components/Tabs/index.d.ts +3 -0
- package/dist/lib/components/Tabs/index.d.ts.map +1 -0
- package/dist/lib/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/lib/components/TextField/TextField.d.ts.map +1 -1
- package/dist/lib/components/UploadFile/UploadFile.d.ts +26 -0
- package/dist/lib/components/UploadFile/UploadFile.d.ts.map +1 -0
- package/dist/lib/components/UploadFile/index.d.ts +2 -0
- package/dist/lib/components/UploadFile/index.d.ts.map +1 -0
- package/dist/lib/components/ValueFilter/ValueFilter.d.ts +11 -0
- package/dist/lib/components/ValueFilter/ValueFilter.d.ts.map +1 -0
- package/dist/lib/components/ValueFilter/index.d.ts +3 -0
- package/dist/lib/components/ValueFilter/index.d.ts.map +1 -0
- package/dist/lib/components/ViewTabs/ViewTabs.d.ts +23 -0
- package/dist/lib/components/ViewTabs/ViewTabs.d.ts.map +1 -0
- package/dist/lib/components/ViewTabs/index.d.ts +3 -0
- package/dist/lib/components/ViewTabs/index.d.ts.map +1 -0
- package/dist/lib/components/index.d.ts +21 -1
- package/dist/lib/components/index.d.ts.map +1 -1
- package/dist/lib/config/index.d.ts +6 -0
- package/dist/lib/config/index.d.ts.map +1 -1
- package/dist/lib/context/ConfirmContext.d.ts +21 -0
- package/dist/lib/context/ConfirmContext.d.ts.map +1 -0
- package/dist/lib/context/ThemeContext.d.ts +1 -1
- package/dist/lib/context/ThemeContext.d.ts.map +1 -1
- package/dist/lib/context/index.d.ts +2 -1
- package/dist/lib/context/index.d.ts.map +1 -1
- package/dist/lib/hooks/index.d.ts +7 -1
- package/dist/lib/hooks/index.d.ts.map +1 -1
- package/dist/lib/hooks/useConfirm.d.ts +4 -0
- package/dist/lib/hooks/useConfirm.d.ts.map +1 -0
- package/dist/lib/hooks/useDialog.d.ts +11 -0
- package/dist/lib/hooks/useDialog.d.ts.map +1 -0
- package/dist/lib/hooks/useIsMobile.d.ts +2 -0
- package/dist/lib/hooks/useIsMobile.d.ts.map +1 -0
- package/dist/lib/hooks/useSSE.d.ts +21 -0
- package/dist/lib/hooks/useSSE.d.ts.map +1 -0
- package/dist/lib/hooks/useSlugParams.d.ts +12 -0
- package/dist/lib/hooks/useSlugParams.d.ts.map +1 -0
- package/dist/lib/hooks/useTimer.d.ts +6 -0
- package/dist/lib/hooks/useTimer.d.ts.map +1 -0
- package/dist/lib/index.d.ts +3 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/selects/app/AppFilter.d.ts +11 -0
- package/dist/lib/selects/app/AppFilter.d.ts.map +1 -0
- package/dist/lib/selects/app/AppSelector.d.ts +4 -0
- package/dist/lib/selects/app/AppSelector.d.ts.map +1 -0
- package/dist/lib/selects/app/index.d.ts +3 -0
- package/dist/lib/selects/app/index.d.ts.map +1 -0
- package/dist/lib/selects/app-code/AppCodeFilter.d.ts +11 -0
- package/dist/lib/selects/app-code/AppCodeFilter.d.ts.map +1 -0
- package/dist/lib/selects/app-code/AppCodeSelector.d.ts +4 -0
- package/dist/lib/selects/app-code/AppCodeSelector.d.ts.map +1 -0
- package/dist/lib/selects/app-code/index.d.ts +3 -0
- package/dist/lib/selects/app-code/index.d.ts.map +1 -0
- package/dist/lib/selects/cloud-provider/CloudProviderFilter.d.ts +11 -0
- package/dist/lib/selects/cloud-provider/CloudProviderFilter.d.ts.map +1 -0
- package/dist/lib/selects/cloud-provider/CloudProviderSelector.d.ts +4 -0
- package/dist/lib/selects/cloud-provider/CloudProviderSelector.d.ts.map +1 -0
- package/dist/lib/selects/cloud-provider/index.d.ts +3 -0
- package/dist/lib/selects/cloud-provider/index.d.ts.map +1 -0
- package/dist/lib/selects/currency/CurrencyFilter.d.ts +11 -0
- package/dist/lib/selects/currency/CurrencyFilter.d.ts.map +1 -0
- package/dist/lib/selects/currency/CurrencySelector.d.ts +4 -0
- package/dist/lib/selects/currency/CurrencySelector.d.ts.map +1 -0
- package/dist/lib/selects/currency/currencies.d.ts +3 -0
- package/dist/lib/selects/currency/currencies.d.ts.map +1 -0
- package/dist/lib/selects/currency/index.d.ts +3 -0
- package/dist/lib/selects/currency/index.d.ts.map +1 -0
- package/dist/lib/selects/deployment/DeploymentFilter.d.ts +11 -0
- package/dist/lib/selects/deployment/DeploymentFilter.d.ts.map +1 -0
- package/dist/lib/selects/deployment/DeploymentSelector.d.ts +4 -0
- package/dist/lib/selects/deployment/DeploymentSelector.d.ts.map +1 -0
- package/dist/lib/selects/deployment/index.d.ts +3 -0
- package/dist/lib/selects/deployment/index.d.ts.map +1 -0
- package/dist/lib/selects/feature/FeatureFilter.d.ts +11 -0
- package/dist/lib/selects/feature/FeatureFilter.d.ts.map +1 -0
- package/dist/lib/selects/feature/FeatureSelector.d.ts +4 -0
- package/dist/lib/selects/feature/FeatureSelector.d.ts.map +1 -0
- package/dist/lib/selects/feature/index.d.ts +3 -0
- package/dist/lib/selects/feature/index.d.ts.map +1 -0
- package/dist/lib/selects/index.d.ts +12 -0
- package/dist/lib/selects/index.d.ts.map +1 -0
- package/dist/lib/selects/industry/IndustryFilter.d.ts +11 -0
- package/dist/lib/selects/industry/IndustryFilter.d.ts.map +1 -0
- package/dist/lib/selects/industry/IndustrySelector.d.ts +4 -0
- package/dist/lib/selects/industry/IndustrySelector.d.ts.map +1 -0
- package/dist/lib/selects/industry/index.d.ts +3 -0
- package/dist/lib/selects/industry/index.d.ts.map +1 -0
- package/dist/lib/selects/locale/LocaleFilter.d.ts +11 -0
- package/dist/lib/selects/locale/LocaleFilter.d.ts.map +1 -0
- package/dist/lib/selects/locale/LocaleSelector.d.ts +4 -0
- package/dist/lib/selects/locale/LocaleSelector.d.ts.map +1 -0
- package/dist/lib/selects/locale/index.d.ts +3 -0
- package/dist/lib/selects/locale/index.d.ts.map +1 -0
- package/dist/lib/selects/locale/locales.d.ts +3 -0
- package/dist/lib/selects/locale/locales.d.ts.map +1 -0
- package/dist/lib/selects/microfrontend/MicrofrontendSelector.d.ts +4 -0
- package/dist/lib/selects/microfrontend/MicrofrontendSelector.d.ts.map +1 -0
- package/dist/lib/selects/microfrontend/index.d.ts +2 -0
- package/dist/lib/selects/microfrontend/index.d.ts.map +1 -0
- package/dist/lib/selects/plan/PlanFilter.d.ts +11 -0
- package/dist/lib/selects/plan/PlanFilter.d.ts.map +1 -0
- package/dist/lib/selects/plan/PlanSelector.d.ts +4 -0
- package/dist/lib/selects/plan/PlanSelector.d.ts.map +1 -0
- package/dist/lib/selects/plan/index.d.ts +3 -0
- package/dist/lib/selects/plan/index.d.ts.map +1 -0
- package/dist/lib/selects/region/RegionFilter.d.ts +11 -0
- package/dist/lib/selects/region/RegionFilter.d.ts.map +1 -0
- package/dist/lib/selects/region/RegionSelector.d.ts +4 -0
- package/dist/lib/selects/region/RegionSelector.d.ts.map +1 -0
- package/dist/lib/selects/region/index.d.ts +3 -0
- package/dist/lib/selects/region/index.d.ts.map +1 -0
- package/dist/lib/selects/timezone/TimezoneFilter.d.ts +11 -0
- package/dist/lib/selects/timezone/TimezoneFilter.d.ts.map +1 -0
- package/dist/lib/selects/timezone/TimezoneSelector.d.ts +4 -0
- package/dist/lib/selects/timezone/TimezoneSelector.d.ts.map +1 -0
- package/dist/lib/selects/timezone/index.d.ts +3 -0
- package/dist/lib/selects/timezone/index.d.ts.map +1 -0
- package/dist/lib/selects/timezone/timezones.d.ts +3 -0
- package/dist/lib/selects/timezone/timezones.d.ts.map +1 -0
- package/dist/lib/services/table-views.service.d.ts +25 -0
- package/dist/lib/services/table-views.service.d.ts.map +1 -0
- package/dist/lib/types/api-response.d.ts +21 -0
- package/dist/lib/types/api-response.d.ts.map +1 -0
- package/dist/lib/types/table-filter.d.ts +41 -0
- package/dist/lib/types/table-filter.d.ts.map +1 -0
- package/dist/lib/utils/axios.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/motion.d.ts +2 -0
- package/dist/lib/utils/motion.d.ts.map +1 -0
- package/dist/lib/utils/slug.d.ts +7 -0
- package/dist/lib/utils/slug.d.ts.map +1 -0
- package/dist/plus.js +18 -0
- package/dist/plus.js.map +1 -0
- package/dist/popover.js +33 -0
- package/dist/popover.js.map +1 -0
- package/dist/proxy.js +11392 -0
- package/dist/proxy.js.map +1 -0
- package/dist/react-error-boundary.js +67 -0
- package/dist/react-error-boundary.js.map +1 -0
- package/dist/select2.js +116 -0
- package/dist/select2.js.map +1 -0
- package/dist/selects/app-code.js +37 -0
- package/dist/selects/app-code.js.map +1 -0
- package/dist/selects/app.js +2 -0
- package/dist/selects/app.js.map +1 -0
- package/dist/selects/cloud-provider.js +2 -0
- package/dist/selects/cloud-provider.js.map +1 -0
- package/dist/selects/currency.js +2 -0
- package/dist/selects/currency.js.map +1 -0
- package/dist/selects/deployment.js +2 -0
- package/dist/selects/deployment.js.map +1 -0
- package/dist/selects/feature.js +2 -0
- package/dist/selects/feature.js.map +1 -0
- package/dist/selects/industry.js +2 -0
- package/dist/selects/industry.js.map +1 -0
- package/dist/selects/locale.js +2 -0
- package/dist/selects/locale.js.map +1 -0
- package/dist/selects/microfrontend.js +2 -0
- package/dist/selects/microfrontend.js.map +1 -0
- package/dist/selects/plan.js +2 -0
- package/dist/selects/plan.js.map +1 -0
- package/dist/selects/region.js +2 -0
- package/dist/selects/region.js.map +1 -0
- package/dist/selects/timezone.js +2 -0
- package/dist/selects/timezone.js.map +1 -0
- package/dist/separator2.js +1 -27
- package/dist/separator2.js.map +1 -1
- package/dist/shadcn/index.d.ts +2 -0
- package/dist/shadcn/index.d.ts.map +1 -1
- package/dist/shadcn/shadcnAlert/alert.d.ts.map +1 -1
- package/dist/shadcn/shadcnAlert/index.d.ts +1 -1
- package/dist/shadcn/shadcnAlert/index.d.ts.map +1 -1
- package/dist/shadcn/shadcnBadge/Badge.d.ts +1 -1
- package/dist/shadcn/shadcnBreadcrumb/breadcrumb.d.ts +18 -0
- package/dist/shadcn/shadcnBreadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/shadcn/shadcnBreadcrumb/index.d.ts +2 -0
- package/dist/shadcn/shadcnBreadcrumb/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnButton/Button.d.ts +2 -2
- package/dist/shadcn/shadcnButton/Button.d.ts.map +1 -1
- package/dist/shadcn/shadcnCalendar/calendar.d.ts +1 -1
- package/dist/shadcn/shadcnCalendar/calendar.d.ts.map +1 -1
- package/dist/shadcn/shadcnChart/Chart.d.ts +2 -2
- package/dist/shadcn/shadcnChart/Chart.d.ts.map +1 -1
- package/dist/shadcn/shadcnCollapsible/collapsible.d.ts +7 -0
- package/dist/shadcn/shadcnCollapsible/collapsible.d.ts.map +1 -0
- package/dist/shadcn/shadcnCollapsible/index.d.ts +2 -0
- package/dist/shadcn/shadcnCollapsible/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnDialog/dialog.d.ts +20 -0
- package/dist/shadcn/shadcnDialog/dialog.d.ts.map +1 -0
- package/dist/shadcn/shadcnDialog/index.d.ts +2 -0
- package/dist/shadcn/shadcnDialog/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnDropdownMenu/dropdown-menu.d.ts +1 -1
- package/dist/shadcn/shadcnDropdownMenu/dropdown-menu.d.ts.map +1 -1
- package/dist/shadcn/shadcnForm/form.d.ts +1 -1
- package/dist/shadcn/shadcnForm/form.d.ts.map +1 -1
- package/dist/shadcn/shadcnInputOTP/InputOTP.d.ts +3 -3
- package/dist/shadcn/shadcnInputOTP/InputOTP.d.ts.map +1 -1
- package/dist/shadcn/shadcnMultiSelect/index.d.ts +3 -0
- package/dist/shadcn/shadcnMultiSelect/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnMultiSelect/multi-select.d.ts +61 -0
- package/dist/shadcn/shadcnMultiSelect/multi-select.d.ts.map +1 -0
- package/dist/shadcn/shadcnProgress/Progress.d.ts +1 -1
- package/dist/shadcn/shadcnProgress/Progress.d.ts.map +1 -1
- package/dist/shadcn/shadcnRadioGroup/RadioGroup.d.ts +6 -0
- package/dist/shadcn/shadcnRadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/shadcn/shadcnRadioGroup/index.d.ts +2 -0
- package/dist/shadcn/shadcnRadioGroup/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnSheet/sheet.d.ts +1 -1
- package/dist/shadcn/shadcnSheet/sheet.d.ts.map +1 -1
- package/dist/shadcn/shadcnSidebar/index.d.ts +2 -0
- package/dist/shadcn/shadcnSidebar/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnSidebar/sidebar.d.ts +86 -0
- package/dist/shadcn/shadcnSidebar/sidebar.d.ts.map +1 -0
- package/dist/shadcn/shadcnSingleSelect/index.d.ts +3 -0
- package/dist/shadcn/shadcnSingleSelect/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnSingleSelect/single-select.d.ts +61 -0
- package/dist/shadcn/shadcnSingleSelect/single-select.d.ts.map +1 -0
- package/dist/shadcn/shadcnSonner/sonner.d.ts +1 -1
- package/dist/shadcn/shadcnSonner/sonner.d.ts.map +1 -1
- package/dist/shadcn/shadcnSwitch/Switch.d.ts.map +1 -1
- package/dist/shadcn/shadcnTable/table.d.ts +1 -1
- package/dist/shadcn/shadcnTable/table.d.ts.map +1 -1
- package/dist/shadcn/shadcnTabs/index.d.ts +2 -0
- package/dist/shadcn/shadcnTabs/index.d.ts.map +1 -0
- package/dist/shadcn/shadcnTabs/tabs.d.ts +8 -0
- package/dist/shadcn/shadcnTabs/tabs.d.ts.map +1 -0
- package/dist/shadcn/shadcnTooltip/tooltip.d.ts +1 -1
- package/dist/shadcn/shadcnTooltip/tooltip.d.ts.map +1 -1
- package/dist/share-2.js +42 -0
- package/dist/share-2.js.map +1 -0
- package/dist/text-align-justify.js +34 -0
- package/dist/text-align-justify.js.map +1 -0
- package/dist/trash-2.js +55 -0
- package/dist/trash-2.js.map +1 -0
- package/dist/types/api-response.js +2 -0
- package/dist/types/api-response.js.map +1 -0
- package/dist/types/table-filter.js +17 -0
- package/dist/types/table-filter.js.map +1 -0
- package/dist/upload.js +19 -0
- package/dist/upload.js.map +1 -0
- package/dist/useConfirm.js +37 -0
- package/dist/useConfirm.js.map +1 -0
- package/dist/useDataTable.js +26545 -0
- package/dist/useDataTable.js.map +1 -0
- package/dist/useIsMobile.js +19 -0
- package/dist/useIsMobile.js.map +1 -0
- package/dist/useTheme.js.map +1 -1
- package/dist/useTimer.js +112 -0
- package/dist/useTimer.js.map +1 -0
- package/dist/utils/axios.js +1 -1
- package/dist/utils/motion.js +4425 -0
- package/dist/utils/motion.js.map +1 -0
- package/dist/utils/slug.js +15 -0
- package/dist/utils/slug.js.map +1 -0
- package/dist/utils.js +204 -39
- package/dist/utils.js.map +1 -1
- package/dist/value.js +820 -0
- package/dist/value.js.map +1 -0
- package/dist/x.js +18 -0
- package/dist/x.js.map +1 -0
- package/package.json +196 -7
- package/dist/SelectField.js +0 -1351
- package/dist/SelectField.js.map +0 -1
- package/dist/chevron-down.js.map +0 -1
- package/dist/components/SelectField.js +0 -2
- package/dist/components/SelectField.js.map +0 -1
- package/dist/lib/components/SelectField/SelectField.d.ts +0 -24
- package/dist/lib/components/SelectField/SelectField.d.ts.map +0 -1
- package/dist/lib/components/SelectField/index.d.ts +0 -3
- package/dist/lib/components/SelectField/index.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/panel-left.js","../shadcn/shadcnSheet/sheet.tsx","../shadcn/shadcnTooltip/tooltip.tsx","../shadcn/shadcnSidebar/sidebar.tsx","../lib/components/Sidebar/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","'use client';\n\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport type React from 'react';\nimport { forwardRef } from 'react';\nimport { cn } from '../utils';\n\nconst Sheet = DialogPrimitive.Root;\n\nconst SheetTrigger = DialogPrimitive.Trigger;\n\nconst SheetClose = DialogPrimitive.Close;\n\nconst SheetPortal = DialogPrimitive.Portal;\n\nconst SheetOverlay = forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}\n\nconst SheetContent = forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, SheetContentProps>(\n ({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'top' &&\n 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n side === 'bottom' &&\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n side === 'left' &&\n 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n side === 'right' &&\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </SheetPortal>\n ),\n);\nSheetContent.displayName = DialogPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n);\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\n);\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold text-foreground', className)} {...props} />\n));\nSheetTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst SheetDescription = forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nSheetDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","'use client';\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport type React from 'react';\nimport { forwardRef } from 'react';\n\nimport { cn } from '../utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 0, children, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\nimport type React from 'react';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useIsMobile } from '../../lib/hooks/useIsMobile';\nimport { Button } from '../shadcnButton';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger,\n} from '../shadcnDropdownMenu';\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '../shadcnSheet';\nimport { Skeleton } from '../shadcnSkeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../shadcnTooltip';\nimport { cn } from '../utils';\n\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3.5rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null);\n\n// Accesses sidebar state from the nearest SidebarProvider\nfunction useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n return context;\n}\n\n// Provides sidebar state and keyboard shortcut to all sidebar sub-components\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen]);\n\n // Keyboard shortcut to toggle sidebar (Cmd+B / Ctrl+B)\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n// Main sidebar container with responsive mobile Sheet and desktop fixed panel\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n overlay = false,\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n overlay?: boolean;\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n data-overlay={overlay || undefined}\n >\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative bg-transparent transition-[width] duration-200 ease-linear',\n overlay\n ? 'w-(--sidebar-width-icon)'\n : cn(\n 'w-(--sidebar-width)',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n ),\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n overlay && state === 'expanded' && 'z-30 shadow-xl',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n// Toggle button that calls toggleSidebar from context\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n// Invisible rail at sidebar edge for drag/click toggling\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Main content area wrapper that adjusts for sidebar inset variant\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Sticky header area at the top of the sidebar\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\n// Sticky footer area at the bottom of the sidebar\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\n// Scrollable content area between header and footer\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Groups related menu items with an optional label\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\n// Label for a sidebar group, hides when collapsed to icon mode\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Action button positioned in the top-right of a sidebar group\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Content wrapper within a sidebar group\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\n// Unordered list container for sidebar menu items\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\n// List item wrapper for a single menu entry\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding,background-color,color] duration-200 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n// Interactive menu button with tooltip support in collapsed icon mode\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n const tooltipProps = typeof tooltip === 'string' ? { children: tooltip } : tooltip;\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltipProps} />\n </Tooltip>\n );\n}\n\n// Action button overlaid on a menu item (e.g., \"more\" or \"add\" buttons)\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Badge positioned on a menu item (e.g., unread count)\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\n// Skeleton loading placeholder for a menu item\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\n// Nested submenu list container\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\n// List item wrapper within a submenu\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\n// Link/button within a submenu item\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype SidebarMode = 'expanded' | 'collapsed' | 'hover';\n\nconst SIDEBAR_MODE_OPTIONS: { value: SidebarMode; label: string }[] = [\n { value: 'expanded', label: 'Expanded' },\n { value: 'collapsed', label: 'Collapsed' },\n { value: 'hover', label: 'Expand on hover' },\n];\n\n// Manages sidebar mode state with localStorage persistence and hover behavior\nfunction useSidebarMode(storageKey = 'sidebar-mode') {\n const { setOpen } = useSidebar();\n\n const [sidebarMode, setSidebarMode] = useState<SidebarMode>(() => {\n const stored = localStorage.getItem(storageKey);\n if (stored === 'expanded' || stored === 'collapsed' || stored === 'hover') return stored;\n return 'expanded';\n });\n\n // Stable ref to avoid re-triggering effect when setOpen identity changes\n const setOpenRef = useRef(setOpen);\n setOpenRef.current = setOpen;\n\n // Sync sidebar open/close when mode changes\n useEffect(() => {\n if (sidebarMode === 'expanded') {\n setOpenRef.current(true);\n } else {\n setOpenRef.current(false);\n }\n }, [sidebarMode]);\n\n function handleModeChange(mode: SidebarMode) {\n setSidebarMode(mode);\n localStorage.setItem(storageKey, mode);\n }\n\n function handleMouseEnter() {\n if (sidebarMode === 'hover') setOpen(true);\n }\n\n function handleMouseLeave() {\n if (sidebarMode === 'hover') setOpen(false);\n }\n\n return {\n sidebarMode,\n setSidebarMode: handleModeChange,\n sidebarProps: {\n overlay: sidebarMode === 'hover',\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n },\n controlProps: {\n sidebarMode,\n onSidebarModeChange: handleModeChange,\n },\n };\n}\n\n// Renders a dropdown menu for selecting the sidebar display mode\nconst SidebarControl = ({\n sidebarMode,\n onSidebarModeChange,\n}: {\n sidebarMode: SidebarMode;\n onSidebarModeChange: (mode: SidebarMode) => void;\n}) => {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton tooltip=\"Sidebar control\">\n <PanelLeftIcon />\n <span>Sidebar control</span>\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent side=\"top\" align=\"start\" sideOffset={8} className=\"w-48\">\n <DropdownMenuLabel className=\"text-xs font-normal text-muted-foreground\">Sidebar control</DropdownMenuLabel>\n {SIDEBAR_MODE_OPTIONS.map((option) => (\n <DropdownMenuItem key={option.value} onClick={() => onSidebarModeChange(option.value)} className=\"gap-2\">\n <span className=\"flex size-3.5 items-center justify-center\">\n {sidebarMode === option.value && <span className=\"size-1.5 rounded-full bg-foreground\" />}\n </span>\n {option.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarControl,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n sidebarMenuButtonVariants,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n useSidebar,\n useSidebarMode,\n};\n\nexport type { SidebarMode };\n","import { ChevronRight } from 'lucide-react';\nimport type * as React from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport {\n Collapsible as ShadcnCollapsible,\n CollapsibleContent as ShadcnCollapsibleContent,\n CollapsibleTrigger as ShadcnCollapsibleTrigger,\n} from '../../../shadcn/shadcnCollapsible';\nimport {\n Sidebar as ShadcnSidebar,\n SidebarContent as ShadcnSidebarContent,\n SidebarControl as ShadcnSidebarControl,\n SidebarFooter as ShadcnSidebarFooter,\n SidebarGroup as ShadcnSidebarGroup,\n SidebarGroupContent as ShadcnSidebarGroupContent,\n SidebarGroupLabel as ShadcnSidebarGroupLabel,\n SidebarMenu as ShadcnSidebarMenu,\n SidebarMenuButton as ShadcnSidebarMenuButton,\n SidebarMenuItem as ShadcnSidebarMenuItem,\n SidebarMenuSub as ShadcnSidebarMenuSub,\n SidebarMenuSubButton as ShadcnSidebarMenuSubButton,\n SidebarMenuSubItem as ShadcnSidebarMenuSubItem,\n SidebarRail as ShadcnSidebarRail,\n useSidebarMode as shadcnUseSidebarMode,\n} from '../../../shadcn/shadcnSidebar';\n\nexport interface SidebarNavChild {\n title: string;\n path: string;\n}\n\nexport interface SidebarNavItem {\n title: string;\n icon: React.ComponentType<{ className?: string }>;\n path: string;\n children?: SidebarNavChild[];\n}\n\nexport interface SidebarNavGroup {\n label: string;\n items: SidebarNavItem[];\n}\n\nexport interface SidebarProps {\n groups: SidebarNavGroup[];\n topOffset?: number;\n}\n\n// Renders a collapsible menu item with a submenu\nconst CollapsibleItem: React.FC<{\n item: SidebarNavItem;\n pathname: string;\n navigate: (path: string) => void;\n}> = ({ item, pathname, navigate }) => (\n <ShadcnCollapsible\n defaultOpen={item.children?.some((child) => pathname === child.path)}\n className=\"group/collapsible\"\n >\n <ShadcnSidebarMenuItem>\n <ShadcnCollapsibleTrigger asChild>\n <ShadcnSidebarMenuButton tooltip={item.title} isActive={pathname.startsWith(item.path)}>\n <item.icon />\n <span>{item.title}</span>\n <ChevronRight className=\"ml-auto size-4 transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </ShadcnSidebarMenuButton>\n </ShadcnCollapsibleTrigger>\n <ShadcnCollapsibleContent>\n <ShadcnSidebarMenuSub>\n {item.children?.map((child) => (\n <ShadcnSidebarMenuSubItem key={child.path}>\n <ShadcnSidebarMenuSubButton isActive={pathname === child.path} onClick={() => navigate(child.path)}>\n <span>{child.title}</span>\n </ShadcnSidebarMenuSubButton>\n </ShadcnSidebarMenuSubItem>\n ))}\n </ShadcnSidebarMenuSub>\n </ShadcnCollapsibleContent>\n </ShadcnSidebarMenuItem>\n </ShadcnCollapsible>\n);\n\n// Renders a flat menu item without children\nconst FlatItem: React.FC<{\n item: SidebarNavItem;\n pathname: string;\n navigate: (path: string) => void;\n}> = ({ item, pathname, navigate }) => (\n <ShadcnSidebarMenuItem>\n <ShadcnSidebarMenuButton tooltip={item.title} isActive={pathname === item.path || pathname.startsWith(`${item.path}/`)} onClick={() => navigate(item.path)}>\n <item.icon />\n <span>{item.title}</span>\n </ShadcnSidebarMenuButton>\n </ShadcnSidebarMenuItem>\n);\n\n// Data-driven sidebar that renders grouped nav items with collapsible support\nexport const Sidebar: React.FC<SidebarProps> = ({ groups, topOffset = 14 }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const { sidebarProps, controlProps } = shadcnUseSidebarMode();\n\n return (\n <ShadcnSidebar\n {...sidebarProps}\n collapsible=\"icon\"\n style={{\n top: `calc(var(--spacing) * ${topOffset})`,\n height: `calc(100svh - calc(var(--spacing) * ${topOffset}))`,\n }}\n >\n <ShadcnSidebarContent>\n {groups.map((group) => (\n <ShadcnSidebarGroup key={group.label}>\n <ShadcnSidebarGroupLabel className=\"group-data-[collapsible=icon]:mt-0\">\n {group.label}\n </ShadcnSidebarGroupLabel>\n <ShadcnSidebarGroupContent>\n <ShadcnSidebarMenu>\n {group.items.map((item) =>\n item.children ? (\n <CollapsibleItem key={item.title} item={item} pathname={location.pathname} navigate={navigate} />\n ) : (\n <FlatItem key={item.title} item={item} pathname={location.pathname} navigate={navigate} />\n ),\n )}\n </ShadcnSidebarMenu>\n </ShadcnSidebarGroupContent>\n </ShadcnSidebarGroup>\n ))}\n </ShadcnSidebarContent>\n\n <ShadcnSidebarFooter>\n <ShadcnSidebarControl {...controlProps} />\n </ShadcnSidebarFooter>\n\n <ShadcnSidebarRail />\n </ShadcnSidebar>\n );\n};\n\nSidebar.displayName = 'Sidebar';\n\n// Re-export layout primitives consumers need alongside the sidebar\nexport {\n SidebarInset,\n SidebarProvider,\n} from '../../../shadcn/shadcnSidebar';\n"],"names":["DialogPrimitive.Root","DialogPrimitive.Portal","DialogPrimitive.Overlay","DialogPrimitive.Content","DialogPrimitive.Close","DialogPrimitive.Title","DialogPrimitive.Description","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","TooltipPrimitive.Portal","TooltipPrimitive.Content","TooltipPrimitive.Arrow","open","Sidebar","PanelLeftIcon","ShadcnCollapsible","ShadcnSidebarMenuItem","ShadcnCollapsibleTrigger","ShadcnSidebarMenuButton","ShadcnCollapsibleContent","ShadcnSidebarMenuSub","ShadcnSidebarMenuSubItem","ShadcnSidebarMenuSubButton","shadcnUseSidebarMode","ShadcnSidebar","ShadcnSidebarContent","ShadcnSidebarGroup","ShadcnSidebarGroupLabel","ShadcnSidebarGroupContent","ShadcnSidebarMenu","ShadcnSidebarFooter","ShadcnSidebarControl","ShadcnSidebarRail"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { memo, forwardRef, useState, useId, useMemo, useCallback, useEffect, Fragment as Fragment$1 } from 'react';
|
|
3
|
+
import { c as cn } from './utils.js';
|
|
4
|
+
import { b as PopoverContent, P as Popover, a as PopoverTrigger } from './popover.js';
|
|
5
|
+
import { C as Check } from './check.js';
|
|
6
|
+
import { c as createLucideIcon } from './createLucideIcon.js';
|
|
7
|
+
import { C as ChevronDown } from './index4.js';
|
|
8
|
+
import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from './field.js';
|
|
9
|
+
import { L as LoaderCircle } from './loader-circle.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @license lucide-react v0.562.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const __iconNode = [
|
|
20
|
+
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
21
|
+
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
22
|
+
];
|
|
23
|
+
const Search = createLucideIcon("search", __iconNode);
|
|
24
|
+
|
|
25
|
+
function SingleSelectRoot({ open, onOpenChange, disabled, children }) {
|
|
26
|
+
return /* @__PURE__ */ jsx(
|
|
27
|
+
Popover,
|
|
28
|
+
{
|
|
29
|
+
"data-slot": "single-select",
|
|
30
|
+
open: disabled ? false : open,
|
|
31
|
+
onOpenChange: disabled ? void 0 : onOpenChange,
|
|
32
|
+
children
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
const SingleSelectTrigger = forwardRef(
|
|
37
|
+
({ className, children, disabled, open, listboxId, ...props }, ref) => {
|
|
38
|
+
return /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
ref,
|
|
42
|
+
type: "button",
|
|
43
|
+
"data-slot": "single-select-trigger",
|
|
44
|
+
role: "combobox",
|
|
45
|
+
"aria-expanded": open ?? false,
|
|
46
|
+
"aria-haspopup": "listbox",
|
|
47
|
+
"aria-controls": listboxId,
|
|
48
|
+
disabled,
|
|
49
|
+
className: cn(
|
|
50
|
+
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
51
|
+
"min-h-9",
|
|
52
|
+
className
|
|
53
|
+
),
|
|
54
|
+
...props,
|
|
55
|
+
children: [
|
|
56
|
+
children,
|
|
57
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "size-4 shrink-0 opacity-50" })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
) });
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
SingleSelectTrigger.displayName = "SingleSelectTrigger";
|
|
64
|
+
function SingleSelectContent({ className, children, align = "start", ...props }) {
|
|
65
|
+
return /* @__PURE__ */ jsx(
|
|
66
|
+
PopoverContent,
|
|
67
|
+
{
|
|
68
|
+
"data-slot": "single-select-content",
|
|
69
|
+
align,
|
|
70
|
+
className: cn("w-[var(--radix-popover-trigger-width)] p-0", className),
|
|
71
|
+
...props,
|
|
72
|
+
children
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
function SingleSelectSearch({ value, onValueChange, placeholder = "Search...", className }) {
|
|
77
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "single-select-search", className: cn("px-3 py-2", className), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-border bg-background px-3 h-9", children: [
|
|
78
|
+
/* @__PURE__ */ jsx(Search, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
79
|
+
/* @__PURE__ */ jsx(
|
|
80
|
+
"input",
|
|
81
|
+
{
|
|
82
|
+
type: "text",
|
|
83
|
+
"aria-label": "Search options",
|
|
84
|
+
value,
|
|
85
|
+
onChange: (e) => onValueChange(e.target.value),
|
|
86
|
+
placeholder,
|
|
87
|
+
className: "w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
] }) });
|
|
91
|
+
}
|
|
92
|
+
function SingleSelectClear({ onClear, disabled, className }) {
|
|
93
|
+
return /* @__PURE__ */ jsx(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
"data-slot": "single-select-clear",
|
|
97
|
+
className: cn("flex items-center justify-end border-t px-3 py-1.5", className),
|
|
98
|
+
children: /* @__PURE__ */ jsx(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
disabled,
|
|
103
|
+
className: "text-xs font-medium text-muted-foreground hover:text-foreground disabled:pointer-events-none disabled:opacity-50",
|
|
104
|
+
onClick: onClear,
|
|
105
|
+
children: "Clear"
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
function SingleSelectList({ className, children, ...props }) {
|
|
112
|
+
return /* @__PURE__ */ jsx(
|
|
113
|
+
"div",
|
|
114
|
+
{
|
|
115
|
+
"data-slot": "single-select-list",
|
|
116
|
+
role: "listbox",
|
|
117
|
+
className: cn("max-h-60 overflow-y-auto p-1", className),
|
|
118
|
+
...props,
|
|
119
|
+
children
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
const SingleSelectRow = memo(function SingleSelectRow2({
|
|
124
|
+
name,
|
|
125
|
+
description,
|
|
126
|
+
selected,
|
|
127
|
+
onSelect,
|
|
128
|
+
disabled,
|
|
129
|
+
className
|
|
130
|
+
}) {
|
|
131
|
+
function handleClick() {
|
|
132
|
+
if (!disabled) {
|
|
133
|
+
onSelect();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function handleKeyDown(e) {
|
|
137
|
+
if (disabled) return;
|
|
138
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
139
|
+
e.preventDefault();
|
|
140
|
+
onSelect();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return /* @__PURE__ */ jsxs(
|
|
144
|
+
"div",
|
|
145
|
+
{
|
|
146
|
+
"data-slot": "single-select-row",
|
|
147
|
+
role: "option",
|
|
148
|
+
"aria-selected": selected,
|
|
149
|
+
"aria-disabled": disabled,
|
|
150
|
+
tabIndex: disabled ? void 0 : 0,
|
|
151
|
+
className: cn(
|
|
152
|
+
"relative flex w-full cursor-default flex-col items-start rounded-md h-8 justify-center pr-8 px-2 text-sm outline-hidden select-none",
|
|
153
|
+
"hover:bg-accent hover:text-accent-foreground",
|
|
154
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
155
|
+
className
|
|
156
|
+
),
|
|
157
|
+
"data-disabled": disabled ? "" : void 0,
|
|
158
|
+
onClick: handleClick,
|
|
159
|
+
onKeyDown: handleKeyDown,
|
|
160
|
+
children: [
|
|
161
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: name }),
|
|
162
|
+
description && /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-muted-foreground mt-0.5", children: description }),
|
|
163
|
+
/* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: selected && /* @__PURE__ */ jsx(Check, { className: "size-4" }) })
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
});
|
|
168
|
+
function SingleSelectGroup({ className, children, ...props }) {
|
|
169
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "single-select-group", role: "group", className: cn(className), ...props, children });
|
|
170
|
+
}
|
|
171
|
+
function SingleSelectGroupLabel({ className, children, ...props }) {
|
|
172
|
+
return /* @__PURE__ */ jsx(
|
|
173
|
+
"div",
|
|
174
|
+
{
|
|
175
|
+
"data-slot": "single-select-group-label",
|
|
176
|
+
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
177
|
+
...props,
|
|
178
|
+
children
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
function SingleSelectEmpty({ children, className }) {
|
|
183
|
+
return /* @__PURE__ */ jsx(
|
|
184
|
+
"div",
|
|
185
|
+
{
|
|
186
|
+
"data-slot": "single-select-empty",
|
|
187
|
+
className: cn("flex items-center justify-center py-6 text-sm text-muted-foreground", className),
|
|
188
|
+
children: children ?? "No options found."
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function useSingleSelect({
|
|
194
|
+
options,
|
|
195
|
+
groups,
|
|
196
|
+
value: controlledValue,
|
|
197
|
+
onChange,
|
|
198
|
+
onOptionSelect,
|
|
199
|
+
defaultValue,
|
|
200
|
+
remoteSearch
|
|
201
|
+
}) {
|
|
202
|
+
const isControlled = controlledValue !== void 0;
|
|
203
|
+
const [internalValue, setInternalValue] = useState(defaultValue ?? "");
|
|
204
|
+
const selectedValue = isControlled ? controlledValue : internalValue;
|
|
205
|
+
const [open, setOpen] = useState(false);
|
|
206
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
207
|
+
const listboxId = useId();
|
|
208
|
+
const optionMap = useMemo(() => {
|
|
209
|
+
const map = /* @__PURE__ */ new Map();
|
|
210
|
+
for (const option of options) {
|
|
211
|
+
map.set(option.value, option);
|
|
212
|
+
}
|
|
213
|
+
return map;
|
|
214
|
+
}, [options]);
|
|
215
|
+
const filteredOptions = useMemo(() => {
|
|
216
|
+
if (remoteSearch || !searchQuery) return options;
|
|
217
|
+
const lower = searchQuery.toLowerCase();
|
|
218
|
+
return options.filter((o) => o.label.toLowerCase().includes(lower));
|
|
219
|
+
}, [options, searchQuery, remoteSearch]);
|
|
220
|
+
const updateSelection = useCallback(
|
|
221
|
+
(nextValue) => {
|
|
222
|
+
if (!isControlled) {
|
|
223
|
+
setInternalValue(nextValue);
|
|
224
|
+
}
|
|
225
|
+
onChange?.(nextValue);
|
|
226
|
+
},
|
|
227
|
+
[isControlled, onChange]
|
|
228
|
+
);
|
|
229
|
+
const selectOption = useCallback(
|
|
230
|
+
(optionValue) => {
|
|
231
|
+
const option = optionMap.get(optionValue);
|
|
232
|
+
if (option?.disabled) return;
|
|
233
|
+
onOptionSelect?.(option ?? null);
|
|
234
|
+
updateSelection(optionValue);
|
|
235
|
+
setOpen(false);
|
|
236
|
+
},
|
|
237
|
+
[optionMap, updateSelection, onOptionSelect]
|
|
238
|
+
);
|
|
239
|
+
const clearSelection = useCallback(() => {
|
|
240
|
+
onOptionSelect?.(null);
|
|
241
|
+
updateSelection("");
|
|
242
|
+
setOpen(false);
|
|
243
|
+
}, [updateSelection, onOptionSelect]);
|
|
244
|
+
useEffect(() => {
|
|
245
|
+
if (!open) {
|
|
246
|
+
setSearchQuery("");
|
|
247
|
+
}
|
|
248
|
+
}, [open]);
|
|
249
|
+
const selectedOption = selectedValue ? optionMap.get(selectedValue) : void 0;
|
|
250
|
+
const grouped = useMemo(() => {
|
|
251
|
+
if (!groups || groups.length === 0) return null;
|
|
252
|
+
const buckets = /* @__PURE__ */ new Map();
|
|
253
|
+
for (const g of groups) {
|
|
254
|
+
buckets.set(g.id, []);
|
|
255
|
+
}
|
|
256
|
+
const ungrouped = [];
|
|
257
|
+
for (const option of filteredOptions) {
|
|
258
|
+
const bucket = option.groupId != null ? buckets.get(option.groupId) : void 0;
|
|
259
|
+
if (bucket) {
|
|
260
|
+
bucket.push(option);
|
|
261
|
+
} else {
|
|
262
|
+
ungrouped.push(option);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const entries = [];
|
|
266
|
+
for (const g of groups) {
|
|
267
|
+
const bucket = buckets.get(g.id);
|
|
268
|
+
if (!bucket || bucket.length === 0) continue;
|
|
269
|
+
entries.push({ name: g.name, options: bucket });
|
|
270
|
+
}
|
|
271
|
+
return { ungrouped, entries };
|
|
272
|
+
}, [filteredOptions, groups]);
|
|
273
|
+
return {
|
|
274
|
+
selectedValue,
|
|
275
|
+
selectedOption,
|
|
276
|
+
open,
|
|
277
|
+
setOpen,
|
|
278
|
+
searchQuery,
|
|
279
|
+
setSearchQuery,
|
|
280
|
+
listboxId,
|
|
281
|
+
filteredOptions,
|
|
282
|
+
grouped,
|
|
283
|
+
selectOption,
|
|
284
|
+
clearSelection
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
const SingleSelect = forwardRef(
|
|
289
|
+
({
|
|
290
|
+
label,
|
|
291
|
+
description,
|
|
292
|
+
error,
|
|
293
|
+
placeholder = "Select an option",
|
|
294
|
+
options,
|
|
295
|
+
groups,
|
|
296
|
+
value: controlledValue,
|
|
297
|
+
onChange,
|
|
298
|
+
onOptionSelect,
|
|
299
|
+
onBlur,
|
|
300
|
+
name,
|
|
301
|
+
disabled = false,
|
|
302
|
+
required,
|
|
303
|
+
className,
|
|
304
|
+
id,
|
|
305
|
+
defaultValue,
|
|
306
|
+
searchable = false,
|
|
307
|
+
searchPlaceholder = "Search...",
|
|
308
|
+
clearable = false,
|
|
309
|
+
asyncState,
|
|
310
|
+
anchor,
|
|
311
|
+
renderOption,
|
|
312
|
+
footer,
|
|
313
|
+
contentClassName,
|
|
314
|
+
onOpenChange
|
|
315
|
+
}, ref) => {
|
|
316
|
+
const state = useSingleSelect({
|
|
317
|
+
options: options ?? [],
|
|
318
|
+
groups,
|
|
319
|
+
value: controlledValue,
|
|
320
|
+
onChange,
|
|
321
|
+
onOptionSelect,
|
|
322
|
+
defaultValue,
|
|
323
|
+
remoteSearch: !!asyncState
|
|
324
|
+
});
|
|
325
|
+
function handleOpenChange(o) {
|
|
326
|
+
state.setOpen(o);
|
|
327
|
+
onOpenChange?.(o);
|
|
328
|
+
if (!o) asyncState?.setSearchQuery("");
|
|
329
|
+
}
|
|
330
|
+
const searchValue = asyncState ? asyncState.searchQuery : state.searchQuery;
|
|
331
|
+
const setSearchValue = asyncState ? asyncState.setSearchQuery : state.setSearchQuery;
|
|
332
|
+
const showSearch = !!asyncState || searchable;
|
|
333
|
+
function renderRow(option) {
|
|
334
|
+
if (renderOption) {
|
|
335
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: renderOption({
|
|
336
|
+
option,
|
|
337
|
+
selected: state.selectedValue === option.value,
|
|
338
|
+
onSelect: () => state.selectOption(option.value)
|
|
339
|
+
}) }, String(option.value));
|
|
340
|
+
}
|
|
341
|
+
return /* @__PURE__ */ jsx(
|
|
342
|
+
SingleSelectRow,
|
|
343
|
+
{
|
|
344
|
+
name: option.label,
|
|
345
|
+
description: option.description,
|
|
346
|
+
selected: state.selectedValue === option.value,
|
|
347
|
+
onSelect: () => {
|
|
348
|
+
state.selectOption(option.value);
|
|
349
|
+
},
|
|
350
|
+
disabled: option.disabled
|
|
351
|
+
},
|
|
352
|
+
String(option.value)
|
|
353
|
+
);
|
|
354
|
+
}
|
|
355
|
+
function renderOptions() {
|
|
356
|
+
if (asyncState?.loading) {
|
|
357
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-2 py-6", children: [
|
|
358
|
+
/* @__PURE__ */ jsx(LoaderCircle, { className: "size-4 animate-spin text-muted-foreground" }),
|
|
359
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Loading..." })
|
|
360
|
+
] });
|
|
361
|
+
}
|
|
362
|
+
if (state.filteredOptions.length === 0) {
|
|
363
|
+
return /* @__PURE__ */ jsx(SingleSelectEmpty, {});
|
|
364
|
+
}
|
|
365
|
+
if (!state.grouped) {
|
|
366
|
+
return state.filteredOptions.map(renderRow);
|
|
367
|
+
}
|
|
368
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
369
|
+
state.grouped.ungrouped.map(renderRow),
|
|
370
|
+
state.grouped.entries.map((entry) => /* @__PURE__ */ jsxs(SingleSelectGroup, { children: [
|
|
371
|
+
/* @__PURE__ */ jsx(SingleSelectGroupLabel, { children: entry.name }),
|
|
372
|
+
entry.options.map(renderRow)
|
|
373
|
+
] }, entry.name))
|
|
374
|
+
] });
|
|
375
|
+
}
|
|
376
|
+
function renderContent() {
|
|
377
|
+
return /* @__PURE__ */ jsxs(SingleSelectContent, { className: contentClassName, children: [
|
|
378
|
+
showSearch && /* @__PURE__ */ jsx(SingleSelectSearch, { value: searchValue, onValueChange: setSearchValue, placeholder: searchPlaceholder }),
|
|
379
|
+
/* @__PURE__ */ jsxs(SingleSelectList, { id: state.listboxId, children: [
|
|
380
|
+
renderOptions(),
|
|
381
|
+
asyncState?.hasMore && /* @__PURE__ */ jsx("div", { ref: asyncState.sentinelRef, className: "h-1" }),
|
|
382
|
+
asyncState?.loadingMore && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-2 py-2", children: [
|
|
383
|
+
/* @__PURE__ */ jsx(LoaderCircle, { className: "size-3 animate-spin text-muted-foreground" }),
|
|
384
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Loading more..." })
|
|
385
|
+
] })
|
|
386
|
+
] }),
|
|
387
|
+
clearable && /* @__PURE__ */ jsx(SingleSelectClear, { onClear: state.clearSelection, disabled: !state.selectedValue }),
|
|
388
|
+
footer
|
|
389
|
+
] });
|
|
390
|
+
}
|
|
391
|
+
if (anchor) {
|
|
392
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
393
|
+
/* @__PURE__ */ jsxs(SingleSelectRoot, { open: state.open, onOpenChange: handleOpenChange, disabled, children: [
|
|
394
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: anchor({ selectedOption: state.selectedOption, open: state.open, disabled }) }),
|
|
395
|
+
renderContent()
|
|
396
|
+
] }),
|
|
397
|
+
name && state.selectedValue && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: String(state.selectedValue) })
|
|
398
|
+
] });
|
|
399
|
+
}
|
|
400
|
+
return /* @__PURE__ */ jsxs(Field, { children: [
|
|
401
|
+
label && /* @__PURE__ */ jsx(FieldLabel, { children: label }),
|
|
402
|
+
/* @__PURE__ */ jsxs(SingleSelectRoot, { open: state.open, onOpenChange: handleOpenChange, disabled, children: [
|
|
403
|
+
/* @__PURE__ */ jsx(
|
|
404
|
+
SingleSelectTrigger,
|
|
405
|
+
{
|
|
406
|
+
ref,
|
|
407
|
+
id,
|
|
408
|
+
open: state.open,
|
|
409
|
+
listboxId: state.listboxId,
|
|
410
|
+
"aria-invalid": !!error,
|
|
411
|
+
"aria-required": required,
|
|
412
|
+
disabled,
|
|
413
|
+
onBlur,
|
|
414
|
+
className: cn("w-full", className),
|
|
415
|
+
children: /* @__PURE__ */ jsx("span", { className: "flex flex-1 items-center overflow-hidden", children: state.selectedOption ? /* @__PURE__ */ jsx("span", { className: "truncate", children: state.selectedOption.label }) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: placeholder }) })
|
|
416
|
+
}
|
|
417
|
+
),
|
|
418
|
+
renderContent()
|
|
419
|
+
] }),
|
|
420
|
+
name && state.selectedValue && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: String(state.selectedValue) }),
|
|
421
|
+
description && !error && /* @__PURE__ */ jsx(FieldDescription, { children: description }),
|
|
422
|
+
error && /* @__PURE__ */ jsx(FieldError, { children: error })
|
|
423
|
+
] });
|
|
424
|
+
}
|
|
425
|
+
);
|
|
426
|
+
SingleSelect.displayName = "SingleSelect";
|
|
427
|
+
|
|
428
|
+
export { SingleSelect as S, SingleSelectClear as a, SingleSelectContent as b, SingleSelectEmpty as c, SingleSelectGroup as d, SingleSelectGroupLabel as e, SingleSelectList as f, SingleSelectRoot as g, SingleSelectRow as h, SingleSelectSearch as i, SingleSelectTrigger as j, Search as k, useSingleSelect as u };
|
|
429
|
+
//# sourceMappingURL=SingleSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleSelect.js","sources":["../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/search.js","../shadcn/shadcnSingleSelect/single-select.tsx","../lib/components/Select/hooks/useSingleSelect.ts","../lib/components/Select/components/SingleSelect/SingleSelect.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.js.map\n","'use client';\n\nimport { CheckIcon, ChevronDownIcon, SearchIcon } from 'lucide-react';\nimport type React from 'react';\nimport { forwardRef, memo } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../shadcnPopover';\nimport { cn } from '../utils';\n\n// SingleSelectRoot — wraps Radix Popover to provide open/close state\ninterface SingleSelectRootProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction SingleSelectRoot({ open, onOpenChange, disabled, children }: SingleSelectRootProps) {\n return (\n <Popover\n data-slot=\"single-select\"\n open={disabled ? false : open}\n onOpenChange={disabled ? undefined : onOpenChange}\n >\n {children}\n </Popover>\n );\n}\n\n// SingleSelectTrigger — styled trigger button that mirrors SelectTrigger\ninterface SingleSelectTriggerProps extends React.ComponentProps<'button'> {\n className?: string;\n open?: boolean;\n listboxId?: string;\n}\n\nconst SingleSelectTrigger = forwardRef<HTMLButtonElement, SingleSelectTriggerProps>(\n ({ className, children, disabled, open, listboxId, ...props }, ref) => {\n return (\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"single-select-trigger\"\n role=\"combobox\"\n aria-expanded={open ?? false}\n aria-haspopup=\"listbox\"\n aria-controls={listboxId}\n disabled={disabled}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n 'min-h-9',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n );\n },\n);\n\nSingleSelectTrigger.displayName = 'SingleSelectTrigger';\n\n// SingleSelectContent — styled dropdown panel wrapping PopoverContent\ninterface SingleSelectContentProps extends React.ComponentProps<typeof PopoverContent> {\n className?: string;\n}\n\nfunction SingleSelectContent({ className, children, align = 'start', ...props }: SingleSelectContentProps) {\n return (\n <PopoverContent\n data-slot=\"single-select-content\"\n align={align}\n className={cn('w-[var(--radix-popover-trigger-width)] p-0', className)}\n {...props}\n >\n {children}\n </PopoverContent>\n );\n}\n\n// SingleSelectSearch — search input for filtering options (stateless)\ninterface SingleSelectSearchProps {\n value: string;\n onValueChange: (value: string) => void;\n placeholder?: string;\n className?: string;\n}\n\nfunction SingleSelectSearch({ value, onValueChange, placeholder = 'Search...', className }: SingleSelectSearchProps) {\n return (\n <div data-slot=\"single-select-search\" className={cn('px-3 py-2', className)}>\n <div className=\"flex items-center gap-2 rounded-lg border border-border bg-background px-3 h-9\">\n <SearchIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n type=\"text\"\n aria-label=\"Search options\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n placeholder={placeholder}\n className=\"w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n />\n </div>\n </div>\n );\n}\n\n// SingleSelectClear — \"Clear\" text button in border-b bar\ninterface SingleSelectClearProps {\n onClear: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nfunction SingleSelectClear({ onClear, disabled, className }: SingleSelectClearProps) {\n return (\n <div\n data-slot=\"single-select-clear\"\n className={cn('flex items-center justify-end border-t px-3 py-1.5', className)}\n >\n <button\n type=\"button\"\n disabled={disabled}\n className=\"text-xs font-medium text-muted-foreground hover:text-foreground disabled:pointer-events-none disabled:opacity-50\"\n onClick={onClear}\n >\n Clear\n </button>\n </div>\n );\n}\n\n// SingleSelectList — scrollable listbox container for option rows\ninterface SingleSelectListProps extends React.ComponentProps<'div'> {\n className?: string;\n}\n\nfunction SingleSelectList({ className, children, ...props }: SingleSelectListProps) {\n return (\n <div\n data-slot=\"single-select-list\"\n role=\"listbox\"\n className={cn('max-h-60 overflow-y-auto p-1', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// SingleSelectRow — a single option row with a check icon\ninterface SingleSelectRowProps {\n name: string;\n description?: string;\n selected: boolean;\n onSelect: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nconst SingleSelectRow = memo(function SingleSelectRow({\n name,\n description,\n selected,\n onSelect,\n disabled,\n className,\n}: SingleSelectRowProps) {\n function handleClick() {\n if (!disabled) {\n onSelect();\n }\n }\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (disabled) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect();\n }\n }\n\n return (\n <div\n data-slot=\"single-select-row\"\n role=\"option\"\n aria-selected={selected}\n aria-disabled={disabled}\n tabIndex={disabled ? undefined : 0}\n className={cn(\n 'relative flex w-full cursor-default flex-col items-start rounded-md h-8 justify-center pr-8 px-2 text-sm outline-hidden select-none',\n 'hover:bg-accent hover:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className,\n )}\n data-disabled={disabled ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n <span className=\"truncate\">{name}</span>\n {description && <span className=\"truncate text-xs text-muted-foreground mt-0.5\">{description}</span>}\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n {selected && <CheckIcon className=\"size-4\" />}\n </span>\n </div>\n );\n});\n\n// SingleSelectGroup — wraps a group of rows with a role=\"group\" container\ninterface SingleSelectGroupProps extends React.ComponentProps<'div'> {\n className?: string;\n}\n\nfunction SingleSelectGroup({ className, children, ...props }: SingleSelectGroupProps) {\n return (\n <div data-slot=\"single-select-group\" role=\"group\" className={cn(className)} {...props}>\n {children}\n </div>\n );\n}\n\n// SingleSelectGroupLabel — styled label for a group header\ninterface SingleSelectGroupLabelProps extends React.ComponentProps<'div'> {\n className?: string;\n}\n\nfunction SingleSelectGroupLabel({ className, children, ...props }: SingleSelectGroupLabelProps) {\n return (\n <div\n data-slot=\"single-select-group-label\"\n className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// SingleSelectEmpty — displayed when no options match a search filter\ninterface SingleSelectEmptyProps {\n children?: React.ReactNode;\n className?: string;\n}\n\nfunction SingleSelectEmpty({ children, className }: SingleSelectEmptyProps) {\n return (\n <div\n data-slot=\"single-select-empty\"\n className={cn('flex items-center justify-center py-6 text-sm text-muted-foreground', className)}\n >\n {children ?? 'No options found.'}\n </div>\n );\n}\n\nexport {\n SingleSelectClear,\n SingleSelectContent,\n SingleSelectEmpty,\n SingleSelectGroup,\n SingleSelectGroupLabel,\n SingleSelectList,\n SingleSelectRoot,\n SingleSelectRow,\n SingleSelectSearch,\n SingleSelectTrigger,\n};\n\nexport type {\n SingleSelectClearProps,\n SingleSelectContentProps,\n SingleSelectEmptyProps,\n SingleSelectGroupLabelProps,\n SingleSelectGroupProps,\n SingleSelectListProps,\n SingleSelectRootProps,\n SingleSelectRowProps,\n SingleSelectSearchProps,\n SingleSelectTriggerProps,\n};\n","import { useCallback, useEffect, useId, useMemo, useState } from 'react';\nimport type { SelectGroup, SelectOption, SelectValue } from '../types';\n\ninterface UseSingleSelectStateProps {\n options: SelectOption[];\n groups?: SelectGroup[];\n value?: SelectValue;\n onChange?: (value: SelectValue) => void;\n onOptionSelect?: (option: SelectOption | null) => void;\n defaultValue?: SelectValue;\n remoteSearch?: boolean;\n}\n\n// Manages controlled/uncontrolled single-select state, search filtering, and grouping\n// No ref needed here — selectOption receives the value as an argument rather than reading current state\nexport function useSingleSelect({\n options,\n groups,\n value: controlledValue,\n onChange,\n onOptionSelect,\n defaultValue,\n remoteSearch,\n}: UseSingleSelectStateProps) {\n const isControlled = controlledValue !== undefined;\n const [internalValue, setInternalValue] = useState<SelectValue>(defaultValue ?? '');\n const selectedValue = isControlled ? controlledValue : internalValue;\n\n const [open, setOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const listboxId = useId();\n\n const optionMap = useMemo(() => {\n const map = new Map<SelectValue, SelectOption>();\n for (const option of options) {\n map.set(option.value, option);\n }\n return map;\n }, [options]);\n\n const filteredOptions = useMemo(() => {\n if (remoteSearch || !searchQuery) return options;\n const lower = searchQuery.toLowerCase();\n return options.filter((o) => o.label.toLowerCase().includes(lower));\n }, [options, searchQuery, remoteSearch]);\n\n const updateSelection = useCallback(\n (nextValue: SelectValue) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onChange?.(nextValue);\n },\n [isControlled, onChange],\n );\n\n // Select an option and close the popover\n const selectOption = useCallback(\n (optionValue: SelectValue) => {\n const option = optionMap.get(optionValue);\n if (option?.disabled) return;\n onOptionSelect?.(option ?? null);\n updateSelection(optionValue);\n setOpen(false);\n },\n [optionMap, updateSelection, onOptionSelect],\n );\n\n // Clear the selection and close the popover\n const clearSelection = useCallback(() => {\n onOptionSelect?.(null);\n updateSelection('');\n setOpen(false);\n }, [updateSelection, onOptionSelect]);\n\n // Reset search when popover closes\n useEffect(() => {\n if (!open) {\n setSearchQuery('');\n }\n }, [open]);\n\n const selectedOption = selectedValue ? optionMap.get(selectedValue) : undefined;\n\n // O(n + g) grouping — one pass over groups, one pass over options\n const grouped = useMemo(() => {\n if (!groups || groups.length === 0) return null;\n\n const buckets = new Map<string | number, SelectOption[]>();\n for (const g of groups) {\n buckets.set(g.id, []);\n }\n\n const ungrouped: SelectOption[] = [];\n for (const option of filteredOptions) {\n const bucket = option.groupId != null ? buckets.get(option.groupId) : undefined;\n if (bucket) {\n bucket.push(option);\n } else {\n ungrouped.push(option);\n }\n }\n\n const entries: Array<{ name: string; options: SelectOption[] }> = [];\n for (const g of groups) {\n const bucket = buckets.get(g.id);\n if (!bucket || bucket.length === 0) continue;\n entries.push({ name: g.name, options: bucket });\n }\n\n return { ungrouped, entries };\n }, [filteredOptions, groups]);\n\n return {\n selectedValue,\n selectedOption,\n open,\n setOpen,\n searchQuery,\n setSearchQuery,\n listboxId,\n filteredOptions,\n grouped,\n selectOption,\n clearSelection,\n };\n}\n","import { Loader2 } from 'lucide-react';\nimport type React from 'react';\nimport { Fragment, forwardRef } from 'react';\nimport { PopoverTrigger } from '../../../../../shadcn/shadcnPopover';\nimport {\n SingleSelectClear,\n SingleSelectContent,\n SingleSelectEmpty,\n SingleSelectGroup,\n SingleSelectGroupLabel,\n SingleSelectList,\n SingleSelectRoot,\n SingleSelectRow,\n SingleSelectSearch,\n SingleSelectTrigger,\n} from '../../../../../shadcn/shadcnSingleSelect';\nimport { cn } from '../../../../../shadcn/utils';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '../../../Field';\nimport { useSingleSelect } from '../../hooks/useSingleSelect';\nimport type { AsyncSelectState, SelectGroup, SelectOption, SelectValue } from '../../types';\n\nexport interface SingleSelectAnchorProps {\n selectedOption: SelectOption | undefined;\n open: boolean;\n disabled: boolean;\n}\n\nexport interface SingleSelectOptionRenderProps {\n option: SelectOption;\n selected: boolean;\n onSelect: () => void;\n}\n\nexport interface SingleSelectProps {\n label?: string;\n description?: React.ReactNode;\n error?: string;\n placeholder?: string;\n options?: SelectOption[];\n groups?: SelectGroup[];\n value?: SelectValue;\n onChange?: (value: SelectValue) => void;\n onOptionSelect?: (option: SelectOption | null) => void;\n onBlur?: () => void;\n name?: string;\n disabled?: boolean;\n required?: boolean;\n className?: string;\n id?: string;\n defaultValue?: SelectValue;\n searchable?: boolean;\n searchPlaceholder?: string;\n clearable?: boolean;\n asyncState?: AsyncSelectState;\n // Custom trigger -- replaces the default SingleSelectTrigger\n anchor?: (props: SingleSelectAnchorProps) => React.ReactElement;\n // Custom option row renderer -- replaces the default SingleSelectRow\n renderOption?: (props: SingleSelectOptionRenderProps) => React.ReactNode;\n // Content rendered below the option list\n footer?: React.ReactNode;\n // Custom className for the popover content panel\n contentClassName?: string;\n // Called when the popover open state changes\n onOpenChange?: (open: boolean) => void;\n}\n\n// Single-value form field wrapper built on Popover primitives\nexport const SingleSelect = forwardRef<HTMLButtonElement, SingleSelectProps>(\n (\n {\n label,\n description,\n error,\n placeholder = 'Select an option',\n options,\n groups,\n value: controlledValue,\n onChange,\n onOptionSelect,\n onBlur,\n name,\n disabled = false,\n required,\n className,\n id,\n defaultValue,\n searchable = false,\n searchPlaceholder = 'Search...',\n clearable = false,\n asyncState,\n anchor,\n renderOption,\n footer,\n contentClassName,\n onOpenChange,\n },\n ref,\n ) => {\n const state = useSingleSelect({\n options: options ?? [],\n groups,\n value: controlledValue,\n onChange,\n onOptionSelect,\n defaultValue,\n remoteSearch: !!asyncState,\n });\n\n // Notifies parent (Select.tsx) of open state changes to gate async queries; clears async search on close\n function handleOpenChange(o: boolean) {\n state.setOpen(o);\n onOpenChange?.(o);\n if (!o) asyncState?.setSearchQuery('');\n }\n\n // Resolve search binding -- async delegates to parent, static uses local state\n const searchValue = asyncState ? asyncState.searchQuery : state.searchQuery;\n const setSearchValue = asyncState ? asyncState.setSearchQuery : state.setSearchQuery;\n const showSearch = !!asyncState || searchable;\n\n // Renders a single option row\n function renderRow(option: SelectOption) {\n if (renderOption) {\n return (\n <Fragment key={String(option.value)}>\n {renderOption({\n option,\n selected: state.selectedValue === option.value,\n onSelect: () => state.selectOption(option.value),\n })}\n </Fragment>\n );\n }\n return (\n <SingleSelectRow\n key={String(option.value)}\n name={option.label}\n description={option.description}\n selected={state.selectedValue === option.value}\n onSelect={() => {\n state.selectOption(option.value);\n }}\n disabled={option.disabled}\n />\n );\n }\n\n // Renders the option list content (flat or grouped)\n function renderOptions() {\n if (asyncState?.loading) {\n return (\n <div className=\"flex items-center justify-center gap-2 py-6\">\n <Loader2 className=\"size-4 animate-spin text-muted-foreground\" />\n <span className=\"text-sm text-muted-foreground\">Loading...</span>\n </div>\n );\n }\n\n if (state.filteredOptions.length === 0) {\n return <SingleSelectEmpty />;\n }\n\n if (!state.grouped) {\n return state.filteredOptions.map(renderRow);\n }\n\n return (\n <>\n {state.grouped.ungrouped.map(renderRow)}\n {state.grouped.entries.map((entry) => (\n <SingleSelectGroup key={entry.name}>\n <SingleSelectGroupLabel>{entry.name}</SingleSelectGroupLabel>\n {entry.options.map(renderRow)}\n </SingleSelectGroup>\n ))}\n </>\n );\n }\n\n // Shared popover content used by both anchor and default paths\n function renderContent() {\n return (\n <SingleSelectContent className={contentClassName}>\n {showSearch && (\n <SingleSelectSearch value={searchValue} onValueChange={setSearchValue} placeholder={searchPlaceholder} />\n )}\n\n <SingleSelectList id={state.listboxId}>\n {renderOptions()}\n {asyncState?.hasMore && <div ref={asyncState.sentinelRef} className=\"h-1\" />}\n {asyncState?.loadingMore && (\n <div className=\"flex items-center justify-center gap-2 py-2\">\n <Loader2 className=\"size-3 animate-spin text-muted-foreground\" />\n <span className=\"text-xs text-muted-foreground\">Loading more...</span>\n </div>\n )}\n </SingleSelectList>\n\n {clearable && <SingleSelectClear onClear={state.clearSelection} disabled={!state.selectedValue} />}\n {footer}\n </SingleSelectContent>\n );\n }\n\n // Custom anchor path -- skip Field wrapper and use PopoverTrigger asChild\n if (anchor) {\n return (\n <>\n <SingleSelectRoot open={state.open} onOpenChange={handleOpenChange} disabled={disabled}>\n <PopoverTrigger asChild>\n {anchor({ selectedOption: state.selectedOption, open: state.open, disabled })}\n </PopoverTrigger>\n {renderContent()}\n </SingleSelectRoot>\n {name && state.selectedValue && <input type=\"hidden\" name={name} value={String(state.selectedValue)} />}\n </>\n );\n }\n\n // Default path -- Field wrapper with SingleSelectTrigger\n return (\n <Field>\n {label && <FieldLabel>{label}</FieldLabel>}\n\n <SingleSelectRoot open={state.open} onOpenChange={handleOpenChange} disabled={disabled}>\n <SingleSelectTrigger\n ref={ref}\n id={id}\n open={state.open}\n listboxId={state.listboxId}\n aria-invalid={!!error}\n aria-required={required}\n disabled={disabled}\n onBlur={onBlur}\n className={cn('w-full', className)}\n >\n <span className=\"flex flex-1 items-center overflow-hidden\">\n {state.selectedOption ? (\n <span className=\"truncate\">{state.selectedOption.label}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </span>\n </SingleSelectTrigger>\n {renderContent()}\n </SingleSelectRoot>\n\n {name && state.selectedValue && <input type=\"hidden\" name={name} value={String(state.selectedValue)} />}\n\n {description && !error && <FieldDescription>{description}</FieldDescription>}\n {error && <FieldError>{error}</FieldError>}\n </Field>\n );\n },\n);\n\nSingleSelect.displayName = 'SingleSelect';\n"],"names":["ChevronDownIcon","SearchIcon","SingleSelectRow","CheckIcon","Fragment","Loader2"],"mappings":"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","x_google_ignoreList":[0]}
|