@eggspot/ui 0.0.0 → 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 +72 -24
- package/eslint.config.js +0 -4
- 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 -11
- package/tsconfig.lint.json +0 -8
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FieldGroup } from "@eggspot/ui/components/Field";
|
|
3
|
+
import { Label } from "@eggspot/ui/components/Label";
|
|
4
|
+
import { Separator } from "@eggspot/ui/components/Separator";
|
|
5
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
6
|
+
import { ChevronDown, ChevronUp } from "lucide-react";
|
|
7
|
+
import { Button as AriaButton, Input as AriaInput, NumberField as AriaNumberField, composeRenderProps, } from "react-aria-components";
|
|
8
|
+
function NumberFieldInput({ className, ...props }) {
|
|
9
|
+
return (_jsx(AriaInput, { inputMode: "numeric", className: composeRenderProps(className, (className) => cn("placeholder:text-gray-8 w-fit min-w-0 flex-1 border-transparent pr-2 outline-0 [&::-webkit-search-cancel-button]:hidden", className)), ...props }));
|
|
10
|
+
}
|
|
11
|
+
function NumberFieldSteppers({ className, ...props }) {
|
|
12
|
+
return (_jsxs("div", { className: cn("absolute right-0 flex items-center", className), ...props, children: [_jsx(Separator, { orientation: "vertical", className: "h-5" }), _jsxs("div", { className: "flex flex-col pr-0.5", children: [_jsx(NumberFieldStepper, { slot: "increment", "aria-label": "Increment", children: _jsx(ChevronUp, { "aria-hidden": true, className: "size-4 translate-y-px" }) }), _jsx(NumberFieldStepper, { slot: "decrement", "aria-label": "Decrement", children: _jsx(ChevronDown, { "aria-hidden": true, className: "size-4 -translate-y-px" }) })] })] }));
|
|
13
|
+
}
|
|
14
|
+
function NumberFieldStepper({ className, ...props }) {
|
|
15
|
+
return (_jsx(AriaButton, { className: composeRenderProps(className, (className) => cn("flex items-center justify-center px-1 transition-colors", "[&>svg]:text-gray-11 w-auto grow",
|
|
16
|
+
/** Hover */
|
|
17
|
+
"data-hovered:[&>svg]:text-gray-12",
|
|
18
|
+
/** Pressed */
|
|
19
|
+
"data-pressed:scale-95", className)), ...props }));
|
|
20
|
+
}
|
|
21
|
+
function NumberInput({ className, showStepper = false, placeholder, label, withAsterisk, tooltip, formatOptions, ...props }) {
|
|
22
|
+
return (_jsxs(AriaNumberField, { formatOptions: { useGrouping: false, ...formatOptions }, className: composeRenderProps(className, (className) => cn("group flex flex-col gap-1", className)), ...props, children: [label && (_jsx(Label, { withAsterisk: withAsterisk, tooltip: tooltip, children: label })), _jsxs(FieldGroup, { children: [_jsx(NumberFieldInput, { placeholder: placeholder }), showStepper && _jsx(NumberFieldSteppers, {})] })] }));
|
|
23
|
+
}
|
|
24
|
+
export { NumberInput };
|
|
25
|
+
//# sourceMappingURL=NumberInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../src/components/NumberInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EACL,MAAM,IAAI,UAAU,EAEpB,KAAK,IAAI,SAAS,EAElB,WAAW,IAAI,eAAe,EAE9B,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,SAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IAC/D,OAAO,CACL,KAAC,SAAS,IACR,SAAS,EAAC,SAAS,EACnB,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CACrD,EAAE,CACA,yHAAyH,EACzH,SAAS,CACV,CACF,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACoB;IAC5B,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,aAET,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,KAAK,GAAG,EACpD,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,kBAAkB,IAAC,IAAI,EAAC,WAAW,gBAAY,WAAW,YACzD,KAAC,SAAS,yBAAa,SAAS,EAAC,uBAAuB,GAAG,GACxC,EACrB,KAAC,kBAAkB,IAAC,IAAI,EAAC,WAAW,gBAAY,WAAW,YACzD,KAAC,WAAW,yBAAa,SAAS,EAAC,wBAAwB,GAAG,GAC3C,IACjB,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB;IAClE,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CACrD,EAAE,CACA,yDAAyD,EACzD,kCAAkC;QAClC,YAAY;QACZ,mCAAmC;QACnC,cAAc;QACd,uBAAuB,EACvB,SAAS,CACV,CACF,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAUD,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,EACX,KAAK,EACL,YAAY,EACZ,OAAO,EACP,aAAa,EACb,GAAG,KAAK,EACS;IACjB,OAAO,CACL,MAAC,eAAe,IACd,aAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,EACvD,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CACrD,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAC3C,KACG,KAAK,aAER,KAAK,IAAI,CACR,KAAC,KAAK,IAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,YAChD,KAAK,GACA,CACT,EACD,MAAC,UAAU,eACT,KAAC,gBAAgB,IAAC,WAAW,EAAE,WAAW,GAAI,EAC7C,WAAW,IAAI,KAAC,mBAAmB,KAAG,IAC5B,IACG,CACnB,CAAA;AACH,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DialogProps as AriaDialogProps, DialogTrigger as AriaDialogTrigger, PopoverProps as AriaPopoverProps } from "react-aria-components";
|
|
2
|
+
declare const PopoverTrigger: typeof AriaDialogTrigger;
|
|
3
|
+
declare const Popover: ({ className, offset, animateIn, animateOut, ...props }: AriaPopoverProps & {
|
|
4
|
+
animateIn?: boolean;
|
|
5
|
+
animateOut?: boolean;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function PopoverDialog({ className, ...props }: AriaDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Popover, PopoverDialog, PopoverTrigger };
|
|
9
|
+
//# sourceMappingURL=Popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,WAAW,IAAI,eAAe,EAC9B,aAAa,IAAI,iBAAiB,EAElC,YAAY,IAAI,gBAAgB,EAEjC,MAAM,uBAAuB,CAAA;AAE9B,QAAA,MAAM,cAAc,0BAAoB,CAAA;AAExC,QAAA,MAAM,OAAO,GAAI,wDAMd,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,4CAiBlE,CAAA;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAE9D;AAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
4
|
+
import { Dialog as AriaDialog, DialogTrigger as AriaDialogTrigger, Popover as AriaPopover, composeRenderProps, } from "react-aria-components";
|
|
5
|
+
const PopoverTrigger = AriaDialogTrigger;
|
|
6
|
+
const Popover = ({ className, offset = 4, animateIn = true, animateOut = true, ...props }) => (_jsx(AriaPopover, { offset: offset, className: composeRenderProps(className, (className) => cn("bg-gray-2 text-gray-12 z-50 rounded-lg border shadow-lg outline-none",
|
|
7
|
+
/* Entering */
|
|
8
|
+
animateIn && "data-[entering]:animate-in data-[entering]:fade-in-0",
|
|
9
|
+
/* Exiting */
|
|
10
|
+
animateOut && "data-[exiting]:animate-out data-[exiting]:fade-out-0",
|
|
11
|
+
/* Placement */
|
|
12
|
+
"data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2", className)), ...props }));
|
|
13
|
+
function PopoverDialog({ className, ...props }) {
|
|
14
|
+
return _jsx(AriaDialog, { className: cn("p-3.5 outline-0", className), ...props });
|
|
15
|
+
}
|
|
16
|
+
export { Popover, PopoverDialog, PopoverTrigger };
|
|
17
|
+
//# sourceMappingURL=Popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/components/Popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EACL,MAAM,IAAI,UAAU,EAEpB,aAAa,IAAI,iBAAiB,EAClC,OAAO,IAAI,WAAW,EAEtB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAA;AAExC,MAAM,OAAO,GAAG,CAAC,EACf,SAAS,EACT,MAAM,GAAG,CAAC,EACV,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EACyD,EAAE,EAAE,CAAC,CACtE,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CACrD,EAAE,CACA,sEAAsE;IACtE,cAAc;IACd,SAAS,IAAI,sDAAsD;IACnE,aAAa;IACb,UAAU,IAAI,sDAAsD;IACpE,eAAe;IACf,iLAAiL,EACjL,SAAS,CACV,CACF,KACG,KAAK,GACT,CACH,CAAA;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB;IAC7D,OAAO,KAAC,UAAU,IAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAA;AAC/E,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UIProviderProps {
|
|
2
|
+
children?: React.ReactNode;
|
|
3
|
+
locale?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The UIProvider component supplies locale and theme context to the application, as well as toaster and confirm dialog functionality.
|
|
7
|
+
*/
|
|
8
|
+
export declare function UIProvider({ children }: UIProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/components/Provider.tsx"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAQvD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ConfirmDialog } from "@eggspot/ui/components/ConfirmDialog";
|
|
4
|
+
import { Toaster } from "@eggspot/ui/components/Sonner";
|
|
5
|
+
/**
|
|
6
|
+
* The UIProvider component supplies locale and theme context to the application, as well as toaster and confirm dialog functionality.
|
|
7
|
+
*/
|
|
8
|
+
export function UIProvider({ children }) {
|
|
9
|
+
return (_jsxs(_Fragment, { children: [children, _jsx(Toaster, {}), _jsx(ConfirmDialog, {})] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/components/Provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAOvD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAmB;IACtD,OAAO,CACL,8BACG,QAAQ,EACT,KAAC,OAAO,KAAG,EACX,KAAC,aAAa,KAAG,IAChB,CACJ,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import { RadioGroupProps as AriaRadioGroupProps, RadioProps as AriaRadioProps } from "react-aria-components";
|
|
3
|
+
declare function BaseRadioGroup({ className, ...props }: AriaRadioGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare const radioVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "card" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
|
+
declare function Radio({ className, children, variant, ...props }: AriaRadioProps & VariantProps<typeof radioVariants>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
interface RadioOption {
|
|
9
|
+
value: string | number;
|
|
10
|
+
label: string;
|
|
11
|
+
}
|
|
12
|
+
interface RadioGroupProps<T extends RadioOption> extends Omit<AriaRadioGroupProps, "value" | "onChange" | "defaultValue"> {
|
|
13
|
+
/** The label for the radio group. */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** The options for the radio group. */
|
|
16
|
+
options: Array<T>;
|
|
17
|
+
/** The variant for the radio group. */
|
|
18
|
+
variant?: "default" | "card";
|
|
19
|
+
/** The class name for the radio group. */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Whether to show an asterisk for the label. */
|
|
22
|
+
withAsterisk?: boolean;
|
|
23
|
+
/** The tooltip for the radio group. */
|
|
24
|
+
tooltip?: React.ReactNode;
|
|
25
|
+
/** Custom rendering function for each option in the radio group. */
|
|
26
|
+
renderOption?: (option: T) => React.ReactNode;
|
|
27
|
+
/** If this prop is set, the radio group operates in a controlled manner and uses this value as its state. */
|
|
28
|
+
value?: T;
|
|
29
|
+
/** If this prop is set, the radio group will call this function with the new value whenever the value changes. */
|
|
30
|
+
onChange?: (value: T | undefined) => void;
|
|
31
|
+
/** Initial value used when the component is uncontrolled. */
|
|
32
|
+
defaultValue?: T;
|
|
33
|
+
}
|
|
34
|
+
declare function RadioGroup<T extends RadioOption>({ options, renderOption, variant, className, label, withAsterisk, tooltip, value: controlledValue, onChange: controlledOnChange, defaultValue, ...props }: RadioGroupProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export { BaseRadioGroup, Radio, RadioGroup };
|
|
36
|
+
export type { RadioGroupProps, RadioOption };
|
|
37
|
+
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../src/components/RadioGroup.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAGL,eAAe,IAAI,mBAAmB,EACtC,UAAU,IAAI,cAAc,EAE7B,MAAM,uBAAuB,CAAA;AAE9B,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAUnE;AAED,QAAA,MAAM,aAAa;;mFAyBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,cAAc,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,2CAsCrD;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,eAAe,CAAC,CAAC,SAAS,WAAW,CAC7C,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IACxE,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,uCAAuC;IACvC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAEjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAE5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,iDAAiD;IACjD,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,uCAAuC;IACvC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAE7C,6GAA6G;IAC7G,KAAK,CAAC,EAAE,CAAC,CAAA;IAET,kHAAkH;IAClH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAEzC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB;AAED,iBAAS,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,EACzC,OAAO,EACP,YAAY,EACZ,OAAmB,EACnB,SAAS,EACT,KAAK,EACL,YAAY,EACZ,OAAO,EACP,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,CAAC,CAAC,2CAsCpB;AAED,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Label } from "@eggspot/ui/components/Label";
|
|
4
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
5
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
import { Circle } from "lucide-react";
|
|
8
|
+
import { Radio as AriaRadio, RadioGroup as AriaRadioGroup, composeRenderProps, } from "react-aria-components";
|
|
9
|
+
function BaseRadioGroup({ className, ...props }) {
|
|
10
|
+
return (_jsx(AriaRadioGroup, { "aria-label": "radio", className: composeRenderProps(className, (className, renderProps) => cn("group/radiogroup flex flex-col flex-wrap gap-2", className)), ...props }));
|
|
11
|
+
}
|
|
12
|
+
const radioVariants = cva([
|
|
13
|
+
"group/radio flex cursor-pointer items-center text-sm",
|
|
14
|
+
/* Disabled */
|
|
15
|
+
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-70",
|
|
16
|
+
/* Invalid */
|
|
17
|
+
"data-[invalid]:text-error-11",
|
|
18
|
+
], {
|
|
19
|
+
variants: {
|
|
20
|
+
variant: {
|
|
21
|
+
default: ["group/default gap-x-2"],
|
|
22
|
+
card: [
|
|
23
|
+
"gap-x-3.5",
|
|
24
|
+
"border-gray-7 rounded-md border p-3.5",
|
|
25
|
+
/* Selected */
|
|
26
|
+
"bg-gray-2 data-selected:border-accent-9 data-selected:bg-accent-2 data-selected:border-1",
|
|
27
|
+
/* Hovered */
|
|
28
|
+
"data-hovered:border-gray-8",
|
|
29
|
+
/* Focus Visible */
|
|
30
|
+
"ring-offset-2 data-focus-visible:ring-2",
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
function Radio({ className, children, variant = "default", ...props }) {
|
|
36
|
+
return (_jsx(AriaRadio, { className: radioVariants({ variant }), ...props, children: composeRenderProps(children, (children, renderProps) => (_jsxs(_Fragment, { children: [_jsx("span", { className: cn("transition-colors", "bg-gray-2 text-accent-contrast ring-offset-gray-1 flex aspect-square size-4 items-center justify-center rounded-full border",
|
|
37
|
+
/* Focus */
|
|
38
|
+
"group-data-[focused]/radio:outline-none",
|
|
39
|
+
/* Focus Visible */
|
|
40
|
+
"group-data-[focus-visible]/default:ring-2 group-data-[focus-visible]/default:ring-offset-2",
|
|
41
|
+
/* Selected */
|
|
42
|
+
"group-data-[selected]/radio:bg-accent-9 group-data-[selected]/radio:border-accent-9",
|
|
43
|
+
/* Hovered */
|
|
44
|
+
"group-data-hovered/radio:border-gray-8",
|
|
45
|
+
/* Pressed */
|
|
46
|
+
"group-data-pressed/radio:scale-[0.95]",
|
|
47
|
+
/* Selected Dark */
|
|
48
|
+
"dark:group-data-[selected]/radio:border-none",
|
|
49
|
+
/* Disabled */
|
|
50
|
+
"group-data-[disabled]/radio:cursor-not-allowed group-data-[disabled]/radio:opacity-50"), children: renderProps.isSelected && (_jsx(Circle, { className: cn("animate-in fade-in-0 zoom-in-60 size-1.5 fill-current text-current") })) }), children] }))) }));
|
|
51
|
+
}
|
|
52
|
+
function RadioGroup({ options, renderOption, variant = "default", className, label, withAsterisk, tooltip, value: controlledValue, onChange: controlledOnChange, defaultValue, ...props }) {
|
|
53
|
+
const [value, onChange] = useControllableState({
|
|
54
|
+
prop: controlledValue,
|
|
55
|
+
defaultProp: defaultValue,
|
|
56
|
+
onChange: controlledOnChange,
|
|
57
|
+
});
|
|
58
|
+
return (_jsxs(BaseRadioGroup, { value: JSON.stringify(value), onChange: (v) => onChange(JSON.parse(v)), ...props, children: [label && (_jsx(Label, { withAsterisk: withAsterisk, tooltip: tooltip, children: label })), _jsx("div", { className: cn("grid", variant === "card" && "gap-2.5", variant === "default" && "gap-1.5", className), children: options.map((option) => (_jsx(Radio, { value: JSON.stringify(option), variant: variant, children: renderOption ? renderOption(option) : option.label }, option.value))) })] }));
|
|
59
|
+
}
|
|
60
|
+
export { BaseRadioGroup, Radio, RadioGroup };
|
|
61
|
+
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../src/components/RadioGroup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AriaResizable from "react-resizable-panels";
|
|
3
|
+
declare function ResizablePanelGroup({ className, ...props }: React.ComponentProps<typeof AriaResizable.PanelGroup>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare const ResizablePanel: React.ForwardRefExoticComponent<Omit<Omit<React.HTMLAttributes<HTMLSpanElement | HTMLElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLDivElement | HTMLButtonElement | HTMLSelectElement | HTMLOptionElement | HTMLOptGroupElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLHeadingElement | HTMLLabelElement | HTMLInputElement | HTMLParagraphElement | HTMLTextAreaElement | HTMLFormElement | HTMLObjectElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLLegendElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOutputElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTemplateElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLUListElement | HTMLVideoElement>, "id" | "onResize"> & {
|
|
5
|
+
className?: string;
|
|
6
|
+
collapsedSize?: number | undefined;
|
|
7
|
+
collapsible?: boolean | undefined;
|
|
8
|
+
defaultSize?: number | undefined;
|
|
9
|
+
id?: string;
|
|
10
|
+
maxSize?: number | undefined;
|
|
11
|
+
minSize?: number | undefined;
|
|
12
|
+
onCollapse?: AriaResizable.PanelOnCollapse;
|
|
13
|
+
onExpand?: AriaResizable.PanelOnExpand;
|
|
14
|
+
onResize?: AriaResizable.PanelOnResize;
|
|
15
|
+
order?: number;
|
|
16
|
+
style?: object;
|
|
17
|
+
tagName?: keyof HTMLElementTagNameMap | undefined;
|
|
18
|
+
} & {
|
|
19
|
+
children?: import("react").ReactNode | undefined;
|
|
20
|
+
} & React.RefAttributes<AriaResizable.ImperativePanelHandle>, "ref"> & React.RefAttributes<AriaResizable.ImperativePanelHandle>>;
|
|
21
|
+
declare function ResizableHandle({ withHandle, className, ...props }: React.ComponentProps<typeof AriaResizable.PanelResizeHandle> & {
|
|
22
|
+
withHandle?: boolean;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
|
|
25
|
+
//# sourceMappingURL=Resizable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resizable.d.ts","sourceRoot":"","sources":["../../src/components/Resizable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,aAAa,MAAM,wBAAwB,CAAA;AAEvD,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,UAAU,CAAC,2CAYvD;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;gIAOlB,CAAA;AAIF,iBAAS,eAAe,CAAC,EACvB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,iBAAiB,CAAC,GAAG;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,2CA6BA;AAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
4
|
+
import { GripVerticalIcon } from "lucide-react";
|
|
5
|
+
import * as AriaResizable from "react-resizable-panels";
|
|
6
|
+
function ResizablePanelGroup({ className, ...props }) {
|
|
7
|
+
return (_jsx(AriaResizable.PanelGroup, { "data-slot": "resizable-panel-group", className: cn("flex h-full w-full", "data-[panel-group-direction=vertical]:flex-col", className), ...props }));
|
|
8
|
+
}
|
|
9
|
+
const ResizablePanel = React.forwardRef((props, ref) => {
|
|
10
|
+
return (_jsx(AriaResizable.Panel, { ref: ref, "data-slot": "resizable-panel", ...props }));
|
|
11
|
+
});
|
|
12
|
+
ResizablePanel.displayName = "ResizablePanel";
|
|
13
|
+
function ResizableHandle({ withHandle, className, ...props }) {
|
|
14
|
+
return (_jsx(AriaResizable.PanelResizeHandle, { "data-slot": "resizable-handle", className: cn("relative flex items-center justify-center", "data-[panel-group-direction=horizontal]:h-full data-[panel-group-direction=horizontal]:w-px data-[panel-group-direction=horizontal]:self-center", "data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full", "bg-gray-6",
|
|
15
|
+
// "cursor-grab! data-resize-handle-active:cursor-grabbing!",
|
|
16
|
+
"hover:bg-gray-7 data-resize-handle-active:bg-accent-9", "transition-colors duration-150", className), ...props, children: withHandle && (_jsx("div", { className: cn("bg-gray-5 text-gray-11 pointer-events-none z-10 flex h-5 w-3 items-center justify-center rounded-full shadow-sm", "opacity-0 transition-opacity group-hover:opacity-100", "data-[panel-group-direction=vertical]:rotate-90"), children: _jsx(GripVerticalIcon, { className: "size-3", "aria-hidden": "true" }) })) }));
|
|
17
|
+
}
|
|
18
|
+
export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
|
|
19
|
+
//# sourceMappingURL=Resizable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resizable.js","sourceRoot":"","sources":["../../src/components/Resizable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,aAAa,MAAM,wBAAwB,CAAA;AAEvD,SAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,aAAa,CAAC,UAAU,iBACb,uBAAuB,EACjC,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,gDAAgD,EAChD,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAGrC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,OAAO,CACL,KAAC,aAAa,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,eAAY,iBAAiB,KAAK,KAAK,GAAI,CACzE,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAE7C,SAAS,eAAe,CAAC,EACvB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EAGT;IACC,OAAO,CACL,KAAC,aAAa,CAAC,iBAAiB,iBACpB,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,iJAAiJ,EACjJ,yFAAyF,EACzF,WAAW;QACX,6DAA6D;QAC7D,uDAAuD,EACvD,gCAAgC,EAChC,SAAS,CACV,KACG,KAAK,YAER,UAAU,IAAI,CACb,cACE,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,sDAAsD,EACtD,iDAAiD,CAClD,YAED,KAAC,gBAAgB,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,GACtD,CACP,GAC+B,CACnC,CAAA;AACH,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
3
|
+
declare function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export { ScrollArea, ScrollBar };
|
|
6
|
+
//# sourceMappingURL=ScrollArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../src/components/ScrollArea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAA;AAElE,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAiBvD;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBtE;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
4
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
5
|
+
function ScrollArea({ className, children, ...props }) {
|
|
6
|
+
return (_jsxs(ScrollAreaPrimitive.Root, { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { "data-slot": "scroll-area-viewport", className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
|
|
7
|
+
}
|
|
8
|
+
function ScrollBar({ className, orientation = "vertical", ...props }) {
|
|
9
|
+
return (_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, { "data-slot": "scroll-area-scrollbar", orientation: orientation, className: cn("flex touch-none p-px transition-colors select-none", orientation === "vertical" &&
|
|
10
|
+
"h-full w-2.5 border-l border-l-transparent", orientation === "horizontal" &&
|
|
11
|
+
"h-2.5 flex-col border-t border-t-transparent", className), ...props, children: _jsx(ScrollAreaPrimitive.ScrollAreaThumb, { "data-slot": "scroll-area-thumb", className: "bg-gray-11/20 relative flex-1 rounded-full" }) }));
|
|
12
|
+
}
|
|
13
|
+
export { ScrollArea, ScrollBar };
|
|
14
|
+
//# sourceMappingURL=ScrollArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.js","sourceRoot":"","sources":["../../src/components/ScrollArea.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC1C,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAA;AAElE,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,MAAC,mBAAmB,CAAC,IAAI,iBACb,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,KAChC,KAAK,aAET,KAAC,mBAAmB,CAAC,QAAQ,iBACjB,sBAAsB,EAChC,SAAS,EAAC,oJAAoJ,YAE7J,QAAQ,GACoB,EAC/B,KAAC,SAAS,KAAG,EACb,KAAC,mBAAmB,CAAC,MAAM,KAAG,IACL,CAC5B,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAW,GAAG,UAAU,EACxB,GAAG,KAAK,EAC6D;IACrE,OAAO,CACL,KAAC,mBAAmB,CAAC,mBAAmB,iBAC5B,uBAAuB,EACjC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,WAAW,KAAK,UAAU;YACxB,4CAA4C,EAC9C,WAAW,KAAK,YAAY;YAC1B,8CAA8C,EAChD,SAAS,CACV,KACG,KAAK,YAET,KAAC,mBAAmB,CAAC,eAAe,iBACxB,mBAAmB,EAC7B,SAAS,EAAC,4CAA4C,GACtD,GACsC,CAC3C,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { PopoverProps as AriaPopoverProps, SelectProps as AriaSelectProps } from "react-aria-components";
|
|
3
|
+
interface SelectOption<T = string | number> {
|
|
4
|
+
id?: string;
|
|
5
|
+
value: T;
|
|
6
|
+
label: string;
|
|
7
|
+
}
|
|
8
|
+
interface SelectProps<T extends SelectOption, M extends "single" | "multiple"> extends Omit<AriaSelectProps<T>, "children" | "onChange" | "value" | "defaultValue" | "selectionMode"> {
|
|
9
|
+
/** The selection mode for the select. */
|
|
10
|
+
selectionMode?: M;
|
|
11
|
+
/** Initial value used when the component is uncontrolled. */
|
|
12
|
+
defaultValue?: M extends "multiple" ? Array<T> : T;
|
|
13
|
+
/** If this prop is set, the select operates in a controlled manner and uses this value as its state. */
|
|
14
|
+
value?: (M extends "multiple" ? Array<T> : T) | null;
|
|
15
|
+
/** If this prop is set, the select will call this function with the new value whenever the value changes. */
|
|
16
|
+
onChange?: M extends "multiple" ? (value: Array<T>) => void : (value: T) => void;
|
|
17
|
+
/** Information for managing async option loading. */
|
|
18
|
+
optionsLoader?: {
|
|
19
|
+
/** Whether there are more pages of options to load. */
|
|
20
|
+
hasNextPage: boolean;
|
|
21
|
+
/** Callback to fetch the next page of options. */
|
|
22
|
+
onFetchNextPage: () => void;
|
|
23
|
+
/** Whether the next page of options is currently being fetched. */
|
|
24
|
+
isFetching?: boolean;
|
|
25
|
+
/** A function to search for options. */
|
|
26
|
+
onSearch?: (search: string) => void;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The array of options to display in the select dropdown.
|
|
30
|
+
*/
|
|
31
|
+
options?: Array<T>;
|
|
32
|
+
/**
|
|
33
|
+
* If true, enables a search field for filtering options.
|
|
34
|
+
*/
|
|
35
|
+
isSearchable?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Custom render function for the selected value display.
|
|
38
|
+
*/
|
|
39
|
+
renderValue?: (value: T) => React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Custom render function for each option in the dropdown.
|
|
42
|
+
*/
|
|
43
|
+
renderOption?: (item: T) => React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* The maximum number of badges to display. To show all badges, set to Infinity.
|
|
46
|
+
*/
|
|
47
|
+
maxVisibleBadges?: number;
|
|
48
|
+
/**
|
|
49
|
+
* If true, the clear button will be shown.
|
|
50
|
+
*/
|
|
51
|
+
isClearable?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The message to display when there are no options found.
|
|
54
|
+
*/
|
|
55
|
+
emptyMessage?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The label to display above the select.
|
|
58
|
+
*/
|
|
59
|
+
label?: string;
|
|
60
|
+
/**
|
|
61
|
+
* If true, an asterisk will be displayed next to the label.
|
|
62
|
+
*/
|
|
63
|
+
withAsterisk?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* The tooltip for the select.
|
|
66
|
+
*/
|
|
67
|
+
tooltip?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* The keyword to search for.
|
|
70
|
+
*/
|
|
71
|
+
keyword?: keyof T;
|
|
72
|
+
/**
|
|
73
|
+
* The action to perform when the create new button is clicked.
|
|
74
|
+
*/
|
|
75
|
+
onCreate?: (value: string) => void;
|
|
76
|
+
/**
|
|
77
|
+
* The class name for the trigger button.
|
|
78
|
+
*/
|
|
79
|
+
triggerClassName?: string;
|
|
80
|
+
/**
|
|
81
|
+
* The class name for the popover.
|
|
82
|
+
*/
|
|
83
|
+
popoverProps?: AriaPopoverProps;
|
|
84
|
+
}
|
|
85
|
+
declare function Select<T extends SelectOption, M extends "single" | "multiple" = "single">(props: SelectProps<T, M>): import("react/jsx-runtime").JSX.Element;
|
|
86
|
+
export { Select };
|
|
87
|
+
export type { SelectOption };
|
|
88
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/components/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,EAEL,YAAY,IAAI,gBAAgB,EAEhC,WAAW,IAAI,eAAe,EAe/B,MAAM,uBAAuB,CAAA;AAQ9B,UAAU,YAAY,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;IACxC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,CAAC,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,QAAQ,GAAG,UAAU,CAC3E,SAAQ,IAAI,CACV,eAAe,CAAC,CAAC,CAAC,EAClB,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CACrE;IACD,yCAAyC;IACzC,aAAa,CAAC,EAAE,CAAC,CAAA;IAEjB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,SAAS,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAElD,wGAAwG;IACxG,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAEpD,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,CAAC,SAAS,UAAU,GAC3B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GACzB,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAEtB,qDAAqD;IACrD,aAAa,CAAC,EAAE;QACd,uDAAuD;QACvD,WAAW,EAAE,OAAO,CAAA;QAEpB,kDAAkD;QAClD,eAAe,EAAE,MAAM,IAAI,CAAA;QAE3B,mEAAmE;QACnE,UAAU,CAAC,EAAE,OAAO,CAAA;QAEpB,wCAAwC;QACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KACpC,CAAA;IAED;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAE3C;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAE3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAElC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAED,iBAAS,MAAM,CACb,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,QAAQ,GAAG,UAAU,GAAG,QAAQ,EAC1C,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,2CAwOzB;AAyQD,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { Button } from "@eggspot/ui/components/Button";
|
|
5
|
+
import { Checkbox } from "@eggspot/ui/components/Checkbox";
|
|
6
|
+
import { fieldGroupVariants } from "@eggspot/ui/components/Field";
|
|
7
|
+
import { SearchInput } from "@eggspot/ui/components/Input";
|
|
8
|
+
import { Label } from "@eggspot/ui/components/Label";
|
|
9
|
+
import { Popover, PopoverDialog } from "@eggspot/ui/components/Popover";
|
|
10
|
+
import { useAriaSelectProps } from "@eggspot/ui/components/Select.utils";
|
|
11
|
+
import { Spinner } from "@eggspot/ui/components/Spinner";
|
|
12
|
+
import { useIsMobile } from "@eggspot/ui/hooks/use-mobile";
|
|
13
|
+
import { cn } from "@eggspot/ui/lib/utils";
|
|
14
|
+
import { omit } from "lodash";
|
|
15
|
+
import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react";
|
|
16
|
+
import { Button as AriaButton, Select as AriaSelect, Autocomplete, AutocompleteStateContext, Collection, DialogTrigger, ListBox, ListBoxItem, ListBoxLoadMoreItem, ListLayout, Pressable, SelectStateContext, SelectValue, useFilter, Virtualizer, } from "react-aria-components";
|
|
17
|
+
import { Separator } from "./Separator";
|
|
18
|
+
const SELECT_ALL_KEYWORD = "this_is_keyword_for_select_all_checkbox_asljqdkasjdlkajsd";
|
|
19
|
+
const ROW_HEIGHT = 36;
|
|
20
|
+
function Select(props) {
|
|
21
|
+
const { value: controlledValue, onChange: controlledOnChange, defaultValue, optionsLoader, options, renderOption, renderValue, isClearable = true, maxVisibleBadges = 2, placeholder = "Select", isSearchable = true, emptyMessage = "No results found", label, withAsterisk, tooltip, keyword, onCreate, triggerClassName, popoverProps, ...restProps } = props;
|
|
22
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
23
|
+
const listBoxRef = React.useRef(null);
|
|
24
|
+
const selectionMode = props.selectionMode || "single";
|
|
25
|
+
const isAsync = Boolean(optionsLoader);
|
|
26
|
+
const optionsWithId = options?.map((option) => ({
|
|
27
|
+
...option,
|
|
28
|
+
id: JSON.stringify(option),
|
|
29
|
+
}));
|
|
30
|
+
const ariaProps = useAriaSelectProps({
|
|
31
|
+
value: controlledValue,
|
|
32
|
+
defaultValue: defaultValue,
|
|
33
|
+
onChange: controlledOnChange,
|
|
34
|
+
selectionMode: selectionMode,
|
|
35
|
+
});
|
|
36
|
+
// Scroll to last selected item when popover opens
|
|
37
|
+
React.useEffect(() => {
|
|
38
|
+
if (isOpen && listBoxRef.current) {
|
|
39
|
+
queueMicrotask(() => {
|
|
40
|
+
const selectedItems = listBoxRef.current?.querySelectorAll('[aria-selected="true"]');
|
|
41
|
+
if (selectedItems && selectedItems.length > 0) {
|
|
42
|
+
const lastSelectedItem = selectedItems[selectedItems.length - 1];
|
|
43
|
+
lastSelectedItem?.scrollIntoView({
|
|
44
|
+
block: "nearest",
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}, [isOpen]);
|
|
50
|
+
return (_jsxs(AriaSelect, { isOpen: isOpen, onOpenChange: (isOpen) => {
|
|
51
|
+
if (!isOpen) {
|
|
52
|
+
setIsOpen(false);
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
optionsLoader?.onSearch?.("");
|
|
55
|
+
}, 100);
|
|
56
|
+
}
|
|
57
|
+
}, "aria-label": "Select", className: cn("group relative flex w-full flex-col gap-1"), ...ariaProps, ...restProps, children: [label && (_jsx(Label, { withAsterisk: withAsterisk, tooltip: tooltip, children: label })), _jsxs(AriaButton, { className: cn(fieldGroupVariants(), "data-focus-visible:ring-accent-9 h-auto min-h-8 cursor-pointer py-1 pr-4 data-focus-visible:ring-2 data-focused:outline-none", "relative flex justify-between", "group-data-invalid:ring-error-9! group-data-invalid:border-error-9! group-data-disabled:cursor-not-allowed group-data-disabled:opacity-70", "aria-expanded:ring-accent-9 aria-expanded:border-accent-9 aria-expanded:ring-1", triggerClassName), onClick: () => setIsOpen(!isOpen), children: [_jsx(SelectValue, { className: "truncate", children: () => {
|
|
58
|
+
const selectedItems = [ariaProps.value]
|
|
59
|
+
.flat()
|
|
60
|
+
.filter(Boolean)
|
|
61
|
+
.map((v) => JSON.parse(v));
|
|
62
|
+
const isPlaceholder = selectedItems.length === 0;
|
|
63
|
+
if (isPlaceholder) {
|
|
64
|
+
// If placeholder is not set, return an empty div
|
|
65
|
+
if (!placeholder) {
|
|
66
|
+
return (_jsx("div", { className: "opacity-0", "aria-hidden": "true", children: "\u00A0" }));
|
|
67
|
+
}
|
|
68
|
+
return _jsx("div", { className: "text-gray-8", children: placeholder });
|
|
69
|
+
}
|
|
70
|
+
if (selectionMode === "single") {
|
|
71
|
+
const selectedItem = selectedItems[0];
|
|
72
|
+
if (!selectedItem)
|
|
73
|
+
return null;
|
|
74
|
+
return renderValue
|
|
75
|
+
? renderValue(selectedItem)
|
|
76
|
+
: selectedItem?.label;
|
|
77
|
+
}
|
|
78
|
+
if (selectionMode === "multiple") {
|
|
79
|
+
const selectedItemsWithId = selectedItems.map((item) => ({
|
|
80
|
+
...item,
|
|
81
|
+
id: JSON.stringify(item),
|
|
82
|
+
}));
|
|
83
|
+
return (_jsxs("div", { className: "flex flex-1 flex-wrap gap-1 pr-4", children: [selectedItemsWithId
|
|
84
|
+
?.slice(0, maxVisibleBadges)
|
|
85
|
+
.map((item) => {
|
|
86
|
+
if (!item)
|
|
87
|
+
return null;
|
|
88
|
+
return (_jsxs(SelectBadge, { title: item.label, children: [_jsx("div", { className: "truncate", children: renderValue ? renderValue(item) : item.label }), _jsx(BadgeClearButton, { data: item })] }, item?.id));
|
|
89
|
+
}), !!selectedItemsWithId?.length &&
|
|
90
|
+
selectedItemsWithId.length > maxVisibleBadges && (_jsx(RemainingBadges, { items: selectedItemsWithId.slice(maxVisibleBadges) }))] }));
|
|
91
|
+
}
|
|
92
|
+
} }), _jsx(ChevronDownIcon, { className: "text-gray-11 size-4 translate-x-1" }), isClearable && _jsx(SelectClearButton, {})] }), _jsx(Popover, { crossOffset: -1, className: cn("w-[calc(var(--trigger-width)+2px)] overflow-hidden", popoverProps?.className), animateOut: false, ...omit(popoverProps, "className"), children: _jsx("div", { className: "flex flex-col", children: _jsxs(ItemsWrapper, { isAsync: isAsync, isSearchable: isSearchable, selectionMode: selectionMode, manualSearching: !!optionsLoader, onSearch: optionsLoader?.onSearch, children: [_jsx("div", { children: _jsx(Virtualizer, { layout: ListLayout, layoutOptions: {
|
|
93
|
+
estimatedRowHeight: ROW_HEIGHT,
|
|
94
|
+
}, children: _jsxs(ListBox, { ref: listBoxRef, className: "!max-h-[250px] flex-1 scroll-pb-1 overflow-y-auto outline-hidden", renderEmptyState: () => {
|
|
95
|
+
if (optionsLoader?.isFetching)
|
|
96
|
+
return null;
|
|
97
|
+
return (_jsx("div", { className: "text-gray-11 flex h-20 items-center justify-center text-center text-sm", children: emptyMessage }));
|
|
98
|
+
}, children: [selectionMode === "multiple" && !isAsync && (_jsx(SelectAllCheckbox, { value: ariaProps.value, onChange: ariaProps.onChange, options: optionsWithId })), _jsx(Collection, { items: optionsWithId, children: (item) => (_jsx(SelectItem, { selectionMode: selectionMode, renderOption: renderOption, textValue: item[keyword || "label"], children: item.label })) }), _jsx(ListBoxLoadMoreItem, { onLoadMore: optionsLoader?.hasNextPage
|
|
99
|
+
? optionsLoader?.onFetchNextPage
|
|
100
|
+
: undefined, isLoading: optionsLoader?.isFetching, className: "flex items-center justify-center pt-1.5", children: _jsx(Spinner, { className: "text-gray-11/50 size-5" }) })] }) }) }), _jsx(CreateNew, { onCreate: onCreate })] }) }) })] }));
|
|
101
|
+
}
|
|
102
|
+
function SelectBadge({ className, ...props }) {
|
|
103
|
+
return (_jsx("span", { className: cn("text-gray-12 bg-gray-4 inline-flex items-center justify-center truncate rounded-sm px-2 py-0.5 text-xs font-medium", className), ...props }));
|
|
104
|
+
}
|
|
105
|
+
function RemainingBadges({ items, renderValue, }) {
|
|
106
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
107
|
+
return (_jsxs(DialogTrigger, { children: [_jsx(Pressable, { children: _jsx(SelectBadge, { role: "button", title: "Show more options", className: "hover:bg-gray-3 focus-visible:outline-none", onClick: (e) => {
|
|
108
|
+
e.stopPropagation();
|
|
109
|
+
setIsOpen(!isOpen);
|
|
110
|
+
}, children: _jsx("span", { children: `+${items.length}` }) }) }), _jsx(Popover, { isOpen: isOpen, onOpenChange: setIsOpen, placement: "bottom left", className: "overflow-hidden rounded-md", children: _jsx(PopoverDialog, { className: "p-0", children: _jsx("div", { className: "flex max-h-[250px] max-w-[260px] min-w-[150px] flex-col gap-1.5 overflow-y-auto p-2", children: items.map((item) => (_jsxs(SelectBadge, { className: "w-full shrink-0 justify-between", children: [_jsx("div", { className: "truncate", title: item.label, children: renderValue ? renderValue(item) : item.label }), _jsx(BadgeClearButton, { data: item })] }, item?.id))) }) }) })] }));
|
|
111
|
+
}
|
|
112
|
+
function ItemsWrapper({ children, isSearchable, manualSearching, onSearch, }) {
|
|
113
|
+
const { contains } = useFilter({ sensitivity: "base" });
|
|
114
|
+
const isMobile = useIsMobile();
|
|
115
|
+
const customFilter = (textValue, inputValue) => {
|
|
116
|
+
if (textValue === SELECT_ALL_KEYWORD)
|
|
117
|
+
return true;
|
|
118
|
+
return contains(textValue, inputValue);
|
|
119
|
+
};
|
|
120
|
+
return isSearchable ? (_jsxs(Autocomplete, { disableVirtualFocus: isMobile, filter: manualSearching ? undefined : customFilter, children: [_jsx(SearchInput, { autoFocus: true, placeholder: "Search", className: "rounded-none border-none! ring-0!", onChange: onSearch }), _jsx(Separator, {}), _jsx("div", { className: "p-1.5", children: children })] })) : (_jsx("div", { className: "p-1.5", children: children }));
|
|
121
|
+
}
|
|
122
|
+
function SelectAllCheckbox({ value, onChange, options, }) {
|
|
123
|
+
const isAllSelected = value?.length === options?.length;
|
|
124
|
+
const isIndeterminate = !!value?.length && value?.length < options?.length;
|
|
125
|
+
return (_jsxs(ListBoxItem, { textValue: SELECT_ALL_KEYWORD, onClick: (e) => {
|
|
126
|
+
e.stopPropagation();
|
|
127
|
+
if (isAllSelected) {
|
|
128
|
+
onChange([]);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const ids = options.map((option) => option.id);
|
|
132
|
+
onChange(ids);
|
|
133
|
+
}
|
|
134
|
+
}, className: cn("group text-gray-12 flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm outline-hidden select-none", "data-focused:bg-gray-3"), children: [_jsx(Checkbox, { readOnly: true, reduceMotion: true, isSelected: isAllSelected, isIndeterminate: isIndeterminate }), "Select All"] }));
|
|
135
|
+
}
|
|
136
|
+
function CreateNew({ onCreate }) {
|
|
137
|
+
const selectState = React.useContext(SelectStateContext);
|
|
138
|
+
const autocompleteState = React.useContext(AutocompleteStateContext);
|
|
139
|
+
const inputValue = autocompleteState?.inputValue || "";
|
|
140
|
+
if (!onCreate)
|
|
141
|
+
return null;
|
|
142
|
+
return (_jsx("div", { className: "py-1.5", children: _jsx(Button, { fullWidth: true, variant: "minimal", intent: "secondary", isDisabled: !inputValue, onClick: () => {
|
|
143
|
+
onCreate(inputValue);
|
|
144
|
+
selectState?.close();
|
|
145
|
+
}, children: "Create new" }) }));
|
|
146
|
+
}
|
|
147
|
+
function SelectItem({ children, renderOption, selectionMode = "multiple", ...props }) {
|
|
148
|
+
const content = (_jsx("div", { className: "flex-1 overflow-hidden text-sm font-normal", children: _jsx("div", { className: "truncate", children: renderOption ? renderOption(props.value) : children }) }));
|
|
149
|
+
return (_jsx(ListBoxItem, { ...props, className: cn("group text-gray-12 flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 outline-hidden select-none", "data-focused:bg-gray-3"), children: ({ isSelected }) => (_jsxs(_Fragment, { children: [selectionMode === "single" &&
|
|
150
|
+
(isSelected ? _jsx(CheckIcon, { size: 16 }) : _jsx("div", { className: "w-4" })), selectionMode === "multiple" && (_jsx(Checkbox, { readOnly: true, reduceMotion: true, isSelected: isSelected })), content] })) }));
|
|
151
|
+
}
|
|
152
|
+
function SelectClearButton() {
|
|
153
|
+
const state = React.useContext(SelectStateContext);
|
|
154
|
+
const value = state?.value;
|
|
155
|
+
if (!value || value.length === 0)
|
|
156
|
+
return null;
|
|
157
|
+
return (_jsx("div", { role: "button", tabIndex: 0, onClick: (e) => {
|
|
158
|
+
e.stopPropagation();
|
|
159
|
+
state?.setValue(null);
|
|
160
|
+
}, className: cn("focus-visible:ring-2 focus-visible:outline-none", "bg-gray-2 text-gray-11 hover:bg-gray-3 z-10 flex size-6 cursor-pointer items-center justify-center rounded-sm", "absolute top-1/2 right-8 -translate-y-1/2"), children: _jsx(XIcon, { className: "text-gray-11 size-3.5" }) }));
|
|
161
|
+
}
|
|
162
|
+
function BadgeClearButton({ data }) {
|
|
163
|
+
const state = React.useContext(SelectStateContext);
|
|
164
|
+
const value = state?.value;
|
|
165
|
+
if (!Array.isArray(value))
|
|
166
|
+
return null;
|
|
167
|
+
return (_jsx("div", { role: "button", tabIndex: 0, className: "z-10 -mr-1.5 flex size-4! shrink-0 cursor-pointer items-center justify-center rounded-sm bg-transparent hover:bg-neutral-400/15 focus-visible:ring-2 focus-visible:outline-none", onClick: (e) => {
|
|
168
|
+
e.stopPropagation();
|
|
169
|
+
const newKeys = value.filter((v) => v !== data.id);
|
|
170
|
+
state?.setValue(newKeys);
|
|
171
|
+
}, children: _jsx(XIcon, { className: "size-2.5!" }) }));
|
|
172
|
+
}
|
|
173
|
+
export { Select };
|
|
174
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/components/Select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EACL,MAAM,IAAI,UAAU,EAEpB,MAAM,IAAI,UAAU,EAEpB,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,WAAW,GAEZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,kBAAkB,GACtB,2DAA2D,CAAA;AAC7D,MAAM,UAAU,GAAG,EAAE,CAAA;AAiHrB,SAAS,MAAM,CAGb,KAAwB;IACxB,MAAM,EACJ,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EACZ,aAAa,EACb,OAAO,EACP,YAAY,EACZ,WAAW,EACX,WAAW,GAAG,IAAI,EAClB,gBAAgB,GAAG,CAAC,EACpB,WAAW,GAAG,QAAQ,EACtB,YAAY,GAAG,IAAI,EACnB,YAAY,GAAG,kBAAkB,EACjC,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,GAAG,SAAS,EACb,GAAG,KAAK,CAAA;IACT,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAA;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,QAAQ,CAAA;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACtC,MAAM,aAAa,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,MAAM;QACT,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC3B,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,aAAa,EAAE,aAAa;KAC7B,CAAC,CAAA;IAEF,kDAAkD;IAClD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,EAAE;gBAClB,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,gBAAgB,CACxD,wBAAwB,CACzB,CAAA;gBACD,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAChE,gBAAgB,EAAE,cAAc,CAAC;wBAC/B,KAAK,EAAE,SAAS;qBACjB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,CACL,MAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS,CAAC,KAAK,CAAC,CAAA;gBAChB,UAAU,CAAC,GAAG,EAAE;oBACd,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC/B,CAAC,EAAE,GAAG,CAAC,CAAA;YACT,CAAC;QACH,CAAC,gBACU,QAAQ,EACnB,SAAS,EAAE,EAAE,CAAC,2CAA2C,CAAC,KACtD,SAAS,KACT,SAAS,aAEZ,KAAK,IAAI,CACR,KAAC,KAAK,IAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,YAChD,KAAK,GACA,CACT,EACD,MAAC,UAAU,IACT,SAAS,EAAE,EAAE,CACX,kBAAkB,EAAE,EACpB,8HAA8H,EAC9H,+BAA+B,EAC/B,2IAA2I,EAC3I,gFAAgF,EAChF,gBAAgB,CACjB,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,aAEjC,KAAC,WAAW,IAAI,SAAS,EAAC,UAAU,YACjC,GAAG,EAAE;4BACJ,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;iCACpC,IAAI,EAAE;iCACN,MAAM,CAAC,OAAO,CAAC;iCACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;4BAC5B,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAA;4BAEhD,IAAI,aAAa,EAAE,CAAC;gCAClB,iDAAiD;gCACjD,IAAI,CAAC,WAAW,EAAE,CAAC;oCACjB,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,iBAAa,MAAM,uBAEvC,CACP,CAAA;gCACH,CAAC;gCAED,OAAO,cAAK,SAAS,EAAC,aAAa,YAAE,WAAW,GAAO,CAAA;4BACzD,CAAC;4BAED,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gCAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;gCAErC,IAAI,CAAC,YAAY;oCAAE,OAAO,IAAI,CAAA;gCAE9B,OAAO,WAAW;oCAChB,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC;oCAC3B,CAAC,CAAC,YAAY,EAAE,KAAK,CAAA;4BACzB,CAAC;4BAED,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;gCACjC,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oCACvD,GAAG,IAAI;oCACP,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iCACzB,CAAC,CAAC,CAAA;gCAEH,OAAO,CACL,eAAK,SAAS,EAAC,kCAAkC,aAC9C,mBAAmB;4CAClB,EAAE,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;6CAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4CACZ,IAAI,CAAC,IAAI;gDAAE,OAAO,IAAI,CAAA;4CAEtB,OAAO,CACL,MAAC,WAAW,IAAgB,KAAK,EAAE,IAAI,CAAC,KAAK,aAC3C,cAAK,SAAS,EAAC,UAAU,YACtB,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GACzC,EACN,KAAC,gBAAgB,IAAC,IAAI,EAAE,IAAI,GAAI,KAJhB,IAAI,EAAE,EAAE,CAKZ,CACf,CAAA;wCACH,CAAC,CAAC,EAGH,CAAC,CAAC,mBAAmB,EAAE,MAAM;4CAC5B,mBAAmB,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAC/C,KAAC,eAAe,IACd,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAClD,CACH,IACC,CACP,CAAA;4BACH,CAAC;wBACH,CAAC,GACW,EACd,KAAC,eAAe,IAAC,SAAS,EAAC,mCAAmC,GAAG,EAChE,WAAW,IAAI,KAAC,iBAAiB,KAAG,IAC1B,EACb,KAAC,OAAO,IACN,WAAW,EAAE,CAAC,CAAC,EACf,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,YAAY,EAAE,SAAS,CACxB,EACD,UAAU,EAAE,KAAK,KACb,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,YAEnC,cAAK,SAAS,EAAC,eAAe,YAC5B,MAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,CAAC,CAAC,aAAa,EAChC,QAAQ,EAAE,aAAa,EAAE,QAAQ,aAEjC,wBACE,KAAC,WAAW,IACV,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE;wCACb,kBAAkB,EAAE,UAAU;qCAC/B,YAED,MAAC,OAAO,IACN,GAAG,EAAE,UAAU,EACf,SAAS,EAAC,kEAAkE,EAC5E,gBAAgB,EAAE,GAAG,EAAE;4CACrB,IAAI,aAAa,EAAE,UAAU;gDAAE,OAAO,IAAI,CAAA;4CAE1C,OAAO,CACL,cAAK,SAAS,EAAC,wEAAwE,YACpF,YAAY,GACT,CACP,CAAA;wCACH,CAAC,aAEA,aAAa,KAAK,UAAU,IAAI,CAAC,OAAO,IAAI,CAC3C,KAAC,iBAAiB,IAChB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,OAAO,EAAE,aAA2C,GACpD,CACH,EACD,KAAC,UAAU,IAAC,KAAK,EAAE,aAAa,YAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,CACT,KAAC,UAAU,IACT,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAG,IAAY,CAAC,OAAO,IAAI,OAAO,CAAC,YAE3C,IAAI,CAAC,KAAK,GACA,CACd,GACU,EACb,KAAC,mBAAmB,IAClB,UAAU,EACR,aAAa,EAAE,WAAW;oDACxB,CAAC,CAAC,aAAa,EAAE,eAAe;oDAChC,CAAC,CAAC,SAAS,EAEf,SAAS,EAAE,aAAa,EAAE,UAAU,EACpC,SAAS,EAAC,yCAAyC,YAEnD,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1B,IACd,GACE,GACV,EACN,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI,IACpB,GACX,GACE,IACC,CACd,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IACxE,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,oHAAoH,EACpH,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EACvB,KAAK,EACL,WAAW,GAIZ;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,OAAO,CACL,MAAC,aAAa,eACZ,KAAC,SAAS,cACR,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACb,CAAC,CAAC,eAAe,EAAE,CAAA;wBACnB,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;oBACpB,CAAC,YAED,yBAAO,IAAI,KAAK,CAAC,MAAM,EAAE,GAAQ,GACrB,GACJ,EACZ,KAAC,OAAO,IACN,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAC,aAAa,EACvB,SAAS,EAAC,4BAA4B,YAEtC,KAAC,aAAa,IAAC,SAAS,EAAC,KAAK,YAC5B,cAAK,SAAS,EAAC,qFAAqF,YACjG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,MAAC,WAAW,IAEV,SAAS,EAAC,iCAAiC,aAE3C,cAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YACxC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GACzC,EACN,KAAC,gBAAgB,IAAC,IAAI,EAAE,IAAI,GAAI,KAN3B,IAAI,EAAE,EAAE,CAOD,CACf,CAAC,GACE,GACQ,GACR,IACI,CACjB,CAAA;AACH,CAAC;AAWD,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,GACU;IAClB,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE;QAC7D,IAAI,SAAS,KAAK,kBAAkB;YAAE,OAAO,IAAI,CAAA;QAEjD,OAAO,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,CACpB,MAAC,YAAY,IACX,mBAAmB,EAAE,QAAQ,EAC7B,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,aAElD,KAAC,WAAW,IACV,SAAS,QACT,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,QAAQ,GAClB,EACF,KAAC,SAAS,KAAG,EACb,cAAK,SAAS,EAAC,OAAO,YAAE,QAAQ,GAAO,IAC1B,CAChB,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,OAAO,YAAE,QAAQ,GAAO,CACxC,CAAA;AACH,CAAC;AAQD,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAO,GACgB;IACvB,MAAM,aAAa,GAAG,KAAK,EAAE,MAAM,KAAK,OAAO,EAAE,MAAM,CAAA;IACvD,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,CAAA;IAE1E,OAAO,CACL,MAAC,WAAW,IACV,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,EAAE,CAAC,CAAA;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC9C,QAAQ,CAAC,GAAG,CAAC,CAAA;YACf,CAAC;QACH,CAAC,EACD,SAAS,EAAE,EAAE,CACX,mHAAmH,EACnH,wBAAwB,CACzB,aAED,KAAC,QAAQ,IACP,QAAQ,QACR,YAAY,QACZ,UAAU,EAAE,aAAa,EACzB,eAAe,EAAE,eAAe,GAChC,kBAEU,CACf,CAAA;AACH,CAAC;AAMD,SAAS,SAAS,CAAC,EAAE,QAAQ,EAAkB;IAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IACxD,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,iBAAiB,EAAE,UAAU,IAAI,EAAE,CAAA;IAEtD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE1B,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,KAAC,MAAM,IACL,SAAS,QACT,OAAO,EAAC,SAAS,EACjB,MAAM,EAAC,WAAW,EAClB,UAAU,EAAE,CAAC,UAAU,EACvB,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACpB,WAAW,EAAE,KAAK,EAAE,CAAA;YACtB,CAAC,2BAGM,GACL,CACP,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAyB,EAC1C,QAAQ,EACR,YAAY,EACZ,aAAa,GAAG,UAAU,EAC1B,GAAG,KAAK,EAKT;IACC,MAAM,OAAO,GAAG,CACd,cAAK,SAAS,EAAC,4CAA4C,YACzD,cAAK,SAAS,EAAC,UAAU,YACtB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GACrD,GACF,CACP,CAAA;IAED,OAAO,CACL,KAAC,WAAW,OACN,KAAK,EACT,SAAS,EAAE,EAAE,CACX,2GAA2G,EAC3G,wBAAwB,CACzB,YAEA,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACnB,8BACG,aAAa,KAAK,QAAQ;oBACzB,CAAC,UAAU,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,KAAK,GAAG,CAAC,EACjE,aAAa,KAAK,UAAU,IAAI,CAC/B,KAAC,QAAQ,IAAC,QAAQ,QAAC,YAAY,QAAC,UAAU,EAAE,UAAU,GAAI,CAC3D,EACA,OAAO,IACP,CACJ,GACW,CACf,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAwC,CAAA;IAE7D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7C,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,EACD,SAAS,EAAE,EAAE,CACX,iDAAiD,EACjD,+GAA+G,EAC/G,2CAA2C,CAC5C,YAED,KAAC,KAAK,IAAC,SAAS,EAAC,uBAAuB,GAAG,GACvC,CACP,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,IAAI,EAA0B;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAwC,CAAA;IAE7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEtC,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,SAAS,EAAC,iLAAiL,EAC3L,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;YAClD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC,YAED,KAAC,KAAK,IAAC,SAAS,EAAC,WAAW,GAAG,GAC3B,CACP,CAAA;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|