@jmruthers/pace-core 0.6.4 → 0.6.6
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/CHANGELOG.md +104 -0
- package/README.md +5 -403
- package/core-usage-manifest.json +93 -0
- package/cursor-rules/00-pace-core-compliance.mdc +128 -26
- package/cursor-rules/01-standards-compliance.mdc +49 -8
- package/cursor-rules/02-project-structure.mdc +6 -0
- package/cursor-rules/03-solid-principles.mdc +2 -0
- package/cursor-rules/04-testing-standards.mdc +2 -0
- package/cursor-rules/05-bug-reports-and-features.mdc +2 -0
- package/cursor-rules/06-code-quality.mdc +2 -0
- package/cursor-rules/07-tech-stack-compliance.mdc +2 -0
- package/cursor-rules/08-markup-quality.mdc +52 -27
- package/cursor-rules/09-rbac-compliance.mdc +462 -0
- package/cursor-rules/10-error-handling-patterns.mdc +179 -0
- package/cursor-rules/11-performance-optimization.mdc +169 -0
- package/cursor-rules/12-ci-cd-integration.mdc +150 -0
- package/dist/{AuthService-Cb34EQs3.d.ts → AuthService-DmfO5rGS.d.ts} +10 -0
- package/dist/{DataTable-BMRU8a1j.d.ts → DataTable-2N_tqbfq.d.ts} +1 -1
- package/dist/DataTable-LRJL4IRV.js +15 -0
- package/dist/{PublicPageProvider-DEMpysFR.d.ts → PublicPageProvider-BBH6Vqg7.d.ts} +72 -139
- package/dist/UnifiedAuthProvider-ZT6TIGM7.js +7 -0
- package/dist/api-Y4MQWOFW.js +4 -0
- package/dist/audit-MYQXYZFU.js +3 -0
- package/dist/{chunk-J36DSWQK.js → chunk-2HGJFNAH.js} +8 -28
- package/dist/{chunk-OEWDTMG7.js → chunk-3O3WHILE.js} +38 -121
- package/dist/{chunk-M43Y4SSO.js → chunk-3QC3KRHK.js} +1 -14
- package/dist/{chunk-DGUM43GV.js → chunk-3RG5ZIWI.js} +1 -4
- package/dist/{chunk-QXHPKYJV.js → chunk-4SXLQIZO.js} +1 -26
- package/dist/chunk-4T7OBVTU.js +62 -0
- package/dist/{chunk-E66EQZE6.js → chunk-6GLLNA6U.js} +3 -9
- package/dist/{chunk-ZSAAAMVR.js → chunk-6QYDGKQY.js} +1 -4
- package/dist/{chunk-NN6WWZ5U.js → chunk-7TYHROIV.js} +579 -563
- package/dist/{chunk-M7MPQISP.js → chunk-A55DK444.js} +9 -16
- package/dist/{chunk-63FOKYGO.js → chunk-AHU7G2R5.js} +2 -11
- package/dist/{chunk-L4OXEN46.js → chunk-BVP2BCJF.js} +2 -16
- package/dist/chunk-C7NSAPTL.js +1 -0
- package/dist/{chunk-YKRAFF5K.js → chunk-FENMYN2U.js} +73 -149
- package/dist/{chunk-AVMLPIM7.js → chunk-FTCRZOG2.js} +284 -432
- package/dist/{chunk-G37KK66H.js → chunk-FYHN4DD5.js} +60 -19
- package/dist/{chunk-VBXEHIUJ.js → chunk-HF6O3O37.js} +6 -88
- package/dist/{chunk-I6DAQMWX.js → chunk-LAZMKTTF.js} +930 -891
- package/dist/{chunk-5EC5MEWX.js → chunk-MAGBIDNS.js} +77 -222
- package/dist/chunk-MBADTM7L.js +64 -0
- package/dist/chunk-OHIK3MIO.js +994 -0
- package/dist/{chunk-6SOIHG6Z.js → chunk-S7DKJPLT.js} +115 -44
- package/dist/{chunk-FMUCXFII.js → chunk-SD6WQY43.js} +1 -5
- package/dist/{chunk-PWLANIRT.js → chunk-TTRFSOKR.js} +1 -7
- package/dist/{chunk-5DRSZLL2.js → chunk-UH3NTO3F.js} +1 -6
- package/dist/{chunk-FFQEQTNW.js → chunk-UIYSCEV7.js} +134 -45
- package/dist/{chunk-3LPHPB62.js → chunk-ZFYPMX46.js} +271 -87
- package/dist/{chunk-7JPAB3T5.js → chunk-ZS5VO5JB.js} +1989 -1283
- package/dist/components.d.ts +6 -6
- package/dist/components.js +57 -267
- package/dist/{database.generated-CzIvgcPu.d.ts → database.generated-CcnC_DRc.d.ts} +4795 -3691
- package/dist/eslint-rules/index.cjs +22 -0
- package/dist/eslint-rules/rules/compliance.cjs +348 -0
- package/dist/eslint-rules/rules/components.cjs +113 -0
- package/dist/eslint-rules/rules/imports.cjs +102 -0
- package/dist/eslint-rules/rules/rbac.cjs +790 -0
- package/dist/eslint-rules/utils/helpers.cjs +42 -0
- package/dist/eslint-rules/utils/manifest-loader.cjs +75 -0
- package/dist/hooks.d.ts +5 -5
- package/dist/hooks.js +62 -270
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.js +1 -0
- package/dist/index.d.ts +36 -26
- package/dist/index.js +87 -690
- package/dist/providers.d.ts +2 -2
- package/dist/providers.js +8 -35
- package/dist/rbac/eslint-rules.d.ts +46 -44
- package/dist/rbac/eslint-rules.js +7 -4
- package/dist/rbac/index.d.ts +124 -594
- package/dist/rbac/index.js +14 -207
- package/dist/styles/index.js +2 -12
- package/dist/theming/runtime.js +3 -19
- package/dist/{timezone-CHhWg6b4.d.ts → timezone-BZe_eUxx.d.ts} +175 -1
- package/dist/{types-CkbwOr4Y.d.ts → types-B-K_5VnO.d.ts} +4 -0
- package/dist/types-t9H8qKRw.d.ts +55 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js +7 -94
- package/dist/{usePublicRouteParams-i3qtoBgg.d.ts → usePublicRouteParams-COZ28Mvq.d.ts} +9 -9
- package/dist/utils.d.ts +24 -117
- package/dist/utils.js +54 -392
- package/docs/README.md +16 -6
- package/docs/api/README.md +4 -402
- package/docs/api/modules.md +454 -930
- package/docs/api-reference/components.md +3 -1
- package/docs/api-reference/deprecated.md +31 -6
- package/docs/api-reference/rpc-functions.md +78 -3
- package/docs/best-practices/accessibility.md +6 -3
- package/docs/getting-started/cursor-rules.md +3 -23
- package/docs/getting-started/dependencies.md +650 -0
- package/docs/getting-started/installation-guide.md +20 -7
- package/docs/getting-started/quick-start.md +23 -12
- package/docs/implementation-guides/permission-enforcement.md +4 -0
- package/docs/rbac/MIGRATION_GUIDE.md +819 -0
- package/docs/rbac/RBAC_CONTRACT.md +724 -0
- package/docs/rbac/README.md +12 -3
- package/docs/rbac/edge-functions-guide.md +376 -0
- package/docs/rbac/secure-client-protection.md +0 -34
- package/docs/standards/00-pace-core-compliance.md +967 -0
- package/docs/standards/01-standards-compliance.md +188 -0
- package/docs/standards/02-project-structure.md +985 -0
- package/docs/standards/03-solid-principles.md +39 -0
- package/docs/standards/04-testing-standards.md +36 -0
- package/docs/standards/05-bug-reports-and-features.md +27 -0
- package/docs/standards/{04-code-style-standard.md → 06-code-quality.md} +2 -0
- package/docs/standards/07-tech-stack-compliance.md +30 -0
- package/docs/standards/08-markup-quality.md +345 -0
- package/docs/standards/{07-rbac-and-rls-standard.md → 09-rbac-compliance.md} +149 -54
- package/docs/standards/10-error-handling-patterns.md +401 -0
- package/docs/standards/11-performance-optimization.md +348 -0
- package/docs/standards/12-ci-cd-integration.md +370 -0
- package/docs/standards/ALIGNMENT_REVIEW_SUMMARY.md +192 -0
- package/docs/standards/README.md +62 -33
- package/docs/troubleshooting/organisation-context-setup.md +42 -19
- package/eslint-config-pace-core.cjs +20 -4
- package/package.json +31 -21
- package/scripts/audit/audit-compliance.cjs +1295 -0
- package/scripts/audit/audit-components.cjs +260 -0
- package/scripts/audit/audit-dependencies.cjs +395 -0
- package/scripts/audit/audit-rbac.cjs +954 -0
- package/scripts/audit/audit-standards.cjs +1268 -0
- package/scripts/audit/index.cjs +1898 -194
- package/scripts/install-cursor-rules.cjs +259 -8
- package/scripts/validate-master.js +1 -1
- package/src/__tests__/fixtures/supabase.ts +1 -1
- package/src/__tests__/helpers/__tests__/component-test-utils.test.tsx +1 -1
- package/src/__tests__/helpers/__tests__/optimized-test-setup.test.ts +1 -1
- package/src/__tests__/helpers/__tests__/supabaseMock.test.ts +1 -1
- package/src/__tests__/helpers/__tests__/test-utils.test.tsx +3 -3
- package/src/__tests__/helpers/component-test-utils.tsx +1 -1
- package/src/__tests__/helpers/supabaseMock.ts +2 -2
- package/src/__tests__/public-recipe-view.test.ts +38 -9
- package/src/components/Button/Button.tsx +5 -1
- package/src/components/ContextSelector/ContextSelector.tsx +42 -39
- package/src/components/DataTable/__tests__/keyboard.test.tsx +15 -2
- package/src/components/DataTable/components/DataTableBody.tsx +55 -31
- package/src/components/DataTable/components/DataTableCore.tsx +186 -13
- package/src/components/DataTable/components/DataTableLayout.tsx +30 -5
- package/src/components/DataTable/components/EditFields.tsx +23 -3
- package/src/components/DataTable/components/EditableRow.tsx +7 -2
- package/src/components/DataTable/components/ImportModal.tsx +4 -6
- package/src/components/DataTable/components/RowComponent.tsx +12 -0
- package/src/components/DataTable/components/ViewRowModal.tsx +4 -4
- package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +455 -96
- package/src/components/DataTable/components/__tests__/ViewRowModal.test.tsx +122 -58
- package/src/components/DataTable/components/hooks/usePermissionTracking.ts +0 -4
- package/src/components/DataTable/core/DataTableContext.tsx +1 -1
- package/src/components/DataTable/hooks/__tests__/useDataTableState.test.ts +51 -47
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +24 -21
- package/src/components/DataTable/hooks/useDataTableState.ts +125 -9
- package/src/components/DataTable/hooks/useTableColumns.ts +40 -2
- package/src/components/DataTable/hooks/useTableHandlers.ts +11 -0
- package/src/components/DataTable/types.ts +5 -0
- package/src/components/DateTimeField/DateTimeField.tsx +20 -20
- package/src/components/DateTimeField/README.md +5 -2
- package/src/components/Dialog/Dialog.test.tsx +361 -318
- package/src/components/Dialog/Dialog.tsx +1154 -323
- package/src/components/Dialog/index.ts +3 -3
- package/src/components/FileDisplay/FileDisplay.test.tsx +45 -2
- package/src/components/FileDisplay/FileDisplay.tsx +28 -22
- package/src/components/Form/Form.test.tsx +9 -10
- package/src/components/Form/Form.tsx +369 -9
- package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +28 -28
- package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +40 -54
- package/src/components/LoginForm/LoginForm.tsx +2 -2
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +14 -13
- package/src/components/NavigationMenu/NavigationMenu.tsx +2 -2
- package/src/components/NavigationMenu/useNavigationFiltering.ts +11 -21
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +6 -4
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +30 -41
- package/src/components/PaceAppLayout/README.md +10 -9
- package/src/components/PaceAppLayout/test-setup.tsx +40 -31
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +108 -61
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +27 -3
- package/src/components/PasswordChange/PasswordChangeForm.test.tsx +61 -0
- package/src/components/PasswordChange/PasswordChangeForm.tsx +20 -13
- package/src/components/PublicLayout/PublicLayout.test.tsx +7 -3
- package/src/components/PublicLayout/PublicPageLayout.tsx +5 -8
- package/src/components/Select/Select.tsx +23 -21
- package/src/components/Select/types.ts +1 -1
- package/src/components/UserMenu/UserMenu.test.tsx +38 -6
- package/src/components/UserMenu/UserMenu.tsx +39 -34
- package/src/components/index.ts +3 -4
- package/src/eslint-rules/index.cjs +22 -0
- package/src/eslint-rules/rules/compliance.cjs +348 -0
- package/src/eslint-rules/rules/components.cjs +113 -0
- package/src/eslint-rules/rules/imports.cjs +102 -0
- package/src/eslint-rules/rules/rbac.cjs +790 -0
- package/src/eslint-rules/utils/helpers.cjs +42 -0
- package/src/eslint-rules/utils/manifest-loader.cjs +75 -0
- package/src/hooks/__tests__/hooks.integration.test.tsx +6 -8
- package/src/hooks/__tests__/useAppConfig.unit.test.ts +129 -67
- package/src/hooks/__tests__/usePublicEvent.simple.test.ts +149 -67
- package/src/hooks/__tests__/usePublicEvent.test.ts +149 -79
- package/src/hooks/__tests__/usePublicEvent.unit.test.ts +158 -109
- package/src/hooks/__tests__/useSessionDraft.test.ts +163 -0
- package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +10 -5
- package/src/hooks/public/usePublicEvent.ts +62 -190
- package/src/hooks/public/usePublicEventLogo.test.ts +70 -17
- package/src/hooks/public/usePublicEventLogo.ts +19 -9
- package/src/hooks/useAppConfig.ts +26 -24
- package/src/hooks/useEventTheme.test.ts +211 -233
- package/src/hooks/useEventTheme.ts +19 -28
- package/src/hooks/useEvents.ts +11 -7
- package/src/hooks/useKeyboardShortcuts.ts +1 -1
- package/src/hooks/useOrganisationPermissions.ts +9 -11
- package/src/hooks/useOrganisations.ts +13 -7
- package/src/hooks/useQueryCache.ts +0 -1
- package/src/hooks/useSessionDraft.ts +380 -0
- package/src/hooks/useSessionRestoration.ts +3 -1
- package/src/icons/index.ts +27 -0
- package/src/index.ts +16 -1
- package/src/providers/OrganisationProvider.tsx +23 -14
- package/src/providers/services/EventServiceProvider.tsx +1 -24
- package/src/providers/services/UnifiedAuthProvider.tsx +5 -48
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +3 -0
- package/src/rbac/README.md +20 -20
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +7 -457
- package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +33 -7
- package/src/rbac/adapters.tsx +7 -295
- package/src/rbac/api.test.ts +44 -56
- package/src/rbac/api.ts +10 -17
- package/src/rbac/cache-invalidation.ts +0 -1
- package/src/rbac/compliance/index.ts +10 -0
- package/src/rbac/compliance/pattern-detector.ts +553 -0
- package/src/rbac/compliance/runtime-compliance.ts +22 -0
- package/src/rbac/components/AccessDenied.tsx +150 -0
- package/src/rbac/components/NavigationGuard.tsx +12 -20
- package/src/rbac/components/PagePermissionGuard.tsx +4 -24
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +21 -8
- package/src/rbac/components/index.ts +3 -41
- package/src/rbac/eslint-rules.js +1 -1
- package/src/rbac/hooks/index.ts +0 -3
- package/src/rbac/hooks/permissions/index.ts +0 -3
- package/src/rbac/hooks/permissions/useAccessLevel.ts +4 -8
- package/src/rbac/hooks/usePermissions.ts +0 -3
- package/src/rbac/hooks/useRBAC.test.ts +21 -3
- package/src/rbac/hooks/useRBAC.ts +4 -3
- package/src/rbac/hooks/useResolvedScope.test.ts +57 -47
- package/src/rbac/hooks/useResolvedScope.ts +58 -140
- package/src/rbac/hooks/useResourcePermissions.test.ts +241 -60
- package/src/rbac/hooks/useResourcePermissions.ts +182 -63
- package/src/rbac/hooks/useRoleManagement.test.ts +65 -22
- package/src/rbac/hooks/useRoleManagement.ts +147 -19
- package/src/rbac/hooks/useSecureSupabase.ts +4 -8
- package/src/rbac/index.ts +7 -9
- package/src/rbac/permissions.ts +17 -17
- package/src/rbac/utils/contextValidator.ts +45 -7
- package/src/services/AuthService.ts +132 -23
- package/src/services/EventService.ts +4 -97
- package/src/services/InactivityService.ts +155 -58
- package/src/services/OrganisationService.ts +7 -44
- package/src/services/__tests__/OrganisationService.test.ts +26 -8
- package/src/services/base/BaseService.ts +0 -3
- package/src/styles/core.css +4 -0
- package/src/types/database.generated.ts +4733 -3809
- package/src/utils/__tests__/organisationContext.unit.test.ts +9 -10
- package/src/utils/context/organisationContext.test.ts +13 -28
- package/src/utils/context/organisationContext.ts +21 -52
- package/src/utils/dynamic/dynamicUtils.ts +1 -1
- package/src/utils/file-reference/index.ts +39 -15
- package/src/utils/formatting/formatDateTime.test.ts +3 -2
- package/src/utils/formatting/formatTime.test.ts +3 -2
- package/src/utils/google-places/loadGoogleMapsScript.ts +29 -4
- package/src/utils/index.ts +4 -1
- package/src/utils/persistence/__tests__/keyDerivation.test.ts +135 -0
- package/src/utils/persistence/__tests__/sensitiveFieldDetection.test.ts +123 -0
- package/src/utils/persistence/keyDerivation.ts +304 -0
- package/src/utils/persistence/sensitiveFieldDetection.ts +212 -0
- package/src/utils/security/secureStorage.ts +5 -5
- package/src/utils/storage/helpers.ts +3 -3
- package/src/utils/supabase/createBaseClient.ts +147 -0
- package/src/utils/timezone/timezone.test.ts +1 -2
- package/src/utils/timezone/timezone.ts +1 -1
- package/src/utils/validation/csrf.ts +4 -4
- package/cursor-rules/CHANGELOG.md +0 -119
- package/cursor-rules/README.md +0 -192
- package/dist/DataTable-E7YQZD7D.js +0 -175
- package/dist/DataTable-E7YQZD7D.js.map +0 -1
- package/dist/UnifiedAuthProvider-QPXO24B4.js +0 -18
- package/dist/UnifiedAuthProvider-QPXO24B4.js.map +0 -1
- package/dist/api-6LVZTHDS.js +0 -52
- package/dist/api-6LVZTHDS.js.map +0 -1
- package/dist/audit-V53FV5AG.js +0 -17
- package/dist/audit-V53FV5AG.js.map +0 -1
- package/dist/chunk-36LVWXB2.js +0 -227
- package/dist/chunk-36LVWXB2.js.map +0 -1
- package/dist/chunk-3LPHPB62.js.map +0 -1
- package/dist/chunk-5DRSZLL2.js.map +0 -1
- package/dist/chunk-5EC5MEWX.js.map +0 -1
- package/dist/chunk-63FOKYGO.js.map +0 -1
- package/dist/chunk-6SOIHG6Z.js.map +0 -1
- package/dist/chunk-7JPAB3T5.js.map +0 -1
- package/dist/chunk-ATKZM7RX.js +0 -2053
- package/dist/chunk-ATKZM7RX.js.map +0 -1
- package/dist/chunk-AVMLPIM7.js.map +0 -1
- package/dist/chunk-DGUM43GV.js.map +0 -1
- package/dist/chunk-E66EQZE6.js.map +0 -1
- package/dist/chunk-FFQEQTNW.js.map +0 -1
- package/dist/chunk-FMUCXFII.js.map +0 -1
- package/dist/chunk-G37KK66H.js.map +0 -1
- package/dist/chunk-I6DAQMWX.js.map +0 -1
- package/dist/chunk-J36DSWQK.js.map +0 -1
- package/dist/chunk-KQCRWDSA.js +0 -1
- package/dist/chunk-KQCRWDSA.js.map +0 -1
- package/dist/chunk-L4OXEN46.js.map +0 -1
- package/dist/chunk-LMC26NLJ.js +0 -84
- package/dist/chunk-LMC26NLJ.js.map +0 -1
- package/dist/chunk-M43Y4SSO.js.map +0 -1
- package/dist/chunk-M7MPQISP.js.map +0 -1
- package/dist/chunk-NN6WWZ5U.js.map +0 -1
- package/dist/chunk-OEWDTMG7.js.map +0 -1
- package/dist/chunk-PWLANIRT.js.map +0 -1
- package/dist/chunk-QXHPKYJV.js.map +0 -1
- package/dist/chunk-VBXEHIUJ.js.map +0 -1
- package/dist/chunk-YKRAFF5K.js.map +0 -1
- package/dist/chunk-ZSAAAMVR.js.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/contextValidator-OOPCLPZW.js +0 -9
- package/dist/contextValidator-OOPCLPZW.js.map +0 -1
- package/dist/eslint-rules/pace-core-compliance.cjs +0 -510
- package/dist/hooks.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers.js.map +0 -1
- package/dist/rbac/eslint-rules.js.map +0 -1
- package/dist/rbac/index.js.map +0 -1
- package/dist/styles/index.js.map +0 -1
- package/dist/theming/runtime.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/docs/standards/01-architecture-standard.md +0 -44
- package/docs/standards/02-api-and-rpc-standard.md +0 -39
- package/docs/standards/03-component-standard.md +0 -32
- package/docs/standards/05-security-standard.md +0 -44
- package/docs/standards/06-testing-and-docs-standard.md +0 -29
- package/docs/standards/pace-core-compliance.md +0 -432
- package/scripts/audit/core/checks/accessibility.cjs +0 -197
- package/scripts/audit/core/checks/api-usage.cjs +0 -191
- package/scripts/audit/core/checks/bundle.cjs +0 -142
- package/scripts/audit/core/checks/compliance.cjs +0 -2706
- package/scripts/audit/core/checks/config.cjs +0 -54
- package/scripts/audit/core/checks/coverage.cjs +0 -84
- package/scripts/audit/core/checks/dependencies.cjs +0 -994
- package/scripts/audit/core/checks/documentation.cjs +0 -268
- package/scripts/audit/core/checks/environment.cjs +0 -116
- package/scripts/audit/core/checks/error-handling.cjs +0 -340
- package/scripts/audit/core/checks/forms.cjs +0 -172
- package/scripts/audit/core/checks/heuristics.cjs +0 -68
- package/scripts/audit/core/checks/hooks.cjs +0 -334
- package/scripts/audit/core/checks/imports.cjs +0 -244
- package/scripts/audit/core/checks/performance.cjs +0 -325
- package/scripts/audit/core/checks/routes.cjs +0 -117
- package/scripts/audit/core/checks/state.cjs +0 -130
- package/scripts/audit/core/checks/structure.cjs +0 -65
- package/scripts/audit/core/checks/style.cjs +0 -584
- package/scripts/audit/core/checks/testing.cjs +0 -122
- package/scripts/audit/core/checks/typescript.cjs +0 -61
- package/scripts/audit/core/scanner.cjs +0 -199
- package/scripts/audit/core/utils.cjs +0 -137
- package/scripts/audit/reporters/console.cjs +0 -151
- package/scripts/audit/reporters/json.cjs +0 -54
- package/scripts/audit/reporters/markdown.cjs +0 -124
- package/scripts/audit-consuming-app.cjs +0 -86
- package/src/eslint-rules/pace-core-compliance.cjs +0 -510
- package/src/eslint-rules/pace-core-compliance.js +0 -638
- package/src/rbac/components/EnhancedNavigationMenu.test.tsx +0 -555
- package/src/rbac/components/EnhancedNavigationMenu.tsx +0 -293
- package/src/rbac/components/NavigationProvider.test.tsx +0 -481
- package/src/rbac/components/NavigationProvider.tsx +0 -345
- package/src/rbac/components/PagePermissionProvider.test.tsx +0 -476
- package/src/rbac/components/PagePermissionProvider.tsx +0 -279
- package/src/rbac/components/PermissionEnforcer.tsx +0 -312
- package/src/rbac/components/RoleBasedRouter.tsx +0 -440
- package/src/rbac/components/SecureDataProvider.test.tsx +0 -543
- package/src/rbac/components/SecureDataProvider.tsx +0 -339
- package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +0 -620
- package/src/rbac/components/__tests__/NavigationProvider.test.tsx +0 -726
- package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +0 -661
- package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +0 -881
- package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +0 -783
- package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +0 -645
- package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +0 -659
- package/src/rbac/hooks/permissions/useCachedPermissions.ts +0 -79
- package/src/rbac/hooks/permissions/useHasAllPermissions.ts +0 -90
- package/src/rbac/hooks/permissions/useHasAnyPermission.ts +0 -90
package/docs/api/modules.md
CHANGED
|
@@ -69,6 +69,14 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
69
69
|
- [EmptyStateConfig](undefined)
|
|
70
70
|
- [ExportOptions](undefined)
|
|
71
71
|
- [ExportColumn](undefined)
|
|
72
|
+
- [DialogProps](undefined)
|
|
73
|
+
- [DialogTriggerProps](undefined)
|
|
74
|
+
- [DialogContentProps](undefined)
|
|
75
|
+
- [DialogPortalProps](undefined)
|
|
76
|
+
- [DialogCloseProps](undefined)
|
|
77
|
+
- [DialogHeaderProps](undefined)
|
|
78
|
+
- [DialogFooterProps](undefined)
|
|
79
|
+
- [DialogBodyProps](undefined)
|
|
72
80
|
- [ErrorBoundaryState](undefined)
|
|
73
81
|
- [ErrorBoundaryProps](undefined)
|
|
74
82
|
- [ErrorBoundaryProviderProps](undefined)
|
|
@@ -121,23 +129,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
121
129
|
- [RuntimeComplianceResult](undefined)
|
|
122
130
|
- [SetupIssue](undefined)
|
|
123
131
|
- [ComplianceResult](undefined)
|
|
124
|
-
- [
|
|
132
|
+
- [AccessDeniedProps](undefined)
|
|
125
133
|
- [NavigationGuardProps](undefined)
|
|
126
|
-
- [NavigationAccessRecord](undefined)
|
|
127
|
-
- [NavigationContextType](undefined)
|
|
128
|
-
- [NavigationProviderProps](undefined)
|
|
129
134
|
- [PagePermissionGuardProps](undefined)
|
|
130
|
-
- [PagePermissionContextType](undefined)
|
|
131
|
-
- [PageAccessRecord](undefined)
|
|
132
|
-
- [PagePermissionProviderProps](undefined)
|
|
133
|
-
- [PermissionEnforcerProps](undefined)
|
|
134
|
-
- [RouteConfig](undefined)
|
|
135
|
-
- [RouteAccessRecord](undefined)
|
|
136
|
-
- [RoleBasedRouterContextType](undefined)
|
|
137
|
-
- [RoleBasedRouterProps](undefined)
|
|
138
|
-
- [DataAccessRecord](undefined)
|
|
139
|
-
- [SecureDataContextType](undefined)
|
|
140
|
-
- [SecureDataProviderProps](undefined)
|
|
141
135
|
- [RBACConfig](undefined)
|
|
142
136
|
- [RBACLogger](undefined)
|
|
143
137
|
- [UseResolvedScopeOptions](undefined)
|
|
@@ -200,6 +194,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
200
194
|
- [BadgeVariant](undefined)
|
|
201
195
|
- [GetRowId](undefined)
|
|
202
196
|
- [DataTableFeatureConfig](undefined)
|
|
197
|
+
- [DialogSize](undefined)
|
|
203
198
|
- [GlobalErrorHandler](undefined)
|
|
204
199
|
- [NavigationMode](undefined)
|
|
205
200
|
- [UseFileReferenceOptions](undefined)
|
|
@@ -275,9 +270,8 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
275
270
|
- [Dialog](undefined)
|
|
276
271
|
- [DialogTrigger](undefined)
|
|
277
272
|
- [DialogPortal](undefined)
|
|
278
|
-
- [DialogClose](undefined)
|
|
279
|
-
- [DialogOverlay](undefined)
|
|
280
273
|
- [DialogContent](undefined)
|
|
274
|
+
- [DialogClose](undefined)
|
|
281
275
|
- [DialogHeader](undefined)
|
|
282
276
|
- [DialogBody](undefined)
|
|
283
277
|
- [DialogFooter](undefined)
|
|
@@ -383,15 +377,11 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
383
377
|
- [OrganisationServiceProvider](undefined)
|
|
384
378
|
- [useUnifiedAuth](undefined)
|
|
385
379
|
- [UnifiedAuthProvider](undefined)
|
|
386
|
-
- [PermissionGuard](undefined)
|
|
387
|
-
- [AccessLevelGuard](undefined)
|
|
388
380
|
- [withPermissionGuard](undefined)
|
|
389
381
|
- [withAccessLevelGuard](undefined)
|
|
390
382
|
- [withRoleGuard](undefined)
|
|
391
383
|
- [createRBACMiddleware](undefined)
|
|
392
384
|
- [createRBACExpressMiddleware](undefined)
|
|
393
|
-
- [hasPermissionCached](undefined)
|
|
394
|
-
- [hasAnyPermissionCached](undefined)
|
|
395
385
|
- [setupRBAC](undefined)
|
|
396
386
|
- [getAccessLevel](undefined)
|
|
397
387
|
- [getPermissionMap](undefined)
|
|
@@ -399,7 +389,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
399
389
|
- [getRoleContext](undefined)
|
|
400
390
|
- [isPermitted](undefined)
|
|
401
391
|
- [isPermittedCached](undefined)
|
|
402
|
-
- [hasPermission](undefined)
|
|
403
392
|
- [hasAnyPermission](undefined)
|
|
404
393
|
- [hasAllPermissions](undefined)
|
|
405
394
|
- [createAuditManager](undefined)
|
|
@@ -417,18 +406,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
417
406
|
- [isRBACInitialized](undefined)
|
|
418
407
|
- [getSetupIssues](undefined)
|
|
419
408
|
- [validateRBACSetup](undefined)
|
|
420
|
-
- [
|
|
409
|
+
- [AccessDenied](undefined)
|
|
421
410
|
- [NavigationGuard](undefined)
|
|
422
|
-
- [NavigationProvider](undefined)
|
|
423
|
-
- [useNavigationPermissions](undefined)
|
|
424
411
|
- [PagePermissionGuard](undefined)
|
|
425
|
-
- [PagePermissionProvider](undefined)
|
|
426
|
-
- [usePagePermissions](undefined)
|
|
427
|
-
- [PermissionEnforcer](undefined)
|
|
428
|
-
- [RoleBasedRouter](undefined)
|
|
429
|
-
- [useRoleBasedRouter](undefined)
|
|
430
|
-
- [SecureDataProvider](undefined)
|
|
431
|
-
- [useSecureData](undefined)
|
|
432
412
|
- [createRBACConfig](undefined)
|
|
433
413
|
- [getRBACConfig](undefined)
|
|
434
414
|
- [getRBACLogger](undefined)
|
|
@@ -436,10 +416,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
436
416
|
- [isDevelopmentMode](undefined)
|
|
437
417
|
- [createRBACEngine](undefined)
|
|
438
418
|
- [useAccessLevel](undefined)
|
|
439
|
-
- [useCachedPermissions](undefined)
|
|
440
419
|
- [useCan](undefined)
|
|
441
|
-
- [useHasAllPermissions](undefined)
|
|
442
|
-
- [useHasAnyPermission](undefined)
|
|
443
420
|
- [useMultiplePermissions](undefined)
|
|
444
421
|
- [usePermissions](undefined)
|
|
445
422
|
- [useRBAC](undefined)
|
|
@@ -497,6 +474,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
497
474
|
- [listFiles](undefined)
|
|
498
475
|
- [downloadFile](undefined)
|
|
499
476
|
- [archiveFile](undefined)
|
|
477
|
+
- [createBaseClient](undefined)
|
|
500
478
|
- [formatInTimeZone](undefined)
|
|
501
479
|
- [getTimezoneAbbreviation](undefined)
|
|
502
480
|
- [formatTimeInTimeZone](undefined)
|
|
@@ -505,6 +483,9 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
|
|
|
505
483
|
- [fromZonedTime](undefined)
|
|
506
484
|
- [roundToNearestMinutes](undefined)
|
|
507
485
|
- [getTimeZoneDifference](undefined)
|
|
486
|
+
- [sanitizeHtml](undefined)
|
|
487
|
+
- [sanitizeUserInput](undefined)
|
|
488
|
+
- [sanitizeFormData](undefined)
|
|
508
489
|
|
|
509
490
|
## Enumerations
|
|
510
491
|
|
|
@@ -776,7 +757,7 @@ Extends standard button HTML attributes.
|
|
|
776
757
|
|
|
777
758
|
#### Defined in
|
|
778
759
|
|
|
779
|
-
[packages/core/src/components/Button/Button.tsx:
|
|
760
|
+
[packages/core/src/components/Button/Button.tsx:70](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Button/Button.tsx#L70)
|
|
780
761
|
|
|
781
762
|
___
|
|
782
763
|
|
|
@@ -846,7 +827,7 @@ Individual implementations should define more specific types
|
|
|
846
827
|
|
|
847
828
|
#### Defined in
|
|
848
829
|
|
|
849
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
830
|
+
[packages/core/src/components/DataTable/types.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L49)
|
|
850
831
|
|
|
851
832
|
___
|
|
852
833
|
|
|
@@ -864,7 +845,7 @@ Enhanced column definition that extends TanStack's ColumnDef
|
|
|
864
845
|
|
|
865
846
|
#### Defined in
|
|
866
847
|
|
|
867
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
848
|
+
[packages/core/src/components/DataTable/types.ts:263](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L263)
|
|
868
849
|
|
|
869
850
|
___
|
|
870
851
|
|
|
@@ -883,7 +864,7 @@ Defines custom actions that can be performed on table rows.
|
|
|
883
864
|
|
|
884
865
|
#### Defined in
|
|
885
866
|
|
|
886
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
867
|
+
[packages/core/src/components/DataTable/types.ts:397](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L397)
|
|
887
868
|
|
|
888
869
|
___
|
|
889
870
|
|
|
@@ -895,7 +876,7 @@ Toolbar button definition
|
|
|
895
876
|
|
|
896
877
|
#### Defined in
|
|
897
878
|
|
|
898
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
879
|
+
[packages/core/src/components/DataTable/types.ts:437](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L437)
|
|
899
880
|
|
|
900
881
|
___
|
|
901
882
|
|
|
@@ -907,7 +888,7 @@ Aggregate configuration
|
|
|
907
888
|
|
|
908
889
|
#### Defined in
|
|
909
890
|
|
|
910
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
891
|
+
[packages/core/src/components/DataTable/types.ts:459](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L459)
|
|
911
892
|
|
|
912
893
|
___
|
|
913
894
|
|
|
@@ -919,7 +900,7 @@ Empty state configuration
|
|
|
919
900
|
|
|
920
901
|
#### Defined in
|
|
921
902
|
|
|
922
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
903
|
+
[packages/core/src/components/DataTable/types.ts:468](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L468)
|
|
923
904
|
|
|
924
905
|
___
|
|
925
906
|
|
|
@@ -956,7 +937,7 @@ Options provided to the onExport handler for custom export functionality
|
|
|
956
937
|
|
|
957
938
|
#### Defined in
|
|
958
939
|
|
|
959
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
940
|
+
[packages/core/src/components/DataTable/types.ts:646](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L646)
|
|
960
941
|
|
|
961
942
|
___
|
|
962
943
|
|
|
@@ -972,6 +953,103 @@ Column definition for export
|
|
|
972
953
|
|
|
973
954
|
___
|
|
974
955
|
|
|
956
|
+
### DialogProps
|
|
957
|
+
|
|
958
|
+
• **DialogProps**: Interface DialogProps
|
|
959
|
+
|
|
960
|
+
Props for the Dialog root component
|
|
961
|
+
|
|
962
|
+
#### Defined in
|
|
963
|
+
|
|
964
|
+
[packages/core/src/components/Dialog/Dialog.tsx:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L167)
|
|
965
|
+
|
|
966
|
+
___
|
|
967
|
+
|
|
968
|
+
### DialogTriggerProps
|
|
969
|
+
|
|
970
|
+
• **DialogTriggerProps**: Interface DialogTriggerProps
|
|
971
|
+
|
|
972
|
+
Props for the DialogTrigger component
|
|
973
|
+
|
|
974
|
+
#### Defined in
|
|
975
|
+
|
|
976
|
+
[packages/core/src/components/Dialog/Dialog.tsx:178](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L178)
|
|
977
|
+
|
|
978
|
+
___
|
|
979
|
+
|
|
980
|
+
### DialogContentProps
|
|
981
|
+
|
|
982
|
+
• **DialogContentProps**: Interface DialogContentProps
|
|
983
|
+
|
|
984
|
+
Enhanced props for the DialogContent component with size variants and customization
|
|
985
|
+
Uses semantic HTML dialog element
|
|
986
|
+
|
|
987
|
+
#### Defined in
|
|
988
|
+
|
|
989
|
+
[packages/core/src/components/Dialog/Dialog.tsx:190](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L190)
|
|
990
|
+
|
|
991
|
+
___
|
|
992
|
+
|
|
993
|
+
### DialogPortalProps
|
|
994
|
+
|
|
995
|
+
• **DialogPortalProps**: Interface DialogPortalProps
|
|
996
|
+
|
|
997
|
+
Props for the DialogPortal component
|
|
998
|
+
|
|
999
|
+
#### Defined in
|
|
1000
|
+
|
|
1001
|
+
[packages/core/src/components/Dialog/Dialog.tsx:231](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L231)
|
|
1002
|
+
|
|
1003
|
+
___
|
|
1004
|
+
|
|
1005
|
+
### DialogCloseProps
|
|
1006
|
+
|
|
1007
|
+
• **DialogCloseProps**: Interface DialogCloseProps
|
|
1008
|
+
|
|
1009
|
+
Props for the DialogClose component
|
|
1010
|
+
|
|
1011
|
+
#### Defined in
|
|
1012
|
+
|
|
1013
|
+
[packages/core/src/components/Dialog/Dialog.tsx:239](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L239)
|
|
1014
|
+
|
|
1015
|
+
___
|
|
1016
|
+
|
|
1017
|
+
### DialogHeaderProps
|
|
1018
|
+
|
|
1019
|
+
• **DialogHeaderProps**: Interface DialogHeaderProps
|
|
1020
|
+
|
|
1021
|
+
Props for the DialogHeader component (semantic header element)
|
|
1022
|
+
|
|
1023
|
+
#### Defined in
|
|
1024
|
+
|
|
1025
|
+
[packages/core/src/components/Dialog/Dialog.tsx:245](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L245)
|
|
1026
|
+
|
|
1027
|
+
___
|
|
1028
|
+
|
|
1029
|
+
### DialogFooterProps
|
|
1030
|
+
|
|
1031
|
+
• **DialogFooterProps**: Interface DialogFooterProps
|
|
1032
|
+
|
|
1033
|
+
Props for the DialogFooter component (semantic footer element)
|
|
1034
|
+
|
|
1035
|
+
#### Defined in
|
|
1036
|
+
|
|
1037
|
+
[packages/core/src/components/Dialog/Dialog.tsx:254](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L254)
|
|
1038
|
+
|
|
1039
|
+
___
|
|
1040
|
+
|
|
1041
|
+
### DialogBodyProps
|
|
1042
|
+
|
|
1043
|
+
• **DialogBodyProps**: Interface DialogBodyProps
|
|
1044
|
+
|
|
1045
|
+
Props for the DialogBody component (semantic main element)
|
|
1046
|
+
|
|
1047
|
+
#### Defined in
|
|
1048
|
+
|
|
1049
|
+
[packages/core/src/components/Dialog/Dialog.tsx:263](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L263)
|
|
1050
|
+
|
|
1051
|
+
___
|
|
1052
|
+
|
|
975
1053
|
### ErrorBoundaryState
|
|
976
1054
|
|
|
977
1055
|
• **ErrorBoundaryState**: Interface ErrorBoundaryState
|
|
@@ -1057,7 +1135,7 @@ Props for the Form component
|
|
|
1057
1135
|
|
|
1058
1136
|
#### Defined in
|
|
1059
1137
|
|
|
1060
|
-
[packages/core/src/components/Form/Form.tsx:
|
|
1138
|
+
[packages/core/src/components/Form/Form.tsx:88](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L88)
|
|
1061
1139
|
|
|
1062
1140
|
___
|
|
1063
1141
|
|
|
@@ -1076,7 +1154,7 @@ Props for the FormField component
|
|
|
1076
1154
|
|
|
1077
1155
|
#### Defined in
|
|
1078
1156
|
|
|
1079
|
-
[packages/core/src/components/Form/Form.tsx:
|
|
1157
|
+
[packages/core/src/components/Form/Form.tsx:533](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L533)
|
|
1080
1158
|
|
|
1081
1159
|
___
|
|
1082
1160
|
|
|
@@ -1086,7 +1164,7 @@ ___
|
|
|
1086
1164
|
|
|
1087
1165
|
#### Defined in
|
|
1088
1166
|
|
|
1089
|
-
[packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx:
|
|
1167
|
+
[packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx:56](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx#L56)
|
|
1090
1168
|
|
|
1091
1169
|
___
|
|
1092
1170
|
|
|
@@ -1161,7 +1239,7 @@ Configures the application layout including navigation, header, and footer.
|
|
|
1161
1239
|
|
|
1162
1240
|
#### Defined in
|
|
1163
1241
|
|
|
1164
|
-
[packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:
|
|
1242
|
+
[packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L132)
|
|
1165
1243
|
|
|
1166
1244
|
___
|
|
1167
1245
|
|
|
@@ -1335,7 +1413,7 @@ Props for the UserMenu component.
|
|
|
1335
1413
|
|
|
1336
1414
|
#### Defined in
|
|
1337
1415
|
|
|
1338
|
-
[packages/core/src/components/UserMenu/UserMenu.tsx:
|
|
1416
|
+
[packages/core/src/components/UserMenu/UserMenu.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L130)
|
|
1339
1417
|
|
|
1340
1418
|
___
|
|
1341
1419
|
|
|
@@ -1563,7 +1641,7 @@ ___
|
|
|
1563
1641
|
|
|
1564
1642
|
#### Defined in
|
|
1565
1643
|
|
|
1566
|
-
[packages/core/src/rbac/compliance/runtime-compliance.ts:
|
|
1644
|
+
[packages/core/src/rbac/compliance/runtime-compliance.ts:14](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L14)
|
|
1567
1645
|
|
|
1568
1646
|
___
|
|
1569
1647
|
|
|
@@ -1587,13 +1665,13 @@ ___
|
|
|
1587
1665
|
|
|
1588
1666
|
___
|
|
1589
1667
|
|
|
1590
|
-
###
|
|
1668
|
+
### AccessDeniedProps
|
|
1591
1669
|
|
|
1592
|
-
• **
|
|
1670
|
+
• **AccessDeniedProps**: Interface AccessDeniedProps
|
|
1593
1671
|
|
|
1594
1672
|
#### Defined in
|
|
1595
1673
|
|
|
1596
|
-
[packages/core/src/rbac/components/
|
|
1674
|
+
[packages/core/src/rbac/components/AccessDenied.tsx:46](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L46)
|
|
1597
1675
|
|
|
1598
1676
|
___
|
|
1599
1677
|
|
|
@@ -1603,37 +1681,7 @@ ___
|
|
|
1603
1681
|
|
|
1604
1682
|
#### Defined in
|
|
1605
1683
|
|
|
1606
|
-
[packages/core/src/rbac/components/NavigationGuard.tsx:
|
|
1607
|
-
|
|
1608
|
-
___
|
|
1609
|
-
|
|
1610
|
-
### NavigationAccessRecord
|
|
1611
|
-
|
|
1612
|
-
• **NavigationAccessRecord**: Interface NavigationAccessRecord
|
|
1613
|
-
|
|
1614
|
-
#### Defined in
|
|
1615
|
-
|
|
1616
|
-
[packages/core/src/rbac/components/NavigationProvider.tsx:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L99)
|
|
1617
|
-
|
|
1618
|
-
___
|
|
1619
|
-
|
|
1620
|
-
### NavigationContextType
|
|
1621
|
-
|
|
1622
|
-
• **NavigationContextType**: Interface NavigationContextType
|
|
1623
|
-
|
|
1624
|
-
#### Defined in
|
|
1625
|
-
|
|
1626
|
-
[packages/core/src/rbac/components/NavigationProvider.tsx:111](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L111)
|
|
1627
|
-
|
|
1628
|
-
___
|
|
1629
|
-
|
|
1630
|
-
### NavigationProviderProps
|
|
1631
|
-
|
|
1632
|
-
• **NavigationProviderProps**: Interface NavigationProviderProps
|
|
1633
|
-
|
|
1634
|
-
#### Defined in
|
|
1635
|
-
|
|
1636
|
-
[packages/core/src/rbac/components/NavigationProvider.tsx:137](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L137)
|
|
1684
|
+
[packages/core/src/rbac/components/NavigationGuard.tsx:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L76)
|
|
1637
1685
|
|
|
1638
1686
|
___
|
|
1639
1687
|
|
|
@@ -1643,117 +1691,7 @@ ___
|
|
|
1643
1691
|
|
|
1644
1692
|
#### Defined in
|
|
1645
1693
|
|
|
1646
|
-
[packages/core/src/rbac/components/PagePermissionGuard.tsx:
|
|
1647
|
-
|
|
1648
|
-
___
|
|
1649
|
-
|
|
1650
|
-
### PagePermissionContextType
|
|
1651
|
-
|
|
1652
|
-
• **PagePermissionContextType**: Interface PagePermissionContextType
|
|
1653
|
-
|
|
1654
|
-
#### Defined in
|
|
1655
|
-
|
|
1656
|
-
[packages/core/src/rbac/components/PagePermissionProvider.tsx:65](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L65)
|
|
1657
|
-
|
|
1658
|
-
___
|
|
1659
|
-
|
|
1660
|
-
### PageAccessRecord
|
|
1661
|
-
|
|
1662
|
-
• **PageAccessRecord**: Interface PageAccessRecord
|
|
1663
|
-
|
|
1664
|
-
#### Defined in
|
|
1665
|
-
|
|
1666
|
-
[packages/core/src/rbac/components/PagePermissionProvider.tsx:88](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L88)
|
|
1667
|
-
|
|
1668
|
-
___
|
|
1669
|
-
|
|
1670
|
-
### PagePermissionProviderProps
|
|
1671
|
-
|
|
1672
|
-
• **PagePermissionProviderProps**: Interface PagePermissionProviderProps
|
|
1673
|
-
|
|
1674
|
-
#### Defined in
|
|
1675
|
-
|
|
1676
|
-
[packages/core/src/rbac/components/PagePermissionProvider.tsx:98](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L98)
|
|
1677
|
-
|
|
1678
|
-
___
|
|
1679
|
-
|
|
1680
|
-
### PermissionEnforcerProps
|
|
1681
|
-
|
|
1682
|
-
• **PermissionEnforcerProps**: Interface PermissionEnforcerProps
|
|
1683
|
-
|
|
1684
|
-
#### Defined in
|
|
1685
|
-
|
|
1686
|
-
[packages/core/src/rbac/components/PermissionEnforcer.tsx:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L79)
|
|
1687
|
-
|
|
1688
|
-
___
|
|
1689
|
-
|
|
1690
|
-
### RouteConfig
|
|
1691
|
-
|
|
1692
|
-
• **RouteConfig**: Interface RouteConfig
|
|
1693
|
-
|
|
1694
|
-
#### Defined in
|
|
1695
|
-
|
|
1696
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L74)
|
|
1697
|
-
|
|
1698
|
-
___
|
|
1699
|
-
|
|
1700
|
-
### RouteAccessRecord
|
|
1701
|
-
|
|
1702
|
-
• **RouteAccessRecord**: Interface RouteAccessRecord
|
|
1703
|
-
|
|
1704
|
-
#### Defined in
|
|
1705
|
-
|
|
1706
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L108)
|
|
1707
|
-
|
|
1708
|
-
___
|
|
1709
|
-
|
|
1710
|
-
### RoleBasedRouterContextType
|
|
1711
|
-
|
|
1712
|
-
• **RoleBasedRouterContextType**: Interface RoleBasedRouterContextType
|
|
1713
|
-
|
|
1714
|
-
#### Defined in
|
|
1715
|
-
|
|
1716
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L120)
|
|
1717
|
-
|
|
1718
|
-
___
|
|
1719
|
-
|
|
1720
|
-
### RoleBasedRouterProps
|
|
1721
|
-
|
|
1722
|
-
• **RoleBasedRouterProps**: Interface RoleBasedRouterProps
|
|
1723
|
-
|
|
1724
|
-
#### Defined in
|
|
1725
|
-
|
|
1726
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L143)
|
|
1727
|
-
|
|
1728
|
-
___
|
|
1729
|
-
|
|
1730
|
-
### DataAccessRecord
|
|
1731
|
-
|
|
1732
|
-
• **DataAccessRecord**: Interface DataAccessRecord
|
|
1733
|
-
|
|
1734
|
-
#### Defined in
|
|
1735
|
-
|
|
1736
|
-
[packages/core/src/rbac/components/SecureDataProvider.tsx:67](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L67)
|
|
1737
|
-
|
|
1738
|
-
___
|
|
1739
|
-
|
|
1740
|
-
### SecureDataContextType
|
|
1741
|
-
|
|
1742
|
-
• **SecureDataContextType**: Interface SecureDataContextType
|
|
1743
|
-
|
|
1744
|
-
#### Defined in
|
|
1745
|
-
|
|
1746
|
-
[packages/core/src/rbac/components/SecureDataProvider.tsx:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L78)
|
|
1747
|
-
|
|
1748
|
-
___
|
|
1749
|
-
|
|
1750
|
-
### SecureDataProviderProps
|
|
1751
|
-
|
|
1752
|
-
• **SecureDataProviderProps**: Interface SecureDataProviderProps
|
|
1753
|
-
|
|
1754
|
-
#### Defined in
|
|
1755
|
-
|
|
1756
|
-
[packages/core/src/rbac/components/SecureDataProvider.tsx:104](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L104)
|
|
1694
|
+
[packages/core/src/rbac/components/PagePermissionGuard.tsx:79](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L79)
|
|
1757
1695
|
|
|
1758
1696
|
___
|
|
1759
1697
|
|
|
@@ -1793,7 +1731,7 @@ ___
|
|
|
1793
1731
|
|
|
1794
1732
|
#### Defined in
|
|
1795
1733
|
|
|
1796
|
-
[packages/core/src/rbac/hooks/useResolvedScope.ts:
|
|
1734
|
+
[packages/core/src/rbac/hooks/useResolvedScope.ts:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L42)
|
|
1797
1735
|
|
|
1798
1736
|
___
|
|
1799
1737
|
|
|
@@ -1803,7 +1741,7 @@ ___
|
|
|
1803
1741
|
|
|
1804
1742
|
#### Defined in
|
|
1805
1743
|
|
|
1806
|
-
[packages/core/src/rbac/hooks/useResourcePermissions.ts:
|
|
1744
|
+
[packages/core/src/rbac/hooks/useResourcePermissions.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L54)
|
|
1807
1745
|
|
|
1808
1746
|
___
|
|
1809
1747
|
|
|
@@ -1813,7 +1751,7 @@ ___
|
|
|
1813
1751
|
|
|
1814
1752
|
#### Defined in
|
|
1815
1753
|
|
|
1816
|
-
[packages/core/src/rbac/hooks/useResourcePermissions.ts:
|
|
1754
|
+
[packages/core/src/rbac/hooks/useResourcePermissions.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L61)
|
|
1817
1755
|
|
|
1818
1756
|
___
|
|
1819
1757
|
|
|
@@ -2404,7 +2342,7 @@ RowId
|
|
|
2404
2342
|
|
|
2405
2343
|
#### Defined in
|
|
2406
2344
|
|
|
2407
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
2345
|
+
[packages/core/src/components/DataTable/types.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L61)
|
|
2408
2346
|
|
|
2409
2347
|
___
|
|
2410
2348
|
|
|
@@ -2418,7 +2356,19 @@ ergonomic while maintaining strict internal guarantees.
|
|
|
2418
2356
|
|
|
2419
2357
|
#### Defined in
|
|
2420
2358
|
|
|
2421
|
-
[packages/core/src/components/DataTable/types.ts:
|
|
2359
|
+
[packages/core/src/components/DataTable/types.ts:536](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/types.ts#L536)
|
|
2360
|
+
|
|
2361
|
+
___
|
|
2362
|
+
|
|
2363
|
+
### DialogSize
|
|
2364
|
+
|
|
2365
|
+
Ƭ **DialogSize**: "sm" \| "md" \| "lg" \| "xl" \| "full" \| "auto"
|
|
2366
|
+
|
|
2367
|
+
Dialog size variants
|
|
2368
|
+
|
|
2369
|
+
#### Defined in
|
|
2370
|
+
|
|
2371
|
+
[packages/core/src/components/Dialog/Dialog.tsx:135](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L135)
|
|
2422
2372
|
|
|
2423
2373
|
___
|
|
2424
2374
|
|
|
@@ -3311,7 +3261,7 @@ ReactNode
|
|
|
3311
3261
|
|
|
3312
3262
|
#### Defined in
|
|
3313
3263
|
|
|
3314
|
-
[packages/core/src/components/Button/Button.tsx:
|
|
3264
|
+
[packages/core/src/components/Button/Button.tsx:123](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Button/Button.tsx#L123)
|
|
3315
3265
|
|
|
3316
3266
|
___
|
|
3317
3267
|
|
|
@@ -3960,7 +3910,7 @@ ___
|
|
|
3960
3910
|
|
|
3961
3911
|
### Dialog
|
|
3962
3912
|
|
|
3963
|
-
▸ **Dialog**(`props`): ReactNode
|
|
3913
|
+
▸ **Dialog**(`props`): ReactNode
|
|
3964
3914
|
|
|
3965
3915
|
#### Parameters
|
|
3966
3916
|
|
|
@@ -3970,11 +3920,11 @@ ___
|
|
|
3970
3920
|
|
|
3971
3921
|
#### Returns
|
|
3972
3922
|
|
|
3973
|
-
ReactNode
|
|
3923
|
+
ReactNode
|
|
3974
3924
|
|
|
3975
3925
|
#### Defined in
|
|
3976
3926
|
|
|
3977
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
3927
|
+
[packages/core/src/components/Dialog/Dialog.tsx:312](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L312)
|
|
3978
3928
|
|
|
3979
3929
|
___
|
|
3980
3930
|
|
|
@@ -3986,7 +3936,7 @@ ___
|
|
|
3986
3936
|
|
|
3987
3937
|
| Name | Type |
|
|
3988
3938
|
| :------ | :------ |
|
|
3989
|
-
| `props` | DialogTriggerProps & RefAttributes\<
|
|
3939
|
+
| `props` | DialogTriggerProps & RefAttributes\<HTMLElement\> |
|
|
3990
3940
|
|
|
3991
3941
|
#### Returns
|
|
3992
3942
|
|
|
@@ -3994,7 +3944,7 @@ ReactNode
|
|
|
3994
3944
|
|
|
3995
3945
|
#### Defined in
|
|
3996
3946
|
|
|
3997
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
3947
|
+
[packages/core/src/components/Dialog/Dialog.tsx:380](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L380)
|
|
3998
3948
|
|
|
3999
3949
|
___
|
|
4000
3950
|
|
|
@@ -4014,135 +3964,111 @@ ReactNode \| Promise\<ReactNode\>
|
|
|
4014
3964
|
|
|
4015
3965
|
#### Defined in
|
|
4016
3966
|
|
|
4017
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
3967
|
+
[packages/core/src/components/Dialog/Dialog.tsx:417](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L417)
|
|
3968
|
+
|
|
3969
|
+
[packages/core/src/components/Dialog/Dialog.tsx:429](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L429)
|
|
4018
3970
|
|
|
4019
3971
|
___
|
|
4020
3972
|
|
|
4021
|
-
###
|
|
3973
|
+
### DialogContent
|
|
4022
3974
|
|
|
4023
|
-
▸ **
|
|
3975
|
+
▸ **DialogContent**(`props`): ReactNode
|
|
4024
3976
|
|
|
4025
3977
|
#### Parameters
|
|
4026
3978
|
|
|
4027
|
-
| Name | Type |
|
|
4028
|
-
| :------ | :------ |
|
|
4029
|
-
| `props` |
|
|
3979
|
+
| Name | Type | Description |
|
|
3980
|
+
| :------ | :------ | :------ |
|
|
3981
|
+
| `props` | DialogContentProps & RefAttributes\<HTMLDialogElement\> | Content configuration and styling |
|
|
4030
3982
|
|
|
4031
3983
|
#### Returns
|
|
4032
3984
|
|
|
4033
3985
|
ReactNode
|
|
4034
3986
|
|
|
3987
|
+
JSX.Element - The semantic dialog content with overlay and optional close button
|
|
3988
|
+
|
|
4035
3989
|
#### Defined in
|
|
4036
3990
|
|
|
4037
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
3991
|
+
[packages/core/src/components/Dialog/Dialog.tsx:641](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L641)
|
|
4038
3992
|
|
|
4039
3993
|
___
|
|
4040
3994
|
|
|
4041
|
-
###
|
|
3995
|
+
### DialogClose
|
|
4042
3996
|
|
|
4043
|
-
▸ **
|
|
3997
|
+
▸ **DialogClose**(`props`): ReactNode
|
|
4044
3998
|
|
|
4045
3999
|
#### Parameters
|
|
4046
4000
|
|
|
4047
4001
|
| Name | Type |
|
|
4048
4002
|
| :------ | :------ |
|
|
4049
|
-
| `props` |
|
|
4050
|
-
|
|
4051
|
-
#### Returns
|
|
4052
|
-
|
|
4053
|
-
ReactNode
|
|
4054
|
-
|
|
4055
|
-
#### Defined in
|
|
4056
|
-
|
|
4057
|
-
[packages/core/src/components/Dialog/Dialog.tsx:322](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L322)
|
|
4058
|
-
|
|
4059
|
-
___
|
|
4060
|
-
|
|
4061
|
-
### DialogContent
|
|
4062
|
-
|
|
4063
|
-
▸ **DialogContent**(`props`): ReactNode
|
|
4064
|
-
|
|
4065
|
-
#### Parameters
|
|
4066
|
-
|
|
4067
|
-
| Name | Type | Description |
|
|
4068
|
-
| :------ | :------ | :------ |
|
|
4069
|
-
| `props` | DialogContentProps & RefAttributes\<HTMLDivElement\> | Content configuration and styling |
|
|
4003
|
+
| `props` | DialogCloseProps & RefAttributes\<HTMLButtonElement\> |
|
|
4070
4004
|
|
|
4071
4005
|
#### Returns
|
|
4072
4006
|
|
|
4073
4007
|
ReactNode
|
|
4074
4008
|
|
|
4075
|
-
JSX.Element - The semantic dialog content with overlay and optional close button
|
|
4076
|
-
|
|
4077
4009
|
#### Defined in
|
|
4078
4010
|
|
|
4079
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4011
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1366](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1366)
|
|
4080
4012
|
|
|
4081
4013
|
___
|
|
4082
4014
|
|
|
4083
4015
|
### DialogHeader
|
|
4084
4016
|
|
|
4085
|
-
▸ **DialogHeader**(
|
|
4017
|
+
▸ **DialogHeader**(`«destructured»`): Element
|
|
4086
4018
|
|
|
4087
4019
|
#### Parameters
|
|
4088
4020
|
|
|
4089
|
-
| Name | Type |
|
|
4090
|
-
| :------ | :------ |
|
|
4091
|
-
|
|
|
4021
|
+
| Name | Type |
|
|
4022
|
+
| :------ | :------ |
|
|
4023
|
+
| `«destructured»` | DialogHeaderProps |
|
|
4092
4024
|
|
|
4093
4025
|
#### Returns
|
|
4094
4026
|
|
|
4095
4027
|
Element
|
|
4096
4028
|
|
|
4097
|
-
JSX.Element - The dialog header container using semantic <header> element
|
|
4098
|
-
|
|
4099
4029
|
#### Defined in
|
|
4100
4030
|
|
|
4101
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4031
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1409](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1409)
|
|
4102
4032
|
|
|
4103
4033
|
___
|
|
4104
4034
|
|
|
4105
4035
|
### DialogBody
|
|
4106
4036
|
|
|
4107
|
-
▸ **DialogBody**(
|
|
4037
|
+
▸ **DialogBody**(`«destructured»`): Element
|
|
4108
4038
|
|
|
4109
4039
|
#### Parameters
|
|
4110
4040
|
|
|
4111
|
-
| Name | Type |
|
|
4112
|
-
| :------ | :------ |
|
|
4113
|
-
|
|
|
4041
|
+
| Name | Type |
|
|
4042
|
+
| :------ | :------ |
|
|
4043
|
+
| `«destructured»` | DialogBodyProps |
|
|
4114
4044
|
|
|
4115
4045
|
#### Returns
|
|
4116
4046
|
|
|
4117
4047
|
Element
|
|
4118
4048
|
|
|
4119
|
-
JSX.Element - The scrollable dialog body container using semantic <main> element
|
|
4120
|
-
|
|
4121
4049
|
#### Defined in
|
|
4122
4050
|
|
|
4123
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4051
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1429](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1429)
|
|
4124
4052
|
|
|
4125
4053
|
___
|
|
4126
4054
|
|
|
4127
4055
|
### DialogFooter
|
|
4128
4056
|
|
|
4129
|
-
▸ **DialogFooter**(
|
|
4057
|
+
▸ **DialogFooter**(`«destructured»`): Element
|
|
4130
4058
|
|
|
4131
4059
|
#### Parameters
|
|
4132
4060
|
|
|
4133
|
-
| Name | Type |
|
|
4134
|
-
| :------ | :------ |
|
|
4135
|
-
|
|
|
4061
|
+
| Name | Type |
|
|
4062
|
+
| :------ | :------ |
|
|
4063
|
+
| `«destructured»` | DialogFooterProps |
|
|
4136
4064
|
|
|
4137
4065
|
#### Returns
|
|
4138
4066
|
|
|
4139
4067
|
Element
|
|
4140
4068
|
|
|
4141
|
-
JSX.Element - The dialog footer container using semantic <footer> element
|
|
4142
|
-
|
|
4143
4069
|
#### Defined in
|
|
4144
4070
|
|
|
4145
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4071
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1531](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1531)
|
|
4146
4072
|
|
|
4147
4073
|
___
|
|
4148
4074
|
|
|
@@ -4162,7 +4088,7 @@ ReactNode
|
|
|
4162
4088
|
|
|
4163
4089
|
#### Defined in
|
|
4164
4090
|
|
|
4165
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4091
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1551](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1551)
|
|
4166
4092
|
|
|
4167
4093
|
___
|
|
4168
4094
|
|
|
@@ -4174,7 +4100,7 @@ ___
|
|
|
4174
4100
|
|
|
4175
4101
|
| Name | Type |
|
|
4176
4102
|
| :------ | :------ |
|
|
4177
|
-
| `props` | DialogDescriptionProps & RefAttributes\<
|
|
4103
|
+
| `props` | DialogDescriptionProps & RefAttributes\<HTMLParagraphElement\> |
|
|
4178
4104
|
|
|
4179
4105
|
#### Returns
|
|
4180
4106
|
|
|
@@ -4182,7 +4108,7 @@ ReactNode
|
|
|
4182
4108
|
|
|
4183
4109
|
#### Defined in
|
|
4184
4110
|
|
|
4185
|
-
[packages/core/src/components/Dialog/Dialog.tsx:
|
|
4111
|
+
[packages/core/src/components/Dialog/Dialog.tsx:1590](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Dialog/Dialog.tsx#L1590)
|
|
4186
4112
|
|
|
4187
4113
|
___
|
|
4188
4114
|
|
|
@@ -4252,7 +4178,7 @@ The rendered file display
|
|
|
4252
4178
|
|
|
4253
4179
|
#### Defined in
|
|
4254
4180
|
|
|
4255
|
-
[packages/core/src/components/FileDisplay/FileDisplay.tsx:
|
|
4181
|
+
[packages/core/src/components/FileDisplay/FileDisplay.tsx:961](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L961)
|
|
4256
4182
|
|
|
4257
4183
|
___
|
|
4258
4184
|
|
|
@@ -4337,7 +4263,7 @@ JSX.Element - The rendered form with FormProvider context
|
|
|
4337
4263
|
|
|
4338
4264
|
#### Defined in
|
|
4339
4265
|
|
|
4340
|
-
[packages/core/src/components/Form/Form.tsx:
|
|
4266
|
+
[packages/core/src/components/Form/Form.tsx:147](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L147)
|
|
4341
4267
|
|
|
4342
4268
|
___
|
|
4343
4269
|
|
|
@@ -4429,7 +4355,7 @@ JSX.Element - The rendered form field with validation
|
|
|
4429
4355
|
|
|
4430
4356
|
#### Defined in
|
|
4431
4357
|
|
|
4432
|
-
[packages/core/src/components/Form/Form.tsx:
|
|
4358
|
+
[packages/core/src/components/Form/Form.tsx:668](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Form/Form.tsx#L668)
|
|
4433
4359
|
|
|
4434
4360
|
___
|
|
4435
4361
|
|
|
@@ -4474,7 +4400,7 @@ Element
|
|
|
4474
4400
|
|
|
4475
4401
|
#### Defined in
|
|
4476
4402
|
|
|
4477
|
-
[packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx:
|
|
4403
|
+
[packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx:73](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/InactivityWarningModal/InactivityWarningModal.tsx#L73)
|
|
4478
4404
|
|
|
4479
4405
|
___
|
|
4480
4406
|
|
|
@@ -4778,7 +4704,7 @@ function AdminApp() {
|
|
|
4778
4704
|
|
|
4779
4705
|
#### Defined in
|
|
4780
4706
|
|
|
4781
|
-
[packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:
|
|
4707
|
+
[packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:355](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L355)
|
|
4782
4708
|
|
|
4783
4709
|
___
|
|
4784
4710
|
|
|
@@ -4820,7 +4746,7 @@ Element
|
|
|
4820
4746
|
|
|
4821
4747
|
#### Defined in
|
|
4822
4748
|
|
|
4823
|
-
[packages/core/src/components/PasswordChange/PasswordChangeForm.tsx:
|
|
4749
|
+
[packages/core/src/components/PasswordChange/PasswordChangeForm.tsx:133](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PasswordChange/PasswordChangeForm.tsx#L133)
|
|
4824
4750
|
|
|
4825
4751
|
___
|
|
4826
4752
|
|
|
@@ -5023,7 +4949,7 @@ ___
|
|
|
5023
4949
|
|
|
5024
4950
|
| Name | Type | Description |
|
|
5025
4951
|
| :------ | :------ | :------ |
|
|
5026
|
-
| `props` | SelectProps & UseSelectStateProps & RefAttributes\<
|
|
4952
|
+
| `props` | SelectProps & UseSelectStateProps & RefAttributes\<HTMLFieldSetElement\> | Select configuration |
|
|
5027
4953
|
|
|
5028
4954
|
#### Returns
|
|
5029
4955
|
|
|
@@ -5055,7 +4981,7 @@ The rendered select trigger
|
|
|
5055
4981
|
|
|
5056
4982
|
#### Defined in
|
|
5057
4983
|
|
|
5058
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
4984
|
+
[packages/core/src/components/Select/Select.tsx:231](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L231)
|
|
5059
4985
|
|
|
5060
4986
|
___
|
|
5061
4987
|
|
|
@@ -5077,7 +5003,7 @@ The rendered select value display
|
|
|
5077
5003
|
|
|
5078
5004
|
#### Defined in
|
|
5079
5005
|
|
|
5080
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5006
|
+
[packages/core/src/components/Select/Select.tsx:407](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L407)
|
|
5081
5007
|
|
|
5082
5008
|
___
|
|
5083
5009
|
|
|
@@ -5099,7 +5025,7 @@ The rendered select content
|
|
|
5099
5025
|
|
|
5100
5026
|
#### Defined in
|
|
5101
5027
|
|
|
5102
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5028
|
+
[packages/core/src/components/Select/Select.tsx:437](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L437)
|
|
5103
5029
|
|
|
5104
5030
|
___
|
|
5105
5031
|
|
|
@@ -5121,7 +5047,7 @@ The rendered select item
|
|
|
5121
5047
|
|
|
5122
5048
|
#### Defined in
|
|
5123
5049
|
|
|
5124
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5050
|
+
[packages/core/src/components/Select/Select.tsx:553](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L553)
|
|
5125
5051
|
|
|
5126
5052
|
___
|
|
5127
5053
|
|
|
@@ -5143,7 +5069,7 @@ The rendered select group
|
|
|
5143
5069
|
|
|
5144
5070
|
#### Defined in
|
|
5145
5071
|
|
|
5146
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5072
|
+
[packages/core/src/components/Select/Select.tsx:660](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L660)
|
|
5147
5073
|
|
|
5148
5074
|
___
|
|
5149
5075
|
|
|
@@ -5165,7 +5091,7 @@ The rendered select label
|
|
|
5165
5091
|
|
|
5166
5092
|
#### Defined in
|
|
5167
5093
|
|
|
5168
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5094
|
+
[packages/core/src/components/Select/Select.tsx:679](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L679)
|
|
5169
5095
|
|
|
5170
5096
|
___
|
|
5171
5097
|
|
|
@@ -5187,7 +5113,7 @@ The rendered select separator
|
|
|
5187
5113
|
|
|
5188
5114
|
#### Defined in
|
|
5189
5115
|
|
|
5190
|
-
[packages/core/src/components/Select/Select.tsx:
|
|
5116
|
+
[packages/core/src/components/Select/Select.tsx:698](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L698)
|
|
5191
5117
|
|
|
5192
5118
|
___
|
|
5193
5119
|
|
|
@@ -5824,7 +5750,7 @@ ReactNode
|
|
|
5824
5750
|
|
|
5825
5751
|
#### Defined in
|
|
5826
5752
|
|
|
5827
|
-
[packages/core/src/components/UserMenu/UserMenu.tsx:
|
|
5753
|
+
[packages/core/src/components/UserMenu/UserMenu.tsx:138](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/UserMenu/UserMenu.tsx#L138)
|
|
5828
5754
|
|
|
5829
5755
|
___
|
|
5830
5756
|
|
|
@@ -5869,7 +5795,7 @@ void
|
|
|
5869
5795
|
|
|
5870
5796
|
#### Defined in
|
|
5871
5797
|
|
|
5872
|
-
[packages/core/src/hooks/public/usePublicEvent.ts:
|
|
5798
|
+
[packages/core/src/hooks/public/usePublicEvent.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L285)
|
|
5873
5799
|
|
|
5874
5800
|
___
|
|
5875
5801
|
|
|
@@ -5890,7 +5816,7 @@ Object
|
|
|
5890
5816
|
|
|
5891
5817
|
#### Defined in
|
|
5892
5818
|
|
|
5893
|
-
[packages/core/src/hooks/public/usePublicEvent.ts:
|
|
5819
|
+
[packages/core/src/hooks/public/usePublicEvent.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L296)
|
|
5894
5820
|
|
|
5895
5821
|
___
|
|
5896
5822
|
|
|
@@ -5937,7 +5863,7 @@ void
|
|
|
5937
5863
|
|
|
5938
5864
|
#### Defined in
|
|
5939
5865
|
|
|
5940
|
-
[packages/core/src/hooks/public/usePublicEventLogo.ts:
|
|
5866
|
+
[packages/core/src/hooks/public/usePublicEventLogo.ts:285](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L285)
|
|
5941
5867
|
|
|
5942
5868
|
___
|
|
5943
5869
|
|
|
@@ -5958,7 +5884,7 @@ Object
|
|
|
5958
5884
|
|
|
5959
5885
|
#### Defined in
|
|
5960
5886
|
|
|
5961
|
-
[packages/core/src/hooks/public/usePublicEventLogo.ts:
|
|
5887
|
+
[packages/core/src/hooks/public/usePublicEventLogo.ts:296](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEventLogo.ts#L296)
|
|
5962
5888
|
|
|
5963
5889
|
___
|
|
5964
5890
|
|
|
@@ -6254,20 +6180,24 @@ function MyComponent() {
|
|
|
6254
6180
|
const { events, selectedEvent, setSelectedEvent } = useEvents();
|
|
6255
6181
|
|
|
6256
6182
|
return (
|
|
6257
|
-
<
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
{event.
|
|
6261
|
-
|
|
6262
|
-
|
|
6263
|
-
|
|
6183
|
+
<nav>
|
|
6184
|
+
<ul>
|
|
6185
|
+
{events.map(event => (
|
|
6186
|
+
<li key={event.id}>
|
|
6187
|
+
<button onClick={() => setSelectedEvent(event)}>
|
|
6188
|
+
{event.event_name}
|
|
6189
|
+
</button>
|
|
6190
|
+
</li>
|
|
6191
|
+
))}
|
|
6192
|
+
</ul>
|
|
6193
|
+
</nav>
|
|
6264
6194
|
);
|
|
6265
6195
|
}
|
|
6266
6196
|
```
|
|
6267
6197
|
|
|
6268
6198
|
#### Defined in
|
|
6269
6199
|
|
|
6270
|
-
[packages/core/src/hooks/useEvents.ts:
|
|
6200
|
+
[packages/core/src/hooks/useEvents.ts:55](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L55)
|
|
6271
6201
|
|
|
6272
6202
|
___
|
|
6273
6203
|
|
|
@@ -6568,21 +6498,27 @@ function MyComponent() {
|
|
|
6568
6498
|
const { selectedOrganisation, organisations, switchOrganisation } = useOrganisations();
|
|
6569
6499
|
|
|
6570
6500
|
return (
|
|
6571
|
-
<
|
|
6501
|
+
<main>
|
|
6572
6502
|
<h1>Current Organisation: {selectedOrganisation.display_name}</h1>
|
|
6573
|
-
|
|
6574
|
-
<
|
|
6575
|
-
{org
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
|
|
6503
|
+
<nav>
|
|
6504
|
+
<ul>
|
|
6505
|
+
{organisations.map(org => (
|
|
6506
|
+
<li key={org.id}>
|
|
6507
|
+
<button onClick={() => switchOrganisation(org.id)}>
|
|
6508
|
+
{org.display_name}
|
|
6509
|
+
</button>
|
|
6510
|
+
</li>
|
|
6511
|
+
))}
|
|
6512
|
+
</ul>
|
|
6513
|
+
</nav>
|
|
6514
|
+
</main>
|
|
6579
6515
|
);
|
|
6580
6516
|
}
|
|
6581
6517
|
```
|
|
6582
6518
|
|
|
6583
6519
|
#### Defined in
|
|
6584
6520
|
|
|
6585
|
-
[packages/core/src/hooks/useOrganisations.ts:
|
|
6521
|
+
[packages/core/src/hooks/useOrganisations.ts:47](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useOrganisations.ts#L47)
|
|
6586
6522
|
|
|
6587
6523
|
___
|
|
6588
6524
|
|
|
@@ -6596,7 +6532,7 @@ UseSessionRestorationResult
|
|
|
6596
6532
|
|
|
6597
6533
|
#### Defined in
|
|
6598
6534
|
|
|
6599
|
-
[packages/core/src/hooks/useSessionRestoration.ts:
|
|
6535
|
+
[packages/core/src/hooks/useSessionRestoration.ts:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useSessionRestoration.ts#L34)
|
|
6600
6536
|
|
|
6601
6537
|
___
|
|
6602
6538
|
|
|
@@ -6796,162 +6732,42 @@ The unified auth provider
|
|
|
6796
6732
|
|
|
6797
6733
|
#### Defined in
|
|
6798
6734
|
|
|
6799
|
-
[packages/core/src/providers/services/UnifiedAuthProvider.tsx:
|
|
6735
|
+
[packages/core/src/providers/services/UnifiedAuthProvider.tsx:756](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L756)
|
|
6800
6736
|
|
|
6801
6737
|
___
|
|
6802
6738
|
|
|
6803
|
-
###
|
|
6739
|
+
### withPermissionGuard
|
|
6740
|
+
|
|
6741
|
+
▸ **withPermissionGuard**\<`T`\>(`config`, `handler`): Function
|
|
6742
|
+
|
|
6743
|
+
Permission Guard for Server Handlers
|
|
6804
6744
|
|
|
6805
|
-
|
|
6745
|
+
Wraps a server handler with permission checking.
|
|
6806
6746
|
|
|
6807
|
-
|
|
6747
|
+
#### Type parameters
|
|
6808
6748
|
|
|
6809
|
-
|
|
6810
|
-
|
|
6749
|
+
| Name | Type |
|
|
6750
|
+
| :------ | :------ |
|
|
6751
|
+
| `T` | extends any[] |
|
|
6811
6752
|
|
|
6812
6753
|
#### Parameters
|
|
6813
6754
|
|
|
6814
|
-
| Name | Type |
|
|
6755
|
+
| Name | Type | Description |
|
|
6815
6756
|
| :------ | :------ | :------ |
|
|
6816
|
-
|
|
|
6817
|
-
|
|
|
6818
|
-
|
|
|
6819
|
-
|
|
|
6820
|
-
| › `scope.eventId?` | string | `undefined` |
|
|
6821
|
-
| › `scope.appId?` | string | `undefined` |
|
|
6822
|
-
| › `permission` | \`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` | `undefined` |
|
|
6823
|
-
| › `pageId?` | string | `undefined` |
|
|
6824
|
-
| › `children` | ReactNode | `undefined` |
|
|
6825
|
-
| › `fallback?` | ReactNode | `null` |
|
|
6826
|
-
| › `onDenied?` | Function | `undefined` |
|
|
6827
|
-
| › `loading?` | ReactNode | `null` |
|
|
6828
|
-
| › `strictMode?` | boolean | `true` |
|
|
6829
|
-
| › `auditLog?` | boolean | `true` |
|
|
6830
|
-
| › `enforceAudit?` | boolean | `true` |
|
|
6831
|
-
|
|
6832
|
-
#### Returns
|
|
6833
|
-
|
|
6834
|
-
React.ReactNode
|
|
6757
|
+
| `config` | Object | Permission guard configuration |
|
|
6758
|
+
| `config.permission` | \`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` | - |
|
|
6759
|
+
| `config.pageId?` | string | - |
|
|
6760
|
+
| `handler` | Function | Handler function to wrap |
|
|
6835
6761
|
|
|
6836
|
-
|
|
6762
|
+
#### Returns
|
|
6837
6763
|
|
|
6838
|
-
|
|
6839
|
-
// With explicit userId and scope
|
|
6840
|
-
<PermissionGuard
|
|
6841
|
-
userId="user-123"
|
|
6842
|
-
scope={{ organisationId: 'org-456' }}
|
|
6843
|
-
permission="update:events"
|
|
6844
|
-
pageId="page-789"
|
|
6845
|
-
fallback={<AccessDenied />}
|
|
6846
|
-
>
|
|
6847
|
-
<AdminPanel />
|
|
6848
|
-
</PermissionGuard>
|
|
6849
|
-
|
|
6850
|
-
// With context inference (requires auth context)
|
|
6851
|
-
<PermissionGuard
|
|
6852
|
-
permission="update:events"
|
|
6853
|
-
scope={{ organisationId: 'org-456' }}
|
|
6854
|
-
fallback={<AccessDenied />}
|
|
6855
|
-
>
|
|
6856
|
-
<AdminPanel />
|
|
6857
|
-
</PermissionGuard>
|
|
6858
|
-
```
|
|
6764
|
+
Function
|
|
6859
6765
|
|
|
6860
|
-
|
|
6766
|
+
Wrapped handler function
|
|
6861
6767
|
|
|
6862
|
-
|
|
6768
|
+
▸ (`...args`): Promise\<any\>
|
|
6863
6769
|
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
### AccessLevelGuard
|
|
6867
|
-
|
|
6868
|
-
▸ **AccessLevelGuard**(`«destructured»`): React.ReactNode
|
|
6869
|
-
|
|
6870
|
-
Access Level Guard Component
|
|
6871
|
-
|
|
6872
|
-
A React component that conditionally renders children based on access level.
|
|
6873
|
-
Can auto-infer userId from context if not provided.
|
|
6874
|
-
|
|
6875
|
-
#### Parameters
|
|
6876
|
-
|
|
6877
|
-
| Name | Type | Default value |
|
|
6878
|
-
| :------ | :------ | :------ |
|
|
6879
|
-
| `«destructured»` | Object | `undefined` |
|
|
6880
|
-
| › `userId?` | string | `undefined` |
|
|
6881
|
-
| › `scope` | Object | `undefined` |
|
|
6882
|
-
| › `scope.organisationId` | string | `undefined` |
|
|
6883
|
-
| › `scope.eventId?` | string | `undefined` |
|
|
6884
|
-
| › `scope.appId?` | string | `undefined` |
|
|
6885
|
-
| › `minLevel` | "viewer" \| "participant" \| "planner" \| "admin" \| "super" | `undefined` |
|
|
6886
|
-
| › `children` | ReactNode | `undefined` |
|
|
6887
|
-
| › `fallback?` | ReactNode | `null` |
|
|
6888
|
-
| › `loading?` | ReactNode | `null` |
|
|
6889
|
-
|
|
6890
|
-
#### Returns
|
|
6891
|
-
|
|
6892
|
-
React.ReactNode
|
|
6893
|
-
|
|
6894
|
-
**`Example`**
|
|
6895
|
-
|
|
6896
|
-
```tsx
|
|
6897
|
-
// With explicit userId and scope
|
|
6898
|
-
<AccessLevelGuard
|
|
6899
|
-
userId="user-123"
|
|
6900
|
-
scope={{ organisationId: 'org-456' }}
|
|
6901
|
-
minLevel="admin"
|
|
6902
|
-
fallback={<AccessDenied />}
|
|
6903
|
-
>
|
|
6904
|
-
<AdminPanel />
|
|
6905
|
-
</AccessLevelGuard>
|
|
6906
|
-
|
|
6907
|
-
// With context inference (requires auth context)
|
|
6908
|
-
<AccessLevelGuard
|
|
6909
|
-
minLevel="admin"
|
|
6910
|
-
scope={{ organisationId: 'org-456' }}
|
|
6911
|
-
fallback={<AccessDenied />}
|
|
6912
|
-
>
|
|
6913
|
-
<AdminPanel />
|
|
6914
|
-
</AccessLevelGuard>
|
|
6915
|
-
```
|
|
6916
|
-
|
|
6917
|
-
#### Defined in
|
|
6918
|
-
|
|
6919
|
-
[packages/core/src/rbac/adapters.tsx:190](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L190)
|
|
6920
|
-
|
|
6921
|
-
___
|
|
6922
|
-
|
|
6923
|
-
### withPermissionGuard
|
|
6924
|
-
|
|
6925
|
-
▸ **withPermissionGuard**\<`T`\>(`config`, `handler`): Function
|
|
6926
|
-
|
|
6927
|
-
Permission Guard for Server Handlers
|
|
6928
|
-
|
|
6929
|
-
Wraps a server handler with permission checking.
|
|
6930
|
-
|
|
6931
|
-
#### Type parameters
|
|
6932
|
-
|
|
6933
|
-
| Name | Type |
|
|
6934
|
-
| :------ | :------ |
|
|
6935
|
-
| `T` | extends any[] |
|
|
6936
|
-
|
|
6937
|
-
#### Parameters
|
|
6938
|
-
|
|
6939
|
-
| Name | Type | Description |
|
|
6940
|
-
| :------ | :------ | :------ |
|
|
6941
|
-
| `config` | Object | Permission guard configuration |
|
|
6942
|
-
| `config.permission` | \`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` | - |
|
|
6943
|
-
| `config.pageId?` | string | - |
|
|
6944
|
-
| `handler` | Function | Handler function to wrap |
|
|
6945
|
-
|
|
6946
|
-
#### Returns
|
|
6947
|
-
|
|
6948
|
-
Function
|
|
6949
|
-
|
|
6950
|
-
Wrapped handler function
|
|
6951
|
-
|
|
6952
|
-
▸ (`...args`): Promise\<any\>
|
|
6953
|
-
|
|
6954
|
-
##### Parameters
|
|
6770
|
+
##### Parameters
|
|
6955
6771
|
|
|
6956
6772
|
| Name | Type |
|
|
6957
6773
|
| :------ | :------ |
|
|
@@ -6975,7 +6791,7 @@ const protectedHandler = withPermissionGuard(
|
|
|
6975
6791
|
|
|
6976
6792
|
#### Defined in
|
|
6977
6793
|
|
|
6978
|
-
[packages/core/src/rbac/adapters.tsx:
|
|
6794
|
+
[packages/core/src/rbac/adapters.tsx:43](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L43)
|
|
6979
6795
|
|
|
6980
6796
|
___
|
|
6981
6797
|
|
|
@@ -7032,7 +6848,7 @@ const adminHandler = withAccessLevelGuard(
|
|
|
7032
6848
|
|
|
7033
6849
|
#### Defined in
|
|
7034
6850
|
|
|
7035
|
-
[packages/core/src/rbac/adapters.tsx:
|
|
6851
|
+
[packages/core/src/rbac/adapters.tsx:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L100)
|
|
7036
6852
|
|
|
7037
6853
|
___
|
|
7038
6854
|
|
|
@@ -7098,7 +6914,7 @@ const adminHandler = withRoleGuard(
|
|
|
7098
6914
|
|
|
7099
6915
|
#### Defined in
|
|
7100
6916
|
|
|
7101
|
-
[packages/core/src/rbac/adapters.tsx:
|
|
6917
|
+
[packages/core/src/rbac/adapters.tsx:161](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L161)
|
|
7102
6918
|
|
|
7103
6919
|
___
|
|
7104
6920
|
|
|
@@ -7161,7 +6977,7 @@ export default createRBACMiddleware({
|
|
|
7161
6977
|
|
|
7162
6978
|
#### Defined in
|
|
7163
6979
|
|
|
7164
|
-
[packages/core/src/rbac/adapters.tsx:
|
|
6980
|
+
[packages/core/src/rbac/adapters.tsx:284](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L284)
|
|
7165
6981
|
|
|
7166
6982
|
___
|
|
7167
6983
|
|
|
@@ -7220,67 +7036,7 @@ app.use(createRBACExpressMiddleware({
|
|
|
7220
7036
|
|
|
7221
7037
|
#### Defined in
|
|
7222
7038
|
|
|
7223
|
-
[packages/core/src/rbac/adapters.tsx:
|
|
7224
|
-
|
|
7225
|
-
___
|
|
7226
|
-
|
|
7227
|
-
### hasPermissionCached
|
|
7228
|
-
|
|
7229
|
-
▸ **hasPermissionCached**(`userId`, `scope`, `_permission`, `_pageId?`): boolean
|
|
7230
|
-
|
|
7231
|
-
Check if a user has a permission (synchronous cache check only)
|
|
7232
|
-
|
|
7233
|
-
#### Parameters
|
|
7234
|
-
|
|
7235
|
-
| Name | Type | Description |
|
|
7236
|
-
| :------ | :------ | :------ |
|
|
7237
|
-
| `userId` | string | User ID |
|
|
7238
|
-
| `scope` | Object | Permission scope |
|
|
7239
|
-
| `scope.organisationId` | string | - |
|
|
7240
|
-
| `scope.eventId?` | string | - |
|
|
7241
|
-
| `scope.appId?` | string | - |
|
|
7242
|
-
| `_permission` | \`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\` | - |
|
|
7243
|
-
| `_pageId?` | string | - |
|
|
7244
|
-
|
|
7245
|
-
#### Returns
|
|
7246
|
-
|
|
7247
|
-
boolean
|
|
7248
|
-
|
|
7249
|
-
True if permission is cached and granted
|
|
7250
|
-
|
|
7251
|
-
#### Defined in
|
|
7252
|
-
|
|
7253
|
-
[packages/core/src/rbac/adapters.tsx:636](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L636)
|
|
7254
|
-
|
|
7255
|
-
___
|
|
7256
|
-
|
|
7257
|
-
### hasAnyPermissionCached
|
|
7258
|
-
|
|
7259
|
-
▸ **hasAnyPermissionCached**(`userId`, `scope`, `permissions`, `pageId?`): boolean
|
|
7260
|
-
|
|
7261
|
-
Check if a user has any of the specified permissions (synchronous cache check only)
|
|
7262
|
-
|
|
7263
|
-
#### Parameters
|
|
7264
|
-
|
|
7265
|
-
| Name | Type | Description |
|
|
7266
|
-
| :------ | :------ | :------ |
|
|
7267
|
-
| `userId` | string | User ID |
|
|
7268
|
-
| `scope` | Object | Permission scope |
|
|
7269
|
-
| `scope.organisationId` | string | - |
|
|
7270
|
-
| `scope.eventId?` | string | - |
|
|
7271
|
-
| `scope.appId?` | string | - |
|
|
7272
|
-
| `permissions` | (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\`)[] | Array of permissions to check |
|
|
7273
|
-
| `pageId?` | string | Optional page ID |
|
|
7274
|
-
|
|
7275
|
-
#### Returns
|
|
7276
|
-
|
|
7277
|
-
boolean
|
|
7278
|
-
|
|
7279
|
-
True if any permission is cached and granted
|
|
7280
|
-
|
|
7281
|
-
#### Defined in
|
|
7282
|
-
|
|
7283
|
-
[packages/core/src/rbac/adapters.tsx:661](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L661)
|
|
7039
|
+
[packages/core/src/rbac/adapters.tsx:351](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/adapters.tsx#L351)
|
|
7284
7040
|
|
|
7285
7041
|
___
|
|
7286
7042
|
|
|
@@ -7493,30 +7249,6 @@ Promise resolving to permission result
|
|
|
7493
7249
|
|
|
7494
7250
|
___
|
|
7495
7251
|
|
|
7496
|
-
### hasPermission
|
|
7497
|
-
|
|
7498
|
-
▸ **hasPermission**(`input`): Promise\<boolean\>
|
|
7499
|
-
|
|
7500
|
-
Check if a user has a specific permission (alias for isPermitted)
|
|
7501
|
-
|
|
7502
|
-
#### Parameters
|
|
7503
|
-
|
|
7504
|
-
| Name | Type | Description |
|
|
7505
|
-
| :------ | :------ | :------ |
|
|
7506
|
-
| `input` | PermissionCheck | Permission check parameters |
|
|
7507
|
-
|
|
7508
|
-
#### Returns
|
|
7509
|
-
|
|
7510
|
-
Promise\<boolean\>
|
|
7511
|
-
|
|
7512
|
-
Promise<boolean> - True if user has permission
|
|
7513
|
-
|
|
7514
|
-
#### Defined in
|
|
7515
|
-
|
|
7516
|
-
[packages/core/src/rbac/api.ts:499](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L499)
|
|
7517
|
-
|
|
7518
|
-
___
|
|
7519
|
-
|
|
7520
7252
|
### hasAnyPermission
|
|
7521
7253
|
|
|
7522
7254
|
▸ **hasAnyPermission**(`input`): Promise\<boolean\>
|
|
@@ -7541,7 +7273,7 @@ Promise resolving to true if user has any permission
|
|
|
7541
7273
|
|
|
7542
7274
|
#### Defined in
|
|
7543
7275
|
|
|
7544
|
-
[packages/core/src/rbac/api.ts:
|
|
7276
|
+
[packages/core/src/rbac/api.ts:499](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L499)
|
|
7545
7277
|
|
|
7546
7278
|
___
|
|
7547
7279
|
|
|
@@ -7569,7 +7301,7 @@ Promise resolving to true if user has all permissions
|
|
|
7569
7301
|
|
|
7570
7302
|
#### Defined in
|
|
7571
7303
|
|
|
7572
|
-
[packages/core/src/rbac/api.ts:
|
|
7304
|
+
[packages/core/src/rbac/api.ts:527](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L527)
|
|
7573
7305
|
|
|
7574
7306
|
___
|
|
7575
7307
|
|
|
@@ -7699,7 +7431,7 @@ Get quick fix suggestions for custom auth code
|
|
|
7699
7431
|
| Name | Type |
|
|
7700
7432
|
| :------ | :------ |
|
|
7701
7433
|
| `customCodeName` | string |
|
|
7702
|
-
| `type` | "
|
|
7434
|
+
| `type` | "hook" \| "component" \| "util" |
|
|
7703
7435
|
|
|
7704
7436
|
#### Returns
|
|
7705
7437
|
|
|
@@ -7800,7 +7532,7 @@ Runtime compliance result
|
|
|
7800
7532
|
|
|
7801
7533
|
#### Defined in
|
|
7802
7534
|
|
|
7803
|
-
[packages/core/src/rbac/compliance/runtime-compliance.ts:
|
|
7535
|
+
[packages/core/src/rbac/compliance/runtime-compliance.ts:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L36)
|
|
7804
7536
|
|
|
7805
7537
|
___
|
|
7806
7538
|
|
|
@@ -7819,7 +7551,7 @@ void
|
|
|
7819
7551
|
|
|
7820
7552
|
#### Defined in
|
|
7821
7553
|
|
|
7822
|
-
[packages/core/src/rbac/compliance/runtime-compliance.ts:
|
|
7554
|
+
[packages/core/src/rbac/compliance/runtime-compliance.ts:74](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/compliance/runtime-compliance.ts#L74)
|
|
7823
7555
|
|
|
7824
7556
|
___
|
|
7825
7557
|
|
|
@@ -7877,30 +7609,30 @@ Compliance result with issues and recommendations
|
|
|
7877
7609
|
|
|
7878
7610
|
___
|
|
7879
7611
|
|
|
7880
|
-
###
|
|
7612
|
+
### AccessDenied
|
|
7881
7613
|
|
|
7882
|
-
▸ **
|
|
7614
|
+
▸ **AccessDenied**(`props`): Element
|
|
7883
7615
|
|
|
7884
|
-
|
|
7616
|
+
Standard access denied component
|
|
7885
7617
|
|
|
7886
|
-
This component
|
|
7887
|
-
|
|
7618
|
+
This component is displayed when users lack the necessary permissions.
|
|
7619
|
+
It provides clear messaging and actionable next steps.
|
|
7888
7620
|
|
|
7889
7621
|
#### Parameters
|
|
7890
7622
|
|
|
7891
7623
|
| Name | Type | Description |
|
|
7892
7624
|
| :------ | :------ | :------ |
|
|
7893
|
-
| `props` |
|
|
7625
|
+
| `props` | AccessDeniedProps | Component configuration |
|
|
7894
7626
|
|
|
7895
7627
|
#### Returns
|
|
7896
7628
|
|
|
7897
7629
|
Element
|
|
7898
7630
|
|
|
7899
|
-
|
|
7631
|
+
JSX.Element - The rendered access denied page
|
|
7900
7632
|
|
|
7901
7633
|
#### Defined in
|
|
7902
7634
|
|
|
7903
|
-
[packages/core/src/rbac/components/
|
|
7635
|
+
[packages/core/src/rbac/components/AccessDenied.tsx:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/AccessDenied.tsx#L78)
|
|
7904
7636
|
|
|
7905
7637
|
___
|
|
7906
7638
|
|
|
@@ -7928,56 +7660,7 @@ React element with navigation permission enforcement
|
|
|
7928
7660
|
|
|
7929
7661
|
#### Defined in
|
|
7930
7662
|
|
|
7931
|
-
[packages/core/src/rbac/components/NavigationGuard.tsx:
|
|
7932
|
-
|
|
7933
|
-
___
|
|
7934
|
-
|
|
7935
|
-
### NavigationProvider
|
|
7936
|
-
|
|
7937
|
-
▸ **NavigationProvider**(`props`): Element
|
|
7938
|
-
|
|
7939
|
-
NavigationProvider - Manages navigation-level permissions across the app
|
|
7940
|
-
|
|
7941
|
-
This provider ensures that all navigation items are properly protected and provides
|
|
7942
|
-
centralized navigation permission management with strict enforcement.
|
|
7943
|
-
|
|
7944
|
-
#### Parameters
|
|
7945
|
-
|
|
7946
|
-
| Name | Type | Description |
|
|
7947
|
-
| :------ | :------ | :------ |
|
|
7948
|
-
| `props` | NavigationProviderProps | Provider props |
|
|
7949
|
-
|
|
7950
|
-
#### Returns
|
|
7951
|
-
|
|
7952
|
-
Element
|
|
7953
|
-
|
|
7954
|
-
React element with navigation permission context
|
|
7955
|
-
|
|
7956
|
-
#### Defined in
|
|
7957
|
-
|
|
7958
|
-
[packages/core/src/rbac/components/NavigationProvider.tsx:168](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L168)
|
|
7959
|
-
|
|
7960
|
-
___
|
|
7961
|
-
|
|
7962
|
-
### useNavigationPermissions
|
|
7963
|
-
|
|
7964
|
-
▸ **useNavigationPermissions**(): NavigationContextType
|
|
7965
|
-
|
|
7966
|
-
Hook to use navigation permission context
|
|
7967
|
-
|
|
7968
|
-
#### Returns
|
|
7969
|
-
|
|
7970
|
-
NavigationContextType
|
|
7971
|
-
|
|
7972
|
-
Navigation permission context
|
|
7973
|
-
|
|
7974
|
-
**`Throws`**
|
|
7975
|
-
|
|
7976
|
-
Error if used outside of NavigationProvider
|
|
7977
|
-
|
|
7978
|
-
#### Defined in
|
|
7979
|
-
|
|
7980
|
-
[packages/core/src/rbac/components/NavigationProvider.tsx:335](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L335)
|
|
7663
|
+
[packages/core/src/rbac/components/NavigationGuard.tsx:115](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L115)
|
|
7981
7664
|
|
|
7982
7665
|
___
|
|
7983
7666
|
|
|
@@ -7997,182 +7680,7 @@ ReactNode
|
|
|
7997
7680
|
|
|
7998
7681
|
#### Defined in
|
|
7999
7682
|
|
|
8000
|
-
[packages/core/src/rbac/components/PagePermissionGuard.tsx:
|
|
8001
|
-
|
|
8002
|
-
___
|
|
8003
|
-
|
|
8004
|
-
### PagePermissionProvider
|
|
8005
|
-
|
|
8006
|
-
▸ **PagePermissionProvider**(`props`): Element
|
|
8007
|
-
|
|
8008
|
-
PagePermissionProvider - Manages page-level permissions across the app
|
|
8009
|
-
|
|
8010
|
-
This provider ensures that all pages are properly protected and provides
|
|
8011
|
-
centralized page permission management with strict enforcement.
|
|
8012
|
-
|
|
8013
|
-
#### Parameters
|
|
8014
|
-
|
|
8015
|
-
| Name | Type | Description |
|
|
8016
|
-
| :------ | :------ | :------ |
|
|
8017
|
-
| `props` | PagePermissionProviderProps | Provider props |
|
|
8018
|
-
|
|
8019
|
-
#### Returns
|
|
8020
|
-
|
|
8021
|
-
Element
|
|
8022
|
-
|
|
8023
|
-
React element with page permission context
|
|
8024
|
-
|
|
8025
|
-
#### Defined in
|
|
8026
|
-
|
|
8027
|
-
[packages/core/src/rbac/components/PagePermissionProvider.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L129)
|
|
8028
|
-
|
|
8029
|
-
___
|
|
8030
|
-
|
|
8031
|
-
### usePagePermissions
|
|
8032
|
-
|
|
8033
|
-
▸ **usePagePermissions**(): PagePermissionContextType
|
|
8034
|
-
|
|
8035
|
-
Hook to use page permission context
|
|
8036
|
-
|
|
8037
|
-
#### Returns
|
|
8038
|
-
|
|
8039
|
-
PagePermissionContextType
|
|
8040
|
-
|
|
8041
|
-
Page permission context
|
|
8042
|
-
|
|
8043
|
-
**`Throws`**
|
|
8044
|
-
|
|
8045
|
-
Error if used outside of PagePermissionProvider
|
|
8046
|
-
|
|
8047
|
-
#### Defined in
|
|
8048
|
-
|
|
8049
|
-
[packages/core/src/rbac/components/PagePermissionProvider.tsx:269](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L269)
|
|
8050
|
-
|
|
8051
|
-
___
|
|
8052
|
-
|
|
8053
|
-
### PermissionEnforcer
|
|
8054
|
-
|
|
8055
|
-
▸ **PermissionEnforcer**(`props`): Element
|
|
8056
|
-
|
|
8057
|
-
PermissionEnforcer - Enforces permissions for operations
|
|
8058
|
-
|
|
8059
|
-
This component ensures that users can only perform operations they have permission for.
|
|
8060
|
-
It integrates with the existing RBAC system and provides strict enforcement to
|
|
8061
|
-
prevent apps from bypassing permission checks.
|
|
8062
|
-
|
|
8063
|
-
#### Parameters
|
|
8064
|
-
|
|
8065
|
-
| Name | Type | Description |
|
|
8066
|
-
| :------ | :------ | :------ |
|
|
8067
|
-
| `props` | PermissionEnforcerProps | Component props |
|
|
8068
|
-
|
|
8069
|
-
#### Returns
|
|
8070
|
-
|
|
8071
|
-
Element
|
|
8072
|
-
|
|
8073
|
-
React element with permission enforcement
|
|
8074
|
-
|
|
8075
|
-
#### Defined in
|
|
8076
|
-
|
|
8077
|
-
[packages/core/src/rbac/components/PermissionEnforcer.tsx:121](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L121)
|
|
8078
|
-
|
|
8079
|
-
___
|
|
8080
|
-
|
|
8081
|
-
### RoleBasedRouter
|
|
8082
|
-
|
|
8083
|
-
▸ **RoleBasedRouter**(`props`): Element
|
|
8084
|
-
|
|
8085
|
-
RoleBasedRouter - Centralized routing control with role-based protection
|
|
8086
|
-
|
|
8087
|
-
This component ensures that all routes are properly protected and provides
|
|
8088
|
-
centralized routing control to prevent apps from bypassing route protection.
|
|
8089
|
-
|
|
8090
|
-
#### Parameters
|
|
8091
|
-
|
|
8092
|
-
| Name | Type | Description |
|
|
8093
|
-
| :------ | :------ | :------ |
|
|
8094
|
-
| `props` | RoleBasedRouterProps | Router props |
|
|
8095
|
-
|
|
8096
|
-
#### Returns
|
|
8097
|
-
|
|
8098
|
-
Element
|
|
8099
|
-
|
|
8100
|
-
React element with role-based routing
|
|
8101
|
-
|
|
8102
|
-
#### Defined in
|
|
8103
|
-
|
|
8104
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:183](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L183)
|
|
8105
|
-
|
|
8106
|
-
___
|
|
8107
|
-
|
|
8108
|
-
### useRoleBasedRouter
|
|
8109
|
-
|
|
8110
|
-
▸ **useRoleBasedRouter**(): RoleBasedRouterContextType
|
|
8111
|
-
|
|
8112
|
-
Hook to use role-based router context
|
|
8113
|
-
|
|
8114
|
-
#### Returns
|
|
8115
|
-
|
|
8116
|
-
RoleBasedRouterContextType
|
|
8117
|
-
|
|
8118
|
-
Role-based router context
|
|
8119
|
-
|
|
8120
|
-
**`Throws`**
|
|
8121
|
-
|
|
8122
|
-
Error if used outside of RoleBasedRouter
|
|
8123
|
-
|
|
8124
|
-
#### Defined in
|
|
8125
|
-
|
|
8126
|
-
[packages/core/src/rbac/components/RoleBasedRouter.tsx:403](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L403)
|
|
8127
|
-
|
|
8128
|
-
___
|
|
8129
|
-
|
|
8130
|
-
### SecureDataProvider
|
|
8131
|
-
|
|
8132
|
-
▸ **SecureDataProvider**(`props`): Element
|
|
8133
|
-
|
|
8134
|
-
SecureDataProvider - Prevents direct Supabase access and enforces secure data patterns
|
|
8135
|
-
|
|
8136
|
-
This provider ensures that all data access goes through the secure RBAC system
|
|
8137
|
-
and prevents apps from bypassing data access controls.
|
|
8138
|
-
|
|
8139
|
-
#### Parameters
|
|
8140
|
-
|
|
8141
|
-
| Name | Type | Description |
|
|
8142
|
-
| :------ | :------ | :------ |
|
|
8143
|
-
| `props` | SecureDataProviderProps | Provider props |
|
|
8144
|
-
|
|
8145
|
-
#### Returns
|
|
8146
|
-
|
|
8147
|
-
Element
|
|
8148
|
-
|
|
8149
|
-
React element with secure data context
|
|
8150
|
-
|
|
8151
|
-
#### Defined in
|
|
8152
|
-
|
|
8153
|
-
[packages/core/src/rbac/components/SecureDataProvider.tsx:138](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L138)
|
|
8154
|
-
|
|
8155
|
-
___
|
|
8156
|
-
|
|
8157
|
-
### useSecureData
|
|
8158
|
-
|
|
8159
|
-
▸ **useSecureData**(): SecureDataContextType
|
|
8160
|
-
|
|
8161
|
-
Hook to use secure data context
|
|
8162
|
-
|
|
8163
|
-
#### Returns
|
|
8164
|
-
|
|
8165
|
-
SecureDataContextType
|
|
8166
|
-
|
|
8167
|
-
Secure data context
|
|
8168
|
-
|
|
8169
|
-
**`Throws`**
|
|
8170
|
-
|
|
8171
|
-
Error if used outside of SecureDataProvider
|
|
8172
|
-
|
|
8173
|
-
#### Defined in
|
|
8174
|
-
|
|
8175
|
-
[packages/core/src/rbac/components/SecureDataProvider.tsx:329](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L329)
|
|
7683
|
+
[packages/core/src/rbac/components/PagePermissionGuard.tsx:521](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L521)
|
|
8176
7684
|
|
|
8177
7685
|
___
|
|
8178
7686
|
|
|
@@ -8327,57 +7835,6 @@ function MyComponent() {
|
|
|
8327
7835
|
|
|
8328
7836
|
___
|
|
8329
7837
|
|
|
8330
|
-
### useCachedPermissions
|
|
8331
|
-
|
|
8332
|
-
▸ **useCachedPermissions**(`userId`, `scope`): Object
|
|
8333
|
-
|
|
8334
|
-
Hook to get cached permissions with TTL management
|
|
8335
|
-
|
|
8336
|
-
#### Parameters
|
|
8337
|
-
|
|
8338
|
-
| Name | Type | Description |
|
|
8339
|
-
| :------ | :------ | :------ |
|
|
8340
|
-
| `userId` | string | User ID |
|
|
8341
|
-
| `scope` | Scope | Scope for permission checking |
|
|
8342
|
-
|
|
8343
|
-
#### Returns
|
|
8344
|
-
|
|
8345
|
-
Object
|
|
8346
|
-
|
|
8347
|
-
Cached permission state and methods
|
|
8348
|
-
|
|
8349
|
-
| Name | Type |
|
|
8350
|
-
| :------ | :------ |
|
|
8351
|
-
| `permissions` | PermissionMap |
|
|
8352
|
-
| `isLoading` | boolean |
|
|
8353
|
-
| `error` | Error \| null |
|
|
8354
|
-
| `invalidateCache` | Function |
|
|
8355
|
-
| `refetch` | Function |
|
|
8356
|
-
|
|
8357
|
-
**`Example`**
|
|
8358
|
-
|
|
8359
|
-
```tsx
|
|
8360
|
-
function MyComponent() {
|
|
8361
|
-
const { permissions, isLoading, error, invalidateCache } = useCachedPermissions(userId, scope);
|
|
8362
|
-
|
|
8363
|
-
if (isLoading) return <div>Loading cached permissions...</div>;
|
|
8364
|
-
if (error) return <div>Error: {error.message}</div>;
|
|
8365
|
-
|
|
8366
|
-
return (
|
|
8367
|
-
<div>
|
|
8368
|
-
{permissions['read:users'] && <UserList />}
|
|
8369
|
-
<button onClick={invalidateCache}>Refresh Permissions</button>
|
|
8370
|
-
</div>
|
|
8371
|
-
);
|
|
8372
|
-
}
|
|
8373
|
-
```
|
|
8374
|
-
|
|
8375
|
-
#### Defined in
|
|
8376
|
-
|
|
8377
|
-
[packages/core/src/rbac/hooks/permissions/useCachedPermissions.ts:30](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useCachedPermissions.ts#L30)
|
|
8378
|
-
|
|
8379
|
-
___
|
|
8380
|
-
|
|
8381
7838
|
### useCan
|
|
8382
7839
|
|
|
8383
7840
|
▸ **useCan**(`userId`, `scope`, `permission`, `pageId?`, `useCache?`, `precomputedSuperAdmin?`, `appName?`): Object
|
|
@@ -8428,108 +7885,6 @@ function MyComponent() {
|
|
|
8428
7885
|
|
|
8429
7886
|
___
|
|
8430
7887
|
|
|
8431
|
-
### useHasAllPermissions
|
|
8432
|
-
|
|
8433
|
-
▸ **useHasAllPermissions**(`userId`, `scope`, `permissions`, `useCache?`): Object
|
|
8434
|
-
|
|
8435
|
-
Hook to check if user has all of the specified permissions
|
|
8436
|
-
|
|
8437
|
-
#### Parameters
|
|
8438
|
-
|
|
8439
|
-
| Name | Type | Default value | Description |
|
|
8440
|
-
| :------ | :------ | :------ | :------ |
|
|
8441
|
-
| `userId` | string | `undefined` | User ID |
|
|
8442
|
-
| `scope` | Scope | `undefined` | Scope for permission checking |
|
|
8443
|
-
| `permissions` | (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\`)[] | `undefined` | Array of permissions to check |
|
|
8444
|
-
| `useCache` | boolean | `true` | Whether to use cached results |
|
|
8445
|
-
|
|
8446
|
-
#### Returns
|
|
8447
|
-
|
|
8448
|
-
Object
|
|
8449
|
-
|
|
8450
|
-
Whether user has all of the permissions
|
|
8451
|
-
|
|
8452
|
-
| Name | Type |
|
|
8453
|
-
| :------ | :------ |
|
|
8454
|
-
| `hasAll` | boolean |
|
|
8455
|
-
| `isLoading` | boolean |
|
|
8456
|
-
| `error` | Error \| null |
|
|
8457
|
-
| `refetch` | Function |
|
|
8458
|
-
|
|
8459
|
-
**`Example`**
|
|
8460
|
-
|
|
8461
|
-
```tsx
|
|
8462
|
-
function MyComponent() {
|
|
8463
|
-
const { hasAll, isLoading, error } = useHasAllPermissions(
|
|
8464
|
-
userId,
|
|
8465
|
-
scope,
|
|
8466
|
-
['read:users', 'create:users', 'update:users']
|
|
8467
|
-
);
|
|
8468
|
-
|
|
8469
|
-
if (isLoading) return <div>Checking permissions...</div>;
|
|
8470
|
-
if (error) return <div>Error: {error.message}</div>;
|
|
8471
|
-
|
|
8472
|
-
return hasAll ? <FullUserManagementPanel /> : <div>Insufficient permissions</div>;
|
|
8473
|
-
}
|
|
8474
|
-
```
|
|
8475
|
-
|
|
8476
|
-
#### Defined in
|
|
8477
|
-
|
|
8478
|
-
[packages/core/src/rbac/hooks/permissions/useHasAllPermissions.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useHasAllPermissions.ts#L31)
|
|
8479
|
-
|
|
8480
|
-
___
|
|
8481
|
-
|
|
8482
|
-
### useHasAnyPermission
|
|
8483
|
-
|
|
8484
|
-
▸ **useHasAnyPermission**(`userId`, `scope`, `permissions`, `useCache?`): Object
|
|
8485
|
-
|
|
8486
|
-
Hook to check if user has any of the specified permissions
|
|
8487
|
-
|
|
8488
|
-
#### Parameters
|
|
8489
|
-
|
|
8490
|
-
| Name | Type | Default value | Description |
|
|
8491
|
-
| :------ | :------ | :------ | :------ |
|
|
8492
|
-
| `userId` | string | `undefined` | User ID |
|
|
8493
|
-
| `scope` | Scope | `undefined` | Scope for permission checking |
|
|
8494
|
-
| `permissions` | (\`read:$\{string}\` \| \`create:$\{string}\` \| \`update:$\{string}\` \| \`delete:$\{string}\`)[] | `undefined` | Array of permissions to check |
|
|
8495
|
-
| `useCache` | boolean | `true` | Whether to use cached results |
|
|
8496
|
-
|
|
8497
|
-
#### Returns
|
|
8498
|
-
|
|
8499
|
-
Object
|
|
8500
|
-
|
|
8501
|
-
Whether user has any of the permissions
|
|
8502
|
-
|
|
8503
|
-
| Name | Type |
|
|
8504
|
-
| :------ | :------ |
|
|
8505
|
-
| `hasAny` | boolean |
|
|
8506
|
-
| `isLoading` | boolean |
|
|
8507
|
-
| `error` | Error \| null |
|
|
8508
|
-
| `refetch` | Function |
|
|
8509
|
-
|
|
8510
|
-
**`Example`**
|
|
8511
|
-
|
|
8512
|
-
```tsx
|
|
8513
|
-
function MyComponent() {
|
|
8514
|
-
const { hasAny, isLoading, error } = useHasAnyPermission(
|
|
8515
|
-
userId,
|
|
8516
|
-
scope,
|
|
8517
|
-
['read:users', 'create:users']
|
|
8518
|
-
);
|
|
8519
|
-
|
|
8520
|
-
if (isLoading) return <div>Checking permissions...</div>;
|
|
8521
|
-
if (error) return <div>Error: {error.message}</div>;
|
|
8522
|
-
|
|
8523
|
-
return hasAny ? <UserManagementPanel /> : <div>No user permissions</div>;
|
|
8524
|
-
}
|
|
8525
|
-
```
|
|
8526
|
-
|
|
8527
|
-
#### Defined in
|
|
8528
|
-
|
|
8529
|
-
[packages/core/src/rbac/hooks/permissions/useHasAnyPermission.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/permissions/useHasAnyPermission.ts#L31)
|
|
8530
|
-
|
|
8531
|
-
___
|
|
8532
|
-
|
|
8533
7888
|
### useMultiplePermissions
|
|
8534
7889
|
|
|
8535
7890
|
▸ **useMultiplePermissions**(`userId`, `scope`, `permissions`, `useCache?`): Object
|
|
@@ -8706,7 +8061,7 @@ const permission = useCan(userId, resolvedScope, permission);
|
|
|
8706
8061
|
|
|
8707
8062
|
#### Defined in
|
|
8708
8063
|
|
|
8709
|
-
[packages/core/src/rbac/hooks/useResolvedScope.ts:
|
|
8064
|
+
[packages/core/src/rbac/hooks/useResolvedScope.ts:75](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L75)
|
|
8710
8065
|
|
|
8711
8066
|
___
|
|
8712
8067
|
|
|
@@ -8721,15 +8076,22 @@ permissions for a resource type. It handles scope resolution, user context,
|
|
|
8721
8076
|
and provides a simple API for permission checking.
|
|
8722
8077
|
|
|
8723
8078
|
**Page Permission Support:**
|
|
8724
|
-
When an `appId` is available in the resolved scope, the
|
|
8725
|
-
|
|
8726
|
-
|
|
8727
|
-
|
|
8079
|
+
When an `appId` is available in the resolved scope, the hook automatically:
|
|
8080
|
+
1. Waits for scope resolution to complete (including `appId` being set)
|
|
8081
|
+
2. Constructs permission strings with the `page.` prefix (e.g., `create:page.planning`)
|
|
8082
|
+
3. Passes the resource name as `pageId` to enable page-based permission checks
|
|
8083
|
+
|
|
8084
|
+
This ensures permission strings match the format returned by `rbac_permissions_get`
|
|
8085
|
+
(e.g., `create:page.planning`) rather than resource-based format (e.g., `create:planning`).
|
|
8086
|
+
|
|
8087
|
+
**Scope Resolution Timing:**
|
|
8088
|
+
The hook waits for scope resolution to complete before constructing permission strings.
|
|
8089
|
+
This prevents timing issues where permission checks use the wrong format (e.g., `delete:planning`
|
|
8090
|
+
instead of `delete:page.planning`) when `appId` is not yet available in the scope.
|
|
8728
8091
|
|
|
8729
|
-
The RPC function `rbac_check_permission_simplified` will
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
it will fall back to resource-based permission checking.
|
|
8092
|
+
The RPC function `rbac_check_permission_simplified` will resolve the page name to a page ID
|
|
8093
|
+
and check page permissions if the resource matches a registered page in `rbac_app_pages`.
|
|
8094
|
+
If the resource is not a registered page, it will fall back to resource-based permission checking.
|
|
8733
8095
|
|
|
8734
8096
|
#### Parameters
|
|
8735
8097
|
|
|
@@ -8779,7 +8141,7 @@ function usePlanning() {
|
|
|
8779
8141
|
|
|
8780
8142
|
#### Defined in
|
|
8781
8143
|
|
|
8782
|
-
[packages/core/src/rbac/hooks/useResourcePermissions.ts:
|
|
8144
|
+
[packages/core/src/rbac/hooks/useResourcePermissions.ts:141](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResourcePermissions.ts#L141)
|
|
8783
8145
|
|
|
8784
8146
|
___
|
|
8785
8147
|
|
|
@@ -10055,6 +9417,73 @@ Promise\<Object\>
|
|
|
10055
9417
|
|
|
10056
9418
|
___
|
|
10057
9419
|
|
|
9420
|
+
### createBaseClient
|
|
9421
|
+
|
|
9422
|
+
▸ **createBaseClient**(`supabaseUrl`, `supabaseKey`): SupabaseClient\<Database\>
|
|
9423
|
+
|
|
9424
|
+
Create a base Supabase client for UnifiedAuthProvider
|
|
9425
|
+
|
|
9426
|
+
**CRITICAL**: This function can ONLY be called from:
|
|
9427
|
+
- `src/main.tsx` (or `main.jsx`)
|
|
9428
|
+
- `src/App.tsx` (or `App.jsx`)
|
|
9429
|
+
- `src/lib/supabase.ts` (or `supabase.js`)
|
|
9430
|
+
- `src/supabase.ts` (or `supabase.js`)
|
|
9431
|
+
|
|
9432
|
+
**DO NOT** use this client directly for queries. Always use `useSecureSupabase()` hook instead.
|
|
9433
|
+
|
|
9434
|
+
The client is configured with explicit auth options to ensure consistent session persistence:
|
|
9435
|
+
- `persistSession: true` - Sessions are saved to localStorage and restored on page load/refresh
|
|
9436
|
+
- `autoRefreshToken: true` - Tokens are automatically refreshed before expiry
|
|
9437
|
+
- `detectSessionInUrl: true` - Detects and handles OAuth callback URLs
|
|
9438
|
+
- `flowType: 'pkce'` - Uses PKCE flow for enhanced security
|
|
9439
|
+
|
|
9440
|
+
This configuration ensures that users remain logged in after hard refresh (Cmd+Shift+R)
|
|
9441
|
+
and other browser navigation scenarios across all consuming apps.
|
|
9442
|
+
|
|
9443
|
+
#### Parameters
|
|
9444
|
+
|
|
9445
|
+
| Name | Type | Description |
|
|
9446
|
+
| :------ | :------ | :------ |
|
|
9447
|
+
| `supabaseUrl` | string | Supabase project URL |
|
|
9448
|
+
| `supabaseKey` | string | Supabase publishable key or anon key (accepts both legacy anon keys and modern publishable keys) |
|
|
9449
|
+
|
|
9450
|
+
#### Returns
|
|
9451
|
+
|
|
9452
|
+
SupabaseClient\<Database\>
|
|
9453
|
+
|
|
9454
|
+
Supabase client instance with auth configuration
|
|
9455
|
+
|
|
9456
|
+
**`Throws`**
|
|
9457
|
+
|
|
9458
|
+
If called from an unauthorized file location (development only)
|
|
9459
|
+
|
|
9460
|
+
**`Example`**
|
|
9461
|
+
|
|
9462
|
+
```tsx
|
|
9463
|
+
// main.tsx
|
|
9464
|
+
import { createBaseClient } from '@jmruthers/pace-core';
|
|
9465
|
+
import { UnifiedAuthProvider } from '@jmruthers/pace-core';
|
|
9466
|
+
|
|
9467
|
+
const supabase = createBaseClient(
|
|
9468
|
+
import.meta.env.VITE_SUPABASE_URL,
|
|
9469
|
+
import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY
|
|
9470
|
+
);
|
|
9471
|
+
|
|
9472
|
+
function App() {
|
|
9473
|
+
return (
|
|
9474
|
+
<UnifiedAuthProvider supabaseClient={supabase} appName="MyApp">
|
|
9475
|
+
<YourApp />
|
|
9476
|
+
</UnifiedAuthProvider>
|
|
9477
|
+
);
|
|
9478
|
+
}
|
|
9479
|
+
```
|
|
9480
|
+
|
|
9481
|
+
#### Defined in
|
|
9482
|
+
|
|
9483
|
+
[packages/core/src/utils/supabase/createBaseClient.ts:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/supabase/createBaseClient.ts#L120)
|
|
9484
|
+
|
|
9485
|
+
___
|
|
9486
|
+
|
|
10058
9487
|
### formatInTimeZone
|
|
10059
9488
|
|
|
10060
9489
|
▸ **formatInTimeZone**(`date`, `timeZone`, `formatStr`): string
|
|
@@ -10305,3 +9734,98 @@ getTimeZoneDifference('America/New_York', 'America/Los_Angeles');
|
|
|
10305
9734
|
#### Defined in
|
|
10306
9735
|
|
|
10307
9736
|
[packages/core/src/utils/timezone/timezone.ts:264](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/timezone/timezone.ts#L264)
|
|
9737
|
+
|
|
9738
|
+
___
|
|
9739
|
+
|
|
9740
|
+
### sanitizeHtml
|
|
9741
|
+
|
|
9742
|
+
▸ **sanitizeHtml**(`html`): string
|
|
9743
|
+
|
|
9744
|
+
Basic HTML sanitization function using regex-based approach
|
|
9745
|
+
Removes potentially dangerous elements and attributes while preserving basic formatting
|
|
9746
|
+
This approach is more reliable in SSR environments and doesn't require DOM manipulation
|
|
9747
|
+
|
|
9748
|
+
#### Parameters
|
|
9749
|
+
|
|
9750
|
+
| Name | Type | Description |
|
|
9751
|
+
| :------ | :------ | :------ |
|
|
9752
|
+
| `html` | string | The HTML string to sanitize |
|
|
9753
|
+
|
|
9754
|
+
#### Returns
|
|
9755
|
+
|
|
9756
|
+
string
|
|
9757
|
+
|
|
9758
|
+
Sanitized HTML string safe for rendering
|
|
9759
|
+
|
|
9760
|
+
**`Example`**
|
|
9761
|
+
|
|
9762
|
+
```tsx
|
|
9763
|
+
const safeHtml = sanitizeHtml('<p>Hello <strong>world</strong>!</p>');
|
|
9764
|
+
// Returns: '<p>Hello <strong>world</strong>!</p>'
|
|
9765
|
+
|
|
9766
|
+
const dangerousHtml = sanitizeHtml('<script>alert("xss")</script><p>Safe content</p>');
|
|
9767
|
+
// Returns: '<p>Safe content</p>'
|
|
9768
|
+
```
|
|
9769
|
+
|
|
9770
|
+
#### Defined in
|
|
9771
|
+
|
|
9772
|
+
[packages/core/src/utils/validation/htmlSanitization.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/validation/htmlSanitization.ts#L54)
|
|
9773
|
+
|
|
9774
|
+
___
|
|
9775
|
+
|
|
9776
|
+
### sanitizeUserInput
|
|
9777
|
+
|
|
9778
|
+
▸ **sanitizeUserInput**(`input`, `options?`): string
|
|
9779
|
+
|
|
9780
|
+
Sanitizes user input by removing potentially dangerous characters and patterns
|
|
9781
|
+
|
|
9782
|
+
#### Parameters
|
|
9783
|
+
|
|
9784
|
+
| Name | Type |
|
|
9785
|
+
| :------ | :------ |
|
|
9786
|
+
| `input` | string |
|
|
9787
|
+
| `options` | SanitizationOptions |
|
|
9788
|
+
|
|
9789
|
+
#### Returns
|
|
9790
|
+
|
|
9791
|
+
string
|
|
9792
|
+
|
|
9793
|
+
#### Defined in
|
|
9794
|
+
|
|
9795
|
+
[packages/core/src/utils/validation/sanitization.ts:40](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/validation/sanitization.ts#L40)
|
|
9796
|
+
|
|
9797
|
+
___
|
|
9798
|
+
|
|
9799
|
+
### sanitizeFormData
|
|
9800
|
+
|
|
9801
|
+
▸ **sanitizeFormData**\<`T`\>(`data`, `schema`, `sanitizationRules?`): Object
|
|
9802
|
+
|
|
9803
|
+
Validates and sanitizes form data using Zod schemas
|
|
9804
|
+
|
|
9805
|
+
#### Type parameters
|
|
9806
|
+
|
|
9807
|
+
| Name |
|
|
9808
|
+
| :------ |
|
|
9809
|
+
| `T` |
|
|
9810
|
+
|
|
9811
|
+
#### Parameters
|
|
9812
|
+
|
|
9813
|
+
| Name | Type |
|
|
9814
|
+
| :------ | :------ |
|
|
9815
|
+
| `data` | unknown |
|
|
9816
|
+
| `schema` | ZodType\<T, ZodTypeDef, T\> |
|
|
9817
|
+
| `sanitizationRules?` | Record\<string, SanitizationOptions\> |
|
|
9818
|
+
|
|
9819
|
+
#### Returns
|
|
9820
|
+
|
|
9821
|
+
Object
|
|
9822
|
+
|
|
9823
|
+
| Name | Type |
|
|
9824
|
+
| :------ | :------ |
|
|
9825
|
+
| `success` | boolean |
|
|
9826
|
+
| `data?` | T |
|
|
9827
|
+
| `error?` | string |
|
|
9828
|
+
|
|
9829
|
+
#### Defined in
|
|
9830
|
+
|
|
9831
|
+
[packages/core/src/utils/validation/sanitization.ts:170](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/validation/sanitization.ts#L170)
|