@jmruthers/pace-core 0.6.9 → 0.6.10
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/audit-tool/audits/02-project-structure.cjs +62 -0
- package/audit-tool/audits/03-architecture.cjs +145 -19
- package/audit-tool/audits/04-code-quality.cjs +86 -1
- package/audit-tool/audits/06-security-rbac.cjs +109 -11
- package/cursor-rules/02-project-structure.mdc +2 -26
- package/cursor-rules/05-styling.mdc +84 -6
- package/cursor-rules/06-security-rbac.mdc +124 -1
- package/dist/{DataTable-SOAFXIWY.js → DataTable-SAXFG4XI.js} +11 -13
- package/dist/{AuthService-DmfO5rGS.d.ts → InactivityServiceProvider-DHryoh6K.d.ts} +24 -249
- package/dist/UnifiedAuthProvider-BBD2PS3Q.js +7 -0
- package/dist/{UnifiedAuthProvider-CKvHP1MK.d.ts → UnifiedAuthProvider-CiBAl9-s.d.ts} +34 -22
- package/dist/{api-7P7DI652.js → api-F47QJ7FX.js} +3 -3
- package/dist/assets/app-icons/admin_favicon.svg +462 -0
- package/dist/assets/app-icons/base_favicon.svg +85 -0
- package/dist/assets/app-icons/cake_favicon.svg +68 -0
- package/dist/assets/app-icons/core_favicon.svg +256 -0
- package/dist/assets/app-icons/gear_favicon.svg +91 -0
- package/dist/assets/app-icons/medi_favicon.svg +92 -0
- package/dist/assets/app-icons/mint_favicon.svg +83 -0
- package/dist/assets/app-icons/pace_favicon.svg +49 -0
- package/dist/assets/app-icons/pump_favicon.svg +68 -0
- package/dist/assets/app-icons/seed_favicon.svg +91 -0
- package/dist/assets/app-icons/team_favicon.svg +67 -0
- package/dist/assets/app-icons/trac_favicon.svg +112 -0
- package/dist/assets/app-icons/trip_favicon.svg +102 -0
- package/dist/audit-Z6ZZBWLU.js +3 -0
- package/dist/chunk-3GWSPISD.js +61 -0
- package/dist/{chunk-4DDCYDQ3.js → chunk-66R6RLUZ.js} +12 -27
- package/dist/{chunk-FYHN4DD5.js → chunk-7YDC7LMU.js} +80 -8
- package/dist/{chunk-S7DKJPLT.js → chunk-BCTXBU6U.js} +22 -17
- package/dist/{chunk-TTRFSOKR.js → chunk-BTHN5MKC.js} +4 -4
- package/dist/{chunk-A3W6LW53.js → chunk-DDMPHZ3D.js} +6 -18
- package/dist/{chunk-MPBLMWVR.js → chunk-FBZ7U3ID.js} +140 -92
- package/dist/chunk-FN52B75D.js +246 -0
- package/dist/{chunk-5W2A3DRC.js → chunk-JJEYZ3DX.js} +5 -4
- package/dist/chunk-KPYQWGFQ.js +183 -0
- package/dist/{chunk-C7ZQ5O4C.js → chunk-KSNLMI7N.js} +3 -3
- package/dist/chunk-KYURMOQM.js +977 -0
- package/dist/{chunk-LX6U42O3.js → chunk-LNHFAF4X.js} +160 -58
- package/dist/{chunk-J2U36LHD.js → chunk-MPY44PWB.js} +620 -627
- package/dist/{chunk-AHU7G2R5.js → chunk-NIU6DPQV.js} +10 -6
- package/dist/{chunk-HF6O3O37.js → chunk-RMLY6KB5.js} +1 -1
- package/dist/{chunk-6GLLNA6U.js → chunk-SACF5YSM.js} +1 -1
- package/dist/{chunk-5HNSDQWH.js → chunk-TFIPNIPE.js} +865 -532
- package/dist/{chunk-OJ4SKRSV.js → chunk-UZNAFKGW.js} +25 -5
- package/dist/chunk-W46INAVW.js +1216 -0
- package/dist/chunk-X5EAU5G7.js +793 -0
- package/dist/{chunk-T5CVK4R3.js → chunk-Y4PF6HIM.js} +110 -64
- package/dist/components.d.ts +8 -86
- package/dist/components.js +21 -55
- package/dist/eslint-rules/rules/05-styling.cjs +507 -0
- package/dist/eslint-rules/rules/06-security-rbac.cjs +10 -0
- package/dist/{event-CW5YB_2p.d.ts → event-WTAQuGcq.d.ts} +1 -1
- package/dist/{functions-lBy5L2ry.d.ts → functions-DH45k8ec.d.ts} +1 -1
- package/dist/hooks.d.ts +11 -10
- package/dist/hooks.js +69 -44
- package/dist/index.d.ts +379 -31
- package/dist/index.js +46 -32
- package/dist/papaparseLoader-WG2UXQ22.js +7 -0
- package/dist/providers.d.ts +28 -14
- package/dist/providers.js +5 -5
- package/dist/rbac/eslint-rules.js +2 -2
- package/dist/rbac/index.d.ts +57 -213
- package/dist/rbac/index.js +11 -11
- package/dist/theming/runtime.d.ts +9 -3
- package/dist/theming/runtime.js +2 -2
- package/dist/{timezone-0AyangqX.d.ts → timezone-K-ptz3HO.d.ts} +21 -22
- package/dist/{types-t9H8qKRw.d.ts → types-BE2sEHKd.d.ts} +1 -1
- package/dist/{types-BeoeWV5I.d.ts → types-CvOPXWWZ.d.ts} +6 -5
- package/dist/{types-DXstZpNI.d.ts → types-D05dCGma.d.ts} +56 -149
- package/dist/types-Dr8sNhER.d.ts +50 -0
- package/dist/types.d.ts +4 -4
- package/dist/{PublicPageProvider-CIGSujI2.d.ts → usePublicPageContext-vxBlEHO9.d.ts} +294 -151
- package/dist/{usePublicRouteParams-DQLrDqDb.d.ts → usePublicRouteParams-G3Ks53mk.d.ts} +7 -6
- package/dist/utils.d.ts +300 -136
- package/dist/utils.js +42 -41
- package/dist/{validation-643vUDZW.d.ts → validation-g5n0hDkh.d.ts} +2 -2
- package/docs/api/modules.md +542 -549
- package/docs/api-reference/components.md +5 -5
- package/docs/implementation-guides/data-tables.md +190 -8
- package/docs/rbac/RBAC_CONTRACT.md +0 -12
- package/docs/standards/2-project-structure-standards.md +12 -74
- package/docs/standards/6-security-rbac-standards.md +222 -7
- package/docs/standards/7-api-tech-stack-standards.md +91 -3
- package/docs/testing/README.md +10 -0
- package/docs/testing/test-setup-for-consumers.md +914 -0
- package/eslint-config-pace-core.cjs +4 -0
- package/package.json +1 -1
- package/scripts/eslint-audit.cjs +110 -11
- package/src/__mocks__/lucide-react.ts +0 -2
- package/src/__tests__/helpers/__tests__/test-utils.test.tsx +0 -2
- package/src/__tests__/index.test.ts +532 -0
- package/src/__tests__/integration/UserProfile.test.tsx +1 -1
- package/src/__tests__/rbac/PagePermissionGuard.test.tsx +10 -8
- package/src/__tests__/rls-policies.test.ts +3 -2
- package/src/assets/app-icons/admin_favicon.svg +462 -0
- package/src/assets/app-icons/base_favicon.svg +85 -0
- package/src/assets/app-icons/cake_favicon.svg +68 -0
- package/src/assets/app-icons/core_favicon.svg +256 -0
- package/src/assets/app-icons/gear_favicon.svg +91 -0
- package/src/assets/app-icons/index.ts +83 -0
- package/src/assets/app-icons/medi_favicon.svg +92 -0
- package/src/assets/app-icons/mint_favicon.svg +83 -0
- package/src/assets/app-icons/pace_favicon.svg +49 -0
- package/src/assets/app-icons/pump_favicon.svg +68 -0
- package/src/assets/app-icons/seed_favicon.svg +91 -0
- package/src/assets/app-icons/team_favicon.svg +67 -0
- package/src/assets/app-icons/trac_favicon.svg +112 -0
- package/src/assets/app-icons/trip_favicon.svg +102 -0
- package/src/components/AddressField/AddressField.test.tsx +378 -3
- package/src/components/AddressField/AddressField.tsx +2 -2
- package/src/components/AddressField/types.ts +2 -2
- package/src/components/Alert/Alert.test.tsx +35 -25
- package/src/components/Alert/Alert.tsx +8 -8
- package/src/components/AppSwitcher/AppSwitcher.test.tsx +1250 -0
- package/src/components/AppSwitcher/AppSwitcher.tsx +315 -0
- package/src/components/Avatar/Avatar.test.tsx +11 -1
- package/src/components/Avatar/Avatar.tsx +3 -2
- package/src/components/Badge/Badge.test.tsx +11 -1
- package/src/components/Button/Button.test.tsx +13 -3
- package/src/components/Calendar/Calendar.test.tsx +523 -131
- package/src/components/Calendar/Calendar.tsx +107 -488
- package/src/components/Card/Card.test.tsx +220 -249
- package/src/components/Checkbox/Checkbox.test.tsx +58 -174
- package/src/components/ContextSelector/ContextSelector.tsx +3 -3
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +360 -0
- package/src/components/DataTable/DataTable.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +1 -1
- package/src/components/DataTable/__tests__/DataTable.export.test.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +1 -1
- package/src/components/DataTable/__tests__/DataTable.select-label-display.test.tsx +16 -14
- package/src/components/DataTable/__tests__/DataTable.test.tsx +2 -2
- package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +1 -1
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +76 -580
- package/src/components/DataTable/__tests__/README.md +1 -1
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +1 -1
- package/src/components/DataTable/__tests__/keyboard.test.tsx +1 -1
- package/src/components/DataTable/__tests__/pagination.modes.test.tsx +1 -3
- package/src/components/DataTable/__tests__/ssr.strict-mode.test.tsx +0 -6
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +14 -6
- package/src/components/DataTable/components/ActionButtons.tsx +9 -4
- package/src/components/DataTable/components/BulkOperationsDropdown.tsx +3 -3
- package/src/components/DataTable/components/ColumnFilter.tsx +2 -7
- package/src/components/DataTable/components/DataTableCore.tsx +44 -52
- package/src/components/DataTable/components/DataTableLayout.tsx +37 -26
- package/src/components/DataTable/components/DataTableModals.tsx +118 -30
- package/src/components/DataTable/components/DataTableToolbar.tsx +2 -2
- package/src/components/DataTable/components/EditFields.tsx +6 -47
- package/src/components/DataTable/components/EditableRow.tsx +8 -8
- package/src/components/DataTable/components/EmptyState.tsx +6 -3
- package/src/components/DataTable/components/FilterRow.tsx +18 -11
- package/src/components/DataTable/components/GroupingDropdown.tsx +0 -1
- package/src/components/DataTable/components/ImportModal.tsx +305 -133
- package/src/components/DataTable/components/LoadingState.tsx +2 -2
- package/src/components/DataTable/components/PaginationControls.tsx +0 -4
- package/src/components/DataTable/components/RowComponent.tsx +42 -22
- package/src/components/DataTable/components/UnifiedTableBody.tsx +52 -12
- package/src/components/DataTable/components/__tests__/AccessDeniedPage.test.tsx +51 -463
- package/src/components/DataTable/components/__tests__/ActionButtons.test.tsx +122 -116
- package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +40 -68
- package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +9 -137
- package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.test.tsx +57 -17
- package/src/components/DataTable/components/__tests__/DataTableCore.test.tsx +792 -0
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +24 -65
- package/src/components/DataTable/components/__tests__/DataTableLayout.test.tsx +467 -0
- package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +8 -125
- package/src/components/DataTable/components/__tests__/DataTableToolbar.test.tsx +528 -56
- package/src/components/DataTable/components/__tests__/EditFields.test.tsx +526 -0
- package/src/components/DataTable/components/__tests__/EditableRow.test.tsx +1 -68
- package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +8 -25
- package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +3 -62
- package/src/components/DataTable/components/__tests__/GroupingDropdown.test.tsx +9 -14
- package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +50 -186
- package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +39 -97
- package/src/components/DataTable/components/__tests__/PaginationControls.test.tsx +13 -103
- package/src/components/DataTable/components/__tests__/RowComponent.test.tsx +629 -0
- package/src/components/DataTable/components/__tests__/SortIndicator.test.tsx +135 -0
- package/src/components/DataTable/components/__tests__/UnifiedTableBody.test.tsx +31 -171
- package/src/components/DataTable/components/__tests__/cellValueUtils.test.ts +453 -0
- package/src/components/DataTable/components/hooks/useImportModalFocus.test.ts +184 -0
- package/src/components/DataTable/components/hooks/usePermissionTracking.test.ts +381 -0
- package/src/components/DataTable/context/DataTableContext.tsx +9 -10
- package/src/components/DataTable/context/__tests__/DataTableContext.test.tsx +12 -26
- package/src/components/DataTable/core/ColumnFactory.ts +3 -3
- package/src/components/DataTable/core/ColumnManager.ts +0 -1
- package/src/components/DataTable/core/DataManager.ts +4 -2
- package/src/components/DataTable/core/LocalDataAdapter.ts +1 -1
- package/src/components/DataTable/core/PluginRegistry.ts +2 -2
- package/src/components/DataTable/core/__tests__/ActionManager.test.ts +114 -2
- package/src/components/DataTable/core/__tests__/ColumnFactory.test.ts +103 -5
- package/src/components/DataTable/core/__tests__/ColumnManager.test.ts +57 -0
- package/src/components/DataTable/core/__tests__/DataManager.test.ts +63 -0
- package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +42 -9
- package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +29 -7
- package/src/components/DataTable/core/__tests__/StateManager.test.ts +58 -4
- package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.test.ts +16 -21
- package/src/components/DataTable/hooks/__tests__/useColumnVisibilityPersistence.test.ts +93 -4
- package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +227 -54
- package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +215 -62
- package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +217 -39
- package/src/components/DataTable/hooks/__tests__/useDataTableState.test.ts +101 -6
- package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +157 -27
- package/src/components/DataTable/hooks/__tests__/useHierarchicalState.test.ts +80 -0
- package/src/components/DataTable/hooks/__tests__/useKeyboardNavigation.test.ts +787 -0
- package/src/components/DataTable/hooks/__tests__/useServerSideDataEffect.test.ts +258 -0
- package/src/components/DataTable/hooks/__tests__/useTableColumns.test.ts +128 -77
- package/src/components/DataTable/hooks/__tests__/useTableHandlers.test.ts +440 -0
- package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +12 -9
- package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +12 -9
- package/src/components/DataTable/hooks/useDataTableConfiguration.ts +1 -1
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +11 -22
- package/src/components/DataTable/hooks/useDataTableState.ts +20 -24
- package/src/components/DataTable/hooks/useKeyboardNavigation.ts +5 -5
- package/src/components/DataTable/hooks/useServerSideDataEffect.ts +13 -1
- package/src/components/DataTable/hooks/useTableColumns.ts +15 -39
- package/src/components/DataTable/hooks/useTableHandlers.ts +8 -20
- package/src/components/DataTable/index.ts +24 -2
- package/src/components/DataTable/types.ts +6 -3
- package/src/components/DataTable/utils/__tests__/a11yUtils.test.ts +3 -67
- package/src/components/DataTable/utils/__tests__/aggregationUtils.test.ts +288 -0
- package/src/components/DataTable/utils/__tests__/errorHandling.test.ts +3 -60
- package/src/components/DataTable/utils/__tests__/flexibleImport.test.ts +1 -1
- package/src/components/DataTable/utils/__tests__/hierarchicalSorting.test.ts +9 -21
- package/src/components/DataTable/utils/__tests__/hierarchicalUtils.test.ts +102 -86
- package/src/components/DataTable/utils/__tests__/paginationUtils.test.ts +593 -0
- package/src/components/DataTable/utils/__tests__/rowUtils.test.ts +33 -49
- package/src/components/DataTable/utils/__tests__/selectFieldUtils.test.ts +1 -0
- package/src/components/DataTable/utils/a11yUtils.ts +1 -1
- package/src/components/DataTable/utils/aggregationUtils.ts +5 -5
- package/src/components/DataTable/utils/errorHandling.ts +3 -1
- package/src/components/DataTable/utils/exportUtils.ts +1 -1
- package/src/components/DataTable/utils/flexibleImport.ts +2 -2
- package/src/components/DataTable/utils/hierarchicalSorting.ts +3 -3
- package/src/components/DataTable/utils/paginationUtils.ts +1 -1
- package/src/components/DataTable/utils/performanceUtils.ts +1 -1
- package/src/components/DataTable/utils/selectFieldUtils.ts +0 -7
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +17 -24
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +1 -1
- package/src/components/DateTimeField/DateTimeField.test.tsx +2 -15
- package/src/components/DateTimeField/DateTimeField.tsx +1 -1
- package/src/components/Dialog/Dialog.test.tsx +2007 -407
- package/src/components/Dialog/Dialog.tsx +97 -192
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +2 -62
- package/src/components/ErrorBoundary/ErrorBoundaryContext.context.ts +17 -0
- package/src/components/ErrorBoundary/ErrorBoundaryContext.tsx +2 -45
- package/src/components/ErrorBoundary/ErrorBoundaryContext.types.ts +41 -0
- package/src/components/ErrorBoundary/index.ts +3 -4
- package/src/components/ErrorBoundary/useErrorBoundaryContext.ts +20 -0
- package/src/components/FileDisplay/FileDisplay.test.tsx +454 -222
- package/src/components/FileDisplay/FileDisplay.tsx +14 -12
- package/src/components/FileDisplay/index.tsx +1 -1
- package/src/components/FileUpload/FileUpload.test.tsx +54 -18
- package/src/components/FileUpload/FileUpload.tsx +10 -7
- package/src/components/FileUpload/index.tsx +1 -1
- package/src/components/Footer/Footer.test.tsx +33 -114
- package/src/components/Form/Form.test.tsx +388 -68
- package/src/components/Form/Form.tsx +57 -42
- package/src/components/Header/Header.test.tsx +645 -154
- package/src/components/Header/Header.tsx +52 -43
- package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +35 -76
- package/src/components/Input/Input.test.tsx +34 -120
- package/src/components/Label/Label.test.tsx +47 -46
- package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +9 -12
- package/src/components/LoginForm/LoginForm.test.tsx +0 -1
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +1399 -82
- package/src/components/NavigationMenu/NavigationMenu.tsx +2 -2
- package/src/components/NavigationMenu/__tests__/useNavigationFiltering.test.ts +1934 -0
- package/src/components/NavigationMenu/useNavigationFiltering.ts +5 -15
- package/src/components/PaceAppLayout/PaceAppLayout.edge-cases.test.tsx +1307 -0
- package/src/components/PaceAppLayout/PaceAppLayout.integration.test.tsx +47 -46
- package/src/components/PaceAppLayout/PaceAppLayout.performance.test.tsx +81 -38
- package/src/components/PaceAppLayout/PaceAppLayout.security.test.tsx +87 -66
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +245 -39
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +14 -20
- package/src/components/PaceAppLayout/README.md +0 -9
- package/src/components/PaceAppLayout/test-setup.tsx +15 -9
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +759 -3
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +2 -3
- package/src/components/PasswordChange/PasswordChangeForm.test.tsx +1 -1
- package/src/components/Progress/Progress.test.tsx +127 -1
- package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +1196 -4
- package/src/components/ProtectedRoute/ProtectedRoute.tsx +24 -6
- package/src/components/PublicLayout/PublicLayout.test.tsx +1435 -14
- package/src/components/PublicLayout/PublicPageContext.ts +28 -0
- package/src/components/PublicLayout/PublicPageLayout.tsx +6 -6
- package/src/components/PublicLayout/PublicPageProvider.tsx +2 -41
- package/src/components/PublicLayout/usePublicPageContext.ts +36 -0
- package/src/components/Select/Select.test.tsx +46 -9
- package/src/components/Select/Select.tsx +31 -24
- package/src/components/Select/__tests__/context.test.tsx +56 -0
- package/src/components/Select/hooks/__tests__/useSelectEvents.test.ts +279 -0
- package/src/components/Select/hooks/__tests__/useSelectSearch.test.tsx +295 -0
- package/src/components/Select/hooks/__tests__/useSelectState.test.ts +254 -0
- package/src/components/Select/hooks/useSelectState.ts +16 -16
- package/src/components/Select/types.ts +3 -0
- package/src/components/Select/utils/__tests__/text.test.tsx +104 -0
- package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +28 -112
- package/src/components/Switch/Switch.test.tsx +57 -153
- package/src/components/Table/Table.test.tsx +47 -317
- package/src/components/Tabs/Tabs.tsx +3 -3
- package/src/components/Textarea/Textarea.test.tsx +11 -38
- package/src/components/Toast/Toast.test.tsx +78 -569
- package/src/components/Tooltip/Tooltip.test.tsx +4 -21
- package/src/components/UserMenu/UserMenu.test.tsx +1 -21
- package/src/components/UserMenu/UserMenu.tsx +0 -1
- package/src/components/__tests__/index.test.ts +346 -0
- package/src/components/index.ts +12 -1
- package/src/constants/__tests__/performance.test.ts +91 -0
- package/src/hooks/__tests__/ServiceHooks.test.tsx +239 -129
- package/src/hooks/__tests__/hooks.integration.test.tsx +4 -3
- package/src/hooks/__tests__/useApiFetch.unit.test.ts +1 -1
- package/src/hooks/__tests__/useAppConfig.unit.test.ts +88 -29
- package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +282 -98
- package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +53 -109
- package/src/hooks/__tests__/useDataTableState.test.ts +143 -49
- package/src/hooks/__tests__/useDebounce.unit.test.ts +94 -19
- package/src/hooks/__tests__/useEvents.unit.test.ts +100 -125
- package/src/hooks/__tests__/useFileDisplay.test.ts +540 -0
- package/src/hooks/__tests__/useFileDisplay.unit.test.ts +1 -4
- package/src/hooks/__tests__/useFileUrl.unit.test.ts +27 -247
- package/src/hooks/__tests__/useFileUrlCache.test.ts +246 -56
- package/src/hooks/__tests__/useFocusManagement.unit.test.ts +442 -68
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +345 -560
- package/src/hooks/__tests__/useFormDialog.test.ts +51 -222
- package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +1 -1
- package/src/hooks/__tests__/useKeyboardShortcuts.unit.test.ts +1 -4
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +0 -1
- package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +1 -1
- package/src/hooks/__tests__/usePermissionCache.test.ts +506 -0
- package/src/hooks/__tests__/usePreventTabReload.test.ts +255 -36
- package/src/hooks/__tests__/usePublicEvent.simple.test.ts +17 -8
- package/src/hooks/__tests__/usePublicEvent.test.ts +16 -24
- package/src/hooks/__tests__/usePublicEvent.unit.test.ts +12 -4
- package/src/hooks/__tests__/usePublicFileDisplay.test.ts +3 -6
- package/src/hooks/__tests__/usePublicRouteParams.unit.test.ts +1 -2
- package/src/hooks/__tests__/useQueryCache.test.ts +313 -66
- package/src/hooks/__tests__/useSessionDraft.test.ts +496 -103
- package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +2 -2
- package/src/hooks/__tests__/useStorage.unit.test.ts +72 -102
- package/src/hooks/__tests__/useToast.test.ts +413 -0
- package/src/hooks/__tests__/useToast.unit.test.tsx +1 -1
- package/src/hooks/__tests__/useZodForm.unit.test.tsx +175 -21
- package/src/hooks/index.ts +13 -1
- package/src/hooks/public/usePublicEvent.test.ts +304 -0
- package/src/hooks/public/usePublicEvent.ts +11 -11
- package/src/hooks/public/usePublicEventLogo.test.ts +655 -120
- package/src/hooks/public/usePublicEventLogo.ts +2 -2
- package/src/hooks/public/usePublicFileDisplay.test.ts +723 -0
- package/src/hooks/public/usePublicFileDisplay.ts +79 -49
- package/src/hooks/public/usePublicRouteParams.test.ts +595 -0
- package/src/hooks/public/usePublicRouteParams.ts +2 -2
- package/src/hooks/services/useAuthService.ts +1 -1
- package/src/hooks/services/useEventService.ts +1 -1
- package/src/hooks/useAccessibleApps.test.ts +400 -0
- package/src/hooks/useAccessibleApps.ts +264 -0
- package/src/hooks/useAddressAutocomplete.test.ts +165 -42
- package/src/hooks/useAddressAutocomplete.ts +41 -28
- package/src/hooks/useAppConfig.ts +13 -3
- package/src/hooks/useDataTablePerformance.ts +13 -12
- package/src/hooks/useDataTableState.ts +5 -5
- package/src/hooks/useEventTheme.test.ts +66 -17
- package/src/hooks/useEventTheme.ts +1 -1
- package/src/hooks/useEvents.ts +8 -1
- package/src/hooks/useFileDisplay.ts +66 -33
- package/src/hooks/useFileReference.test.ts +365 -87
- package/src/hooks/useFileReference.ts +2 -6
- package/src/hooks/useFileUrlCache.ts +4 -1
- package/src/hooks/useFormDialog.ts +2 -2
- package/src/hooks/useInactivityTracker.ts +3 -3
- package/src/hooks/useOrganisationPermissions.test.ts +1 -2
- package/src/hooks/useOrganisationPermissions.ts +1 -4
- package/src/hooks/useOrganisationSecurity.test.ts +1 -30
- package/src/hooks/useOrganisationSecurity.ts +3 -3
- package/src/hooks/useOrganisations.ts +1 -1
- package/src/hooks/usePerformanceMonitor.ts +1 -1
- package/src/hooks/usePermissionCache.ts +2 -6
- package/src/hooks/useQueryCache.ts +7 -7
- package/src/hooks/useSessionDraft.ts +14 -11
- package/src/hooks/useSessionRestoration.ts +1 -1
- package/src/hooks/useStorage.ts +75 -40
- package/src/hooks/useToast.ts +2 -2
- package/src/hooks/useZodForm.ts +3 -3
- package/src/icons/__tests__/index.test.ts +133 -0
- package/src/icons/index.ts +1 -1
- package/src/index.ts +43 -4
- package/src/providers/OrganisationProvider.test.tsx +40 -0
- package/src/providers/OrganisationProvider.tsx +5 -5
- package/src/providers/UnifiedAuthProvider.smoke.test.tsx +7 -12
- package/src/providers/__tests__/AuthProvider.test.tsx +22 -91
- package/src/providers/__tests__/EventProvider.test.tsx +16 -80
- package/src/providers/__tests__/InactivityProvider.test.tsx +29 -173
- package/src/providers/__tests__/OrganisationProvider.test.tsx +4 -5
- package/src/providers/__tests__/OrganisationProvider.wrapper.test.tsx +591 -0
- package/src/providers/__tests__/ProviderLifecycle.test.tsx +80 -196
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +40 -133
- package/src/providers/__tests__/index.test.ts +138 -0
- package/src/providers/services/AuthServiceContext.ts +27 -0
- package/src/providers/services/AuthServiceProvider.tsx +81 -20
- package/src/providers/services/EventServiceContext.ts +25 -0
- package/src/providers/services/EventServiceProvider.tsx +11 -20
- package/src/providers/services/InactivityServiceContext.ts +25 -0
- package/src/providers/services/InactivityServiceProvider.tsx +7 -17
- package/src/providers/services/OrganisationServiceContext.ts +25 -0
- package/src/providers/services/OrganisationServiceProvider.tsx +7 -17
- package/src/providers/services/UnifiedAuthContext.ts +99 -0
- package/src/providers/services/UnifiedAuthProvider.test.tsx +212 -0
- package/src/providers/services/UnifiedAuthProvider.tsx +38 -143
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +61 -95
- package/src/providers/services/__tests__/AuthServiceProvider.test.tsx +638 -0
- package/src/providers/services/__tests__/EventServiceProvider.test.tsx +839 -0
- package/src/providers/services/__tests__/InactivityServiceProvider.test.tsx +662 -0
- package/src/providers/services/__tests__/OrganisationServiceProvider.test.tsx +440 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.advanced.test.tsx +435 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.appId.test.tsx +408 -0
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +55 -48
- package/src/providers/services/__tests__/contexts.test.tsx +281 -0
- package/src/providers/services/__tests__/useUnifiedAuth.test.tsx +251 -0
- package/src/providers/services/useUnifiedAuth.ts +29 -0
- package/src/rbac/README.md +5 -5
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +9 -14
- package/src/rbac/__tests__/audit-batched.test.ts +550 -0
- package/src/rbac/__tests__/auth-rbac-security.integration.test.tsx +1 -14
- package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +43 -12
- package/src/rbac/__tests__/cache-invalidation.test.ts +8 -14
- package/src/rbac/__tests__/engine.comprehensive.test.ts +2 -7
- package/src/rbac/__tests__/index.test.ts +107 -0
- package/src/rbac/__tests__/performance.test.ts +451 -0
- package/src/rbac/__tests__/rbac-core.test.tsx +2 -2
- package/src/rbac/__tests__/rbac-engine-core-logic.test.ts +0 -5
- package/src/rbac/__tests__/rbac-engine-simplified.test.ts +1 -7
- package/src/rbac/__tests__/rbac-functions.test.ts +0 -1
- package/src/rbac/__tests__/rbac-integration.test.ts +0 -1
- package/src/rbac/__tests__/scenarios.user-role.test.tsx +21 -32
- package/src/rbac/adapters.test.tsx +654 -0
- package/src/rbac/adapters.tsx +24 -9
- package/src/rbac/api.test.ts +13 -217
- package/src/rbac/api.ts +85 -16
- package/src/rbac/audit-batched.ts +5 -4
- package/src/rbac/audit.test.ts +225 -28
- package/src/rbac/audit.ts +22 -17
- package/src/rbac/cache-invalidation.ts +18 -15
- package/src/rbac/cache.test.ts +123 -63
- package/src/rbac/cache.ts +3 -4
- package/src/rbac/components/AccessDenied.tsx +20 -18
- package/src/rbac/components/NavigationGuard.tsx +10 -8
- package/src/rbac/components/PagePermissionGuard.tsx +27 -25
- package/src/rbac/components/__tests__/AccessDenied.test.tsx +324 -0
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +242 -71
- package/src/rbac/components/__tests__/PagePermissionGuard.performance.test.tsx +20 -37
- package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +18 -17
- package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +452 -129
- package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +14 -13
- package/src/rbac/config.test.ts +131 -48
- package/src/rbac/config.ts +11 -8
- package/src/rbac/docs/event-based-apps.md +26 -13
- package/src/rbac/engine.test.ts +496 -146
- package/src/rbac/engine.ts +53 -13
- package/src/rbac/errors.test.ts +99 -87
- package/src/rbac/eslint-rules.js +2 -2
- package/src/rbac/hooks/__tests__/usePermissions.integration.test.ts +0 -5
- package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +601 -1
- package/src/rbac/hooks/permissions/__tests__/useAccessLevel.test.ts +622 -0
- package/src/rbac/hooks/permissions/__tests__/useCan.test.ts +798 -0
- package/src/rbac/hooks/permissions/__tests__/useMultiplePermissions.test.ts +843 -0
- package/src/rbac/hooks/permissions/__tests__/usePermissions.test.ts +545 -0
- package/src/rbac/hooks/permissions/useAccessLevel.ts +7 -8
- package/src/rbac/hooks/permissions/useCan.ts +12 -10
- package/src/rbac/hooks/permissions/useMultiplePermissions.ts +57 -8
- package/src/rbac/hooks/permissions/usePermissions.ts +15 -14
- package/src/rbac/hooks/useCan.test.ts +319 -3
- package/src/rbac/hooks/usePermissions.test.ts +426 -0
- package/src/rbac/hooks/usePermissions.ts +5 -7
- package/src/rbac/hooks/useRBAC.test.ts +1669 -2
- package/src/rbac/hooks/useRBAC.ts +7 -11
- package/src/rbac/hooks/useResolvedScope.test.ts +442 -5
- package/src/rbac/hooks/useResolvedScope.ts +4 -1
- package/src/rbac/hooks/useResourcePermissions.test.ts +538 -1
- package/src/rbac/hooks/useResourcePermissions.ts +9 -7
- package/src/rbac/hooks/useRoleManagement.test.ts +659 -1
- package/src/rbac/hooks/useRoleManagement.ts +16 -12
- package/src/rbac/hooks/useSecureSupabase.ts +11 -12
- package/src/rbac/index.ts +32 -32
- package/src/rbac/permissions.test.ts +149 -68
- package/src/rbac/permissions.ts +0 -3
- package/src/rbac/request-deduplication.test.ts +347 -0
- package/src/rbac/secureClient.test.ts +112 -159
- package/src/rbac/secureClient.ts +46 -26
- package/src/rbac/security.test.ts +125 -44
- package/src/rbac/security.ts +7 -6
- package/src/rbac/types.test.ts +236 -0
- package/src/rbac/types.ts +7 -5
- package/src/rbac/utils/__tests__/clientSecurity.test.ts +192 -0
- package/src/rbac/utils/__tests__/contextValidator.test.ts +1 -3
- package/src/rbac/utils/__tests__/deep-equal.test.ts +23 -0
- package/src/rbac/utils/__tests__/eventContext.test.ts +10 -57
- package/src/rbac/utils/clientSecurity.ts +6 -4
- package/src/rbac/utils/contextValidator.ts +1 -2
- package/src/rbac/utils/eventContext.ts +2 -2
- package/src/services/AuthService.ts +13 -11
- package/src/services/EventService.ts +4 -5
- package/src/services/OrganisationService.ts +13 -30
- package/src/services/__tests__/AuthService.edge-cases.test.ts +746 -0
- package/src/services/__tests__/AuthService.restoreSession.test.ts +23 -3
- package/src/services/__tests__/AuthService.test.ts +4 -8
- package/src/services/__tests__/BaseService.edge-cases.test.ts +506 -0
- package/src/services/__tests__/BaseService.test.ts +49 -0
- package/src/services/__tests__/EventService.edge-cases.test.ts +633 -0
- package/src/services/__tests__/EventService.eventColours.test.ts +0 -12
- package/src/services/__tests__/EventService.test.ts +0 -7
- package/src/services/__tests__/InactivityService.edge-cases.test.ts +492 -0
- package/src/services/__tests__/InactivityService.lifecycle.test.ts +0 -5
- package/src/services/__tests__/OrganisationService.edge-cases.test.ts +633 -0
- package/src/services/base/BaseService.test.ts +214 -0
- package/src/services/interfaces/IOrganisationService.ts +0 -1
- package/src/services/interfaces/__tests__/IAuthService.test.ts +190 -0
- package/src/services/interfaces/__tests__/IEventService.test.ts +176 -0
- package/src/services/interfaces/__tests__/IInactivityService.test.ts +183 -0
- package/src/services/interfaces/__tests__/IOrganisationService.test.ts +207 -0
- package/src/styles/core.css +1 -0
- package/src/theming/__tests__/runtime.test.ts +29 -94
- package/src/theming/parseEventColours.ts +18 -9
- package/src/theming/runtime.ts +1 -5
- package/src/types/__tests__/core.test.ts +397 -0
- package/src/types/__tests__/database-generated.test.ts +78 -0
- package/src/types/__tests__/file-reference.test.ts +270 -366
- package/src/types/__tests__/guards.test.ts +26 -26
- package/src/types/__tests__/index.test.ts +265 -0
- package/src/types/__tests__/type-validation.test.ts +3 -3
- package/src/types/__tests__/validation.test.ts +0 -2
- package/src/types/auth.ts +0 -1
- package/src/types/event.ts +1 -1
- package/src/types/rpc-responses.ts +33 -0
- package/src/types/supabase.ts +1 -2
- package/src/types/vitest-globals.d.ts +1 -1
- package/src/utils/__tests__/bundleAnalysis.unit.test.ts +64 -77
- package/src/utils/__tests__/dynamicUtils.unit.test.ts +13 -0
- package/src/utils/__tests__/formatDate.unit.test.ts +1 -1
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +0 -1
- package/src/utils/__tests__/logger.unit.test.ts +1 -1
- package/src/utils/__tests__/performanceBenchmark.test.ts +1 -2
- package/src/utils/__tests__/performanceBudgets.unit.test.ts +48 -13
- package/src/utils/__tests__/request-deduplication.test.ts +349 -0
- package/src/utils/__tests__/secureDataAccess.unit.test.ts +0 -1
- package/src/utils/__tests__/timezone.test.ts +1 -1
- package/src/utils/__tests__/validation.unit.test.ts +1 -2
- package/src/utils/__tests__/validationUtils.unit.test.ts +1 -1
- package/src/utils/app/appConfig.test.ts +235 -0
- package/src/utils/app/appIdResolver.test.ts +188 -20
- package/src/utils/app/appNameResolver.test.ts +18 -10
- package/src/utils/app/appNameResolver.ts +11 -9
- package/src/utils/app/appPortMap.test.ts +125 -0
- package/src/utils/app/appPortMap.ts +51 -0
- package/src/utils/app/buildAppUrl.test.ts +273 -0
- package/src/utils/app/buildAppUrl.ts +114 -0
- package/src/utils/audit/audit.test.ts +354 -39
- package/src/utils/context/organisationContext.test.ts +10 -4
- package/src/utils/context/organisationContext.ts +5 -5
- package/src/utils/context/sessionTracking.test.ts +354 -0
- package/src/utils/core/__tests__/cn.test.ts +66 -0
- package/src/utils/core/__tests__/debugLogger.test.ts +113 -0
- package/src/utils/core/__tests__/logger.test.ts +217 -0
- package/src/utils/core/debugLogger.ts +15 -8
- package/src/utils/core/logger.ts +20 -16
- package/src/utils/device/deviceFingerprint.test.ts +8 -5
- package/src/utils/device/deviceFingerprint.ts +3 -3
- package/src/utils/dynamic/__tests__/dynamicUtils.test.ts +185 -0
- package/src/utils/dynamic/__tests__/lazyLoad.test.tsx +156 -0
- package/src/utils/dynamic/createLazyComponent.tsx +38 -0
- package/src/utils/dynamic/dynamicUtils.ts +6 -6
- package/src/utils/dynamic/lazyLoad.tsx +8 -36
- package/src/utils/dynamic/papaparseLoader.ts +7 -0
- package/src/utils/file-reference/__tests__/file-reference.test.ts +583 -145
- package/src/utils/file-reference/index.ts +0 -1
- package/src/utils/formatting/formatDate.test.ts +22 -148
- package/src/utils/formatting/formatDateTime.test.ts +41 -119
- package/src/utils/formatting/formatDateTimeTimezone.test.ts +40 -84
- package/src/utils/formatting/formatNumber.test.ts +259 -0
- package/src/utils/formatting/formatTime.test.ts +36 -128
- package/src/utils/formatting/formatting.ts +1 -1
- package/src/utils/google-places/googlePlacesUtils.test.ts +72 -3
- package/src/utils/google-places/googlePlacesUtils.ts +15 -2
- package/src/utils/google-places/loadGoogleMapsScript.test.ts +58 -1
- package/src/utils/google-places/loadGoogleMapsScript.ts +2 -1
- package/src/utils/index.ts +52 -11
- package/src/utils/location/location.test.ts +18 -115
- package/src/utils/performance/__tests__/bundleAnalysis.test.ts +148 -0
- package/src/utils/performance/__tests__/performanceBenchmark.test.ts +251 -0
- package/src/utils/performance/__tests__/performanceBudgets.test.ts +241 -0
- package/src/utils/performance/bundleAnalysis.ts +16 -22
- package/src/utils/performance/performanceBenchmark.ts +12 -4
- package/src/utils/performance/performanceBudgets.ts +9 -6
- package/src/utils/permissions/__tests__/permissionTypes.test.ts +149 -0
- package/src/utils/permissions/permissionUtils.test.ts +20 -42
- package/src/utils/persistence/__tests__/keyDerivation.test.ts +180 -9
- package/src/utils/persistence/__tests__/sensitiveFieldDetection.test.ts +164 -16
- package/src/utils/persistence/sensitiveFieldDetection.ts +2 -2
- package/src/utils/request-deduplication.ts +6 -4
- package/src/utils/security/auth-utils.ts +7 -7
- package/src/utils/security/secureDataAccess.test.ts +22 -191
- package/src/utils/security/secureErrors.test.ts +163 -0
- package/src/utils/security/secureStorage.test.ts +156 -0
- package/src/utils/security/secureStorage.ts +1 -1
- package/src/utils/security/security.test.ts +204 -0
- package/src/utils/security/securityMonitor.test.ts +90 -0
- package/src/utils/security/securityMonitor.ts +1 -1
- package/src/utils/storage/__tests__/config.unit.test.ts +239 -0
- package/src/utils/storage/__tests__/index.unit.test.ts +64 -12
- package/src/utils/storage/helpers.test.ts +757 -430
- package/src/utils/storage/helpers.ts +1 -2
- package/src/utils/storage/{index.ts → storageUtils.ts} +1 -36
- package/src/utils/storage/types.ts +2 -2
- package/src/utils/supabase/createBaseClient.test.ts +201 -0
- package/src/utils/supabase/createBaseClient.ts +2 -1
- package/src/utils/timezone/timezone.test.ts +25 -43
- package/src/utils/validation/__tests__/common.test.ts +115 -0
- package/src/utils/validation/__tests__/csrf.test.ts +65 -0
- package/src/utils/validation/__tests__/htmlSanitization.unit.test.ts +27 -7
- package/src/utils/validation/__tests__/passwordSchema.test.ts +164 -0
- package/src/utils/validation/__tests__/schema.test.ts +127 -0
- package/src/utils/validation/__tests__/sqlInjectionProtection.test.ts +76 -3
- package/src/utils/validation/__tests__/user.test.ts +173 -0
- package/src/utils/validation/__tests__/validation.test.ts +197 -0
- package/src/utils/validation/__tests__/validationUtils.test.ts +265 -43
- package/src/utils/validation/htmlSanitization.ts +27 -31
- package/src/utils/validation/schema.ts +6 -3
- package/src/utils/validation/sqlInjectionProtection.ts +2 -2
- package/src/vite-env.d.ts +6 -0
- package/dist/DataTable-DRUIgtUH.d.ts +0 -166
- package/dist/UnifiedAuthProvider-7SNDOWYD.js +0 -7
- package/dist/audit-MYQXYZFU.js +0 -3
- package/dist/chunk-7ILTDCL2.js +0 -80
- package/dist/chunk-EF2UGZWY.js +0 -611
- package/dist/chunk-FEJLJNWA.js +0 -181
- package/dist/chunk-GS5672WG.js +0 -2003
- package/dist/chunk-S6ZQKDY6.js +0 -62
- package/dist/chunk-Z2FNRKF3.js +0 -994
- package/dist/useToast-AyaT-x7p.d.ts +0 -68
- package/src/components/DataTable/components/index.ts +0 -16
- package/src/components/DataTable/core/index.ts +0 -1
- package/src/components/DataTable/hooks/index.ts +0 -13
- package/src/components/DataTable/utils/index.ts +0 -10
- package/src/components/PublicLayout/index.ts +0 -32
- package/src/hooks/__tests__/usePermissionCache.simple.test.ts +0 -192
- package/src/hooks/__tests__/usePermissionCache.unit.test.ts +0 -741
- package/src/hooks/public/index.ts +0 -36
- package/src/hooks/usePermissionCache.test.ts +0 -536
- package/src/rbac/__tests__/isSuperAdmin.real.test.ts +0 -82
- package/src/rbac/audit-enhanced.ts +0 -384
- package/src/rbac/compliance/database-validator.ts +0 -165
- package/src/rbac/compliance/index.ts +0 -48
- package/src/rbac/compliance/pattern-detector.ts +0 -553
- package/src/rbac/compliance/quick-fix-suggestions.ts +0 -209
- package/src/rbac/compliance/runtime-compliance.ts +0 -99
- package/src/rbac/compliance/setup-validator.ts +0 -131
- package/src/rbac/components/index.ts +0 -26
- package/src/rbac/hooks/index.ts +0 -34
- package/src/rbac/hooks/permissions/index.ts +0 -4
- package/src/rbac/hooks/useRBAC.simple.test.ts +0 -95
- package/src/rbac/utils/__tests__/eventContext.unit.test.ts +0 -490
- package/src/utils/app/appNameResolver.simple.test.ts +0 -212
- package/src/utils/google-places/index.ts +0 -26
- package/src/utils/location/index.ts +0 -16
- package/src/utils/storage/__tests__/helpers.unit.test.ts +0 -332
- package/src/utils/timezone/index.ts +0 -17
- package/src/utils/validation/index.ts +0 -73
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
|
-
import React__default, { ReactNode, Component } from 'react';
|
|
2
|
+
import React__default, { ReactNode, Component, ErrorInfo } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import { P as ParsedAddress, A as AutocompleteOptions } from './types-
|
|
4
|
+
import { P as ParsedAddress, A as AutocompleteOptions } from './types-Dr8sNhER.js';
|
|
5
5
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
6
6
|
import { F as FileCategory, e as FileUploadResult, U as UploadProgress, c as FileUploadOptions, a as FileReference } from './file-reference-BavO2eQj.js';
|
|
7
7
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
@@ -10,11 +10,12 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
|
10
10
|
import { DayPickerProps, DateRange } from 'react-day-picker';
|
|
11
11
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
12
12
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
13
|
+
import { c as DataRecord, D as DataTableColumn, j as DataTableRBACConfig, h as DataTableFeatureConfig, H as HierarchicalConfig, P as PerformanceConfig, S as ServerSideConfig, e as PaginationMode, C as ChunkingConfig, d as SearchIndexConfig, i as ExportOptions, G as GetRowId, E as EmptyStateConfig, A as AggregateConfig, a as DataTableAction } from './types-D05dCGma.js';
|
|
13
14
|
import { FieldValues, DefaultValues, SubmitHandler, SubmitErrorHandler, UseFormReturn, FieldPath, ControllerRenderProps, ControllerFieldState, UseFormStateReturn } from 'react-hook-form';
|
|
14
15
|
import { z } from 'zod';
|
|
15
|
-
import { N as NavigationMenuProps, a as NavigationItem } from './types-
|
|
16
|
+
import { N as NavigationMenuProps, a as NavigationItem } from './types-BE2sEHKd.js';
|
|
16
17
|
import { User, SupabaseClient, createClient } from '@supabase/supabase-js';
|
|
17
|
-
import { O as Organisation, E as Event } from './event-
|
|
18
|
+
import { O as Organisation, E as Event } from './event-WTAQuGcq.js';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Button component props
|
|
@@ -473,27 +474,27 @@ declare namespace Textarea {
|
|
|
473
474
|
* Features:
|
|
474
475
|
* - Multiple visual variants (default, destructive, inline)
|
|
475
476
|
* - Title and description support
|
|
476
|
-
* - Semantic HTML: renders as `<
|
|
477
|
+
* - Semantic HTML: renders as `<div>` element with `role="alert"` (default) or custom role
|
|
477
478
|
* - Keyboard and screen reader accessible
|
|
478
479
|
* - Composable with icons and actions
|
|
479
480
|
* - Inline variant for lightweight text formatting
|
|
480
481
|
*
|
|
481
482
|
* @example
|
|
482
483
|
* ```tsx
|
|
483
|
-
* // Basic alert (renders as <
|
|
484
|
+
* // Basic alert (renders as <div role="alert"> with <h5> title and <p> description)
|
|
484
485
|
* <Alert>
|
|
485
486
|
* <AlertTitle>Success</AlertTitle>
|
|
486
487
|
* <AlertDescription>Your changes have been saved.</AlertDescription>
|
|
487
488
|
* </Alert>
|
|
488
489
|
*
|
|
489
|
-
* // Destructive alert with icon (renders as <
|
|
490
|
+
* // Destructive alert with icon (renders as <div role="alert"> with <h5> title and <p> description)
|
|
490
491
|
* <Alert variant="destructive">
|
|
491
492
|
* <ErrorIcon />
|
|
492
493
|
* <AlertTitle>Error</AlertTitle>
|
|
493
494
|
* <AlertDescription>Something went wrong.</AlertDescription>
|
|
494
495
|
* </Alert>
|
|
495
496
|
*
|
|
496
|
-
* // Status message (renders as <
|
|
497
|
+
* // Status message (renders as <div role="status"> for informational messages)
|
|
497
498
|
* <Alert role="status" aria-live="polite">
|
|
498
499
|
* <AlertTitle>No data available</AlertTitle>
|
|
499
500
|
* <AlertDescription>Get started by adding your first entry.</AlertDescription>
|
|
@@ -507,16 +508,16 @@ declare namespace Textarea {
|
|
|
507
508
|
* ```
|
|
508
509
|
*
|
|
509
510
|
* @accessibility
|
|
510
|
-
* - Uses semantic HTML: `<
|
|
511
|
+
* - Uses semantic HTML: `<div>` element with `role="alert"` (default) for screen reader announcements
|
|
511
512
|
* - Can be customized with `role="status"` for informational messages
|
|
512
513
|
* - Title and description are semantically structured
|
|
513
514
|
* - Supports keyboard navigation and focus
|
|
514
515
|
*/
|
|
515
516
|
|
|
516
|
-
declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<
|
|
517
|
+
declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & {
|
|
517
518
|
variant?: "default" | "destructive" | "inline";
|
|
518
519
|
role?: string;
|
|
519
|
-
} & React$1.RefAttributes<
|
|
520
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
520
521
|
declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
521
522
|
declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
522
523
|
|
|
@@ -959,8 +960,6 @@ interface DialogBodyProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
959
960
|
htmlContent?: string;
|
|
960
961
|
/** Whether to allow HTML content rendering (default: true) */
|
|
961
962
|
allowHtml?: boolean;
|
|
962
|
-
/** Whether to use strict HTML sanitization (default: true) */
|
|
963
|
-
strictSanitization?: boolean;
|
|
964
963
|
/** Whether to log HTML sanitization warnings to console (default: false) */
|
|
965
964
|
logWarnings?: boolean;
|
|
966
965
|
}
|
|
@@ -1008,12 +1007,6 @@ declare const DialogPortal: React$1.FC<DialogPortalProps>;
|
|
|
1008
1007
|
* @returns JSX.Element - The semantic dialog content with overlay and optional close button
|
|
1009
1008
|
*/
|
|
1010
1009
|
declare const DialogContent: React$1.ForwardRefExoticComponent<DialogContentProps & React$1.RefAttributes<HTMLDialogElement>>;
|
|
1011
|
-
/**
|
|
1012
|
-
* Props for the DialogClose component
|
|
1013
|
-
* @public
|
|
1014
|
-
*/
|
|
1015
|
-
interface DialogCloseProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
1016
|
-
}
|
|
1017
1010
|
/**
|
|
1018
1011
|
* Props for the DialogClose component
|
|
1019
1012
|
* @public
|
|
@@ -1040,7 +1033,7 @@ declare const DialogHeader: {
|
|
|
1040
1033
|
* Semantic main content area for dialog body content with scrollable functionality
|
|
1041
1034
|
*/
|
|
1042
1035
|
declare const DialogBody: {
|
|
1043
|
-
({ className, maxHeight, style, htmlContent, allowHtml,
|
|
1036
|
+
({ className, maxHeight, style, htmlContent, allowHtml, logWarnings, children, ...props }: DialogBodyProps): react_jsx_runtime.JSX.Element;
|
|
1044
1037
|
displayName: string;
|
|
1045
1038
|
};
|
|
1046
1039
|
/**
|
|
@@ -1095,6 +1088,8 @@ interface SelectProps extends Omit<React$1.HTMLAttributes<HTMLFieldSetElement>,
|
|
|
1095
1088
|
interface SelectTriggerProps extends Omit<ButtonProps, "onClick" | "onKeyDown"> {
|
|
1096
1089
|
children: React$1.ReactNode;
|
|
1097
1090
|
asChild?: boolean;
|
|
1091
|
+
/** Whether to show the chevron icon. Defaults to true. */
|
|
1092
|
+
showChevron?: boolean;
|
|
1098
1093
|
}
|
|
1099
1094
|
/**
|
|
1100
1095
|
* Props for the SelectValue component.
|
|
@@ -1102,6 +1097,7 @@ interface SelectTriggerProps extends Omit<ButtonProps, "onClick" | "onKeyDown">
|
|
|
1102
1097
|
interface SelectValueProps {
|
|
1103
1098
|
placeholder?: string;
|
|
1104
1099
|
children?: React$1.ReactNode;
|
|
1100
|
+
className?: string;
|
|
1105
1101
|
}
|
|
1106
1102
|
/**
|
|
1107
1103
|
* Props for the SelectContent component.
|
|
@@ -1493,6 +1489,83 @@ interface CalendarProps extends Omit<DayPickerProps, 'className' | 'classNames'
|
|
|
1493
1489
|
*/
|
|
1494
1490
|
declare const Calendar: React$1.ForwardRefExoticComponent<CalendarProps & React$1.RefAttributes<HTMLTableElement>>;
|
|
1495
1491
|
|
|
1492
|
+
/**
|
|
1493
|
+
* @file DatePickerWithTimezone Component
|
|
1494
|
+
* @package @jmruthers/pace-core
|
|
1495
|
+
* @module Components/DatePickerWithTimezone
|
|
1496
|
+
* @since 0.1.0
|
|
1497
|
+
*
|
|
1498
|
+
* Date picker component that displays timezone information alongside the calendar.
|
|
1499
|
+
* Provides a calendar interface with timezone context for date selection.
|
|
1500
|
+
*
|
|
1501
|
+
* Features:
|
|
1502
|
+
* - Calendar date selection with dropdown month/year navigation
|
|
1503
|
+
* - Timezone display (shows "Local" when matches user timezone)
|
|
1504
|
+
* - Optional "Done" button
|
|
1505
|
+
* - Accessible date selection
|
|
1506
|
+
* - Keyboard navigation support
|
|
1507
|
+
* - Wide date range support (1900-2100) via dropdown selectors
|
|
1508
|
+
*
|
|
1509
|
+
* @example
|
|
1510
|
+
* ```tsx
|
|
1511
|
+
* import { DatePickerWithTimezone } from '@jmruthers/pace-core/components';
|
|
1512
|
+
* import { useState } from 'react';
|
|
1513
|
+
*
|
|
1514
|
+
* function DateSelector() {
|
|
1515
|
+
* const [date, setDate] = useState<Date>();
|
|
1516
|
+
*
|
|
1517
|
+
* return (
|
|
1518
|
+
* <DatePickerWithTimezone
|
|
1519
|
+
* selected={date}
|
|
1520
|
+
* onSelect={setDate}
|
|
1521
|
+
* timezone="America/New_York"
|
|
1522
|
+
* onDone={() => console.log('Date selected')}
|
|
1523
|
+
* />
|
|
1524
|
+
* );
|
|
1525
|
+
* }
|
|
1526
|
+
* ```
|
|
1527
|
+
*
|
|
1528
|
+
* @accessibility
|
|
1529
|
+
* - WCAG 2.1 AA compliant
|
|
1530
|
+
* - Keyboard navigation support
|
|
1531
|
+
* - Screen reader friendly
|
|
1532
|
+
* - Focus management
|
|
1533
|
+
* - Proper ARIA attributes
|
|
1534
|
+
*/
|
|
1535
|
+
/**
|
|
1536
|
+
* Props for the DatePickerWithTimezone component
|
|
1537
|
+
*/
|
|
1538
|
+
interface DatePickerWithTimezoneProps {
|
|
1539
|
+
/**
|
|
1540
|
+
* Currently selected date
|
|
1541
|
+
*/
|
|
1542
|
+
selected?: Date;
|
|
1543
|
+
/**
|
|
1544
|
+
* Date selection handler
|
|
1545
|
+
*/
|
|
1546
|
+
onSelect: (date: Date | undefined) => void;
|
|
1547
|
+
/**
|
|
1548
|
+
* Optional callback when "Done" button is clicked
|
|
1549
|
+
*/
|
|
1550
|
+
onDone?: () => void;
|
|
1551
|
+
/**
|
|
1552
|
+
* Timezone to display (defaults to user's timezone)
|
|
1553
|
+
*/
|
|
1554
|
+
timezone?: string;
|
|
1555
|
+
/**
|
|
1556
|
+
* Additional CSS classes
|
|
1557
|
+
*/
|
|
1558
|
+
className?: string;
|
|
1559
|
+
}
|
|
1560
|
+
/**
|
|
1561
|
+
* DatePickerWithTimezone component
|
|
1562
|
+
* Date picker with timezone information display
|
|
1563
|
+
*
|
|
1564
|
+
* @param props - DatePickerWithTimezone configuration
|
|
1565
|
+
* @returns JSX.Element - The rendered date picker with timezone
|
|
1566
|
+
*/
|
|
1567
|
+
declare function DatePickerWithTimezone({ selected, onSelect, onDone, timezone, className }: DatePickerWithTimezoneProps): react_jsx_runtime.JSX.Element;
|
|
1568
|
+
|
|
1496
1569
|
declare const ToastProvider: React$1.FC<ToastPrimitives.ToastProviderProps>;
|
|
1497
1570
|
/**
|
|
1498
1571
|
* ToastViewport component
|
|
@@ -1726,6 +1799,167 @@ interface TooltipProps {
|
|
|
1726
1799
|
*/
|
|
1727
1800
|
declare const Tooltip: React$1.ForwardRefExoticComponent<TooltipProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1728
1801
|
|
|
1802
|
+
/**
|
|
1803
|
+
* Configuration interface for customizing ImportModal text content
|
|
1804
|
+
* @public
|
|
1805
|
+
*/
|
|
1806
|
+
interface ImportModalConfig {
|
|
1807
|
+
/** Custom title for the import modal */
|
|
1808
|
+
title?: string;
|
|
1809
|
+
/** Custom description text shown below the title */
|
|
1810
|
+
description?: string;
|
|
1811
|
+
/** Custom text shown in the file upload area when no file is selected */
|
|
1812
|
+
uploadText?: string;
|
|
1813
|
+
/** Custom text for the file selection button */
|
|
1814
|
+
selectFileButtonText?: string;
|
|
1815
|
+
/** Custom text for the import button */
|
|
1816
|
+
importButtonText?: string;
|
|
1817
|
+
/** Custom text for the import button when processing */
|
|
1818
|
+
importButtonProcessingText?: string;
|
|
1819
|
+
/** Custom text for the cancel button */
|
|
1820
|
+
cancelButtonText?: string;
|
|
1821
|
+
/** Custom text for the preview section header */
|
|
1822
|
+
previewHeaderText?: string;
|
|
1823
|
+
/** Custom text pattern for total rows display. Use {count} as placeholder for the actual count */
|
|
1824
|
+
totalRowsText?: string;
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
/**
|
|
1828
|
+
* Enhanced DataTable props with performance features
|
|
1829
|
+
* @template TData - The type of data records in the table
|
|
1830
|
+
*/
|
|
1831
|
+
interface DataTableProps<TData extends DataRecord> {
|
|
1832
|
+
/** Array of data records to display in the table */
|
|
1833
|
+
data: TData[];
|
|
1834
|
+
/** Column definitions for the table */
|
|
1835
|
+
columns: DataTableColumn<TData>[];
|
|
1836
|
+
/** RBAC configuration - REQUIRED for all DataTables */
|
|
1837
|
+
rbac: DataTableRBACConfig;
|
|
1838
|
+
/** Optional title displayed above the table */
|
|
1839
|
+
title?: string;
|
|
1840
|
+
/** Optional description displayed below the title */
|
|
1841
|
+
description?: string;
|
|
1842
|
+
/** Visual variant of the table */
|
|
1843
|
+
variant?: 'default' | 'compact' | 'spacious';
|
|
1844
|
+
/** Additional CSS classes for the table container */
|
|
1845
|
+
className?: string;
|
|
1846
|
+
/** Feature configuration - all features are disabled by default */
|
|
1847
|
+
features?: DataTableFeatureConfig;
|
|
1848
|
+
/** Hierarchical parent/child row configuration */
|
|
1849
|
+
hierarchical?: HierarchicalConfig;
|
|
1850
|
+
/** Performance optimization configuration */
|
|
1851
|
+
performance?: PerformanceConfig;
|
|
1852
|
+
/** Server-side data fetching configuration */
|
|
1853
|
+
serverSide?: ServerSideConfig<TData>;
|
|
1854
|
+
/** Override automatic pagination mode detection */
|
|
1855
|
+
paginationMode?: PaginationMode;
|
|
1856
|
+
/** Data chunking configuration for memory optimization */
|
|
1857
|
+
chunking?: ChunkingConfig;
|
|
1858
|
+
/** Search indexing configuration for fast search */
|
|
1859
|
+
searchIndex?: SearchIndexConfig;
|
|
1860
|
+
/** Virtual scrolling height */
|
|
1861
|
+
virtualHeight?: number;
|
|
1862
|
+
/** Initial page size for pagination */
|
|
1863
|
+
initialPageSize?: number;
|
|
1864
|
+
/** Initial grouping configuration - columns to group by on load */
|
|
1865
|
+
defaultGrouping?: string[];
|
|
1866
|
+
/** Initial sorting configuration - sort state to apply on load */
|
|
1867
|
+
defaultSorting?: Array<{
|
|
1868
|
+
id: string;
|
|
1869
|
+
desc: boolean;
|
|
1870
|
+
}>;
|
|
1871
|
+
/** Enable enhanced pagination controls */
|
|
1872
|
+
enhancedPagination?: boolean;
|
|
1873
|
+
/** Custom loading component */
|
|
1874
|
+
loadingComponent?: React__default.ComponentType;
|
|
1875
|
+
/** Custom error component */
|
|
1876
|
+
errorComponent?: React__default.ComponentType<{
|
|
1877
|
+
error: Error;
|
|
1878
|
+
retry: () => void;
|
|
1879
|
+
}>;
|
|
1880
|
+
/** Callback when a row is edited */
|
|
1881
|
+
onEditRow?: (row: TData, data: Partial<TData>) => void;
|
|
1882
|
+
/** Callback when a row is deleted */
|
|
1883
|
+
onDeleteRow?: (row: TData) => void;
|
|
1884
|
+
/** Callback when a new row is created */
|
|
1885
|
+
onCreateRow?: (data: Partial<TData>) => void;
|
|
1886
|
+
/** Callback when data is imported */
|
|
1887
|
+
onImport?: (data: TData[]) => void | Promise<void>;
|
|
1888
|
+
/** Callback for custom export functionality */
|
|
1889
|
+
onExport?: (options: ExportOptions<TData>) => void | Promise<void>;
|
|
1890
|
+
/** Callback when row selection changes */
|
|
1891
|
+
onRowSelectionChange?: (selection: Record<string, boolean>) => void;
|
|
1892
|
+
/** Controlled selection state */
|
|
1893
|
+
selection?: Record<string, boolean>;
|
|
1894
|
+
/** Callback when bulk delete selected rows is triggered */
|
|
1895
|
+
onDeleteSelected?: (selectedRows: Record<string, boolean>) => void;
|
|
1896
|
+
/** Function to generate unique row IDs */
|
|
1897
|
+
getRowId?: GetRowId<TData>;
|
|
1898
|
+
/** Whether the table is in a loading state */
|
|
1899
|
+
isLoading?: boolean;
|
|
1900
|
+
/** Custom component to display when table is empty */
|
|
1901
|
+
emptyState?: EmptyStateConfig | React__default.ReactElement;
|
|
1902
|
+
/** Array of aggregation functions for grouped data */
|
|
1903
|
+
aggregates?: AggregateConfig[];
|
|
1904
|
+
/** Import modal configuration */
|
|
1905
|
+
importModalConfig?: ImportModalConfig;
|
|
1906
|
+
/** Custom row actions - use this for custom action buttons */
|
|
1907
|
+
actions?: DataTableAction<TData>[];
|
|
1908
|
+
/** Column order configuration - array of column IDs in desired order */
|
|
1909
|
+
columnOrder?: string[];
|
|
1910
|
+
/** Unique storage key for persisting table layout state across sessions */
|
|
1911
|
+
storageKey?: string;
|
|
1912
|
+
/** Callback when table layout changes (column order, visibility, etc.) */
|
|
1913
|
+
onLayoutChange?: (layout: {
|
|
1914
|
+
columnOrder: string[];
|
|
1915
|
+
columnVisibility: Record<string, boolean>;
|
|
1916
|
+
}) => void;
|
|
1917
|
+
}
|
|
1918
|
+
/**
|
|
1919
|
+
* Enhanced DataTable with comprehensive performance optimizations
|
|
1920
|
+
*
|
|
1921
|
+
* This component automatically detects dataset size and applies appropriate performance optimizations:
|
|
1922
|
+
* - < 1,000 records: Standard rendering with full feature support
|
|
1923
|
+
* - 1,000+ records: Automatic virtual scrolling with intelligent memory management
|
|
1924
|
+
* - 10,000+ records: Enhanced chunking and memory optimization
|
|
1925
|
+
* - 100,000+ records: Advanced server-side processing with virtualization
|
|
1926
|
+
*
|
|
1927
|
+
* Features are configured through the unified `features` prop for maximum flexibility.
|
|
1928
|
+
*/
|
|
1929
|
+
/**
|
|
1930
|
+
* Enhanced DataTable component with performance optimizations and comprehensive features.
|
|
1931
|
+
*
|
|
1932
|
+
* This is the main entry point for the DataTable component. It wraps DataTableCore
|
|
1933
|
+
* and provides feature normalization and validation.
|
|
1934
|
+
*
|
|
1935
|
+
* @template TData - The type of data records in the table
|
|
1936
|
+
* @param props - DataTable configuration including data, columns, features, and RBAC
|
|
1937
|
+
* @returns The rendered DataTable component
|
|
1938
|
+
*
|
|
1939
|
+
* @example
|
|
1940
|
+
* ```tsx
|
|
1941
|
+
* <DataTable
|
|
1942
|
+
* data={users}
|
|
1943
|
+
* columns={userColumns}
|
|
1944
|
+
* rbac={{ pageId: 'user-management' }}
|
|
1945
|
+
* features={{
|
|
1946
|
+
* search: true,
|
|
1947
|
+
* pagination: true,
|
|
1948
|
+
* sorting: true
|
|
1949
|
+
* }}
|
|
1950
|
+
* />
|
|
1951
|
+
* ```
|
|
1952
|
+
*/
|
|
1953
|
+
/**
|
|
1954
|
+
* Comprehensive, feature-rich data table component built on top of TanStack Table.
|
|
1955
|
+
* Provides advanced data management capabilities with a clean, accessible interface.
|
|
1956
|
+
*
|
|
1957
|
+
* @template TData - The type of data records in the table
|
|
1958
|
+
* @param props - DataTable configuration and props
|
|
1959
|
+
* @returns The rendered DataTable component
|
|
1960
|
+
*/
|
|
1961
|
+
declare function DataTable<TData extends DataRecord>(props: DataTableProps<TData>): react_jsx_runtime.JSX.Element;
|
|
1962
|
+
|
|
1729
1963
|
/**
|
|
1730
1964
|
* Props for the Form component
|
|
1731
1965
|
*/
|
|
@@ -1831,7 +2065,7 @@ interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
|
|
|
1831
2065
|
field: ControllerRenderProps<TFieldValues, TName>;
|
|
1832
2066
|
fieldState: ControllerFieldState;
|
|
1833
2067
|
formState: UseFormStateReturn<TFieldValues>;
|
|
1834
|
-
}) => React__default.ReactElement
|
|
2068
|
+
}) => React__default.ReactElement;
|
|
1835
2069
|
/**
|
|
1836
2070
|
* Test ID
|
|
1837
2071
|
*/
|
|
@@ -2579,8 +2813,6 @@ interface HeaderProps {
|
|
|
2579
2813
|
logoUrl?: string;
|
|
2580
2814
|
/** Alt text for the logo */
|
|
2581
2815
|
logoAlt?: string;
|
|
2582
|
-
/** Custom logo component (overrides logoUrl) */
|
|
2583
|
-
logo?: React__default.ReactNode;
|
|
2584
2816
|
/** Navigation items for the menu - uses NavigationItem interface */
|
|
2585
2817
|
navItems?: NavigationItem[];
|
|
2586
2818
|
/** Current user for the user menu */
|
|
@@ -2591,13 +2823,13 @@ interface HeaderProps {
|
|
|
2591
2823
|
onChangePassword?: (newPassword: string, confirmPassword: string) => Promise<{
|
|
2592
2824
|
error?: PasswordChangeFormError;
|
|
2593
2825
|
}>;
|
|
2594
|
-
/** Additional actions to display (will be placed between
|
|
2826
|
+
/** Additional actions to display (will be placed between context selector and user menu) */
|
|
2595
2827
|
actions?: React__default.ReactNode;
|
|
2596
2828
|
/** Custom user menu component (overrides default UserMenu) */
|
|
2597
2829
|
userMenu?: React__default.ReactNode;
|
|
2598
2830
|
/** Custom className */
|
|
2599
2831
|
className?: string;
|
|
2600
|
-
/** Show/hide context selector
|
|
2832
|
+
/** Show/hide context selector - default: true */
|
|
2601
2833
|
showContextSelector?: boolean;
|
|
2602
2834
|
/** Show organisations in context selector - default: true */
|
|
2603
2835
|
showOrganisations?: boolean;
|
|
@@ -2609,118 +2841,10 @@ interface HeaderProps {
|
|
|
2609
2841
|
currentPath?: string;
|
|
2610
2842
|
/** Custom navigation handler */
|
|
2611
2843
|
onNavigate?: (item: NavigationItem) => void;
|
|
2612
|
-
/** URL to navigate to when logo is clicked (e.g., '/dashboard') */
|
|
2844
|
+
/** URL to navigate to when logo is clicked (e.g., '/dashboard'). Defaults to '/' if not provided. */
|
|
2613
2845
|
logoHref?: string;
|
|
2614
2846
|
}
|
|
2615
|
-
|
|
2616
|
-
* Header component for application layouts with comprehensive navigation, user management,
|
|
2617
|
-
* and customizable branding support.
|
|
2618
|
-
*
|
|
2619
|
-
* A flexible header component that supports various configurations including custom logos,
|
|
2620
|
-
* navigation menus, user authentication, event selection, and custom actions.
|
|
2621
|
-
*
|
|
2622
|
-
* **Logo Display:** When used via PaceAppLayout, the logo URL is automatically constructed
|
|
2623
|
-
* from the appName prop as `/${appName.toLowerCase()}_logo_wide.svg`. The appName should
|
|
2624
|
-
* come from an APP_NAME constant declared in your App.tsx file to ensure consistency across
|
|
2625
|
-
* authenticated and public pages.
|
|
2626
|
-
*
|
|
2627
|
-
* Features:
|
|
2628
|
-
* - Customizable logo (URL or custom component)
|
|
2629
|
-
* - Clickable logo that automatically routes to dashboard (configurable via logoHref)
|
|
2630
|
-
* - Navigation menu integration with highlighting
|
|
2631
|
-
* - User menu with authentication and password management
|
|
2632
|
-
* - Event selector for multi-tenant applications
|
|
2633
|
-
* - Custom actions support
|
|
2634
|
-
* - Responsive design with mobile considerations
|
|
2635
|
-
* - Accessibility compliant with proper ARIA attributes
|
|
2636
|
-
* - Backdrop blur effects for modern UI
|
|
2637
|
-
* - Flexible layout with configurable sections
|
|
2638
|
-
*
|
|
2639
|
-
* @example
|
|
2640
|
-
* Basic header with logo and navigation (logo routes to /dashboard when clicked):
|
|
2641
|
-
* ```tsx
|
|
2642
|
-
* import { Header } from '@jmruthers/pace-core';
|
|
2643
|
-
* import { useNavigate, useLocation } from 'react-router-dom';
|
|
2644
|
-
*
|
|
2645
|
-
* function AppHeader() {
|
|
2646
|
-
* const navigate = useNavigate();
|
|
2647
|
-
* const location = useLocation();
|
|
2648
|
-
*
|
|
2649
|
-
* const navItems = [
|
|
2650
|
-
* { id: 'dashboard', label: 'Dashboard', href: '/dashboard' },
|
|
2651
|
-
* { id: 'meals', label: 'Meals', href: '/meals' },
|
|
2652
|
-
* { id: 'settings', label: 'Settings', href: '/settings' }
|
|
2653
|
-
* ];
|
|
2654
|
-
*
|
|
2655
|
-
* return (
|
|
2656
|
-
* <Header
|
|
2657
|
-
* logoUrl="/company-logo.svg"
|
|
2658
|
-
* logoAlt="My Company"
|
|
2659
|
-
* logoHref="/dashboard"
|
|
2660
|
-
* navItems={navItems}
|
|
2661
|
-
* currentPath={location.pathname}
|
|
2662
|
-
* onNavigate={(item) => navigate(item.href)}
|
|
2663
|
-
* user={currentUser}
|
|
2664
|
-
* onSignOut={handleSignOut}
|
|
2665
|
-
* />
|
|
2666
|
-
* );
|
|
2667
|
-
* }
|
|
2668
|
-
* ```
|
|
2669
|
-
*
|
|
2670
|
-
* @example
|
|
2671
|
-
* Header with custom actions:
|
|
2672
|
-
* ```tsx
|
|
2673
|
-
* import { Header, Button } from '@jmruthers/pace-core';
|
|
2674
|
-
*
|
|
2675
|
-
* function HeaderWithActions() {
|
|
2676
|
-
* const customActions = (
|
|
2677
|
-
* <>
|
|
2678
|
-
* <Button variant="outline" size="sm">Export</Button>
|
|
2679
|
-
* <Button size="sm">New Item</Button>
|
|
2680
|
-
* </>
|
|
2681
|
-
* );
|
|
2682
|
-
*
|
|
2683
|
-
* return (
|
|
2684
|
-
* <Header
|
|
2685
|
-
* logoUrl="/logo.svg"
|
|
2686
|
-
* navItems={navigationItems}
|
|
2687
|
-
* actions={customActions}
|
|
2688
|
-
* user={currentUser}
|
|
2689
|
-
* onSignOut={handleSignOut}
|
|
2690
|
-
* />
|
|
2691
|
-
* );
|
|
2692
|
-
* }
|
|
2693
|
-
* ```
|
|
2694
|
-
*
|
|
2695
|
-
* @example
|
|
2696
|
-
* Minimal header configuration:
|
|
2697
|
-
* ```tsx
|
|
2698
|
-
* function MinimalHeader() {
|
|
2699
|
-
* return (
|
|
2700
|
-
* <Header
|
|
2701
|
-
* logoUrl="/simple-logo.svg"
|
|
2702
|
-
* logoAlt="Simple App"
|
|
2703
|
-
* showContextSelector={false}
|
|
2704
|
-
* user={currentUser}
|
|
2705
|
-
* onSignOut={handleSignOut}
|
|
2706
|
-
* />
|
|
2707
|
-
* );
|
|
2708
|
-
* }
|
|
2709
|
-
* ```
|
|
2710
|
-
*
|
|
2711
|
-
* @param props - Header configuration including logo, navigation, user settings, and custom content
|
|
2712
|
-
* @returns React element with complete header functionality
|
|
2713
|
-
*
|
|
2714
|
-
* @since 0.1.0
|
|
2715
|
-
*/
|
|
2716
|
-
/**
|
|
2717
|
-
* Header component for application layouts.
|
|
2718
|
-
* Provides navigation, user menu, organisation/event selectors, and customizable branding.
|
|
2719
|
-
*
|
|
2720
|
-
* @param props - Header configuration
|
|
2721
|
-
* @returns The rendered header
|
|
2722
|
-
*/
|
|
2723
|
-
declare function Header({ logoUrl, logoAlt, logo, navItems, user, onSignOut, onChangePassword, actions, userMenu, className, showContextSelector, showOrganisations, showEvents, showUserMenu, currentPath, onNavigate, logoHref }: HeaderProps): react_jsx_runtime.JSX.Element;
|
|
2847
|
+
declare function Header({ logoUrl, logoAlt, navItems, user, onSignOut, onChangePassword, actions, userMenu, className, showContextSelector, showOrganisations, showEvents, showUserMenu, currentPath, onNavigate, logoHref }: HeaderProps): react_jsx_runtime.JSX.Element;
|
|
2724
2848
|
|
|
2725
2849
|
/**
|
|
2726
2850
|
* @file Footer Component
|
|
@@ -2983,8 +3107,6 @@ interface PaceAppLayoutProps {
|
|
|
2983
3107
|
showEvents?: boolean;
|
|
2984
3108
|
/** Custom actions to display in the header (between event selector and user menu) */
|
|
2985
3109
|
headerActions?: React__default.ReactNode;
|
|
2986
|
-
/** Custom logo component (overrides default logo) */
|
|
2987
|
-
customLogo?: React__default.ReactNode;
|
|
2988
3110
|
/** URL to navigate to when logo is clicked (defaults to '/dashboard') */
|
|
2989
3111
|
logoHref?: string;
|
|
2990
3112
|
/** Custom user menu component (overrides default user menu) */
|
|
@@ -3188,7 +3310,7 @@ interface PaceAppLayoutProps {
|
|
|
3188
3310
|
*
|
|
3189
3311
|
* @since 0.1.0
|
|
3190
3312
|
*/
|
|
3191
|
-
declare function PaceAppLayout({ appName, navItems, showContextSelector, showOrganisations, showEvents, headerActions,
|
|
3313
|
+
declare function PaceAppLayout({ appName, navItems, showContextSelector, showOrganisations, showEvents, headerActions, logoHref, customUserMenu, headerClassName, showUserMenu, enforcePermissions, defaultPermission, routePermissions, permissionFallback, pageIdMapping, strictMode, enforcePagePermissions, pagePermissionFallback, auditLog, onPageAccessDenied, onStrictModeViolation, roleBasedRouting, routeConfig, fallbackRoute, onRouteAccessDenied, onRouteStrictModeViolation }: PaceAppLayoutProps): react_jsx_runtime.JSX.Element;
|
|
3192
3314
|
|
|
3193
3315
|
/**
|
|
3194
3316
|
* @file PACE Login Page Component
|
|
@@ -3461,11 +3583,20 @@ declare class ErrorBoundary$1 extends Component<ErrorBoundaryProps, ErrorBoundar
|
|
|
3461
3583
|
render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
3462
3584
|
}
|
|
3463
3585
|
|
|
3586
|
+
/**
|
|
3587
|
+
* @file Error Boundary Context Types
|
|
3588
|
+
* @package @jmruthers/pace-core
|
|
3589
|
+
* @module Components/ErrorBoundary
|
|
3590
|
+
* @since 0.6.2
|
|
3591
|
+
*
|
|
3592
|
+
* Type definitions for ErrorBoundary context.
|
|
3593
|
+
*/
|
|
3594
|
+
|
|
3464
3595
|
/**
|
|
3465
3596
|
* Type definition for the global error handler function
|
|
3466
3597
|
* @public
|
|
3467
3598
|
*/
|
|
3468
|
-
type GlobalErrorHandler = (error: Error, errorInfo:
|
|
3599
|
+
type GlobalErrorHandler = (error: Error, errorInfo: ErrorInfo, errorId: string, componentName: string) => void;
|
|
3469
3600
|
/**
|
|
3470
3601
|
* Props for ErrorBoundaryProvider component
|
|
3471
3602
|
* @public
|
|
@@ -3476,6 +3607,7 @@ interface ErrorBoundaryProviderProps {
|
|
|
3476
3607
|
/** Global error handler that will be used by all ErrorBoundary instances unless overridden */
|
|
3477
3608
|
defaultErrorHandler?: GlobalErrorHandler;
|
|
3478
3609
|
}
|
|
3610
|
+
|
|
3479
3611
|
/**
|
|
3480
3612
|
* Provider component for ErrorBoundary global error handler configuration
|
|
3481
3613
|
*
|
|
@@ -4069,7 +4201,7 @@ interface PublicPageHeaderProps {
|
|
|
4069
4201
|
/** Custom event logo component */
|
|
4070
4202
|
customEventLogo?: ReactNode;
|
|
4071
4203
|
}
|
|
4072
|
-
declare function PublicPageHeader({ event, eventCode, title, description, showEventLogo, showAppLogo, className, children, customEventLogo }: PublicPageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
4204
|
+
declare function PublicPageHeader({ event, eventCode: _eventCode, title, description, showEventLogo, showAppLogo, className, children, customEventLogo }: PublicPageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
4073
4205
|
interface PublicPageFooterProps {
|
|
4074
4206
|
/** The event data for this public page */
|
|
4075
4207
|
event: Event;
|
|
@@ -4091,7 +4223,7 @@ interface PublicPageFooterProps {
|
|
|
4091
4223
|
/** Footer content - children to render inside footer */
|
|
4092
4224
|
children?: React__default.ReactNode;
|
|
4093
4225
|
}
|
|
4094
|
-
declare function PublicPageFooter({ event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
|
|
4226
|
+
declare function PublicPageFooter({ event: _event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
|
|
4095
4227
|
/**
|
|
4096
4228
|
* Layout component for public pages that don't require authentication
|
|
4097
4229
|
*
|
|
@@ -4106,15 +4238,6 @@ declare function PublicPageFooter({ event, companyName, year, links, className,
|
|
|
4106
4238
|
*/
|
|
4107
4239
|
declare function PublicPageLayout({ eventCode, children, event, isLoading, error, refetch, showFooter, errorFallback: ErrorFallback, loadingFallback: LoadingFallback, customHeader, customFooter, showValidationErrors, loadingMessage }: PublicPageLayoutProps): react_jsx_runtime.JSX.Element;
|
|
4108
4240
|
|
|
4109
|
-
interface PublicPageContextType {
|
|
4110
|
-
isPublicPage: true;
|
|
4111
|
-
supabase: ReturnType<typeof createClient<Database>> | null;
|
|
4112
|
-
appName: string | null;
|
|
4113
|
-
environment: {
|
|
4114
|
-
supabaseUrl: string | null;
|
|
4115
|
-
supabaseKey: string | null;
|
|
4116
|
-
};
|
|
4117
|
-
}
|
|
4118
4241
|
interface PublicPageProviderProps {
|
|
4119
4242
|
children: ReactNode;
|
|
4120
4243
|
/** Application name for logo display and branding. Should match the APP_NAME constant used in App.tsx */
|
|
@@ -4131,6 +4254,26 @@ interface PublicPageProviderProps {
|
|
|
4131
4254
|
* - Provides appName for consistent logo display
|
|
4132
4255
|
*/
|
|
4133
4256
|
declare function PublicPageProvider({ children, appName }: PublicPageProviderProps): react_jsx_runtime.JSX.Element;
|
|
4257
|
+
|
|
4258
|
+
interface PublicPageContextType {
|
|
4259
|
+
isPublicPage: true;
|
|
4260
|
+
supabase: ReturnType<typeof createClient<Database>> | null;
|
|
4261
|
+
appName: string | null;
|
|
4262
|
+
environment: {
|
|
4263
|
+
supabaseUrl: string | null;
|
|
4264
|
+
supabaseKey: string | null;
|
|
4265
|
+
};
|
|
4266
|
+
}
|
|
4267
|
+
|
|
4268
|
+
/**
|
|
4269
|
+
* @file usePublicPageContext Hook
|
|
4270
|
+
* @package @jmruthers/pace-core
|
|
4271
|
+
* @module Components/PublicLayout
|
|
4272
|
+
* @since 1.0.0
|
|
4273
|
+
*
|
|
4274
|
+
* Hooks for accessing public page context.
|
|
4275
|
+
*/
|
|
4276
|
+
|
|
4134
4277
|
/**
|
|
4135
4278
|
* Hook to access public page context
|
|
4136
4279
|
*
|
|
@@ -4144,4 +4287,4 @@ declare function usePublicPageContext(): PublicPageContextType;
|
|
|
4144
4287
|
*/
|
|
4145
4288
|
declare function useIsPublicPage(): boolean;
|
|
4146
4289
|
|
|
4147
|
-
export { type DialogContentProps as $, AddressField as A, Button as B, Card as C, TableHeader as D, TableBody as E, TableCaption as F, TableCell as G, TableFooter as H, Input as I, TableHead as J, TableRow as K, Label as L, Dialog as M, DialogPortal as N, DialogTrigger as O, Progress as P, DialogClose as Q, DialogContent as R, Switch as S, Textarea as T, DialogHeader as U, DialogBody as V, DialogFooter as W, DialogTitle as X, DialogDescription as Y, type DialogProps as Z, type DialogTriggerProps as _, type ButtonProps as a,
|
|
4290
|
+
export { type DialogContentProps as $, AddressField as A, Button as B, Card as C, TableHeader as D, TableBody as E, TableCaption as F, TableCell as G, TableFooter as H, Input as I, TableHead as J, TableRow as K, Label as L, Dialog as M, DialogPortal as N, DialogTrigger as O, Progress as P, DialogClose as Q, DialogContent as R, Switch as S, Textarea as T, DialogHeader as U, DialogBody as V, DialogFooter as W, DialogTitle as X, DialogDescription as Y, type DialogProps as Z, type DialogTriggerProps as _, type ButtonProps as a, NavigationMenu as a$, type DialogPortalProps as a0, type DialogCloseProps as a1, type DialogHeaderProps as a2, type DialogFooterProps as a3, type DialogBodyProps as a4, type DialogSize as a5, Select as a6, SelectGroup as a7, SelectValue as a8, SelectTrigger as a9, Tooltip as aA, TooltipTrigger as aB, TooltipContent as aC, TooltipProvider as aD, TooltipRoot as aE, DataTable as aF, type DataTableProps as aG, Form as aH, FormField as aI, type FormProps as aJ, type FormFieldProps as aK, LoginForm as aL, type LoginFormProps as aM, Header as aN, Footer as aO, type FooterProps as aP, PublicPageLayout as aQ, PublicPageHeader as aR, PublicPageFooter as aS, PublicPageProvider as aT, usePublicPageContext as aU, useIsPublicPage as aV, type PublicPageLayoutProps as aW, type PublicPageHeaderProps as aX, type PublicPageFooterProps as aY, ProtectedRoute as aZ, type ProtectedRouteProps as a_, SelectContent as aa, SelectLabel as ab, SelectItem as ac, SelectSeparator as ad, Tabs as ae, TabsList as af, TabsTrigger as ag, TabsContent as ah, type TabsProps as ai, type TabsListProps as aj, type TabsTriggerProps as ak, type TabsContentProps as al, Calendar as am, type CalendarProps as an, DatePickerWithTimezone as ao, type DatePickerWithTimezoneProps as ap, Toast as aq, Toaster as ar, ToastAction as as, ToastProvider as at, ToastViewport as au, ToastTitle as av, ToastDescription as aw, ToastClose as ax, type ToastActionElement as ay, type ToastProps as az, CardHeader as b, ContextSelector as b0, type ContextSelectorProps as b1, UserMenu as b2, ErrorBoundary as b3, ErrorBoundaryProvider as b4, type ErrorBoundaryProps as b5, type ErrorBoundaryState as b6, type ErrorBoundaryProviderProps as b7, type GlobalErrorHandler as b8, LoadingSpinner as b9, SessionRestorationLoader as ba, type SessionRestorationLoaderProps as bb, FileUpload as bc, type FileUploadProps as bd, FileDisplay as be, type FileDisplayProps as bf, useFileReference as bg, useFileReferenceForRecord as bh, useFileReferenceById as bi, useFilesByCategory as bj, type UseFileReferenceOptions as bk, type UseFileReferenceReturn as bl, type UseFileReferenceForRecordReturn as bm, type PaceAppLayoutProps as bn, PaceAppLayout as bo, type PaceLoginPageProps as bp, PaceLoginPage as bq, type UserMenuProps as br, PasswordChangeForm as bs, CardFooter as c, CardTitle as d, CardDescription as e, CardContent as f, CardActions as g, type CardProps as h, type CardActionsProps as i, type InputProps as j, type AddressFieldProps as k, type AddressFieldRef as l, type LabelProps as m, type TextareaProps as n, Alert as o, AlertTitle as p, AlertDescription as q, Avatar as r, type AvatarProps as s, Badge as t, type BadgeProps as u, type BadgeVariant as v, Checkbox as w, type SwitchProps as x, type ProgressProps as y, Table as z };
|