@k3-universe/react-kit 0.0.27 → 0.0.29
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/.storybook/main.ts +1 -1
- package/.storybook/preview.ts +18 -10
- package/biome.json +10 -0
- package/dist/index.js +2319 -1227
- package/dist/kit/builder/auth/AuthProvider.d.ts +36 -0
- package/dist/kit/builder/auth/AuthProvider.d.ts.map +1 -0
- package/dist/kit/builder/auth/adapter.d.ts +14 -0
- package/dist/kit/builder/auth/adapter.d.ts.map +1 -0
- package/dist/kit/builder/auth/client-adapters.d.ts +149 -0
- package/dist/kit/builder/auth/client-adapters.d.ts.map +1 -0
- package/dist/kit/builder/auth/components.d.ts +119 -0
- package/dist/kit/builder/auth/components.d.ts.map +1 -0
- package/dist/kit/builder/auth/hooks.d.ts +158 -0
- package/dist/kit/builder/auth/hooks.d.ts.map +1 -0
- package/dist/kit/builder/auth/index.d.ts +11 -0
- package/dist/kit/builder/auth/index.d.ts.map +1 -0
- package/dist/kit/builder/auth/permission-checker.d.ts +31 -0
- package/dist/kit/builder/auth/permission-checker.d.ts.map +1 -0
- package/dist/kit/builder/auth/storage.d.ts +17 -0
- package/dist/kit/builder/auth/storage.d.ts.map +1 -0
- package/dist/kit/builder/auth/token-manager.d.ts +9 -0
- package/dist/kit/builder/auth/token-manager.d.ts.map +1 -0
- package/dist/kit/builder/auth/types.d.ts +183 -0
- package/dist/kit/builder/auth/types.d.ts.map +1 -0
- package/dist/kit/builder/data-table/components/DataTable.d.ts +2 -1
- package/dist/kit/builder/data-table/components/DataTable.d.ts.map +1 -1
- package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts +2 -2
- package/dist/kit/builder/data-table/components/DataTableColumnHeader.d.ts.map +1 -1
- package/dist/kit/builder/data-table/components/DataTablePagination.d.ts +2 -1
- package/dist/kit/builder/data-table/components/DataTablePagination.d.ts.map +1 -1
- package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts +1 -1
- package/dist/kit/builder/data-table/components/DataTableViewOptions.d.ts.map +1 -1
- package/dist/kit/builder/data-table/types.d.ts.map +1 -1
- package/dist/kit/builder/dialog/index.d.ts +1 -1
- package/dist/kit/builder/dialog/index.d.ts.map +1 -1
- package/dist/kit/builder/dialog/provider.d.ts +0 -1
- package/dist/kit/builder/dialog/provider.d.ts.map +1 -1
- package/dist/kit/builder/form/components/FormBuilder.d.ts.map +1 -1
- package/dist/kit/builder/form/components/FormBuilderActions.d.ts.map +1 -1
- package/dist/kit/builder/form/components/FormBuilderContext.d.ts.map +1 -1
- package/dist/kit/builder/form/components/FormBuilderField.d.ts +1 -1
- package/dist/kit/builder/form/components/FormBuilderField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/ArrayField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/ArrayField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/CheckboxField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/CheckboxField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DateField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/DateField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DatePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/DatePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/DateRangePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/DateTimePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/DateTimeRangePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/FileField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/FileField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/MonthPickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/MonthRangePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/NumberField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/NumberField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/ObjectField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/RadioField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/RadioField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/SelectField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/SelectField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/SwitchField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/SwitchField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/TextField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/TextField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/TextareaField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/TextareaField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/TimePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/TimePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts +1 -1
- package/dist/kit/builder/form/components/fields/TimeRangePickerField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/index.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/types.d.ts.map +1 -1
- package/dist/kit/builder/form/components/sectionNodes.d.ts.map +1 -1
- package/dist/kit/builder/form/hooks/useFormBuilder.d.ts.map +1 -1
- package/dist/kit/builder/form/types.d.ts.map +1 -1
- package/dist/kit/builder/form/utils/section-factories.d.ts.map +1 -1
- package/dist/kit/builder/page/Page.d.ts.map +1 -1
- package/dist/kit/builder/page/index.d.ts.map +1 -1
- package/dist/kit/builder/section/SectionBuilder.d.ts +1 -1
- package/dist/kit/builder/section/SectionBuilder.d.ts.map +1 -1
- package/dist/kit/builder/section/SectionContainer.d.ts +14 -0
- package/dist/kit/builder/section/SectionContainer.d.ts.map +1 -0
- package/dist/kit/builder/stack-dialog/context.d.ts.map +1 -1
- package/dist/kit/builder/stack-dialog/hooks.d.ts.map +1 -1
- package/dist/kit/builder/stack-dialog/index.d.ts +3 -3
- package/dist/kit/builder/stack-dialog/index.d.ts.map +1 -1
- package/dist/kit/builder/stack-dialog/provider.d.ts.map +1 -1
- package/dist/kit/builder/stack-dialog/renderer.d.ts.map +1 -1
- package/dist/kit/builder/stack-dialog/types.d.ts +1 -1
- package/dist/kit/builder/stack-dialog/types.d.ts.map +1 -1
- package/dist/kit/components/autocomplete/Autocomplete.d.ts +1 -1
- package/dist/kit/components/autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/kit/components/autocomplete/types.d.ts.map +1 -1
- package/dist/kit/components/datepicker/DatePicker.d.ts.map +1 -1
- package/dist/kit/components/datepicker/DateRangePicker.d.ts.map +1 -1
- package/dist/kit/components/datetimepicker/DateTimePicker.d.ts.map +1 -1
- package/dist/kit/components/datetimepicker/DateTimeRangePicker.d.ts.map +1 -1
- package/dist/kit/components/datetimepicker/index.d.ts.map +1 -1
- package/dist/kit/components/fileuploader/FileUploader.d.ts.map +1 -1
- package/dist/kit/components/fileuploader/types.d.ts +2 -2
- package/dist/kit/components/forminfo/FormInfoError.d.ts.map +1 -1
- package/dist/kit/components/login/Login.d.ts +1 -1
- package/dist/kit/components/login/Login.d.ts.map +1 -1
- package/dist/kit/components/monthpicker/MonthInput.d.ts.map +1 -1
- package/dist/kit/components/monthpicker/MonthPicker.d.ts.map +1 -1
- package/dist/kit/components/monthpicker/MonthRangeInput.d.ts.map +1 -1
- package/dist/kit/components/monthpicker/MonthRangePicker.d.ts.map +1 -1
- package/dist/kit/components/timepicker/TimePicker.d.ts.map +1 -1
- package/dist/kit/components/timepicker/TimeRangePicker.d.ts.map +1 -1
- package/dist/kit/components/timepicker/index.d.ts.map +1 -1
- package/dist/kit/layouts/admin/components/AdminLayout.d.ts.map +1 -1
- package/dist/kit/layouts/admin/components/ThemeToggle.d.ts.map +1 -1
- package/dist/kit/layouts/admin/hooks/menu.d.ts.map +1 -1
- package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts +1 -1
- package/dist/kit/layouts/admin/providers/AdminMenuProvider.d.ts.map +1 -1
- package/dist/shadcn/hooks/use-mobile.d.ts.map +1 -1
- package/dist/shadcn/ui/accordion.d.ts +2 -2
- package/dist/shadcn/ui/accordion.d.ts.map +1 -1
- package/dist/shadcn/ui/alert-dialog.d.ts +4 -4
- package/dist/shadcn/ui/alert-dialog.d.ts.map +1 -1
- package/dist/shadcn/ui/alert.d.ts +4 -4
- package/dist/shadcn/ui/alert.d.ts.map +1 -1
- package/dist/shadcn/ui/aspect-ratio.d.ts +1 -1
- package/dist/shadcn/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/shadcn/ui/avatar.d.ts +2 -2
- package/dist/shadcn/ui/avatar.d.ts.map +1 -1
- package/dist/shadcn/ui/badge.d.ts +2 -2
- package/dist/shadcn/ui/badge.d.ts.map +1 -1
- package/dist/shadcn/ui/breadcrumb.d.ts +8 -8
- package/dist/shadcn/ui/breadcrumb.d.ts.map +1 -1
- package/dist/shadcn/ui/button.d.ts +2 -2
- package/dist/shadcn/ui/button.d.ts.map +1 -1
- package/dist/shadcn/ui/calendar.d.ts +2 -2
- package/dist/shadcn/ui/calendar.d.ts.map +1 -1
- package/dist/shadcn/ui/card.d.ts +8 -8
- package/dist/shadcn/ui/card.d.ts.map +1 -1
- package/dist/shadcn/ui/carousel.d.ts +5 -5
- package/dist/shadcn/ui/carousel.d.ts.map +1 -1
- package/dist/shadcn/ui/chart.d.ts +7 -7
- package/dist/shadcn/ui/chart.d.ts.map +1 -1
- package/dist/shadcn/ui/checkbox.d.ts +2 -2
- package/dist/shadcn/ui/checkbox.d.ts.map +1 -1
- package/dist/shadcn/ui/collapsible.d.ts +1 -1
- package/dist/shadcn/ui/collapsible.d.ts.map +1 -1
- package/dist/shadcn/ui/command.d.ts +2 -2
- package/dist/shadcn/ui/command.d.ts.map +1 -1
- package/dist/shadcn/ui/context-menu.d.ts +4 -4
- package/dist/shadcn/ui/context-menu.d.ts.map +1 -1
- package/dist/shadcn/ui/dialog.d.ts +4 -4
- package/dist/shadcn/ui/dialog.d.ts.map +1 -1
- package/dist/shadcn/ui/drawer.d.ts +3 -3
- package/dist/shadcn/ui/drawer.d.ts.map +1 -1
- package/dist/shadcn/ui/dropdown-menu.d.ts +4 -4
- package/dist/shadcn/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/shadcn/ui/form.d.ts +5 -5
- package/dist/shadcn/ui/form.d.ts.map +1 -1
- package/dist/shadcn/ui/hover-card.d.ts +2 -2
- package/dist/shadcn/ui/hover-card.d.ts.map +1 -1
- package/dist/shadcn/ui/input-otp.d.ts +4 -4
- package/dist/shadcn/ui/input-otp.d.ts.map +1 -1
- package/dist/shadcn/ui/input.d.ts +2 -2
- package/dist/shadcn/ui/input.d.ts.map +1 -1
- package/dist/shadcn/ui/label.d.ts +2 -2
- package/dist/shadcn/ui/label.d.ts.map +1 -1
- package/dist/shadcn/ui/menubar.d.ts +4 -4
- package/dist/shadcn/ui/menubar.d.ts.map +1 -1
- package/dist/shadcn/ui/navigation-menu.d.ts +2 -2
- package/dist/shadcn/ui/navigation-menu.d.ts.map +1 -1
- package/dist/shadcn/ui/pagination.d.ts +6 -6
- package/dist/shadcn/ui/pagination.d.ts.map +1 -1
- package/dist/shadcn/ui/popover.d.ts +2 -2
- package/dist/shadcn/ui/popover.d.ts.map +1 -1
- package/dist/shadcn/ui/progress.d.ts +2 -2
- package/dist/shadcn/ui/progress.d.ts.map +1 -1
- package/dist/shadcn/ui/radio-group.d.ts +2 -2
- package/dist/shadcn/ui/radio-group.d.ts.map +1 -1
- package/dist/shadcn/ui/resizable.d.ts +2 -2
- package/dist/shadcn/ui/resizable.d.ts.map +1 -1
- package/dist/shadcn/ui/scroll-area.d.ts +2 -2
- package/dist/shadcn/ui/scroll-area.d.ts.map +1 -1
- package/dist/shadcn/ui/select.d.ts +3 -3
- package/dist/shadcn/ui/select.d.ts.map +1 -1
- package/dist/shadcn/ui/separator.d.ts +2 -2
- package/dist/shadcn/ui/separator.d.ts.map +1 -1
- package/dist/shadcn/ui/sheet.d.ts +5 -5
- package/dist/shadcn/ui/sheet.d.ts.map +1 -1
- package/dist/shadcn/ui/sidebar.d.ts +26 -26
- package/dist/shadcn/ui/sidebar.d.ts.map +1 -1
- package/dist/shadcn/ui/skeleton.d.ts +1 -1
- package/dist/shadcn/ui/skeleton.d.ts.map +1 -1
- package/dist/shadcn/ui/slider.d.ts +2 -2
- package/dist/shadcn/ui/slider.d.ts.map +1 -1
- package/dist/shadcn/ui/sonner.d.ts.map +1 -1
- package/dist/shadcn/ui/switch.d.ts +2 -2
- package/dist/shadcn/ui/switch.d.ts.map +1 -1
- package/dist/shadcn/ui/table.d.ts +9 -9
- package/dist/shadcn/ui/table.d.ts.map +1 -1
- package/dist/shadcn/ui/tabs.d.ts +2 -2
- package/dist/shadcn/ui/tabs.d.ts.map +1 -1
- package/dist/shadcn/ui/textarea.d.ts +2 -2
- package/dist/shadcn/ui/textarea.d.ts.map +1 -1
- package/dist/shadcn/ui/toggle-group.d.ts +2 -2
- package/dist/shadcn/ui/toggle-group.d.ts.map +1 -1
- package/dist/shadcn/ui/toggle.d.ts +2 -2
- package/dist/shadcn/ui/toggle.d.ts.map +1 -1
- package/dist/shadcn/ui/tooltip.d.ts +2 -2
- package/dist/shadcn/ui/tooltip.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -1
- package/src/kit/builder/auth/AuthProvider.tsx +131 -0
- package/src/kit/builder/auth/adapter.ts +436 -0
- package/src/kit/builder/auth/client-adapters.ts +398 -0
- package/src/kit/builder/auth/components.tsx +221 -0
- package/src/kit/builder/auth/hooks.ts +237 -0
- package/src/kit/builder/auth/index.ts +134 -0
- package/src/kit/builder/auth/permission-checker.ts +150 -0
- package/src/kit/builder/auth/storage.ts +366 -0
- package/src/kit/builder/auth/token-manager.ts +55 -0
- package/src/kit/builder/auth/types.ts +393 -0
- package/src/kit/builder/data-table/components/DataTable.tsx +216 -82
- package/src/kit/builder/data-table/components/DataTableColumnHeader.tsx +9 -5
- package/src/kit/builder/data-table/components/DataTablePagination.tsx +49 -27
- package/src/kit/builder/data-table/components/DataTableViewOptions.tsx +13 -4
- package/src/kit/builder/data-table/types.ts +18 -3
- package/src/kit/builder/dialog/index.ts +5 -1
- package/src/kit/builder/dialog/provider.tsx +56 -27
- package/src/kit/builder/form/components/FormBuilder.tsx +10 -14
- package/src/kit/builder/form/components/FormBuilderActions.tsx +1 -1
- package/src/kit/builder/form/components/FormBuilderContext.tsx +13 -6
- package/src/kit/builder/form/components/FormBuilderField.tsx +70 -20
- package/src/kit/builder/form/components/fields/ArrayField.tsx +148 -62
- package/src/kit/builder/form/components/fields/AutocompleteField.tsx +53 -18
- package/src/kit/builder/form/components/fields/CheckboxField.tsx +20 -11
- package/src/kit/builder/form/components/fields/DateField.tsx +17 -6
- package/src/kit/builder/form/components/fields/DatePickerField.tsx +15 -10
- package/src/kit/builder/form/components/fields/DateRangePickerField.tsx +20 -15
- package/src/kit/builder/form/components/fields/DateTimePickerField.tsx +16 -11
- package/src/kit/builder/form/components/fields/DateTimeRangePickerField.tsx +23 -17
- package/src/kit/builder/form/components/fields/FileField.tsx +10 -5
- package/src/kit/builder/form/components/fields/MonthPickerField.tsx +18 -11
- package/src/kit/builder/form/components/fields/MonthRangePickerField.tsx +23 -17
- package/src/kit/builder/form/components/fields/NumberField.tsx +9 -4
- package/src/kit/builder/form/components/fields/ObjectField.tsx +12 -7
- package/src/kit/builder/form/components/fields/RadioField.tsx +32 -14
- package/src/kit/builder/form/components/fields/SelectField.tsx +26 -11
- package/src/kit/builder/form/components/fields/SwitchField.tsx +20 -11
- package/src/kit/builder/form/components/fields/TextField.tsx +11 -5
- package/src/kit/builder/form/components/fields/TextareaField.tsx +9 -4
- package/src/kit/builder/form/components/fields/TimePickerField.tsx +16 -11
- package/src/kit/builder/form/components/fields/TimeRangePickerField.tsx +23 -17
- package/src/kit/builder/form/components/fields/index.ts +21 -21
- package/src/kit/builder/form/components/fields/types.ts +15 -11
- package/src/kit/builder/form/components/sectionNodes.tsx +63 -40
- package/src/kit/builder/form/hooks/useFormBuilder.ts +83 -34
- package/src/kit/builder/form/types.ts +173 -148
- package/src/kit/builder/form/utils/section-factories.ts +4 -1
- package/src/kit/builder/form/utils/transformers.ts +4 -4
- package/src/kit/builder/form/utils/validations.ts +1 -1
- package/src/kit/builder/page/Page.tsx +26 -6
- package/src/kit/builder/page/index.ts +1 -1
- package/src/kit/builder/section/SectionBuilder.tsx +252 -127
- package/src/kit/builder/section/SectionContainer.tsx +85 -0
- package/src/kit/builder/stack-dialog/context.ts +10 -4
- package/src/kit/builder/stack-dialog/hooks.ts +4 -3
- package/src/kit/builder/stack-dialog/index.ts +5 -11
- package/src/kit/builder/stack-dialog/provider.tsx +11 -11
- package/src/kit/builder/stack-dialog/renderer.tsx +23 -26
- package/src/kit/builder/stack-dialog/types.ts +18 -18
- package/src/kit/components/autocomplete/Autocomplete.tsx +631 -549
- package/src/kit/components/autocomplete/types.ts +17 -17
- package/src/kit/components/datepicker/DatePicker.tsx +33 -9
- package/src/kit/components/datepicker/DateRangePicker.tsx +159 -87
- package/src/kit/components/datetimepicker/DateTimePicker.tsx +136 -30
- package/src/kit/components/datetimepicker/DateTimeRangePicker.tsx +257 -67
- package/src/kit/components/datetimepicker/index.ts +3 -3
- package/src/kit/components/fileuploader/FileUploader.tsx +315 -180
- package/src/kit/components/fileuploader/index.ts +3 -3
- package/src/kit/components/fileuploader/types.ts +3 -3
- package/src/kit/components/forminfo/FormInfoError.tsx +26 -11
- package/src/kit/components/login/Login.tsx +13 -4
- package/src/kit/components/monthpicker/MonthInput.tsx +13 -4
- package/src/kit/components/monthpicker/MonthPicker.tsx +12 -11
- package/src/kit/components/monthpicker/MonthRangeInput.tsx +29 -8
- package/src/kit/components/monthpicker/MonthRangePicker.tsx +23 -21
- package/src/kit/components/timepicker/TimePicker.tsx +19 -11
- package/src/kit/components/timepicker/TimeRangePicker.tsx +106 -29
- package/src/kit/components/timepicker/index.ts +3 -3
- package/src/kit/layouts/admin/components/AdminLayout.tsx +53 -24
- package/src/kit/layouts/admin/components/ThemeToggle.tsx +3 -9
- package/src/kit/layouts/admin/hooks/menu.ts +11 -5
- package/src/kit/layouts/admin/providers/AdminMenuProvider.tsx +59 -39
- package/src/kit/layouts/admin/types/index.ts +1 -1
- package/src/kit/themes/base.css +1 -1
- package/src/kit/themes/clean-slate.css +40 -32
- package/src/kit/themes/default.css +34 -24
- package/src/kit/themes/minimal-modern.css +37 -29
- package/src/kit/themes/spotify.css +56 -39
- package/src/shadcn/hooks/use-mobile.ts +13 -11
- package/src/shadcn/lib/utils.ts +2 -2
- package/src/shadcn/ui/accordion.tsx +14 -14
- package/src/shadcn/ui/alert-dialog.tsx +29 -29
- package/src/shadcn/ui/alert.tsx +20 -20
- package/src/shadcn/ui/aspect-ratio.tsx +4 -4
- package/src/shadcn/ui/avatar.tsx +13 -13
- package/src/shadcn/ui/badge.tsx +16 -16
- package/src/shadcn/ui/breadcrumb.tsx +28 -28
- package/src/shadcn/ui/button.tsx +23 -23
- package/src/shadcn/ui/calendar.tsx +82 -78
- package/src/shadcn/ui/card.tsx +27 -27
- package/src/shadcn/ui/carousel.tsx +93 -93
- package/src/shadcn/ui/chart.tsx +103 -103
- package/src/shadcn/ui/checkbox.tsx +9 -9
- package/src/shadcn/ui/collapsible.tsx +6 -6
- package/src/shadcn/ui/command.tsx +36 -36
- package/src/shadcn/ui/context-menu.tsx +40 -40
- package/src/shadcn/ui/dialog.tsx +28 -28
- package/src/shadcn/ui/drawer.tsx +30 -30
- package/src/shadcn/ui/dropdown-menu.tsx +41 -41
- package/src/shadcn/ui/form.tsx +48 -47
- package/src/shadcn/ui/hover-card.tsx +11 -11
- package/src/shadcn/ui/input-otp.tsx +23 -23
- package/src/shadcn/ui/input.tsx +9 -9
- package/src/shadcn/ui/label.tsx +8 -8
- package/src/shadcn/ui/menubar.tsx +47 -47
- package/src/shadcn/ui/navigation-menu.tsx +33 -33
- package/src/shadcn/ui/pagination.tsx +28 -28
- package/src/shadcn/ui/popover.tsx +12 -12
- package/src/shadcn/ui/progress.tsx +8 -8
- package/src/shadcn/ui/radio-group.tsx +11 -11
- package/src/shadcn/ui/resizable.tsx +14 -14
- package/src/shadcn/ui/scroll-area.tsx +15 -15
- package/src/shadcn/ui/select.tsx +34 -34
- package/src/shadcn/ui/separator.tsx +9 -9
- package/src/shadcn/ui/sheet.tsx +36 -36
- package/src/shadcn/ui/sidebar.tsx +227 -227
- package/src/shadcn/ui/skeleton.tsx +5 -5
- package/src/shadcn/ui/slider.tsx +12 -12
- package/src/shadcn/ui/sonner.tsx +11 -11
- package/src/shadcn/ui/switch.tsx +9 -9
- package/src/shadcn/ui/table.tsx +32 -32
- package/src/shadcn/ui/tabs.tsx +14 -14
- package/src/shadcn/ui/textarea.tsx +7 -7
- package/src/shadcn/ui/toggle-group.tsx +17 -17
- package/src/shadcn/ui/toggle.tsx +16 -16
- package/src/shadcn/ui/tooltip.tsx +11 -11
- package/src/stories/FileUploader.stories.tsx +23 -4
- package/src/stories/kit/builder/DataTable.Basic.stories.tsx +14 -4
- package/src/stories/kit/builder/DataTable.Filters.stories.tsx +36 -14
- package/src/stories/kit/builder/DataTable.Pagination.stories.tsx +3 -2
- package/src/stories/kit/builder/DataTable.SelectionAndActions.stories.tsx +18 -4
- package/src/stories/kit/builder/DataTable.Sorting.stories.tsx +18 -7
- package/src/stories/kit/builder/Dialog.stories.tsx +19 -13
- package/src/stories/kit/builder/Form.ArrayLayouts.stories.tsx +40 -16
- package/src/stories/kit/builder/Form.Autocomplete.stories.tsx +34 -22
- package/src/stories/kit/builder/Form.Basic.stories.tsx +38 -6
- package/src/stories/kit/builder/Form.Complex.stories.tsx +356 -111
- package/src/stories/kit/builder/Form.DateTime.stories.tsx +12 -8
- package/src/stories/kit/builder/Form.Dynamic.stories.tsx +695 -132
- package/src/stories/kit/builder/Form.Files.stories.tsx +37 -26
- package/src/stories/kit/builder/Form.MultipleFormBuilder.stories.tsx +46 -42
- package/src/stories/kit/builder/Form.Pickers.stories.tsx +12 -8
- package/src/stories/kit/builder/Form.Simple.stories.tsx +15 -6
- package/src/stories/kit/builder/Form.Time.stories.tsx +12 -8
- package/src/stories/kit/builder/Page.stories.tsx +32 -6
- package/src/stories/kit/builder/Section.stories.tsx +58 -11
- package/src/stories/kit/components/Autocomplete.stories.tsx +55 -22
- package/src/stories/kit/components/DatePicker.stories.tsx +80 -13
- package/src/stories/kit/components/DateRangePicker.stories.tsx +52 -11
- package/src/stories/kit/components/Login.stories.tsx +8 -2
- package/src/stories/kit/components/MonthPicker.stories.tsx +26 -6
- package/src/stories/kit/components/MonthRangePicker.stories.tsx +24 -5
- package/src/stories/kit/components/TimePicker.stories.tsx +18 -16
- package/src/stories/kit/components/TimeRangePicker.stories.tsx +18 -12
- package/src/stories/kit/layouts/admin/AdminLayout.Basic.stories.tsx +29 -6
- package/src/stories/kit/layouts/admin/AdminLayout.Collapsible.stories.tsx +26 -5
- package/src/stories/kit/layouts/admin/AdminLayout.Complex.stories.tsx +101 -18
- package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarHeaderComponent.stories.tsx +18 -4
- package/src/stories/kit/layouts/admin/AdminLayout.CustomSidebarTitleAndIcon.stories.tsx +17 -4
- package/src/stories/kit/layouts/admin/AdminLayout.HeaderSlots.stories.tsx +28 -6
- package/src/stories/shadcn/ui/Accordion.stories.tsx +33 -10
- package/src/stories/shadcn/ui/AlertDialog.stories.tsx +3 -1
- package/src/stories/shadcn/ui/Button.stories.tsx +3 -1
- package/src/stories/shadcn/ui/Calendar.stories.tsx +6 -1
- package/src/stories/shadcn/ui/Card.stories.tsx +11 -2
- package/src/stories/shadcn/ui/Checkbox.stories.tsx +11 -3
- package/src/stories/shadcn/ui/Collapsible.stories.tsx +12 -5
- package/src/stories/shadcn/ui/ContextMenu.stories.tsx +12 -4
- package/src/stories/shadcn/ui/Dialog.stories.tsx +15 -3
- package/src/stories/shadcn/ui/Drawer.stories.tsx +5 -2
- package/src/stories/shadcn/ui/DropdownMenu.stories.tsx +15 -5
- package/src/stories/shadcn/ui/Form.stories.tsx +5 -2
- package/src/stories/shadcn/ui/HoverCard.stories.tsx +8 -2
- package/src/stories/shadcn/ui/Input.stories.tsx +3 -1
- package/src/stories/shadcn/ui/InputOtp.stories.tsx +9 -2
- package/src/stories/shadcn/ui/Menubar.stories.tsx +21 -7
- package/src/stories/shadcn/ui/NavigationMenu.stories.tsx +30 -5
- package/src/stories/shadcn/ui/Popover.stories.tsx +8 -2
- package/src/stories/shadcn/ui/Resizable.stories.tsx +17 -5
- package/src/stories/shadcn/ui/ScrollArea.stories.tsx +54 -2
- package/src/stories/shadcn/ui/Select.stories.tsx +7 -1
- package/src/stories/shadcn/ui/Sheet.stories.tsx +2 -1
- package/src/stories/shadcn/ui/Sidebar.stories.tsx +13 -2
- package/src/stories/shadcn/ui/Sonner.stories.tsx +12 -2
- package/src/stories/shadcn/ui/Table.stories.tsx +86 -27
- package/src/stories/shadcn/ui/Tabs.stories.tsx +9 -2
- package/src/stories/shadcn/ui/Textarea.stories.tsx +3 -1
- package/src/stories/shadcn/ui/Toggle.stories.tsx +10 -2
- package/src/stories/shadcn/ui/Tooltip.stories.tsx +6 -1
- package/tsconfig.json +1 -5
- package/tsconfig.tsbuildinfo +1 -0
- package/eslint.config.mjs +0 -19
package/src/shadcn/ui/chart.tsx
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import * as RechartsPrimitive from
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as RechartsPrimitive from 'recharts';
|
|
5
5
|
|
|
6
|
-
import { cn } from
|
|
6
|
+
import { cn } from '../../shadcn/lib/utils';
|
|
7
7
|
|
|
8
8
|
// Format: { THEME_NAME: CSS_SELECTOR }
|
|
9
|
-
const THEMES = { light:
|
|
9
|
+
const THEMES = { light: '', dark: '.dark' } as const;
|
|
10
10
|
|
|
11
11
|
export type ChartConfig = {
|
|
12
12
|
[k in string]: {
|
|
13
|
-
label?: React.ReactNode
|
|
14
|
-
icon?: React.ComponentType
|
|
13
|
+
label?: React.ReactNode;
|
|
14
|
+
icon?: React.ComponentType;
|
|
15
15
|
} & (
|
|
16
16
|
| { color?: string; theme?: never }
|
|
17
17
|
| { color?: never; theme: Record<keyof typeof THEMES, string> }
|
|
18
|
-
)
|
|
19
|
-
}
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
20
|
|
|
21
21
|
type ChartContextProps = {
|
|
22
|
-
config: ChartConfig
|
|
23
|
-
}
|
|
22
|
+
config: ChartConfig;
|
|
23
|
+
};
|
|
24
24
|
|
|
25
|
-
const ChartContext = React.createContext<ChartContextProps | null>(null)
|
|
25
|
+
const ChartContext = React.createContext<ChartContextProps | null>(null);
|
|
26
26
|
|
|
27
27
|
function useChart() {
|
|
28
|
-
const context = React.useContext(ChartContext)
|
|
28
|
+
const context = React.useContext(ChartContext);
|
|
29
29
|
|
|
30
30
|
if (!context) {
|
|
31
|
-
throw new Error(
|
|
31
|
+
throw new Error('useChart must be used within a <ChartContainer />');
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
return context
|
|
34
|
+
return context;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
function ChartContainer({
|
|
@@ -40,14 +40,14 @@ function ChartContainer({
|
|
|
40
40
|
children,
|
|
41
41
|
config,
|
|
42
42
|
...props
|
|
43
|
-
}: React.ComponentProps<
|
|
44
|
-
config: ChartConfig
|
|
43
|
+
}: React.ComponentProps<'div'> & {
|
|
44
|
+
config: ChartConfig;
|
|
45
45
|
children: React.ComponentProps<
|
|
46
46
|
typeof RechartsPrimitive.ResponsiveContainer
|
|
47
|
-
>[
|
|
47
|
+
>['children'];
|
|
48
48
|
}) {
|
|
49
|
-
const uniqueId = React.useId()
|
|
50
|
-
const chartId = `chart-${id || uniqueId.replace(/:/g,
|
|
49
|
+
const uniqueId = React.useId();
|
|
50
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;
|
|
51
51
|
|
|
52
52
|
return (
|
|
53
53
|
<ChartContext.Provider value={{ config }}>
|
|
@@ -56,7 +56,7 @@ function ChartContainer({
|
|
|
56
56
|
data-chart={chartId}
|
|
57
57
|
className={cn(
|
|
58
58
|
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
59
|
-
className
|
|
59
|
+
className,
|
|
60
60
|
)}
|
|
61
61
|
{...props}
|
|
62
62
|
>
|
|
@@ -66,16 +66,16 @@ function ChartContainer({
|
|
|
66
66
|
</RechartsPrimitive.ResponsiveContainer>
|
|
67
67
|
</div>
|
|
68
68
|
</ChartContext.Provider>
|
|
69
|
-
)
|
|
69
|
+
);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {
|
|
73
73
|
const colorConfig = Object.entries(config).filter(
|
|
74
|
-
([, config]) => config.theme || config.color
|
|
75
|
-
)
|
|
74
|
+
([, config]) => config.theme || config.color,
|
|
75
|
+
);
|
|
76
76
|
|
|
77
77
|
if (!colorConfig.length) {
|
|
78
|
-
return null
|
|
78
|
+
return null;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
return (
|
|
@@ -89,26 +89,26 @@ ${colorConfig
|
|
|
89
89
|
.map(([key, itemConfig]) => {
|
|
90
90
|
const color =
|
|
91
91
|
itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||
|
|
92
|
-
itemConfig.color
|
|
93
|
-
return color ? ` --color-${key}: ${color};` : null
|
|
92
|
+
itemConfig.color;
|
|
93
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
94
94
|
})
|
|
95
|
-
.join(
|
|
95
|
+
.join('\n')}
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
`,
|
|
98
98
|
)
|
|
99
|
-
.join(
|
|
99
|
+
.join('\n'),
|
|
100
100
|
}}
|
|
101
101
|
/>
|
|
102
|
-
)
|
|
103
|
-
}
|
|
102
|
+
);
|
|
103
|
+
};
|
|
104
104
|
|
|
105
|
-
const ChartTooltip = RechartsPrimitive.Tooltip
|
|
105
|
+
const ChartTooltip = RechartsPrimitive.Tooltip;
|
|
106
106
|
|
|
107
107
|
function ChartTooltipContent({
|
|
108
108
|
active,
|
|
109
109
|
payload,
|
|
110
110
|
className,
|
|
111
|
-
indicator =
|
|
111
|
+
indicator = 'dot',
|
|
112
112
|
hideLabel = false,
|
|
113
113
|
hideIndicator = false,
|
|
114
114
|
label,
|
|
@@ -119,41 +119,41 @@ function ChartTooltipContent({
|
|
|
119
119
|
nameKey,
|
|
120
120
|
labelKey,
|
|
121
121
|
}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &
|
|
122
|
-
React.ComponentProps<
|
|
123
|
-
hideLabel?: boolean
|
|
124
|
-
hideIndicator?: boolean
|
|
125
|
-
indicator?:
|
|
126
|
-
nameKey?: string
|
|
127
|
-
labelKey?: string
|
|
122
|
+
React.ComponentProps<'div'> & {
|
|
123
|
+
hideLabel?: boolean;
|
|
124
|
+
hideIndicator?: boolean;
|
|
125
|
+
indicator?: 'line' | 'dot' | 'dashed';
|
|
126
|
+
nameKey?: string;
|
|
127
|
+
labelKey?: string;
|
|
128
128
|
}) {
|
|
129
|
-
const { config } = useChart()
|
|
129
|
+
const { config } = useChart();
|
|
130
130
|
|
|
131
131
|
const tooltipLabel = React.useMemo(() => {
|
|
132
132
|
if (hideLabel || !payload?.length) {
|
|
133
|
-
return null
|
|
133
|
+
return null;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
const [item] = payload
|
|
137
|
-
const key = `${labelKey || item?.dataKey || item?.name ||
|
|
138
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key)
|
|
136
|
+
const [item] = payload;
|
|
137
|
+
const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;
|
|
138
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
139
139
|
const value =
|
|
140
|
-
!labelKey && typeof label ===
|
|
140
|
+
!labelKey && typeof label === 'string'
|
|
141
141
|
? config[label as keyof typeof config]?.label || label
|
|
142
|
-
: itemConfig?.label
|
|
142
|
+
: itemConfig?.label;
|
|
143
143
|
|
|
144
144
|
if (labelFormatter) {
|
|
145
145
|
return (
|
|
146
|
-
<div className={cn(
|
|
146
|
+
<div className={cn('font-medium', labelClassName)}>
|
|
147
147
|
{labelFormatter(value, payload)}
|
|
148
148
|
</div>
|
|
149
|
-
)
|
|
149
|
+
);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
if (!value) {
|
|
153
|
-
return null
|
|
153
|
+
return null;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
return <div className={cn(
|
|
156
|
+
return <div className={cn('font-medium', labelClassName)}>{value}</div>;
|
|
157
157
|
}, [
|
|
158
158
|
label,
|
|
159
159
|
labelFormatter,
|
|
@@ -162,34 +162,34 @@ function ChartTooltipContent({
|
|
|
162
162
|
labelClassName,
|
|
163
163
|
config,
|
|
164
164
|
labelKey,
|
|
165
|
-
])
|
|
165
|
+
]);
|
|
166
166
|
|
|
167
167
|
if (!active || !payload?.length) {
|
|
168
|
-
return null
|
|
168
|
+
return null;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
const nestLabel = payload.length === 1 && indicator !==
|
|
171
|
+
const nestLabel = payload.length === 1 && indicator !== 'dot';
|
|
172
172
|
|
|
173
173
|
return (
|
|
174
174
|
<div
|
|
175
175
|
className={cn(
|
|
176
|
-
|
|
177
|
-
className
|
|
176
|
+
'border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl',
|
|
177
|
+
className,
|
|
178
178
|
)}
|
|
179
179
|
>
|
|
180
180
|
{!nestLabel ? tooltipLabel : null}
|
|
181
181
|
<div className="grid gap-1.5">
|
|
182
182
|
{payload.map((item, index) => {
|
|
183
|
-
const key = `${nameKey || item.name || item.dataKey ||
|
|
184
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key)
|
|
185
|
-
const indicatorColor = color || item.payload.fill || item.color
|
|
183
|
+
const key = `${nameKey || item.name || item.dataKey || 'value'}`;
|
|
184
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
185
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
186
186
|
|
|
187
187
|
return (
|
|
188
188
|
<div
|
|
189
189
|
key={item.dataKey}
|
|
190
190
|
className={cn(
|
|
191
|
-
|
|
192
|
-
indicator ===
|
|
191
|
+
'[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5',
|
|
192
|
+
indicator === 'dot' && 'items-center',
|
|
193
193
|
)}
|
|
194
194
|
>
|
|
195
195
|
{formatter && item?.value !== undefined && item.name ? (
|
|
@@ -202,19 +202,19 @@ function ChartTooltipContent({
|
|
|
202
202
|
!hideIndicator && (
|
|
203
203
|
<div
|
|
204
204
|
className={cn(
|
|
205
|
-
|
|
205
|
+
'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',
|
|
206
206
|
{
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
indicator ===
|
|
211
|
-
|
|
212
|
-
}
|
|
207
|
+
'h-2.5 w-2.5': indicator === 'dot',
|
|
208
|
+
'w-1': indicator === 'line',
|
|
209
|
+
'w-0 border-[1.5px] border-dashed bg-transparent':
|
|
210
|
+
indicator === 'dashed',
|
|
211
|
+
'my-0.5': nestLabel && indicator === 'dashed',
|
|
212
|
+
},
|
|
213
213
|
)}
|
|
214
214
|
style={
|
|
215
215
|
{
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
'--color-bg': indicatorColor,
|
|
217
|
+
'--color-border': indicatorColor,
|
|
218
218
|
} as React.CSSProperties
|
|
219
219
|
}
|
|
220
220
|
/>
|
|
@@ -222,8 +222,8 @@ function ChartTooltipContent({
|
|
|
222
222
|
)}
|
|
223
223
|
<div
|
|
224
224
|
className={cn(
|
|
225
|
-
|
|
226
|
-
nestLabel ?
|
|
225
|
+
'flex flex-1 justify-between leading-none',
|
|
226
|
+
nestLabel ? 'items-end' : 'items-center',
|
|
227
227
|
)}
|
|
228
228
|
>
|
|
229
229
|
<div className="grid gap-1.5">
|
|
@@ -241,49 +241,49 @@ function ChartTooltipContent({
|
|
|
241
241
|
</>
|
|
242
242
|
)}
|
|
243
243
|
</div>
|
|
244
|
-
)
|
|
244
|
+
);
|
|
245
245
|
})}
|
|
246
246
|
</div>
|
|
247
247
|
</div>
|
|
248
|
-
)
|
|
248
|
+
);
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
-
const ChartLegend = RechartsPrimitive.Legend
|
|
251
|
+
const ChartLegend = RechartsPrimitive.Legend;
|
|
252
252
|
|
|
253
253
|
function ChartLegendContent({
|
|
254
254
|
className,
|
|
255
255
|
hideIcon = false,
|
|
256
256
|
payload,
|
|
257
|
-
verticalAlign =
|
|
257
|
+
verticalAlign = 'bottom',
|
|
258
258
|
nameKey,
|
|
259
|
-
}: React.ComponentProps<
|
|
260
|
-
Pick<RechartsPrimitive.LegendProps,
|
|
261
|
-
hideIcon?: boolean
|
|
262
|
-
nameKey?: string
|
|
259
|
+
}: React.ComponentProps<'div'> &
|
|
260
|
+
Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {
|
|
261
|
+
hideIcon?: boolean;
|
|
262
|
+
nameKey?: string;
|
|
263
263
|
}) {
|
|
264
|
-
const { config } = useChart()
|
|
264
|
+
const { config } = useChart();
|
|
265
265
|
|
|
266
266
|
if (!payload?.length) {
|
|
267
|
-
return null
|
|
267
|
+
return null;
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
return (
|
|
271
271
|
<div
|
|
272
272
|
className={cn(
|
|
273
|
-
|
|
274
|
-
verticalAlign ===
|
|
275
|
-
className
|
|
273
|
+
'flex items-center justify-center gap-4',
|
|
274
|
+
verticalAlign === 'top' ? 'pb-3' : 'pt-3',
|
|
275
|
+
className,
|
|
276
276
|
)}
|
|
277
277
|
>
|
|
278
278
|
{payload.map((item) => {
|
|
279
|
-
const key = `${nameKey || item.dataKey ||
|
|
280
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key)
|
|
279
|
+
const key = `${nameKey || item.dataKey || 'value'}`;
|
|
280
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
281
281
|
|
|
282
282
|
return (
|
|
283
283
|
<div
|
|
284
284
|
key={item.value}
|
|
285
285
|
className={cn(
|
|
286
|
-
|
|
286
|
+
'[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3',
|
|
287
287
|
)}
|
|
288
288
|
>
|
|
289
289
|
{itemConfig?.icon && !hideIcon ? (
|
|
@@ -298,49 +298,49 @@ function ChartLegendContent({
|
|
|
298
298
|
)}
|
|
299
299
|
{itemConfig?.label}
|
|
300
300
|
</div>
|
|
301
|
-
)
|
|
301
|
+
);
|
|
302
302
|
})}
|
|
303
303
|
</div>
|
|
304
|
-
)
|
|
304
|
+
);
|
|
305
305
|
}
|
|
306
306
|
|
|
307
307
|
// Helper to extract item config from a payload.
|
|
308
308
|
function getPayloadConfigFromPayload(
|
|
309
309
|
config: ChartConfig,
|
|
310
310
|
payload: unknown,
|
|
311
|
-
key: string
|
|
311
|
+
key: string,
|
|
312
312
|
) {
|
|
313
|
-
if (typeof payload !==
|
|
314
|
-
return undefined
|
|
313
|
+
if (typeof payload !== 'object' || payload === null) {
|
|
314
|
+
return undefined;
|
|
315
315
|
}
|
|
316
316
|
|
|
317
317
|
const payloadPayload =
|
|
318
|
-
|
|
319
|
-
typeof payload.payload ===
|
|
318
|
+
'payload' in payload &&
|
|
319
|
+
typeof payload.payload === 'object' &&
|
|
320
320
|
payload.payload !== null
|
|
321
321
|
? payload.payload
|
|
322
|
-
: undefined
|
|
322
|
+
: undefined;
|
|
323
323
|
|
|
324
|
-
let configLabelKey: string = key
|
|
324
|
+
let configLabelKey: string = key;
|
|
325
325
|
|
|
326
326
|
if (
|
|
327
327
|
key in payload &&
|
|
328
|
-
typeof payload[key as keyof typeof payload] ===
|
|
328
|
+
typeof payload[key as keyof typeof payload] === 'string'
|
|
329
329
|
) {
|
|
330
|
-
configLabelKey = payload[key as keyof typeof payload] as string
|
|
330
|
+
configLabelKey = payload[key as keyof typeof payload] as string;
|
|
331
331
|
} else if (
|
|
332
332
|
payloadPayload &&
|
|
333
333
|
key in payloadPayload &&
|
|
334
|
-
typeof payloadPayload[key as keyof typeof payloadPayload] ===
|
|
334
|
+
typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'
|
|
335
335
|
) {
|
|
336
336
|
configLabelKey = payloadPayload[
|
|
337
337
|
key as keyof typeof payloadPayload
|
|
338
|
-
] as string
|
|
338
|
+
] as string;
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
return configLabelKey in config
|
|
342
342
|
? config[configLabelKey]
|
|
343
|
-
: config[key as keyof typeof config]
|
|
343
|
+
: config[key as keyof typeof config];
|
|
344
344
|
}
|
|
345
345
|
|
|
346
346
|
export {
|
|
@@ -350,4 +350,4 @@ export {
|
|
|
350
350
|
ChartLegend,
|
|
351
351
|
ChartLegendContent,
|
|
352
352
|
ChartStyle,
|
|
353
|
-
}
|
|
353
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import * as CheckboxPrimitive from
|
|
5
|
-
import { CheckIcon } from
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
5
|
+
import { CheckIcon } from 'lucide-react';
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
7
|
+
import { cn } from '../../shadcn/lib/utils';
|
|
8
8
|
|
|
9
9
|
function Checkbox({
|
|
10
10
|
className,
|
|
@@ -14,8 +14,8 @@ function Checkbox({
|
|
|
14
14
|
<CheckboxPrimitive.Root
|
|
15
15
|
data-slot="checkbox"
|
|
16
16
|
className={cn(
|
|
17
|
-
|
|
18
|
-
className
|
|
17
|
+
'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',
|
|
18
|
+
className,
|
|
19
19
|
)}
|
|
20
20
|
{...props}
|
|
21
21
|
>
|
|
@@ -26,7 +26,7 @@ function Checkbox({
|
|
|
26
26
|
<CheckIcon className="size-3.5" />
|
|
27
27
|
</CheckboxPrimitive.Indicator>
|
|
28
28
|
</CheckboxPrimitive.Root>
|
|
29
|
-
)
|
|
29
|
+
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export { Checkbox }
|
|
32
|
+
export { Checkbox };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import * as CollapsiblePrimitive from
|
|
3
|
+
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
4
4
|
|
|
5
5
|
function Collapsible({
|
|
6
6
|
...props
|
|
7
7
|
}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {
|
|
8
|
-
return <CollapsiblePrimitive.Root data-slot="collapsible" {...props}
|
|
8
|
+
return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} />;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
function CollapsibleTrigger({
|
|
@@ -16,7 +16,7 @@ function CollapsibleTrigger({
|
|
|
16
16
|
data-slot="collapsible-trigger"
|
|
17
17
|
{...props}
|
|
18
18
|
/>
|
|
19
|
-
)
|
|
19
|
+
);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function CollapsibleContent({
|
|
@@ -27,7 +27,7 @@ function CollapsibleContent({
|
|
|
27
27
|
data-slot="collapsible-content"
|
|
28
28
|
{...props}
|
|
29
29
|
/>
|
|
30
|
-
)
|
|
30
|
+
);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export { Collapsible, CollapsibleTrigger, CollapsibleContent }
|
|
33
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Command as CommandPrimitive } from
|
|
5
|
-
import { SearchIcon } from
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import { Command as CommandPrimitive } from 'cmdk';
|
|
5
|
+
import { SearchIcon } from 'lucide-react';
|
|
6
6
|
|
|
7
|
-
import { cn } from
|
|
7
|
+
import { cn } from '../../shadcn/lib/utils';
|
|
8
8
|
import {
|
|
9
9
|
Dialog,
|
|
10
10
|
DialogContent,
|
|
11
11
|
DialogDescription,
|
|
12
12
|
DialogHeader,
|
|
13
13
|
DialogTitle,
|
|
14
|
-
} from
|
|
14
|
+
} from '../../shadcn/ui/dialog';
|
|
15
15
|
|
|
16
16
|
function Command({
|
|
17
17
|
className,
|
|
@@ -21,26 +21,26 @@ function Command({
|
|
|
21
21
|
<CommandPrimitive
|
|
22
22
|
data-slot="command"
|
|
23
23
|
className={cn(
|
|
24
|
-
|
|
25
|
-
className
|
|
24
|
+
'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',
|
|
25
|
+
className,
|
|
26
26
|
)}
|
|
27
27
|
{...props}
|
|
28
28
|
/>
|
|
29
|
-
)
|
|
29
|
+
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
function CommandDialog({
|
|
33
|
-
title =
|
|
34
|
-
description =
|
|
33
|
+
title = 'Command Palette',
|
|
34
|
+
description = 'Search for a command to run...',
|
|
35
35
|
children,
|
|
36
36
|
className,
|
|
37
37
|
showCloseButton = true,
|
|
38
38
|
...props
|
|
39
39
|
}: React.ComponentProps<typeof Dialog> & {
|
|
40
|
-
title?: string
|
|
41
|
-
description?: string
|
|
42
|
-
className?: string
|
|
43
|
-
showCloseButton?: boolean
|
|
40
|
+
title?: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
className?: string;
|
|
43
|
+
showCloseButton?: boolean;
|
|
44
44
|
}) {
|
|
45
45
|
return (
|
|
46
46
|
<Dialog {...props}>
|
|
@@ -49,7 +49,7 @@ function CommandDialog({
|
|
|
49
49
|
<DialogDescription>{description}</DialogDescription>
|
|
50
50
|
</DialogHeader>
|
|
51
51
|
<DialogContent
|
|
52
|
-
className={cn(
|
|
52
|
+
className={cn('overflow-hidden p-0', className)}
|
|
53
53
|
showCloseButton={showCloseButton}
|
|
54
54
|
>
|
|
55
55
|
<Command className="[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
|
|
@@ -57,7 +57,7 @@ function CommandDialog({
|
|
|
57
57
|
</Command>
|
|
58
58
|
</DialogContent>
|
|
59
59
|
</Dialog>
|
|
60
|
-
)
|
|
60
|
+
);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function CommandInput({
|
|
@@ -73,13 +73,13 @@ function CommandInput({
|
|
|
73
73
|
<CommandPrimitive.Input
|
|
74
74
|
data-slot="command-input"
|
|
75
75
|
className={cn(
|
|
76
|
-
|
|
77
|
-
className
|
|
76
|
+
'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',
|
|
77
|
+
className,
|
|
78
78
|
)}
|
|
79
79
|
{...props}
|
|
80
80
|
/>
|
|
81
81
|
</div>
|
|
82
|
-
)
|
|
82
|
+
);
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
function CommandList({
|
|
@@ -90,12 +90,12 @@ function CommandList({
|
|
|
90
90
|
<CommandPrimitive.List
|
|
91
91
|
data-slot="command-list"
|
|
92
92
|
className={cn(
|
|
93
|
-
|
|
94
|
-
className
|
|
93
|
+
'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',
|
|
94
|
+
className,
|
|
95
95
|
)}
|
|
96
96
|
{...props}
|
|
97
97
|
/>
|
|
98
|
-
)
|
|
98
|
+
);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
function CommandEmpty({
|
|
@@ -107,7 +107,7 @@ function CommandEmpty({
|
|
|
107
107
|
className="py-6 text-center text-sm"
|
|
108
108
|
{...props}
|
|
109
109
|
/>
|
|
110
|
-
)
|
|
110
|
+
);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
function CommandGroup({
|
|
@@ -118,12 +118,12 @@ function CommandGroup({
|
|
|
118
118
|
<CommandPrimitive.Group
|
|
119
119
|
data-slot="command-group"
|
|
120
120
|
className={cn(
|
|
121
|
-
|
|
122
|
-
className
|
|
121
|
+
'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',
|
|
122
|
+
className,
|
|
123
123
|
)}
|
|
124
124
|
{...props}
|
|
125
125
|
/>
|
|
126
|
-
)
|
|
126
|
+
);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
function CommandSeparator({
|
|
@@ -133,10 +133,10 @@ function CommandSeparator({
|
|
|
133
133
|
return (
|
|
134
134
|
<CommandPrimitive.Separator
|
|
135
135
|
data-slot="command-separator"
|
|
136
|
-
className={cn(
|
|
136
|
+
className={cn('bg-border -mx-1 h-px', className)}
|
|
137
137
|
{...props}
|
|
138
138
|
/>
|
|
139
|
-
)
|
|
139
|
+
);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
function CommandItem({
|
|
@@ -148,27 +148,27 @@ function CommandItem({
|
|
|
148
148
|
data-slot="command-item"
|
|
149
149
|
className={cn(
|
|
150
150
|
"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
151
|
-
className
|
|
151
|
+
className,
|
|
152
152
|
)}
|
|
153
153
|
{...props}
|
|
154
154
|
/>
|
|
155
|
-
)
|
|
155
|
+
);
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
function CommandShortcut({
|
|
159
159
|
className,
|
|
160
160
|
...props
|
|
161
|
-
}: React.ComponentProps<
|
|
161
|
+
}: React.ComponentProps<'span'>) {
|
|
162
162
|
return (
|
|
163
163
|
<span
|
|
164
164
|
data-slot="command-shortcut"
|
|
165
165
|
className={cn(
|
|
166
|
-
|
|
167
|
-
className
|
|
166
|
+
'text-muted-foreground ml-auto text-xs tracking-widest',
|
|
167
|
+
className,
|
|
168
168
|
)}
|
|
169
169
|
{...props}
|
|
170
170
|
/>
|
|
171
|
-
)
|
|
171
|
+
);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
export {
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
CommandItem,
|
|
182
182
|
CommandShortcut,
|
|
183
183
|
CommandSeparator,
|
|
184
|
-
}
|
|
184
|
+
};
|