@eggspot/ui 0.0.2 → 0.0.3
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/components/Badge.d.ts +15 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +29 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Breadcrumb.d.ts +12 -0
- package/dist/components/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb.js +28 -0
- package/dist/components/Breadcrumb.js.map +1 -0
- package/dist/components/Button.d.ts +53 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +81 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Button.machine.d.ts +9 -0
- package/dist/components/Button.machine.d.ts.map +1 -0
- package/dist/components/Button.machine.js +50 -0
- package/dist/components/Button.machine.js.map +1 -0
- package/dist/components/Button.variants.d.ts +10 -0
- package/dist/components/Button.variants.d.ts.map +1 -0
- package/dist/components/Button.variants.js +214 -0
- package/dist/components/Button.variants.js.map +1 -0
- package/dist/components/ButtonGroup.d.ts +9 -0
- package/dist/components/ButtonGroup.d.ts.map +1 -0
- package/dist/components/ButtonGroup.js +23 -0
- package/dist/components/ButtonGroup.js.map +1 -0
- package/dist/components/Calendar.d.ts +24 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar.js +64 -0
- package/dist/components/Calendar.js.map +1 -0
- package/dist/components/Calendar.utils.d.ts +6 -0
- package/dist/components/Calendar.utils.d.ts.map +1 -0
- package/dist/components/Calendar.utils.js +17 -0
- package/dist/components/Calendar.utils.js.map +1 -0
- package/dist/components/Card.d.ts +8 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +19 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Checkbox.d.ts +36 -0
- package/dist/components/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox.js +55 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/Collapsible.d.ts +20 -0
- package/dist/components/Collapsible.d.ts.map +1 -0
- package/dist/components/Collapsible.js +15 -0
- package/dist/components/Collapsible.js.map +1 -0
- package/dist/components/ConfirmDialog.d.ts +35 -0
- package/dist/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog.js +81 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/CopyButton.d.ts +67 -0
- package/dist/components/CopyButton.d.ts.map +1 -0
- package/dist/components/CopyButton.js +51 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/DashboardLayout/DashboardLayout.d.ts +3 -0
- package/dist/components/DashboardLayout/DashboardLayout.d.ts.map +1 -0
- package/dist/components/DashboardLayout/DashboardLayout.js +38 -0
- package/dist/components/DashboardLayout/DashboardLayout.js.map +1 -0
- package/dist/components/DashboardLayout/DashboardLayoutContent.d.ts +9 -0
- package/dist/components/DashboardLayout/DashboardLayoutContent.d.ts.map +1 -0
- package/dist/components/DashboardLayout/DashboardLayoutContent.js +10 -0
- package/dist/components/DashboardLayout/DashboardLayoutContent.js.map +1 -0
- package/dist/components/DashboardLayout/index.d.ts +4 -0
- package/dist/components/DashboardLayout/index.d.ts.map +1 -0
- package/dist/components/DashboardLayout/index.js +3 -0
- package/dist/components/DashboardLayout/index.js.map +1 -0
- package/dist/components/DashboardLayout/types.d.ts +37 -0
- package/dist/components/DashboardLayout/types.d.ts.map +1 -0
- package/dist/components/DashboardLayout/types.js +2 -0
- package/dist/components/DashboardLayout/types.js.map +1 -0
- package/dist/components/DataTable/DataTable.d.ts +9 -0
- package/dist/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable/DataTable.js +271 -0
- package/dist/components/DataTable/DataTable.js.map +1 -0
- package/dist/components/DataTable/DataTableColumnHeader.d.ts +11 -0
- package/dist/components/DataTable/DataTableColumnHeader.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableColumnHeader.js +26 -0
- package/dist/components/DataTable/DataTableColumnHeader.js.map +1 -0
- package/dist/components/DataTable/DataTableDisplaySettings.d.ts +8 -0
- package/dist/components/DataTable/DataTableDisplaySettings.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableDisplaySettings.js +88 -0
- package/dist/components/DataTable/DataTableDisplaySettings.js.map +1 -0
- package/dist/components/DataTable/DataTableFloatingBar.d.ts +8 -0
- package/dist/components/DataTable/DataTableFloatingBar.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableFloatingBar.js +11 -0
- package/dist/components/DataTable/DataTableFloatingBar.js.map +1 -0
- package/dist/components/DataTable/DataTablePagination.d.ts +11 -0
- package/dist/components/DataTable/DataTablePagination.d.ts.map +1 -0
- package/dist/components/DataTable/DataTablePagination.js +68 -0
- package/dist/components/DataTable/DataTablePagination.js.map +1 -0
- package/dist/components/DataTable/DataTableStates.d.ts +13 -0
- package/dist/components/DataTable/DataTableStates.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableStates.js +17 -0
- package/dist/components/DataTable/DataTableStates.js.map +1 -0
- package/dist/components/DataTable/DataTableToolbarContainer.d.ts +7 -0
- package/dist/components/DataTable/DataTableToolbarContainer.d.ts.map +1 -0
- package/dist/components/DataTable/DataTableToolbarContainer.js +7 -0
- package/dist/components/DataTable/DataTableToolbarContainer.js.map +1 -0
- package/dist/components/DataTable/hooks/use-data-table-settings.d.ts +19 -0
- package/dist/components/DataTable/hooks/use-data-table-settings.d.ts.map +1 -0
- package/dist/components/DataTable/hooks/use-data-table-settings.js +70 -0
- package/dist/components/DataTable/hooks/use-data-table-settings.js.map +1 -0
- package/dist/components/DataTable/index.d.ts +4 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/index.js +3 -0
- package/dist/components/DataTable/index.js.map +1 -0
- package/dist/components/DataTable/types/data-table.d.ts +76 -0
- package/dist/components/DataTable/types/data-table.d.ts.map +1 -0
- package/dist/components/DataTable/types/data-table.js +2 -0
- package/dist/components/DataTable/types/data-table.js.map +1 -0
- package/dist/components/DatePicker.d.ts +19 -0
- package/dist/components/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker.js +49 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DatePicker.utils.d.ts +3 -0
- package/dist/components/DatePicker.utils.d.ts.map +1 -0
- package/dist/components/DatePicker.utils.js +23 -0
- package/dist/components/DatePicker.utils.js.map +1 -0
- package/dist/components/Datefield.d.ts +25 -0
- package/dist/components/Datefield.d.ts.map +1 -0
- package/dist/components/Datefield.js +29 -0
- package/dist/components/Datefield.js.map +1 -0
- package/dist/components/Datefield.utils.d.ts +3 -0
- package/dist/components/Datefield.utils.d.ts.map +1 -0
- package/dist/components/Datefield.utils.js +11 -0
- package/dist/components/Datefield.utils.js.map +1 -0
- package/dist/components/Dialog.d.ts +21 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +23 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/Field.d.ts +10 -0
- package/dist/components/Field.d.ts.map +1 -0
- package/dist/components/Field.js +32 -0
- package/dist/components/Field.js.map +1 -0
- package/dist/components/Filter/Filter.d.ts +4 -0
- package/dist/components/Filter/Filter.d.ts.map +1 -0
- package/dist/components/Filter/Filter.js +8 -0
- package/dist/components/Filter/Filter.js.map +1 -0
- package/dist/components/Filter/Filter.store.d.ts +13 -0
- package/dist/components/Filter/Filter.store.d.ts.map +1 -0
- package/dist/components/Filter/Filter.store.js +61 -0
- package/dist/components/Filter/Filter.store.js.map +1 -0
- package/dist/components/Filter/Filter.types.d.ts +66 -0
- package/dist/components/Filter/Filter.types.d.ts.map +1 -0
- package/dist/components/Filter/Filter.types.js +15 -0
- package/dist/components/Filter/Filter.types.js.map +1 -0
- package/dist/components/Filter/FilterBar.d.ts +7 -0
- package/dist/components/Filter/FilterBar.d.ts.map +1 -0
- package/dist/components/Filter/FilterBar.js +28 -0
- package/dist/components/Filter/FilterBar.js.map +1 -0
- package/dist/components/Filter/FilterBuilder.d.ts +3 -0
- package/dist/components/Filter/FilterBuilder.d.ts.map +1 -0
- package/dist/components/Filter/FilterBuilder.js +47 -0
- package/dist/components/Filter/FilterBuilder.js.map +1 -0
- package/dist/components/Filter/FilterField/DateModeRowValue.d.ts +5 -0
- package/dist/components/Filter/FilterField/DateModeRowValue.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/DateModeRowValue.js +150 -0
- package/dist/components/Filter/FilterField/DateModeRowValue.js.map +1 -0
- package/dist/components/Filter/FilterField/FilterAsyncSelect.d.ts +13 -0
- package/dist/components/Filter/FilterField/FilterAsyncSelect.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/FilterAsyncSelect.js +62 -0
- package/dist/components/Filter/FilterField/FilterAsyncSelect.js.map +1 -0
- package/dist/components/Filter/FilterField/FilterDateMode.d.ts +2 -0
- package/dist/components/Filter/FilterField/FilterDateMode.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/FilterDateMode.js +167 -0
- package/dist/components/Filter/FilterField/FilterDateMode.js.map +1 -0
- package/dist/components/Filter/FilterField/FilterDateRange.d.ts +7 -0
- package/dist/components/Filter/FilterField/FilterDateRange.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/FilterDateRange.js +60 -0
- package/dist/components/Filter/FilterField/FilterDateRange.js.map +1 -0
- package/dist/components/Filter/FilterField/FilterSelect.d.ts +12 -0
- package/dist/components/Filter/FilterField/FilterSelect.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/FilterSelect.js +72 -0
- package/dist/components/Filter/FilterField/FilterSelect.js.map +1 -0
- package/dist/components/Filter/FilterField/FilterSingleDate.d.ts +8 -0
- package/dist/components/Filter/FilterField/FilterSingleDate.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/FilterSingleDate.js +102 -0
- package/dist/components/Filter/FilterField/FilterSingleDate.js.map +1 -0
- package/dist/components/Filter/FilterField/OptionItem.d.ts +10 -0
- package/dist/components/Filter/FilterField/OptionItem.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/OptionItem.js +20 -0
- package/dist/components/Filter/FilterField/OptionItem.js.map +1 -0
- package/dist/components/Filter/FilterField/index.d.ts +7 -0
- package/dist/components/Filter/FilterField/index.d.ts.map +1 -0
- package/dist/components/Filter/FilterField/index.js +7 -0
- package/dist/components/Filter/FilterField/index.js.map +1 -0
- package/dist/components/Filter/FilterRow.d.ts +7 -0
- package/dist/components/Filter/FilterRow.d.ts.map +1 -0
- package/dist/components/Filter/FilterRow.js +152 -0
- package/dist/components/Filter/FilterRow.js.map +1 -0
- package/dist/components/Filter/index.d.ts +7 -0
- package/dist/components/Filter/index.d.ts.map +1 -0
- package/dist/components/Filter/index.js +6 -0
- package/dist/components/Filter/index.js.map +1 -0
- package/dist/components/Form.d.ts +32 -0
- package/dist/components/Form.d.ts.map +1 -0
- package/dist/components/Form.js +82 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/Heading.d.ts +10 -0
- package/dist/components/Heading.d.ts.map +1 -0
- package/dist/components/Heading.js +27 -0
- package/dist/components/Heading.js.map +1 -0
- package/dist/components/Input.d.ts +43 -0
- package/dist/components/Input.d.ts.map +1 -0
- package/dist/components/Input.js +58 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/InputOTP.d.ts +12 -0
- package/dist/components/InputOTP.d.ts.map +1 -0
- package/dist/components/InputOTP.js +24 -0
- package/dist/components/InputOTP.js.map +1 -0
- package/dist/components/Label.d.ts +9 -0
- package/dist/components/Label.d.ts.map +1 -0
- package/dist/components/Label.js +19 -0
- package/dist/components/Label.js.map +1 -0
- package/dist/components/Layout.d.ts +47 -0
- package/dist/components/Layout.d.ts.map +1 -0
- package/dist/components/Layout.js +78 -0
- package/dist/components/Layout.js.map +1 -0
- package/dist/components/ListBox.d.ts +8 -0
- package/dist/components/ListBox.d.ts.map +1 -0
- package/dist/components/ListBox.js +28 -0
- package/dist/components/ListBox.js.map +1 -0
- package/dist/components/Menu.d.ts +19 -0
- package/dist/components/Menu.d.ts.map +1 -0
- package/dist/components/Menu.js +29 -0
- package/dist/components/Menu.js.map +1 -0
- package/dist/components/NativeSelect.d.ts +10 -0
- package/dist/components/NativeSelect.d.ts.map +1 -0
- package/dist/components/NativeSelect.js +36 -0
- package/dist/components/NativeSelect.js.map +1 -0
- package/dist/components/NumberInput.d.ts +12 -0
- package/dist/components/NumberInput.d.ts.map +1 -0
- package/dist/components/NumberInput.js +25 -0
- package/dist/components/NumberInput.js.map +1 -0
- package/dist/components/Popover.d.ts +9 -0
- package/dist/components/Popover.d.ts.map +1 -0
- package/dist/components/Popover.js +17 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/Provider.d.ts +10 -0
- package/dist/components/Provider.d.ts.map +1 -0
- package/dist/components/Provider.js +11 -0
- package/dist/components/Provider.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +37 -0
- package/dist/components/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup.js +61 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/Resizable.d.ts +25 -0
- package/dist/components/Resizable.d.ts.map +1 -0
- package/dist/components/Resizable.js +19 -0
- package/dist/components/Resizable.js.map +1 -0
- package/dist/components/ScrollArea.d.ts +6 -0
- package/dist/components/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea.js +14 -0
- package/dist/components/ScrollArea.js.map +1 -0
- package/dist/components/Select.d.ts +88 -0
- package/dist/components/Select.d.ts.map +1 -0
- package/dist/components/Select.js +174 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Select.utils.d.ts +13 -0
- package/dist/components/Select.utils.d.ts.map +1 -0
- package/dist/components/Select.utils.js +41 -0
- package/dist/components/Select.utils.js.map +1 -0
- package/dist/components/Separator.d.ts +4 -0
- package/dist/components/Separator.d.ts.map +1 -0
- package/dist/components/Separator.js +7 -0
- package/dist/components/Separator.js.map +1 -0
- package/dist/components/Sheet.d.ts +19 -0
- package/dist/components/Sheet.d.ts.map +1 -0
- package/dist/components/Sheet.js +24 -0
- package/dist/components/Sheet.js.map +1 -0
- package/dist/components/Sidebar/LinkItem.d.ts +34 -0
- package/dist/components/Sidebar/LinkItem.d.ts.map +1 -0
- package/dist/components/Sidebar/LinkItem.js +19 -0
- package/dist/components/Sidebar/LinkItem.js.map +1 -0
- package/dist/components/Sidebar/PageTree.d.ts +46 -0
- package/dist/components/Sidebar/PageTree.d.ts.map +1 -0
- package/dist/components/Sidebar/PageTree.js +46 -0
- package/dist/components/Sidebar/PageTree.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +94 -0
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.js +328 -0
- package/dist/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/components/Sidebar/SidebarNavTree.d.ts +26 -0
- package/dist/components/Sidebar/SidebarNavTree.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarNavTree.js +32 -0
- package/dist/components/Sidebar/SidebarNavTree.js.map +1 -0
- package/dist/components/Sidebar/Tabs.d.ts +27 -0
- package/dist/components/Sidebar/Tabs.d.ts.map +1 -0
- package/dist/components/Sidebar/Tabs.js +49 -0
- package/dist/components/Sidebar/Tabs.js.map +1 -0
- package/dist/components/Sidebar/index.d.ts +6 -0
- package/dist/components/Sidebar/index.d.ts.map +1 -0
- package/dist/components/Sidebar/index.js +22 -0
- package/dist/components/Sidebar/index.js.map +1 -0
- package/dist/components/Sonner.d.ts +16 -0
- package/dist/components/Sonner.d.ts.map +1 -0
- package/dist/components/Sonner.js +38 -0
- package/dist/components/Sonner.js.map +1 -0
- package/dist/components/Spinner.d.ts +3 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +7 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Switch.d.ts +4 -0
- package/dist/components/Switch.d.ts.map +1 -0
- package/dist/components/Switch.js +19 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Text.d.ts +10 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/Text.js +22 -0
- package/dist/components/Text.js.map +1 -0
- package/dist/components/Tooltip.d.ts +8 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +24 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/Virtualizer.d.ts +8 -0
- package/dist/components/Virtualizer.d.ts.map +1 -0
- package/dist/components/Virtualizer.js +8 -0
- package/dist/components/Virtualizer.js.map +1 -0
- package/dist/consts/config.d.ts +3 -0
- package/dist/consts/config.d.ts.map +1 -0
- package/dist/consts/config.js +3 -0
- package/dist/consts/config.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +6 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/lib/utils.d.ts +4 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +53 -5
- package/eslint.config.js +0 -41
- package/resolve-catalog.js +0 -61
- package/src/components/Button.machine.tsx +0 -50
- package/src/components/Button.tsx +0 -249
- package/src/components/Button.variants.tsx +0 -186
- package/src/components/ButtonGroup.tsx +0 -56
- package/src/components/Calendar.tsx +0 -275
- package/src/components/Calendar.utils.tsx +0 -22
- package/src/components/Checkbox.tsx +0 -199
- package/src/components/ConfirmDialog.tsx +0 -183
- package/src/components/DashboardLayout/DashboardLayout.tsx +0 -348
- package/src/components/DashboardLayout/SidebarNav.tsx +0 -509
- package/src/components/DashboardLayout/index.ts +0 -33
- package/src/components/DataTable/DataTable.tsx +0 -557
- package/src/components/DataTable/DataTableColumnHeader.tsx +0 -122
- package/src/components/DataTable/DataTableDisplaySettings.tsx +0 -265
- package/src/components/DataTable/DataTableFloatingBar.tsx +0 -44
- package/src/components/DataTable/DataTablePagination.tsx +0 -168
- package/src/components/DataTable/DataTableStates.tsx +0 -69
- package/src/components/DataTable/DataTableToolbarContainer.tsx +0 -47
- package/src/components/DataTable/hooks/use-data-table-settings.ts +0 -101
- package/src/components/DataTable/index.ts +0 -7
- package/src/components/DataTable/types/data-table.ts +0 -97
- package/src/components/DatePicker.tsx +0 -213
- package/src/components/DatePicker.utils.tsx +0 -38
- package/src/components/Datefield.tsx +0 -109
- package/src/components/Datefield.utils.ts +0 -10
- package/src/components/Dialog.tsx +0 -167
- package/src/components/Field.tsx +0 -49
- package/src/components/Filter/Filter.store.tsx +0 -122
- package/src/components/Filter/Filter.tsx +0 -11
- package/src/components/Filter/Filter.types.ts +0 -107
- package/src/components/Filter/FilterBar.tsx +0 -38
- package/src/components/Filter/FilterBuilder.tsx +0 -158
- package/src/components/Filter/FilterField/DateModeRowValue.tsx +0 -250
- package/src/components/Filter/FilterField/FilterAsyncSelect.tsx +0 -191
- package/src/components/Filter/FilterField/FilterDateMode.tsx +0 -241
- package/src/components/Filter/FilterField/FilterDateRange.tsx +0 -169
- package/src/components/Filter/FilterField/FilterSelect.tsx +0 -208
- package/src/components/Filter/FilterField/FilterSingleDate.tsx +0 -277
- package/src/components/Filter/FilterField/OptionItem.tsx +0 -112
- package/src/components/Filter/FilterField/index.ts +0 -6
- package/src/components/Filter/FilterRow.tsx +0 -527
- package/src/components/Filter/index.ts +0 -17
- package/src/components/Form.tsx +0 -195
- package/src/components/Heading.tsx +0 -41
- package/src/components/Input.tsx +0 -221
- package/src/components/InputOTP.tsx +0 -78
- package/src/components/Label.tsx +0 -65
- package/src/components/Layout.tsx +0 -129
- package/src/components/ListBox.tsx +0 -97
- package/src/components/Menu.tsx +0 -152
- package/src/components/NativeSelect.tsx +0 -77
- package/src/components/NumberInput.tsx +0 -114
- package/src/components/Popover.tsx +0 -44
- package/src/components/Provider.tsx +0 -22
- package/src/components/RadioGroup.tsx +0 -191
- package/src/components/Resizable.tsx +0 -71
- package/src/components/ScrollArea.tsx +0 -57
- package/src/components/Select.tsx +0 -626
- package/src/components/Select.utils.tsx +0 -64
- package/src/components/Separator.tsx +0 -25
- package/src/components/Sheet.tsx +0 -147
- package/src/components/Sonner.tsx +0 -96
- package/src/components/Spinner.tsx +0 -30
- package/src/components/Switch.tsx +0 -51
- package/src/components/Text.tsx +0 -35
- package/src/components/Tooltip.tsx +0 -58
- package/src/consts/config.ts +0 -2
- package/src/hooks/.gitkeep +0 -0
- package/src/lib/utils.ts +0 -10
- package/tsconfig.json +0 -27
- package/tsconfig.lint.json +0 -8
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { createContext, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@eggspot/ui/components/Collapsible";
|
|
5
|
+
import { ScrollArea } from "@eggspot/ui/components/ScrollArea";
|
|
6
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
7
|
+
import { ChevronDown, ExternalLink } from "lucide-react";
|
|
8
|
+
import { Link as AriaLink } from "react-aria-components";
|
|
9
|
+
import { Button } from "../Button";
|
|
10
|
+
const SidebarContext = createContext(null);
|
|
11
|
+
const FolderContext = createContext(null);
|
|
12
|
+
export function useSidebar() {
|
|
13
|
+
const ctx = useContext(SidebarContext);
|
|
14
|
+
if (!ctx) {
|
|
15
|
+
throw new Error("useSidebar must be used within a SidebarProvider");
|
|
16
|
+
}
|
|
17
|
+
return ctx;
|
|
18
|
+
}
|
|
19
|
+
export function useFolder() {
|
|
20
|
+
return useContext(FolderContext);
|
|
21
|
+
}
|
|
22
|
+
export function useFolderDepth() {
|
|
23
|
+
return useContext(FolderContext)?.depth ?? 0;
|
|
24
|
+
}
|
|
25
|
+
function useMediaQuery(query) {
|
|
26
|
+
const [matches, setMatches] = useState(false);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
const mediaQuery = window.matchMedia(query);
|
|
29
|
+
setMatches(mediaQuery.matches);
|
|
30
|
+
const handler = (e) => setMatches(e.matches);
|
|
31
|
+
mediaQuery.addEventListener("change", handler);
|
|
32
|
+
return () => mediaQuery.removeEventListener("change", handler);
|
|
33
|
+
}, [query]);
|
|
34
|
+
return matches;
|
|
35
|
+
}
|
|
36
|
+
function useOnChange(value, callback) {
|
|
37
|
+
const prevRef = useRef(value);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (prevRef.current !== value) {
|
|
40
|
+
callback(value);
|
|
41
|
+
prevRef.current = value;
|
|
42
|
+
}
|
|
43
|
+
}, [value, callback]);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Scroll to the element if `active` is true
|
|
47
|
+
*/
|
|
48
|
+
export function useAutoScroll(active, ref) {
|
|
49
|
+
const { mode, desktopBoundaryRef, mobileBoundaryRef } = useSidebar();
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (active && ref.current) {
|
|
52
|
+
const boundary = mode === "drawer"
|
|
53
|
+
? mobileBoundaryRef.current
|
|
54
|
+
: desktopBoundaryRef.current;
|
|
55
|
+
if (boundary) {
|
|
56
|
+
const element = ref.current;
|
|
57
|
+
const elementRect = element.getBoundingClientRect();
|
|
58
|
+
const boundaryRect = boundary.getBoundingClientRect();
|
|
59
|
+
const isAbove = elementRect.top < boundaryRect.top;
|
|
60
|
+
const isBelow = elementRect.bottom > boundaryRect.bottom;
|
|
61
|
+
if (isAbove || isBelow) {
|
|
62
|
+
element.scrollIntoView({
|
|
63
|
+
block: "nearest",
|
|
64
|
+
behavior: "smooth",
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, [active, mode, ref]);
|
|
70
|
+
}
|
|
71
|
+
export function SidebarProvider({ defaultOpenLevel = 0, prefetch, pathname = "", children, }) {
|
|
72
|
+
const closeOnRedirect = useRef(true);
|
|
73
|
+
const [open, setOpen] = useState(false);
|
|
74
|
+
const [collapsed, setCollapsed] = useState(() => {
|
|
75
|
+
if (typeof window === "undefined")
|
|
76
|
+
return false;
|
|
77
|
+
const stored = localStorage.getItem("sidebar-collapsed");
|
|
78
|
+
return stored ? JSON.parse(stored) : false;
|
|
79
|
+
});
|
|
80
|
+
const mode = useMediaQuery("(max-width: 767px)") ? "drawer" : "full";
|
|
81
|
+
const desktopBoundaryRef = useRef(null);
|
|
82
|
+
const mobileBoundaryRef = useRef(null);
|
|
83
|
+
const setForceHover = (forceHover) => {
|
|
84
|
+
const sidebar = document.querySelector('[data-slot="sidebar"]');
|
|
85
|
+
if (sidebar) {
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
sidebar.dataset.forceHover = forceHover.toString();
|
|
88
|
+
}, 0);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
// Store the collapsed state in localStorage
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
localStorage.setItem("sidebar-collapsed", JSON.stringify(collapsed));
|
|
94
|
+
}, [collapsed]);
|
|
95
|
+
// Handle keyboard shortcut for collapsing the sidebar
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
const handleKeyDown = (e) => {
|
|
98
|
+
if ((e.metaKey || e.ctrlKey) && e.key === "b") {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
setCollapsed((prev) => !prev);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
104
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
105
|
+
}, []);
|
|
106
|
+
useOnChange(pathname, () => {
|
|
107
|
+
if (closeOnRedirect.current) {
|
|
108
|
+
setOpen(false);
|
|
109
|
+
}
|
|
110
|
+
closeOnRedirect.current = true;
|
|
111
|
+
});
|
|
112
|
+
return (_jsx(SidebarContext.Provider, { value: useMemo(() => ({
|
|
113
|
+
open,
|
|
114
|
+
setOpen,
|
|
115
|
+
collapsed,
|
|
116
|
+
setCollapsed,
|
|
117
|
+
setForceHover,
|
|
118
|
+
closeOnRedirect,
|
|
119
|
+
defaultOpenLevel,
|
|
120
|
+
prefetch,
|
|
121
|
+
mode,
|
|
122
|
+
pathname,
|
|
123
|
+
desktopBoundaryRef,
|
|
124
|
+
mobileBoundaryRef,
|
|
125
|
+
}), [
|
|
126
|
+
open,
|
|
127
|
+
collapsed,
|
|
128
|
+
defaultOpenLevel,
|
|
129
|
+
prefetch,
|
|
130
|
+
mode,
|
|
131
|
+
pathname,
|
|
132
|
+
desktopBoundaryRef,
|
|
133
|
+
mobileBoundaryRef,
|
|
134
|
+
]), children: children }));
|
|
135
|
+
}
|
|
136
|
+
export function SidebarContent({ children, }) {
|
|
137
|
+
const { collapsed, mode, desktopBoundaryRef } = useSidebar();
|
|
138
|
+
const [hover, setHover] = useState(false);
|
|
139
|
+
const timerRef = useRef(0);
|
|
140
|
+
useOnChange(collapsed, () => {
|
|
141
|
+
if (collapsed)
|
|
142
|
+
setHover(false);
|
|
143
|
+
});
|
|
144
|
+
if (mode !== "full")
|
|
145
|
+
return null;
|
|
146
|
+
function shouldIgnoreHover(e) {
|
|
147
|
+
const element = desktopBoundaryRef.current;
|
|
148
|
+
if (!element)
|
|
149
|
+
return true;
|
|
150
|
+
return (!collapsed ||
|
|
151
|
+
e.pointerType === "touch" ||
|
|
152
|
+
element.getAnimations().length > 0);
|
|
153
|
+
}
|
|
154
|
+
return children({
|
|
155
|
+
ref: desktopBoundaryRef,
|
|
156
|
+
collapsed,
|
|
157
|
+
hovered: hover,
|
|
158
|
+
onPointerEnter(e) {
|
|
159
|
+
if (shouldIgnoreHover(e))
|
|
160
|
+
return;
|
|
161
|
+
window.clearTimeout(timerRef.current);
|
|
162
|
+
setHover(true);
|
|
163
|
+
},
|
|
164
|
+
onPointerLeave(e) {
|
|
165
|
+
if (shouldIgnoreHover(e))
|
|
166
|
+
return;
|
|
167
|
+
window.clearTimeout(timerRef.current);
|
|
168
|
+
timerRef.current = window.setTimeout(() => setHover(false), Math.min(e.clientX, document.body.clientWidth - e.clientX) > 100
|
|
169
|
+
? 0
|
|
170
|
+
: 500);
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
export function SidebarDrawerOverlay(props) {
|
|
175
|
+
const { open, setOpen, mode } = useSidebar();
|
|
176
|
+
const [hidden, setHidden] = useState(!open);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
if (open) {
|
|
179
|
+
setHidden(false);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
const timer = window.setTimeout(() => setHidden(true), 220);
|
|
183
|
+
return () => window.clearTimeout(timer);
|
|
184
|
+
}
|
|
185
|
+
}, [open]);
|
|
186
|
+
if (mode !== "drawer")
|
|
187
|
+
return null;
|
|
188
|
+
return (_jsx("div", { "data-state": open ? "open" : "closed", onPointerDown: (e) => {
|
|
189
|
+
setOpen(false);
|
|
190
|
+
}, ...props, className: cn("fixed inset-0 z-40 bg-black/50 backdrop-blur-xs", "transition-opacity duration-200", open ? "opacity-100" : "opacity-0", hidden && "pointer-events-none invisible", props.className) }));
|
|
191
|
+
}
|
|
192
|
+
export function SidebarDrawerContent({ className, children, ...props }) {
|
|
193
|
+
const { open, mode, mobileBoundaryRef } = useSidebar();
|
|
194
|
+
const [hidden, setHidden] = useState(!open);
|
|
195
|
+
useEffect(() => {
|
|
196
|
+
if (open) {
|
|
197
|
+
setHidden(false);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// Fallback timeout in case onTransitionEnd doesn't fire
|
|
201
|
+
const timer = window.setTimeout(() => setHidden(true), 220);
|
|
202
|
+
return () => window.clearTimeout(timer);
|
|
203
|
+
}
|
|
204
|
+
}, [open]);
|
|
205
|
+
if (mode !== "drawer")
|
|
206
|
+
return null;
|
|
207
|
+
return (_jsx("aside", { ref: mobileBoundaryRef, "data-state": open ? "open" : "closed", className: cn("bg-gray-2 border-gray-6 fixed inset-y-0 end-0 z-50 flex w-[85%] max-w-[380px] flex-col border-s shadow-lg", "transition-transform duration-200 ease-out", open ? "translate-x-0" : "translate-x-full", hidden && "pointer-events-none invisible", className), onTransitionEnd: (e) => {
|
|
208
|
+
// Avoid handling bubbled transition events from children.
|
|
209
|
+
if (e.currentTarget !== e.target)
|
|
210
|
+
return;
|
|
211
|
+
if (!open)
|
|
212
|
+
setHidden(true);
|
|
213
|
+
}, ...props, children: children }));
|
|
214
|
+
}
|
|
215
|
+
export function SidebarViewport({ className, children }) {
|
|
216
|
+
return (_jsx(ScrollArea, { className: cn("min-h-0 flex-1", className), children: _jsx("div", { className: "space-y-1 overscroll-contain p-4", style: {
|
|
217
|
+
maskImage: "linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)",
|
|
218
|
+
}, children: children }) }));
|
|
219
|
+
}
|
|
220
|
+
export function SidebarSeparator(props) {
|
|
221
|
+
const depth = useFolderDepth();
|
|
222
|
+
return (_jsx("p", { ...props, className: cn("text-gray-12 mt-6 mb-1.5 inline-flex items-center gap-2 px-2 text-sm font-medium empty:mb-0", depth === 0 && "first:mt-0", props.className), children: props.children }));
|
|
223
|
+
}
|
|
224
|
+
export function SidebarItem({ asChild, href = "#", icon, external, active: activeProp, className, children, }) {
|
|
225
|
+
const { prefetch, pathname } = useSidebar();
|
|
226
|
+
const depth = useFolderDepth();
|
|
227
|
+
const isNested = depth > 0;
|
|
228
|
+
const computedActive = pathname === href || (href !== "/" && pathname.startsWith(href + "/"));
|
|
229
|
+
const active = activeProp ?? computedActive;
|
|
230
|
+
const baseClasses = cn("flex w-full items-center gap-2 rounded-md text-sm transition-colors", "focus-visible:ring-accent-9 focus:outline-none focus-visible:ring-2 focus-visible:ring-inset", isNested ? "relative min-h-9 py-2 ps-5 pe-2" : "min-h-9 px-2 py-2", active
|
|
231
|
+
? [
|
|
232
|
+
"bg-accent-11/10 text-accent-11",
|
|
233
|
+
isNested && [
|
|
234
|
+
"relative",
|
|
235
|
+
"before:absolute before:content-['']",
|
|
236
|
+
"before:left-2.5",
|
|
237
|
+
"before:top-1/2 before:-translate-y-1/2",
|
|
238
|
+
"before:h-4 before:w-px",
|
|
239
|
+
"before:rounded-full",
|
|
240
|
+
"before:bg-accent-11",
|
|
241
|
+
],
|
|
242
|
+
]
|
|
243
|
+
: "text-gray-12/70 hover:bg-gray-4/50 hover:text-gray-12", className);
|
|
244
|
+
if (asChild) {
|
|
245
|
+
const child = React.Children.only(children);
|
|
246
|
+
return React.cloneElement(child, {
|
|
247
|
+
className: cn(baseClasses, child.props.className),
|
|
248
|
+
"data-active": active,
|
|
249
|
+
"data-prefetch": prefetch,
|
|
250
|
+
...(external ? { target: "_blank", rel: "noopener noreferrer" } : null),
|
|
251
|
+
style: { ...(child.props.style ?? {}), textDecoration: "none" },
|
|
252
|
+
children: (_jsxs(_Fragment, { children: [icon && _jsx("span", { className: "shrink-0 [&>svg]:size-4", children: icon }), child.props.children, external && _jsx(ExternalLink, { className: "ms-auto size-3.5 opacity-50" })] })),
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
return (_jsxs(AriaLink, { href: href, target: external ? "_blank" : undefined, rel: external ? "noopener noreferrer" : undefined, "data-active": active, "data-prefetch": prefetch, className: baseClasses, children: [icon && _jsx("span", { className: "shrink-0 [&>svg]:size-4", children: icon }), children, external && _jsx(ExternalLink, { className: "ms-auto size-3.5 opacity-50" })] }));
|
|
256
|
+
}
|
|
257
|
+
export function SidebarFolder({ defaultOpen: defaultOpenProp, collapsible = true, active = false, children, className, ...props }) {
|
|
258
|
+
const { defaultOpenLevel } = useSidebar();
|
|
259
|
+
const depth = useFolderDepth() + 1;
|
|
260
|
+
const defaultOpen = collapsible === false ||
|
|
261
|
+
active ||
|
|
262
|
+
(defaultOpenProp ?? defaultOpenLevel >= depth);
|
|
263
|
+
const [open, setOpen] = useState(defaultOpen);
|
|
264
|
+
useOnChange(defaultOpen, (v) => {
|
|
265
|
+
if (v)
|
|
266
|
+
setOpen(v);
|
|
267
|
+
});
|
|
268
|
+
return (_jsx(Collapsible, { open: open, onOpenChange: setOpen, disabled: !collapsible, className: className, ...props, children: _jsx(FolderContext.Provider, { value: useMemo(() => ({ open, setOpen, depth, collapsible }), [collapsible, depth, open]), children: children }) }));
|
|
269
|
+
}
|
|
270
|
+
export function SidebarFolderTrigger({ children, className, ...props }) {
|
|
271
|
+
const folder = useFolder();
|
|
272
|
+
if (!folder)
|
|
273
|
+
return null;
|
|
274
|
+
const { open, collapsible } = folder;
|
|
275
|
+
if (collapsible) {
|
|
276
|
+
return (_jsxs(CollapsibleTrigger, { className: cn("flex min-h-9 w-full items-center gap-2 rounded-md px-2 py-2", "text-gray-11 text-sm transition-colors", "hover:bg-gray-4/50 hover:text-gray-12", "focus-visible:ring-accent-9 focus:outline-none focus-visible:ring-2", className), ...props, children: [children, _jsx(ChevronDown, { "data-icon": true, className: cn("ms-auto size-4 transition-transform", !open && "-rotate-90") })] }));
|
|
277
|
+
}
|
|
278
|
+
return (_jsx("div", { className: cn("text-gray-11 flex min-h-9 w-full items-center gap-2 px-2 py-2 text-sm", className), children: children }));
|
|
279
|
+
}
|
|
280
|
+
export function SidebarFolderLink({ children, href, external, active: activeProp, className, ...props }) {
|
|
281
|
+
const ref = useRef(null);
|
|
282
|
+
const folder = useFolder();
|
|
283
|
+
const { prefetch, pathname } = useSidebar();
|
|
284
|
+
if (!folder)
|
|
285
|
+
return null;
|
|
286
|
+
const { open, setOpen, collapsible } = folder;
|
|
287
|
+
const computedActive = pathname === href || (href !== "/" && pathname.startsWith(href + "/"));
|
|
288
|
+
const active = activeProp ?? computedActive;
|
|
289
|
+
useAutoScroll(active, ref);
|
|
290
|
+
const handleClick = (e) => {
|
|
291
|
+
if (!collapsible)
|
|
292
|
+
return;
|
|
293
|
+
const target = e.target;
|
|
294
|
+
const clickedToggle = target.closest("[data-folder-toggle]");
|
|
295
|
+
if (clickedToggle) {
|
|
296
|
+
e.preventDefault();
|
|
297
|
+
setOpen((v) => !v);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
setOpen(active ? !open : true);
|
|
301
|
+
};
|
|
302
|
+
return (_jsxs("a", { ref: ref, href: href, target: external ? "_blank" : undefined, rel: external ? "noopener noreferrer" : undefined, "data-active": active, "data-prefetch": prefetch, "aria-current": active ? "page" : undefined, onClick: handleClick, className: cn("flex min-h-9 w-full items-center gap-2 rounded-md px-2 py-2", "text-sm transition-colors", "hover:bg-gray-4/50 hover:text-gray-12", "focus-visible:ring-accent-9 focus:outline-none focus-visible:ring-2", active ? "bg-accent-11/10 text-accent-11" : "text-gray-11", className), ...props, children: [children, collapsible && (_jsx("span", { "data-folder-toggle": true, role: "presentation", className: "ms-auto inline-flex", children: _jsx(ChevronDown, { className: cn("size-4 transition-transform", !open && "-rotate-90") }) }))] }));
|
|
303
|
+
}
|
|
304
|
+
export function SidebarFolderContent({ className, children, ...props }) {
|
|
305
|
+
return (_jsx(CollapsibleContent, { className: cn("relative", "before:bg-gray-6 before:absolute before:inset-y-1 before:left-2.5 before:w-px", className), ...props, children: children }));
|
|
306
|
+
}
|
|
307
|
+
export function SidebarTrigger({ children, className, ...props }) {
|
|
308
|
+
const { setOpen } = useSidebar();
|
|
309
|
+
const { onPress, ...restProps } = props;
|
|
310
|
+
return (_jsx(Button, { mode: "icon", size: "md", intent: "secondary", variant: "ghost", "aria-label": "Open Sidebar", tooltip: "Open Sidebar", className: cn("text-gray-11 hover:text-gray-12", className), onPress: (e) => {
|
|
311
|
+
setOpen((prev) => !prev);
|
|
312
|
+
onPress?.(e);
|
|
313
|
+
}, onClick: () => {
|
|
314
|
+
setOpen((prev) => !prev);
|
|
315
|
+
}, ...restProps, children: children }));
|
|
316
|
+
}
|
|
317
|
+
export function SidebarCollapseTrigger({ className, ...props }) {
|
|
318
|
+
const { collapsed, setCollapsed } = useSidebar();
|
|
319
|
+
const { onPress, ...restProps } = props;
|
|
320
|
+
return (_jsx(Button, { size: "md", mode: "icon", variant: "ghost", intent: "secondary", "data-slot": "collapse-trigger", "aria-label": "Collapse Sidebar", tooltip: collapsed ? "Expand Sidebar" : "Collapse Sidebar", tooltipDelay: 1000, "data-collapsed": collapsed, onPress: (e) => {
|
|
321
|
+
setCollapsed((prev) => !prev);
|
|
322
|
+
onPress?.(e);
|
|
323
|
+
}, onClick: () => {
|
|
324
|
+
console.log("clicked");
|
|
325
|
+
setCollapsed((prev) => !prev);
|
|
326
|
+
}, className: className, ...restProps }));
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from "react";
|
|
2
|
+
export type SidebarNavNode = SidebarNavItem | SidebarNavFolder;
|
|
3
|
+
export type SidebarNavItem = {
|
|
4
|
+
type: "item";
|
|
5
|
+
to: string;
|
|
6
|
+
label: ReactNode;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
exact?: boolean;
|
|
9
|
+
key?: string;
|
|
10
|
+
};
|
|
11
|
+
export type SidebarNavFolder = {
|
|
12
|
+
type: "folder";
|
|
13
|
+
label: ReactNode;
|
|
14
|
+
icon?: ReactNode;
|
|
15
|
+
defaultOpen?: boolean;
|
|
16
|
+
items: SidebarNavNode[];
|
|
17
|
+
key?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function isActivePath(pathname: string, to: string, exact?: boolean): boolean;
|
|
20
|
+
export declare function SidebarNavTree({ nodes, pathname, renderLink, className, }: {
|
|
21
|
+
nodes: SidebarNavNode[];
|
|
22
|
+
pathname: string;
|
|
23
|
+
renderLink?: (node: SidebarNavItem, active: boolean) => ReactElement<any>;
|
|
24
|
+
className?: string;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=SidebarNavTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarNavTree.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarNavTree.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AASd,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,WAGzE;AAOD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE;IACD,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,CAAC,CAAA;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,2CAaA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cloneElement, isValidElement, } from "react";
|
|
4
|
+
import { SidebarFolder, SidebarFolderContent, SidebarFolderTrigger, SidebarItem, } from "./Sidebar";
|
|
5
|
+
export function isActivePath(pathname, to, exact) {
|
|
6
|
+
if (exact)
|
|
7
|
+
return pathname === to;
|
|
8
|
+
return pathname === to || (to !== "/" && pathname.startsWith(to + "/"));
|
|
9
|
+
}
|
|
10
|
+
function anyActive(node, pathname) {
|
|
11
|
+
if (node.type === "item")
|
|
12
|
+
return isActivePath(pathname, node.to, node.exact);
|
|
13
|
+
return node.items.some((n) => anyActive(n, pathname));
|
|
14
|
+
}
|
|
15
|
+
export function SidebarNavTree({ nodes, pathname, renderLink, className, }) {
|
|
16
|
+
return (_jsx("div", { className: className ?? "space-y-1", children: nodes.map((node, idx) => (_jsx(SidebarNavTreeNode, { node: node, pathname: pathname, renderLink: renderLink }, node.key ?? `${node.type}-${idx}`))) }));
|
|
17
|
+
}
|
|
18
|
+
function SidebarNavTreeNode({ node, pathname, renderLink, }) {
|
|
19
|
+
if (node.type === "item") {
|
|
20
|
+
const active = isActivePath(pathname, node.to, node.exact);
|
|
21
|
+
const linkEl = renderLink ? (renderLink(node, active)) : (_jsx("a", { href: node.to, "aria-current": active ? "page" : undefined, children: node.label }));
|
|
22
|
+
const linkWithA11y = isValidElement(linkEl)
|
|
23
|
+
? cloneElement(linkEl, {
|
|
24
|
+
"aria-current": active ? "page" : undefined,
|
|
25
|
+
})
|
|
26
|
+
: linkEl;
|
|
27
|
+
return (_jsx(SidebarItem, { asChild: true, icon: node.icon, active: active, children: linkWithA11y }));
|
|
28
|
+
}
|
|
29
|
+
const active = anyActive(node, pathname);
|
|
30
|
+
return (_jsxs(SidebarFolder, { defaultOpen: node.defaultOpen, active: active, children: [_jsxs(SidebarFolderTrigger, { className: "min-h-9 py-2", children: [node.icon, node.label] }), _jsx(SidebarFolderContent, { className: "mt-0.5", children: _jsx("div", { className: "space-y-0.5", children: node.items.map((child, idx) => (_jsx(SidebarNavTreeNode, { node: child, pathname: pathname, renderLink: renderLink }, child.key ?? `${child.type}-${idx}`))) }) })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=SidebarNavTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarNavTree.js","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarNavTree.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,YAAY,EACZ,cAAc,GAGf,MAAM,OAAO,CAAA;AAEd,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,GACZ,MAAM,WAAW,CAAA;AAsBlB,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,EAAU,EAAE,KAAe;IACxE,IAAI,KAAK;QAAE,OAAO,QAAQ,KAAK,EAAE,CAAA;IACjC,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB,EAAE,QAAgB;IACvD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,GAMV;IACC,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,IAAI,WAAW,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,KAAC,kBAAkB,IAEjB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,IAHjB,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAItC,CACH,CAAC,GACE,CACP,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,IAAI,EACJ,QAAQ,EACR,UAAU,GAKX;IACC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAC1B,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CACzB,CAAC,CAAC,CAAC,CACF,YAAG,IAAI,EAAE,IAAI,CAAC,EAAE,kBAAgB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YACxD,IAAI,CAAC,KAAK,GACT,CACL,CAAA;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,YAAY,CAAC,MAA2B,EAAE;gBACxC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aAC5C,CAAC;YACJ,CAAC,CAAC,MAAM,CAAA;QAEV,OAAO,CACL,KAAC,WAAW,IAAC,OAAO,QAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,YACjD,YAAY,GACD,CACf,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAExC,OAAO,CACL,MAAC,aAAa,IAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,aAC1D,MAAC,oBAAoB,IAAC,SAAS,EAAC,cAAc,aAC3C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,IACU,EAEvB,KAAC,oBAAoB,IAAC,SAAS,EAAC,QAAQ,YACtC,cAAK,SAAS,EAAC,aAAa,YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAC9B,KAAC,kBAAkB,IAEjB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,IAHjB,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAIxC,CACH,CAAC,GACE,GACe,IACT,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from "react";
|
|
2
|
+
export interface SidebarTab {
|
|
3
|
+
/**
|
|
4
|
+
* Redirect URL of the folder, usually the index page
|
|
5
|
+
*/
|
|
6
|
+
url: string;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Detect from a list of urls
|
|
12
|
+
*/
|
|
13
|
+
urls?: Set<string>;
|
|
14
|
+
unlisted?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface SidebarTabWithProps extends SidebarTab {
|
|
17
|
+
props?: ComponentProps<"a">;
|
|
18
|
+
}
|
|
19
|
+
export declare function isTabActive(tab: SidebarTab, pathname: string): boolean;
|
|
20
|
+
export interface SidebarTabsDropdownProps {
|
|
21
|
+
options: SidebarTabWithProps[];
|
|
22
|
+
placeholder?: ReactNode;
|
|
23
|
+
pathname?: string;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function SidebarTabsDropdown({ options, placeholder, pathname, className, }: SidebarTabsDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAY9E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,KAAK,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;CAC5B;AAiBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,WAAW,EACX,QAAa,EACb,SAAS,GACV,EAAE,wBAAwB,2CA2F1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { Popover, PopoverDialog, PopoverTrigger, } from "@eggspot/ui/components/Popover";
|
|
5
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
6
|
+
import { Check, ChevronsUpDown } from "lucide-react";
|
|
7
|
+
import { Button } from "../Button";
|
|
8
|
+
import { useSidebar } from "./Sidebar";
|
|
9
|
+
function normalize(url) {
|
|
10
|
+
return url.replace(/\/$/, "");
|
|
11
|
+
}
|
|
12
|
+
function isActive(url, pathname, nested) {
|
|
13
|
+
const normalizedUrl = normalize(url);
|
|
14
|
+
const normalizedPathname = normalize(pathname);
|
|
15
|
+
if (nested) {
|
|
16
|
+
return normalizedPathname.startsWith(normalizedUrl);
|
|
17
|
+
}
|
|
18
|
+
return normalizedPathname === normalizedUrl;
|
|
19
|
+
}
|
|
20
|
+
export function isTabActive(tab, pathname) {
|
|
21
|
+
if (tab.urls)
|
|
22
|
+
return tab.urls.has(normalize(pathname));
|
|
23
|
+
return isActive(tab.url, pathname, true);
|
|
24
|
+
}
|
|
25
|
+
export function SidebarTabsDropdown({ options, placeholder, pathname = "", className, }) {
|
|
26
|
+
const [open, setOpen] = useState(false);
|
|
27
|
+
const { closeOnRedirect } = useSidebar();
|
|
28
|
+
const selected = useMemo(() => {
|
|
29
|
+
for (let i = options.length - 1; i >= 0; i--) {
|
|
30
|
+
const item = options[i];
|
|
31
|
+
if (item && isTabActive(item, pathname)) {
|
|
32
|
+
return item;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}, [options, pathname]);
|
|
37
|
+
const handleClick = () => {
|
|
38
|
+
closeOnRedirect.current = false;
|
|
39
|
+
setOpen(false);
|
|
40
|
+
};
|
|
41
|
+
const selectedItem = selected ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "size-5 shrink-0 empty:hidden [&>svg]:size-full", children: selected.icon }), _jsx("div", { className: "flex-1 text-left", children: _jsx("p", { className: "text-sm font-medium", children: selected.title }) })] })) : (placeholder);
|
|
42
|
+
return (_jsxs(PopoverTrigger, { isOpen: open, onOpenChange: setOpen, children: [_jsx(Button, { mode: "default", size: "md", intent: "secondary", variant: "ghost", "aria-label": "Open Tabs Dropdown", className: className, rightIcon: _jsx(ChevronsUpDown, { className: "text-gray-11 ms-auto size-4 shrink-0" }), children: selectedItem }), _jsx(Popover, { placement: "bottom start", className: "w-[var(--trigger-width)]", children: _jsx(PopoverDialog, { className: "flex flex-col gap-0.5 p-1", children: options.map((item) => {
|
|
43
|
+
const active = selected && item.url === selected.url;
|
|
44
|
+
if (!active && item.unlisted)
|
|
45
|
+
return null;
|
|
46
|
+
return (_jsxs("a", { href: item.url, onClick: handleClick, ...item.props, className: cn("flex items-center gap-2 rounded-md p-2 text-sm transition-colors", "hover:bg-gray-4 hover:text-gray-12", "focus-visible:ring-accent-9 focus:outline-none focus-visible:ring-2", active && "bg-accent-4 text-accent-11", item.props?.className), children: [_jsx("div", { className: "size-5 shrink-0 empty:hidden [&>svg]:size-full", children: item.icon }), _jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "leading-none font-medium", children: item.title }), item.description && (_jsx("p", { className: "text-gray-11 mt-1 text-xs", children: item.description }))] }), _jsx(Check, { className: cn("text-accent-11 ms-auto size-4 shrink-0", !active && "invisible") })] }, item.url));
|
|
47
|
+
}) }) })] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarSeparator, SidebarTrigger, SidebarViewport, useAutoScroll, useFolder, useFolderDepth, useSidebar, type SidebarFolderLinkProps, type SidebarFolderProps, type SidebarItemProps, type SidebarProviderProps, type SidebarViewportProps, } from "./Sidebar";
|
|
2
|
+
export { SidebarPageTree, type PageTreeFolder, type PageTreeItem, type PageTreeNode, type PageTreeRoot, type PageTreeSeparator, type SidebarPageTreeComponents, } from "./PageTree";
|
|
3
|
+
export { SidebarLinkItem, type LinkItemType } from "./LinkItem";
|
|
4
|
+
export { isTabActive, SidebarTabsDropdown, type SidebarTab, type SidebarTabsDropdownProps, type SidebarTabWithProps, } from "./Tabs";
|
|
5
|
+
export { isActivePath, SidebarNavTree, type SidebarNavFolder, type SidebarNavItem, type SidebarNavNode, } from "./SidebarNavTree";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EAEtB,cAAc,EACd,oBAAoB,EAEpB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EAEX,eAAe,EAEf,gBAAgB,EAEhB,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,cAAc,EAEd,UAAU,EACV,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,GAC/B,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAG/D,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACzB,MAAM,QAAQ,CAAA;AAEf,OAAO,EACL,YAAY,EACZ,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Core sidebar components
|
|
2
|
+
export { SidebarCollapseTrigger,
|
|
3
|
+
// Content components
|
|
4
|
+
SidebarContent, SidebarDrawerContent,
|
|
5
|
+
// Drawer (mobile)
|
|
6
|
+
SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem,
|
|
7
|
+
// Provider
|
|
8
|
+
SidebarProvider,
|
|
9
|
+
// Navigation components
|
|
10
|
+
SidebarSeparator,
|
|
11
|
+
// Triggers
|
|
12
|
+
SidebarTrigger, SidebarViewport, useAutoScroll, useFolder, useFolderDepth,
|
|
13
|
+
// Hooks
|
|
14
|
+
useSidebar, } from "./Sidebar";
|
|
15
|
+
// Page tree renderer
|
|
16
|
+
export { SidebarPageTree, } from "./PageTree";
|
|
17
|
+
// Link item renderer
|
|
18
|
+
export { SidebarLinkItem } from "./LinkItem";
|
|
19
|
+
// Tabs dropdown
|
|
20
|
+
export { isTabActive, SidebarTabsDropdown, } from "./Tabs";
|
|
21
|
+
export { isActivePath, SidebarNavTree, } from "./SidebarNavTree";
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Sidebar/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EACL,sBAAsB;AACtB,qBAAqB;AACrB,cAAc,EACd,oBAAoB;AACpB,kBAAkB;AAClB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW;AACX,WAAW;AACX,eAAe;AACf,wBAAwB;AACxB,gBAAgB;AAChB,WAAW;AACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,SAAS,EACT,cAAc;AACd,QAAQ;AACR,UAAU,GAOX,MAAM,WAAW,CAAA;AAElB,qBAAqB;AACrB,OAAO,EACL,eAAe,GAOhB,MAAM,YAAY,CAAA;AAEnB,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAqB,MAAM,YAAY,CAAA;AAE/D,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,mBAAmB,GAIpB,MAAM,QAAQ,CAAA;AAEf,OAAO,EACL,YAAY,EACZ,cAAc,GAIf,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Toaster, ToastT } from "sonner";
|
|
2
|
+
interface ToastProps {
|
|
3
|
+
id: string | number;
|
|
4
|
+
title: string;
|
|
5
|
+
description?: React.ReactNode;
|
|
6
|
+
variant?: "success" | "error" | "info" | "warning" | "neutral";
|
|
7
|
+
}
|
|
8
|
+
declare const toast: {
|
|
9
|
+
success: (props: Omit<ToastProps, "id" | "variant">, options?: Pick<ToastT, "position" | "duration">) => string | number;
|
|
10
|
+
error: (props: Omit<ToastProps, "id" | "variant">, options?: Pick<ToastT, "position" | "duration">) => string | number;
|
|
11
|
+
info: (props: Omit<ToastProps, "id" | "variant">, options?: Pick<ToastT, "position" | "duration">) => string | number;
|
|
12
|
+
warning: (props: Omit<ToastProps, "id" | "variant">, options?: Pick<ToastT, "position" | "duration">) => string | number;
|
|
13
|
+
neutral: (props: Omit<ToastProps, "id" | "variant">, options?: Pick<ToastT, "position" | "duration">) => string | number;
|
|
14
|
+
};
|
|
15
|
+
export { toast, Toaster };
|
|
16
|
+
//# sourceMappingURL=Sonner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sonner.d.ts","sourceRoot":"","sources":["../../src/components/Sonner.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE9D,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAC/D;AAsED,QAAA,MAAM,KAAK;qBAnBA,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,YAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;mBADvC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,YAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;kBADvC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,YAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;qBADvC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,YAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;qBADvC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,YAChC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CAwBjD,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from "@eggspot/ui/components/Button";
|
|
4
|
+
import { AlertTriangleIcon, CircleCheckIcon, CircleXIcon, InfoIcon, XIcon, } from "lucide-react";
|
|
5
|
+
import { toast as sonnerToast, Toaster } from "sonner";
|
|
6
|
+
/** A fully custom toast that still maintains the animations and interactions. */
|
|
7
|
+
function Toast(props) {
|
|
8
|
+
const { title, description, id, variant = "neutral" } = props;
|
|
9
|
+
return (_jsxs("div", { className: "group bg-gray-2 text-gray-12 relative flex min-h-[64px] w-full items-center gap-3 rounded-xl border px-4 py-2.5 pr-7 shadow-lg md:w-[364px]", children: [_jsx(ToastIcon, { variant: variant }), _jsx("div", { className: "flex flex-1 items-center", children: _jsxs("div", { className: "w-full", children: [_jsx("p", { className: "text-gray-12 text-sm font-semibold", children: title }), description && (_jsx("div", { className: "text-gray-11 mt-0.5 text-sm", children: description }))] }) }), _jsx(Button, { size: "sm", mode: "icon", variant: "ghost", onClick: () => sonnerToast.dismiss(id), className: "absolute top-1.5 right-1.5 opacity-0 transition-opacity group-hover:opacity-100", children: _jsx(XIcon, { className: "text-gray-11 h-4 w-4" }) })] }));
|
|
10
|
+
}
|
|
11
|
+
function ToastIcon({ variant }) {
|
|
12
|
+
if (variant === "neutral") {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return (_jsxs(_Fragment, { children: [variant === "success" && (_jsx(CircleCheckIcon, { className: "text-success-9 size-5" })), variant === "error" && _jsx(CircleXIcon, { className: "text-error-9 size-5" }), variant === "info" && _jsx(InfoIcon, { className: "text-info-9 size-5" }), variant === "warning" && (_jsx(AlertTriangleIcon, { className: "text-warning-9 size-5" }))] }));
|
|
16
|
+
}
|
|
17
|
+
function createToast(variant) {
|
|
18
|
+
return (props, options = {}) => {
|
|
19
|
+
return sonnerToast.custom((id) => _jsx(Toast, { id: id, variant: variant, ...props }), {
|
|
20
|
+
position: "bottom-right",
|
|
21
|
+
...options,
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const success = createToast("success");
|
|
26
|
+
const error = createToast("error");
|
|
27
|
+
const info = createToast("info");
|
|
28
|
+
const warning = createToast("warning");
|
|
29
|
+
const neutral = createToast("neutral");
|
|
30
|
+
const toast = {
|
|
31
|
+
success,
|
|
32
|
+
error,
|
|
33
|
+
info,
|
|
34
|
+
warning,
|
|
35
|
+
neutral,
|
|
36
|
+
};
|
|
37
|
+
export { toast, Toaster };
|
|
38
|
+
//# sourceMappingURL=Sonner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sonner.js","sourceRoot":"","sources":["../../src/components/Sonner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,OAAO,EAAU,MAAM,QAAQ,CAAA;AAS9D,iFAAiF;AACjF,SAAS,KAAK,CAAC,KAAiB;IAC9B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,KAAK,CAAA;IAE7D,OAAO,CACL,eAAK,SAAS,EAAC,6IAA6I,aAC1J,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI,EAC/B,cAAK,SAAS,EAAC,0BAA0B,YACvC,eAAK,SAAS,EAAC,QAAQ,aACrB,YAAG,SAAS,EAAC,oCAAoC,YAAE,KAAK,GAAK,EAC5D,WAAW,IAAI,CACd,cAAK,SAAS,EAAC,6BAA6B,YAAE,WAAW,GAAO,CACjE,IACG,GACF,EACN,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EACtC,SAAS,EAAC,iFAAiF,YAE3F,KAAC,KAAK,IAAC,SAAS,EAAC,sBAAsB,GAAG,GACnC,IACL,CACP,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,OAAO,EAAsC;IAChE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,8BACG,OAAO,KAAK,SAAS,IAAI,CACxB,KAAC,eAAe,IAAC,SAAS,EAAC,uBAAuB,GAAG,CACtD,EACA,OAAO,KAAK,OAAO,IAAI,KAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,GAAG,EACtE,OAAO,KAAK,MAAM,IAAI,KAAC,QAAQ,IAAC,SAAS,EAAC,oBAAoB,GAAG,EACjE,OAAO,KAAK,SAAS,IAAI,CACxB,KAAC,iBAAiB,IAAC,SAAS,EAAC,uBAAuB,GAAG,CACxD,IACA,CACJ,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAA8B;IACjD,OAAO,CACL,KAAyC,EACzC,UAAiD,EAAE,EACnD,EAAE;QACF,OAAO,WAAW,CAAC,MAAM,CACvB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAC,KAAK,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAM,KAAK,GAAI,EACtD;YACE,QAAQ,EAAE,cAAc;YACxB,GAAG,OAAO;SACX,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AACtC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AAClC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAChC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AACtC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAEtC,MAAM,KAAK,GAAG;IACZ,OAAO;IACP,KAAK;IACL,IAAI;IACJ,OAAO;IACP,OAAO;CACR,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA"}
|