@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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { AuthAdapter, AuthContextValue, AuthSession } from './types';
|
|
3
|
+
type AnyAuthContextValue = AuthContextValue<unknown, string, string, AuthSession<unknown, string, string>, unknown>;
|
|
4
|
+
type AuthProviderProps<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
|
|
5
|
+
adapter: AuthAdapter<TUser, TRole, TPermission, TSession, TCredentials>;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
autoSync?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* AuthProvider component - wraps your app with authentication context
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { AuthProvider, createAuthAdapter } from '@k3mart/react-kit/auth2';
|
|
15
|
+
*
|
|
16
|
+
* const authAdapter = createAuthAdapter({
|
|
17
|
+
* // ... configuration
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* function App() {
|
|
21
|
+
* return (
|
|
22
|
+
* <AuthProvider adapter={authAdapter}>
|
|
23
|
+
* <YourApp />
|
|
24
|
+
* </AuthProvider>
|
|
25
|
+
* );
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function AuthProvider<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>({ adapter, children, autoSync, }: AuthProviderProps<TUser, TRole, TPermission, TSession, TCredentials>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* Hook to access auth context
|
|
32
|
+
* Must be used within AuthProvider
|
|
33
|
+
*/
|
|
34
|
+
export declare function useAuthContext(): AnyAuthContextValue;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=AuthProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/AuthProvider.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1E,KAAK,mBAAmB,GAAG,gBAAgB,CACzC,OAAO,EACP,MAAM,EACN,MAAM,EACN,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,CACR,CAAC;AAIF,KAAK,iBAAiB,CACpB,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,IACpB;IACF,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxE,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,EACtB,EACA,OAAO,EACP,QAAQ,EACR,QAAe,GAChB,EAAE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,2CAkDtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,mBAAmB,CAIpD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthAdapter, AuthAdapterConfig, AuthSession } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Enhanced Authentication Adapter
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Token management with auto-refresh
|
|
7
|
+
* - Permission and role hierarchies
|
|
8
|
+
* - Middleware support
|
|
9
|
+
* - Retry logic
|
|
10
|
+
* - Advanced permission checking (AND/OR policies)
|
|
11
|
+
* - Session persistence
|
|
12
|
+
*/
|
|
13
|
+
export declare function createAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(config: AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>): AuthAdapter<TUser, TRole, TPermission, TSession, TCredentials>;
|
|
14
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/adapter.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAGjB,WAAW,EAIZ,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAG,OAAO,EACf,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,QAAQ,SAAS,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,WAAW,CACnE,KAAK,EACL,KAAK,EACL,WAAW,CACZ,EACD,YAAY,GAAG,OAAO,EAEtB,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,GAC3E,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAoYhE"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { AuthAdapterConfig, AuthSession, GraphQLAuthClient, RESTAuthClient } from './types';
|
|
2
|
+
export type GraphQLClientAdapterOptions<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
|
|
3
|
+
client: GraphQLAuthClient<TSession, TCredentials>;
|
|
4
|
+
resolveUser?: (session: TSession | null) => TUser | null;
|
|
5
|
+
resolveRoles?: (session: TSession | null) => TRole[];
|
|
6
|
+
resolvePermissions?: (session: TSession | null) => TPermission[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Creates an auth adapter config for GraphQL clients
|
|
10
|
+
* Works with Apollo Client, urql, graphql-request, etc.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { ApolloClient } from '@apollo/client';
|
|
15
|
+
* import { createGraphQLAuthAdapter } from '@k3mart/react-kit/auth2';
|
|
16
|
+
*
|
|
17
|
+
* const apolloClient = new ApolloClient({ ... });
|
|
18
|
+
*
|
|
19
|
+
* const authConfig = createGraphQLAuthAdapter({
|
|
20
|
+
* client: {
|
|
21
|
+
* login: async (credentials) => {
|
|
22
|
+
* const result = await apolloClient.mutate({
|
|
23
|
+
* mutation: LOGIN_MUTATION,
|
|
24
|
+
* variables: credentials,
|
|
25
|
+
* });
|
|
26
|
+
* return result.data.login;
|
|
27
|
+
* },
|
|
28
|
+
* logout: async () => {
|
|
29
|
+
* await apolloClient.mutate({ mutation: LOGOUT_MUTATION });
|
|
30
|
+
* },
|
|
31
|
+
* refresh: async (refreshToken) => {
|
|
32
|
+
* const result = await apolloClient.mutate({
|
|
33
|
+
* mutation: REFRESH_MUTATION,
|
|
34
|
+
* variables: { refreshToken },
|
|
35
|
+
* });
|
|
36
|
+
* return result.data.refresh;
|
|
37
|
+
* },
|
|
38
|
+
* getCurrentUser: async () => {
|
|
39
|
+
* const result = await apolloClient.query({
|
|
40
|
+
* query: GET_CURRENT_USER_QUERY,
|
|
41
|
+
* });
|
|
42
|
+
* return result.data.currentUser;
|
|
43
|
+
* },
|
|
44
|
+
* },
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function createGraphQLAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(options: GraphQLClientAdapterOptions<TUser, TRole, TPermission, TSession, TCredentials>): Partial<AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>>;
|
|
49
|
+
export type RESTClientAdapterOptions<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown> = {
|
|
50
|
+
client: RESTAuthClient<TSession, TCredentials>;
|
|
51
|
+
resolveUser?: (session: TSession | null) => TUser | null;
|
|
52
|
+
resolveRoles?: (session: TSession | null) => TRole[];
|
|
53
|
+
resolvePermissions?: (session: TSession | null) => TPermission[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Creates an auth adapter config for REST API clients
|
|
57
|
+
* Works with fetch, axios, ky, etc.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* import axios from 'axios';
|
|
62
|
+
* import { createRESTAuthAdapter } from '@k3mart/react-kit/auth2';
|
|
63
|
+
*
|
|
64
|
+
* const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
65
|
+
*
|
|
66
|
+
* const authConfig = createRESTAuthAdapter({
|
|
67
|
+
* client: {
|
|
68
|
+
* login: async (credentials) => {
|
|
69
|
+
* const response = await api.post('/auth/login', credentials);
|
|
70
|
+
* return response.data;
|
|
71
|
+
* },
|
|
72
|
+
* logout: async () => {
|
|
73
|
+
* await api.post('/auth/logout');
|
|
74
|
+
* },
|
|
75
|
+
* refresh: async (refreshToken) => {
|
|
76
|
+
* const response = await api.post('/auth/refresh', { refreshToken });
|
|
77
|
+
* return response.data;
|
|
78
|
+
* },
|
|
79
|
+
* getCurrentUser: async () => {
|
|
80
|
+
* const response = await api.get('/auth/me');
|
|
81
|
+
* return response.data;
|
|
82
|
+
* },
|
|
83
|
+
* },
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function createRESTAuthAdapter<TUser = unknown, TRole extends string = string, TPermission extends string = string, TSession extends AuthSession<TUser, TRole, TPermission> = AuthSession<TUser, TRole, TPermission>, TCredentials = unknown>(options: RESTClientAdapterOptions<TUser, TRole, TPermission, TSession, TCredentials>): Partial<AuthAdapterConfig<TUser, TRole, TPermission, TSession, TCredentials>>;
|
|
88
|
+
/**
|
|
89
|
+
* Helper to create an axios interceptor that automatically adds auth token
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```tsx
|
|
93
|
+
* import axios from 'axios';
|
|
94
|
+
* import { createAxiosAuthInterceptor } from '@k3mart/react-kit/auth2';
|
|
95
|
+
*
|
|
96
|
+
* const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
97
|
+
*
|
|
98
|
+
* createAxiosAuthInterceptor(api, authAdapter);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function createAxiosAuthInterceptor(axiosInstance: any, getToken: () => string | null, options?: {
|
|
102
|
+
tokenType?: string;
|
|
103
|
+
onTokenExpired?: () => void;
|
|
104
|
+
refreshToken?: () => Promise<void>;
|
|
105
|
+
}): void;
|
|
106
|
+
/**
|
|
107
|
+
* Helper to create a fetch wrapper with auth token injection
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```tsx
|
|
111
|
+
* import { createAuthFetch } from '@k3mart/react-kit/auth2';
|
|
112
|
+
*
|
|
113
|
+
* const authenticatedFetch = createAuthFetch(
|
|
114
|
+
* () => authAdapter.getToken(),
|
|
115
|
+
* {
|
|
116
|
+
* onTokenExpired: () => authAdapter.logout(),
|
|
117
|
+
* refreshToken: () => authAdapter.refresh(),
|
|
118
|
+
* }
|
|
119
|
+
* );
|
|
120
|
+
*
|
|
121
|
+
* // Use it like regular fetch
|
|
122
|
+
* const response = await authenticatedFetch('/api/users');
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function createAuthFetch(getToken: () => string | null, options?: {
|
|
126
|
+
tokenType?: string;
|
|
127
|
+
onTokenExpired?: () => void;
|
|
128
|
+
refreshToken?: () => Promise<void>;
|
|
129
|
+
}): typeof fetch;
|
|
130
|
+
/**
|
|
131
|
+
* Helper to create Apollo Link with auth token injection
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* import { ApolloClient, InMemoryCache, from } from '@apollo/client';
|
|
136
|
+
* import { createApolloAuthLink } from '@k3mart/react-kit/auth2';
|
|
137
|
+
*
|
|
138
|
+
* const authLink = createApolloAuthLink(() => authAdapter.getToken());
|
|
139
|
+
*
|
|
140
|
+
* const client = new ApolloClient({
|
|
141
|
+
* link: from([authLink, httpLink]),
|
|
142
|
+
* cache: new InMemoryCache(),
|
|
143
|
+
* });
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
export declare function createApolloAuthLink(getToken: () => string | null, options?: {
|
|
147
|
+
tokenType?: string;
|
|
148
|
+
}): (ApolloLink: any) => any;
|
|
149
|
+
//# sourceMappingURL=client-adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-adapters.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/client-adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
import { CanProps, RequireAuthProps, WithPermissionOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Component that requires authentication
|
|
5
|
+
* Optionally checks for specific roles and permissions
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // Basic authentication check
|
|
10
|
+
* <RequireAuth fallback={<Login />}>
|
|
11
|
+
* <Dashboard />
|
|
12
|
+
* </RequireAuth>
|
|
13
|
+
*
|
|
14
|
+
* // With role check
|
|
15
|
+
* <RequireAuth
|
|
16
|
+
* roles="admin"
|
|
17
|
+
* fallback={<Forbidden />}
|
|
18
|
+
* loadingFallback={<Spinner />}
|
|
19
|
+
* >
|
|
20
|
+
* <AdminPanel />
|
|
21
|
+
* </RequireAuth>
|
|
22
|
+
*
|
|
23
|
+
* // With permission check
|
|
24
|
+
* <RequireAuth
|
|
25
|
+
* permissions={['post:edit', 'post:delete']}
|
|
26
|
+
* fallback={<Forbidden />}
|
|
27
|
+
* >
|
|
28
|
+
* <PostEditor />
|
|
29
|
+
* </RequireAuth>
|
|
30
|
+
*
|
|
31
|
+
* // Complex rule
|
|
32
|
+
* <RequireAuth
|
|
33
|
+
* roles={['admin', 'moderator']}
|
|
34
|
+
* permissions={{
|
|
35
|
+
* operator: 'OR',
|
|
36
|
+
* permissions: ['post:edit', 'post:delete']
|
|
37
|
+
* }}
|
|
38
|
+
* requireAll={false}
|
|
39
|
+
* fallback={<Forbidden />}
|
|
40
|
+
* >
|
|
41
|
+
* <ContentManager />
|
|
42
|
+
* </RequireAuth>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function RequireAuth<TRole extends string = string, TPermission extends string = string>({ children, fallback, loadingFallback, roles, permissions, requireAll, }: RequireAuthProps<TRole, TPermission>): import('react').ReactNode;
|
|
46
|
+
/**
|
|
47
|
+
* Component for conditional rendering based on permissions
|
|
48
|
+
* More flexible than RequireAuth - doesn't check authentication status
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* // Show button only if user can edit
|
|
53
|
+
* <Can permissions="post:edit" fallback={<ReadOnlyView />}>
|
|
54
|
+
* <EditButton />
|
|
55
|
+
* </Can>
|
|
56
|
+
*
|
|
57
|
+
* // Show admin panel if user is admin
|
|
58
|
+
* <Can roles="admin">
|
|
59
|
+
* <AdminPanel />
|
|
60
|
+
* </Can>
|
|
61
|
+
*
|
|
62
|
+
* // Complex permission check
|
|
63
|
+
* <Can
|
|
64
|
+
* roles={['admin', 'moderator']}
|
|
65
|
+
* permissions={{
|
|
66
|
+
* operator: 'OR',
|
|
67
|
+
* permissions: ['post:edit', 'post:delete']
|
|
68
|
+
* }}
|
|
69
|
+
* requireAll={false}
|
|
70
|
+
* >
|
|
71
|
+
* <ManageButton />
|
|
72
|
+
* </Can>
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function Can<TRole extends string = string, TPermission extends string = string>({ children, fallback, roles, permissions, requireAll, }: CanProps<TRole, TPermission>): import('react').ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Higher-order component that wraps a component with permission checks
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```tsx
|
|
81
|
+
* const AdminButton = withPermission(Button, {
|
|
82
|
+
* roles: 'admin'
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* const EditButton = withPermission(Button, {
|
|
86
|
+
* permissions: 'post:edit'
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* // Use like regular component
|
|
90
|
+
* <AdminButton onClick={handleAdmin}>Admin Action</AdminButton>
|
|
91
|
+
* <EditButton onClick={handleEdit}>Edit Post</EditButton>
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function withPermission<TRole extends string = string, TPermission extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>>(Component: ComponentType<TProps>, options: WithPermissionOptions<TRole, TPermission>): ComponentType<TProps>;
|
|
95
|
+
/**
|
|
96
|
+
* Component that shows children only when authenticated
|
|
97
|
+
*/
|
|
98
|
+
export declare function ShowWhenAuthenticated({ children, }: {
|
|
99
|
+
children: React.ReactNode;
|
|
100
|
+
}): import('react').ReactNode;
|
|
101
|
+
/**
|
|
102
|
+
* Component that shows children only when NOT authenticated
|
|
103
|
+
*/
|
|
104
|
+
export declare function ShowWhenUnauthenticated({ children, }: {
|
|
105
|
+
children: React.ReactNode;
|
|
106
|
+
}): import('react').ReactNode;
|
|
107
|
+
/**
|
|
108
|
+
* Component that shows children only while loading
|
|
109
|
+
*/
|
|
110
|
+
export declare function ShowWhenLoading({ children }: {
|
|
111
|
+
children: React.ReactNode;
|
|
112
|
+
}): import('react').ReactNode;
|
|
113
|
+
/**
|
|
114
|
+
* Component that shows children only when there's an error
|
|
115
|
+
*/
|
|
116
|
+
export declare function ShowWhenError({ children }: {
|
|
117
|
+
children: React.ReactNode;
|
|
118
|
+
}): import('react').ReactNode;
|
|
119
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/components.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAQjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,WAAW,CACzB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,EACA,QAAQ,EACR,QAAe,EACf,eAAsB,EACtB,KAAK,EACL,WAAW,EACX,UAAiB,GAClB,EAAE,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,6BAwBtC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,GAAG,CACjB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,EACA,QAAQ,EACR,QAAe,EACf,KAAK,EACL,WAAW,EACX,UAAiB,GAClB,EAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,6BAI9B;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhE,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,GACjD,aAAa,CAAC,MAAM,CAAC,CAQvB;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,6BAGA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,6BAGA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,6BAG1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,6BAGxE"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { AuthSession, PermissionPolicy, PermissionRule, WithPermissionOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to access the entire auth context
|
|
4
|
+
*/
|
|
5
|
+
export declare function useAuth(): {
|
|
6
|
+
state: import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>;
|
|
7
|
+
status: import('./types').AuthStatus;
|
|
8
|
+
session: AuthSession<unknown, string, string> | null;
|
|
9
|
+
user: unknown;
|
|
10
|
+
roles: string[];
|
|
11
|
+
permissions: string[];
|
|
12
|
+
error?: unknown;
|
|
13
|
+
login?: ((credentials: unknown) => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>) | undefined;
|
|
14
|
+
logout: () => Promise<void>;
|
|
15
|
+
refresh: () => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
|
|
16
|
+
setSession: (session: AuthSession<unknown, string, string> | null) => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
|
|
17
|
+
hasRole: (target: string | string[], options?: {
|
|
18
|
+
requireAll?: boolean;
|
|
19
|
+
}) => boolean;
|
|
20
|
+
hasPermission: (target: string | string[] | PermissionPolicy<string>, options?: {
|
|
21
|
+
requireAll?: boolean;
|
|
22
|
+
}) => boolean;
|
|
23
|
+
can: (rule: PermissionRule<string, string>) => boolean;
|
|
24
|
+
getToken: () => string | null;
|
|
25
|
+
isTokenExpired: () => boolean;
|
|
26
|
+
getTimeUntilExpiry: () => number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Hook to get the current auth status
|
|
30
|
+
*/
|
|
31
|
+
export declare function useAuthStatus(): import('./types').AuthStatus;
|
|
32
|
+
/**
|
|
33
|
+
* Hook to check if user is authenticated
|
|
34
|
+
*/
|
|
35
|
+
export declare function useIsAuthenticated(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Hook to get the current session
|
|
38
|
+
*/
|
|
39
|
+
export declare function useAuthSession<TSession extends AuthSession>(): TSession | null;
|
|
40
|
+
/**
|
|
41
|
+
* Hook to get the current user
|
|
42
|
+
*/
|
|
43
|
+
export declare function useAuthUser<TUser>(): TUser | null;
|
|
44
|
+
/**
|
|
45
|
+
* Hook to get user roles
|
|
46
|
+
*/
|
|
47
|
+
export declare function useAuthRoles<TRole extends string = string>(): TRole[];
|
|
48
|
+
/**
|
|
49
|
+
* Hook to get user permissions
|
|
50
|
+
*/
|
|
51
|
+
export declare function useAuthPermissions<TPermission extends string = string>(): TPermission[];
|
|
52
|
+
/**
|
|
53
|
+
* Hook to get authentication error
|
|
54
|
+
*/
|
|
55
|
+
export declare function useAuthError(): unknown;
|
|
56
|
+
/**
|
|
57
|
+
* Hook to check if user has specific permission(s)
|
|
58
|
+
* Supports permission policies with AND/OR operators
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```tsx
|
|
62
|
+
* // Check single permission
|
|
63
|
+
* const canEdit = usePermission('post:edit');
|
|
64
|
+
*
|
|
65
|
+
* // Check multiple permissions (all required by default)
|
|
66
|
+
* const canManage = usePermission(['post:edit', 'post:delete']);
|
|
67
|
+
*
|
|
68
|
+
* // Check multiple permissions (any one required)
|
|
69
|
+
* const canModify = usePermission(['post:edit', 'post:delete'], { requireAll: false });
|
|
70
|
+
*
|
|
71
|
+
* // Check with policy
|
|
72
|
+
* const canAccess = usePermission({
|
|
73
|
+
* operator: 'OR',
|
|
74
|
+
* permissions: ['admin:access', 'moderator:access']
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function usePermission<TPermission extends string = string>(permission: TPermission | TPermission[] | PermissionPolicy<TPermission>, options?: {
|
|
79
|
+
requireAll?: boolean;
|
|
80
|
+
}): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Hook to check if user has specific role(s)
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```tsx
|
|
86
|
+
* // Check single role
|
|
87
|
+
* const isAdmin = useRole('admin');
|
|
88
|
+
*
|
|
89
|
+
* // Check multiple roles (all required by default)
|
|
90
|
+
* const isSuperAdmin = useRole(['admin', 'super']);
|
|
91
|
+
*
|
|
92
|
+
* // Check multiple roles (any one required)
|
|
93
|
+
* const isStaff = useRole(['admin', 'moderator'], { requireAll: false });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function useRole<TRole extends string = string>(roles: TRole | TRole[], options?: {
|
|
97
|
+
requireAll?: boolean;
|
|
98
|
+
}): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Hook to check complex permission rules
|
|
101
|
+
* Combines role and permission checks with flexible logic
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```tsx
|
|
105
|
+
* // Check if user has admin role AND edit permission
|
|
106
|
+
* const canAdminEdit = useCan({
|
|
107
|
+
* roles: 'admin',
|
|
108
|
+
* permissions: 'post:edit',
|
|
109
|
+
* requireAll: true
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* // Check if user has admin role OR edit permission
|
|
113
|
+
* const canAccess = useCan({
|
|
114
|
+
* roles: 'admin',
|
|
115
|
+
* permissions: 'post:edit',
|
|
116
|
+
* requireAll: false
|
|
117
|
+
* });
|
|
118
|
+
*
|
|
119
|
+
* // Complex policy
|
|
120
|
+
* const canManage = useCan({
|
|
121
|
+
* roles: ['admin', 'moderator'],
|
|
122
|
+
* permissions: {
|
|
123
|
+
* operator: 'OR',
|
|
124
|
+
* permissions: ['post:edit', 'post:delete']
|
|
125
|
+
* }
|
|
126
|
+
* });
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare function useCan<TRole extends string = string, TPermission extends string = string>(rule: WithPermissionOptions<TRole, TPermission> | PermissionRule<TRole, TPermission>): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Hook to get the current auth token
|
|
132
|
+
*/
|
|
133
|
+
export declare function useAuthToken(): string | null;
|
|
134
|
+
/**
|
|
135
|
+
* Hook to check if token is expired
|
|
136
|
+
*/
|
|
137
|
+
export declare function useIsTokenExpired(): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Hook to get time until token expiry in milliseconds
|
|
140
|
+
*/
|
|
141
|
+
export declare function useTimeUntilExpiry(): number;
|
|
142
|
+
/**
|
|
143
|
+
* Hook to get the login function
|
|
144
|
+
*/
|
|
145
|
+
export declare function useLogin<TCredentials = unknown>(): ((credentials: TCredentials) => Promise<unknown>) | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Hook to get the logout function
|
|
148
|
+
*/
|
|
149
|
+
export declare function useLogout(): () => Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Hook to get the refresh function
|
|
152
|
+
*/
|
|
153
|
+
export declare function useRefresh(): () => Promise<import('./types').AuthAdapterState<AuthSession<unknown, string, string>, unknown, string, string>>;
|
|
154
|
+
/**
|
|
155
|
+
* Hook to get the setSession function
|
|
156
|
+
*/
|
|
157
|
+
export declare function useSetSession<TSession extends AuthSession>(): (session: TSession | null) => Promise<unknown>;
|
|
158
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAOjB;;GAEG;AACH,wBAAgB,OAAO;;;;;;;;;;;;;kBA8NulF,CAAC;;;kBAAmJ,CAAC;;;;;;EA5NlwF;AAED;;GAEG;AACH,wBAAgB,aAAa,iCAG5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,YAGjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,WAAW,KAEvC,QAAQ,GAAG,IAAI,CAClC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,KAEhB,KAAK,GAAG,IAAI,CAC5B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,KAExC,KAAK,EAAE,CACxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,KAE9C,WAAW,EAAE,CACpC;AAED;;GAEG;AACH,wBAAgB,YAAY,YAG3B;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,EAC/D,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,EACvE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,WAInC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EACnD,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EACtB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,WAInC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,MAAM,CACpB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EAEnC,IAAI,EACA,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,GACzC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,WAIvC;AAMD;;GAEG;AACH,wBAAgB,YAAY,kBAG3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,YAGhC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,WAGjC;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,GAAG,OAAO,KAE7B,CAAC,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAC9E;AAED;;GAEG;AACH,wBAAgB,SAAS,wBAGxB;AAED;;GAEG;AACH,wBAAgB,UAAU,qHAGzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,SAAS,WAAW,KAEnC,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CACpE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { createAuthAdapter } from './adapter';
|
|
2
|
+
export { AuthProvider, useAuthContext } from './AuthProvider';
|
|
3
|
+
export { createStorage, createMemoryStorage, createBrowserStorage, createCookieStorage, } from './storage';
|
|
4
|
+
export { createTokenManager } from './token-manager';
|
|
5
|
+
export { expandPermissions, expandRoles, checkPermissions, checkRoles, evaluatePermissionRule, } from './permission-checker';
|
|
6
|
+
export { createGraphQLAuthAdapter, createRESTAuthAdapter, createAxiosAuthInterceptor, createAuthFetch, createApolloAuthLink, } from './client-adapters';
|
|
7
|
+
export type { GraphQLClientAdapterOptions, RESTClientAdapterOptions, } from './client-adapters';
|
|
8
|
+
export { useAuth, useAuthStatus, useIsAuthenticated, useAuthSession, useAuthUser, useAuthRoles, useAuthPermissions, useAuthError, usePermission, useRole, useCan, useAuthToken, useIsTokenExpired, useTimeUntilExpiry, useLogin, useLogout, useRefresh, useSetSession, } from './hooks';
|
|
9
|
+
export { RequireAuth, Can, withPermission, ShowWhenAuthenticated, ShowWhenUnauthenticated, ShowWhenLoading, ShowWhenError, } from './components';
|
|
10
|
+
export type { AuthStatus, TokenType, RefreshStrategy, AuthSession, PermissionOperator, PermissionPolicy, PermissionRule, PermissionHierarchy, RoleHierarchy, AuthAdapterState, AuthAdapterSubscriber, AuthStorage, StorageType, StorageOptions, AuthMiddleware, TokenManager, AuthAdapterConfig, AuthAdapter, AuthContextValue, RequireAuthProps, CanProps, WithPermissionOptions, GraphQLAuthClient, RESTAuthClient, ClientAdapter, InferSession, InferUser, InferRole, InferPermission, InferCredentials, } from './types';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAM9D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAMnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,OAAO,EACP,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,WAAW,EACX,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,aAAa,GACd,MAAM,cAAc,CAAC;AAMtB,YAAY,EAEV,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EAEb,gBAAgB,EAChB,qBAAqB,EAErB,WAAW,EACX,WAAW,EACX,cAAc,EAEd,cAAc,EAEd,YAAY,EAEZ,iBAAiB,EACjB,WAAW,EAEX,gBAAgB,EAEhB,gBAAgB,EAChB,QAAQ,EACR,qBAAqB,EAErB,iBAAiB,EACjB,cAAc,EACd,aAAa,EAEb,YAAY,EACZ,SAAS,EACT,SAAS,EACT,eAAe,EACf,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { PermissionHierarchy, PermissionPolicy, PermissionRule, RoleHierarchy } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Expands permissions based on hierarchy
|
|
4
|
+
* e.g., if user has 'admin' and hierarchy defines admin: ['read', 'write'],
|
|
5
|
+
* user effectively has ['admin', 'read', 'write']
|
|
6
|
+
*/
|
|
7
|
+
export declare function expandPermissions<T extends string>(permissions: T[], hierarchy?: PermissionHierarchy<T>): T[];
|
|
8
|
+
/**
|
|
9
|
+
* Expands roles based on hierarchy
|
|
10
|
+
* e.g., if user has 'admin' and hierarchy defines admin: ['moderator', 'user'],
|
|
11
|
+
* user effectively has ['admin', 'moderator', 'user']
|
|
12
|
+
*/
|
|
13
|
+
export declare function expandRoles<T extends string>(roles: T[], hierarchy?: RoleHierarchy<T>): T[];
|
|
14
|
+
/**
|
|
15
|
+
* Checks if target permissions match against user permissions
|
|
16
|
+
* Supports both array of permissions and permission policies (AND/OR operations)
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkPermissions<T extends string>(userPermissions: T[], target: T | T[] | PermissionPolicy<T>, options?: {
|
|
19
|
+
requireAll?: boolean;
|
|
20
|
+
}): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if target roles match against user roles
|
|
23
|
+
*/
|
|
24
|
+
export declare function checkRoles<T extends string>(userRoles: T[], target: T | T[], options?: {
|
|
25
|
+
requireAll?: boolean;
|
|
26
|
+
}): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Evaluates a permission rule (combination of roles and permissions)
|
|
29
|
+
*/
|
|
30
|
+
export declare function evaluatePermissionRule<TRole extends string = string, TPermission extends string = string>(userRoles: TRole[], userPermissions: TPermission[], rule: PermissionRule<TRole, TPermission>): boolean;
|
|
31
|
+
//# sourceMappingURL=permission-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/permission-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,WAAW,EAAE,CAAC,EAAE,EAChB,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAsBL;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAC3B,CAAC,EAAE,CAsBL;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,eAAe,EAAE,CAAC,EAAE,EACpB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,EACrC,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAsBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,SAAS,EAAE,CAAC,EAAE,EACd,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EACf,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAST;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,WAAW,SAAS,MAAM,GAAG,MAAM,EAEnC,SAAS,EAAE,KAAK,EAAE,EAClB,eAAe,EAAE,WAAW,EAAE,EAC9B,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,GACvC,OAAO,CAkBT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AuthStorage, StorageOptions } from './types';
|
|
2
|
+
export declare const createMemoryStorage: <T>() => AuthStorage<T>;
|
|
3
|
+
export declare const createCookieStorage: <T>(options: StorageOptions) => AuthStorage<T>;
|
|
4
|
+
export type BrowserStorageOptions<T> = {
|
|
5
|
+
key: string;
|
|
6
|
+
serialize?: (value: T | null) => Promise<string | null> | string | null;
|
|
7
|
+
deserialize?: (value: string | null) => Promise<T | null> | T | null;
|
|
8
|
+
storage?: Storage;
|
|
9
|
+
encrypt?: boolean;
|
|
10
|
+
encryptionKey?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const createBrowserStorage: <T>(options: BrowserStorageOptions<T>) => AuthStorage<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates appropriate storage based on options
|
|
15
|
+
*/
|
|
16
|
+
export declare function createStorage<T>(options?: StorageOptions): AuthStorage<T>;
|
|
17
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAS3D,eAAO,MAAM,mBAAmB,GAAI,CAAC,OAAK,WAAW,CAAC,CAAC,CAYtD,CAAC;AAmGF,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,SAAS,cAAc,KACtB,WAAW,CAAC,CAAC,CA4Gf,CAAC;AAMF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IACxE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,CAAC,EACpC,SAAS,qBAAqB,CAAC,CAAC,CAAC,KAChC,WAAW,CAAC,CAAC,CAkFf,CAAC;AAMF;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,CA2B7E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TokenManager } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Default token manager implementation
|
|
4
|
+
* Handles token expiration checks and refresh scheduling
|
|
5
|
+
*/
|
|
6
|
+
export declare function createTokenManager(config?: {
|
|
7
|
+
refreshThreshold?: number;
|
|
8
|
+
}): TokenManager;
|
|
9
|
+
//# sourceMappingURL=token-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../../../src/kit/builder/auth/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,YAAY,CA8Cf"}
|