@lumeweb/portal-framework-ui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/Copyable.js +1 -4
- package/dist/esm/components/Copyable.js.map +1 -1
- package/dist/esm/components/FilterChip.js +24 -30
- package/dist/esm/components/FilterChip.js.map +1 -1
- package/dist/esm/components/Forms.js +75 -80
- package/dist/esm/components/Forms.js.map +1 -1
- package/dist/esm/components/InlineAuthLinkBanner.js +1 -4
- package/dist/esm/components/InlineAuthLinkBanner.js.map +1 -1
- package/dist/esm/components/KeyboardShortcutDialog.js +38 -43
- package/dist/esm/components/KeyboardShortcutDialog.js.map +1 -1
- package/dist/esm/components/Loading.js +1 -4
- package/dist/esm/components/Loading.js.map +1 -1
- package/dist/esm/components/LumeLogo.js +2 -7
- package/dist/esm/components/LumeLogo.js.map +1 -1
- package/dist/esm/components/MainNavigation.js +189 -196
- package/dist/esm/components/MainNavigation.js.map +1 -1
- package/dist/esm/components/SkeletonLoader.js +1 -4
- package/dist/esm/components/SkeletonLoader.js.map +1 -1
- package/dist/esm/components/TableActionsDropdown.js +1 -4
- package/dist/esm/components/TableActionsDropdown.js.map +1 -1
- package/dist/esm/components/TableContainer.js +1 -4
- package/dist/esm/components/TableContainer.js.map +1 -1
- package/dist/esm/components/ThemeSwitcher.js +29 -36
- package/dist/esm/components/ThemeSwitcher.js.map +1 -1
- package/dist/esm/components/ThemedBadge.js +1 -4
- package/dist/esm/components/ThemedBadge.js.map +1 -1
- package/dist/esm/components/actions/ActionListRenderer.js +28 -35
- package/dist/esm/components/actions/ActionListRenderer.js.map +1 -1
- package/dist/esm/components/actions/actionHelpers.d.ts +0 -2
- package/dist/esm/components/actions/actionHelpers.js +30 -15
- package/dist/esm/components/actions/actionHelpers.js.map +1 -1
- package/dist/esm/components/actions/index.js +6 -33
- package/dist/esm/components/actions/items/ButtonActionItem.js +13 -20
- package/dist/esm/components/actions/items/ButtonActionItem.js.map +1 -1
- package/dist/esm/components/actions/items/CancelActionItem.js +18 -25
- package/dist/esm/components/actions/items/CancelActionItem.js.map +1 -1
- package/dist/esm/components/actions/items/CustomActionItem.js +17 -24
- package/dist/esm/components/actions/items/CustomActionItem.js.map +1 -1
- package/dist/esm/components/actions/items/LinkActionItem.js +22 -29
- package/dist/esm/components/actions/items/LinkActionItem.js.map +1 -1
- package/dist/esm/components/actions/items/RetryActionItem.js +13 -20
- package/dist/esm/components/actions/items/RetryActionItem.js.map +1 -1
- package/dist/esm/components/actions/items/SubmitActionItem.js +16 -23
- package/dist/esm/components/actions/items/SubmitActionItem.js.map +1 -1
- package/dist/esm/components/actions/register.js +7 -17
- package/dist/esm/components/actions/register.js.map +1 -1
- package/dist/esm/components/actions/registry.js +2 -8
- package/dist/esm/components/actions/registry.js.map +1 -1
- package/dist/esm/components/actions/types.d.ts +1 -2
- package/dist/esm/components/actions/types.js +25 -28
- package/dist/esm/components/actions/types.js.map +1 -1
- package/dist/esm/components/app/AppComponent.js +17 -25
- package/dist/esm/components/app/AppComponent.js.map +1 -1
- package/dist/esm/components/data-table/BaseTable.d.ts +1 -2
- package/dist/esm/components/data-table/BaseTable.js +7 -16
- package/dist/esm/components/data-table/BaseTable.js.map +1 -1
- package/dist/esm/components/data-table/BaseTableContent.js +6 -14
- package/dist/esm/components/data-table/BaseTableContent.js.map +1 -1
- package/dist/esm/components/data-table/BaseTableInner.js +4 -11
- package/dist/esm/components/data-table/BaseTableInner.js.map +1 -1
- package/dist/esm/components/data-table/BaseTableStackedLayout.js +21 -31
- package/dist/esm/components/data-table/BaseTableStackedLayout.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.js +6 -15
- package/dist/esm/components/data-table/DataTable.js.map +1 -1
- package/dist/esm/components/data-table/DataTable.types.d.ts +3 -3
- package/dist/esm/components/data-table/DataTable.types.js +21 -27
- package/dist/esm/components/data-table/DataTable.types.js.map +1 -1
- package/dist/esm/components/data-table/DataTableController.js +2 -7
- package/dist/esm/components/data-table/DataTableController.js.map +1 -1
- package/dist/esm/components/data-table/DefaultPagination.js +2 -7
- package/dist/esm/components/data-table/DefaultPagination.js.map +1 -1
- package/dist/esm/components/data-table/DefaultTableLayout.js +8 -14
- package/dist/esm/components/data-table/DefaultTableLayout.js.map +1 -1
- package/dist/esm/components/data-table/EmptyState.js +1 -4
- package/dist/esm/components/data-table/EmptyState.js.map +1 -1
- package/dist/esm/components/data-table/LoadingState.js +3 -9
- package/dist/esm/components/data-table/LoadingState.js.map +1 -1
- package/dist/esm/components/data-table/TableAction.js +1 -4
- package/dist/esm/components/data-table/TableAction.js.map +1 -1
- package/dist/esm/components/data-table/TableActionMenu.js +1 -4
- package/dist/esm/components/data-table/TableActionMenu.js.map +1 -1
- package/dist/esm/components/data-table/TableLayoutRenderer.d.ts +0 -1
- package/dist/esm/components/data-table/TableLayoutRenderer.js +10 -20
- package/dist/esm/components/data-table/TableLayoutRenderer.js.map +1 -1
- package/dist/esm/components/data-table/Toolbar.js +19 -29
- package/dist/esm/components/data-table/Toolbar.js.map +1 -1
- package/dist/esm/components/data-table/ToolbarRegistry.d.ts +0 -1
- package/dist/esm/components/data-table/ToolbarRegistry.js +3 -9
- package/dist/esm/components/data-table/ToolbarRegistry.js.map +1 -1
- package/dist/esm/components/data-table/ToolbarRenderer.js +68 -64
- package/dist/esm/components/data-table/ToolbarRenderer.js.map +1 -1
- package/dist/esm/components/data-table/contexts/FilterHelpers.js +19 -25
- package/dist/esm/components/data-table/contexts/FilterHelpers.js.map +1 -1
- package/dist/esm/components/data-table/contexts/RefineTable.js +7 -12
- package/dist/esm/components/data-table/contexts/RefineTable.js.map +1 -1
- package/dist/esm/components/data-table/contexts/TableConfig.js +10 -15
- package/dist/esm/components/data-table/contexts/TableConfig.js.map +1 -1
- package/dist/esm/components/data-table/contexts/TableInstance.js +7 -12
- package/dist/esm/components/data-table/contexts/TableInstance.js.map +1 -1
- package/dist/esm/components/data-table/contexts/index.js +5 -17
- package/dist/esm/components/data-table/filterColumnsForMobile.d.ts +0 -1
- package/dist/esm/components/data-table/filterColumnsForMobile.js +1 -5
- package/dist/esm/components/data-table/filterColumnsForMobile.js.map +1 -1
- package/dist/esm/components/data-table/index.d.ts +0 -3
- package/dist/esm/components/data-table/index.js +19 -45
- package/dist/esm/components/data-table/register.d.ts +1 -1
- package/dist/esm/components/data-table/register.js +1 -12
- package/dist/esm/components/data-table/tableOptions.js +4 -11
- package/dist/esm/components/data-table/tableOptions.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js +7 -16
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js +3 -9
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js +1 -4
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.js +9 -25
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.d.ts +4 -10
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js +65 -52
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/index.d.ts +0 -1
- package/dist/esm/components/data-table/toolbarItems/filters/index.js +4 -15
- package/dist/esm/components/data-table/toolbarItems/filters/register.d.ts +1 -8
- package/dist/esm/components/data-table/toolbarItems/filters/register.js +8 -21
- package/dist/esm/components/data-table/toolbarItems/filters/types.d.ts +6 -11
- package/dist/esm/components/data-table/toolbarItems/filters/types.js +54 -54
- package/dist/esm/components/data-table/toolbarItems/filters/types.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/filters/util.js +4 -9
- package/dist/esm/components/data-table/toolbarItems/filters/util.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/index.d.ts +0 -1
- package/dist/esm/components/data-table/toolbarItems/index.js +7 -21
- package/dist/esm/components/data-table/toolbarItems/items/custom.d.ts +0 -1
- package/dist/esm/components/data-table/toolbarItems/items/custom.js +2 -7
- package/dist/esm/components/data-table/toolbarItems/items/custom.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/items/index.js +5 -13
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js +2 -8
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/items/search.d.ts +0 -1
- package/dist/esm/components/data-table/toolbarItems/items/search.js +5 -12
- package/dist/esm/components/data-table/toolbarItems/items/search.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/items/separator.d.ts +0 -1
- package/dist/esm/components/data-table/toolbarItems/items/separator.js +2 -8
- package/dist/esm/components/data-table/toolbarItems/items/separator.js.map +1 -1
- package/dist/esm/components/data-table/toolbarItems/register.d.ts +0 -3
- package/dist/esm/components/data-table/toolbarItems/register.js +33 -44
- package/dist/esm/components/data-table/toolbarItems/register.js.map +1 -1
- package/dist/esm/components/data-table/useMobileDetection.d.ts +0 -1
- package/dist/esm/components/data-table/useMobileDetection.js +18 -24
- package/dist/esm/components/data-table/useMobileDetection.js.map +1 -1
- package/dist/esm/components/data-table/useTableHandlers.js +1 -4
- package/dist/esm/components/data-table/useTableHandlers.js.map +1 -1
- package/dist/esm/components/data-table/useTableLayoutSelector.js +5 -11
- package/dist/esm/components/data-table/useTableLayoutSelector.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.context.d.ts +0 -1
- package/dist/esm/components/dialog/Dialog.context.js +17 -25
- package/dist/esm/components/dialog/Dialog.context.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.registry.js +13 -23
- package/dist/esm/components/dialog/Dialog.registry.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.renderer.js +8 -19
- package/dist/esm/components/dialog/Dialog.renderer.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.types.d.ts +1 -3
- package/dist/esm/components/dialog/Dialog.types.js +178 -134
- package/dist/esm/components/dialog/Dialog.types.js.map +1 -1
- package/dist/esm/components/dialog/DialogActions.context.js +6 -11
- package/dist/esm/components/dialog/DialogActions.context.js.map +1 -1
- package/dist/esm/components/dialog/DialogContainer.js +3 -9
- package/dist/esm/components/dialog/DialogContainer.js.map +1 -1
- package/dist/esm/components/dialog/DialogContent.js +3 -9
- package/dist/esm/components/dialog/DialogContent.js.map +1 -1
- package/dist/esm/components/dialog/DialogFooterContent.js +2 -7
- package/dist/esm/components/dialog/DialogFooterContent.js.map +1 -1
- package/dist/esm/components/dialog/DialogHeaderContent.js +3 -9
- package/dist/esm/components/dialog/DialogHeaderContent.js.map +1 -1
- package/dist/esm/components/dialog/DialogState.context.js +4 -9
- package/dist/esm/components/dialog/DialogState.context.js.map +1 -1
- package/dist/esm/components/dialog/index.d.ts +0 -1
- package/dist/esm/components/dialog/index.js +5 -51
- package/dist/esm/components/dialog/types/AlertDialog.d.ts +0 -1
- package/dist/esm/components/dialog/types/AlertDialog.js +2 -7
- package/dist/esm/components/dialog/types/AlertDialog.js.map +1 -1
- package/dist/esm/components/dialog/types/ConfirmDialog.d.ts +0 -1
- package/dist/esm/components/dialog/types/ConfirmDialog.js +2 -7
- package/dist/esm/components/dialog/types/ConfirmDialog.js.map +1 -1
- package/dist/esm/components/dialog/types/CustomDialog.d.ts +0 -1
- package/dist/esm/components/dialog/types/CustomDialog.js +2 -7
- package/dist/esm/components/dialog/types/CustomDialog.js.map +1 -1
- package/dist/esm/components/dialog/types/FormDialog.d.ts +0 -1
- package/dist/esm/components/dialog/types/FormDialog.js +2 -7
- package/dist/esm/components/dialog/types/FormDialog.js.map +1 -1
- package/dist/esm/components/dialog/types/WizardDialog.js +4 -10
- package/dist/esm/components/dialog/types/WizardDialog.js.map +1 -1
- package/dist/esm/components/dialog/utils/dialogClasses.js +2 -7
- package/dist/esm/components/dialog/utils/dialogClasses.js.map +1 -1
- package/dist/esm/components/dialog/utils/dialogDetection.d.ts +0 -1
- package/dist/esm/components/dialog/utils/dialogDetection.js +3 -9
- package/dist/esm/components/dialog/utils/dialogDetection.js.map +1 -1
- package/dist/esm/components/dialog/utils/index.js +3 -13
- package/dist/esm/components/editor/BlockTypeDropdown.js +3 -9
- package/dist/esm/components/editor/BlockTypeDropdown.js.map +1 -1
- package/dist/esm/components/editor/Editor.d.ts +3 -10
- package/dist/esm/components/editor/Editor.js +12 -110
- package/dist/esm/components/editor/Editor.js.map +1 -1
- package/dist/{cjs/components/editor/Editor.d.cts → esm/components/editor/EditorInner.d.ts} +3 -3
- package/dist/esm/components/editor/EditorInner.js +107 -0
- package/dist/esm/components/editor/EditorInner.js.map +1 -0
- package/dist/esm/components/editor/Preview.js +9 -14
- package/dist/esm/components/editor/Preview.js.map +1 -1
- package/dist/esm/components/editor/ToolbarContext.js +47 -52
- package/dist/esm/components/editor/ToolbarContext.js.map +1 -1
- package/dist/esm/components/editor/ToolbarPlugin.d.ts +1 -1
- package/dist/esm/components/editor/ToolbarPlugin.js +57 -64
- package/dist/esm/components/editor/ToolbarPlugin.js.map +1 -1
- package/dist/esm/components/editor/formatting.js +58 -63
- package/dist/esm/components/editor/formatting.js.map +1 -1
- package/dist/esm/components/editor/index.d.ts +2 -1
- package/dist/esm/components/editor/index.js +2 -11
- package/dist/esm/components/form/FormGroup.js +20 -25
- package/dist/esm/components/form/FormGroup.js.map +1 -1
- package/dist/esm/components/form/FormRenderer.js +12 -23
- package/dist/esm/components/form/FormRenderer.js.map +1 -1
- package/dist/esm/components/form/SchemaForm.js +16 -28
- package/dist/esm/components/form/SchemaForm.js.map +1 -1
- package/dist/esm/components/form/StepControlContext.d.ts +0 -1
- package/dist/esm/components/form/StepControlContext.js +2 -7
- package/dist/esm/components/form/StepControlContext.js.map +1 -1
- package/dist/esm/components/form/StepSchemaForm.js +29 -42
- package/dist/esm/components/form/StepSchemaForm.js.map +1 -1
- package/dist/esm/components/form/WizardForm.js +10 -18
- package/dist/esm/components/form/WizardForm.js.map +1 -1
- package/dist/esm/components/form/WizardStepContent.js +3 -9
- package/dist/esm/components/form/WizardStepContent.js.map +1 -1
- package/dist/esm/components/form/__mocks__/@hookform/resolvers/zod.d.ts +1 -2
- package/dist/esm/components/form/adapters.js +31 -36
- package/dist/esm/components/form/adapters.js.map +1 -1
- package/dist/esm/components/form/autocomplete/index.js +3 -13
- package/dist/esm/components/form/autocomplete/register.js +140 -147
- package/dist/esm/components/form/autocomplete/register.js.map +1 -1
- package/dist/esm/components/form/autocomplete/rules.js +166 -173
- package/dist/esm/components/form/autocomplete/rules.js.map +1 -1
- package/dist/esm/components/form/context.js +2 -7
- package/dist/esm/components/form/context.js.map +1 -1
- package/dist/esm/components/form/fields/Checkbox.js +21 -28
- package/dist/esm/components/form/fields/Checkbox.js.map +1 -1
- package/dist/esm/components/form/fields/DatePicker.js +17 -24
- package/dist/esm/components/form/fields/DatePicker.js.map +1 -1
- package/dist/esm/components/form/fields/EmailInput.js +13 -20
- package/dist/esm/components/form/fields/EmailInput.js.map +1 -1
- package/dist/esm/components/form/fields/FileInput.js +16 -23
- package/dist/esm/components/form/fields/FileInput.js.map +1 -1
- package/dist/esm/components/form/fields/Input.js +18 -25
- package/dist/esm/components/form/fields/Input.js.map +1 -1
- package/dist/esm/components/form/fields/RadioGroup.js +27 -34
- package/dist/esm/components/form/fields/RadioGroup.js.map +1 -1
- package/dist/esm/components/form/fields/RichText.js +18 -26
- package/dist/esm/components/form/fields/RichText.js.map +1 -1
- package/dist/esm/components/form/fields/Select.js +25 -32
- package/dist/esm/components/form/fields/Select.js.map +1 -1
- package/dist/esm/components/form/fields/Slider.js +17 -24
- package/dist/esm/components/form/fields/Slider.js.map +1 -1
- package/dist/esm/components/form/fields/Switch.js +21 -28
- package/dist/esm/components/form/fields/Switch.js.map +1 -1
- package/dist/esm/components/form/fields/Textarea.js +16 -23
- package/dist/esm/components/form/fields/Textarea.js.map +1 -1
- package/dist/esm/components/form/fields/index.js +13 -34
- package/dist/esm/components/form/fields/registry.d.ts +0 -1
- package/dist/esm/components/form/fields/registry.js +2 -8
- package/dist/esm/components/form/fields/registry.js.map +1 -1
- package/dist/esm/components/form/fields/types.d.ts +1 -1
- package/dist/esm/components/form/fields/types.js +17 -23
- package/dist/esm/components/form/fields/types.js.map +1 -1
- package/dist/esm/components/form/handlers/core.js +28 -34
- package/dist/esm/components/form/handlers/core.js.map +1 -1
- package/dist/esm/components/form/handlers/step.js +2 -7
- package/dist/esm/components/form/handlers/step.js.map +1 -1
- package/dist/esm/components/form/index.d.ts +0 -2
- package/dist/esm/components/form/index.js +12 -83
- package/dist/esm/components/form/register.js +12 -27
- package/dist/esm/components/form/register.js.map +1 -1
- package/dist/esm/components/form/types.d.ts +11 -14
- package/dist/esm/components/form/types.js +33 -30
- package/dist/esm/components/form/types.js.map +1 -1
- package/dist/esm/components/form/utils/animationUtils.js +1 -5
- package/dist/esm/components/form/utils/animationUtils.js.map +1 -1
- package/dist/esm/components/form/utils/autoSave.js +1 -5
- package/dist/esm/components/form/utils/autoSave.js.map +1 -1
- package/dist/esm/components/form/utils/index.js +4 -15
- package/dist/esm/components/form/utils/stepRetry.d.ts +0 -1
- package/dist/esm/components/form/utils/stepRetry.js +1 -5
- package/dist/esm/components/form/utils/stepRetry.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -6
- package/dist/esm/components/index.js +25 -60
- package/dist/esm/components/layout/DesktopSidebar.js +4 -13
- package/dist/esm/components/layout/DesktopSidebar.js.map +1 -1
- package/dist/esm/components/layout/GeneralLayout.js +9 -20
- package/dist/esm/components/layout/GeneralLayout.js.map +1 -1
- package/dist/esm/components/layout/MobileMenu.js +2 -7
- package/dist/esm/components/layout/MobileMenu.js.map +1 -1
- package/dist/esm/components/layout/PageHeader.js +1 -4
- package/dist/esm/components/layout/PageHeader.js.map +1 -1
- package/dist/esm/components/layout/SidebarContext.js +19 -24
- package/dist/esm/components/layout/SidebarContext.js.map +1 -1
- package/dist/esm/components/layout/SidebarToggle.js +1 -4
- package/dist/esm/components/layout/SidebarToggle.js.map +1 -1
- package/dist/esm/components/layout/UserNav.js +2 -7
- package/dist/esm/components/layout/UserNav.js.map +1 -1
- package/dist/esm/components/layout/index.js +8 -23
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js +2 -7
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js.map +1 -1
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js +1 -4
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js.map +1 -1
- package/dist/esm/components/shared/UnifiedFooter.d.ts +0 -1
- package/dist/esm/components/shared/UnifiedFooter.js +114 -126
- package/dist/esm/components/shared/UnifiedFooter.js.map +1 -1
- package/dist/esm/components/shared/UnifiedHeader.d.ts +0 -1
- package/dist/esm/components/shared/UnifiedHeader.js +5 -13
- package/dist/esm/components/shared/UnifiedHeader.js.map +1 -1
- package/dist/esm/components/shared/context/FooterContext.js +2 -7
- package/dist/esm/components/shared/context/FooterContext.js.map +1 -1
- package/dist/esm/components/shared/context/HeaderContext.js +2 -7
- package/dist/esm/components/shared/context/HeaderContext.js.map +1 -1
- package/dist/esm/components/shared/context/index.js +3 -13
- package/dist/esm/components/shared/environment/builders.d.ts +0 -1
- package/dist/esm/components/shared/environment/builders.js +158 -166
- package/dist/esm/components/shared/environment/builders.js.map +1 -1
- package/dist/esm/components/shared/environment/index.js +2 -7
- package/dist/esm/components/shared/footers/ActionsFooter.js +2 -7
- package/dist/esm/components/shared/footers/ActionsFooter.js.map +1 -1
- package/dist/esm/components/shared/footers/DefaultFooter.js +2 -7
- package/dist/esm/components/shared/footers/DefaultFooter.js.map +1 -1
- package/dist/esm/components/shared/footers/FormFooter.js +3 -9
- package/dist/esm/components/shared/footers/FormFooter.js.map +1 -1
- package/dist/esm/components/shared/footers/StepFormFooter.js +3 -9
- package/dist/esm/components/shared/footers/StepFormFooter.js.map +1 -1
- package/dist/esm/components/shared/footers/WizardFooter.js +6 -13
- package/dist/esm/components/shared/footers/WizardFooter.js.map +1 -1
- package/dist/esm/components/shared/footers/index.js +6 -19
- package/dist/esm/components/shared/headers/DefaultHeader.js +2 -7
- package/dist/esm/components/shared/headers/DefaultHeader.js.map +1 -1
- package/dist/esm/components/shared/headers/FormHeader.js +2 -7
- package/dist/esm/components/shared/headers/FormHeader.js.map +1 -1
- package/dist/esm/components/shared/headers/WizardHeader.js +5 -13
- package/dist/esm/components/shared/headers/WizardHeader.js.map +1 -1
- package/dist/esm/components/shared/headers/index.js +4 -15
- package/dist/esm/components/shared/hooks/index.js +3 -13
- package/dist/esm/components/shared/hooks/useEnvironmentSync.d.ts +0 -1
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js +1 -5
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js.map +1 -1
- package/dist/esm/components/shared/hooks/useForceRerender.d.ts +0 -1
- package/dist/esm/components/shared/hooks/useForceRerender.js +1 -4
- package/dist/esm/components/shared/hooks/useForceRerender.js.map +1 -1
- package/dist/esm/components/shared/index.d.ts +0 -7
- package/dist/esm/components/shared/index.js +10 -29
- package/dist/esm/components/shared/registry/FooterRegistry.d.ts +0 -1
- package/dist/esm/components/shared/registry/FooterRegistry.js +15 -22
- package/dist/esm/components/shared/registry/FooterRegistry.js.map +1 -1
- package/dist/esm/components/shared/registry/HeaderRegistry.js +16 -26
- package/dist/esm/components/shared/registry/HeaderRegistry.js.map +1 -1
- package/dist/esm/components/shared/registry/index.js +4 -15
- package/dist/esm/components/shared/registry/types.d.ts +2 -2
- package/dist/esm/components/shared/registry/types.js +17 -23
- package/dist/esm/components/shared/registry/types.js.map +1 -1
- package/dist/esm/components/shared/types/container.d.ts +1 -2
- package/dist/esm/components/shared/types/container.js +17 -20
- package/dist/esm/components/shared/types/container.js.map +1 -1
- package/dist/esm/components/shared/types/environment.d.ts +0 -1
- package/dist/esm/components/shared/types/environment.js +0 -9
- package/dist/esm/components/shared/types/footer.d.ts +0 -2
- package/dist/esm/components/shared/types/footer.js +1 -5
- package/dist/esm/components/shared/types/footer.js.map +1 -1
- package/dist/esm/components/shared/types/form.d.ts +1 -1
- package/dist/esm/components/shared/types/form.js +22 -25
- package/dist/esm/components/shared/types/form.js.map +1 -1
- package/dist/esm/components/shared/types/header.d.ts +2 -3
- package/dist/esm/components/shared/types/header.js +19 -25
- package/dist/esm/components/shared/types/header.js.map +1 -1
- package/dist/esm/components/shared/types/index.js +6 -23
- package/dist/esm/components/shared/types/navigation.js +0 -9
- package/dist/esm/components/shared/types/step.js +1 -5
- package/dist/esm/components/shared/types/step.js.map +1 -1
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.d.ts +0 -1
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js +1 -5
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js.map +1 -1
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.d.ts +0 -1
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js +1 -5
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js.map +1 -1
- package/dist/esm/components/shared/utils/index.js +6 -19
- package/dist/esm/components/shared/utils/renderFooter.js +5 -13
- package/dist/esm/components/shared/utils/renderFooter.js.map +1 -1
- package/dist/esm/components/shared/utils/renderHeader.js +5 -13
- package/dist/esm/components/shared/utils/renderHeader.js.map +1 -1
- package/dist/esm/components/shared/utils/stepState.d.ts +0 -3
- package/dist/esm/components/shared/utils/stepState.js +1 -5
- package/dist/esm/components/shared/utils/stepState.js.map +1 -1
- package/dist/esm/components/sizing/index.d.ts +2 -2
- package/dist/esm/components/sizing/index.js +55 -47
- package/dist/esm/components/sizing/index.js.map +1 -1
- package/dist/esm/hooks/index.js +5 -13
- package/dist/esm/hooks/useAccountSubdomain.js +1 -2
- package/dist/esm/hooks/useAccountSubdomain.js.map +1 -1
- package/dist/esm/hooks/useApiUrl.d.ts +1 -1
- package/dist/esm/hooks/useAvatar.js +13 -18
- package/dist/esm/hooks/useAvatar.js.map +1 -1
- package/dist/esm/hooks/useFeatureFlag.js.map +1 -1
- package/dist/esm/hooks/useMenuItems.d.ts +5 -3
- package/dist/esm/hooks/useMenuItems.js +2 -7
- package/dist/esm/hooks/useMenuItems.js.map +1 -1
- package/dist/esm/hooks/usePluginMeta.js +2 -7
- package/dist/esm/hooks/usePluginMeta.js.map +1 -1
- package/dist/esm/hooks/usePortalMeta.d.ts +3 -1
- package/dist/esm/hooks/usePortalMeta.js +1 -2
- package/dist/esm/hooks/usePortalMeta.js.map +1 -1
- package/dist/esm/hooks/usePortalUrl.js +1 -2
- package/dist/esm/hooks/usePortalUrl.js.map +1 -1
- package/dist/esm/hooks/useProtocolDomain.js.map +1 -1
- package/dist/esm/hooks/useSdk.js +1 -2
- package/dist/esm/hooks/useSdk.js.map +1 -1
- package/dist/esm/hooks/useTheme.d.ts +0 -1
- package/dist/esm/hooks/useTheme.js +67 -47
- package/dist/esm/hooks/useTheme.js.map +1 -1
- package/dist/esm/images/account-banner-image.js +2 -9
- package/dist/esm/images/account-banner-image.js.map +1 -1
- package/dist/esm/images/discord-logo.js +2 -9
- package/dist/esm/images/discord-logo.js.map +1 -1
- package/dist/esm/images/lume-bg-image.js +2 -9
- package/dist/esm/images/lume-bg-image.js.map +1 -1
- package/dist/esm/images/lume-bg-login.js +2 -9
- package/dist/esm/images/lume-bg-login.js.map +1 -1
- package/dist/esm/images/lume-color-logo.js +2 -9
- package/dist/esm/images/lume-color-logo.js.map +1 -1
- package/dist/esm/images/lume-logo.js +2 -9
- package/dist/esm/images/lume-logo.js.map +1 -1
- package/dist/esm/images.js +14 -25
- package/dist/esm/images.js.map +1 -1
- package/dist/esm/index.d.ts +2 -4
- package/dist/esm/index.js +2 -8
- package/dist/esm/store/appStore.d.ts +2 -2
- package/dist/esm/store/appStore.js +125 -117
- package/dist/esm/store/appStore.js.map +1 -1
- package/dist/esm/store/index.js +4 -11
- package/dist/esm/store/portalStore.d.ts +4 -4
- package/dist/esm/store/portalStore.js +45 -50
- package/dist/esm/store/portalStore.js.map +1 -1
- package/dist/esm/store/saved-filters.d.ts +11 -11
- package/dist/esm/store/saved-filters.js.map +1 -1
- package/dist/esm/store/uiStore.js +9 -14
- package/dist/esm/store/uiStore.js.map +1 -1
- package/dist/esm/tests/portalMetaMocks.d.ts +6 -1
- package/dist/esm/utils/index.js +2 -7
- package/dist/esm/utils/theme.d.ts +0 -1
- package/dist/esm/utils/theme.js +6 -10
- package/dist/esm/utils/theme.js.map +1 -1
- package/package.json +27 -28
- package/dist/cjs/_virtual/rolldown_runtime.cjs +0 -47
- package/dist/cjs/components/Copyable.cjs +0 -60
- package/dist/cjs/components/Copyable.cjs.map +0 -1
- package/dist/cjs/components/Copyable.d.cts +0 -43
- package/dist/cjs/components/FilterChip.cjs +0 -60
- package/dist/cjs/components/FilterChip.cjs.map +0 -1
- package/dist/cjs/components/FilterChip.d.cts +0 -16
- package/dist/cjs/components/Forms.cjs +0 -138
- package/dist/cjs/components/Forms.cjs.map +0 -1
- package/dist/cjs/components/Forms.d.cts +0 -55
- package/dist/cjs/components/InlineAuthLinkBanner.cjs +0 -33
- package/dist/cjs/components/InlineAuthLinkBanner.cjs.map +0 -1
- package/dist/cjs/components/InlineAuthLinkBanner.d.cts +0 -18
- package/dist/cjs/components/KeyboardShortcutDialog.cjs +0 -60
- package/dist/cjs/components/KeyboardShortcutDialog.cjs.map +0 -1
- package/dist/cjs/components/KeyboardShortcutDialog.d.cts +0 -12
- package/dist/cjs/components/Loading.cjs +0 -47
- package/dist/cjs/components/Loading.cjs.map +0 -1
- package/dist/cjs/components/Loading.d.cts +0 -13
- package/dist/cjs/components/LumeLogo.cjs +0 -34
- package/dist/cjs/components/LumeLogo.cjs.map +0 -1
- package/dist/cjs/components/LumeLogo.d.cts +0 -12
- package/dist/cjs/components/MainNavigation.cjs +0 -241
- package/dist/cjs/components/MainNavigation.cjs.map +0 -1
- package/dist/cjs/components/MainNavigation.d.cts +0 -11
- package/dist/cjs/components/SkeletonLoader.cjs +0 -88
- package/dist/cjs/components/SkeletonLoader.cjs.map +0 -1
- package/dist/cjs/components/SkeletonLoader.d.cts +0 -25
- package/dist/cjs/components/TableActionsDropdown.cjs +0 -44
- package/dist/cjs/components/TableActionsDropdown.cjs.map +0 -1
- package/dist/cjs/components/TableActionsDropdown.d.cts +0 -18
- package/dist/cjs/components/TableContainer.cjs +0 -25
- package/dist/cjs/components/TableContainer.cjs.map +0 -1
- package/dist/cjs/components/TableContainer.d.cts +0 -13
- package/dist/cjs/components/ThemeSwitcher.cjs +0 -52
- package/dist/cjs/components/ThemeSwitcher.cjs.map +0 -1
- package/dist/cjs/components/ThemeSwitcher.d.cts +0 -7
- package/dist/cjs/components/ThemedBadge.cjs +0 -30
- package/dist/cjs/components/ThemedBadge.cjs.map +0 -1
- package/dist/cjs/components/ThemedBadge.d.cts +0 -23
- package/dist/cjs/components/actions/ActionListRenderer.cjs +0 -52
- package/dist/cjs/components/actions/ActionListRenderer.cjs.map +0 -1
- package/dist/cjs/components/actions/ActionListRenderer.d.cts +0 -15
- package/dist/cjs/components/actions/ActionListRenderer.spec.cjs +0 -170
- package/dist/cjs/components/actions/ActionListRenderer.spec.cjs.map +0 -1
- package/dist/cjs/components/actions/ActionListRenderer.spec.d.cts +0 -1
- package/dist/cjs/components/actions/actionHelpers.cjs +0 -201
- package/dist/cjs/components/actions/actionHelpers.cjs.map +0 -1
- package/dist/cjs/components/actions/actionHelpers.d.cts +0 -129
- package/dist/cjs/components/actions/index.cjs +0 -57
- package/dist/cjs/components/actions/index.cjs.map +0 -1
- package/dist/cjs/components/actions/index.d.cts +0 -6
- package/dist/cjs/components/actions/items/ButtonActionItem.cjs +0 -38
- package/dist/cjs/components/actions/items/ButtonActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/ButtonActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/CancelActionItem.cjs +0 -43
- package/dist/cjs/components/actions/items/CancelActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/CancelActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/CancelActionItem.spec.cjs +0 -150
- package/dist/cjs/components/actions/items/CancelActionItem.spec.cjs.map +0 -1
- package/dist/cjs/components/actions/items/CancelActionItem.spec.d.cts +0 -1
- package/dist/cjs/components/actions/items/CustomActionItem.cjs +0 -42
- package/dist/cjs/components/actions/items/CustomActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/CustomActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/CustomActionItem.spec.cjs +0 -153
- package/dist/cjs/components/actions/items/CustomActionItem.spec.cjs.map +0 -1
- package/dist/cjs/components/actions/items/CustomActionItem.spec.d.cts +0 -1
- package/dist/cjs/components/actions/items/LinkActionItem.cjs +0 -48
- package/dist/cjs/components/actions/items/LinkActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/LinkActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/LinkActionItem.spec.cjs +0 -173
- package/dist/cjs/components/actions/items/LinkActionItem.spec.cjs.map +0 -1
- package/dist/cjs/components/actions/items/LinkActionItem.spec.d.cts +0 -1
- package/dist/cjs/components/actions/items/RetryActionItem.cjs +0 -38
- package/dist/cjs/components/actions/items/RetryActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/RetryActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/SubmitActionItem.cjs +0 -41
- package/dist/cjs/components/actions/items/SubmitActionItem.cjs.map +0 -1
- package/dist/cjs/components/actions/items/SubmitActionItem.d.cts +0 -9
- package/dist/cjs/components/actions/items/SubmitActionItem.spec.cjs +0 -143
- package/dist/cjs/components/actions/items/SubmitActionItem.spec.cjs.map +0 -1
- package/dist/cjs/components/actions/items/SubmitActionItem.spec.d.cts +0 -1
- package/dist/cjs/components/actions/register.cjs +0 -36
- package/dist/cjs/components/actions/register.cjs.map +0 -1
- package/dist/cjs/components/actions/register.d.cts +0 -5
- package/dist/cjs/components/actions/registry.cjs +0 -34
- package/dist/cjs/components/actions/registry.cjs.map +0 -1
- package/dist/cjs/components/actions/registry.d.cts +0 -14
- package/dist/cjs/components/actions/types.cjs +0 -38
- package/dist/cjs/components/actions/types.cjs.map +0 -1
- package/dist/cjs/components/actions/types.d.cts +0 -133
- package/dist/cjs/components/app/AppComponent.cjs +0 -195
- package/dist/cjs/components/app/AppComponent.cjs.map +0 -1
- package/dist/cjs/components/app/AppComponent.d.cts +0 -17
- package/dist/cjs/components/app/AppComponent.spec.disabled.cjs +0 -557
- package/dist/cjs/components/app/AppComponent.spec.disabled.cjs.map +0 -1
- package/dist/cjs/components/app/AppComponent.spec.disabled.d.cts +0 -1
- package/dist/cjs/components/data-table/BaseTable.cjs +0 -139
- package/dist/cjs/components/data-table/BaseTable.cjs.map +0 -1
- package/dist/cjs/components/data-table/BaseTable.d.cts +0 -87
- package/dist/cjs/components/data-table/BaseTableContent.cjs +0 -53
- package/dist/cjs/components/data-table/BaseTableContent.cjs.map +0 -1
- package/dist/cjs/components/data-table/BaseTableContent.d.cts +0 -48
- package/dist/cjs/components/data-table/BaseTableInner.cjs +0 -49
- package/dist/cjs/components/data-table/BaseTableInner.cjs.map +0 -1
- package/dist/cjs/components/data-table/BaseTableInner.d.cts +0 -11
- package/dist/cjs/components/data-table/BaseTableStackedLayout.cjs +0 -154
- package/dist/cjs/components/data-table/BaseTableStackedLayout.cjs.map +0 -1
- package/dist/cjs/components/data-table/BaseTableStackedLayout.d.cts +0 -31
- package/dist/cjs/components/data-table/DataTable.cjs +0 -113
- package/dist/cjs/components/data-table/DataTable.cjs.map +0 -1
- package/dist/cjs/components/data-table/DataTable.d.cts +0 -18
- package/dist/cjs/components/data-table/DataTable.types.cjs +0 -39
- package/dist/cjs/components/data-table/DataTable.types.cjs.map +0 -1
- package/dist/cjs/components/data-table/DataTable.types.d.cts +0 -203
- package/dist/cjs/components/data-table/DataTableController.cjs +0 -42
- package/dist/cjs/components/data-table/DataTableController.cjs.map +0 -1
- package/dist/cjs/components/data-table/DataTableController.d.cts +0 -19
- package/dist/cjs/components/data-table/DefaultPagination.cjs +0 -74
- package/dist/cjs/components/data-table/DefaultPagination.cjs.map +0 -1
- package/dist/cjs/components/data-table/DefaultPagination.d.cts +0 -7
- package/dist/cjs/components/data-table/DefaultTableLayout.cjs +0 -83
- package/dist/cjs/components/data-table/DefaultTableLayout.cjs.map +0 -1
- package/dist/cjs/components/data-table/DefaultTableLayout.d.cts +0 -28
- package/dist/cjs/components/data-table/EmptyState.cjs +0 -26
- package/dist/cjs/components/data-table/EmptyState.cjs.map +0 -1
- package/dist/cjs/components/data-table/EmptyState.d.cts +0 -19
- package/dist/cjs/components/data-table/LoadingState.cjs +0 -47
- package/dist/cjs/components/data-table/LoadingState.cjs.map +0 -1
- package/dist/cjs/components/data-table/LoadingState.d.cts +0 -19
- package/dist/cjs/components/data-table/TableAction.cjs +0 -36
- package/dist/cjs/components/data-table/TableAction.cjs.map +0 -1
- package/dist/cjs/components/data-table/TableAction.d.cts +0 -21
- package/dist/cjs/components/data-table/TableActionMenu.cjs +0 -41
- package/dist/cjs/components/data-table/TableActionMenu.cjs.map +0 -1
- package/dist/cjs/components/data-table/TableActionMenu.d.cts +0 -20
- package/dist/cjs/components/data-table/TableLayoutRenderer.cjs +0 -62
- package/dist/cjs/components/data-table/TableLayoutRenderer.cjs.map +0 -1
- package/dist/cjs/components/data-table/TableLayoutRenderer.d.cts +0 -49
- package/dist/cjs/components/data-table/Toolbar.cjs +0 -193
- package/dist/cjs/components/data-table/Toolbar.cjs.map +0 -1
- package/dist/cjs/components/data-table/Toolbar.d.cts +0 -17
- package/dist/cjs/components/data-table/ToolbarRegistry.cjs +0 -112
- package/dist/cjs/components/data-table/ToolbarRegistry.cjs.map +0 -1
- package/dist/cjs/components/data-table/ToolbarRegistry.d.cts +0 -67
- package/dist/cjs/components/data-table/ToolbarRenderer.cjs +0 -141
- package/dist/cjs/components/data-table/ToolbarRenderer.cjs.map +0 -1
- package/dist/cjs/components/data-table/ToolbarRenderer.d.cts +0 -45
- package/dist/cjs/components/data-table/contexts/FilterHelpers.cjs +0 -75
- package/dist/cjs/components/data-table/contexts/FilterHelpers.cjs.map +0 -1
- package/dist/cjs/components/data-table/contexts/FilterHelpers.d.cts +0 -30
- package/dist/cjs/components/data-table/contexts/RefineTable.cjs +0 -83
- package/dist/cjs/components/data-table/contexts/RefineTable.cjs.map +0 -1
- package/dist/cjs/components/data-table/contexts/RefineTable.d.cts +0 -25
- package/dist/cjs/components/data-table/contexts/TableConfig.cjs +0 -43
- package/dist/cjs/components/data-table/contexts/TableConfig.cjs.map +0 -1
- package/dist/cjs/components/data-table/contexts/TableConfig.d.cts +0 -24
- package/dist/cjs/components/data-table/contexts/TableInstance.cjs +0 -34
- package/dist/cjs/components/data-table/contexts/TableInstance.cjs.map +0 -1
- package/dist/cjs/components/data-table/contexts/TableInstance.d.cts +0 -20
- package/dist/cjs/components/data-table/contexts/index.cjs +0 -33
- package/dist/cjs/components/data-table/contexts/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/contexts/index.d.cts +0 -5
- package/dist/cjs/components/data-table/filterColumnsForMobile.cjs +0 -41
- package/dist/cjs/components/data-table/filterColumnsForMobile.cjs.map +0 -1
- package/dist/cjs/components/data-table/filterColumnsForMobile.d.cts +0 -17
- package/dist/cjs/components/data-table/index.cjs +0 -129
- package/dist/cjs/components/data-table/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/index.d.cts +0 -53
- package/dist/cjs/components/data-table/register.cjs +0 -17
- package/dist/cjs/components/data-table/register.cjs.map +0 -1
- package/dist/cjs/components/data-table/register.d.cts +0 -1
- package/dist/cjs/components/data-table/tableOptions.cjs +0 -54
- package/dist/cjs/components/data-table/tableOptions.cjs.map +0 -1
- package/dist/cjs/components/data-table/tableOptions.d.cts +0 -18
- package/dist/cjs/components/data-table/toolbarItems/FilterGroup.cjs +0 -122
- package/dist/cjs/components/data-table/toolbarItems/FilterGroup.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/FilterGroup.d.cts +0 -18
- package/dist/cjs/components/data-table/toolbarItems/FilterResolver.cjs +0 -87
- package/dist/cjs/components/data-table/toolbarItems/FilterResolver.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/FilterResolver.d.cts +0 -22
- package/dist/cjs/components/data-table/toolbarItems/filters/BaseFilter.cjs +0 -39
- package/dist/cjs/components/data-table/toolbarItems/filters/BaseFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/BaseFilter.d.cts +0 -27
- package/dist/cjs/components/data-table/toolbarItems/filters/FilterRegistry.cjs +0 -64
- package/dist/cjs/components/data-table/toolbarItems/filters/FilterRegistry.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/FilterRegistry.d.cts +0 -52
- package/dist/cjs/components/data-table/toolbarItems/filters/components/BooleanFilter.cjs +0 -46
- package/dist/cjs/components/data-table/toolbarItems/filters/components/BooleanFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/BooleanFilter.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/components/DateFilter.cjs +0 -37
- package/dist/cjs/components/data-table/toolbarItems/filters/components/DateFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/DateFilter.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/components/MultiSelectFilter.cjs +0 -56
- package/dist/cjs/components/data-table/toolbarItems/filters/components/MultiSelectFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/MultiSelectFilter.d.cts +0 -13
- package/dist/cjs/components/data-table/toolbarItems/filters/components/NumberFilter.cjs +0 -41
- package/dist/cjs/components/data-table/toolbarItems/filters/components/NumberFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/NumberFilter.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/components/RangeFilter.cjs +0 -73
- package/dist/cjs/components/data-table/toolbarItems/filters/components/RangeFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/RangeFilter.d.cts +0 -16
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SearchFilter.cjs +0 -45
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SearchFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SearchFilter.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SelectFilter.cjs +0 -108
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SelectFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/SelectFilter.d.cts +0 -13
- package/dist/cjs/components/data-table/toolbarItems/filters/components/TextFilter.cjs +0 -37
- package/dist/cjs/components/data-table/toolbarItems/filters/components/TextFilter.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/TextFilter.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/components/index.cjs +0 -39
- package/dist/cjs/components/data-table/toolbarItems/filters/components/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/components/index.d.cts +0 -9
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterOperators.cjs +0 -99
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterOperators.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterOperators.d.cts +0 -49
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.cjs +0 -35
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.d.cts +0 -19
- package/dist/cjs/components/data-table/toolbarItems/filters/index.cjs +0 -42
- package/dist/cjs/components/data-table/toolbarItems/filters/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/index.d.cts +0 -12
- package/dist/cjs/components/data-table/toolbarItems/filters/register.cjs +0 -22
- package/dist/cjs/components/data-table/toolbarItems/filters/register.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/register.d.cts +0 -8
- package/dist/cjs/components/data-table/toolbarItems/filters/types.cjs +0 -66
- package/dist/cjs/components/data-table/toolbarItems/filters/types.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/types.d.cts +0 -145
- package/dist/cjs/components/data-table/toolbarItems/filters/util.cjs +0 -55
- package/dist/cjs/components/data-table/toolbarItems/filters/util.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/filters/util.d.cts +0 -24
- package/dist/cjs/components/data-table/toolbarItems/index.cjs +0 -57
- package/dist/cjs/components/data-table/toolbarItems/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/index.d.cts +0 -18
- package/dist/cjs/components/data-table/toolbarItems/items/custom.cjs +0 -32
- package/dist/cjs/components/data-table/toolbarItems/items/custom.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/items/custom.d.cts +0 -16
- package/dist/cjs/components/data-table/toolbarItems/items/index.cjs +0 -20
- package/dist/cjs/components/data-table/toolbarItems/items/index.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/items/index.d.cts +0 -6
- package/dist/cjs/components/data-table/toolbarItems/items/refresh.cjs +0 -49
- package/dist/cjs/components/data-table/toolbarItems/items/refresh.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/items/refresh.d.cts +0 -7
- package/dist/cjs/components/data-table/toolbarItems/items/search.cjs +0 -80
- package/dist/cjs/components/data-table/toolbarItems/items/search.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/items/search.d.cts +0 -8
- package/dist/cjs/components/data-table/toolbarItems/items/separator.cjs +0 -34
- package/dist/cjs/components/data-table/toolbarItems/items/separator.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/items/separator.d.cts +0 -17
- package/dist/cjs/components/data-table/toolbarItems/register.cjs +0 -138
- package/dist/cjs/components/data-table/toolbarItems/register.cjs.map +0 -1
- package/dist/cjs/components/data-table/toolbarItems/register.d.cts +0 -27
- package/dist/cjs/components/data-table/useMobileDetection.cjs +0 -44
- package/dist/cjs/components/data-table/useMobileDetection.cjs.map +0 -1
- package/dist/cjs/components/data-table/useMobileDetection.d.cts +0 -19
- package/dist/cjs/components/data-table/useTableHandlers.cjs +0 -82
- package/dist/cjs/components/data-table/useTableHandlers.cjs.map +0 -1
- package/dist/cjs/components/data-table/useTableHandlers.d.cts +0 -57
- package/dist/cjs/components/data-table/useTableLayoutSelector.cjs +0 -24
- package/dist/cjs/components/data-table/useTableLayoutSelector.cjs.map +0 -1
- package/dist/cjs/components/data-table/useTableLayoutSelector.d.cts +0 -16
- package/dist/cjs/components/dialog/Dialog.context.cjs +0 -98
- package/dist/cjs/components/dialog/Dialog.context.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.context.d.cts +0 -19
- package/dist/cjs/components/dialog/Dialog.context.spec.cjs +0 -153
- package/dist/cjs/components/dialog/Dialog.context.spec.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.context.spec.d.cts +0 -1
- package/dist/cjs/components/dialog/Dialog.registry.cjs +0 -42
- package/dist/cjs/components/dialog/Dialog.registry.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.registry.d.cts +0 -22
- package/dist/cjs/components/dialog/Dialog.renderer.cjs +0 -82
- package/dist/cjs/components/dialog/Dialog.renderer.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.renderer.d.cts +0 -9
- package/dist/cjs/components/dialog/Dialog.renderer.spec.cjs +0 -678
- package/dist/cjs/components/dialog/Dialog.renderer.spec.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.renderer.spec.d.cts +0 -1
- package/dist/cjs/components/dialog/Dialog.types.cjs +0 -215
- package/dist/cjs/components/dialog/Dialog.types.cjs.map +0 -1
- package/dist/cjs/components/dialog/Dialog.types.d.cts +0 -275
- package/dist/cjs/components/dialog/DialogActions.context.cjs +0 -24
- package/dist/cjs/components/dialog/DialogActions.context.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogActions.context.d.cts +0 -13
- package/dist/cjs/components/dialog/DialogContainer.cjs +0 -50
- package/dist/cjs/components/dialog/DialogContainer.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogContainer.d.cts +0 -15
- package/dist/cjs/components/dialog/DialogContent.cjs +0 -31
- package/dist/cjs/components/dialog/DialogContent.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogContent.d.cts +0 -14
- package/dist/cjs/components/dialog/DialogFooterContent.cjs +0 -32
- package/dist/cjs/components/dialog/DialogFooterContent.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogFooterContent.d.cts +0 -14
- package/dist/cjs/components/dialog/DialogHeaderContent.cjs +0 -36
- package/dist/cjs/components/dialog/DialogHeaderContent.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogHeaderContent.d.cts +0 -12
- package/dist/cjs/components/dialog/DialogState.context.cjs +0 -22
- package/dist/cjs/components/dialog/DialogState.context.cjs.map +0 -1
- package/dist/cjs/components/dialog/DialogState.context.d.cts +0 -11
- package/dist/cjs/components/dialog/index.cjs +0 -97
- package/dist/cjs/components/dialog/index.cjs.map +0 -1
- package/dist/cjs/components/dialog/index.d.cts +0 -7
- package/dist/cjs/components/dialog/types/AlertDialog.cjs +0 -41
- package/dist/cjs/components/dialog/types/AlertDialog.cjs.map +0 -1
- package/dist/cjs/components/dialog/types/AlertDialog.d.cts +0 -20
- package/dist/cjs/components/dialog/types/ConfirmDialog.cjs +0 -36
- package/dist/cjs/components/dialog/types/ConfirmDialog.cjs.map +0 -1
- package/dist/cjs/components/dialog/types/ConfirmDialog.d.cts +0 -18
- package/dist/cjs/components/dialog/types/CustomDialog.cjs +0 -29
- package/dist/cjs/components/dialog/types/CustomDialog.cjs.map +0 -1
- package/dist/cjs/components/dialog/types/CustomDialog.d.cts +0 -29
- package/dist/cjs/components/dialog/types/FormDialog.cjs +0 -58
- package/dist/cjs/components/dialog/types/FormDialog.cjs.map +0 -1
- package/dist/cjs/components/dialog/types/FormDialog.d.cts +0 -23
- package/dist/cjs/components/dialog/types/WizardDialog.cjs +0 -56
- package/dist/cjs/components/dialog/types/WizardDialog.cjs.map +0 -1
- package/dist/cjs/components/dialog/types/WizardDialog.d.cts +0 -29
- package/dist/cjs/components/dialog/utils/dialogClasses.cjs +0 -25
- package/dist/cjs/components/dialog/utils/dialogClasses.cjs.map +0 -1
- package/dist/cjs/components/dialog/utils/dialogClasses.d.cts +0 -7
- package/dist/cjs/components/dialog/utils/dialogDetection.cjs +0 -63
- package/dist/cjs/components/dialog/utils/dialogDetection.cjs.map +0 -1
- package/dist/cjs/components/dialog/utils/dialogDetection.d.cts +0 -33
- package/dist/cjs/components/dialog/utils/index.cjs +0 -25
- package/dist/cjs/components/dialog/utils/index.cjs.map +0 -1
- package/dist/cjs/components/dialog/utils/index.d.cts +0 -3
- package/dist/cjs/components/editor/BlockTypeDropdown.cjs +0 -71
- package/dist/cjs/components/editor/BlockTypeDropdown.cjs.map +0 -1
- package/dist/cjs/components/editor/BlockTypeDropdown.d.cts +0 -11
- package/dist/cjs/components/editor/Editor.cjs +0 -122
- package/dist/cjs/components/editor/Editor.cjs.map +0 -1
- package/dist/cjs/components/editor/Preview.cjs +0 -31
- package/dist/cjs/components/editor/Preview.cjs.map +0 -1
- package/dist/cjs/components/editor/Preview.d.cts +0 -5
- package/dist/cjs/components/editor/ToolbarContext.cjs +0 -68
- package/dist/cjs/components/editor/ToolbarContext.cjs.map +0 -1
- package/dist/cjs/components/editor/ToolbarContext.d.cts +0 -39
- package/dist/cjs/components/editor/ToolbarPlugin.cjs +0 -209
- package/dist/cjs/components/editor/ToolbarPlugin.cjs.map +0 -1
- package/dist/cjs/components/editor/ToolbarPlugin.d.cts +0 -20
- package/dist/cjs/components/editor/formatting.cjs +0 -135
- package/dist/cjs/components/editor/formatting.cjs.map +0 -1
- package/dist/cjs/components/editor/formatting.d.cts +0 -15
- package/dist/cjs/components/editor/index.cjs +0 -18
- package/dist/cjs/components/editor/index.cjs.map +0 -1
- package/dist/cjs/components/editor/index.d.cts +0 -2
- package/dist/cjs/components/form/FormGroup.cjs +0 -40
- package/dist/cjs/components/form/FormGroup.cjs.map +0 -1
- package/dist/cjs/components/form/FormGroup.d.cts +0 -18
- package/dist/cjs/components/form/FormRenderer.cjs +0 -197
- package/dist/cjs/components/form/FormRenderer.cjs.map +0 -1
- package/dist/cjs/components/form/FormRenderer.d.cts +0 -14
- package/dist/cjs/components/form/FormRenderer.spec.cjs +0 -227
- package/dist/cjs/components/form/FormRenderer.spec.cjs.map +0 -1
- package/dist/cjs/components/form/FormRenderer.spec.d.cts +0 -1
- package/dist/cjs/components/form/SchemaForm.cjs +0 -191
- package/dist/cjs/components/form/SchemaForm.cjs.map +0 -1
- package/dist/cjs/components/form/SchemaForm.d.cts +0 -18
- package/dist/cjs/components/form/SchemaForm.spec.cjs +0 -438
- package/dist/cjs/components/form/SchemaForm.spec.cjs.map +0 -1
- package/dist/cjs/components/form/SchemaForm.spec.d.cts +0 -1
- package/dist/cjs/components/form/StepControlContext.cjs +0 -265
- package/dist/cjs/components/form/StepControlContext.cjs.map +0 -1
- package/dist/cjs/components/form/StepControlContext.d.cts +0 -200
- package/dist/cjs/components/form/StepSchemaForm.cjs +0 -196
- package/dist/cjs/components/form/StepSchemaForm.cjs.map +0 -1
- package/dist/cjs/components/form/StepSchemaForm.d.cts +0 -22
- package/dist/cjs/components/form/WizardForm.cjs +0 -141
- package/dist/cjs/components/form/WizardForm.cjs.map +0 -1
- package/dist/cjs/components/form/WizardForm.d.cts +0 -16
- package/dist/cjs/components/form/WizardStepContent.cjs +0 -59
- package/dist/cjs/components/form/WizardStepContent.cjs.map +0 -1
- package/dist/cjs/components/form/WizardStepContent.d.cts +0 -26
- package/dist/cjs/components/form/__mocks__/@hookform/resolvers/zod.d.cjs +0 -1
- package/dist/cjs/components/form/__mocks__/@hookform/resolvers/zod.d.cts +0 -9
- package/dist/cjs/components/form/adapters.cjs +0 -54
- package/dist/cjs/components/form/adapters.cjs.map +0 -1
- package/dist/cjs/components/form/adapters.d.cts +0 -23
- package/dist/cjs/components/form/adapters.spec.cjs +0 -205
- package/dist/cjs/components/form/adapters.spec.cjs.map +0 -1
- package/dist/cjs/components/form/adapters.spec.d.cts +0 -1
- package/dist/cjs/components/form/autocomplete/index.cjs +0 -25
- package/dist/cjs/components/form/autocomplete/index.cjs.map +0 -1
- package/dist/cjs/components/form/autocomplete/index.d.cts +0 -3
- package/dist/cjs/components/form/autocomplete/register.cjs +0 -175
- package/dist/cjs/components/form/autocomplete/register.cjs.map +0 -1
- package/dist/cjs/components/form/autocomplete/register.d.cts +0 -8
- package/dist/cjs/components/form/autocomplete/rules.cjs +0 -214
- package/dist/cjs/components/form/autocomplete/rules.cjs.map +0 -1
- package/dist/cjs/components/form/autocomplete/rules.d.cts +0 -15
- package/dist/cjs/components/form/context.cjs +0 -38
- package/dist/cjs/components/form/context.cjs.map +0 -1
- package/dist/cjs/components/form/context.d.cts +0 -29
- package/dist/cjs/components/form/context.spec.cjs +0 -53
- package/dist/cjs/components/form/context.spec.cjs.map +0 -1
- package/dist/cjs/components/form/context.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Checkbox.cjs +0 -48
- package/dist/cjs/components/form/fields/Checkbox.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Checkbox.d.cts +0 -6
- package/dist/cjs/components/form/fields/Checkbox.spec.cjs +0 -83
- package/dist/cjs/components/form/fields/Checkbox.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Checkbox.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/DatePicker.cjs +0 -44
- package/dist/cjs/components/form/fields/DatePicker.cjs.map +0 -1
- package/dist/cjs/components/form/fields/DatePicker.d.cts +0 -6
- package/dist/cjs/components/form/fields/DatePicker.spec.cjs +0 -92
- package/dist/cjs/components/form/fields/DatePicker.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/DatePicker.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/EmailInput.cjs +0 -40
- package/dist/cjs/components/form/fields/EmailInput.cjs.map +0 -1
- package/dist/cjs/components/form/fields/EmailInput.d.cts +0 -6
- package/dist/cjs/components/form/fields/EmailInput.spec.cjs +0 -40
- package/dist/cjs/components/form/fields/EmailInput.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/EmailInput.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/FileInput.cjs +0 -43
- package/dist/cjs/components/form/fields/FileInput.cjs.map +0 -1
- package/dist/cjs/components/form/fields/FileInput.d.cts +0 -6
- package/dist/cjs/components/form/fields/FileInput.spec.cjs +0 -64
- package/dist/cjs/components/form/fields/FileInput.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/FileInput.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Input.cjs +0 -45
- package/dist/cjs/components/form/fields/Input.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Input.d.cts +0 -6
- package/dist/cjs/components/form/fields/Input.spec.cjs +0 -74
- package/dist/cjs/components/form/fields/Input.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Input.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/RadioGroup.cjs +0 -57
- package/dist/cjs/components/form/fields/RadioGroup.cjs.map +0 -1
- package/dist/cjs/components/form/fields/RadioGroup.d.cts +0 -6
- package/dist/cjs/components/form/fields/RadioGroup.spec.cjs +0 -99
- package/dist/cjs/components/form/fields/RadioGroup.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/RadioGroup.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/RichText.cjs +0 -46
- package/dist/cjs/components/form/fields/RichText.cjs.map +0 -1
- package/dist/cjs/components/form/fields/RichText.d.cts +0 -6
- package/dist/cjs/components/form/fields/RichText.spec.cjs +0 -73
- package/dist/cjs/components/form/fields/RichText.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/RichText.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Select.cjs +0 -52
- package/dist/cjs/components/form/fields/Select.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Select.d.cts +0 -6
- package/dist/cjs/components/form/fields/Select.spec.cjs +0 -138
- package/dist/cjs/components/form/fields/Select.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Select.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Slider.cjs +0 -44
- package/dist/cjs/components/form/fields/Slider.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Slider.d.cts +0 -6
- package/dist/cjs/components/form/fields/Slider.spec.cjs +0 -85
- package/dist/cjs/components/form/fields/Slider.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Slider.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Switch.cjs +0 -48
- package/dist/cjs/components/form/fields/Switch.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Switch.d.cts +0 -6
- package/dist/cjs/components/form/fields/Switch.spec.cjs +0 -77
- package/dist/cjs/components/form/fields/Switch.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Switch.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/Textarea.cjs +0 -43
- package/dist/cjs/components/form/fields/Textarea.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Textarea.d.cts +0 -6
- package/dist/cjs/components/form/fields/Textarea.spec.cjs +0 -72
- package/dist/cjs/components/form/fields/Textarea.spec.cjs.map +0 -1
- package/dist/cjs/components/form/fields/Textarea.spec.d.cts +0 -1
- package/dist/cjs/components/form/fields/index.cjs +0 -63
- package/dist/cjs/components/form/fields/index.cjs.map +0 -1
- package/dist/cjs/components/form/fields/index.d.cts +0 -13
- package/dist/cjs/components/form/fields/registry.cjs +0 -28
- package/dist/cjs/components/form/fields/registry.cjs.map +0 -1
- package/dist/cjs/components/form/fields/registry.d.cts +0 -12
- package/dist/cjs/components/form/fields/types.cjs +0 -33
- package/dist/cjs/components/form/fields/types.cjs.map +0 -1
- package/dist/cjs/components/form/fields/types.d.cts +0 -37
- package/dist/cjs/components/form/handlers/core.cjs +0 -63
- package/dist/cjs/components/form/handlers/core.cjs.map +0 -1
- package/dist/cjs/components/form/handlers/core.d.cts +0 -19
- package/dist/cjs/components/form/handlers/step.cjs +0 -52
- package/dist/cjs/components/form/handlers/step.cjs.map +0 -1
- package/dist/cjs/components/form/handlers/step.d.cts +0 -19
- package/dist/cjs/components/form/index.cjs +0 -158
- package/dist/cjs/components/form/index.cjs.map +0 -1
- package/dist/cjs/components/form/index.d.cts +0 -28
- package/dist/cjs/components/form/register.cjs +0 -52
- package/dist/cjs/components/form/register.cjs.map +0 -1
- package/dist/cjs/components/form/register.d.cts +0 -5
- package/dist/cjs/components/form/types.cjs +0 -79
- package/dist/cjs/components/form/types.cjs.map +0 -1
- package/dist/cjs/components/form/types.d.cts +0 -524
- package/dist/cjs/components/form/utils/animationUtils.cjs +0 -30
- package/dist/cjs/components/form/utils/animationUtils.cjs.map +0 -1
- package/dist/cjs/components/form/utils/animationUtils.d.cts +0 -14
- package/dist/cjs/components/form/utils/autoSave.cjs +0 -27
- package/dist/cjs/components/form/utils/autoSave.cjs.map +0 -1
- package/dist/cjs/components/form/utils/autoSave.d.cts +0 -8
- package/dist/cjs/components/form/utils/index.cjs +0 -24
- package/dist/cjs/components/form/utils/index.cjs.map +0 -1
- package/dist/cjs/components/form/utils/index.d.cts +0 -4
- package/dist/cjs/components/form/utils/stepRetry.cjs +0 -26
- package/dist/cjs/components/form/utils/stepRetry.cjs.map +0 -1
- package/dist/cjs/components/form/utils/stepRetry.d.cts +0 -13
- package/dist/cjs/components/index.cjs +0 -413
- package/dist/cjs/components/index.cjs.map +0 -1
- package/dist/cjs/components/index.d.cts +0 -129
- package/dist/cjs/components/layout/DesktopSidebar.cjs +0 -68
- package/dist/cjs/components/layout/DesktopSidebar.cjs.map +0 -1
- package/dist/cjs/components/layout/DesktopSidebar.d.cts +0 -4
- package/dist/cjs/components/layout/DesktopSidebar.spec.cjs +0 -26
- package/dist/cjs/components/layout/DesktopSidebar.spec.cjs.map +0 -1
- package/dist/cjs/components/layout/DesktopSidebar.spec.d.cts +0 -1
- package/dist/cjs/components/layout/GeneralLayout.cjs +0 -52
- package/dist/cjs/components/layout/GeneralLayout.cjs.map +0 -1
- package/dist/cjs/components/layout/GeneralLayout.d.cts +0 -5
- package/dist/cjs/components/layout/GeneralLayout.spec.cjs +0 -145
- package/dist/cjs/components/layout/GeneralLayout.spec.cjs.map +0 -1
- package/dist/cjs/components/layout/GeneralLayout.spec.d.cts +0 -1
- package/dist/cjs/components/layout/MobileMenu.cjs +0 -60
- package/dist/cjs/components/layout/MobileMenu.cjs.map +0 -1
- package/dist/cjs/components/layout/MobileMenu.d.cts +0 -5
- package/dist/cjs/components/layout/PageHeader.cjs +0 -30
- package/dist/cjs/components/layout/PageHeader.cjs.map +0 -1
- package/dist/cjs/components/layout/PageHeader.d.cts +0 -16
- package/dist/cjs/components/layout/SidebarContext.cjs +0 -40
- package/dist/cjs/components/layout/SidebarContext.cjs.map +0 -1
- package/dist/cjs/components/layout/SidebarContext.d.cts +0 -10
- package/dist/cjs/components/layout/SidebarToggle.cjs +0 -33
- package/dist/cjs/components/layout/SidebarToggle.cjs.map +0 -1
- package/dist/cjs/components/layout/SidebarToggle.d.cts +0 -12
- package/dist/cjs/components/layout/UserNav.cjs +0 -122
- package/dist/cjs/components/layout/UserNav.cjs.map +0 -1
- package/dist/cjs/components/layout/UserNav.d.cts +0 -5
- package/dist/cjs/components/layout/index.cjs +0 -36
- package/dist/cjs/components/layout/index.cjs.map +0 -1
- package/dist/cjs/components/layout/index.d.cts +0 -7
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.cjs +0 -41
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.cjs.map +0 -1
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.d.cts +0 -23
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.spec.cjs +0 -70
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.spec.cjs.map +0 -1
- package/dist/cjs/components/screen-reader/ScreenReaderAnnouncement.spec.d.cts +0 -1
- package/dist/cjs/components/screen-reader/hooks/useScreenReaderAnnouncement.cjs +0 -40
- package/dist/cjs/components/screen-reader/hooks/useScreenReaderAnnouncement.cjs.map +0 -1
- package/dist/cjs/components/screen-reader/hooks/useScreenReaderAnnouncement.d.cts +0 -10
- package/dist/cjs/components/shared/UnifiedFooter.cjs +0 -229
- package/dist/cjs/components/shared/UnifiedFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/UnifiedFooter.d.cts +0 -18
- package/dist/cjs/components/shared/UnifiedHeader.cjs +0 -63
- package/dist/cjs/components/shared/UnifiedHeader.cjs.map +0 -1
- package/dist/cjs/components/shared/UnifiedHeader.d.cts +0 -18
- package/dist/cjs/components/shared/context/FooterContext.cjs +0 -38
- package/dist/cjs/components/shared/context/FooterContext.cjs.map +0 -1
- package/dist/cjs/components/shared/context/FooterContext.d.cts +0 -18
- package/dist/cjs/components/shared/context/HeaderContext.cjs +0 -37
- package/dist/cjs/components/shared/context/HeaderContext.cjs.map +0 -1
- package/dist/cjs/components/shared/context/HeaderContext.d.cts +0 -18
- package/dist/cjs/components/shared/context/index.cjs +0 -25
- package/dist/cjs/components/shared/context/index.cjs.map +0 -1
- package/dist/cjs/components/shared/context/index.d.cts +0 -3
- package/dist/cjs/components/shared/environment/builders.cjs +0 -180
- package/dist/cjs/components/shared/environment/builders.cjs.map +0 -1
- package/dist/cjs/components/shared/environment/builders.d.cts +0 -96
- package/dist/cjs/components/shared/environment/index.cjs +0 -9
- package/dist/cjs/components/shared/environment/index.cjs.map +0 -1
- package/dist/cjs/components/shared/environment/index.d.cts +0 -7
- package/dist/cjs/components/shared/footers/ActionsFooter.cjs +0 -31
- package/dist/cjs/components/shared/footers/ActionsFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/ActionsFooter.d.cts +0 -11
- package/dist/cjs/components/shared/footers/DefaultFooter.cjs +0 -32
- package/dist/cjs/components/shared/footers/DefaultFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/DefaultFooter.d.cts +0 -13
- package/dist/cjs/components/shared/footers/FormFooter.cjs +0 -41
- package/dist/cjs/components/shared/footers/FormFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/FormFooter.d.cts +0 -15
- package/dist/cjs/components/shared/footers/StepFormFooter.cjs +0 -41
- package/dist/cjs/components/shared/footers/StepFormFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/StepFormFooter.d.cts +0 -15
- package/dist/cjs/components/shared/footers/WizardFooter.cjs +0 -86
- package/dist/cjs/components/shared/footers/WizardFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/WizardFooter.d.cts +0 -12
- package/dist/cjs/components/shared/footers/index.cjs +0 -30
- package/dist/cjs/components/shared/footers/index.cjs.map +0 -1
- package/dist/cjs/components/shared/footers/index.d.cts +0 -6
- package/dist/cjs/components/shared/headers/DefaultHeader.cjs +0 -42
- package/dist/cjs/components/shared/headers/DefaultHeader.cjs.map +0 -1
- package/dist/cjs/components/shared/headers/DefaultHeader.d.cts +0 -13
- package/dist/cjs/components/shared/headers/FormHeader.cjs +0 -43
- package/dist/cjs/components/shared/headers/FormHeader.cjs.map +0 -1
- package/dist/cjs/components/shared/headers/FormHeader.d.cts +0 -12
- package/dist/cjs/components/shared/headers/WizardHeader.cjs +0 -131
- package/dist/cjs/components/shared/headers/WizardHeader.cjs.map +0 -1
- package/dist/cjs/components/shared/headers/WizardHeader.d.cts +0 -9
- package/dist/cjs/components/shared/headers/index.cjs +0 -24
- package/dist/cjs/components/shared/headers/index.cjs.map +0 -1
- package/dist/cjs/components/shared/headers/index.d.cts +0 -4
- package/dist/cjs/components/shared/hooks/index.cjs +0 -21
- package/dist/cjs/components/shared/hooks/index.cjs.map +0 -1
- package/dist/cjs/components/shared/hooks/index.d.cts +0 -3
- package/dist/cjs/components/shared/hooks/useEnvironmentSync.cjs +0 -27
- package/dist/cjs/components/shared/hooks/useEnvironmentSync.cjs.map +0 -1
- package/dist/cjs/components/shared/hooks/useEnvironmentSync.d.cts +0 -18
- package/dist/cjs/components/shared/hooks/useForceRerender.cjs +0 -35
- package/dist/cjs/components/shared/hooks/useForceRerender.cjs.map +0 -1
- package/dist/cjs/components/shared/hooks/useForceRerender.d.cts +0 -18
- package/dist/cjs/components/shared/index.cjs +0 -119
- package/dist/cjs/components/shared/index.cjs.map +0 -1
- package/dist/cjs/components/shared/index.d.cts +0 -38
- package/dist/cjs/components/shared/registry/FooterRegistry.cjs +0 -61
- package/dist/cjs/components/shared/registry/FooterRegistry.cjs.map +0 -1
- package/dist/cjs/components/shared/registry/FooterRegistry.d.cts +0 -16
- package/dist/cjs/components/shared/registry/HeaderRegistry.cjs +0 -58
- package/dist/cjs/components/shared/registry/HeaderRegistry.cjs.map +0 -1
- package/dist/cjs/components/shared/registry/HeaderRegistry.d.cts +0 -15
- package/dist/cjs/components/shared/registry/index.cjs +0 -27
- package/dist/cjs/components/shared/registry/index.cjs.map +0 -1
- package/dist/cjs/components/shared/registry/index.d.cts +0 -4
- package/dist/cjs/components/shared/registry/types.cjs +0 -34
- package/dist/cjs/components/shared/registry/types.cjs.map +0 -1
- package/dist/cjs/components/shared/registry/types.d.cts +0 -23
- package/dist/cjs/components/shared/types/container.cjs +0 -46
- package/dist/cjs/components/shared/types/container.cjs.map +0 -1
- package/dist/cjs/components/shared/types/container.d.cts +0 -71
- package/dist/cjs/components/shared/types/environment.cjs +0 -14
- package/dist/cjs/components/shared/types/environment.cjs.map +0 -1
- package/dist/cjs/components/shared/types/environment.d.cts +0 -26
- package/dist/cjs/components/shared/types/footer.cjs +0 -73
- package/dist/cjs/components/shared/types/footer.cjs.map +0 -1
- package/dist/cjs/components/shared/types/footer.d.cts +0 -123
- package/dist/cjs/components/shared/types/form.cjs +0 -59
- package/dist/cjs/components/shared/types/form.cjs.map +0 -1
- package/dist/cjs/components/shared/types/form.d.cts +0 -120
- package/dist/cjs/components/shared/types/header.cjs +0 -58
- package/dist/cjs/components/shared/types/header.cjs.map +0 -1
- package/dist/cjs/components/shared/types/header.d.cts +0 -82
- package/dist/cjs/components/shared/types/index.cjs +0 -52
- package/dist/cjs/components/shared/types/index.cjs.map +0 -1
- package/dist/cjs/components/shared/types/index.d.cts +0 -8
- package/dist/cjs/components/shared/types/navigation.cjs +0 -14
- package/dist/cjs/components/shared/types/navigation.cjs.map +0 -1
- package/dist/cjs/components/shared/types/navigation.d.cts +0 -9
- package/dist/cjs/components/shared/types/step.cjs +0 -41
- package/dist/cjs/components/shared/types/step.cjs.map +0 -1
- package/dist/cjs/components/shared/types/step.d.cts +0 -104
- package/dist/cjs/components/shared/utils/createEnvironmentReceiver.cjs +0 -40
- package/dist/cjs/components/shared/utils/createEnvironmentReceiver.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/createEnvironmentReceiver.d.cts +0 -24
- package/dist/cjs/components/shared/utils/createForceRerenderReceiver.cjs +0 -40
- package/dist/cjs/components/shared/utils/createForceRerenderReceiver.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/createForceRerenderReceiver.d.cts +0 -23
- package/dist/cjs/components/shared/utils/index.cjs +0 -33
- package/dist/cjs/components/shared/utils/index.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/index.d.cts +0 -6
- package/dist/cjs/components/shared/utils/renderFooter.cjs +0 -114
- package/dist/cjs/components/shared/utils/renderFooter.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/renderFooter.d.cts +0 -37
- package/dist/cjs/components/shared/utils/renderHeader.cjs +0 -135
- package/dist/cjs/components/shared/utils/renderHeader.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/renderHeader.d.cts +0 -39
- package/dist/cjs/components/shared/utils/stepState.cjs +0 -74
- package/dist/cjs/components/shared/utils/stepState.cjs.map +0 -1
- package/dist/cjs/components/shared/utils/stepState.d.cts +0 -39
- package/dist/cjs/components/sizing/index.cjs +0 -82
- package/dist/cjs/components/sizing/index.cjs.map +0 -1
- package/dist/cjs/components/sizing/index.d.cts +0 -97
- package/dist/cjs/hooks/index.cjs +0 -43
- package/dist/cjs/hooks/index.cjs.map +0 -1
- package/dist/cjs/hooks/index.d.cts +0 -16
- package/dist/cjs/hooks/useAccountSubdomain.cjs +0 -13
- package/dist/cjs/hooks/useAccountSubdomain.cjs.map +0 -1
- package/dist/cjs/hooks/useAccountSubdomain.d.cts +0 -5
- package/dist/cjs/hooks/useAccountUrl.cjs +0 -28
- package/dist/cjs/hooks/useAccountUrl.cjs.map +0 -1
- package/dist/cjs/hooks/useAccountUrl.d.cts +0 -5
- package/dist/cjs/hooks/useApiUrl.cjs +0 -15
- package/dist/cjs/hooks/useApiUrl.cjs.map +0 -1
- package/dist/cjs/hooks/useApiUrl.d.cts +0 -5
- package/dist/cjs/hooks/useAvatar.cjs +0 -31
- package/dist/cjs/hooks/useAvatar.cjs.map +0 -1
- package/dist/cjs/hooks/useAvatar.d.cts +0 -10
- package/dist/cjs/hooks/useFeatureFlag.cjs +0 -11
- package/dist/cjs/hooks/useFeatureFlag.cjs.map +0 -1
- package/dist/cjs/hooks/useFeatureFlag.d.cts +0 -5
- package/dist/cjs/hooks/useLoginUrl.cjs +0 -11
- package/dist/cjs/hooks/useLoginUrl.cjs.map +0 -1
- package/dist/cjs/hooks/useLoginUrl.d.cts +0 -5
- package/dist/cjs/hooks/useMenuItems.cjs +0 -27
- package/dist/cjs/hooks/useMenuItems.cjs.map +0 -1
- package/dist/cjs/hooks/useMenuItems.d.cts +0 -10
- package/dist/cjs/hooks/usePluginMeta.cjs +0 -22
- package/dist/cjs/hooks/usePluginMeta.cjs.map +0 -1
- package/dist/cjs/hooks/usePluginMeta.d.cts +0 -5
- package/dist/cjs/hooks/usePortalMeta.cjs +0 -12
- package/dist/cjs/hooks/usePortalMeta.cjs.map +0 -1
- package/dist/cjs/hooks/usePortalMeta.d.cts +0 -5
- package/dist/cjs/hooks/usePortalUrl.cjs +0 -22
- package/dist/cjs/hooks/usePortalUrl.cjs.map +0 -1
- package/dist/cjs/hooks/usePortalUrl.d.cts +0 -5
- package/dist/cjs/hooks/useProtocolDomain.cjs +0 -13
- package/dist/cjs/hooks/useProtocolDomain.cjs.map +0 -1
- package/dist/cjs/hooks/useProtocolDomain.d.cts +0 -5
- package/dist/cjs/hooks/useRegisterUrl.cjs +0 -11
- package/dist/cjs/hooks/useRegisterUrl.cjs.map +0 -1
- package/dist/cjs/hooks/useRegisterUrl.d.cts +0 -5
- package/dist/cjs/hooks/useResetPasswordUrl.cjs +0 -11
- package/dist/cjs/hooks/useResetPasswordUrl.cjs.map +0 -1
- package/dist/cjs/hooks/useResetPasswordUrl.d.cts +0 -5
- package/dist/cjs/hooks/useSdk.cjs +0 -36
- package/dist/cjs/hooks/useSdk.cjs.map +0 -1
- package/dist/cjs/hooks/useSdk.d.cts +0 -8
- package/dist/cjs/hooks/useTheme.cjs +0 -68
- package/dist/cjs/hooks/useTheme.cjs.map +0 -1
- package/dist/cjs/hooks/useTheme.d.cts +0 -42
- package/dist/cjs/hooks/useTheme.spec.cjs +0 -152
- package/dist/cjs/hooks/useTheme.spec.cjs.map +0 -1
- package/dist/cjs/hooks/useTheme.spec.d.cts +0 -1
- package/dist/cjs/image.d.cjs +0 -1
- package/dist/cjs/image.d.cts +0 -6
- package/dist/cjs/images/account-banner-image.cjs +0 -19
- package/dist/cjs/images/account-banner-image.cjs.map +0 -1
- package/dist/cjs/images/discord-logo.cjs +0 -19
- package/dist/cjs/images/discord-logo.cjs.map +0 -1
- package/dist/cjs/images/lume-bg-image.cjs +0 -19
- package/dist/cjs/images/lume-bg-image.cjs.map +0 -1
- package/dist/cjs/images/lume-bg-login.cjs +0 -19
- package/dist/cjs/images/lume-bg-login.cjs.map +0 -1
- package/dist/cjs/images/lume-color-logo.cjs +0 -19
- package/dist/cjs/images/lume-color-logo.cjs.map +0 -1
- package/dist/cjs/images/lume-logo.cjs +0 -19
- package/dist/cjs/images/lume-logo.cjs.map +0 -1
- package/dist/cjs/images.cjs +0 -42
- package/dist/cjs/images.cjs.map +0 -1
- package/dist/cjs/images.d.cts +0 -11
- package/dist/cjs/index.cjs +0 -468
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/cjs/index.d.cts +0 -151
- package/dist/cjs/store/appStore.cjs +0 -145
- package/dist/cjs/store/appStore.cjs.map +0 -1
- package/dist/cjs/store/appStore.d.cts +0 -50
- package/dist/cjs/store/index.cjs +0 -35
- package/dist/cjs/store/index.cjs.map +0 -1
- package/dist/cjs/store/index.d.cts +0 -5
- package/dist/cjs/store/portalStore.cjs +0 -75
- package/dist/cjs/store/portalStore.cjs.map +0 -1
- package/dist/cjs/store/portalStore.d.cts +0 -33
- package/dist/cjs/store/saved-filters.cjs +0 -169
- package/dist/cjs/store/saved-filters.cjs.map +0 -1
- package/dist/cjs/store/saved-filters.d.cts +0 -54
- package/dist/cjs/store/uiStore.cjs +0 -27
- package/dist/cjs/store/uiStore.cjs.map +0 -1
- package/dist/cjs/store/uiStore.d.cts +0 -11
- package/dist/cjs/tests/portalMetaMocks.cjs +0 -18
- package/dist/cjs/tests/portalMetaMocks.cjs.map +0 -1
- package/dist/cjs/tests/portalMetaMocks.d.cts +0 -11
- package/dist/cjs/types/badge.cjs +0 -44
- package/dist/cjs/types/badge.cjs.map +0 -1
- package/dist/cjs/types/badge.d.cts +0 -16
- package/dist/cjs/types/index.cjs +0 -4
- package/dist/cjs/types/index.d.cts +0 -3
- package/dist/cjs/types/theme.cjs +0 -1
- package/dist/cjs/types/theme.d.cts +0 -35
- package/dist/cjs/utils/asyncUtils.cjs +0 -11
- package/dist/cjs/utils/asyncUtils.cjs.map +0 -1
- package/dist/cjs/utils/asyncUtils.d.cts +0 -5
- package/dist/cjs/utils/fileSize.cjs +0 -20
- package/dist/cjs/utils/fileSize.cjs.map +0 -1
- package/dist/cjs/utils/fileSize.d.cts +0 -5
- package/dist/cjs/utils/index.cjs +0 -39
- package/dist/cjs/utils/index.cjs.map +0 -1
- package/dist/cjs/utils/index.d.cts +0 -4
- package/dist/cjs/utils/theme.cjs +0 -725
- package/dist/cjs/utils/theme.cjs.map +0 -1
- package/dist/cjs/utils/theme.d.cts +0 -198
- package/dist/esm/_virtual/rolldown_runtime.js +0 -41
- package/dist/esm/components/actions/ActionListRenderer.spec.d.ts +0 -1
- package/dist/esm/components/actions/ActionListRenderer.spec.js +0 -168
- package/dist/esm/components/actions/ActionListRenderer.spec.js.map +0 -1
- package/dist/esm/components/actions/index.js.map +0 -1
- package/dist/esm/components/actions/items/CancelActionItem.spec.d.ts +0 -1
- package/dist/esm/components/actions/items/CancelActionItem.spec.js +0 -148
- package/dist/esm/components/actions/items/CancelActionItem.spec.js.map +0 -1
- package/dist/esm/components/actions/items/CustomActionItem.spec.d.ts +0 -1
- package/dist/esm/components/actions/items/CustomActionItem.spec.js +0 -151
- package/dist/esm/components/actions/items/CustomActionItem.spec.js.map +0 -1
- package/dist/esm/components/actions/items/LinkActionItem.spec.d.ts +0 -1
- package/dist/esm/components/actions/items/LinkActionItem.spec.js +0 -171
- package/dist/esm/components/actions/items/LinkActionItem.spec.js.map +0 -1
- package/dist/esm/components/actions/items/SubmitActionItem.spec.d.ts +0 -1
- package/dist/esm/components/actions/items/SubmitActionItem.spec.js +0 -141
- package/dist/esm/components/actions/items/SubmitActionItem.spec.js.map +0 -1
- package/dist/esm/components/app/AppComponent.spec.disabled.d.ts +0 -1
- package/dist/esm/components/app/AppComponent.spec.disabled.js +0 -556
- package/dist/esm/components/app/AppComponent.spec.disabled.js.map +0 -1
- package/dist/esm/components/data-table/contexts/index.js.map +0 -1
- package/dist/esm/components/data-table/index.js.map +0 -1
- package/dist/esm/components/data-table/register.js.map +0 -1
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.js.map +0 -1
- package/dist/esm/components/data-table/toolbarItems/filters/index.js.map +0 -1
- package/dist/esm/components/data-table/toolbarItems/filters/register.js.map +0 -1
- package/dist/esm/components/data-table/toolbarItems/index.js.map +0 -1
- package/dist/esm/components/data-table/toolbarItems/items/index.js.map +0 -1
- package/dist/esm/components/dialog/Dialog.context.spec.d.ts +0 -1
- package/dist/esm/components/dialog/Dialog.context.spec.js +0 -151
- package/dist/esm/components/dialog/Dialog.context.spec.js.map +0 -1
- package/dist/esm/components/dialog/Dialog.renderer.spec.d.ts +0 -1
- package/dist/esm/components/dialog/Dialog.renderer.spec.js +0 -676
- package/dist/esm/components/dialog/Dialog.renderer.spec.js.map +0 -1
- package/dist/esm/components/dialog/index.js.map +0 -1
- package/dist/esm/components/dialog/utils/index.js.map +0 -1
- package/dist/esm/components/editor/index.js.map +0 -1
- package/dist/esm/components/form/FormRenderer.spec.d.ts +0 -1
- package/dist/esm/components/form/FormRenderer.spec.js +0 -225
- package/dist/esm/components/form/FormRenderer.spec.js.map +0 -1
- package/dist/esm/components/form/SchemaForm.spec.d.ts +0 -1
- package/dist/esm/components/form/SchemaForm.spec.js +0 -436
- package/dist/esm/components/form/SchemaForm.spec.js.map +0 -1
- package/dist/esm/components/form/adapters.spec.d.ts +0 -1
- package/dist/esm/components/form/adapters.spec.js +0 -204
- package/dist/esm/components/form/adapters.spec.js.map +0 -1
- package/dist/esm/components/form/autocomplete/index.js.map +0 -1
- package/dist/esm/components/form/context.spec.d.ts +0 -1
- package/dist/esm/components/form/context.spec.js +0 -51
- package/dist/esm/components/form/context.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Checkbox.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Checkbox.spec.js +0 -80
- package/dist/esm/components/form/fields/Checkbox.spec.js.map +0 -1
- package/dist/esm/components/form/fields/DatePicker.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/DatePicker.spec.js +0 -89
- package/dist/esm/components/form/fields/DatePicker.spec.js.map +0 -1
- package/dist/esm/components/form/fields/EmailInput.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/EmailInput.spec.js +0 -38
- package/dist/esm/components/form/fields/EmailInput.spec.js.map +0 -1
- package/dist/esm/components/form/fields/FileInput.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/FileInput.spec.js +0 -61
- package/dist/esm/components/form/fields/FileInput.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Input.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Input.spec.js +0 -71
- package/dist/esm/components/form/fields/Input.spec.js.map +0 -1
- package/dist/esm/components/form/fields/RadioGroup.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/RadioGroup.spec.js +0 -96
- package/dist/esm/components/form/fields/RadioGroup.spec.js.map +0 -1
- package/dist/esm/components/form/fields/RichText.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/RichText.spec.js +0 -70
- package/dist/esm/components/form/fields/RichText.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Select.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Select.spec.js +0 -135
- package/dist/esm/components/form/fields/Select.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Slider.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Slider.spec.js +0 -82
- package/dist/esm/components/form/fields/Slider.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Switch.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Switch.spec.js +0 -74
- package/dist/esm/components/form/fields/Switch.spec.js.map +0 -1
- package/dist/esm/components/form/fields/Textarea.spec.d.ts +0 -1
- package/dist/esm/components/form/fields/Textarea.spec.js +0 -69
- package/dist/esm/components/form/fields/Textarea.spec.js.map +0 -1
- package/dist/esm/components/form/fields/index.js.map +0 -1
- package/dist/esm/components/form/index.js.map +0 -1
- package/dist/esm/components/form/utils/index.js.map +0 -1
- package/dist/esm/components/index.js.map +0 -1
- package/dist/esm/components/layout/DesktopSidebar.spec.d.ts +0 -1
- package/dist/esm/components/layout/DesktopSidebar.spec.js +0 -24
- package/dist/esm/components/layout/DesktopSidebar.spec.js.map +0 -1
- package/dist/esm/components/layout/GeneralLayout.spec.d.ts +0 -1
- package/dist/esm/components/layout/GeneralLayout.spec.js +0 -143
- package/dist/esm/components/layout/GeneralLayout.spec.js.map +0 -1
- package/dist/esm/components/layout/index.js.map +0 -1
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.spec.d.ts +0 -1
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.spec.js +0 -69
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.spec.js.map +0 -1
- package/dist/esm/components/shared/context/index.js.map +0 -1
- package/dist/esm/components/shared/environment/index.js.map +0 -1
- package/dist/esm/components/shared/footers/index.js.map +0 -1
- package/dist/esm/components/shared/headers/index.js.map +0 -1
- package/dist/esm/components/shared/hooks/index.js.map +0 -1
- package/dist/esm/components/shared/index.js.map +0 -1
- package/dist/esm/components/shared/registry/index.js.map +0 -1
- package/dist/esm/components/shared/types/environment.js.map +0 -1
- package/dist/esm/components/shared/types/index.js.map +0 -1
- package/dist/esm/components/shared/types/navigation.js.map +0 -1
- package/dist/esm/components/shared/utils/index.js.map +0 -1
- package/dist/esm/hooks/index.js.map +0 -1
- package/dist/esm/hooks/useTheme.spec.d.ts +0 -1
- package/dist/esm/hooks/useTheme.spec.js +0 -151
- package/dist/esm/hooks/useTheme.spec.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/store/index.js.map +0 -1
- package/dist/esm/utils/index.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
1
|
import { env, useFramework } from "@lumeweb/portal-framework-core";
|
|
3
2
|
import { useEffect } from "react";
|
|
4
3
|
import { createStore, useStore } from "zustand";
|
|
@@ -7,57 +6,53 @@ import { shallow } from "zustand/shallow";
|
|
|
7
6
|
import { useStoreWithEqualityFn } from "zustand/traditional";
|
|
8
7
|
|
|
9
8
|
//#region src/store/portalStore.ts
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
const portalStore = createStore((set) => ({
|
|
10
|
+
isMetaLoading: false,
|
|
11
|
+
meta: void 0,
|
|
12
|
+
portalUrl: env.VITE_PORTAL_DOMAIN ?? "",
|
|
13
|
+
sdk: null,
|
|
14
|
+
setIsMetaLoading: (isMetaLoading) => set({ isMetaLoading }),
|
|
15
|
+
setMeta: (meta) => set({ meta }),
|
|
16
|
+
setPortalUrl: (portalUrl) => set({ portalUrl }),
|
|
17
|
+
setSdk: (sdk) => set({ sdk })
|
|
18
|
+
}));
|
|
19
|
+
const usePortalActions = () => {
|
|
20
|
+
return useStoreWithEqualityFn(portalStore, (state) => ({
|
|
21
|
+
setIsMetaLoading: state.setIsMetaLoading,
|
|
22
|
+
setMeta: state.setMeta,
|
|
23
|
+
setPortalUrl: state.setPortalUrl,
|
|
24
|
+
setSdk: state.setSdk
|
|
25
|
+
}), shallow);
|
|
26
|
+
};
|
|
27
|
+
const usePortalStore = (selector, equalityFn = shallow) => {
|
|
28
|
+
return useStoreWithEqualityFn(portalStore, selector, equalityFn);
|
|
29
|
+
};
|
|
30
|
+
const useFrameworkSync = () => {
|
|
31
|
+
const framework = useFramework();
|
|
32
|
+
const actions = usePortalActions();
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (!framework) return;
|
|
35
|
+
if (!framework?.framework) return;
|
|
36
|
+
if (framework?.framework) actions.setPortalUrl(framework.framework.portalUrl);
|
|
37
|
+
if (framework?.framework?.meta) actions.setMeta(framework.framework.meta);
|
|
38
|
+
}, [framework?.framework, actions]);
|
|
39
|
+
};
|
|
40
|
+
const usePortal = (selector, equalityFn) => {
|
|
41
|
+
const state = usePortalStore(selector, equalityFn);
|
|
42
|
+
const actions = usePortalActions();
|
|
43
|
+
return {
|
|
44
|
+
...state,
|
|
45
|
+
...actions
|
|
29
46
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (!framework) return;
|
|
38
|
-
if (!framework?.framework) return;
|
|
39
|
-
if (framework?.framework) actions.setPortalUrl(framework.framework.portalUrl);
|
|
40
|
-
if (framework?.framework?.meta) actions.setMeta(framework.framework.meta);
|
|
41
|
-
}, [framework?.framework, actions]);
|
|
42
|
-
};
|
|
43
|
-
usePortal = (selector, equalityFn) => {
|
|
44
|
-
const state = usePortalStore(selector, equalityFn);
|
|
45
|
-
const actions = usePortalActions();
|
|
46
|
-
return {
|
|
47
|
-
...state,
|
|
48
|
-
...actions
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
metaStore = derive((get) => {
|
|
52
|
-
const portalUrl = get(portalStore).portalUrl;
|
|
53
|
-
const isMetaLoading = get(portalStore).isMetaLoading;
|
|
54
|
-
if (!portalUrl || isMetaLoading) return;
|
|
55
|
-
return get(portalStore).meta;
|
|
56
|
-
});
|
|
57
|
-
useMetaStore = () => useStore(metaStore);
|
|
47
|
+
};
|
|
48
|
+
const metaStore = derive((get) => {
|
|
49
|
+
const portalUrl = get(portalStore).portalUrl;
|
|
50
|
+
const isMetaLoading = get(portalStore).isMetaLoading;
|
|
51
|
+
if (!portalUrl || isMetaLoading) return;
|
|
52
|
+
return get(portalStore).meta;
|
|
58
53
|
});
|
|
54
|
+
const useMetaStore = () => useStore(metaStore);
|
|
59
55
|
|
|
60
56
|
//#endregion
|
|
61
|
-
|
|
62
|
-
export { init_portalStore, metaStore, portalStore, useFrameworkSync, useMetaStore, usePortal, usePortalActions, usePortalStore };
|
|
57
|
+
export { metaStore, portalStore, useFrameworkSync, useMetaStore, usePortal, usePortalActions, usePortalStore };
|
|
63
58
|
//# sourceMappingURL=portalStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portalStore.js","names":[],"sources":["../../../src/store/portalStore.ts"],"sourcesContent":["import {\n env,\n type PortalMeta,\n useFramework,\n} from \"@lumeweb/portal-framework-core\";\nimport { Sdk } from \"@lumeweb/portal-sdk\";\nimport { derive } from \"derive-zustand\";\nimport { useEffect } from \"react\";\nimport { createStore, useStore } from \"zustand\";\nimport { shallow } from \"zustand/shallow\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\n\nexport interface PortalActions {\n setIsMetaLoading: (isMetaLoading: boolean) => void;\n setMeta: (meta: PortalMeta | undefined) => void;\n setPortalUrl: (portalUrl: string) => void;\n setSdk: (sdk: null | Sdk) => void;\n}\n\nexport interface PortalState {\n isMetaLoading: boolean;\n meta: PortalMeta | undefined;\n portalUrl: string;\n sdk: null | Sdk;\n}\n\ntype PortalStore = PortalActions & PortalState;\n\nexport const portalStore = createStore<PortalStore>((set) => ({\n isMetaLoading: false,\n meta: undefined,\n portalUrl: env.VITE_PORTAL_DOMAIN ?? \"\",\n sdk: null,\n setIsMetaLoading: (isMetaLoading: boolean) => set({ isMetaLoading }),\n setMeta: (meta: PortalMeta | undefined) => set({ meta }),\n setPortalUrl: (portalUrl: string) => set({ portalUrl }),\n setSdk: (sdk: null | Sdk) => set({ sdk }),\n}));\n\n// Export actions separately for hooks that only need actions\nexport const usePortalActions = () => {\n return useStoreWithEqualityFn(\n portalStore,\n (state) => ({\n setIsMetaLoading: state.setIsMetaLoading,\n setMeta: state.setMeta,\n setPortalUrl: state.setPortalUrl,\n setSdk: state.setSdk,\n }),\n shallow,\n );\n};\n\n// Hook to select state from the portal store\nexport const usePortalStore = <T>(\n selector: (state: PortalState) => T,\n equalityFn: (a: T, b: T) => boolean = shallow,\n): T => {\n return useStoreWithEqualityFn(portalStore, selector, equalityFn);\n};\n\n// Effect to sync framework state with the portal store\nexport const useFrameworkSync = () => {\n const framework = useFramework();\n const actions = usePortalActions();\n\n useEffect(() => {\n if (!framework) return;\n if (!framework?.framework) return;\n\n // Initial sync\n // Read directly from the framework instance\n if (framework?.framework) {\n actions.setPortalUrl(framework.framework.portalUrl);\n }\n\n if (framework?.framework?.meta) {\n actions.setMeta(framework.framework.meta);\n }\n }, [framework?.framework, actions]);\n};\n\n// Main hook to use the portal store state and actions\nexport const usePortal = <T>(\n selector: (state: PortalState) => T,\n equalityFn?: (a: T, b: T) => boolean,\n): PortalActions & T => {\n const state = usePortalStore(selector, equalityFn);\n const actions = usePortalActions();\n return { ...state, ...actions };\n};\n\n// Create a derived store for the portal metadata\nexport const metaStore = derive<PortalMeta | undefined>((get) => {\n const portalUrl = get(portalStore).portalUrl;\n const isMetaLoading = get(portalStore).isMetaLoading;\n\n if (!portalUrl || isMetaLoading) {\n return undefined;\n }\n\n return get(portalStore).meta;\n});\n\nexport const useMetaStore = () => useStore(metaStore);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"portalStore.js","names":[],"sources":["../../../src/store/portalStore.ts"],"sourcesContent":["import {\n env,\n type PortalMeta,\n useFramework,\n} from \"@lumeweb/portal-framework-core\";\nimport { Sdk } from \"@lumeweb/portal-sdk\";\nimport { derive } from \"derive-zustand\";\nimport { useEffect } from \"react\";\nimport { createStore, useStore } from \"zustand\";\nimport { shallow } from \"zustand/shallow\";\nimport { useStoreWithEqualityFn } from \"zustand/traditional\";\n\nexport interface PortalActions {\n setIsMetaLoading: (isMetaLoading: boolean) => void;\n setMeta: (meta: PortalMeta | undefined) => void;\n setPortalUrl: (portalUrl: string) => void;\n setSdk: (sdk: null | Sdk) => void;\n}\n\nexport interface PortalState {\n isMetaLoading: boolean;\n meta: PortalMeta | undefined;\n portalUrl: string;\n sdk: null | Sdk;\n}\n\ntype PortalStore = PortalActions & PortalState;\n\nexport const portalStore = createStore<PortalStore>((set) => ({\n isMetaLoading: false,\n meta: undefined,\n portalUrl: env.VITE_PORTAL_DOMAIN ?? \"\",\n sdk: null,\n setIsMetaLoading: (isMetaLoading: boolean) => set({ isMetaLoading }),\n setMeta: (meta: PortalMeta | undefined) => set({ meta }),\n setPortalUrl: (portalUrl: string) => set({ portalUrl }),\n setSdk: (sdk: null | Sdk) => set({ sdk }),\n}));\n\n// Export actions separately for hooks that only need actions\nexport const usePortalActions = () => {\n return useStoreWithEqualityFn(\n portalStore,\n (state) => ({\n setIsMetaLoading: state.setIsMetaLoading,\n setMeta: state.setMeta,\n setPortalUrl: state.setPortalUrl,\n setSdk: state.setSdk,\n }),\n shallow,\n );\n};\n\n// Hook to select state from the portal store\nexport const usePortalStore = <T>(\n selector: (state: PortalState) => T,\n equalityFn: (a: T, b: T) => boolean = shallow,\n): T => {\n return useStoreWithEqualityFn(portalStore, selector, equalityFn);\n};\n\n// Effect to sync framework state with the portal store\nexport const useFrameworkSync = () => {\n const framework = useFramework();\n const actions = usePortalActions();\n\n useEffect(() => {\n if (!framework) return;\n if (!framework?.framework) return;\n\n // Initial sync\n // Read directly from the framework instance\n if (framework?.framework) {\n actions.setPortalUrl(framework.framework.portalUrl);\n }\n\n if (framework?.framework?.meta) {\n actions.setMeta(framework.framework.meta);\n }\n }, [framework?.framework, actions]);\n};\n\n// Main hook to use the portal store state and actions\nexport const usePortal = <T>(\n selector: (state: PortalState) => T,\n equalityFn?: (a: T, b: T) => boolean,\n): PortalActions & T => {\n const state = usePortalStore(selector, equalityFn);\n const actions = usePortalActions();\n return { ...state, ...actions };\n};\n\n// Create a derived store for the portal metadata\nexport const metaStore = derive<PortalMeta | undefined>((get) => {\n const portalUrl = get(portalStore).portalUrl;\n const isMetaLoading = get(portalStore).isMetaLoading;\n\n if (!portalUrl || isMetaLoading) {\n return undefined;\n }\n\n return get(portalStore).meta;\n});\n\nexport const useMetaStore = () => useStore(metaStore);\n"],"mappings":";;;;;;;;AA4BA,MAAa,cAAc,aAA0B,SAAS;CAC5D,eAAe;CACf,MAAM;CACN,WAAW,IAAI,sBAAsB;CACrC,KAAK;CACL,mBAAmB,kBAA2B,IAAI,EAAE,eAAe,CAAC;CACpE,UAAU,SAAiC,IAAI,EAAE,MAAM,CAAC;CACxD,eAAe,cAAsB,IAAI,EAAE,WAAW,CAAC;CACvD,SAAS,QAAoB,IAAI,EAAE,KAAK,CAAC;CAC1C,EAAE;AAGH,MAAa,yBAAyB;AACpC,QAAO,uBACL,cACC,WAAW;EACV,kBAAkB,MAAM;EACxB,SAAS,MAAM;EACf,cAAc,MAAM;EACpB,QAAQ,MAAM;EACf,GACD,QACD;;AAIH,MAAa,kBACX,UACA,aAAsC,YAChC;AACN,QAAO,uBAAuB,aAAa,UAAU,WAAW;;AAIlE,MAAa,yBAAyB;CACpC,MAAM,YAAY,cAAc;CAChC,MAAM,UAAU,kBAAkB;AAElC,iBAAgB;AACd,MAAI,CAAC,UAAW;AAChB,MAAI,CAAC,WAAW,UAAW;AAI3B,MAAI,WAAW,UACb,SAAQ,aAAa,UAAU,UAAU,UAAU;AAGrD,MAAI,WAAW,WAAW,KACxB,SAAQ,QAAQ,UAAU,UAAU,KAAK;IAE1C,CAAC,WAAW,WAAW,QAAQ,CAAC;;AAIrC,MAAa,aACX,UACA,eACsB;CACtB,MAAM,QAAQ,eAAe,UAAU,WAAW;CAClD,MAAM,UAAU,kBAAkB;AAClC,QAAO;EAAE,GAAG;EAAO,GAAG;EAAS;;AAIjC,MAAa,YAAY,QAAgC,QAAQ;CAC/D,MAAM,YAAY,IAAI,YAAY,CAAC;CACnC,MAAM,gBAAgB,IAAI,YAAY,CAAC;AAEvC,KAAI,CAAC,aAAa,cAChB;AAGF,QAAO,IAAI,YAAY,CAAC;EACxB;AAEF,MAAa,qBAAqB,SAAS,UAAU"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CrudFilters } from "@refinedev/core";
|
|
2
|
-
import * as
|
|
3
|
-
import * as jotai_utils0 from "jotai/utils";
|
|
2
|
+
import * as _$jotai from "jotai";
|
|
3
|
+
import * as _$jotai_utils0 from "jotai/utils";
|
|
4
4
|
|
|
5
5
|
//#region src/store/saved-filters.d.ts
|
|
6
6
|
interface SavedFilter {
|
|
@@ -14,15 +14,15 @@ interface SavedFilter {
|
|
|
14
14
|
type SavedFiltersStore = Record<string, SavedFilter[]>;
|
|
15
15
|
declare function generateHash(input: string): Promise<string>;
|
|
16
16
|
declare function generateStorageKey(resource: string): Promise<string>;
|
|
17
|
-
declare const savedFiltersAtom:
|
|
18
|
-
declare const resourceFiltersAtom:
|
|
17
|
+
declare const savedFiltersAtom: _$jotai.WritableAtom<SavedFiltersStore | Promise<SavedFiltersStore>, [SavedFiltersStore | Promise<SavedFiltersStore> | typeof _$jotai_utils0.RESET | ((prev: SavedFiltersStore | Promise<SavedFiltersStore>) => SavedFiltersStore | Promise<SavedFiltersStore> | typeof _$jotai_utils0.RESET)], Promise<void>>;
|
|
18
|
+
declare const resourceFiltersAtom: _$jotai.PrimitiveAtom<SavedFilter[]> & {
|
|
19
19
|
init: SavedFilter[];
|
|
20
20
|
};
|
|
21
|
-
declare const selectedFilterAtom:
|
|
22
|
-
declare const getResourceFiltersAtom:
|
|
21
|
+
declare const selectedFilterAtom: _$jotai.WritableAtom<SavedFilter | null, [update: SavedFilter | null], void>;
|
|
22
|
+
declare const getResourceFiltersAtom: _$jotai.WritableAtom<null, [resource: string], Promise<any>> & {
|
|
23
23
|
init: null;
|
|
24
24
|
};
|
|
25
|
-
declare const saveFilterAtom:
|
|
25
|
+
declare const saveFilterAtom: _$jotai.WritableAtom<null, [{
|
|
26
26
|
filters: CrudFilters;
|
|
27
27
|
isDefault?: boolean;
|
|
28
28
|
name: string;
|
|
@@ -30,23 +30,23 @@ declare const saveFilterAtom: jotai0.WritableAtom<null, [{
|
|
|
30
30
|
}], Promise<SavedFilter>> & {
|
|
31
31
|
init: null;
|
|
32
32
|
};
|
|
33
|
-
declare const updateFilterAtom:
|
|
33
|
+
declare const updateFilterAtom: _$jotai.WritableAtom<null, [{
|
|
34
34
|
filterId: string;
|
|
35
35
|
resource: string;
|
|
36
36
|
updates: Partial<SavedFilter>;
|
|
37
37
|
}], Promise<any>> & {
|
|
38
38
|
init: null;
|
|
39
39
|
};
|
|
40
|
-
declare const deleteFilterAtom:
|
|
40
|
+
declare const deleteFilterAtom: _$jotai.WritableAtom<null, [{
|
|
41
41
|
filterId: string;
|
|
42
42
|
resource: string;
|
|
43
43
|
}], Promise<boolean>> & {
|
|
44
44
|
init: null;
|
|
45
45
|
};
|
|
46
|
-
declare const applyFilterAtom:
|
|
46
|
+
declare const applyFilterAtom: _$jotai.WritableAtom<null, [filterId: string], CrudFilters | null> & {
|
|
47
47
|
init: null;
|
|
48
48
|
};
|
|
49
|
-
declare const clearSelectedFilterAtom:
|
|
49
|
+
declare const clearSelectedFilterAtom: _$jotai.WritableAtom<null, [], boolean> & {
|
|
50
50
|
init: null;
|
|
51
51
|
};
|
|
52
52
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saved-filters.js","names":[],"sources":["../../../src/store/saved-filters.ts"],"sourcesContent":["import type { CrudFilters } from \"@refinedev/core\";\n\nimport { BrowserLevel } from \"browser-level\";\nimport { atom } from \"jotai\";\nimport { atomWithStorage } from \"jotai/utils\";\n\n// Type definitions for saved filters\nexport interface SavedFilter {\n createdAt: string;\n filters: CrudFilters;\n id: string;\n isDefault?: boolean;\n name: string;\n updatedAt: string;\n}\n\nexport type SavedFiltersStore = Record<string, SavedFilter[]>;\n\n// Function to generate SHA-256 hash\nexport async function generateHash(input: string): Promise<string> {\n // Use the Web Crypto API to generate a SHA-256 hash\n const msgUint8 = new TextEncoder().encode(input);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgUint8);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n// Function to generate a storage key for a specific resource\nexport async function generateStorageKey(resource: string): Promise<string> {\n // Combine domain and resource for a unique key\n const domain =\n typeof window !== \"undefined\" ? window.location.hostname : \"localhost\";\n return generateHash(`${domain}:${resource}`);\n}\n\n// Create a custom storage for jotai that uses browser-level\nconst createBrowserLevelStorage = () => {\n // Create a browser-level instance for saved filters\n const db = new BrowserLevel(\"saved-filters\", {\n prefix: \"\", // No prefix needed\n version: 1,\n });\n\n // Open the database when the storage is created\n const dbPromise = db.open();\n\n // Create a storage object compatible with atomWithStorage\n return {\n // Add a method to close the database when needed\n close: async (): Promise<void> => {\n try {\n await db.close();\n } catch (error) {\n console.error(\"Error closing browser-level:\", error);\n }\n },\n\n getItem: async (\n key: string,\n initialValue: SavedFiltersStore,\n ): Promise<SavedFiltersStore> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n try {\n // Try to get the value from the database\n const value = await db.get(key, { valueEncoding: \"json\" });\n // Properly handle the type - browser-level with json encoding returns the parsed object\n return value as unknown as SavedFiltersStore;\n } catch (error: any) {\n // If key not found, return initial value\n if (error.code === \"LEVEL_NOT_FOUND\") {\n return initialValue;\n }\n throw error;\n }\n } catch (error) {\n console.error(\"Error reading from browser-level:\", error);\n return initialValue;\n }\n },\n\n removeItem: async (key: string): Promise<void> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n // Delete the key from the database\n await db.del(key);\n } catch (error) {\n console.error(\"Error deleting from browser-level:\", error);\n }\n },\n\n setItem: async (key: string, value: SavedFiltersStore): Promise<void> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n // Store the value in the database\n await db.put(key, value, { valueEncoding: \"json\" });\n } catch (error) {\n console.error(\"Error writing to browser-level:\", error);\n }\n },\n };\n};\n\n// Create the browser-level storage\nconst browserLevelStorage = createBrowserLevelStorage();\n\n// Create the atom for saved filters with browser-level storage\nexport const savedFiltersAtom = atomWithStorage<SavedFiltersStore>(\n \"savedFilters\",\n {},\n browserLevelStorage,\n);\n\n// Atom for the current resource's saved filters\nexport const resourceFiltersAtom = atom<SavedFilter[]>([]);\n\n// Make this a writable atom to fix the TypeScript errors\nexport const selectedFilterAtom = atom(\n (_) => null as null | SavedFilter,\n (_, set, update: null | SavedFilter) => {\n set(selectedFilterAtom, update);\n },\n);\n\n// Derived atom to get filters for a specific resource\nexport const getResourceFiltersAtom = atom(\n null,\n async (get, set, resource: string) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n const filters = allFilters[storageKey] || [];\n set(resourceFiltersAtom, filters);\n\n // Set default filter if available and no filter is selected\n const currentSelected = get(selectedFilterAtom);\n if (!currentSelected) {\n const defaultFilter = filters.find((f) => f.isDefault);\n if (defaultFilter) {\n // Now this will work with the writable atom\n set(selectedFilterAtom, defaultFilter);\n }\n }\n\n return filters;\n },\n);\n\n// Action atom to save a new filter\nexport const saveFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filters,\n isDefault = false,\n name,\n resource,\n }: {\n filters: CrudFilters;\n isDefault?: boolean;\n name: string;\n resource: string;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n const newFilter: SavedFilter = {\n createdAt: new Date().toISOString(),\n filters,\n id: await generateHash(`${name}:${Date.now()}`),\n isDefault,\n name,\n updatedAt: new Date().toISOString(),\n };\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // If this is set as default, remove default from others\n let updatedFilters = resourceFilters;\n if (isDefault) {\n updatedFilters = resourceFilters.map((filter) => ({\n ...filter,\n isDefault: false,\n }));\n }\n\n // Add the new filter\n updatedFilters = [...updatedFilters, newFilter];\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n set(selectedFilterAtom, newFilter);\n\n return newFilter;\n },\n);\n\n// Action atom to update an existing filter\nexport const updateFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filterId,\n resource,\n updates,\n }: {\n filterId: string;\n resource: string;\n updates: Partial<SavedFilter>;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // If setting as default, remove default from others\n let updatedFilters = resourceFilters;\n if (updates.isDefault) {\n updatedFilters = resourceFilters.map((filter) => ({\n ...filter,\n isDefault: false,\n }));\n }\n\n // Update the specific filter\n updatedFilters = updatedFilters.map((filter) => {\n if (filter.id === filterId) {\n return {\n ...filter,\n ...updates,\n updatedAt: new Date().toISOString(),\n };\n }\n return filter;\n });\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n\n // Update selected filter if it was the one modified\n const currentSelected = get(selectedFilterAtom);\n if (currentSelected && currentSelected.id === filterId) {\n const updatedFilter = updatedFilters.find((f) => f.id === filterId);\n if (updatedFilter) {\n set(selectedFilterAtom, updatedFilter);\n }\n }\n\n return updatedFilters.find((f) => f.id === filterId);\n },\n);\n\n// Action atom to delete a filter\nexport const deleteFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filterId,\n resource,\n }: {\n filterId: string;\n resource: string;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // Remove the filter\n const updatedFilters = resourceFilters.filter(\n (filter) => filter.id !== filterId,\n );\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n\n // Clear selected filter if it was the one deleted\n const currentSelected = get(selectedFilterAtom);\n if (currentSelected && currentSelected.id === filterId) {\n set(selectedFilterAtom, null);\n }\n\n return true;\n },\n);\n\n// Action atom to apply a saved filter\nexport const applyFilterAtom = atom(null, (get, set, filterId: string) => {\n const resourceFilters = get(resourceFiltersAtom);\n const filter = resourceFilters.find((f) => f.id === filterId);\n\n if (filter) {\n set(selectedFilterAtom, filter);\n return filter.filters;\n }\n\n return null;\n});\n\n// Action atom to clear the selected filter\nexport const clearSelectedFilterAtom = atom(null, (get, set) => {\n set(selectedFilterAtom, null);\n return true;\n});\n"],"mappings":";;;;;AAmBA,eAAsB,aAAa,OAAgC;CAEjE,MAAM,WAAW,IAAI,aAAa,CAAC,OAAO,MAAM;CAChD,MAAM,aAAa,MAAM,OAAO,OAAO,OAAO,WAAW,SAAS;AAElE,QADkB,MAAM,KAAK,IAAI,WAAW,WAAW,CAAC,CACvC,KAAK,MAAM,EAAE,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG;;AAIvE,eAAsB,mBAAmB,UAAmC;AAI1E,QAAO,aAAa,GADlB,OAAO,WAAW,cAAc,OAAO,SAAS,WAAW,YAC/B,GAAG,WAAW;;AAI9C,MAAM,kCAAkC;CAEtC,MAAM,KAAK,IAAI,aAAa,iBAAiB;EAC3C,QAAQ;EACR,SAAS;EACV,CAAC;CAGF,MAAM,YAAY,GAAG,MAAM;AAG3B,QAAO;EAEL,OAAO,YAA2B;AAChC,OAAI;AACF,UAAM,GAAG,OAAO;YACT,OAAO;AACd,YAAQ,MAAM,gCAAgC,MAAM;;;EAIxD,SAAS,OACP,KACA,iBAC+B;AAC/B,OAAI;AAEF,UAAM;AAEN,QAAI;AAIF,YAFc,MAAM,GAAG,IAAI,KAAK,EAAE,eAAe,QAAQ,CAAC;aAGnD,OAAY;AAEnB,SAAI,MAAM,SAAS,kBACjB,QAAO;AAET,WAAM;;YAED,OAAO;AACd,YAAQ,MAAM,qCAAqC,MAAM;AACzD,WAAO;;;EAIX,YAAY,OAAO,QAA+B;AAChD,OAAI;AAEF,UAAM;AAGN,UAAM,GAAG,IAAI,IAAI;YACV,OAAO;AACd,YAAQ,MAAM,sCAAsC,MAAM;;;EAI9D,SAAS,OAAO,KAAa,UAA4C;AACvE,OAAI;AAEF,UAAM;AAGN,UAAM,GAAG,IAAI,KAAK,OAAO,EAAE,eAAe,QAAQ,CAAC;YAC5C,OAAO;AACd,YAAQ,MAAM,mCAAmC,MAAM;;;EAG5D;;AAIH,MAAM,sBAAsB,2BAA2B;AAGvD,MAAa,mBAAmB,gBAC9B,gBACA,EAAE,EACF,oBACD;AAGD,MAAa,sBAAsB,KAAoB,EAAE,CAAC;AAG1D,MAAa,qBAAqB,MAC/B,MAAM,OACN,GAAG,KAAK,WAA+B;AACtC,KAAI,oBAAoB,OAAO;EAElC;AAGD,MAAa,yBAAyB,KACpC,MACA,OAAO,KAAK,KAAK,aAAqB;CAGpC,MAAM,UAFa,IAAI,iBAAiB,CACrB,MAAM,mBAAmB,SAAS,KACX,EAAE;AAC5C,KAAI,qBAAqB,QAAQ;AAIjC,KAAI,CADoB,IAAI,mBAAmB,EACzB;EACpB,MAAM,gBAAgB,QAAQ,MAAM,MAAM,EAAE,UAAU;AACtD,MAAI,cAEF,KAAI,oBAAoB,cAAc;;AAI1C,QAAO;EAEV;AAGD,MAAa,iBAAiB,KAC5B,MACA,OACE,KACA,KACA,EACE,SACA,YAAY,OACZ,MACA,eAOC;CACH,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,aAAa,MAAM,mBAAmB,SAAS;CAErD,MAAM,YAAyB;EAC7B,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC;EACA,IAAI,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,KAAK,GAAG;EAC/C;EACA;EACA,4BAAW,IAAI,MAAM,EAAC,aAAa;EACpC;CAGD,MAAM,kBAAkB,WAAW,eAAe,EAAE;CAGpD,IAAI,iBAAiB;AACrB,KAAI,UACF,kBAAiB,gBAAgB,KAAK,YAAY;EAChD,GAAG;EACH,WAAW;EACZ,EAAE;AAIL,kBAAiB,CAAC,GAAG,gBAAgB,UAAU;AAQ/C,KAAI,kBALiB;EACnB,GAAG;GACF,aAAa;EACf,CAEkC;AACnC,KAAI,qBAAqB,eAAe;AACxC,KAAI,oBAAoB,UAAU;AAElC,QAAO;EAEV;AAGD,MAAa,mBAAmB,KAC9B,MACA,OACE,KACA,KACA,EACE,UACA,UACA,cAMC;CACH,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,aAAa,MAAM,mBAAmB,SAAS;CAGrD,MAAM,kBAAkB,WAAW,eAAe,EAAE;CAGpD,IAAI,iBAAiB;AACrB,KAAI,QAAQ,UACV,kBAAiB,gBAAgB,KAAK,YAAY;EAChD,GAAG;EACH,WAAW;EACZ,EAAE;AAIL,kBAAiB,eAAe,KAAK,WAAW;AAC9C,MAAI,OAAO,OAAO,SAChB,QAAO;GACL,GAAG;GACH,GAAG;GACH,4BAAW,IAAI,MAAM,EAAC,aAAa;GACpC;AAEH,SAAO;GACP;AAQF,KAAI,kBALiB;EACnB,GAAG;GACF,aAAa;EACf,CAEkC;AACnC,KAAI,qBAAqB,eAAe;CAGxC,MAAM,kBAAkB,IAAI,mBAAmB;AAC/C,KAAI,mBAAmB,gBAAgB,OAAO,UAAU;EACtD,MAAM,gBAAgB,eAAe,MAAM,MAAM,EAAE,OAAO,SAAS;AACnE,MAAI,cACF,KAAI,oBAAoB,cAAc;;AAI1C,QAAO,eAAe,MAAM,MAAM,EAAE,OAAO,SAAS;EAEvD;AAGD,MAAa,mBAAmB,KAC9B,MACA,OACE,KACA,KACA,EACE,UACA,eAKC;CACH,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,aAAa,MAAM,mBAAmB,SAAS;CAMrD,MAAM,kBAHkB,WAAW,eAAe,EAAE,EAGb,QACpC,WAAW,OAAO,OAAO,SAC3B;AAQD,KAAI,kBALiB;EACnB,GAAG;GACF,aAAa;EACf,CAEkC;AACnC,KAAI,qBAAqB,eAAe;CAGxC,MAAM,kBAAkB,IAAI,mBAAmB;AAC/C,KAAI,mBAAmB,gBAAgB,OAAO,SAC5C,KAAI,oBAAoB,KAAK;AAG/B,QAAO;EAEV;AAGD,MAAa,kBAAkB,KAAK,OAAO,KAAK,KAAK,aAAqB;CAExE,MAAM,SADkB,IAAI,oBAAoB,CACjB,MAAM,MAAM,EAAE,OAAO,SAAS;AAE7D,KAAI,QAAQ;AACV,MAAI,oBAAoB,OAAO;AAC/B,SAAO,OAAO;;AAGhB,QAAO;EACP;AAGF,MAAa,0BAA0B,KAAK,OAAO,KAAK,QAAQ;AAC9D,KAAI,oBAAoB,KAAK;AAC7B,QAAO;EACP"}
|
|
1
|
+
{"version":3,"file":"saved-filters.js","names":[],"sources":["../../../src/store/saved-filters.ts"],"sourcesContent":["import type { CrudFilters } from \"@refinedev/core\";\n\nimport { BrowserLevel } from \"browser-level\";\nimport { atom } from \"jotai\";\nimport { atomWithStorage } from \"jotai/utils\";\n\n// Type definitions for saved filters\nexport interface SavedFilter {\n createdAt: string;\n filters: CrudFilters;\n id: string;\n isDefault?: boolean;\n name: string;\n updatedAt: string;\n}\n\nexport type SavedFiltersStore = Record<string, SavedFilter[]>;\n\n// Function to generate SHA-256 hash\nexport async function generateHash(input: string): Promise<string> {\n // Use the Web Crypto API to generate a SHA-256 hash\n const msgUint8 = new TextEncoder().encode(input);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgUint8);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n// Function to generate a storage key for a specific resource\nexport async function generateStorageKey(resource: string): Promise<string> {\n // Combine domain and resource for a unique key\n const domain =\n typeof window !== \"undefined\" ? window.location.hostname : \"localhost\";\n return generateHash(`${domain}:${resource}`);\n}\n\n// Create a custom storage for jotai that uses browser-level\nconst createBrowserLevelStorage = () => {\n // Create a browser-level instance for saved filters\n const db = new BrowserLevel(\"saved-filters\", {\n prefix: \"\", // No prefix needed\n version: 1,\n });\n\n // Open the database when the storage is created\n const dbPromise = db.open();\n\n // Create a storage object compatible with atomWithStorage\n return {\n // Add a method to close the database when needed\n close: async (): Promise<void> => {\n try {\n await db.close();\n } catch (error) {\n console.error(\"Error closing browser-level:\", error);\n }\n },\n\n getItem: async (\n key: string,\n initialValue: SavedFiltersStore,\n ): Promise<SavedFiltersStore> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n try {\n // Try to get the value from the database\n const value = await db.get(key, { valueEncoding: \"json\" });\n // Properly handle the type - browser-level with json encoding returns the parsed object\n return value as unknown as SavedFiltersStore;\n } catch (error: any) {\n // If key not found, return initial value\n if (error.code === \"LEVEL_NOT_FOUND\") {\n return initialValue;\n }\n throw error;\n }\n } catch (error) {\n console.error(\"Error reading from browser-level:\", error);\n return initialValue;\n }\n },\n\n removeItem: async (key: string): Promise<void> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n // Delete the key from the database\n await db.del(key);\n } catch (error) {\n console.error(\"Error deleting from browser-level:\", error);\n }\n },\n\n setItem: async (key: string, value: SavedFiltersStore): Promise<void> => {\n try {\n // Ensure database is open\n await dbPromise;\n\n // Store the value in the database\n await db.put(key, value, { valueEncoding: \"json\" });\n } catch (error) {\n console.error(\"Error writing to browser-level:\", error);\n }\n },\n };\n};\n\n// Create the browser-level storage\nconst browserLevelStorage = createBrowserLevelStorage();\n\n// Create the atom for saved filters with browser-level storage\nexport const savedFiltersAtom = atomWithStorage<SavedFiltersStore>(\n \"savedFilters\",\n {},\n browserLevelStorage,\n);\n\n// Atom for the current resource's saved filters\nexport const resourceFiltersAtom = atom<SavedFilter[]>([]);\n\n// Make this a writable atom to fix the TypeScript errors\nexport const selectedFilterAtom = atom(\n (_) => null as null | SavedFilter,\n (_, set, update: null | SavedFilter) => {\n set(selectedFilterAtom, update);\n },\n);\n\n// Derived atom to get filters for a specific resource\nexport const getResourceFiltersAtom = atom(\n null,\n async (get, set, resource: string) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n const filters = allFilters[storageKey] || [];\n set(resourceFiltersAtom, filters);\n\n // Set default filter if available and no filter is selected\n const currentSelected = get(selectedFilterAtom);\n if (!currentSelected) {\n const defaultFilter = filters.find((f) => f.isDefault);\n if (defaultFilter) {\n // Now this will work with the writable atom\n set(selectedFilterAtom, defaultFilter);\n }\n }\n\n return filters;\n },\n);\n\n// Action atom to save a new filter\nexport const saveFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filters,\n isDefault = false,\n name,\n resource,\n }: {\n filters: CrudFilters;\n isDefault?: boolean;\n name: string;\n resource: string;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n const newFilter: SavedFilter = {\n createdAt: new Date().toISOString(),\n filters,\n id: await generateHash(`${name}:${Date.now()}`),\n isDefault,\n name,\n updatedAt: new Date().toISOString(),\n };\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // If this is set as default, remove default from others\n let updatedFilters = resourceFilters;\n if (isDefault) {\n updatedFilters = resourceFilters.map((filter) => ({\n ...filter,\n isDefault: false,\n }));\n }\n\n // Add the new filter\n updatedFilters = [...updatedFilters, newFilter];\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n set(selectedFilterAtom, newFilter);\n\n return newFilter;\n },\n);\n\n// Action atom to update an existing filter\nexport const updateFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filterId,\n resource,\n updates,\n }: {\n filterId: string;\n resource: string;\n updates: Partial<SavedFilter>;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // If setting as default, remove default from others\n let updatedFilters = resourceFilters;\n if (updates.isDefault) {\n updatedFilters = resourceFilters.map((filter) => ({\n ...filter,\n isDefault: false,\n }));\n }\n\n // Update the specific filter\n updatedFilters = updatedFilters.map((filter) => {\n if (filter.id === filterId) {\n return {\n ...filter,\n ...updates,\n updatedAt: new Date().toISOString(),\n };\n }\n return filter;\n });\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n\n // Update selected filter if it was the one modified\n const currentSelected = get(selectedFilterAtom);\n if (currentSelected && currentSelected.id === filterId) {\n const updatedFilter = updatedFilters.find((f) => f.id === filterId);\n if (updatedFilter) {\n set(selectedFilterAtom, updatedFilter);\n }\n }\n\n return updatedFilters.find((f) => f.id === filterId);\n },\n);\n\n// Action atom to delete a filter\nexport const deleteFilterAtom = atom(\n null,\n async (\n get,\n set,\n {\n filterId,\n resource,\n }: {\n filterId: string;\n resource: string;\n },\n ) => {\n const allFilters = get(savedFiltersAtom);\n const storageKey = await generateStorageKey(resource);\n\n // Get existing filters for this resource\n const resourceFilters = allFilters[storageKey] || [];\n\n // Remove the filter\n const updatedFilters = resourceFilters.filter(\n (filter) => filter.id !== filterId,\n );\n\n // Update the store\n const updatedStore = {\n ...allFilters,\n [storageKey]: updatedFilters,\n };\n\n set(savedFiltersAtom, updatedStore);\n set(resourceFiltersAtom, updatedFilters);\n\n // Clear selected filter if it was the one deleted\n const currentSelected = get(selectedFilterAtom);\n if (currentSelected && currentSelected.id === filterId) {\n set(selectedFilterAtom, null);\n }\n\n return true;\n },\n);\n\n// Action atom to apply a saved filter\nexport const applyFilterAtom = atom(null, (get, set, filterId: string) => {\n const resourceFilters = get(resourceFiltersAtom);\n const filter = resourceFilters.find((f) => f.id === filterId);\n\n if (filter) {\n set(selectedFilterAtom, filter);\n return filter.filters;\n }\n\n return null;\n});\n\n// Action atom to clear the selected filter\nexport const clearSelectedFilterAtom = atom(null, (get, set) => {\n set(selectedFilterAtom, null);\n return true;\n});\n"],"mappings":"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"}
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
1
|
import { createStore, useStore } from "zustand";
|
|
3
2
|
import { persist } from "zustand/middleware";
|
|
4
3
|
|
|
5
4
|
//#region src/store/uiStore.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}));
|
|
15
|
-
useUIStore = (selector) => useStore(uiStore, selector);
|
|
16
|
-
});
|
|
5
|
+
const uiStore = createStore()(persist((set) => ({
|
|
6
|
+
setTheme: (theme) => set({ theme }),
|
|
7
|
+
theme: "default"
|
|
8
|
+
}), {
|
|
9
|
+
name: "ui-store",
|
|
10
|
+
partialize: (state) => ({ theme: state.theme })
|
|
11
|
+
}));
|
|
12
|
+
const useUIStore = (selector) => useStore(uiStore, selector);
|
|
17
13
|
|
|
18
14
|
//#endregion
|
|
19
|
-
|
|
20
|
-
export { init_uiStore, useUIStore };
|
|
15
|
+
export { useUIStore };
|
|
21
16
|
//# sourceMappingURL=uiStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiStore.js","names":[],"sources":["../../../src/store/uiStore.ts"],"sourcesContent":["import { createStore, useStore } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\ninterface UIActions {\n setTheme: (theme: string) => void;\n}\n\ninterface UIState {\n theme: string;\n}\n\nconst uiStore = createStore<UIActions & UIState>()(\n persist(\n (set) => ({\n setTheme: (theme) => set({ theme }),\n theme: \"default\",\n }),\n {\n name: \"ui-store\",\n partialize: (state) => ({ theme: state.theme }),\n },\n ),\n);\n\nexport const useUIStore = <T>(selector: (state: UIActions & UIState) => T) =>\n useStore(uiStore, selector);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"uiStore.js","names":[],"sources":["../../../src/store/uiStore.ts"],"sourcesContent":["import { createStore, useStore } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\ninterface UIActions {\n setTheme: (theme: string) => void;\n}\n\ninterface UIState {\n theme: string;\n}\n\nconst uiStore = createStore<UIActions & UIState>()(\n persist(\n (set) => ({\n setTheme: (theme) => set({ theme }),\n theme: \"default\",\n }),\n {\n name: \"ui-store\",\n partialize: (state) => ({ theme: state.theme }),\n },\n ),\n);\n\nexport const useUIStore = <T>(selector: (state: UIActions & UIState) => T) =>\n useStore(uiStore, selector);\n"],"mappings":";;;;AAWA,MAAM,UAAU,aAAkC,CAChD,SACG,SAAS;CACR,WAAW,UAAU,IAAI,EAAE,OAAO,CAAC;CACnC,OAAO;CACR,GACD;CACE,MAAM;CACN,aAAa,WAAW,EAAE,OAAO,MAAM,OAAO;CAC/C,CACF,CACF;AAED,MAAa,cAAiB,aAC5B,SAAS,SAAS,SAAS"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import * as _$_lumeweb_portal_framework_core0 from "@lumeweb/portal-framework-core";
|
|
1
2
|
import { PortalMeta } from "@lumeweb/portal-framework-core";
|
|
2
3
|
|
|
3
4
|
//#region src/tests/portalMetaMocks.d.ts
|
|
4
|
-
declare const createMockPortalMeta: (overrides?: Partial<PortalMeta>) =>
|
|
5
|
+
declare const createMockPortalMeta: (overrides?: Partial<PortalMeta>) => {
|
|
6
|
+
domain: string;
|
|
7
|
+
feature_flags: Record<string, boolean>;
|
|
8
|
+
plugins: _$_lumeweb_portal_framework_core0.PortalMetaPlugins;
|
|
9
|
+
};
|
|
5
10
|
declare const createMockPlugin: (meta?: any) => {
|
|
6
11
|
meta: any;
|
|
7
12
|
web_bundles: never[];
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString,
|
|
1
|
+
import { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString, isValidBackgroundImages, isValidColor, isValidSystemColors, lightenColor, meetsWcagContrast, meetsWcagNonTextContrast, meetsWcagTextContrast, mergeThemes, rgbToHsl, rgbToLuminance, saturateColor, validateTheme } from "./theme.js";
|
|
2
2
|
import { runWhenIdle } from "./asyncUtils.js";
|
|
3
3
|
import { formatFileSize } from "./fileSize.js";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
init_theme();
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
export { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, formatFileSize, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString, isValidBackgroundImages, isValidColor, isValidSystemColors, lightenColor, meetsWcagContrast, meetsWcagNonTextContrast, meetsWcagTextContrast, mergeThemes, rgbToHsl, rgbToLuminance, runWhenIdle, saturateColor, validateTheme };
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
5
|
+
export { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, formatFileSize, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString, isValidBackgroundImages, isValidColor, isValidSystemColors, lightenColor, meetsWcagContrast, meetsWcagNonTextContrast, meetsWcagTextContrast, mergeThemes, rgbToHsl, rgbToLuminance, runWhenIdle, saturateColor, validateTheme };
|
package/dist/esm/utils/theme.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
|
-
|
|
3
1
|
//#region src/utils/theme.ts
|
|
4
2
|
/**
|
|
5
3
|
* Adjusts the hue of a color by a given number of degrees.
|
|
@@ -434,13 +432,13 @@ function hslToRgb(color) {
|
|
|
434
432
|
let b, g, r;
|
|
435
433
|
if (s === 0) r = g = b = l;
|
|
436
434
|
else {
|
|
437
|
-
const hue2rgb = (p
|
|
435
|
+
const hue2rgb = (p, q, t) => {
|
|
438
436
|
if (t < 0) t += 1;
|
|
439
437
|
if (t > 1) t -= 1;
|
|
440
|
-
if (t < 1 / 6) return p
|
|
441
|
-
if (t < 1 / 2) return q
|
|
442
|
-
if (t < 2 / 3) return p
|
|
443
|
-
return p
|
|
438
|
+
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
|
439
|
+
if (t < 1 / 2) return q;
|
|
440
|
+
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
441
|
+
return p;
|
|
444
442
|
};
|
|
445
443
|
const q = l < .5 ? l * (1 + s) : l + s - l * s;
|
|
446
444
|
const p = 2 * l - q;
|
|
@@ -676,7 +674,6 @@ function validateTheme(data) {
|
|
|
676
674
|
function clamp(value, min, max) {
|
|
677
675
|
return Math.max(min, Math.min(value, max));
|
|
678
676
|
}
|
|
679
|
-
var init_theme = __esmMin(() => {});
|
|
680
677
|
/**
|
|
681
678
|
* Merges properties from an overrides object into a base theme object.
|
|
682
679
|
* Useful for applying partial theme customizations.
|
|
@@ -688,6 +685,5 @@ var init_theme = __esmMin(() => {});
|
|
|
688
685
|
*/
|
|
689
686
|
|
|
690
687
|
//#endregion
|
|
691
|
-
|
|
692
|
-
export { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString, init_theme, isValidBackgroundImages, isValidColor, isValidSystemColors, lightenColor, meetsWcagContrast, meetsWcagNonTextContrast, meetsWcagTextContrast, mergeThemes, rgbToHsl, rgbToLuminance, saturateColor, validateTheme };
|
|
688
|
+
export { adjustHue, applyThemeStyles, createDefaultSystemColors, createDefaultTheme, createZeroSystemColors, darkenColor, desaturateColor, ensureWcagContrast, generateThemeCSS, getContrastRatio, getThemeById, hexToHsl, hslToRawString, hslToRgb, hslToString, isValidBackgroundImages, isValidColor, isValidSystemColors, lightenColor, meetsWcagContrast, meetsWcagNonTextContrast, meetsWcagTextContrast, mergeThemes, rgbToHsl, rgbToLuminance, saturateColor, validateTheme };
|
|
693
689
|
//# sourceMappingURL=theme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","names":["p","q"],"sources":["../../../src/utils/theme.ts"],"sourcesContent":["// Import the theme types from the new types file\nimport { BackgroundImages, Color, SystemColors, Theme } from \"../types/theme\";\n\n/**\n * Adjusts the hue of a color by a given number of degrees.\n * Hue wraps around at 360.\n * @param color The Color object.\n * @param degrees The number of degrees to adjust the hue by.\n * @returns A new Color object.\n */\nexport function adjustHue(color: Color, degrees: number): Color {\n let newHue = color.hue + degrees;\n // Ensure hue wraps around 0-360\n newHue = newHue % 360;\n if (newHue < 0) {\n newHue += 360;\n }\n return { ...color, hue: newHue };\n}\n\n/**\n * Applies the styles from a Theme object to the DOM.\n * This function manipulates the document head and root element class.\n * @param theme The Theme object to apply.\n */\nexport function applyThemeStyles(theme: Theme): void {\n const css = generateThemeCSS(theme);\n const style = document.createElement(\"style\");\n style.textContent = css;\n const existingStyle = document.head.querySelector(\"style[data-theme]\");\n\n if (existingStyle) {\n document.head.removeChild(existingStyle);\n }\n style.setAttribute(\"data-theme\", theme.id);\n document.head.appendChild(style);\n\n document.documentElement.className = `theme-${theme.id}`;\n}\n\n/**\n * Creates default system colors for a light theme.\n */\nexport function createDefaultSystemColors(): SystemColors {\n return {\n active_ui_element: { hue: 0, lightness: 80, saturation: 0 },\n background: { hue: 0, lightness: 100, saturation: 0 },\n borders: { hue: 0, lightness: 70, saturation: 0 },\n high_contrast_text: { hue: 0, lightness: 10, saturation: 0 },\n hovered_element_border: { hue: 0, lightness: 50, saturation: 0 },\n hovered_solid_bg: { hue: 0, lightness: 35, saturation: 0 },\n hovered_ui_element: { hue: 0, lightness: 85, saturation: 0 },\n low_contrast_text: { hue: 0, lightness: 30, saturation: 0 },\n solid_background: { hue: 0, lightness: 40, saturation: 0 },\n subtle_background: { hue: 0, lightness: 95, saturation: 0 },\n ui_element_background: { hue: 0, lightness: 90, saturation: 0 },\n ui_element_border: { hue: 0, lightness: 60, saturation: 0 },\n };\n}\n\n/**\n * Creates a default theme object.\n * This can be used as a fallback or starting point.\n */\nexport function createDefaultTheme(): Theme {\n return {\n background_images: {\n login: \"\",\n register: \"\",\n reset_password: \"\",\n },\n id: \"default\",\n name: \"Default Theme\",\n system_colors: createDefaultSystemColors(),\n };\n}\n\n/**\n * Creates a system colors object with all values at zero.\n * Useful for testing and reset operations.\n */\nexport function createZeroSystemColors(): SystemColors {\n return {\n active_ui_element: { hue: 0, lightness: 0, saturation: 0 },\n background: { hue: 0, lightness: 0, saturation: 0 },\n borders: { hue: 0, lightness: 0, saturation: 0 },\n high_contrast_text: { hue: 0, lightness: 0, saturation: 0 },\n hovered_element_border: { hue: 0, lightness: 0, saturation: 0 },\n hovered_solid_bg: { hue: 0, lightness: 0, saturation: 0 },\n hovered_ui_element: { hue: 0, lightness: 0, saturation: 0 },\n low_contrast_text: { hue: 0, lightness: 0, saturation: 0 },\n solid_background: { hue: 0, lightness: 0, saturation: 0 },\n subtle_background: { hue: 0, lightness: 0, saturation: 0 },\n ui_element_background: { hue: 0, lightness: 0, saturation: 0 },\n ui_element_border: { hue: 0, lightness: 0, saturation: 0 },\n };\n}\n\n/**\n * Darkens a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to darken by (0-100).\n * @returns A new Color object.\n */\nexport function darkenColor(color: Color, amount: number): Color {\n const newLightness = clamp(color.lightness - amount, 0, 100);\n return { ...color, lightness: newLightness };\n}\n\n/**\n * Desaturates a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to desaturate by (0-100).\n * @returns A new Color object.\n */\nexport function desaturateColor(color: Color, amount: number): Color {\n const newSaturation = clamp(color.saturation - amount, 0, 100);\n return { ...color, saturation: newSaturation };\n}\n\n/**\n * Attempts to adjust theme colors to meet WCAG contrast requirements.\n * It iterates through common color pairs and adjusts lightness if contrast is insufficient.\n * Returns a new Theme object if changes were made, otherwise returns the original theme.\n * @param theme The Theme object to check and potentially adjust.\n * @param textLevel The desired WCAG level for text contrast ('AA' or 'AAA'). Defaults to 'AA'.\n * @param nonTextLevel The desired WCAG level for non-text contrast ('AA'). Defaults to 'AA'.\n * @returns A new Theme object with adjusted colors if needed, or the original theme.\n */\nexport function ensureWcagContrast(\n theme: Theme,\n textLevel: \"AA\" | \"AAA\" = \"AA\",\n nonTextLevel: \"AA\" = \"AA\", // Non-text only has AA (3:1) requirement\n): Theme {\n const modifiedTheme = { ...theme, systemColors: { ...theme.system_colors } };\n let changesMade = false;\n\n const colors = modifiedTheme.systemColors;\n\n // Define color pairs and their check type (text/non-text) and text size (normal/large)\n // For simplicity, assume all text is 'normal' for now. Large text check can be added later if needed.\n const colorPairs: {\n bgKey: keyof SystemColors;\n fgKey: keyof SystemColors;\n type: \"non-text\" | \"text\";\n }[] = [\n { bgKey: \"background\", fgKey: \"high_contrast_text\", type: \"text\" },\n { bgKey: \"background\", fgKey: \"low_contrast_text\", type: \"text\" },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"high_contrast_text\",\n type: \"text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"low_contrast_text\",\n type: \"text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"ui_element_border\",\n type: \"non-text\",\n },\n {\n bgKey: \"hovered_ui_element\",\n fgKey: \"hovered_element_border\",\n type: \"non-text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"active_ui_element\",\n type: \"non-text\",\n },\n { bgKey: \"background\", fgKey: \"hovered_ui_element\", type: \"non-text\" },\n { bgKey: \"background\", fgKey: \"solid_background\", type: \"non-text\" },\n { bgKey: \"solid_background\", fgKey: \"hovered_solid_bg\", type: \"non-text\" },\n ];\n\n for (const { bgKey, fgKey, type } of colorPairs) {\n const fgColor = colors[fgKey];\n const bgColor = colors[bgKey];\n\n let needsAdjustment = false;\n let requiredRatio: number;\n\n if (type === \"text\") {\n requiredRatio = textLevel === \"AAA\" ? 7.0 : 4.5;\n if (!meetsWcagTextContrast(fgColor, bgColor, textLevel, false)) {\n // Assume normal text for now\n needsAdjustment = true;\n }\n } else {\n // non-text\n requiredRatio = 3.0; // WCAG 2.1 SC 1.4.11 AA\n if (!meetsWcagNonTextContrast(fgColor, bgColor)) {\n needsAdjustment = true;\n }\n }\n\n if (needsAdjustment) {\n changesMade = true;\n console.warn(\n `WCAG Contrast Warning: Pair ${fgKey} vs ${bgKey} (Current Ratio: ${getContrastRatio(fgColor, bgColor)}) does not meet required ratio ${requiredRatio} for ${type === \"text\" ? textLevel + \" Text\" : \"Non-text\"}. Attempting to adjust.`,\n );\n\n // Simple adjustment strategy: Adjust foreground lightness first, then background lightness.\n // Determine direction of adjustment for foreground\n const fgLuminance = rgbToLuminance(...hslToRgb(fgColor));\n const bgLuminance = rgbToLuminance(...hslToRgb(bgColor));\n\n let adjustedFg = { ...fgColor };\n let adjustedBg = { ...bgColor };\n let currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n const step = 1; // Adjust lightness by 1% at a time\n const maxAttempts = 200; // Total attempts limit\n\n let attempts = 0;\n let adjustingFg = true; // Start by adjusting foreground\n\n while (currentRatio < requiredRatio && attempts < maxAttempts) {\n attempts++;\n const currentFgLuminance = rgbToLuminance(...hslToRgb(adjustedFg));\n const currentBgLuminance = rgbToLuminance(...hslToRgb(adjustedBg));\n\n let adjustedThisIteration = false;\n\n if (adjustingFg) {\n // Determine ideal direction for FG adjustment\n // Determine ideal direction for FG adjustment to increase contrast:\n // If FG is darker than BG, darkening FG increases contrast (direction -1)\n // If FG is lighter than BG, lightening FG increases contrast (direction +1)\n const fgAdjustmentDirection =\n currentFgLuminance < currentBgLuminance ? -1 : 1;\n const nextFgLightness = clamp(\n adjustedFg.lightness + fgAdjustmentDirection * step,\n 0,\n 100,\n );\n\n if (adjustedFg.lightness === nextFgLightness) {\n adjustingFg = false; // Switch to adjusting background\n // Fall through to BG adjustment logic in the same iteration\n } else {\n // Adjust FG lightness\n adjustedFg = { ...adjustedFg, lightness: nextFgLightness };\n currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n adjustedThisIteration = true;\n }\n }\n\n // If we are here and haven't adjusted FG, try adjusting BG\n if (!adjustedThisIteration && !adjustingFg) {\n // Determine ideal direction for BG adjustment relative to the *current* FG\n // If BG is darker than FG, lightening BG increases contrast (direction +1)\n // If BG is lighter than FG, darkening BG increases contrast (direction -1)\n const bgAdjustmentDirection =\n currentBgLuminance < currentFgLuminance ? 1 : -1;\n const nextBgLightness = clamp(\n adjustedBg.lightness + bgAdjustmentDirection * step,\n 0,\n 100,\n );\n\n if (adjustedBg.lightness === nextBgLightness) {\n // BG hit a boundary and couldn't move further, stop\n break; // Cannot adjust further\n } else {\n // Adjust BG lightness\n adjustedBg = { ...adjustedBg, lightness: nextBgLightness };\n currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n adjustedThisIteration = true;\n }\n }\n\n // If neither color could be adjusted in this iteration, break to prevent infinite loops\n if (!adjustedThisIteration) {\n console.warn(\n ` WCAG Contrast Warning: Neither FG nor BG could be adjusted further for ${fgKey} vs ${bgKey}. Current Ratio: ${currentRatio}. Required: ${requiredRatio}. Stopping.`,\n );\n break;\n }\n }\n\n // Update the colors in the modified theme\n modifiedTheme.systemColors[fgKey] = adjustedFg;\n modifiedTheme.systemColors[bgKey] = adjustedBg;\n\n if (getContrastRatio(adjustedFg, adjustedBg) < requiredRatio) {\n console.warn(\n `WCAG Contrast Warning: Pair ${fgKey} vs ${bgKey} could not meet required ratio ${requiredRatio} after ${attempts} attempts. Final Ratio: ${getContrastRatio(adjustedFg, adjustedBg)}.`,\n );\n }\n }\n }\n\n // Return the modified theme if changes were made, otherwise return the original\n return changesMade ? modifiedTheme : theme;\n}\n\n/**\n * Generates CSS variable declarations for a given theme.\n * @param theme The Theme object.\n * @returns A CSS string with variable declarations.\n */\nexport function generateThemeCSS(theme: Theme): string {\n // Ensure systemColors and backgroundImages are objects before accessing entries.\n // This handles cases where they might be null, undefined, or other non-object types.\n const systemColors =\n theme?.system_colors &&\n typeof theme.system_colors === \"object\" &&\n !Array.isArray(theme.system_colors)\n ? theme.system_colors\n : {};\n const backgroundImages =\n theme?.background_images &&\n typeof theme.background_images === \"object\" &&\n !Array.isArray(theme.background_images)\n ? theme.background_images\n : {};\n\n const colorVariables = Object.entries(systemColors)\n .map(([key, value]) => {\n // Ensure value is a valid Color before converting\n if (!isValidColor(value)) {\n console.warn(\n `Skipping invalid color for key \"${key}\" in theme \"${theme?.id}\"`,\n );\n return \"\"; // Skip invalid color entries\n }\n // Convert snake_case keys to kebab-case for CSS variables\n return `--theme-${key.replace(/_/g, \"-\")}: ${hslToRawString(value)};`;\n })\n .filter((line) => line !== \"\") // Remove empty lines from skipped colors\n .join(\"\\n \");\n\n const backgroundImageVariables = Object.entries(backgroundImages)\n .map(([key, value]) => {\n // Ensure value is a string before using\n if (typeof value !== \"string\") {\n console.warn(\n `Skipping invalid background image URL for key \"${key}\" in theme \"${theme?.id}\"`,\n );\n return \"\"; // Skip invalid image entries\n }\n // Convert snake_case keys to kebab-case for CSS variables\n return `--lume-bg-${key.replace(/_/g, \"-\")}: url(\"${value}\");`;\n })\n .filter((line) => line !== \"\") // Remove empty lines from skipped images\n .join(\"\\n \");\n\n // Add a check for theme.id in case theme itself is null/undefined, although the initial checks handle this.\n const themeId = theme?.id || \"unknown\";\n\n return `\n:root.theme-${themeId} {\n ${colorVariables}\n ${backgroundImageVariables}\n}\n`;\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n * Based on WCAG 2.x guidelines.\n * @param color1 The first Color object.\n * @param color2 The second Color object.\n * @returns The contrast ratio (1 to 21).\n */\nexport function getContrastRatio(color1: Color, color2: Color): number {\n const [r1, g1, b1] = hslToRgb(color1);\n const [r2, g2, b2] = hslToRgb(color2);\n\n const luminance1 = rgbToLuminance(r1, g1, b1);\n const luminance2 = rgbToLuminance(r2, g2, b2);\n\n // Add 0.05 to the luminance values to account for ambient light\n const lighter = Math.max(luminance1, luminance2);\n const darker = Math.min(luminance1, luminance2);\n\n // Calculate the contrast ratio\n const ratio = (lighter + 0.05) / (darker + 0.05);\n\n // Return ratio rounded to 2 decimal places\n return Math.round(ratio * 100) / 100;\n}\n\n/**\n * Finds a specific theme by its ID from a list of themes.\n * @param themes The array of available themes.\n * @param themeId The ID of the theme to find.\n * @returns The found Theme object or undefined if not found.\n */\nexport function getThemeById(\n themes: Theme[],\n themeId: string,\n): Theme | undefined {\n return themes.find((t) => t.id === themeId);\n}\n\n/**\n * Converts a Hex color string (#RRGGBB or #RGB) to an HSL Color object.\n * @param hex The hex color string.\n * @returns An HSL Color object or undefined if the hex string is invalid.\n */\nexport function hexToHsl(hex: string): Color | undefined {\n // Validate hex string format (must start with # and be 3 or 6 hex characters)\n const hexMatch = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(hex);\n\n if (!hexMatch) {\n console.error(`Invalid hex color format: ${hex}`);\n return undefined;\n }\n\n let cleanHex = hexMatch[1]; // Get the hex part without '#'\n\n // Expand 3-digit hex to 6-digit hex\n if (cleanHex.length === 3) {\n cleanHex =\n cleanHex[0] +\n cleanHex[0] +\n cleanHex[1] +\n cleanHex[1] +\n cleanHex[2] +\n cleanHex[2];\n }\n\n // Parse R, G, B values from the hex string\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n // Convert RGB to HSL using the rgbToHsl function\n // rgbToHsl already handles clamping, but parseInt should give valid numbers here\n return rgbToHsl(r, g, b);\n}\n\n/**\n * Converts a Color object to raw HSL values as a string.\n * @param color The Color object.\n * @returns A string in the format \"hue, saturation%, lightness%\".\n */\nexport function hslToRawString(color: Color): string {\n return `${color.hue}, ${color.saturation}%, ${color.lightness}%`;\n}\n\n/**\n * Converts an HSL Color object to RGB values (0-255).\n * Needed for calculating luminance for contrast ratio.\n * @param color The HSL Color object.\n * @returns An array [r, g, b] with values in the range [0, 255].\n */\nexport function hslToRgb(color: Color): [number, number, number] {\n const h = color.hue / 360;\n const s = color.saturation / 100;\n const l = color.lightness / 100;\n\n let b, g, r;\n\n if (s === 0) {\n r = g = b = l; // Achromatic (gray)\n } else {\n const hue2rgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\n/**\n * Converts a Color object to a CSS HSL string.\n * @param color The Color object.\n * @returns A string in the format \"hsl(hue, saturation%, lightness%)\".\n */\nexport function hslToString(color: Color): string {\n return `hsl(${hslToRawString(color)})`;\n}\n\n/**\n * Checks if an object conforms to the BackgroundImages interface structure.\n * @param data The object to validate.\n * @returns True if the object is valid BackgroundImages, false otherwise.\n */\nexport function isValidBackgroundImages(data: any): data is BackgroundImages {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n // Get expected keys from the BackgroundImages interface\n const expectedKeys: (keyof BackgroundImages)[] = [\n \"login\",\n \"register\",\n \"reset_password\",\n ];\n\n // Check if all expected keys are present and their values are strings\n for (const key of expectedKeys) {\n if (\n !Object.prototype.hasOwnProperty.call(data, key) ||\n typeof data[key] !== \"string\"\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks if an object conforms to the Color interface structure.\n * @param data The object to validate.\n * @returns True if the object is a valid Color, false otherwise.\n */\nexport function isValidColor(data: any): data is Color {\n return (\n typeof data === \"object\" &&\n data !== null &&\n typeof data.hue === \"number\" &&\n typeof data.saturation === \"number\" &&\n typeof data.lightness === \"number\"\n // Note: Range validation (0-360, 0-100) is typically done on the backend\n // or during configuration loading, not strictly required by the TS interface structure.\n );\n}\n\n/**\n * Checks if an object conforms to the SystemColors interface structure.\n * @param data The object to validate.\n * @returns True if the object is valid SystemColors, false otherwise.\n */\nexport function isValidSystemColors(data: any): data is SystemColors {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n // Get expected keys from the SystemColors interface\n const expectedKeys: (keyof SystemColors)[] = [\n \"active_ui_element\",\n \"background\",\n \"borders\",\n \"high_contrast_text\",\n \"hovered_element_border\",\n \"hovered_solid_bg\",\n \"hovered_ui_element\",\n \"low_contrast_text\",\n \"solid_background\",\n \"subtle_background\",\n \"ui_element_background\",\n \"ui_element_border\",\n ];\n\n // Check if all expected keys are present and their values are valid Colors\n for (const key of expectedKeys) {\n if (\n !Object.prototype.hasOwnProperty.call(data, key) ||\n !isValidColor(data[key])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Lightens a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to lighten by (0-100).\n * @returns A new Color object.\n */\nexport function lightenColor(color: Color, amount: number): Color {\n const newLightness = clamp(color.lightness + amount, 0, 100);\n return { ...color, lightness: newLightness };\n}\n\n/**\n * Checks if the contrast ratio between two colors meets a specified WCAG level.\n * Assumes normal text size (not large text).\n * WCAG AA requires 4.5:1. WCAG AAA requires 7:1.\n * @param color1 The first Color object.\n * @param color2 The second Color object.\n * @param level The WCAG level to check against ('AA' or 'AAA').\n * @returns True if the contrast ratio meets the level, false otherwise.\n */\nexport function meetsWcagContrast(\n color1: Color,\n color2: Color,\n level: \"AA\" | \"AAA\",\n): boolean {\n // This function is kept for backward compatibility but meetsWcagTextContrast is preferred\n // It assumes normal text size.\n return meetsWcagTextContrast(color1, color2, level, false);\n}\n\n/**\n * Checks if the contrast ratio between two colors meets the WCAG 2.1 SC 1.4.11 Non-text Contrast (AA) requirement.\n * This applies to graphical objects and user interface components.\n * @param color1 The first Color object (e.g., icon color, border color).\n * @param color2 The second Color object (e.g., adjacent background color).\n * @returns True if the contrast ratio is 3:1 or higher, false otherwise.\n */\nexport function meetsWcagNonTextContrast(\n color1: Color,\n color2: Color,\n): boolean {\n const ratio = getContrastRatio(color1, color2);\n const requiredRatio = 3.0; // WCAG 2.1 SC 1.4.11 requires 3:1\n\n return ratio >= requiredRatio;\n}\n\n/**\n * Checks if the contrast ratio between two colors meets a specified WCAG level for text.\n * WCAG 2.x/2.1 SC 1.4.3 (Minimum) and SC 1.4.6 (Enhanced).\n * @param color1 The first Color object (e.g., text color).\n * @param color2 The second Color object (e.g., background color).\n * @param level The WCAG level to check against ('AA' or 'AAA').\n * @param isLargeText True if the text is considered \"large text\" by WCAG definition.\n * @returns True if the contrast ratio meets the level for the given text size, false otherwise.\n */\nexport function meetsWcagTextContrast(\n color1: Color,\n color2: Color,\n level: \"AA\" | \"AAA\",\n isLargeText: boolean,\n): boolean {\n const ratio = getContrastRatio(color1, color2);\n\n let requiredRatio: number;\n if (isLargeText) {\n requiredRatio = level === \"AAA\" ? 4.5 : 3.0; // WCAG 2.x requirements for large text\n } else {\n requiredRatio = level === \"AAA\" ? 7.0 : 4.5; // WCAG 2.x requirements for normal text\n }\n\n return ratio >= requiredRatio;\n}\n\n/**\n * Merges properties from an overrides object into a base theme object.\n * Performs a deep merge for systemColors and backgroundImages.\n * @param base The base Theme object.\n * @param overrides The partial Theme object with overrides.\n * @returns A new Theme object with overrides applied.\n */\nexport function mergeThemes(\n base: Theme,\n overrides: Partial<Theme & { system_colors?: Partial<SystemColors> }>,\n): Theme {\n // Start with a shallow copy of the base theme\n const mergedTheme: Theme = { ...base };\n\n // Apply top-level overrides (like name, default). ID should probably not be overridden.\n if (overrides.name !== undefined) mergedTheme.name = overrides.name;\n if (overrides.default !== undefined) mergedTheme.default = overrides.default;\n // Add any other top-level properties from overrides if needed, excluding 'id'\n\n // Deep merge systemColors\n if (overrides.system_colors) {\n mergedTheme.system_colors = {\n ...base.system_colors, // Start with base colors\n ...overrides.system_colors, // Apply overrides, including new ones\n };\n }\n // If overrides.systemColors is undefined, keep base.systemColors\n\n // Deep merge backgroundImages\n if (overrides.background_images) {\n mergedTheme.background_images = {\n ...base.background_images, // Start with base images\n ...overrides.background_images, // Apply overrides, including new ones\n };\n }\n\n return mergedTheme;\n}\n\n/**\n * Converts RGB values (0-255) to an HSL Color object.\n * @param r Red value (0-255).\n * @param g Green value (0-255).\n * @param b Blue value (0-255).\n * @returns An HSL Color object.\n */\nexport function rgbToHsl(r: number, g: number, b: number): Color {\n // Clamp R, G, B values to the range [0, 255]\n r = clamp(r, 0, 255);\n g = clamp(g, 0, 255);\n b = clamp(b, 0, 255);\n\n // Normalize R, G, B values to the range [0, 1]\n const rNorm = r / 255;\n const gNorm = g / 255;\n const bNorm = b / 255;\n\n const max = Math.max(rNorm, gNorm, bNorm);\n const min = Math.min(rNorm, gNorm, bNorm);\n\n let h = 0; // Hue\n let s = 0; // Saturation\n const l = (max + min) / 2; // Lightness\n\n // If max == min, the color is a shade of gray (achromatic)\n if (max !== min) {\n const d = max - min;\n // Calculate saturation\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n // Calculate hue\n switch (max) {\n case bNorm:\n h = (rNorm - gNorm) / d + 4;\n break;\n case gNorm:\n h = (bNorm - rNorm) / d + 2;\n break;\n case rNorm:\n h = (gNorm - bNorm) / d + (gNorm < bNorm ? 6 : 0);\n break;\n }\n\n h /= 6; // Normalize hue to the range [0, 1]\n }\n\n // Convert H, S, L to the desired ranges (0-360 for H, 0-100 for S and L)\n const hue = Math.round(h * 360);\n const saturation = Math.round(s * 100);\n const lightness = Math.round(l * 100);\n\n return { hue, lightness, saturation };\n}\n\n/**\n * Calculates the relative luminance of an RGB color.\n * Based on WCAG 2.x guidelines.\n * @param r Red value (0-255).\n * @param g Green value (0-255).\n * @param b Blue value (0-255).\n * @returns The relative luminance (0-1).\n */\nexport function rgbToLuminance(r: number, g: number, b: number): number {\n const channelLuminance = (channel: number) => {\n const srgb = channel / 255;\n return srgb <= 0.03928\n ? srgb / 12.92\n : Math.pow((srgb + 0.055) / 1.055, 2.4);\n };\n\n const lumR = channelLuminance(r);\n const lumG = channelLuminance(g);\n const lumB = channelLuminance(b);\n\n return 0.2126 * lumR + 0.7152 * lumG + 0.0722 * lumB;\n}\n\n/**\n * Saturates a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to saturate by (0-100).\n * @returns A new Color object.\n */\nexport function saturateColor(color: Color, amount: number): Color {\n const newSaturation = clamp(color.saturation + amount, 0, 100);\n return { ...color, saturation: newSaturation };\n}\n\n/**\n * Validates if an object conforms to the Theme interface structure.\n * @param data The object to validate.\n * @returns True if the object is a valid Theme, false otherwise.\n */\nexport function validateTheme(data: any): data is Theme {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n\n // Check required top-level properties\n if (typeof data.id !== \"string\" || typeof data.name !== \"string\") {\n return false;\n }\n\n // Check nested structures\n if (!isValidSystemColors(data.systemColors)) {\n return false;\n }\n\n if (!isValidBackgroundImages(data.backgroundImages)) {\n return false;\n }\n\n // Optional properties like 'default' can be checked here if needed,\n // but the interface allows them to be missing or undefined.\n if (data.default !== undefined && typeof data.default !== \"boolean\") {\n return false;\n }\n\n return true;\n}\n\n/**\n * Clamps a value between a minimum and maximum.\n * @param value The value to clamp.\n * @param min The minimum allowed value.\n * @param max The maximum allowed value.\n * @returns The clamped value.\n */\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\n// Add other theme utility functions here as needed\n\n/**\n * Merges properties from an overrides object into a base theme object.\n * Useful for applying partial theme customizations.\n * export function mergeThemes(base: Theme, overrides: Partial<Theme>): Theme { ... }\n */\n\n/**\n * Validates if an object conforms to the Theme interface structure.\n * export function function validateTheme(theme: any): theme is Theme { ... }\n */\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.js","names":[],"sources":["../../../src/utils/theme.ts"],"sourcesContent":["// Import the theme types from the new types file\nimport { BackgroundImages, Color, SystemColors, Theme } from \"../types/theme\";\n\n/**\n * Adjusts the hue of a color by a given number of degrees.\n * Hue wraps around at 360.\n * @param color The Color object.\n * @param degrees The number of degrees to adjust the hue by.\n * @returns A new Color object.\n */\nexport function adjustHue(color: Color, degrees: number): Color {\n let newHue = color.hue + degrees;\n // Ensure hue wraps around 0-360\n newHue = newHue % 360;\n if (newHue < 0) {\n newHue += 360;\n }\n return { ...color, hue: newHue };\n}\n\n/**\n * Applies the styles from a Theme object to the DOM.\n * This function manipulates the document head and root element class.\n * @param theme The Theme object to apply.\n */\nexport function applyThemeStyles(theme: Theme): void {\n const css = generateThemeCSS(theme);\n const style = document.createElement(\"style\");\n style.textContent = css;\n const existingStyle = document.head.querySelector(\"style[data-theme]\");\n\n if (existingStyle) {\n document.head.removeChild(existingStyle);\n }\n style.setAttribute(\"data-theme\", theme.id);\n document.head.appendChild(style);\n\n document.documentElement.className = `theme-${theme.id}`;\n}\n\n/**\n * Creates default system colors for a light theme.\n */\nexport function createDefaultSystemColors(): SystemColors {\n return {\n active_ui_element: { hue: 0, lightness: 80, saturation: 0 },\n background: { hue: 0, lightness: 100, saturation: 0 },\n borders: { hue: 0, lightness: 70, saturation: 0 },\n high_contrast_text: { hue: 0, lightness: 10, saturation: 0 },\n hovered_element_border: { hue: 0, lightness: 50, saturation: 0 },\n hovered_solid_bg: { hue: 0, lightness: 35, saturation: 0 },\n hovered_ui_element: { hue: 0, lightness: 85, saturation: 0 },\n low_contrast_text: { hue: 0, lightness: 30, saturation: 0 },\n solid_background: { hue: 0, lightness: 40, saturation: 0 },\n subtle_background: { hue: 0, lightness: 95, saturation: 0 },\n ui_element_background: { hue: 0, lightness: 90, saturation: 0 },\n ui_element_border: { hue: 0, lightness: 60, saturation: 0 },\n };\n}\n\n/**\n * Creates a default theme object.\n * This can be used as a fallback or starting point.\n */\nexport function createDefaultTheme(): Theme {\n return {\n background_images: {\n login: \"\",\n register: \"\",\n reset_password: \"\",\n },\n id: \"default\",\n name: \"Default Theme\",\n system_colors: createDefaultSystemColors(),\n };\n}\n\n/**\n * Creates a system colors object with all values at zero.\n * Useful for testing and reset operations.\n */\nexport function createZeroSystemColors(): SystemColors {\n return {\n active_ui_element: { hue: 0, lightness: 0, saturation: 0 },\n background: { hue: 0, lightness: 0, saturation: 0 },\n borders: { hue: 0, lightness: 0, saturation: 0 },\n high_contrast_text: { hue: 0, lightness: 0, saturation: 0 },\n hovered_element_border: { hue: 0, lightness: 0, saturation: 0 },\n hovered_solid_bg: { hue: 0, lightness: 0, saturation: 0 },\n hovered_ui_element: { hue: 0, lightness: 0, saturation: 0 },\n low_contrast_text: { hue: 0, lightness: 0, saturation: 0 },\n solid_background: { hue: 0, lightness: 0, saturation: 0 },\n subtle_background: { hue: 0, lightness: 0, saturation: 0 },\n ui_element_background: { hue: 0, lightness: 0, saturation: 0 },\n ui_element_border: { hue: 0, lightness: 0, saturation: 0 },\n };\n}\n\n/**\n * Darkens a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to darken by (0-100).\n * @returns A new Color object.\n */\nexport function darkenColor(color: Color, amount: number): Color {\n const newLightness = clamp(color.lightness - amount, 0, 100);\n return { ...color, lightness: newLightness };\n}\n\n/**\n * Desaturates a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to desaturate by (0-100).\n * @returns A new Color object.\n */\nexport function desaturateColor(color: Color, amount: number): Color {\n const newSaturation = clamp(color.saturation - amount, 0, 100);\n return { ...color, saturation: newSaturation };\n}\n\n/**\n * Attempts to adjust theme colors to meet WCAG contrast requirements.\n * It iterates through common color pairs and adjusts lightness if contrast is insufficient.\n * Returns a new Theme object if changes were made, otherwise returns the original theme.\n * @param theme The Theme object to check and potentially adjust.\n * @param textLevel The desired WCAG level for text contrast ('AA' or 'AAA'). Defaults to 'AA'.\n * @param nonTextLevel The desired WCAG level for non-text contrast ('AA'). Defaults to 'AA'.\n * @returns A new Theme object with adjusted colors if needed, or the original theme.\n */\nexport function ensureWcagContrast(\n theme: Theme,\n textLevel: \"AA\" | \"AAA\" = \"AA\",\n nonTextLevel: \"AA\" = \"AA\", // Non-text only has AA (3:1) requirement\n): Theme {\n const modifiedTheme = { ...theme, systemColors: { ...theme.system_colors } };\n let changesMade = false;\n\n const colors = modifiedTheme.systemColors;\n\n // Define color pairs and their check type (text/non-text) and text size (normal/large)\n // For simplicity, assume all text is 'normal' for now. Large text check can be added later if needed.\n const colorPairs: {\n bgKey: keyof SystemColors;\n fgKey: keyof SystemColors;\n type: \"non-text\" | \"text\";\n }[] = [\n { bgKey: \"background\", fgKey: \"high_contrast_text\", type: \"text\" },\n { bgKey: \"background\", fgKey: \"low_contrast_text\", type: \"text\" },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"high_contrast_text\",\n type: \"text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"low_contrast_text\",\n type: \"text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"ui_element_border\",\n type: \"non-text\",\n },\n {\n bgKey: \"hovered_ui_element\",\n fgKey: \"hovered_element_border\",\n type: \"non-text\",\n },\n {\n bgKey: \"ui_element_background\",\n fgKey: \"active_ui_element\",\n type: \"non-text\",\n },\n { bgKey: \"background\", fgKey: \"hovered_ui_element\", type: \"non-text\" },\n { bgKey: \"background\", fgKey: \"solid_background\", type: \"non-text\" },\n { bgKey: \"solid_background\", fgKey: \"hovered_solid_bg\", type: \"non-text\" },\n ];\n\n for (const { bgKey, fgKey, type } of colorPairs) {\n const fgColor = colors[fgKey];\n const bgColor = colors[bgKey];\n\n let needsAdjustment = false;\n let requiredRatio: number;\n\n if (type === \"text\") {\n requiredRatio = textLevel === \"AAA\" ? 7.0 : 4.5;\n if (!meetsWcagTextContrast(fgColor, bgColor, textLevel, false)) {\n // Assume normal text for now\n needsAdjustment = true;\n }\n } else {\n // non-text\n requiredRatio = 3.0; // WCAG 2.1 SC 1.4.11 AA\n if (!meetsWcagNonTextContrast(fgColor, bgColor)) {\n needsAdjustment = true;\n }\n }\n\n if (needsAdjustment) {\n changesMade = true;\n console.warn(\n `WCAG Contrast Warning: Pair ${fgKey} vs ${bgKey} (Current Ratio: ${getContrastRatio(fgColor, bgColor)}) does not meet required ratio ${requiredRatio} for ${type === \"text\" ? textLevel + \" Text\" : \"Non-text\"}. Attempting to adjust.`,\n );\n\n // Simple adjustment strategy: Adjust foreground lightness first, then background lightness.\n // Determine direction of adjustment for foreground\n const fgLuminance = rgbToLuminance(...hslToRgb(fgColor));\n const bgLuminance = rgbToLuminance(...hslToRgb(bgColor));\n\n let adjustedFg = { ...fgColor };\n let adjustedBg = { ...bgColor };\n let currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n const step = 1; // Adjust lightness by 1% at a time\n const maxAttempts = 200; // Total attempts limit\n\n let attempts = 0;\n let adjustingFg = true; // Start by adjusting foreground\n\n while (currentRatio < requiredRatio && attempts < maxAttempts) {\n attempts++;\n const currentFgLuminance = rgbToLuminance(...hslToRgb(adjustedFg));\n const currentBgLuminance = rgbToLuminance(...hslToRgb(adjustedBg));\n\n let adjustedThisIteration = false;\n\n if (adjustingFg) {\n // Determine ideal direction for FG adjustment\n // Determine ideal direction for FG adjustment to increase contrast:\n // If FG is darker than BG, darkening FG increases contrast (direction -1)\n // If FG is lighter than BG, lightening FG increases contrast (direction +1)\n const fgAdjustmentDirection =\n currentFgLuminance < currentBgLuminance ? -1 : 1;\n const nextFgLightness = clamp(\n adjustedFg.lightness + fgAdjustmentDirection * step,\n 0,\n 100,\n );\n\n if (adjustedFg.lightness === nextFgLightness) {\n adjustingFg = false; // Switch to adjusting background\n // Fall through to BG adjustment logic in the same iteration\n } else {\n // Adjust FG lightness\n adjustedFg = { ...adjustedFg, lightness: nextFgLightness };\n currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n adjustedThisIteration = true;\n }\n }\n\n // If we are here and haven't adjusted FG, try adjusting BG\n if (!adjustedThisIteration && !adjustingFg) {\n // Determine ideal direction for BG adjustment relative to the *current* FG\n // If BG is darker than FG, lightening BG increases contrast (direction +1)\n // If BG is lighter than FG, darkening BG increases contrast (direction -1)\n const bgAdjustmentDirection =\n currentBgLuminance < currentFgLuminance ? 1 : -1;\n const nextBgLightness = clamp(\n adjustedBg.lightness + bgAdjustmentDirection * step,\n 0,\n 100,\n );\n\n if (adjustedBg.lightness === nextBgLightness) {\n // BG hit a boundary and couldn't move further, stop\n break; // Cannot adjust further\n } else {\n // Adjust BG lightness\n adjustedBg = { ...adjustedBg, lightness: nextBgLightness };\n currentRatio = getContrastRatio(adjustedFg, adjustedBg);\n adjustedThisIteration = true;\n }\n }\n\n // If neither color could be adjusted in this iteration, break to prevent infinite loops\n if (!adjustedThisIteration) {\n console.warn(\n ` WCAG Contrast Warning: Neither FG nor BG could be adjusted further for ${fgKey} vs ${bgKey}. Current Ratio: ${currentRatio}. Required: ${requiredRatio}. Stopping.`,\n );\n break;\n }\n }\n\n // Update the colors in the modified theme\n modifiedTheme.systemColors[fgKey] = adjustedFg;\n modifiedTheme.systemColors[bgKey] = adjustedBg;\n\n if (getContrastRatio(adjustedFg, adjustedBg) < requiredRatio) {\n console.warn(\n `WCAG Contrast Warning: Pair ${fgKey} vs ${bgKey} could not meet required ratio ${requiredRatio} after ${attempts} attempts. Final Ratio: ${getContrastRatio(adjustedFg, adjustedBg)}.`,\n );\n }\n }\n }\n\n // Return the modified theme if changes were made, otherwise return the original\n return changesMade ? modifiedTheme : theme;\n}\n\n/**\n * Generates CSS variable declarations for a given theme.\n * @param theme The Theme object.\n * @returns A CSS string with variable declarations.\n */\nexport function generateThemeCSS(theme: Theme): string {\n // Ensure systemColors and backgroundImages are objects before accessing entries.\n // This handles cases where they might be null, undefined, or other non-object types.\n const systemColors =\n theme?.system_colors &&\n typeof theme.system_colors === \"object\" &&\n !Array.isArray(theme.system_colors)\n ? theme.system_colors\n : {};\n const backgroundImages =\n theme?.background_images &&\n typeof theme.background_images === \"object\" &&\n !Array.isArray(theme.background_images)\n ? theme.background_images\n : {};\n\n const colorVariables = Object.entries(systemColors)\n .map(([key, value]) => {\n // Ensure value is a valid Color before converting\n if (!isValidColor(value)) {\n console.warn(\n `Skipping invalid color for key \"${key}\" in theme \"${theme?.id}\"`,\n );\n return \"\"; // Skip invalid color entries\n }\n // Convert snake_case keys to kebab-case for CSS variables\n return `--theme-${key.replace(/_/g, \"-\")}: ${hslToRawString(value)};`;\n })\n .filter((line) => line !== \"\") // Remove empty lines from skipped colors\n .join(\"\\n \");\n\n const backgroundImageVariables = Object.entries(backgroundImages)\n .map(([key, value]) => {\n // Ensure value is a string before using\n if (typeof value !== \"string\") {\n console.warn(\n `Skipping invalid background image URL for key \"${key}\" in theme \"${theme?.id}\"`,\n );\n return \"\"; // Skip invalid image entries\n }\n // Convert snake_case keys to kebab-case for CSS variables\n return `--lume-bg-${key.replace(/_/g, \"-\")}: url(\"${value}\");`;\n })\n .filter((line) => line !== \"\") // Remove empty lines from skipped images\n .join(\"\\n \");\n\n // Add a check for theme.id in case theme itself is null/undefined, although the initial checks handle this.\n const themeId = theme?.id || \"unknown\";\n\n return `\n:root.theme-${themeId} {\n ${colorVariables}\n ${backgroundImageVariables}\n}\n`;\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n * Based on WCAG 2.x guidelines.\n * @param color1 The first Color object.\n * @param color2 The second Color object.\n * @returns The contrast ratio (1 to 21).\n */\nexport function getContrastRatio(color1: Color, color2: Color): number {\n const [r1, g1, b1] = hslToRgb(color1);\n const [r2, g2, b2] = hslToRgb(color2);\n\n const luminance1 = rgbToLuminance(r1, g1, b1);\n const luminance2 = rgbToLuminance(r2, g2, b2);\n\n // Add 0.05 to the luminance values to account for ambient light\n const lighter = Math.max(luminance1, luminance2);\n const darker = Math.min(luminance1, luminance2);\n\n // Calculate the contrast ratio\n const ratio = (lighter + 0.05) / (darker + 0.05);\n\n // Return ratio rounded to 2 decimal places\n return Math.round(ratio * 100) / 100;\n}\n\n/**\n * Finds a specific theme by its ID from a list of themes.\n * @param themes The array of available themes.\n * @param themeId The ID of the theme to find.\n * @returns The found Theme object or undefined if not found.\n */\nexport function getThemeById(\n themes: Theme[],\n themeId: string,\n): Theme | undefined {\n return themes.find((t) => t.id === themeId);\n}\n\n/**\n * Converts a Hex color string (#RRGGBB or #RGB) to an HSL Color object.\n * @param hex The hex color string.\n * @returns An HSL Color object or undefined if the hex string is invalid.\n */\nexport function hexToHsl(hex: string): Color | undefined {\n // Validate hex string format (must start with # and be 3 or 6 hex characters)\n const hexMatch = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(hex);\n\n if (!hexMatch) {\n console.error(`Invalid hex color format: ${hex}`);\n return undefined;\n }\n\n let cleanHex = hexMatch[1]; // Get the hex part without '#'\n\n // Expand 3-digit hex to 6-digit hex\n if (cleanHex.length === 3) {\n cleanHex =\n cleanHex[0] +\n cleanHex[0] +\n cleanHex[1] +\n cleanHex[1] +\n cleanHex[2] +\n cleanHex[2];\n }\n\n // Parse R, G, B values from the hex string\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n // Convert RGB to HSL using the rgbToHsl function\n // rgbToHsl already handles clamping, but parseInt should give valid numbers here\n return rgbToHsl(r, g, b);\n}\n\n/**\n * Converts a Color object to raw HSL values as a string.\n * @param color The Color object.\n * @returns A string in the format \"hue, saturation%, lightness%\".\n */\nexport function hslToRawString(color: Color): string {\n return `${color.hue}, ${color.saturation}%, ${color.lightness}%`;\n}\n\n/**\n * Converts an HSL Color object to RGB values (0-255).\n * Needed for calculating luminance for contrast ratio.\n * @param color The HSL Color object.\n * @returns An array [r, g, b] with values in the range [0, 255].\n */\nexport function hslToRgb(color: Color): [number, number, number] {\n const h = color.hue / 360;\n const s = color.saturation / 100;\n const l = color.lightness / 100;\n\n let b, g, r;\n\n if (s === 0) {\n r = g = b = l; // Achromatic (gray)\n } else {\n const hue2rgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\n/**\n * Converts a Color object to a CSS HSL string.\n * @param color The Color object.\n * @returns A string in the format \"hsl(hue, saturation%, lightness%)\".\n */\nexport function hslToString(color: Color): string {\n return `hsl(${hslToRawString(color)})`;\n}\n\n/**\n * Checks if an object conforms to the BackgroundImages interface structure.\n * @param data The object to validate.\n * @returns True if the object is valid BackgroundImages, false otherwise.\n */\nexport function isValidBackgroundImages(data: any): data is BackgroundImages {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n // Get expected keys from the BackgroundImages interface\n const expectedKeys: (keyof BackgroundImages)[] = [\n \"login\",\n \"register\",\n \"reset_password\",\n ];\n\n // Check if all expected keys are present and their values are strings\n for (const key of expectedKeys) {\n if (\n !Object.prototype.hasOwnProperty.call(data, key) ||\n typeof data[key] !== \"string\"\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks if an object conforms to the Color interface structure.\n * @param data The object to validate.\n * @returns True if the object is a valid Color, false otherwise.\n */\nexport function isValidColor(data: any): data is Color {\n return (\n typeof data === \"object\" &&\n data !== null &&\n typeof data.hue === \"number\" &&\n typeof data.saturation === \"number\" &&\n typeof data.lightness === \"number\"\n // Note: Range validation (0-360, 0-100) is typically done on the backend\n // or during configuration loading, not strictly required by the TS interface structure.\n );\n}\n\n/**\n * Checks if an object conforms to the SystemColors interface structure.\n * @param data The object to validate.\n * @returns True if the object is valid SystemColors, false otherwise.\n */\nexport function isValidSystemColors(data: any): data is SystemColors {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n // Get expected keys from the SystemColors interface\n const expectedKeys: (keyof SystemColors)[] = [\n \"active_ui_element\",\n \"background\",\n \"borders\",\n \"high_contrast_text\",\n \"hovered_element_border\",\n \"hovered_solid_bg\",\n \"hovered_ui_element\",\n \"low_contrast_text\",\n \"solid_background\",\n \"subtle_background\",\n \"ui_element_background\",\n \"ui_element_border\",\n ];\n\n // Check if all expected keys are present and their values are valid Colors\n for (const key of expectedKeys) {\n if (\n !Object.prototype.hasOwnProperty.call(data, key) ||\n !isValidColor(data[key])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Lightens a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to lighten by (0-100).\n * @returns A new Color object.\n */\nexport function lightenColor(color: Color, amount: number): Color {\n const newLightness = clamp(color.lightness + amount, 0, 100);\n return { ...color, lightness: newLightness };\n}\n\n/**\n * Checks if the contrast ratio between two colors meets a specified WCAG level.\n * Assumes normal text size (not large text).\n * WCAG AA requires 4.5:1. WCAG AAA requires 7:1.\n * @param color1 The first Color object.\n * @param color2 The second Color object.\n * @param level The WCAG level to check against ('AA' or 'AAA').\n * @returns True if the contrast ratio meets the level, false otherwise.\n */\nexport function meetsWcagContrast(\n color1: Color,\n color2: Color,\n level: \"AA\" | \"AAA\",\n): boolean {\n // This function is kept for backward compatibility but meetsWcagTextContrast is preferred\n // It assumes normal text size.\n return meetsWcagTextContrast(color1, color2, level, false);\n}\n\n/**\n * Checks if the contrast ratio between two colors meets the WCAG 2.1 SC 1.4.11 Non-text Contrast (AA) requirement.\n * This applies to graphical objects and user interface components.\n * @param color1 The first Color object (e.g., icon color, border color).\n * @param color2 The second Color object (e.g., adjacent background color).\n * @returns True if the contrast ratio is 3:1 or higher, false otherwise.\n */\nexport function meetsWcagNonTextContrast(\n color1: Color,\n color2: Color,\n): boolean {\n const ratio = getContrastRatio(color1, color2);\n const requiredRatio = 3.0; // WCAG 2.1 SC 1.4.11 requires 3:1\n\n return ratio >= requiredRatio;\n}\n\n/**\n * Checks if the contrast ratio between two colors meets a specified WCAG level for text.\n * WCAG 2.x/2.1 SC 1.4.3 (Minimum) and SC 1.4.6 (Enhanced).\n * @param color1 The first Color object (e.g., text color).\n * @param color2 The second Color object (e.g., background color).\n * @param level The WCAG level to check against ('AA' or 'AAA').\n * @param isLargeText True if the text is considered \"large text\" by WCAG definition.\n * @returns True if the contrast ratio meets the level for the given text size, false otherwise.\n */\nexport function meetsWcagTextContrast(\n color1: Color,\n color2: Color,\n level: \"AA\" | \"AAA\",\n isLargeText: boolean,\n): boolean {\n const ratio = getContrastRatio(color1, color2);\n\n let requiredRatio: number;\n if (isLargeText) {\n requiredRatio = level === \"AAA\" ? 4.5 : 3.0; // WCAG 2.x requirements for large text\n } else {\n requiredRatio = level === \"AAA\" ? 7.0 : 4.5; // WCAG 2.x requirements for normal text\n }\n\n return ratio >= requiredRatio;\n}\n\n/**\n * Merges properties from an overrides object into a base theme object.\n * Performs a deep merge for systemColors and backgroundImages.\n * @param base The base Theme object.\n * @param overrides The partial Theme object with overrides.\n * @returns A new Theme object with overrides applied.\n */\nexport function mergeThemes(\n base: Theme,\n overrides: Partial<Theme & { system_colors?: Partial<SystemColors> }>,\n): Theme {\n // Start with a shallow copy of the base theme\n const mergedTheme: Theme = { ...base };\n\n // Apply top-level overrides (like name, default). ID should probably not be overridden.\n if (overrides.name !== undefined) mergedTheme.name = overrides.name;\n if (overrides.default !== undefined) mergedTheme.default = overrides.default;\n // Add any other top-level properties from overrides if needed, excluding 'id'\n\n // Deep merge systemColors\n if (overrides.system_colors) {\n mergedTheme.system_colors = {\n ...base.system_colors, // Start with base colors\n ...overrides.system_colors, // Apply overrides, including new ones\n };\n }\n // If overrides.systemColors is undefined, keep base.systemColors\n\n // Deep merge backgroundImages\n if (overrides.background_images) {\n mergedTheme.background_images = {\n ...base.background_images, // Start with base images\n ...overrides.background_images, // Apply overrides, including new ones\n };\n }\n\n return mergedTheme;\n}\n\n/**\n * Converts RGB values (0-255) to an HSL Color object.\n * @param r Red value (0-255).\n * @param g Green value (0-255).\n * @param b Blue value (0-255).\n * @returns An HSL Color object.\n */\nexport function rgbToHsl(r: number, g: number, b: number): Color {\n // Clamp R, G, B values to the range [0, 255]\n r = clamp(r, 0, 255);\n g = clamp(g, 0, 255);\n b = clamp(b, 0, 255);\n\n // Normalize R, G, B values to the range [0, 1]\n const rNorm = r / 255;\n const gNorm = g / 255;\n const bNorm = b / 255;\n\n const max = Math.max(rNorm, gNorm, bNorm);\n const min = Math.min(rNorm, gNorm, bNorm);\n\n let h = 0; // Hue\n let s = 0; // Saturation\n const l = (max + min) / 2; // Lightness\n\n // If max == min, the color is a shade of gray (achromatic)\n if (max !== min) {\n const d = max - min;\n // Calculate saturation\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n // Calculate hue\n switch (max) {\n case bNorm:\n h = (rNorm - gNorm) / d + 4;\n break;\n case gNorm:\n h = (bNorm - rNorm) / d + 2;\n break;\n case rNorm:\n h = (gNorm - bNorm) / d + (gNorm < bNorm ? 6 : 0);\n break;\n }\n\n h /= 6; // Normalize hue to the range [0, 1]\n }\n\n // Convert H, S, L to the desired ranges (0-360 for H, 0-100 for S and L)\n const hue = Math.round(h * 360);\n const saturation = Math.round(s * 100);\n const lightness = Math.round(l * 100);\n\n return { hue, lightness, saturation };\n}\n\n/**\n * Calculates the relative luminance of an RGB color.\n * Based on WCAG 2.x guidelines.\n * @param r Red value (0-255).\n * @param g Green value (0-255).\n * @param b Blue value (0-255).\n * @returns The relative luminance (0-1).\n */\nexport function rgbToLuminance(r: number, g: number, b: number): number {\n const channelLuminance = (channel: number) => {\n const srgb = channel / 255;\n return srgb <= 0.03928\n ? srgb / 12.92\n : Math.pow((srgb + 0.055) / 1.055, 2.4);\n };\n\n const lumR = channelLuminance(r);\n const lumG = channelLuminance(g);\n const lumB = channelLuminance(b);\n\n return 0.2126 * lumR + 0.7152 * lumG + 0.0722 * lumB;\n}\n\n/**\n * Saturates a color by a given percentage.\n * @param color The Color object.\n * @param amount The percentage amount to saturate by (0-100).\n * @returns A new Color object.\n */\nexport function saturateColor(color: Color, amount: number): Color {\n const newSaturation = clamp(color.saturation + amount, 0, 100);\n return { ...color, saturation: newSaturation };\n}\n\n/**\n * Validates if an object conforms to the Theme interface structure.\n * @param data The object to validate.\n * @returns True if the object is a valid Theme, false otherwise.\n */\nexport function validateTheme(data: any): data is Theme {\n if (typeof data !== \"object\" || data === null) {\n return false;\n }\n\n // Check required top-level properties\n if (typeof data.id !== \"string\" || typeof data.name !== \"string\") {\n return false;\n }\n\n // Check nested structures\n if (!isValidSystemColors(data.systemColors)) {\n return false;\n }\n\n if (!isValidBackgroundImages(data.backgroundImages)) {\n return false;\n }\n\n // Optional properties like 'default' can be checked here if needed,\n // but the interface allows them to be missing or undefined.\n if (data.default !== undefined && typeof data.default !== \"boolean\") {\n return false;\n }\n\n return true;\n}\n\n/**\n * Clamps a value between a minimum and maximum.\n * @param value The value to clamp.\n * @param min The minimum allowed value.\n * @param max The maximum allowed value.\n * @returns The clamped value.\n */\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\n// Add other theme utility functions here as needed\n\n/**\n * Merges properties from an overrides object into a base theme object.\n * Useful for applying partial theme customizations.\n * export function mergeThemes(base: Theme, overrides: Partial<Theme>): Theme { ... }\n */\n\n/**\n * Validates if an object conforms to the Theme interface structure.\n * export function function validateTheme(theme: any): theme is Theme { ... }\n */\n"],"mappings":"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"}
|