@lumeweb/portal-framework-ui 0.0.1 → 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/LICENSE +9 -0
- package/README.md +1 -45
- package/dist/esm/components/Copyable.d.ts +43 -0
- package/dist/esm/components/Copyable.js +50 -0
- package/dist/esm/components/Copyable.js.map +1 -0
- package/dist/esm/components/FilterChip.d.ts +16 -0
- package/dist/esm/components/FilterChip.js +47 -0
- package/dist/esm/components/FilterChip.js.map +1 -0
- package/dist/esm/components/Forms.d.ts +55 -0
- package/dist/esm/components/Forms.js +123 -0
- package/dist/esm/components/Forms.js.map +1 -0
- package/dist/esm/components/InlineAuthLinkBanner.d.ts +18 -0
- package/dist/esm/components/InlineAuthLinkBanner.js +23 -0
- package/dist/esm/components/InlineAuthLinkBanner.js.map +1 -0
- package/dist/esm/components/KeyboardShortcutDialog.d.ts +12 -0
- package/dist/esm/components/KeyboardShortcutDialog.js +48 -0
- package/dist/esm/components/KeyboardShortcutDialog.js.map +1 -0
- package/dist/esm/components/Loading.d.ts +13 -0
- package/dist/esm/components/Loading.js +38 -0
- package/dist/esm/components/Loading.js.map +1 -0
- package/dist/esm/components/LumeLogo.d.ts +12 -0
- package/dist/esm/components/LumeLogo.js +22 -0
- package/dist/esm/components/LumeLogo.js.map +1 -0
- package/dist/esm/components/MainNavigation.d.ts +11 -0
- package/dist/esm/components/MainNavigation.js +227 -0
- package/dist/esm/components/MainNavigation.js.map +1 -0
- package/dist/esm/components/SkeletonLoader.d.ts +25 -0
- package/dist/esm/components/SkeletonLoader.js +78 -0
- package/dist/esm/components/SkeletonLoader.js.map +1 -0
- package/dist/esm/components/TableActionsDropdown.d.ts +18 -0
- package/dist/esm/components/TableActionsDropdown.js +34 -0
- package/dist/esm/components/TableActionsDropdown.js.map +1 -0
- package/dist/esm/components/TableContainer.d.ts +13 -0
- package/dist/esm/components/TableContainer.js +15 -0
- package/dist/esm/components/TableContainer.js.map +1 -0
- package/dist/esm/components/ThemeSwitcher.d.ts +7 -0
- package/dist/esm/components/ThemeSwitcher.js +38 -0
- package/dist/esm/components/ThemeSwitcher.js.map +1 -0
- package/dist/esm/components/ThemedBadge.d.ts +23 -0
- package/dist/esm/components/ThemedBadge.js +20 -0
- package/dist/esm/components/ThemedBadge.js.map +1 -0
- package/dist/esm/components/actions/ActionListRenderer.d.ts +15 -0
- package/dist/esm/components/actions/ActionListRenderer.js +38 -0
- package/dist/esm/components/actions/ActionListRenderer.js.map +1 -0
- package/dist/esm/components/actions/actionHelpers.d.ts +127 -0
- package/dist/esm/components/actions/actionHelpers.js +205 -0
- package/dist/esm/components/actions/actionHelpers.js.map +1 -0
- package/dist/esm/components/actions/index.d.ts +6 -0
- package/dist/esm/components/actions/index.js +7 -0
- package/dist/esm/components/actions/items/ButtonActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/ButtonActionItem.js +23 -0
- package/dist/esm/components/actions/items/ButtonActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/CancelActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/CancelActionItem.js +28 -0
- package/dist/esm/components/actions/items/CancelActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/CustomActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/CustomActionItem.js +27 -0
- package/dist/esm/components/actions/items/CustomActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/LinkActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/LinkActionItem.js +33 -0
- package/dist/esm/components/actions/items/LinkActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/RetryActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/RetryActionItem.js +23 -0
- package/dist/esm/components/actions/items/RetryActionItem.js.map +1 -0
- package/dist/esm/components/actions/items/SubmitActionItem.d.ts +9 -0
- package/dist/esm/components/actions/items/SubmitActionItem.js +26 -0
- package/dist/esm/components/actions/items/SubmitActionItem.js.map +1 -0
- package/dist/esm/components/actions/register.d.ts +5 -0
- package/dist/esm/components/actions/register.js +20 -0
- package/dist/esm/components/actions/register.js.map +1 -0
- package/dist/esm/components/actions/registry.d.ts +14 -0
- package/dist/esm/components/actions/registry.js +20 -0
- package/dist/esm/components/actions/registry.js.map +1 -0
- package/dist/esm/components/actions/types.d.ts +132 -0
- package/dist/esm/components/actions/types.js +29 -0
- package/dist/esm/components/actions/types.js.map +1 -0
- package/dist/esm/components/app/AppComponent.d.ts +17 -0
- package/dist/esm/components/app/AppComponent.js +179 -0
- package/dist/esm/components/app/AppComponent.js.map +1 -0
- package/dist/esm/components/data-table/BaseTable.d.ts +86 -0
- package/dist/esm/components/data-table/BaseTable.js +123 -0
- package/dist/esm/components/data-table/BaseTable.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableContent.d.ts +48 -0
- package/dist/esm/components/data-table/BaseTableContent.js +38 -0
- package/dist/esm/components/data-table/BaseTableContent.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableInner.d.ts +11 -0
- package/dist/esm/components/data-table/BaseTableInner.js +35 -0
- package/dist/esm/components/data-table/BaseTableInner.js.map +1 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.d.ts +31 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.js +137 -0
- package/dist/esm/components/data-table/BaseTableStackedLayout.js.map +1 -0
- package/dist/esm/components/data-table/DataTable.d.ts +18 -0
- package/dist/esm/components/data-table/DataTable.js +97 -0
- package/dist/esm/components/data-table/DataTable.js.map +1 -0
- package/dist/esm/components/data-table/DataTable.types.d.ts +203 -0
- package/dist/esm/components/data-table/DataTable.types.js +25 -0
- package/dist/esm/components/data-table/DataTable.types.js.map +1 -0
- package/dist/esm/components/data-table/DataTableController.d.ts +19 -0
- package/dist/esm/components/data-table/DataTableController.js +31 -0
- package/dist/esm/components/data-table/DataTableController.js.map +1 -0
- package/dist/esm/components/data-table/DefaultPagination.d.ts +7 -0
- package/dist/esm/components/data-table/DefaultPagination.js +62 -0
- package/dist/esm/components/data-table/DefaultPagination.js.map +1 -0
- package/dist/esm/components/data-table/DefaultTableLayout.d.ts +28 -0
- package/dist/esm/components/data-table/DefaultTableLayout.js +70 -0
- package/dist/esm/components/data-table/DefaultTableLayout.js.map +1 -0
- package/dist/esm/components/data-table/EmptyState.d.ts +19 -0
- package/dist/esm/components/data-table/EmptyState.js +16 -0
- package/dist/esm/components/data-table/EmptyState.js.map +1 -0
- package/dist/esm/components/data-table/LoadingState.d.ts +19 -0
- package/dist/esm/components/data-table/LoadingState.js +34 -0
- package/dist/esm/components/data-table/LoadingState.js.map +1 -0
- package/dist/esm/components/data-table/TableAction.d.ts +21 -0
- package/dist/esm/components/data-table/TableAction.js +26 -0
- package/dist/esm/components/data-table/TableAction.js.map +1 -0
- package/dist/esm/components/data-table/TableActionMenu.d.ts +20 -0
- package/dist/esm/components/data-table/TableActionMenu.js +31 -0
- package/dist/esm/components/data-table/TableActionMenu.js.map +1 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.d.ts +48 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.js +45 -0
- package/dist/esm/components/data-table/TableLayoutRenderer.js.map +1 -0
- package/dist/esm/components/data-table/Toolbar.d.ts +17 -0
- package/dist/esm/components/data-table/Toolbar.js +176 -0
- package/dist/esm/components/data-table/Toolbar.js.map +1 -0
- package/dist/esm/components/data-table/ToolbarRegistry.d.ts +66 -0
- package/dist/esm/components/data-table/ToolbarRegistry.js +89 -0
- package/dist/esm/components/data-table/ToolbarRegistry.js.map +1 -0
- package/dist/esm/components/data-table/ToolbarRenderer.d.ts +45 -0
- package/dist/esm/components/data-table/ToolbarRenderer.js +137 -0
- package/dist/esm/components/data-table/ToolbarRenderer.js.map +1 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.d.ts +30 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.js +60 -0
- package/dist/esm/components/data-table/contexts/FilterHelpers.js.map +1 -0
- package/dist/esm/components/data-table/contexts/RefineTable.d.ts +25 -0
- package/dist/esm/components/data-table/contexts/RefineTable.js +69 -0
- package/dist/esm/components/data-table/contexts/RefineTable.js.map +1 -0
- package/dist/esm/components/data-table/contexts/TableConfig.d.ts +24 -0
- package/dist/esm/components/data-table/contexts/TableConfig.js +29 -0
- package/dist/esm/components/data-table/contexts/TableConfig.js.map +1 -0
- package/dist/esm/components/data-table/contexts/TableInstance.d.ts +20 -0
- package/dist/esm/components/data-table/contexts/TableInstance.js +21 -0
- package/dist/esm/components/data-table/contexts/TableInstance.js.map +1 -0
- package/dist/esm/components/data-table/contexts/index.d.ts +5 -0
- package/dist/esm/components/data-table/contexts/index.js +6 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.d.ts +16 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.js +31 -0
- package/dist/esm/components/data-table/filterColumnsForMobile.js.map +1 -0
- package/dist/esm/components/data-table/index.d.ts +50 -0
- package/dist/esm/components/data-table/index.js +39 -0
- package/dist/esm/components/data-table/register.d.ts +1 -0
- package/dist/esm/components/data-table/register.js +1 -0
- package/dist/esm/components/data-table/tableOptions.d.ts +18 -0
- package/dist/esm/components/data-table/tableOptions.js +40 -0
- package/dist/esm/components/data-table/tableOptions.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.d.ts +18 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js +105 -0
- package/dist/esm/components/data-table/toolbarItems/FilterGroup.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.d.ts +22 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js +74 -0
- package/dist/esm/components/data-table/toolbarItems/FilterResolver.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.d.ts +27 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js +29 -0
- package/dist/esm/components/data-table/toolbarItems/filters/BaseFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.d.ts +52 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.js +57 -0
- package/dist/esm/components/data-table/toolbarItems/filters/FilterRegistry.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js +34 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/BooleanFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js +25 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/DateFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.d.ts +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js +44 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/MultiSelectFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js +29 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/NumberFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.d.ts +16 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js +61 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/RangeFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js +33 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SearchFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.d.ts +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js +95 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/SelectFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.d.ts +12 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js +25 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/TextFilter.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.d.ts +9 -0
- package/dist/esm/components/data-table/toolbarItems/filters/components/index.js +10 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.d.ts +43 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js +102 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterOperators.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.d.ts +19 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.js +34 -0
- package/dist/esm/components/data-table/toolbarItems/filters/hooks/useFilterTooltip.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/index.d.ts +11 -0
- package/dist/esm/components/data-table/toolbarItems/filters/index.js +13 -0
- package/dist/esm/components/data-table/toolbarItems/filters/register.d.ts +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/register.js +8 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.d.ts +140 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.js +58 -0
- package/dist/esm/components/data-table/toolbarItems/filters/types.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.d.ts +24 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.js +43 -0
- package/dist/esm/components/data-table/toolbarItems/filters/util.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/index.d.ts +17 -0
- package/dist/esm/components/data-table/toolbarItems/index.js +18 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.d.ts +15 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.js +19 -0
- package/dist/esm/components/data-table/toolbarItems/items/custom.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/index.d.ts +6 -0
- package/dist/esm/components/data-table/toolbarItems/items/index.js +6 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.d.ts +7 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js +36 -0
- package/dist/esm/components/data-table/toolbarItems/items/refresh.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.d.ts +7 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.js +66 -0
- package/dist/esm/components/data-table/toolbarItems/items/search.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.d.ts +16 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.js +20 -0
- package/dist/esm/components/data-table/toolbarItems/items/separator.js.map +1 -0
- package/dist/esm/components/data-table/toolbarItems/register.d.ts +24 -0
- package/dist/esm/components/data-table/toolbarItems/register.js +119 -0
- package/dist/esm/components/data-table/toolbarItems/register.js.map +1 -0
- package/dist/esm/components/data-table/useMobileDetection.d.ts +18 -0
- package/dist/esm/components/data-table/useMobileDetection.js +32 -0
- package/dist/esm/components/data-table/useMobileDetection.js.map +1 -0
- package/dist/esm/components/data-table/useTableHandlers.d.ts +57 -0
- package/dist/esm/components/data-table/useTableHandlers.js +69 -0
- package/dist/esm/components/data-table/useTableHandlers.js.map +1 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.d.ts +16 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.js +12 -0
- package/dist/esm/components/data-table/useTableLayoutSelector.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.context.d.ts +18 -0
- package/dist/esm/components/dialog/Dialog.context.js +80 -0
- package/dist/esm/components/dialog/Dialog.context.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.registry.d.ts +22 -0
- package/dist/esm/components/dialog/Dialog.registry.js +24 -0
- package/dist/esm/components/dialog/Dialog.registry.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.renderer.d.ts +9 -0
- package/dist/esm/components/dialog/Dialog.renderer.js +63 -0
- package/dist/esm/components/dialog/Dialog.renderer.js.map +1 -0
- package/dist/esm/components/dialog/Dialog.types.d.ts +273 -0
- package/dist/esm/components/dialog/Dialog.types.js +233 -0
- package/dist/esm/components/dialog/Dialog.types.js.map +1 -0
- package/dist/esm/components/dialog/DialogActions.context.d.ts +13 -0
- package/dist/esm/components/dialog/DialogActions.context.js +13 -0
- package/dist/esm/components/dialog/DialogActions.context.js.map +1 -0
- package/dist/esm/components/dialog/DialogContainer.d.ts +15 -0
- package/dist/esm/components/dialog/DialogContainer.js +37 -0
- package/dist/esm/components/dialog/DialogContainer.js.map +1 -0
- package/dist/esm/components/dialog/DialogContent.d.ts +14 -0
- package/dist/esm/components/dialog/DialogContent.js +18 -0
- package/dist/esm/components/dialog/DialogContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogFooterContent.d.ts +14 -0
- package/dist/esm/components/dialog/DialogFooterContent.js +20 -0
- package/dist/esm/components/dialog/DialogFooterContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogHeaderContent.d.ts +12 -0
- package/dist/esm/components/dialog/DialogHeaderContent.js +24 -0
- package/dist/esm/components/dialog/DialogHeaderContent.js.map +1 -0
- package/dist/esm/components/dialog/DialogState.context.d.ts +11 -0
- package/dist/esm/components/dialog/DialogState.context.js +11 -0
- package/dist/esm/components/dialog/DialogState.context.js.map +1 -0
- package/dist/esm/components/dialog/index.d.ts +6 -0
- package/dist/esm/components/dialog/index.js +8 -0
- package/dist/esm/components/dialog/types/AlertDialog.d.ts +19 -0
- package/dist/esm/components/dialog/types/AlertDialog.js +29 -0
- package/dist/esm/components/dialog/types/AlertDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.d.ts +17 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.js +24 -0
- package/dist/esm/components/dialog/types/ConfirmDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/CustomDialog.d.ts +28 -0
- package/dist/esm/components/dialog/types/CustomDialog.js +17 -0
- package/dist/esm/components/dialog/types/CustomDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/FormDialog.d.ts +22 -0
- package/dist/esm/components/dialog/types/FormDialog.js +46 -0
- package/dist/esm/components/dialog/types/FormDialog.js.map +1 -0
- package/dist/esm/components/dialog/types/WizardDialog.d.ts +29 -0
- package/dist/esm/components/dialog/types/WizardDialog.js +43 -0
- package/dist/esm/components/dialog/types/WizardDialog.js.map +1 -0
- package/dist/esm/components/dialog/utils/dialogClasses.d.ts +7 -0
- package/dist/esm/components/dialog/utils/dialogClasses.js +14 -0
- package/dist/esm/components/dialog/utils/dialogClasses.js.map +1 -0
- package/dist/esm/components/dialog/utils/dialogDetection.d.ts +32 -0
- package/dist/esm/components/dialog/utils/dialogDetection.js +47 -0
- package/dist/esm/components/dialog/utils/dialogDetection.js.map +1 -0
- package/dist/esm/components/dialog/utils/index.d.ts +3 -0
- package/dist/esm/components/dialog/utils/index.js +4 -0
- package/dist/esm/components/editor/BlockTypeDropdown.d.ts +12 -0
- package/dist/esm/components/editor/BlockTypeDropdown.js +57 -0
- package/dist/esm/components/editor/BlockTypeDropdown.js.map +1 -0
- package/dist/esm/components/editor/Editor.d.ts +7 -0
- package/dist/esm/components/editor/Editor.js +17 -0
- package/dist/esm/components/editor/Editor.js.map +1 -0
- package/dist/esm/components/editor/EditorInner.d.ts +14 -0
- 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.d.ts +5 -0
- package/dist/esm/components/editor/Preview.js +18 -0
- package/dist/esm/components/editor/Preview.js.map +1 -0
- package/dist/esm/components/editor/ToolbarContext.d.ts +39 -0
- package/dist/esm/components/editor/ToolbarContext.js +54 -0
- package/dist/esm/components/editor/ToolbarContext.js.map +1 -0
- package/dist/esm/components/editor/ToolbarPlugin.d.ts +20 -0
- package/dist/esm/components/editor/ToolbarPlugin.js +194 -0
- package/dist/esm/components/editor/ToolbarPlugin.js.map +1 -0
- package/dist/esm/components/editor/formatting.d.ts +15 -0
- package/dist/esm/components/editor/formatting.js +117 -0
- package/dist/esm/components/editor/formatting.js.map +1 -0
- package/dist/esm/components/editor/index.d.ts +3 -0
- package/dist/esm/components/editor/index.js +3 -0
- package/dist/esm/components/form/FormGroup.d.ts +18 -0
- package/dist/esm/components/form/FormGroup.js +28 -0
- package/dist/esm/components/form/FormGroup.js.map +1 -0
- package/dist/esm/components/form/FormRenderer.d.ts +14 -0
- package/dist/esm/components/form/FormRenderer.js +179 -0
- package/dist/esm/components/form/FormRenderer.js.map +1 -0
- package/dist/esm/components/form/SchemaForm.d.ts +18 -0
- package/dist/esm/components/form/SchemaForm.js +172 -0
- package/dist/esm/components/form/SchemaForm.js.map +1 -0
- package/dist/esm/components/form/StepControlContext.d.ts +199 -0
- package/dist/esm/components/form/StepControlContext.js +249 -0
- package/dist/esm/components/form/StepControlContext.js.map +1 -0
- package/dist/esm/components/form/StepSchemaForm.d.ts +22 -0
- package/dist/esm/components/form/StepSchemaForm.js +176 -0
- package/dist/esm/components/form/StepSchemaForm.js.map +1 -0
- package/dist/esm/components/form/WizardForm.d.ts +16 -0
- package/dist/esm/components/form/WizardForm.js +126 -0
- package/dist/esm/components/form/WizardForm.js.map +1 -0
- package/dist/esm/components/form/WizardStepContent.d.ts +26 -0
- package/dist/esm/components/form/WizardStepContent.js +46 -0
- package/dist/esm/components/form/WizardStepContent.js.map +1 -0
- package/dist/esm/components/form/__mocks__/@hookform/resolvers/zod.d.ts +8 -0
- package/dist/esm/components/form/adapters.d.ts +23 -0
- package/dist/esm/components/form/adapters.js +43 -0
- package/dist/esm/components/form/adapters.js.map +1 -0
- package/dist/esm/components/form/autocomplete/index.d.ts +3 -0
- package/dist/esm/components/form/autocomplete/index.js +4 -0
- package/dist/esm/components/form/autocomplete/register.d.ts +8 -0
- package/dist/esm/components/form/autocomplete/register.js +161 -0
- package/dist/esm/components/form/autocomplete/register.js.map +1 -0
- package/dist/esm/components/form/autocomplete/rules.d.ts +15 -0
- package/dist/esm/components/form/autocomplete/rules.js +198 -0
- package/dist/esm/components/form/autocomplete/rules.js.map +1 -0
- package/dist/esm/components/form/context.d.ts +29 -0
- package/dist/esm/components/form/context.js +25 -0
- package/dist/esm/components/form/context.js.map +1 -0
- package/dist/esm/components/form/fields/Checkbox.d.ts +6 -0
- package/dist/esm/components/form/fields/Checkbox.js +33 -0
- package/dist/esm/components/form/fields/Checkbox.js.map +1 -0
- package/dist/esm/components/form/fields/DatePicker.d.ts +6 -0
- package/dist/esm/components/form/fields/DatePicker.js +29 -0
- package/dist/esm/components/form/fields/DatePicker.js.map +1 -0
- package/dist/esm/components/form/fields/EmailInput.d.ts +6 -0
- package/dist/esm/components/form/fields/EmailInput.js +25 -0
- package/dist/esm/components/form/fields/EmailInput.js.map +1 -0
- package/dist/esm/components/form/fields/FileInput.d.ts +6 -0
- package/dist/esm/components/form/fields/FileInput.js +28 -0
- package/dist/esm/components/form/fields/FileInput.js.map +1 -0
- package/dist/esm/components/form/fields/Input.d.ts +6 -0
- package/dist/esm/components/form/fields/Input.js +30 -0
- package/dist/esm/components/form/fields/Input.js.map +1 -0
- package/dist/esm/components/form/fields/RadioGroup.d.ts +6 -0
- package/dist/esm/components/form/fields/RadioGroup.js +42 -0
- package/dist/esm/components/form/fields/RadioGroup.js.map +1 -0
- package/dist/esm/components/form/fields/RichText.d.ts +6 -0
- package/dist/esm/components/form/fields/RichText.js +30 -0
- package/dist/esm/components/form/fields/RichText.js.map +1 -0
- package/dist/esm/components/form/fields/Select.d.ts +6 -0
- package/dist/esm/components/form/fields/Select.js +37 -0
- package/dist/esm/components/form/fields/Select.js.map +1 -0
- package/dist/esm/components/form/fields/Slider.d.ts +6 -0
- package/dist/esm/components/form/fields/Slider.js +29 -0
- package/dist/esm/components/form/fields/Slider.js.map +1 -0
- package/dist/esm/components/form/fields/Switch.d.ts +6 -0
- package/dist/esm/components/form/fields/Switch.js +33 -0
- package/dist/esm/components/form/fields/Switch.js.map +1 -0
- package/dist/esm/components/form/fields/Textarea.d.ts +6 -0
- package/dist/esm/components/form/fields/Textarea.js +28 -0
- package/dist/esm/components/form/fields/Textarea.js.map +1 -0
- package/dist/esm/components/form/fields/index.d.ts +13 -0
- package/dist/esm/components/form/fields/index.js +14 -0
- package/dist/esm/components/form/fields/registry.d.ts +11 -0
- package/dist/esm/components/form/fields/registry.js +15 -0
- package/dist/esm/components/form/fields/registry.js.map +1 -0
- package/dist/esm/components/form/fields/types.d.ts +37 -0
- package/dist/esm/components/form/fields/types.js +21 -0
- package/dist/esm/components/form/fields/types.js.map +1 -0
- package/dist/esm/components/form/handlers/core.d.ts +19 -0
- package/dist/esm/components/form/handlers/core.js +51 -0
- package/dist/esm/components/form/handlers/core.js.map +1 -0
- package/dist/esm/components/form/handlers/step.d.ts +19 -0
- package/dist/esm/components/form/handlers/step.js +40 -0
- package/dist/esm/components/form/handlers/step.js.map +1 -0
- package/dist/esm/components/form/index.d.ts +26 -0
- package/dist/esm/components/form/index.js +28 -0
- package/dist/esm/components/form/register.d.ts +5 -0
- package/dist/esm/components/form/register.js +31 -0
- package/dist/esm/components/form/register.js.map +1 -0
- package/dist/esm/components/form/types.d.ts +521 -0
- package/dist/esm/components/form/types.js +69 -0
- package/dist/esm/components/form/types.js.map +1 -0
- package/dist/esm/components/form/utils/animationUtils.d.ts +14 -0
- package/dist/esm/components/form/utils/animationUtils.js +20 -0
- package/dist/esm/components/form/utils/animationUtils.js.map +1 -0
- package/dist/esm/components/form/utils/autoSave.d.ts +8 -0
- package/dist/esm/components/form/utils/autoSave.js +17 -0
- package/dist/esm/components/form/utils/autoSave.js.map +1 -0
- package/dist/esm/components/form/utils/index.d.ts +4 -0
- package/dist/esm/components/form/utils/index.js +5 -0
- package/dist/esm/components/form/utils/stepRetry.d.ts +12 -0
- package/dist/esm/components/form/utils/stepRetry.js +16 -0
- package/dist/esm/components/form/utils/stepRetry.js.map +1 -0
- package/dist/esm/components/index.d.ts +126 -0
- package/dist/esm/components/index.js +130 -0
- package/dist/esm/components/layout/DesktopSidebar.d.ts +5 -0
- package/dist/esm/components/layout/DesktopSidebar.js +51 -0
- package/dist/esm/components/layout/DesktopSidebar.js.map +1 -0
- package/dist/esm/components/layout/GeneralLayout.d.ts +5 -0
- package/dist/esm/components/layout/GeneralLayout.js +34 -0
- package/dist/esm/components/layout/GeneralLayout.js.map +1 -0
- package/dist/esm/components/layout/MobileMenu.d.ts +5 -0
- package/dist/esm/components/layout/MobileMenu.js +48 -0
- package/dist/esm/components/layout/MobileMenu.js.map +1 -0
- package/dist/esm/components/layout/PageHeader.d.ts +16 -0
- package/dist/esm/components/layout/PageHeader.js +20 -0
- package/dist/esm/components/layout/PageHeader.js.map +1 -0
- package/dist/esm/components/layout/SidebarContext.d.ts +10 -0
- package/dist/esm/components/layout/SidebarContext.js +27 -0
- package/dist/esm/components/layout/SidebarContext.js.map +1 -0
- package/dist/esm/components/layout/SidebarToggle.d.ts +12 -0
- package/dist/esm/components/layout/SidebarToggle.js +23 -0
- package/dist/esm/components/layout/SidebarToggle.js.map +1 -0
- package/dist/esm/components/layout/UserNav.d.ts +5 -0
- package/dist/esm/components/layout/UserNav.js +110 -0
- package/dist/esm/components/layout/UserNav.js.map +1 -0
- package/dist/esm/components/layout/index.d.ts +7 -0
- package/dist/esm/components/layout/index.js +9 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.d.ts +23 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js +28 -0
- package/dist/esm/components/screen-reader/ScreenReaderAnnouncement.js.map +1 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.d.ts +10 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js +30 -0
- package/dist/esm/components/screen-reader/hooks/useScreenReaderAnnouncement.js.map +1 -0
- package/dist/esm/components/shared/UnifiedFooter.d.ts +17 -0
- package/dist/esm/components/shared/UnifiedFooter.js +210 -0
- package/dist/esm/components/shared/UnifiedFooter.js.map +1 -0
- package/dist/esm/components/shared/UnifiedHeader.d.ts +17 -0
- package/dist/esm/components/shared/UnifiedHeader.js +48 -0
- package/dist/esm/components/shared/UnifiedHeader.js.map +1 -0
- package/dist/esm/components/shared/context/FooterContext.d.ts +18 -0
- package/dist/esm/components/shared/context/FooterContext.js +24 -0
- package/dist/esm/components/shared/context/FooterContext.js.map +1 -0
- package/dist/esm/components/shared/context/HeaderContext.d.ts +18 -0
- package/dist/esm/components/shared/context/HeaderContext.js +23 -0
- package/dist/esm/components/shared/context/HeaderContext.js.map +1 -0
- package/dist/esm/components/shared/context/index.d.ts +3 -0
- package/dist/esm/components/shared/context/index.js +4 -0
- package/dist/esm/components/shared/environment/builders.d.ts +95 -0
- package/dist/esm/components/shared/environment/builders.js +163 -0
- package/dist/esm/components/shared/environment/builders.js.map +1 -0
- package/dist/esm/components/shared/environment/index.d.ts +7 -0
- package/dist/esm/components/shared/environment/index.js +3 -0
- package/dist/esm/components/shared/footers/ActionsFooter.d.ts +11 -0
- package/dist/esm/components/shared/footers/ActionsFooter.js +19 -0
- package/dist/esm/components/shared/footers/ActionsFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/DefaultFooter.d.ts +13 -0
- package/dist/esm/components/shared/footers/DefaultFooter.js +20 -0
- package/dist/esm/components/shared/footers/DefaultFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/FormFooter.d.ts +15 -0
- package/dist/esm/components/shared/footers/FormFooter.js +28 -0
- package/dist/esm/components/shared/footers/FormFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/StepFormFooter.d.ts +15 -0
- package/dist/esm/components/shared/footers/StepFormFooter.js +28 -0
- package/dist/esm/components/shared/footers/StepFormFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/WizardFooter.d.ts +12 -0
- package/dist/esm/components/shared/footers/WizardFooter.js +72 -0
- package/dist/esm/components/shared/footers/WizardFooter.js.map +1 -0
- package/dist/esm/components/shared/footers/index.d.ts +6 -0
- package/dist/esm/components/shared/footers/index.js +7 -0
- package/dist/esm/components/shared/headers/DefaultHeader.d.ts +13 -0
- package/dist/esm/components/shared/headers/DefaultHeader.js +30 -0
- package/dist/esm/components/shared/headers/DefaultHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/FormHeader.d.ts +12 -0
- package/dist/esm/components/shared/headers/FormHeader.js +31 -0
- package/dist/esm/components/shared/headers/FormHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/WizardHeader.d.ts +9 -0
- package/dist/esm/components/shared/headers/WizardHeader.js +116 -0
- package/dist/esm/components/shared/headers/WizardHeader.js.map +1 -0
- package/dist/esm/components/shared/headers/index.d.ts +4 -0
- package/dist/esm/components/shared/headers/index.js +5 -0
- package/dist/esm/components/shared/hooks/index.d.ts +3 -0
- package/dist/esm/components/shared/hooks/index.js +4 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.d.ts +17 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js +17 -0
- package/dist/esm/components/shared/hooks/useEnvironmentSync.js.map +1 -0
- package/dist/esm/components/shared/hooks/useForceRerender.d.ts +17 -0
- package/dist/esm/components/shared/hooks/useForceRerender.js +26 -0
- package/dist/esm/components/shared/hooks/useForceRerender.js.map +1 -0
- package/dist/esm/components/shared/index.d.ts +31 -0
- package/dist/esm/components/shared/index.js +36 -0
- package/dist/esm/components/shared/registry/FooterRegistry.d.ts +15 -0
- package/dist/esm/components/shared/registry/FooterRegistry.js +47 -0
- package/dist/esm/components/shared/registry/FooterRegistry.js.map +1 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.d.ts +15 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.js +41 -0
- package/dist/esm/components/shared/registry/HeaderRegistry.js.map +1 -0
- package/dist/esm/components/shared/registry/index.d.ts +4 -0
- package/dist/esm/components/shared/registry/index.js +5 -0
- package/dist/esm/components/shared/registry/types.d.ts +23 -0
- package/dist/esm/components/shared/registry/types.js +21 -0
- package/dist/esm/components/shared/registry/types.js.map +1 -0
- package/dist/esm/components/shared/types/container.d.ts +70 -0
- package/dist/esm/components/shared/types/container.js +35 -0
- package/dist/esm/components/shared/types/container.js.map +1 -0
- package/dist/esm/components/shared/types/environment.d.ts +25 -0
- package/dist/esm/components/shared/types/environment.js +0 -0
- package/dist/esm/components/shared/types/footer.d.ts +121 -0
- package/dist/esm/components/shared/types/footer.js +58 -0
- package/dist/esm/components/shared/types/footer.js.map +1 -0
- package/dist/esm/components/shared/types/form.d.ts +120 -0
- package/dist/esm/components/shared/types/form.js +47 -0
- package/dist/esm/components/shared/types/form.js.map +1 -0
- package/dist/esm/components/shared/types/header.d.ts +81 -0
- package/dist/esm/components/shared/types/header.js +38 -0
- package/dist/esm/components/shared/types/header.js.map +1 -0
- package/dist/esm/components/shared/types/index.d.ts +8 -0
- package/dist/esm/components/shared/types/index.js +7 -0
- package/dist/esm/components/shared/types/navigation.d.ts +9 -0
- package/dist/esm/components/shared/types/navigation.js +0 -0
- package/dist/esm/components/shared/types/step.d.ts +104 -0
- package/dist/esm/components/shared/types/step.js +31 -0
- package/dist/esm/components/shared/types/step.js.map +1 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.d.ts +23 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js +30 -0
- package/dist/esm/components/shared/utils/createEnvironmentReceiver.js.map +1 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.d.ts +22 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js +30 -0
- package/dist/esm/components/shared/utils/createForceRerenderReceiver.js.map +1 -0
- package/dist/esm/components/shared/utils/index.d.ts +6 -0
- package/dist/esm/components/shared/utils/index.js +7 -0
- package/dist/esm/components/shared/utils/renderFooter.d.ts +37 -0
- package/dist/esm/components/shared/utils/renderFooter.js +99 -0
- package/dist/esm/components/shared/utils/renderFooter.js.map +1 -0
- package/dist/esm/components/shared/utils/renderHeader.d.ts +39 -0
- package/dist/esm/components/shared/utils/renderHeader.js +120 -0
- package/dist/esm/components/shared/utils/renderHeader.js.map +1 -0
- package/dist/esm/components/shared/utils/stepState.d.ts +36 -0
- package/dist/esm/components/shared/utils/stepState.js +61 -0
- package/dist/esm/components/shared/utils/stepState.js.map +1 -0
- package/dist/esm/components/sizing/index.d.ts +97 -0
- package/dist/esm/components/sizing/index.js +79 -0
- package/dist/esm/components/sizing/index.js.map +1 -0
- package/dist/esm/hooks/index.d.ts +16 -0
- package/dist/esm/hooks/index.js +17 -0
- package/dist/esm/hooks/useAccountSubdomain.d.ts +5 -0
- package/dist/esm/hooks/useAccountSubdomain.js +11 -0
- package/dist/esm/hooks/useAccountSubdomain.js.map +1 -0
- package/dist/esm/hooks/useAccountUrl.d.ts +5 -0
- package/dist/esm/hooks/useAccountUrl.js +27 -0
- package/dist/esm/hooks/useAccountUrl.js.map +1 -0
- package/dist/esm/hooks/useApiUrl.d.ts +5 -0
- package/dist/esm/hooks/useApiUrl.js +14 -0
- package/dist/esm/hooks/useApiUrl.js.map +1 -0
- package/dist/esm/hooks/useAvatar.d.ts +10 -0
- package/dist/esm/hooks/useAvatar.js +20 -0
- package/dist/esm/hooks/useAvatar.js.map +1 -0
- package/dist/esm/hooks/useFeatureFlag.d.ts +5 -0
- package/dist/esm/hooks/useFeatureFlag.js +10 -0
- package/dist/esm/hooks/useFeatureFlag.js.map +1 -0
- package/dist/esm/hooks/useLoginUrl.d.ts +5 -0
- package/dist/esm/hooks/useLoginUrl.js +10 -0
- package/dist/esm/hooks/useLoginUrl.js.map +1 -0
- package/dist/esm/hooks/useMenuItems.d.ts +12 -0
- package/dist/esm/hooks/useMenuItems.js +16 -0
- package/dist/esm/hooks/useMenuItems.js.map +1 -0
- package/dist/esm/hooks/usePluginMeta.d.ts +5 -0
- package/dist/esm/hooks/usePluginMeta.js +11 -0
- package/dist/esm/hooks/usePluginMeta.js.map +1 -0
- package/dist/esm/hooks/usePortalMeta.d.ts +7 -0
- package/dist/esm/hooks/usePortalMeta.js +10 -0
- package/dist/esm/hooks/usePortalMeta.js.map +1 -0
- package/dist/esm/hooks/usePortalUrl.d.ts +5 -0
- package/dist/esm/hooks/usePortalUrl.js +20 -0
- package/dist/esm/hooks/usePortalUrl.js.map +1 -0
- package/dist/esm/hooks/useProtocolDomain.d.ts +5 -0
- package/dist/esm/hooks/useProtocolDomain.js +12 -0
- package/dist/esm/hooks/useProtocolDomain.js.map +1 -0
- package/dist/esm/hooks/useRegisterUrl.d.ts +5 -0
- package/dist/esm/hooks/useRegisterUrl.js +10 -0
- package/dist/esm/hooks/useRegisterUrl.js.map +1 -0
- package/dist/esm/hooks/useResetPasswordUrl.d.ts +5 -0
- package/dist/esm/hooks/useResetPasswordUrl.js +10 -0
- package/dist/esm/hooks/useResetPasswordUrl.js.map +1 -0
- package/dist/esm/hooks/useSdk.d.ts +8 -0
- package/dist/esm/hooks/useSdk.js +33 -0
- package/dist/esm/hooks/useSdk.js.map +1 -0
- package/dist/esm/hooks/useTheme.d.ts +41 -0
- package/dist/esm/hooks/useTheme.js +79 -0
- package/dist/esm/hooks/useTheme.js.map +1 -0
- package/dist/esm/image.d.ts +6 -0
- package/dist/esm/images/account-banner-image.js +6 -0
- package/dist/esm/images/account-banner-image.js.map +1 -0
- package/dist/esm/images/discord-logo.js +6 -0
- package/dist/esm/images/discord-logo.js.map +1 -0
- package/dist/esm/images/lume-bg-image.js +6 -0
- package/dist/esm/images/lume-bg-image.js.map +1 -0
- package/dist/esm/images/lume-bg-login.js +6 -0
- package/dist/esm/images/lume-bg-login.js.map +1 -0
- package/dist/esm/images/lume-color-logo.js +6 -0
- package/dist/esm/images/lume-color-logo.js.map +1 -0
- package/dist/esm/images/lume-logo.js +6 -0
- package/dist/esm/images/lume-logo.js.map +1 -0
- package/dist/esm/images.d.ts +11 -0
- package/dist/esm/images.js +19 -0
- package/dist/esm/images.js.map +1 -0
- package/dist/esm/index.d.ts +150 -0
- package/dist/esm/index.js +149 -0
- package/dist/esm/store/appStore.d.ts +50 -0
- package/dist/esm/store/appStore.js +139 -0
- package/dist/esm/store/appStore.js.map +1 -0
- package/dist/esm/store/index.d.ts +5 -0
- package/dist/esm/store/index.js +6 -0
- package/dist/esm/store/portalStore.d.ts +33 -0
- package/dist/esm/store/portalStore.js +58 -0
- package/dist/esm/store/portalStore.js.map +1 -0
- package/dist/esm/store/saved-filters.d.ts +54 -0
- package/dist/esm/store/saved-filters.js +158 -0
- package/dist/esm/store/saved-filters.js.map +1 -0
- package/dist/esm/store/uiStore.d.ts +11 -0
- package/dist/esm/store/uiStore.js +16 -0
- package/dist/esm/store/uiStore.js.map +1 -0
- package/dist/esm/tests/portalMetaMocks.d.ts +16 -0
- package/dist/esm/tests/portalMetaMocks.js +15 -0
- package/dist/esm/tests/portalMetaMocks.js.map +1 -0
- package/dist/esm/types/badge.d.ts +16 -0
- package/dist/esm/types/badge.js +42 -0
- package/dist/esm/types/badge.js.map +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/theme.d.ts +35 -0
- package/dist/esm/types/theme.js +0 -0
- package/dist/esm/utils/asyncUtils.d.ts +5 -0
- package/dist/esm/utils/asyncUtils.js +9 -0
- package/dist/esm/utils/asyncUtils.js.map +1 -0
- package/dist/esm/utils/fileSize.d.ts +5 -0
- package/dist/esm/utils/fileSize.js +18 -0
- package/dist/esm/utils/fileSize.js.map +1 -0
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/theme.d.ts +197 -0
- package/dist/esm/utils/theme.js +689 -0
- package/dist/esm/utils/theme.js.map +1 -0
- package/package.json +75 -8
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/layout/SidebarContext.d.ts
|
|
4
|
+
declare const SidebarProvider: React.FC<{
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}>;
|
|
7
|
+
declare const useSidebarContext: () => any;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { SidebarProvider, useSidebarContext };
|
|
10
|
+
//# sourceMappingURL=SidebarContext.d.ts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/layout/SidebarContext.tsx
|
|
5
|
+
const SidebarContext = createContext(void 0);
|
|
6
|
+
const SidebarProvider = ({ children }) => {
|
|
7
|
+
const [isCollapsed, setIsCollapsed] = useState(false);
|
|
8
|
+
const toggleCollapsed = () => {
|
|
9
|
+
setIsCollapsed(!isCollapsed);
|
|
10
|
+
};
|
|
11
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, {
|
|
12
|
+
value: {
|
|
13
|
+
isCollapsed,
|
|
14
|
+
toggleCollapsed
|
|
15
|
+
},
|
|
16
|
+
children
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
const useSidebarContext = () => {
|
|
20
|
+
const context = useContext(SidebarContext);
|
|
21
|
+
if (!context) throw new Error("useSidebarContext must be used within a SidebarProvider");
|
|
22
|
+
return context;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { SidebarProvider, useSidebarContext };
|
|
27
|
+
//# sourceMappingURL=SidebarContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarContext.js","names":[],"sources":["../../../../src/components/layout/SidebarContext.tsx"],"sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\n\ninterface SidebarContextType {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n}\n\nconst SidebarContext = createContext<SidebarContextType | undefined>(undefined);\n\nexport const SidebarProvider: React.FC<{ children: React.ReactNode }> = ({\n children,\n}) => {\n const [isCollapsed, setIsCollapsed] = useState(false);\n\n const toggleCollapsed = () => {\n setIsCollapsed(!isCollapsed);\n };\n\n return (\n <SidebarContext.Provider value={{ isCollapsed, toggleCollapsed }}>\n {children}\n </SidebarContext.Provider>\n );\n};\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebarContext must be used within a SidebarProvider\");\n }\n return context;\n};\n"],"mappings":";;;;AAOA,MAAM,iBAAiB,cAA8C,OAAU;AAE/E,MAAa,mBAA4D,EACvE,eACI;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;CAErD,MAAM,wBAAwB;AAC5B,iBAAe,CAAC,YAAY;;AAG9B,QACE,oBAAC,eAAe,UAAhB;EAAyB,OAAO;GAAE;GAAa;GAAiB;EAC7D;EACuB;;AAI9B,MAAa,0BAA0B;CACrC,MAAM,UAAU,WAAW,eAAe;AAC1C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,0DAA0D;AAE5E,QAAO"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/components/layout/SidebarToggle.d.ts
|
|
2
|
+
interface SidebarToggleProps {
|
|
3
|
+
isOpen: boolean | undefined;
|
|
4
|
+
setIsOpen?: () => void;
|
|
5
|
+
}
|
|
6
|
+
declare function SidebarToggle({
|
|
7
|
+
isOpen,
|
|
8
|
+
setIsOpen
|
|
9
|
+
}: SidebarToggleProps): any;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { SidebarToggle };
|
|
12
|
+
//# sourceMappingURL=SidebarToggle.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Button, cn } from "@lumeweb/portal-framework-ui-core";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { ChevronLeft } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/layout/SidebarToggle.tsx
|
|
7
|
+
function SidebarToggle({ isOpen, setIsOpen }) {
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
className: "invisible absolute -right-[20px] top-[12px] z-20 lg:visible",
|
|
10
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
11
|
+
"aria-label": isOpen ? "Close sidebar" : "Open sidebar",
|
|
12
|
+
className: "h-8 w-8 rounded-md",
|
|
13
|
+
onClick: () => setIsOpen?.(),
|
|
14
|
+
size: "icon",
|
|
15
|
+
variant: "outline",
|
|
16
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { className: cn("h-4 w-4 transition-transform duration-700 ease-in-out", isOpen === false ? "rotate-180" : "rotate-0") })
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
//#endregion
|
|
22
|
+
export { SidebarToggle };
|
|
23
|
+
//# sourceMappingURL=SidebarToggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidebarToggle.js","names":[],"sources":["../../../../src/components/layout/SidebarToggle.tsx"],"sourcesContent":["import { Button, cn } from \"@lumeweb/portal-framework-ui-core\";\nimport { ChevronLeft } from \"lucide-react\";\nimport React from \"react\";\n\ninterface SidebarToggleProps {\n isOpen: boolean | undefined;\n setIsOpen?: () => void;\n}\n\nexport function SidebarToggle({ isOpen, setIsOpen }: SidebarToggleProps) {\n return (\n <div className=\"invisible absolute -right-[20px] top-[12px] z-20 lg:visible\">\n <Button\n aria-label={isOpen ? \"Close sidebar\" : \"Open sidebar\"}\n className=\"h-8 w-8 rounded-md\"\n onClick={() => setIsOpen?.()}\n size=\"icon\"\n variant=\"outline\">\n <ChevronLeft\n className={cn(\n \"h-4 w-4 transition-transform duration-700 ease-in-out\",\n isOpen === false ? \"rotate-180\" : \"rotate-0\",\n )}\n />\n </Button>\n </div>\n );\n}\n"],"mappings":";;;;;;AASA,SAAgB,cAAc,EAAE,QAAQ,aAAiC;AACvE,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,QAAD;GACE,cAAY,SAAS,kBAAkB;GACvC,WAAU;GACV,eAAe,aAAa;GAC5B,MAAK;GACL,SAAQ;aACR,oBAAC,aAAD,EACE,WAAW,GACT,yDACA,WAAW,QAAQ,eAAe,WACnC,EACD;GACK;EACL"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useAvatar } from "../../hooks/useAvatar.js";
|
|
4
|
+
import { Avatar, AvatarFallback, AvatarImage, Button, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@lumeweb/portal-framework-ui-core";
|
|
5
|
+
import { Link, useGetIdentity, useLogout } from "@refinedev/core";
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { LayoutGrid, LogOut, User } from "lucide-react";
|
|
9
|
+
|
|
10
|
+
//#region src/components/layout/UserNav.tsx
|
|
11
|
+
function UserNav() {
|
|
12
|
+
const { mutate: logout } = useLogout();
|
|
13
|
+
const { data: identity } = useGetIdentity();
|
|
14
|
+
const { avatarUrl, displayName, isLoading } = useAvatar();
|
|
15
|
+
const firstName = identity?.firstName || "";
|
|
16
|
+
const lastName = identity?.lastName || "";
|
|
17
|
+
const email = identity?.email || "";
|
|
18
|
+
const getAvatarAltText = () => {
|
|
19
|
+
if (isLoading) return "User avatar";
|
|
20
|
+
if (displayName) return displayName;
|
|
21
|
+
return "";
|
|
22
|
+
};
|
|
23
|
+
const getAvatarFallback = () => {
|
|
24
|
+
if (isLoading) return "?";
|
|
25
|
+
if (firstName || lastName) return (firstName || lastName).charAt(0).toUpperCase();
|
|
26
|
+
if (email) return email.charAt(0).toUpperCase();
|
|
27
|
+
return "?";
|
|
28
|
+
};
|
|
29
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(TooltipProvider, {
|
|
30
|
+
disableHoverableContent: true,
|
|
31
|
+
children: /* @__PURE__ */ jsxs(Tooltip, {
|
|
32
|
+
delayDuration: 100,
|
|
33
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
34
|
+
asChild: true,
|
|
35
|
+
children: /* @__PURE__ */ jsx(DropdownMenuTrigger, {
|
|
36
|
+
asChild: true,
|
|
37
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
38
|
+
"aria-label": isLoading ? "User avatar" : displayName || "User profile",
|
|
39
|
+
className: "relative h-8 w-8 rounded-full",
|
|
40
|
+
variant: "outline",
|
|
41
|
+
children: /* @__PURE__ */ jsxs(Avatar, {
|
|
42
|
+
className: "h-8 w-8",
|
|
43
|
+
children: [/* @__PURE__ */ jsx(AvatarImage, {
|
|
44
|
+
alt: getAvatarAltText(),
|
|
45
|
+
src: avatarUrl
|
|
46
|
+
}), /* @__PURE__ */ jsx(AvatarFallback, {
|
|
47
|
+
className: "bg-transparent",
|
|
48
|
+
children: getAvatarFallback()
|
|
49
|
+
})]
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
54
|
+
side: "bottom",
|
|
55
|
+
children: "Profile"
|
|
56
|
+
})]
|
|
57
|
+
})
|
|
58
|
+
}), /* @__PURE__ */ jsxs(DropdownMenuContent, {
|
|
59
|
+
align: "end",
|
|
60
|
+
className: "w-56",
|
|
61
|
+
forceMount: true,
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsx(DropdownMenuLabel, {
|
|
64
|
+
className: "font-normal",
|
|
65
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
66
|
+
className: "flex flex-col space-y-1",
|
|
67
|
+
children: [/* @__PURE__ */ jsxs("p", {
|
|
68
|
+
className: "text-sm font-medium leading-none",
|
|
69
|
+
children: [
|
|
70
|
+
firstName,
|
|
71
|
+
" ",
|
|
72
|
+
lastName
|
|
73
|
+
]
|
|
74
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
75
|
+
className: "text-muted-foreground text-xs leading-none",
|
|
76
|
+
children: email
|
|
77
|
+
})]
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
81
|
+
/* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [/* @__PURE__ */ jsx(DropdownMenuItem, {
|
|
82
|
+
asChild: true,
|
|
83
|
+
className: "hover:cursor-pointer",
|
|
84
|
+
children: /* @__PURE__ */ jsxs(Link, {
|
|
85
|
+
className: "flex items-center",
|
|
86
|
+
to: "/dashboard",
|
|
87
|
+
children: [/* @__PURE__ */ jsx(LayoutGrid, { className: "text-muted-foreground mr-3 h-4 w-4" }), "Dashboard"]
|
|
88
|
+
})
|
|
89
|
+
}), /* @__PURE__ */ jsx(DropdownMenuItem, {
|
|
90
|
+
asChild: true,
|
|
91
|
+
className: "hover:cursor-pointer",
|
|
92
|
+
children: /* @__PURE__ */ jsxs(Link, {
|
|
93
|
+
className: "flex items-center",
|
|
94
|
+
to: "/account",
|
|
95
|
+
children: [/* @__PURE__ */ jsx(User, { className: "text-muted-foreground mr-3 h-4 w-4" }), "Account"]
|
|
96
|
+
})
|
|
97
|
+
})] }),
|
|
98
|
+
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
99
|
+
/* @__PURE__ */ jsxs(DropdownMenuItem, {
|
|
100
|
+
className: "hover:cursor-pointer",
|
|
101
|
+
onClick: () => logout(),
|
|
102
|
+
children: [/* @__PURE__ */ jsx(LogOut, { className: "text-muted-foreground mr-3 h-4 w-4" }), "Sign out"]
|
|
103
|
+
})
|
|
104
|
+
]
|
|
105
|
+
})] });
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
//#endregion
|
|
109
|
+
export { UserNav };
|
|
110
|
+
//# sourceMappingURL=UserNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserNav.js","names":[],"sources":["../../../../src/components/layout/UserNav.tsx"],"sourcesContent":["\"use client\";\n\nimport type { Identity } from \"@lumeweb/portal-framework-core\";\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@lumeweb/portal-framework-ui-core\";\nimport { Link, useGetIdentity, useLogout } from \"@refinedev/core\";\nimport { LayoutGrid, LogOut, User } from \"lucide-react\";\nimport React from \"react\";\n\nimport { useAvatar } from \"@/hooks/useAvatar\";\n\nexport function UserNav() {\n const { mutate: logout } = useLogout();\n const { data: identity } = useGetIdentity<Identity>();\n const { avatarUrl, displayName, isLoading } = useAvatar();\n\n const firstName = identity?.firstName || \"\";\n const lastName = identity?.lastName || \"\";\n const email = identity?.email || \"\";\n\n const getAvatarAltText = () => {\n if (isLoading) {\n return \"User avatar\";\n }\n\n if (displayName) {\n return displayName;\n }\n\n return \"\";\n };\n\n const getAvatarFallback = () => {\n if (isLoading) {\n return \"?\";\n }\n\n if (firstName || lastName) {\n return (firstName || lastName).charAt(0).toUpperCase();\n }\n\n if (email) {\n return email.charAt(0).toUpperCase();\n }\n\n return \"?\";\n };\n\n return (\n <DropdownMenu>\n <TooltipProvider disableHoverableContent>\n <Tooltip delayDuration={100}>\n <TooltipTrigger asChild>\n <DropdownMenuTrigger asChild>\n <Button\n aria-label={\n isLoading ? \"User avatar\" : displayName || \"User profile\"\n }\n className=\"relative h-8 w-8 rounded-full\"\n variant=\"outline\">\n <Avatar className=\"h-8 w-8\">\n <AvatarImage alt={getAvatarAltText()} src={avatarUrl} />\n <AvatarFallback className=\"bg-transparent\">\n {getAvatarFallback()}\n </AvatarFallback>\n </Avatar>\n </Button>\n </DropdownMenuTrigger>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">Profile</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n\n <DropdownMenuContent align=\"end\" className=\"w-56\" forceMount>\n <DropdownMenuLabel className=\"font-normal\">\n <div className=\"flex flex-col space-y-1\">\n <p className=\"text-sm font-medium leading-none\">\n {firstName} {lastName}\n </p>\n <p className=\"text-muted-foreground text-xs leading-none\">\n {email}\n </p>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem asChild className=\"hover:cursor-pointer\">\n <Link className=\"flex items-center\" to=\"/dashboard\">\n <LayoutGrid className=\"text-muted-foreground mr-3 h-4 w-4\" />\n Dashboard\n </Link>\n </DropdownMenuItem>\n <DropdownMenuItem asChild className=\"hover:cursor-pointer\">\n <Link className=\"flex items-center\" to=\"/account\">\n <User className=\"text-muted-foreground mr-3 h-4 w-4\" />\n Account\n </Link>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem\n className=\"hover:cursor-pointer\"\n onClick={() => logout()}>\n <LogOut className=\"text-muted-foreground mr-3 h-4 w-4\" />\n Sign out\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgB,UAAU;CACxB,MAAM,EAAE,QAAQ,WAAW,WAAW;CACtC,MAAM,EAAE,MAAM,aAAa,gBAA0B;CACrD,MAAM,EAAE,WAAW,aAAa,cAAc,WAAW;CAEzD,MAAM,YAAY,UAAU,aAAa;CACzC,MAAM,WAAW,UAAU,YAAY;CACvC,MAAM,QAAQ,UAAU,SAAS;CAEjC,MAAM,yBAAyB;AAC7B,MAAI,UACF,QAAO;AAGT,MAAI,YACF,QAAO;AAGT,SAAO;;CAGT,MAAM,0BAA0B;AAC9B,MAAI,UACF,QAAO;AAGT,MAAI,aAAa,SACf,SAAQ,aAAa,UAAU,OAAO,EAAE,CAAC,aAAa;AAGxD,MAAI,MACF,QAAO,MAAM,OAAO,EAAE,CAAC,aAAa;AAGtC,SAAO;;AAGT,QACE,qBAAC,cAAD,aACE,oBAAC,iBAAD;EAAiB;YACf,qBAAC,SAAD;GAAS,eAAe;aAAxB,CACE,oBAAC,gBAAD;IAAgB;cACd,oBAAC,qBAAD;KAAqB;eACnB,oBAAC,QAAD;MACE,cACE,YAAY,gBAAgB,eAAe;MAE7C,WAAU;MACV,SAAQ;gBACR,qBAAC,QAAD;OAAQ,WAAU;iBAAlB,CACE,oBAAC,aAAD;QAAa,KAAK,kBAAkB;QAAE,KAAK;QAAa,GACxD,oBAAC,gBAAD;QAAgB,WAAU;kBACvB,mBAAmB;QACL,EACV;;MACF;KACW;IACP,GACjB,oBAAC,gBAAD;IAAgB,MAAK;cAAS;IAAwB,EAC9C;;EACM,GAElB,qBAAC,qBAAD;EAAqB,OAAM;EAAM,WAAU;EAAO;YAAlD;GACE,oBAAC,mBAAD;IAAmB,WAAU;cAC3B,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,KAAD;MAAG,WAAU;gBAAb;OACG;OAAU;OAAE;OACX;SACJ,oBAAC,KAAD;MAAG,WAAU;gBACV;MACC,EACA;;IACY;GACpB,oBAAC,uBAAD,EAAyB;GACzB,qBAAC,mBAAD,aACE,oBAAC,kBAAD;IAAkB;IAAQ,WAAU;cAClC,qBAAC,MAAD;KAAM,WAAU;KAAoB,IAAG;eAAvC,CACE,oBAAC,YAAD,EAAY,WAAU,sCAAuC,eAExD;;IACU,GACnB,oBAAC,kBAAD;IAAkB;IAAQ,WAAU;cAClC,qBAAC,MAAD;KAAM,WAAU;KAAoB,IAAG;eAAvC,CACE,oBAAC,MAAD,EAAM,WAAU,sCAAuC,aAElD;;IACU,EACD;GACpB,oBAAC,uBAAD,EAAyB;GACzB,qBAAC,kBAAD;IACE,WAAU;IACV,eAAe,QAAQ;cAFzB,CAGE,oBAAC,QAAD,EAAQ,WAAU,sCAAuC,cAExC;;GACC;IACT"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UserNav } from "./UserNav.js";
|
|
2
|
+
import { MobileMenu } from "./MobileMenu.js";
|
|
3
|
+
import { PageHeader } from "./PageHeader.js";
|
|
4
|
+
import { SidebarProvider, useSidebarContext } from "./SidebarContext.js";
|
|
5
|
+
import { SidebarToggle } from "./SidebarToggle.js";
|
|
6
|
+
import { GeneralLayout } from "./GeneralLayout.js";
|
|
7
|
+
export { GeneralLayout, MobileMenu, PageHeader, SidebarProvider, SidebarToggle, UserNav, useSidebarContext };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SidebarProvider, useSidebarContext } from "./SidebarContext.js";
|
|
2
|
+
import { SidebarToggle } from "./SidebarToggle.js";
|
|
3
|
+
import "./DesktopSidebar.js";
|
|
4
|
+
import { UserNav } from "./UserNav.js";
|
|
5
|
+
import { MobileMenu } from "./MobileMenu.js";
|
|
6
|
+
import { PageHeader } from "./PageHeader.js";
|
|
7
|
+
import { GeneralLayout } from "./GeneralLayout.js";
|
|
8
|
+
|
|
9
|
+
export { GeneralLayout, MobileMenu, PageHeader, SidebarProvider, SidebarToggle, UserNav, useSidebarContext };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useScreenReaderAnnouncement } from "./hooks/useScreenReaderAnnouncement.js";
|
|
2
|
+
|
|
3
|
+
//#region src/components/screen-reader/ScreenReaderAnnouncement.d.ts
|
|
4
|
+
interface ScreenReaderAnnouncementProps {
|
|
5
|
+
/**
|
|
6
|
+
* Optional ID for the announcement region
|
|
7
|
+
*/
|
|
8
|
+
id?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* ScreenReaderAnnouncement component
|
|
12
|
+
*
|
|
13
|
+
* This component creates a visually hidden live region for screen reader announcements.
|
|
14
|
+
* It should be included once in your application, typically near the top level.
|
|
15
|
+
*
|
|
16
|
+
* Use the useScreenReaderAnnouncement hook to make announcements.
|
|
17
|
+
*/
|
|
18
|
+
declare function ScreenReaderAnnouncement({
|
|
19
|
+
id
|
|
20
|
+
}: ScreenReaderAnnouncementProps): any;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { ScreenReaderAnnouncement, useScreenReaderAnnouncement };
|
|
23
|
+
//# sourceMappingURL=ScreenReaderAnnouncement.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useScreenReaderAnnouncement } from "./hooks/useScreenReaderAnnouncement.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/screen-reader/ScreenReaderAnnouncement.tsx
|
|
6
|
+
/**
|
|
7
|
+
* ScreenReaderAnnouncement component
|
|
8
|
+
*
|
|
9
|
+
* This component creates a visually hidden live region for screen reader announcements.
|
|
10
|
+
* It should be included once in your application, typically near the top level.
|
|
11
|
+
*
|
|
12
|
+
* Use the useScreenReaderAnnouncement hook to make announcements.
|
|
13
|
+
*/
|
|
14
|
+
function ScreenReaderAnnouncement({ id = "screen-reader-announcement" }) {
|
|
15
|
+
const { announcement, politeness } = useScreenReaderAnnouncement();
|
|
16
|
+
return /* @__PURE__ */ jsx("div", {
|
|
17
|
+
"aria-atomic": "true",
|
|
18
|
+
"aria-live": politeness,
|
|
19
|
+
className: "sr-only",
|
|
20
|
+
id,
|
|
21
|
+
role: politeness === "assertive" ? "alert" : "status",
|
|
22
|
+
children: announcement
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { ScreenReaderAnnouncement, useScreenReaderAnnouncement };
|
|
28
|
+
//# sourceMappingURL=ScreenReaderAnnouncement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenReaderAnnouncement.js","names":[],"sources":["../../../../src/components/screen-reader/ScreenReaderAnnouncement.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { useScreenReaderAnnouncement } from \"@/components/screen-reader/hooks/useScreenReaderAnnouncement\";\n\ninterface ScreenReaderAnnouncementProps {\n /**\n * Optional ID for the announcement region\n */\n id?: string;\n}\n\n/**\n * ScreenReaderAnnouncement component\n *\n * This component creates a visually hidden live region for screen reader announcements.\n * It should be included once in your application, typically near the top level.\n *\n * Use the useScreenReaderAnnouncement hook to make announcements.\n */\nexport function ScreenReaderAnnouncement({\n id = \"screen-reader-announcement\",\n}: ScreenReaderAnnouncementProps) {\n const { announcement, politeness } = useScreenReaderAnnouncement();\n\n return (\n <div\n aria-atomic=\"true\"\n aria-live={politeness}\n className=\"sr-only\"\n id={id}\n role={politeness === \"assertive\" ? \"alert\" : \"status\"}>\n {announcement}\n </div>\n );\n}\n\n/**\n * Re-export the hook for convenience\n */\nexport { useScreenReaderAnnouncement };\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,yBAAyB,EACvC,KAAK,gCAC2B;CAChC,MAAM,EAAE,cAAc,eAAe,6BAA6B;AAElE,QACE,oBAAC,OAAD;EACE,eAAY;EACZ,aAAW;EACX,WAAU;EACN;EACJ,MAAM,eAAe,cAAc,UAAU;YAC5C;EACG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/components/screen-reader/hooks/useScreenReaderAnnouncement.d.ts
|
|
2
|
+
type PolitenessLevel = "assertive" | "polite";
|
|
3
|
+
declare function useScreenReaderAnnouncement(): {
|
|
4
|
+
announce: any;
|
|
5
|
+
announcement: any;
|
|
6
|
+
politeness: any;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { PolitenessLevel, useScreenReaderAnnouncement };
|
|
10
|
+
//# sourceMappingURL=useScreenReaderAnnouncement.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/screen-reader/hooks/useScreenReaderAnnouncement.ts
|
|
4
|
+
function useScreenReaderAnnouncement() {
|
|
5
|
+
const [announcement, setAnnouncement] = React.useState("");
|
|
6
|
+
const [politeness, setPoliteness] = React.useState("polite");
|
|
7
|
+
const timeoutRef = React.useRef(null);
|
|
8
|
+
const announce = React.useCallback((message, level = "polite") => {
|
|
9
|
+
if (timeoutRef.current !== null) window.clearTimeout(timeoutRef.current);
|
|
10
|
+
setAnnouncement(message);
|
|
11
|
+
setPoliteness(level);
|
|
12
|
+
timeoutRef.current = window.setTimeout(() => {
|
|
13
|
+
setAnnouncement("");
|
|
14
|
+
}, 3e3);
|
|
15
|
+
}, []);
|
|
16
|
+
React.useEffect(() => {
|
|
17
|
+
return () => {
|
|
18
|
+
if (timeoutRef.current !== null) window.clearTimeout(timeoutRef.current);
|
|
19
|
+
};
|
|
20
|
+
}, []);
|
|
21
|
+
return {
|
|
22
|
+
announce,
|
|
23
|
+
announcement,
|
|
24
|
+
politeness
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { useScreenReaderAnnouncement };
|
|
30
|
+
//# sourceMappingURL=useScreenReaderAnnouncement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScreenReaderAnnouncement.js","names":[],"sources":["../../../../../src/components/screen-reader/hooks/useScreenReaderAnnouncement.ts"],"sourcesContent":["import React from \"react\";\n\nexport type PolitenessLevel = \"assertive\" | \"polite\";\n\nexport function useScreenReaderAnnouncement() {\n const [announcement, setAnnouncement] = React.useState(\"\");\n const [politeness, setPoliteness] = React.useState<PolitenessLevel>(\"polite\");\n // Use number type for browser compatibility\n const timeoutRef = React.useRef<null | number>(null);\n\n const announce = React.useCallback(\n (message: string, level: PolitenessLevel = \"polite\") => {\n // Clear any existing timeout\n if (timeoutRef.current !== null) {\n window.clearTimeout(timeoutRef.current);\n }\n\n // Set the announcement and politeness level\n setAnnouncement(message);\n setPoliteness(level);\n\n // Clear the announcement after a delay to prevent duplicate announcements\n timeoutRef.current = window.setTimeout(() => {\n setAnnouncement(\"\");\n }, 3000);\n },\n [],\n );\n\n // Clean up timeout on unmount\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current !== null) {\n window.clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return { announce, announcement, politeness };\n}\n"],"mappings":";;;AAIA,SAAgB,8BAA8B;CAC5C,MAAM,CAAC,cAAc,mBAAmB,MAAM,SAAS,GAAG;CAC1D,MAAM,CAAC,YAAY,iBAAiB,MAAM,SAA0B,SAAS;CAE7E,MAAM,aAAa,MAAM,OAAsB,KAAK;CAEpD,MAAM,WAAW,MAAM,aACpB,SAAiB,QAAyB,aAAa;AAEtD,MAAI,WAAW,YAAY,KACzB,QAAO,aAAa,WAAW,QAAQ;AAIzC,kBAAgB,QAAQ;AACxB,gBAAc,MAAM;AAGpB,aAAW,UAAU,OAAO,iBAAiB;AAC3C,mBAAgB,GAAG;KAClB,IAAK;IAEV,EAAE,CACH;AAGD,OAAM,gBAAgB;AACpB,eAAa;AACX,OAAI,WAAW,YAAY,KACzB,QAAO,aAAa,WAAW,QAAQ;;IAG1C,EAAE,CAAC;AAEN,QAAO;EAAE;EAAU;EAAc;EAAY"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FooterEnvironment } from "./types/footer.js";
|
|
2
|
+
import { BaseRecord } from "@refinedev/core";
|
|
3
|
+
|
|
4
|
+
//#region src/components/shared/UnifiedFooter.d.ts
|
|
5
|
+
interface UnifiedFooterProps<T extends BaseRecord = any> {
|
|
6
|
+
className?: string;
|
|
7
|
+
config: any;
|
|
8
|
+
environment: Partial<FooterEnvironment<T>>;
|
|
9
|
+
}
|
|
10
|
+
declare function UnifiedFooter<T extends BaseRecord = any>({
|
|
11
|
+
className,
|
|
12
|
+
config,
|
|
13
|
+
environment
|
|
14
|
+
}: UnifiedFooterProps<T>): any;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { UnifiedFooter };
|
|
17
|
+
//# sourceMappingURL=UnifiedFooter.d.ts.map
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { ActionItemType } from "../actions/types.js";
|
|
2
|
+
import { createActionHelpers, createDialogActions, createFormActions, createStepActions, createWizardActions, evaluateSubmitLabel } from "../actions/actionHelpers.js";
|
|
3
|
+
import { isActionButtonsFunction } from "../form/types.js";
|
|
4
|
+
import { FooterContextProvider, useOptionalFooterContext } from "./context/FooterContext.js";
|
|
5
|
+
import { isDialogContainer } from "./types/container.js";
|
|
6
|
+
import { isSimpleForm, isStepForm, isWizardForm } from "./types/form.js";
|
|
7
|
+
import { FooterType } from "./registry/types.js";
|
|
8
|
+
import { footerRegistry } from "./registry/FooterRegistry.js";
|
|
9
|
+
import { useEnvironmentSync } from "./hooks/useEnvironmentSync.js";
|
|
10
|
+
import "../index.js";
|
|
11
|
+
import React, { useMemo } from "react";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
|
|
14
|
+
//#region src/components/shared/UnifiedFooter.tsx
|
|
15
|
+
var ActionGeneratorRegistry = class {
|
|
16
|
+
generators = [];
|
|
17
|
+
generateActions(environment, submitLabel) {
|
|
18
|
+
for (const generator of this.generators) if (generator.checker(environment)) return generator.generator(environment, submitLabel);
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
register(generator) {
|
|
22
|
+
this.generators.push(generator);
|
|
23
|
+
this.generators.sort((a, b) => b.priority - a.priority);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const actionGeneratorRegistry = new ActionGeneratorRegistry();
|
|
27
|
+
actionGeneratorRegistry.register({
|
|
28
|
+
checker: (environment) => isDialogContainer(environment?.container) && environment.container?.dialogConfig?.type === "alert",
|
|
29
|
+
generator: (environment, submitLabel) => {
|
|
30
|
+
return createDialogActions({
|
|
31
|
+
cancelLabel: submitLabel || "Continue",
|
|
32
|
+
onCancel: environment?.container?.onClose,
|
|
33
|
+
type: "alert"
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
priority: 350
|
|
37
|
+
});
|
|
38
|
+
actionGeneratorRegistry.register({
|
|
39
|
+
checker: (environment) => isDialogContainer(environment?.container) && environment.container?.dialogConfig?.type === "confirm",
|
|
40
|
+
generator: (environment, submitLabel) => {
|
|
41
|
+
return createDialogActions({
|
|
42
|
+
cancelLabel: submitLabel || "Cancel",
|
|
43
|
+
confirmLabel: submitLabel || "Continue",
|
|
44
|
+
onCancel: (environment?.container)?.onClose,
|
|
45
|
+
onConfirm: ((environment?.container)?.dialogConfig)?.onConfirm,
|
|
46
|
+
type: "confirm"
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
priority: 325
|
|
50
|
+
});
|
|
51
|
+
actionGeneratorRegistry.register({
|
|
52
|
+
checker: (environment) => isWizardForm(environment?.form) && !!environment?.step,
|
|
53
|
+
generator: (environment, submitLabel) => {
|
|
54
|
+
const step = environment?.step;
|
|
55
|
+
return createWizardActions({
|
|
56
|
+
isFirst: step?.isFirst,
|
|
57
|
+
isLast: step?.isLast,
|
|
58
|
+
isSubmitting: environment?.form?.isSubmitting,
|
|
59
|
+
onClose: environment?.container?.onClose,
|
|
60
|
+
onNext: environment?.form?.methods?.handleSubmit,
|
|
61
|
+
onPrevious: step?.onPrevious,
|
|
62
|
+
onSubmit: environment?.form?.methods?.handleSubmit,
|
|
63
|
+
submitLabel: submitLabel || "Submit"
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
priority: 500
|
|
67
|
+
});
|
|
68
|
+
actionGeneratorRegistry.register({
|
|
69
|
+
checker: (environment) => isStepForm(environment?.form) && !!environment?.step,
|
|
70
|
+
generator: (environment, submitLabel) => {
|
|
71
|
+
const step = environment?.step;
|
|
72
|
+
return createStepActions({
|
|
73
|
+
isFirst: step?.isFirst,
|
|
74
|
+
isLast: step?.isLast,
|
|
75
|
+
isSubmitting: environment?.form?.isSubmitting,
|
|
76
|
+
onClose: environment?.container?.onClose,
|
|
77
|
+
onNext: step?.onNext,
|
|
78
|
+
onPrevious: step?.onPrevious,
|
|
79
|
+
submitLabel: submitLabel || "Submit"
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
priority: 400
|
|
83
|
+
});
|
|
84
|
+
actionGeneratorRegistry.register({
|
|
85
|
+
checker: (environment) => isDialogContainer(environment?.container) && !isSimpleForm(environment?.form),
|
|
86
|
+
generator: (environment, submitLabel) => {
|
|
87
|
+
return createDialogActions({
|
|
88
|
+
cancelLabel: submitLabel || "Done",
|
|
89
|
+
onCancel: environment?.container?.onClose,
|
|
90
|
+
type: "confirm"
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
priority: 300
|
|
94
|
+
});
|
|
95
|
+
actionGeneratorRegistry.register({
|
|
96
|
+
checker: (environment) => !!environment?.form && !isWizardForm(environment?.form) && !isStepForm(environment?.form),
|
|
97
|
+
generator: (environment, submitLabel) => {
|
|
98
|
+
return createFormActions({
|
|
99
|
+
isSubmitting: environment?.form?.isSubmitting,
|
|
100
|
+
onCancel: isDialogContainer(environment?.container) ? environment?.container?.onClose : void 0,
|
|
101
|
+
onSubmit: environment?.form?.methods?.handleSubmit,
|
|
102
|
+
showCancel: isDialogContainer(environment?.container) && !!environment?.container?.onClose,
|
|
103
|
+
submitLabel
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
priority: 200
|
|
107
|
+
});
|
|
108
|
+
actionGeneratorRegistry.register({
|
|
109
|
+
checker: (environment) => !!environment?.form,
|
|
110
|
+
generator: (environment, submitLabel) => {
|
|
111
|
+
const { submit } = createActionHelpers();
|
|
112
|
+
return [submit(environment?.form?.methods?.handleSubmit, submitLabel, environment?.form?.isSubmitting)];
|
|
113
|
+
},
|
|
114
|
+
priority: 100
|
|
115
|
+
});
|
|
116
|
+
function UnifiedFooter({ className, config, environment }) {
|
|
117
|
+
config && useEnvironmentSync(environment, config.environmentSync);
|
|
118
|
+
return /* @__PURE__ */ jsx(FooterContextProvider, {
|
|
119
|
+
value: environment,
|
|
120
|
+
children: /* @__PURE__ */ jsx(UnifiedFooterInner, {
|
|
121
|
+
className,
|
|
122
|
+
config
|
|
123
|
+
})
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function generateDefaultActions(environment, submitLabel) {
|
|
127
|
+
return actionGeneratorRegistry.generateActions(environment, submitLabel);
|
|
128
|
+
}
|
|
129
|
+
function UnifiedFooterInner({ className, config }) {
|
|
130
|
+
const environment = useOptionalFooterContext();
|
|
131
|
+
config && useEnvironmentSync(environment, config.environmentSync);
|
|
132
|
+
const footerType = footerRegistry.resolveType(config, environment);
|
|
133
|
+
const FooterComponent = footerRegistry.get(footerType);
|
|
134
|
+
const submitLabel = useMemo(() => {
|
|
135
|
+
if (environment.form && isWizardForm(environment?.form) && environment.step) {
|
|
136
|
+
const currentStepIndex = environment.step.current - 1;
|
|
137
|
+
const currentStep = config.steps?.[currentStepIndex];
|
|
138
|
+
if (currentStep?.submitLabel) {
|
|
139
|
+
const evaluationContext = {
|
|
140
|
+
formMethods: environment.form?.methods,
|
|
141
|
+
stepContext: {
|
|
142
|
+
currentStep: currentStepIndex,
|
|
143
|
+
isLastStep: environment.step.isLast
|
|
144
|
+
},
|
|
145
|
+
wizardConfig: config
|
|
146
|
+
};
|
|
147
|
+
const evaluatedLabel = evaluateSubmitLabel(currentStep.submitLabel, evaluationContext);
|
|
148
|
+
if (evaluatedLabel !== void 0) return String(evaluatedLabel);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const evaluatedLabel = evaluateSubmitLabel(config && "submitLabel" in config ? config.submitLabel : void 0, {
|
|
152
|
+
formMethods: environment.form?.methods,
|
|
153
|
+
stepContext: environment.step ? {
|
|
154
|
+
currentStep: environment.step.current - 1,
|
|
155
|
+
isLastStep: environment.step.isLast
|
|
156
|
+
} : void 0,
|
|
157
|
+
wizardConfig: environment.form && isWizardForm(environment.form) && environment.step ? config : void 0
|
|
158
|
+
});
|
|
159
|
+
if (evaluatedLabel !== void 0) return String(evaluatedLabel);
|
|
160
|
+
}, [config, environment]);
|
|
161
|
+
const actions = useMemo(() => {
|
|
162
|
+
let baseActions = void 0;
|
|
163
|
+
if (environment.form && isWizardForm(environment.form) && environment.step) {
|
|
164
|
+
const currentStepIndex = environment.step.current - 1;
|
|
165
|
+
const currentStep = config.steps?.[currentStepIndex];
|
|
166
|
+
if (currentStep?.actionButtons !== void 0) baseActions = currentStep.actionButtons;
|
|
167
|
+
}
|
|
168
|
+
if (baseActions === void 0) baseActions = config && "actionButtons" in config ? config.actionButtons : void 0;
|
|
169
|
+
if (config && Array.isArray(config.footer)) baseActions = config.footer;
|
|
170
|
+
if (isActionButtonsFunction(baseActions)) {
|
|
171
|
+
const evaluatedActions = baseActions({ environment });
|
|
172
|
+
if (evaluatedActions === false) return [];
|
|
173
|
+
if (evaluatedActions === void 0) return generateDefaultActions(environment, submitLabel);
|
|
174
|
+
return evaluatedActions.map((action) => ({
|
|
175
|
+
...action,
|
|
176
|
+
loading: action.type === "submit" && environment.form?.isSubmitting,
|
|
177
|
+
onClick: action.type === "submit" ? environment.form?.methods?.handleSubmit : action.onClick
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
if (config && Array.isArray(config.footer)) baseActions = config.footer;
|
|
181
|
+
if (baseActions === false) return [];
|
|
182
|
+
if (!baseActions) return generateDefaultActions(environment, submitLabel);
|
|
183
|
+
return baseActions.map((action) => ({
|
|
184
|
+
...action,
|
|
185
|
+
loading: action.type === "submit" && environment.form?.isSubmitting,
|
|
186
|
+
onClick: action.type === "submit" ? environment.form?.methods?.handleSubmit : action.onClick
|
|
187
|
+
}));
|
|
188
|
+
}, [
|
|
189
|
+
config,
|
|
190
|
+
environment,
|
|
191
|
+
submitLabel
|
|
192
|
+
]);
|
|
193
|
+
const needsFormProps = ["form", "step_form"].includes(footerType);
|
|
194
|
+
const baseProps = {
|
|
195
|
+
actionButtons: actions,
|
|
196
|
+
className,
|
|
197
|
+
environment,
|
|
198
|
+
isSubmitting: environment.form?.isSubmitting ?? false,
|
|
199
|
+
onClose: environment.container && isDialogContainer(environment.container) ? environment.container.onClose : void 0
|
|
200
|
+
};
|
|
201
|
+
return /* @__PURE__ */ jsx(FooterComponent, { ...needsFormProps ? {
|
|
202
|
+
...baseProps,
|
|
203
|
+
onConfirm: environment.form?.methods?.handleSubmit,
|
|
204
|
+
submitLabel
|
|
205
|
+
} : baseProps });
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
export { UnifiedFooter };
|
|
210
|
+
//# sourceMappingURL=UnifiedFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnifiedFooter.js","names":[],"sources":["../../../../src/components/shared/UnifiedFooter.tsx"],"sourcesContent":["import type { BaseRecord } from \"@refinedev/core\";\n\nimport React, { useMemo } from \"react\";\n\nimport { FooterType } from \"./registry/types\";\n\nimport {\n ConfirmDialogConfig,\n DialogContainerEnvironment,\n isActionButtonsFunction,\n} from \"@/components\";\nimport {\n ActionItemConfig,\n ActionItemType,\n createActionHelpers,\n createDialogActions,\n createFormActions,\n createStepActions,\n createWizardActions,\n evaluateSubmitLabel,\n type SubmitLabelEvaluationContext,\n} from \"@/components\";\nimport {\n FooterContextProvider,\n useOptionalFooterContext,\n} from \"./context/FooterContext\";\nimport { footerRegistry } from \"./registry/FooterRegistry\";\nimport {\n BaseFooterProps,\n FooterEnvironment,\n isDialogContainer,\n isWizardForm,\n isStepForm,\n isSimpleForm,\n} from \"./types\";\nimport { useEnvironmentSync } from \"./hooks/useEnvironmentSync\";\n\n// Action generator registry pattern\ninterface ActionGenerator<T extends BaseRecord = any> {\n checker: (environment: Partial<FooterEnvironment<T>>) => boolean;\n generator: (\n environment: Partial<FooterEnvironment<T>>,\n submitLabel: string,\n ) => ActionItemConfig[];\n priority: number;\n}\n\nclass ActionGeneratorRegistry<T extends BaseRecord = any> {\n private generators: ActionGenerator<T>[] = [];\n\n generateActions(\n environment: Partial<FooterEnvironment<T>>,\n submitLabel: string,\n ): ActionItemConfig[] {\n for (const generator of this.generators) {\n if (generator.checker(environment)) {\n // Return actions from first matching generator only\n return generator.generator(environment, submitLabel);\n }\n }\n\n return [];\n }\n\n register(generator: ActionGenerator<T>): void {\n this.generators.push(generator);\n // Sort by priority (higher priority first)\n this.generators.sort((a, b) => b.priority - a.priority);\n }\n}\n\n// Create registry instance\nconst actionGeneratorRegistry = new ActionGeneratorRegistry();\n\n// Register alert dialog action generator (highest priority)\nactionGeneratorRegistry.register({\n checker: (environment) =>\n isDialogContainer(environment?.container) &&\n environment.container?.dialogConfig?.type === \"alert\",\n generator: (environment, submitLabel) => {\n return createDialogActions({\n cancelLabel: submitLabel || \"Continue\",\n onCancel: environment?.container?.onClose,\n type: \"alert\",\n });\n },\n priority: 350,\n});\n\n// Register confirm dialog action generator (high priority)\nactionGeneratorRegistry.register({\n checker: (environment) =>\n isDialogContainer(environment?.container) &&\n environment.container?.dialogConfig?.type === \"confirm\",\n generator: (environment, submitLabel) => {\n return createDialogActions({\n cancelLabel: submitLabel || \"Cancel\",\n confirmLabel: submitLabel || \"Continue\",\n onCancel: (environment?.container as DialogContainerEnvironment)?.onClose,\n onConfirm: (\n (environment?.container as DialogContainerEnvironment)\n ?.dialogConfig as ConfirmDialogConfig\n )?.onConfirm,\n type: \"confirm\",\n });\n },\n priority: 325,\n});\n\n// Register wizard form navigation action generator (most specific)\nactionGeneratorRegistry.register({\n checker: (environment) =>\n isWizardForm(environment?.form) && !!environment?.step,\n generator: (environment, submitLabel) => {\n const step = environment?.step;\n\n return createWizardActions({\n isFirst: step?.isFirst,\n isLast: step?.isLast,\n isSubmitting: environment?.form?.isSubmitting,\n onClose: environment?.container?.onClose,\n onNext: environment?.form?.methods?.handleSubmit,\n onPrevious: step?.onPrevious,\n onSubmit: environment?.form?.methods?.handleSubmit,\n submitLabel: submitLabel || \"Submit\",\n });\n },\n priority: 500,\n});\n\n// Register step form navigation action generator\nactionGeneratorRegistry.register({\n checker: (environment) =>\n isStepForm(environment?.form) && !!environment?.step,\n generator: (environment, submitLabel) => {\n const step = environment?.step;\n\n return createStepActions({\n isFirst: step?.isFirst,\n isLast: step?.isLast,\n isSubmitting: environment?.form?.isSubmitting,\n onClose: environment?.container?.onClose,\n onNext: step?.onNext,\n onPrevious: step?.onPrevious,\n submitLabel: submitLabel || \"Submit\",\n });\n },\n priority: 400,\n});\n\n// Register dialog cancel action generator\nactionGeneratorRegistry.register({\n checker: (environment) =>\n isDialogContainer(environment?.container) &&\n !isSimpleForm(environment?.form),\n generator: (environment, submitLabel) => {\n return createDialogActions({\n cancelLabel: submitLabel || \"Done\",\n onCancel: environment?.container?.onClose,\n type: \"confirm\",\n });\n },\n priority: 300,\n});\n\n// Register form footer action generator\nactionGeneratorRegistry.register({\n checker: (environment) =>\n !!environment?.form &&\n !isWizardForm(environment?.form) &&\n !isStepForm(environment?.form),\n generator: (environment, submitLabel) => {\n return createFormActions({\n isSubmitting: environment?.form?.isSubmitting,\n onCancel: isDialogContainer(environment?.container)\n ? environment?.container?.onClose\n : undefined,\n onSubmit: environment?.form?.methods?.handleSubmit,\n showCancel:\n isDialogContainer(environment?.container) &&\n !!environment?.container?.onClose,\n submitLabel,\n });\n },\n priority: 200,\n});\n\n// Register simple form submit action generator (most broad)\nactionGeneratorRegistry.register({\n checker: (environment) => !!environment?.form,\n generator: (environment, submitLabel) => {\n const { submit } = createActionHelpers();\n return [\n submit(\n environment?.form?.methods?.handleSubmit,\n submitLabel,\n environment?.form?.isSubmitting,\n ),\n ];\n },\n priority: 100,\n});\n\ninterface UnifiedFooterProps<T extends BaseRecord = any> {\n className?: string;\n config: any;\n environment: Partial<FooterEnvironment<T>>;\n}\n\nexport function UnifiedFooter<T extends BaseRecord = any>({\n className,\n config,\n environment,\n}: UnifiedFooterProps<T>) {\n // Implement environment sync mechanism\n config && useEnvironmentSync(environment, config.environmentSync);\n\n return (\n <FooterContextProvider value={environment}>\n <UnifiedFooterInner className={className} config={config} />\n </FooterContextProvider>\n );\n}\n\nfunction generateDefaultActions<T extends BaseRecord = any>(\n environment: Partial<FooterEnvironment<T>>,\n submitLabel: string,\n): ActionItemConfig[] {\n return actionGeneratorRegistry.generateActions(environment, submitLabel);\n}\n\nfunction UnifiedFooterInner<T extends BaseRecord = any>({\n className,\n config,\n}: Omit<UnifiedFooterProps<T>, \"environment\">) {\n const environment = useOptionalFooterContext<T>();\n\n // Implement environment sync mechanism\n config && useEnvironmentSync(environment, config.environmentSync);\n\n const footerType = footerRegistry.resolveType(config, environment);\n const FooterComponent = footerRegistry.get(footerType);\n\n // Smart submit label evaluation\n const submitLabel = useMemo(() => {\n // Check if we're in a step context and if the current step has a submitLabel\n if (\n environment.form &&\n isWizardForm(environment?.form) &&\n environment.step\n ) {\n const currentStepIndex = environment.step.current - 1;\n const currentStep = config.steps?.[currentStepIndex];\n\n if (currentStep?.submitLabel) {\n // Create typed evaluation context for step-specific submit label\n const evaluationContext: SubmitLabelEvaluationContext = {\n formMethods: environment.form?.methods,\n stepContext: {\n currentStep: currentStepIndex,\n isLastStep: environment.step.isLast,\n },\n wizardConfig: config,\n };\n\n // Evaluate step-specific submit label and ensure it's a string\n const evaluatedLabel = evaluateSubmitLabel(\n currentStep.submitLabel,\n evaluationContext,\n );\n if (evaluatedLabel !== undefined) {\n return String(evaluatedLabel);\n }\n }\n }\n\n // Fallback to form-level submit label\n const label =\n config && \"submitLabel\" in config ? config.submitLabel : undefined;\n\n // Create typed evaluation context\n const evaluationContext: SubmitLabelEvaluationContext = {\n formMethods: environment.form?.methods,\n stepContext: environment.step\n ? {\n currentStep: environment.step.current - 1, // Convert to 0-based index for steps array\n isLastStep: environment.step.isLast,\n }\n : undefined,\n wizardConfig:\n environment.form && isWizardForm(environment.form) && environment.step\n ? config\n : undefined,\n };\n\n // Use enhanced evaluateSubmitLabel helper with typed context\n const evaluatedLabel = evaluateSubmitLabel(label, evaluationContext);\n\n // Ensure submitLabel is always a string with a safe default\n if (evaluatedLabel !== undefined) {\n return String(evaluatedLabel);\n }\n }, [config, environment]);\n\n // Smart action mapping\n const actions = useMemo(() => {\n let baseActions: any = undefined;\n\n // Check if we're in a step context and if the current step has actionButtons\n if (\n environment.form &&\n isWizardForm(environment.form) &&\n environment.step\n ) {\n const currentStepIndex = environment.step.current - 1;\n const currentStep = config.steps?.[currentStepIndex];\n\n if (currentStep?.actionButtons !== undefined) {\n baseActions = currentStep.actionButtons;\n }\n }\n\n // Fallback to form-level actionButtons if step doesn't have them\n if (baseActions === undefined) {\n baseActions =\n config && \"actionButtons\" in config ? config.actionButtons : undefined;\n }\n\n // Check if the footer config has an actions array\n if (config && Array.isArray(config.footer)) {\n baseActions = config.footer;\n }\n\n // Check if baseActions is a function and evaluate it\n if (isActionButtonsFunction(baseActions)) {\n const evaluatedActions = baseActions({\n environment,\n });\n\n // If function returns false, disable actions\n if (evaluatedActions === false) {\n return [];\n }\n\n // If function returns undefined, fallback to default actions\n if (evaluatedActions === undefined) {\n return generateDefaultActions(environment, submitLabel);\n }\n\n // If function returns action array, use those actions\n return evaluatedActions.map((action) => ({\n ...action,\n loading:\n action.type === ActionItemType.SUBMIT &&\n environment.form?.isSubmitting,\n onClick:\n action.type === ActionItemType.SUBMIT\n ? environment.form?.methods?.handleSubmit\n : action.onClick,\n }));\n }\n\n // Check if the footer config has an actions array\n if (config && Array.isArray(config.footer)) {\n baseActions = config.footer;\n }\n\n // If baseActions false, disable actions\n if (baseActions === false) {\n return [];\n }\n\n if (!baseActions) {\n return generateDefaultActions(environment, submitLabel);\n }\n\n return baseActions.map((action) => ({\n ...action,\n loading:\n action.type === ActionItemType.SUBMIT && environment.form?.isSubmitting,\n onClick:\n action.type === ActionItemType.SUBMIT\n ? environment.form?.methods?.handleSubmit\n : action.onClick,\n }));\n }, [config, environment, submitLabel]);\n\n // Determine if footer type needs form-specific props\n const needsFormProps = [FooterType.FORM, FooterType.STEP_FORM].includes(\n footerType,\n );\n\n const baseProps: BaseFooterProps<T> = {\n actionButtons: actions,\n className,\n environment,\n isSubmitting: environment.form?.isSubmitting ?? false,\n onClose:\n environment.container && isDialogContainer(environment.container)\n ? environment.container.onClose\n : undefined,\n };\n\n // Explicitly handle props based on footer type\n const props = needsFormProps\n ? {\n ...baseProps,\n onConfirm: environment.form?.methods?.handleSubmit,\n submitLabel,\n }\n : baseProps;\n\n return <FooterComponent {...props} />;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DialogConfig } from "../dialog/Dialog.types.js";
|
|
2
|
+
import { BaseRecord } from "@refinedev/core";
|
|
3
|
+
|
|
4
|
+
//#region src/components/shared/UnifiedHeader.d.ts
|
|
5
|
+
interface UnifiedHeaderProps<T extends BaseRecord = any> {
|
|
6
|
+
className?: string;
|
|
7
|
+
config: any | DialogConfig<T>;
|
|
8
|
+
environment: any;
|
|
9
|
+
}
|
|
10
|
+
declare function UnifiedHeader<T extends BaseRecord = any>({
|
|
11
|
+
className,
|
|
12
|
+
config,
|
|
13
|
+
environment
|
|
14
|
+
}: UnifiedHeaderProps<T>): any;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { UnifiedHeader };
|
|
17
|
+
//# sourceMappingURL=UnifiedHeader.d.ts.map
|