@jmruthers/pace-core 0.5.181 → 0.5.183
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 +1 -1
- package/README.md +16 -2
- package/dist/{AuthService-DYuQPJj6.d.ts → AuthService-B-cd2MA4.d.ts} +9 -11
- package/dist/{DataTable-CWAZZcXC.d.ts → DataTable-Bz8ffqyA.d.ts} +1 -1
- package/dist/{DataTable-UA6CL4JI.js → DataTable-QAB34V6K.js} +14 -15
- package/dist/UnifiedAuthProvider-7F6T4B6K.js +13 -0
- package/dist/{UnifiedAuthProvider-DJxGTftH.d.ts → UnifiedAuthProvider-F86d7dSi.d.ts} +5 -6
- package/dist/{api-45XYYO2A.js → api-ROMBCNKU.js} +5 -5
- package/dist/{audit-64X3VJXB.js → audit-WRS3KJKI.js} +4 -4
- package/dist/auth-BZOJqrdd.d.ts +49 -0
- package/dist/{chunk-CX5M4ZAG.js → chunk-5DRSZLL2.js} +1 -1
- package/dist/chunk-5DRSZLL2.js.map +1 -0
- package/dist/{chunk-BESYRHQM.js → chunk-6C4YBBJM.js} +10 -7
- package/dist/chunk-6C4YBBJM.js.map +1 -0
- package/dist/{chunk-PLDDJCW6.js → chunk-7D4SUZUM.js} +2 -13
- package/dist/{chunk-HRO5HWN2.js → chunk-CSOFYHAG.js} +55 -162
- package/dist/chunk-CSOFYHAG.js.map +1 -0
- package/dist/{chunk-ANBQRTPX.js → chunk-E66EQZE6.js} +3 -5
- package/dist/{chunk-ANBQRTPX.js.map → chunk-E66EQZE6.js.map} +1 -1
- package/dist/{chunk-Q5QRDWKI.js → chunk-F2IMUDXZ.js} +4 -6
- package/dist/chunk-F2IMUDXZ.js.map +1 -0
- package/dist/{chunk-SBVILCCA.js → chunk-FSFQFJCU.js} +28 -6
- package/dist/chunk-FSFQFJCU.js.map +1 -0
- package/dist/chunk-FUEYYMX5.js +2296 -0
- package/dist/chunk-FUEYYMX5.js.map +1 -0
- package/dist/{chunk-FFKNH6U5.js → chunk-HKIT6O7W.js} +3 -5
- package/dist/{chunk-FFKNH6U5.js.map → chunk-HKIT6O7W.js.map} +1 -1
- package/dist/chunk-KQCRWDSA.js +1 -0
- package/dist/{chunk-S5OFRT4M.js → chunk-KUEN3HFB.js} +6 -6
- package/dist/chunk-KUEN3HFB.js.map +1 -0
- package/dist/chunk-LMC26NLJ.js +84 -0
- package/dist/chunk-LMC26NLJ.js.map +1 -0
- package/dist/{chunk-BVYWGZVV.js → chunk-M7W4CP3M.js} +52 -19
- package/dist/chunk-M7W4CP3M.js.map +1 -0
- package/dist/{chunk-HZLDFOE4.js → chunk-MI7HBHN3.js} +164 -243
- package/dist/chunk-MI7HBHN3.js.map +1 -0
- package/dist/{chunk-PPMP5J6T.js → chunk-PWAHJW4G.js} +180 -29
- package/dist/chunk-PWAHJW4G.js.map +1 -0
- package/dist/chunk-PWLANIRT.js +127 -0
- package/dist/{chunk-XDNLUEXI.js.map → chunk-PWLANIRT.js.map} +1 -1
- package/dist/chunk-QCDXODCA.js +75 -0
- package/dist/chunk-QCDXODCA.js.map +1 -0
- package/dist/{chunk-D7LCGMVS.js → chunk-QETLRQI6.js} +526 -887
- package/dist/chunk-QETLRQI6.js.map +1 -0
- package/dist/{chunk-5MT24GKJ.js → chunk-QUVSNGIP.js} +264 -262
- package/dist/chunk-QUVSNGIP.js.map +1 -0
- package/dist/chunk-QXHPKYJV.js +113 -0
- package/dist/chunk-QXHPKYJV.js.map +1 -0
- package/dist/{chunk-OWAG3GSU.js → chunk-R77UEZ4E.js} +11 -1
- package/dist/chunk-R77UEZ4E.js.map +1 -0
- package/dist/{chunk-ZYTYSTO5.js → chunk-RA3JUFMW.js} +314 -161
- package/dist/chunk-RA3JUFMW.js.map +1 -0
- package/dist/{chunk-ERISIBYU.js → chunk-SQGMNID3.js} +3 -8
- package/dist/chunk-SQGMNID3.js.map +1 -0
- package/dist/{chunk-XJ2HZOBU.js → chunk-UHNYIBXL.js} +1 -1
- package/dist/chunk-UHNYIBXL.js.map +1 -0
- package/{src/utils/secureStorage.ts → dist/chunk-VBXEHIUJ.js} +113 -88
- package/dist/{chunk-7QCC6MCP.js.map → chunk-VBXEHIUJ.js.map} +1 -1
- package/dist/{chunk-VZ4VDGTB.js → chunk-W22JP75J.js} +5 -13
- package/dist/{chunk-VZ4VDGTB.js.map → chunk-W22JP75J.js.map} +1 -1
- package/dist/components.d.ts +12 -93
- package/dist/components.js +23 -106
- package/dist/components.js.map +1 -1
- package/dist/core-CUElvH_C.d.ts +164 -0
- package/dist/database.generated-CBmg2950.d.ts +8284 -0
- package/dist/event-CW5YB_2p.d.ts +239 -0
- package/dist/{file-reference-C6Gkn77H.d.ts → file-reference-D06mEEWW.d.ts} +7 -5
- package/dist/functions-D_kgHktt.d.ts +208 -0
- package/dist/hooks.d.ts +54 -7
- package/dist/hooks.js +204 -17
- package/dist/hooks.js.map +1 -1
- package/dist/{EventLogo-B3V3otev.d.ts → index-Bl--n7-T.d.ts} +387 -397
- package/dist/index.d.ts +94 -261
- package/dist/index.js +314 -126
- package/dist/index.js.map +1 -1
- package/dist/providers.d.ts +7 -8
- package/dist/providers.js +6 -13
- package/dist/rbac/index.d.ts +171 -101
- package/dist/rbac/index.js +23 -17
- package/dist/styles/index.d.ts +1 -3
- package/dist/styles/index.js +2 -17
- package/dist/theming/runtime.js +3 -3
- package/dist/types-UU913iLA.d.ts +102 -0
- package/dist/{types-Dfz9dmVH.d.ts → types-_x1f4QBF.d.ts} +6 -6
- package/dist/types.d.ts +88 -227
- package/dist/types.js +64 -112
- package/dist/types.js.map +1 -1
- package/dist/{usePublicRouteParams-B7PabvuH.d.ts → usePublicRouteParams-JJczomYq.d.ts} +203 -6
- package/dist/utils.d.ts +299 -13
- package/dist/utils.js +481 -55
- package/dist/utils.js.map +1 -1
- package/dist/validation-643vUDZW.d.ts +177 -0
- package/docs/DOCUMENTATION_REVIEW_TRACKER.md +511 -0
- package/docs/README.md +9 -8
- package/docs/api/README.md +16 -2
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +4 -4
- package/docs/api/classes/MissingUserContextError.md +4 -4
- package/docs/api/classes/OrganisationContextRequiredError.md +4 -4
- package/docs/api/classes/PermissionDeniedError.md +4 -4
- package/docs/api/classes/RBACAuditManager.md +14 -14
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +2 -2
- package/docs/api/classes/RBACError.md +4 -4
- package/docs/api/classes/RBACNotInitializedError.md +4 -4
- package/docs/api/classes/SecureSupabaseClient.md +29 -9
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +17 -17
- package/docs/api/enums/RBACErrorCode.md +228 -0
- package/docs/api/enums/RPCFunction.md +118 -0
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/BadgeProps.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +2 -2
- package/docs/api/interfaces/CalendarProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +29 -3
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +2 -2
- package/docs/api/interfaces/DataTableColumn.md +6 -6
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +2 -2
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventAppRoleData.md +1 -1
- package/docs/api/interfaces/ExportColumn.md +5 -5
- package/docs/api/interfaces/ExportOptions.md +4 -4
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +13 -13
- package/docs/api/interfaces/FileReference.md +12 -12
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +10 -10
- package/docs/api/interfaces/FileUploadProps.md +19 -19
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/FormFieldProps.md +166 -0
- package/docs/api/interfaces/FormProps.md +113 -0
- package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +8 -8
- package/docs/api/interfaces/InputProps.md +2 -2
- package/docs/api/interfaces/LabelProps.md +8 -8
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +17 -73
- package/docs/api/interfaces/NavigationMenuProps.md +38 -53
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +13 -13
- package/docs/api/interfaces/OrganisationContextType.md +21 -21
- package/docs/api/interfaces/OrganisationMembership.md +15 -15
- package/docs/api/interfaces/OrganisationProviderProps.md +59 -2
- package/docs/api/interfaces/OrganisationSecurityError.md +5 -5
- package/docs/api/interfaces/PaceAppLayoutProps.md +26 -39
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/ProgressProps.md +50 -0
- package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +9 -9
- package/docs/api/interfaces/PublicPageHeaderProps.md +10 -10
- package/docs/api/interfaces/PublicPageLayoutProps.md +15 -15
- package/docs/api/interfaces/RBACAccessValidateParams.md +52 -0
- package/docs/api/interfaces/RBACAccessValidateResult.md +41 -0
- package/docs/api/interfaces/RBACAuditLogParams.md +85 -0
- package/docs/api/interfaces/RBACAuditLogResult.md +52 -0
- package/docs/api/interfaces/RBACConfig.md +2 -2
- package/docs/api/interfaces/RBACContext.md +52 -0
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RBACPageAccessCheckParams.md +74 -0
- package/docs/api/interfaces/RBACPermissionCheckParams.md +74 -0
- package/docs/api/interfaces/RBACPermissionCheckResult.md +52 -0
- package/docs/api/interfaces/RBACPermissionsGetParams.md +63 -0
- package/docs/api/interfaces/RBACPermissionsGetResult.md +63 -0
- package/docs/api/interfaces/RBACResult.md +58 -0
- package/docs/api/interfaces/RBACRoleGrantParams.md +63 -0
- package/docs/api/interfaces/RBACRoleGrantResult.md +52 -0
- package/docs/api/interfaces/RBACRoleRevokeParams.md +63 -0
- package/docs/api/interfaces/RBACRoleRevokeResult.md +52 -0
- package/docs/api/interfaces/RBACRoleValidateParams.md +52 -0
- package/docs/api/interfaces/RBACRoleValidateResult.md +63 -0
- package/docs/api/interfaces/RBACRolesListParams.md +52 -0
- package/docs/api/interfaces/RBACRolesListResult.md +74 -0
- package/docs/api/interfaces/RBACSessionTrackParams.md +74 -0
- package/docs/api/interfaces/RBACSessionTrackResult.md +52 -0
- package/docs/api/interfaces/ResourcePermissions.md +1 -1
- package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RoleManagementResult.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/SessionRestorationLoaderProps.md +15 -2
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/TabsContentProps.md +1 -1
- package/docs/api/interfaces/TabsListProps.md +1 -1
- package/docs/api/interfaces/TabsProps.md +1 -1
- package/docs/api/interfaces/TabsTriggerProps.md +43 -2
- package/docs/api/interfaces/TextareaProps.md +2 -2
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +61 -61
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +87 -0
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +81 -0
- package/docs/api/interfaces/UsePublicEventOptions.md +3 -3
- package/docs/api/interfaces/UsePublicEventReturn.md +5 -5
- package/docs/api/interfaces/UsePublicFileDisplayOptions.md +2 -2
- package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +2 -2
- package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
- package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +4 -4
- package/docs/api/interfaces/UserProfile.md +7 -7
- package/docs/api/modules.md +484 -462
- package/docs/api-reference/components.md +186 -15
- package/docs/api-reference/deprecated.md +376 -0
- package/docs/api-reference/hooks.md +149 -19
- package/docs/api-reference/providers.md +61 -6
- package/docs/api-reference/rpc-functions.md +397 -0
- package/docs/api-reference/types.md +135 -78
- package/docs/api-reference/utilities.md +51 -380
- package/docs/architecture/README.md +49 -3
- package/docs/architecture/database-schema-requirements.md +40 -3
- package/docs/architecture/rbac-security-architecture.md +41 -4
- package/docs/architecture/services.md +127 -42
- package/docs/best-practices/README.md +51 -5
- package/docs/best-practices/accessibility.md +32 -3
- package/docs/best-practices/common-patterns.md +50 -3
- package/docs/best-practices/deployment.md +50 -4
- package/docs/best-practices/performance.md +50 -3
- package/docs/best-practices/security.md +94 -41
- package/docs/best-practices/testing.md +33 -4
- package/docs/core-concepts/authentication.md +5 -5
- package/docs/core-concepts/events.md +3 -3
- package/docs/core-concepts/organisations.md +3 -3
- package/docs/core-concepts/permissions.md +3 -3
- package/docs/core-concepts/rbac-system.md +5 -5
- package/docs/documentation-index.md +30 -8
- package/docs/getting-started/documentation-index.md +1 -1
- package/docs/getting-started/examples/README.md +7 -5
- package/docs/getting-started/examples/basic-auth-app.md +3 -0
- package/docs/getting-started/examples/full-featured-app.md +5 -3
- package/docs/getting-started/faq.md +6 -6
- package/docs/getting-started/installation-guide.md +192 -13
- package/docs/getting-started/local-development.md +303 -0
- package/docs/getting-started/quick-reference.md +3 -3
- package/docs/getting-started/quick-start.md +517 -0
- package/docs/implementation-guides/app-layout.md +45 -3
- package/docs/implementation-guides/authentication.md +66 -7
- package/docs/implementation-guides/component-styling.md +53 -3
- package/docs/implementation-guides/data-tables.md +76 -7
- package/docs/implementation-guides/datatable-filtering.md +1 -2
- package/docs/implementation-guides/datatable-rbac-usage.md +0 -1
- package/docs/implementation-guides/dynamic-colors.md +155 -4
- package/docs/implementation-guides/file-reference-system.md +72 -3
- package/docs/implementation-guides/file-upload-storage.md +72 -3
- package/docs/implementation-guides/forms.md +53 -3
- package/docs/implementation-guides/inactivity-tracking.md +53 -3
- package/docs/implementation-guides/large-datasets.md +1 -1
- package/docs/implementation-guides/navigation.md +55 -5
- package/docs/implementation-guides/organisation-security.md +72 -3
- package/docs/implementation-guides/performance.md +57 -1
- package/docs/implementation-guides/permission-enforcement.md +81 -8
- package/docs/implementation-guides/public-pages.md +560 -14
- package/docs/migration/MIGRATION_GUIDE.md +409 -50
- package/docs/migration/README.md +37 -3
- package/docs/migration/organisation-context-timing-fix.md +39 -4
- package/docs/migration/quick-migration-guide.md +41 -5
- package/docs/migration/rbac-migration.md +59 -3
- package/docs/migration/service-architecture.md +77 -14
- package/docs/rbac/README.md +79 -3
- package/docs/rbac/advanced-patterns.md +47 -3
- package/docs/rbac/api-reference.md +77 -8
- package/docs/rbac/event-based-apps.md +50 -5
- package/docs/rbac/examples/rbac-rls-integration-example.md +3 -3
- package/docs/rbac/examples.md +39 -3
- package/docs/rbac/getting-started.md +63 -4
- package/docs/rbac/quick-start.md +57 -5
- package/docs/rbac/rbac-rls-integration.md +68 -6
- package/docs/rbac/super-admin-guide.md +47 -3
- package/docs/rbac/troubleshooting.md +3 -3
- package/docs/security/README.md +68 -3
- package/docs/security/checklist.md +50 -3
- package/docs/standards/01-architecture-standard.md +39 -0
- package/docs/standards/02-api-and-rpc-standard.md +39 -0
- package/docs/standards/03-component-standard.md +32 -0
- package/docs/standards/04-code-style-standard.md +32 -0
- package/docs/standards/05-security-standard.md +30 -0
- package/docs/standards/06-testing-and-docs-standard.md +29 -0
- package/docs/standards/README.md +35 -0
- package/docs/styles/README.md +89 -8
- package/docs/testing/README.md +175 -24
- package/docs/troubleshooting/README.md +50 -3
- package/docs/troubleshooting/common-issues.md +271 -5
- package/docs/troubleshooting/debugging.md +54 -1
- package/docs/troubleshooting/migration.md +54 -1
- package/docs/troubleshooting/organisation-context-setup.md +29 -3
- package/docs/troubleshooting/styling-issues.md +246 -4
- package/{src/components/DataTable/examples → examples/DataTable}/GroupingAggregationExample.tsx +1 -1
- package/examples/{components 2/DataTable/HierarchicalActionsExample.tsx → DataTable/HierarchicalActionsExample.tsx} +7 -6
- package/{src/components/DataTable/examples → examples/DataTable}/HierarchicalExample.tsx +8 -6
- package/examples/{components 2/DataTable/PerformanceExample.tsx → DataTable/PerformanceExample.tsx} +2 -2
- package/examples/{components 2/DataTable/index.ts → DataTable/index.ts} +1 -0
- package/{src/components/Dialog/examples → examples/Dialog}/HtmlDialogExample.tsx +3 -3
- package/examples/{components 2/Dialog/ScrollableDialogExample.tsx → Dialog/ScrollableDialogExample.tsx} +1 -1
- package/{src/components/Dialog/examples → examples/Dialog}/SmartDialogExample.tsx +1 -1
- package/examples/{components 2/Dialog/index.ts → Dialog/index.ts} +0 -3
- package/examples/{features/public-pages → PublicPages}/CorrectPublicPageImplementation.tsx +52 -17
- package/examples/{features/public-pages → PublicPages}/PublicEventPage.tsx +65 -35
- package/examples/{features/public-pages → PublicPages}/PublicPageApp.tsx +52 -18
- package/examples/{features/public-pages → PublicPages}/PublicPageUsageExample.tsx +28 -15
- package/examples/README.md +81 -33
- package/examples/index.ts +14 -12
- package/examples/{RBAC → rbac}/CompleteRBACExample.tsx +1 -1
- package/examples/{features/rbac → rbac}/EventBasedApp.tsx +4 -4
- package/examples/{features/rbac → rbac}/PermissionExample.tsx +5 -3
- package/package.json +21 -27
- package/src/__tests__/helpers/test-utils.tsx +29 -3
- package/src/__tests__/rbac/PagePermissionGuard.test.tsx +7 -5
- package/src/components/Alert/Alert.test.tsx +2 -2
- package/src/components/Alert/Alert.tsx +4 -4
- package/src/components/Avatar/Avatar.test.tsx +17 -6
- package/src/components/Badge/Badge.test.tsx +1 -1
- package/src/components/Badge/Badge.tsx +2 -2
- package/src/components/Button/Button.test.tsx +2 -2
- package/src/components/Button/Button.tsx +11 -7
- package/src/components/Calendar/Calendar.test.tsx +41 -8
- package/src/components/Calendar/Calendar.tsx +39 -36
- package/src/components/Card/Card.tsx +51 -13
- package/src/components/Checkbox/Checkbox.test.tsx +36 -12
- package/src/components/DataTable/DataTable.test.tsx +1 -1
- package/src/components/DataTable/__tests__/DataTable.comprehensive.test.tsx +13 -7
- package/src/components/DataTable/__tests__/DataTable.default-state.test.tsx +14 -42
- package/src/components/DataTable/__tests__/DataTable.export.test.tsx +13 -10
- package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +14 -11
- package/src/components/DataTable/__tests__/DataTable.hooks.test.tsx +4 -2
- package/src/components/DataTable/__tests__/DataTable.test.tsx +13 -7
- package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +13 -10
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +15 -11
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +12 -6
- package/src/components/DataTable/__tests__/keyboard.test.tsx +12 -6
- package/src/components/DataTable/__tests__/pagination.modes.test.tsx +10 -6
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +1 -1
- package/src/components/DataTable/components/DataTableBody.tsx +10 -25
- package/src/components/DataTable/components/DataTableCore.tsx +1 -1
- package/src/components/DataTable/components/FilterRow.tsx +3 -1
- package/src/components/DataTable/components/ImportModal.tsx +1 -1
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +9 -9
- package/src/components/DataTable/core/ColumnFactory.ts +6 -6
- package/src/components/DataTable/core/DataTableContext.tsx +14 -10
- package/src/components/DataTable/core/LocalDataAdapter.ts +2 -1
- package/src/components/DataTable/core/PluginRegistry.ts +3 -3
- package/src/components/DataTable/core/StateManager.ts +12 -11
- package/src/components/DataTable/core/__tests__/ActionManager.test.ts +104 -0
- package/src/components/DataTable/core/__tests__/DataManager.test.ts +101 -0
- package/src/components/DataTable/core/__tests__/LocalDataAdapter.test.ts +84 -0
- package/src/components/DataTable/core/__tests__/PluginRegistry.test.ts +102 -0
- package/src/components/DataTable/core/__tests__/StateManager.test.ts +104 -0
- package/src/components/DataTable/core/interfaces.ts +17 -17
- package/src/components/DataTable/hooks/__tests__/useDataTableConfiguration.test.ts +124 -0
- package/src/components/DataTable/hooks/__tests__/useDataTableDataPipeline.test.ts +117 -0
- package/src/components/DataTable/hooks/__tests__/useDataTablePermissions.test.ts +102 -0
- package/src/components/DataTable/hooks/__tests__/useEffectiveColumnOrder.test.ts +53 -0
- package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +0 -2
- package/src/components/DataTable/hooks/useDataTablePermissions.ts +9 -8
- package/src/components/DataTable/types.ts +5 -5
- package/src/components/DataTable/utils/aggregationUtils.ts +4 -4
- package/src/components/DataTable/utils/columnUtils.ts +3 -2
- package/src/components/DataTable/utils/debugTools.ts +1 -1
- package/src/components/DataTable/utils/exportUtils.ts +6 -6
- package/src/components/DataTable/utils/hierarchicalSorting.ts +6 -6
- package/src/components/DataTable/utils/hierarchicalUtils.ts +0 -8
- package/src/components/DataTable/utils/index.ts +0 -1
- package/src/components/DataTable/utils/performanceUtils.ts +9 -4
- package/src/components/Dialog/Dialog.test.tsx +49 -27
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +13 -8
- package/src/components/EventSelector/EventSelector.test.tsx +60 -12
- package/src/components/EventSelector/EventSelector.tsx +38 -15
- package/src/components/EventSelector/index.ts +2 -2
- package/src/components/FileDisplay/FileDisplay.test.tsx +143 -85
- package/src/components/FileDisplay/FileDisplay.tsx +1 -0
- package/src/components/FileUpload/FileUpload.test.tsx +532 -152
- package/src/components/FileUpload/FileUpload.tsx +43 -8
- package/src/components/Footer/Footer.test.tsx +19 -14
- package/src/components/Form/Form.test.tsx +96 -14
- package/src/components/Form/Form.tsx +210 -1
- package/src/components/Form/index.ts +3 -7
- package/src/components/Header/Header.test.tsx +24 -17
- package/src/components/Header/Header.tsx +3 -1
- package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +2 -4
- package/src/components/Input/Input.test.tsx +61 -36
- package/src/components/Label/{__tests__/Label.test.tsx → Label.test.tsx} +2 -2
- package/src/components/Label/Label.tsx +2 -3
- package/src/components/LoadingSpinner/LoadingSpinner.test.tsx +6 -5
- package/src/components/LoadingSpinner/LoadingSpinner.tsx +6 -2
- package/src/components/LoginForm/LoginForm.test.tsx +14 -13
- package/src/components/LoginForm/LoginForm.tsx +1 -1
- package/src/components/LoginForm/index.ts +7 -0
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +233 -20
- package/src/components/NavigationMenu/NavigationMenu.tsx +191 -55
- package/src/components/NavigationMenu/index.ts +1 -1
- package/src/components/OrganisationSelector/OrganisationSelector.test.tsx +20 -11
- package/src/components/OrganisationSelector/OrganisationSelector.tsx +1 -1
- package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.integration.test.tsx → PaceAppLayout.integration.test.tsx} +272 -79
- package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.performance.test.tsx → PaceAppLayout.performance.test.tsx} +155 -32
- package/src/components/PaceAppLayout/{__tests__/PaceAppLayout.security.test.tsx → PaceAppLayout.security.test.tsx} +211 -65
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +498 -210
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +63 -64
- package/src/components/PaceAppLayout/test-setup.tsx +192 -0
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +193 -39
- package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.test.tsx +2 -2
- package/src/components/{PasswordReset → PasswordChange}/PasswordChangeForm.tsx +10 -4
- package/src/components/PasswordChange/index.ts +2 -0
- package/src/components/Progress/Progress.test.tsx +11 -0
- package/src/components/Progress/Progress.tsx +1 -1
- package/src/components/Progress/index.ts +10 -0
- package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +2 -1
- package/src/components/PublicLayout/PublicLayout.test.tsx +1210 -0
- package/src/components/PublicLayout/PublicPageLayout.tsx +190 -36
- package/src/components/PublicLayout/PublicPageProvider.tsx +8 -7
- package/src/components/PublicLayout/index.ts +10 -28
- package/src/components/Select/Select.test.tsx +7 -7
- package/src/components/Select/Select.tsx +277 -11
- package/src/components/Select/index.ts +1 -2
- package/src/components/SessionRestorationLoader/SessionRestorationLoader.test.tsx +232 -0
- package/src/components/SessionRestorationLoader/SessionRestorationLoader.tsx +40 -19
- package/src/components/Table/{__tests__/Table.test.tsx → Table.test.tsx} +94 -41
- package/src/components/Tabs/Tabs.test.tsx +10 -9
- package/src/components/Tabs/Tabs.tsx +61 -33
- package/src/components/Textarea/Textarea.test.tsx +31 -18
- package/src/components/Toast/Toast.tsx +2 -2
- package/src/components/Tooltip/Tooltip.test.tsx +1 -1
- package/src/components/UserMenu/UserMenu.test.tsx +7 -6
- package/src/components/UserMenu/UserMenu.tsx +2 -2
- package/src/components/index.ts +5 -4
- package/src/constants/performance.ts +19 -8
- package/src/hooks/__tests__/useAppConfig.unit.test.ts +21 -22
- package/src/hooks/__tests__/useEvents.unit.test.ts +5 -4
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +2 -2
- package/src/hooks/__tests__/usePermissionCache.simple.test.ts +17 -0
- package/src/hooks/__tests__/usePermissionCache.unit.test.ts +16 -11
- package/src/hooks/__tests__/usePublicEvent.simple.test.ts +1 -3
- package/src/hooks/__tests__/usePublicEvent.unit.test.ts +1 -3
- package/src/hooks/__tests__/useRBAC.unit.test.ts +24 -2
- package/src/hooks/index.ts +4 -0
- package/src/hooks/public/index.ts +2 -0
- package/src/hooks/public/usePublicEvent.ts +4 -6
- package/src/hooks/public/usePublicEventLogo.test.ts +147 -0
- package/src/hooks/public/usePublicRouteParams.ts +1 -1
- package/src/hooks/services/useAuth.ts +2 -4
- package/src/hooks/services/useCurrentEvent.ts +1 -1
- package/src/hooks/useAppConfig.ts +1 -1
- package/src/hooks/useDataTablePerformance.ts +2 -2
- package/src/hooks/useEventTheme.ts +1 -1
- package/src/hooks/useEvents.ts +51 -10
- package/src/hooks/useOrganisationPermissions.test.ts +3 -3
- package/src/hooks/useOrganisationPermissions.ts +1 -1
- package/src/hooks/useOrganisationSecurity.ts +2 -2
- package/src/hooks/usePermissionCache.test.ts +9 -9
- package/src/hooks/usePermissionCache.ts +2 -2
- package/src/index.ts +19 -12
- package/src/providers/OrganisationProvider.tsx +73 -9
- package/src/providers/UnifiedAuthProvider.smoke.test.tsx +113 -13
- package/src/providers/__tests__/AuthProvider.test.tsx +2 -1
- package/src/providers/__tests__/EventProvider.test.tsx +24 -15
- package/src/providers/__tests__/OrganisationProvider.test.tsx +87 -36
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +80 -24
- package/src/providers/index.ts +0 -3
- package/src/providers/services/AuthServiceProvider.tsx +2 -17
- package/src/providers/services/EventServiceProvider.tsx +11 -16
- package/src/providers/services/InactivityServiceProvider.tsx +9 -12
- package/src/providers/services/OrganisationServiceProvider.tsx +9 -12
- package/src/providers/services/UnifiedAuthProvider.tsx +85 -18
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +11 -4
- package/src/rbac/__tests__/scenarios.user-role.test.tsx +105 -21
- package/src/rbac/adapters.tsx +1 -1
- package/src/rbac/api.ts +20 -4
- package/src/rbac/audit-enhanced.ts +47 -2
- package/src/rbac/audit.ts +47 -2
- package/src/rbac/components/NavigationGuard.tsx +1 -1
- package/src/rbac/components/NavigationProvider.test.tsx +7 -6
- package/src/rbac/components/NavigationProvider.tsx +1 -1
- package/src/rbac/components/PagePermissionGuard.tsx +1 -1
- package/src/rbac/components/PagePermissionProvider.test.tsx +7 -6
- package/src/rbac/components/PagePermissionProvider.tsx +1 -1
- package/src/rbac/components/PermissionEnforcer.tsx +1 -1
- package/src/rbac/components/RoleBasedRouter.tsx +1 -1
- package/src/rbac/components/SecureDataProvider.test.tsx +7 -6
- package/src/rbac/components/SecureDataProvider.tsx +1 -1
- package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +6 -6
- package/src/rbac/components/__tests__/NavigationGuard.test.tsx +11 -10
- package/src/rbac/components/__tests__/NavigationProvider.test.tsx +10 -11
- package/src/rbac/components/__tests__/PagePermissionGuard.race-condition.test.tsx +19 -15
- package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +13 -12
- package/src/rbac/components/__tests__/PagePermissionGuard.verification.test.tsx +19 -15
- package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +18 -18
- package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +11 -10
- package/src/rbac/components/__tests__/RoleBasedRouter.test.tsx +8 -7
- package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +10 -11
- package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +48 -19
- package/src/rbac/hooks/__tests__/useSecureSupabase.test.ts +476 -0
- package/src/rbac/hooks/index.ts +3 -0
- package/src/rbac/hooks/usePermissions.ts +31 -85
- package/src/rbac/hooks/useRBAC.test.ts +13 -1
- package/src/rbac/hooks/useRBAC.ts +13 -67
- package/src/rbac/hooks/useResolvedScope.ts +11 -0
- package/src/rbac/hooks/useSecureSupabase.ts +308 -0
- package/src/rbac/index.ts +3 -0
- package/src/rbac/secureClient.ts +53 -6
- package/src/rbac/security.ts +37 -1
- package/src/{types/rbac-functions.ts → rbac/types/functions.ts} +30 -30
- package/src/rbac/types.ts +3 -2
- package/src/services/AuthService.ts +33 -25
- package/src/services/EventService.ts +56 -44
- package/src/services/InactivityService.ts +33 -53
- package/src/services/OrganisationService.ts +36 -40
- package/src/services/__tests__/AuthService.restoreSession.test.ts +6 -2
- package/src/services/__tests__/EventService.test.ts +67 -33
- package/src/services/interfaces/IEventService.ts +1 -1
- package/src/styles/core.css +2 -2
- package/src/styles/index.test.ts +21 -0
- package/src/styles/index.ts +1 -5
- package/src/types/__tests__/guards.test.ts +1 -1
- package/src/types/__tests__/organisation.roles.test.ts +55 -0
- package/src/types/__tests__/type-validation.test.ts +0 -1
- package/src/types/auth.ts +42 -2
- package/src/types/core.ts +251 -0
- package/src/types/database.ts +11 -496
- package/src/types/event.ts +102 -0
- package/src/types/file-reference.ts +6 -4
- package/src/types/guards.ts +2 -1
- package/src/types/index.ts +48 -14
- package/src/types/lodash.debounce.d.ts +15 -0
- package/src/types/organisation.ts +14 -10
- package/src/types/supabase.ts +15 -17
- package/src/utils/__tests__/secureErrors.unit.test.ts +1 -1
- package/src/utils/__tests__/validationUtils.unit.test.ts +0 -29
- package/src/utils/app/appNameResolver.ts +1 -1
- package/src/utils/audit/audit.test.ts +65 -0
- package/src/utils/device/deviceFingerprint.test.ts +171 -0
- package/src/utils/dynamic/dynamicUtils.ts +3 -2
- package/src/utils/file-reference/index.ts +25 -6
- package/src/utils/security/secureErrors.ts +1 -1
- package/src/utils/validation/__tests__/validationUtils.test.ts +72 -0
- package/src/utils/validation/index.ts +6 -12
- package/src/utils/validation/validationUtils.ts +0 -13
- package/dist/UnifiedAuthProvider-B37ATQHE.js +0 -16
- package/dist/auth-DReDSLq9.d.ts +0 -16
- package/dist/chunk-3JI76CYK.js +0 -2444
- package/dist/chunk-3JI76CYK.js.map +0 -1
- package/dist/chunk-56XJ3TU6.js +0 -11
- package/dist/chunk-56XJ3TU6.js.map +0 -1
- package/dist/chunk-5MT24GKJ.js.map +0 -1
- package/dist/chunk-7QCC6MCP.js +0 -288
- package/dist/chunk-BESYRHQM.js.map +0 -1
- package/dist/chunk-BJPBT3CU.js +0 -21
- package/dist/chunk-BJPBT3CU.js.map +0 -1
- package/dist/chunk-BVYWGZVV.js.map +0 -1
- package/dist/chunk-CX5M4ZAG.js.map +0 -1
- package/dist/chunk-D7LCGMVS.js.map +0 -1
- package/dist/chunk-EGI6MUL6.js +0 -27
- package/dist/chunk-EGI6MUL6.js.map +0 -1
- package/dist/chunk-ERISIBYU.js.map +0 -1
- package/dist/chunk-HRO5HWN2.js.map +0 -1
- package/dist/chunk-HZLDFOE4.js.map +0 -1
- package/dist/chunk-JISYG63F.js +0 -70
- package/dist/chunk-JISYG63F.js.map +0 -1
- package/dist/chunk-LIMSTKYD.js +0 -61
- package/dist/chunk-LIMSTKYD.js.map +0 -1
- package/dist/chunk-OWAG3GSU.js.map +0 -1
- package/dist/chunk-PPMP5J6T.js.map +0 -1
- package/dist/chunk-Q5QRDWKI.js.map +0 -1
- package/dist/chunk-S5OFRT4M.js.map +0 -1
- package/dist/chunk-SBVILCCA.js.map +0 -1
- package/dist/chunk-TUMEWN34.js +0 -15
- package/dist/chunk-TUMEWN34.js.map +0 -1
- package/dist/chunk-XDNLUEXI.js +0 -138
- package/dist/chunk-XJ2HZOBU.js.map +0 -1
- package/dist/chunk-ZYTYSTO5.js.map +0 -1
- package/dist/chunk-ZZ2SS7NI.js +0 -237
- package/dist/chunk-ZZ2SS7NI.js.map +0 -1
- package/dist/database-C6jy7EOu.d.ts +0 -500
- package/dist/organisation-D6qRDtbF.d.ts +0 -93
- package/dist/schema-DTDZQe2u.d.ts +0 -28
- package/dist/unified-DQ4VcT7H.d.ts +0 -198
- package/dist/useInactivityTracker-TO6ZOF35.js +0 -11
- package/dist/validation.d.ts +0 -47
- package/dist/validation.js +0 -24
- package/dist/validation.js.map +0 -1
- package/docs/DOCUMENTATION_AUDIT.md +0 -172
- package/docs/DOCUMENTATION_STANDARD.md +0 -137
- package/docs/api/classes/PublicErrorBoundary.md +0 -132
- package/docs/api/interfaces/EventLogoProps.md +0 -152
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +0 -94
- package/docs/api/interfaces/PublicErrorBoundaryState.md +0 -68
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +0 -86
- package/docs/architecture/rpc-function-standards.md +0 -1106
- package/docs/getting-started/consuming-app-vite-config.md +0 -239
- package/docs/implementation-guides/event-theming-summary.md +0 -226
- package/docs/implementation-guides/public-pages-advanced.md +0 -1038
- package/docs/migration/v0.4.15-tailwind-scanning.md +0 -278
- package/docs/migration/v0.4.16-css-first-approach.md +0 -312
- package/docs/migration/v0.4.17-source-path-fix.md +0 -235
- package/docs/rbac/RBAC_EVENT_CONTEXT_LOADING.md +0 -222
- package/docs/rbac/RBAC_LOGIN_SAFETY_FIX.md +0 -95
- package/docs/rbac/RBAC_V0.5.147_FIX.md +0 -117
- package/docs/rbac/README-rbac-rls-integration.md +0 -374
- package/docs/styles/usage.md +0 -227
- package/docs/testing/visual-testing.md +0 -120
- package/docs/troubleshooting/DEBUG_NETWORK_ERROR.md +0 -152
- package/docs/troubleshooting/FIX_SUPABASE_CORS.md +0 -184
- package/docs/troubleshooting/cake-page-permission-guard-issue-summary.md +0 -193
- package/docs/troubleshooting/database-view-compatibility.md +0 -125
- package/docs/troubleshooting/react-hooks-issue-analysis.md +0 -172
- package/docs/troubleshooting/tailwind-content-scanning.md +0 -219
- package/examples/RBAC/EventBasedApp.tsx +0 -239
- package/examples/RBAC/PermissionExample.tsx +0 -151
- package/examples/STRUCTURE.md +0 -125
- package/examples/components 2/DataTable/HierarchicalExample.tsx +0 -475
- package/examples/components 2/Dialog/BasicHtmlTest.tsx +0 -55
- package/examples/components 2/Dialog/DebugHtmlExample.tsx +0 -68
- package/examples/components 2/Dialog/HtmlDialogExample.tsx +0 -202
- package/examples/components 2/Dialog/SimpleHtmlTest.tsx +0 -61
- package/examples/components 2/Dialog/SmartDialogExample.tsx +0 -322
- package/examples/components 2/index.ts +0 -11
- package/examples/features/index.ts +0 -12
- package/examples/features/rbac/CompleteRBACExample.tsx +0 -324
- package/examples/features/rbac/index.ts +0 -13
- package/examples/public-pages/CorrectPublicPageImplementation.tsx +0 -301
- package/examples/public-pages/PublicEventPage.tsx +0 -274
- package/examples/public-pages/PublicPageApp.tsx +0 -308
- package/examples/public-pages/PublicPageUsageExample.tsx +0 -216
- package/examples/public-pages/index.ts +0 -14
- package/src/__tests__/TEST_STANDARD.md +0 -1008
- package/src/components/Checkbox/__mocks__/Checkbox.tsx +0 -2
- package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +0 -421
- package/src/components/DataTable/examples/InitialPageSizeExample.tsx +0 -177
- package/src/components/DataTable/examples/PerformanceExample.tsx +0 -506
- package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +0 -316
- package/src/components/DataTable/examples/__tests__/HierarchicalExample.test.tsx +0 -45
- package/src/components/DataTable/examples/__tests__/InitialPageSizeExample.test.tsx +0 -211
- package/src/components/DataTable/examples/__tests__/PerformanceExample.test.tsx +0 -126
- package/src/components/Dialog/README.md +0 -804
- package/src/components/Dialog/examples/BasicHtmlTest.tsx +0 -55
- package/src/components/Dialog/examples/DebugHtmlExample.tsx +0 -68
- package/src/components/Dialog/examples/ScrollableDialogExample.tsx +0 -290
- package/src/components/Dialog/examples/SimpleHtmlTest.tsx +0 -61
- package/src/components/Dialog/examples/__tests__/HtmlDialogExample.test.tsx +0 -71
- package/src/components/Dialog/examples/__tests__/SimpleHtmlTest.test.tsx +0 -122
- package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -147
- package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
- package/src/components/Dialog/utils/safeHtml.ts +0 -185
- package/src/components/EventSelector/types.ts +0 -79
- package/src/components/Form/FormErrorSummary.tsx +0 -113
- package/src/components/Form/FormField.tsx +0 -249
- package/src/components/Form/FormFieldset.tsx +0 -127
- package/src/components/Form/FormLiveRegion.tsx +0 -198
- package/src/components/Input/__mocks__/Input.tsx +0 -2
- package/src/components/NavigationMenu/types.ts +0 -85
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -326
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -1078
- package/src/components/PasswordReset/PasswordResetForm.test.tsx +0 -597
- package/src/components/PasswordReset/PasswordResetForm.tsx +0 -201
- package/src/components/PasswordReset/index.ts +0 -2
- package/src/components/ProtectedRoute/README.md +0 -164
- package/src/components/PublicLayout/EventLogo.tsx +0 -175
- package/src/components/PublicLayout/PublicErrorBoundary.tsx +0 -282
- package/src/components/PublicLayout/PublicLoadingSpinner.tsx +0 -216
- package/src/components/PublicLayout/PublicPageContextChecker.tsx +0 -131
- package/src/components/PublicLayout/PublicPageDebugger.tsx +0 -104
- package/src/components/PublicLayout/PublicPageDiagnostic.tsx +0 -162
- package/src/components/PublicLayout/PublicPageFooter.tsx +0 -124
- package/src/components/PublicLayout/PublicPageHeader.tsx +0 -209
- package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -449
- package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -393
- package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +0 -192
- package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -351
- package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -402
- package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -460
- package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -313
- package/src/components/Select/hooks.ts +0 -289
- package/src/hooks/useCounter.test.ts +0 -131
- package/src/hooks/useDebounce.test.ts +0 -375
- package/src/providers/AuthProvider.tsx +0 -15
- package/src/providers/EventProvider.tsx +0 -16
- package/src/providers/InactivityProvider.tsx +0 -15
- package/src/providers/OrganisationProvider.context.test.tsx +0 -169
- package/src/providers/UnifiedAuthProvider.tsx +0 -15
- package/src/types/theme.ts +0 -6
- package/src/types/unified.ts +0 -265
- package/src/utils/appConfig.ts +0 -47
- package/src/utils/appIdResolver.test.ts +0 -499
- package/src/utils/appIdResolver.ts +0 -130
- package/src/utils/appNameResolver.simple.test.ts +0 -212
- package/src/utils/appNameResolver.test.ts +0 -121
- package/src/utils/appNameResolver.ts +0 -191
- package/src/utils/audit.ts +0 -127
- package/src/utils/auth-utils.ts +0 -96
- package/src/utils/bundleAnalysis.ts +0 -129
- package/src/utils/debugLogger.ts +0 -67
- package/src/utils/deviceFingerprint.ts +0 -215
- package/src/utils/dynamicUtils.ts +0 -105
- package/src/utils/file-reference.test.ts +0 -788
- package/src/utils/file-reference.ts +0 -519
- package/src/utils/formatDate.test.ts +0 -237
- package/src/utils/formatting.ts +0 -170
- package/src/utils/lazyLoad.tsx +0 -44
- package/src/utils/logger.ts +0 -179
- package/src/utils/organisationContext.test.ts +0 -322
- package/src/utils/organisationContext.ts +0 -153
- package/src/utils/performanceBenchmark.ts +0 -64
- package/src/utils/performanceBudgets.ts +0 -110
- package/src/utils/permissionTypes.ts +0 -37
- package/src/utils/permissionUtils.test.ts +0 -393
- package/src/utils/permissionUtils.ts +0 -34
- package/src/utils/sanitization.ts +0 -264
- package/src/utils/schemaUtils.ts +0 -37
- package/src/utils/secureDataAccess.test.ts +0 -711
- package/src/utils/secureDataAccess.ts +0 -377
- package/src/utils/secureErrors.ts +0 -79
- package/src/utils/security.ts +0 -156
- package/src/utils/securityMonitor.ts +0 -45
- package/src/utils/sessionTracking.ts +0 -126
- package/src/utils/validation.ts +0 -111
- package/src/utils/validationUtils.ts +0 -120
- package/src/validation/index.ts +0 -12
- /package/dist/{DataTable-UA6CL4JI.js.map → DataTable-QAB34V6K.js.map} +0 -0
- /package/dist/{UnifiedAuthProvider-B37ATQHE.js.map → UnifiedAuthProvider-7F6T4B6K.js.map} +0 -0
- /package/dist/{api-45XYYO2A.js.map → api-ROMBCNKU.js.map} +0 -0
- /package/dist/{audit-64X3VJXB.js.map → audit-WRS3KJKI.js.map} +0 -0
- /package/dist/{chunk-PLDDJCW6.js.map → chunk-7D4SUZUM.js.map} +0 -0
- /package/dist/{useInactivityTracker-TO6ZOF35.js.map → chunk-KQCRWDSA.js.map} +0 -0
- /package/examples/{components 2/DataTable → DataTable}/InitialPageSizeExample.tsx +0 -0
- /package/examples/{features/public-pages → PublicPages}/index.ts +0 -0
- /package/examples/{RBAC → rbac}/index.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T17:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Performance Best Practices
|
|
@@ -1267,4 +1267,51 @@ describe('Performance Tests', () => {
|
|
|
1267
1267
|
- [Best Practices Overview](./README.md) - General best practices
|
|
1268
1268
|
- [Troubleshooting Performance Issues](../troubleshooting/README.md#performance-issues) - Performance debugging
|
|
1269
1269
|
|
|
1270
|
+
## ♿ Accessibility
|
|
1271
|
+
|
|
1272
|
+
Performance optimizations should maintain accessibility:
|
|
1273
|
+
|
|
1274
|
+
- **Lazy loading doesn't break screen readers** - Ensure lazy-loaded content is accessible
|
|
1275
|
+
- **Code splitting maintains keyboard navigation** - Verify keyboard navigation works after code splitting
|
|
1276
|
+
- **Memoization doesn't affect focus management** - Ensure focus handling remains correct
|
|
1277
|
+
- **Performance optimizations are tested with assistive technologies** - Verify optimizations don't break accessibility
|
|
1278
|
+
- **Loading states are announced** - Screen readers should announce performance-related loading states
|
|
1279
|
+
|
|
1280
|
+
### Accessibility Best Practices
|
|
1281
|
+
|
|
1282
|
+
1. **Test optimizations with screen readers** - Verify performance improvements don't break accessibility
|
|
1283
|
+
2. **Ensure keyboard navigation** - All optimized components should remain keyboard accessible
|
|
1284
|
+
3. **Maintain focus visibility** - Focus indicators should remain visible after optimizations
|
|
1285
|
+
4. **Test with assistive technologies** - Verify performance optimizations work with screen readers
|
|
1286
|
+
5. **Balance performance and accessibility** - Don't sacrifice accessibility for performance gains
|
|
1287
|
+
|
|
1288
|
+
## ⚠️ Edge Cases
|
|
1289
|
+
|
|
1290
|
+
### Performance vs Accessibility Trade-offs
|
|
1291
|
+
|
|
1292
|
+
When performance optimizations impact accessibility:
|
|
1293
|
+
- Find balance between performance and accessibility
|
|
1294
|
+
- Test optimizations with assistive technologies
|
|
1295
|
+
- Ensure lazy loading doesn't break screen reader navigation
|
|
1296
|
+
- Verify code splitting maintains keyboard navigation
|
|
1297
|
+
- Document trade-offs when necessary
|
|
1298
|
+
|
|
1299
|
+
### Over-Optimization Issues
|
|
1300
|
+
|
|
1301
|
+
When over-optimization causes problems:
|
|
1302
|
+
- Monitor for premature optimization
|
|
1303
|
+
- Test optimizations in real-world scenarios
|
|
1304
|
+
- Profile before and after optimizations
|
|
1305
|
+
- Verify optimizations provide measurable benefits
|
|
1306
|
+
- Consider maintainability when optimizing
|
|
1307
|
+
|
|
1308
|
+
### Performance Regression
|
|
1309
|
+
|
|
1310
|
+
When performance degrades after optimizations:
|
|
1311
|
+
- Profile to identify bottlenecks
|
|
1312
|
+
- Test with realistic data volumes
|
|
1313
|
+
- Monitor performance metrics
|
|
1314
|
+
- Rollback optimizations if needed
|
|
1315
|
+
- Document performance regression causes
|
|
1316
|
+
|
|
1270
1317
|
For more information about optimizing your application, see the [Security Guide](./security.md) and [Testing Guide](./testing.md).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T17:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Security Best Practices
|
|
@@ -24,53 +24,59 @@ The security model in `@jmruthers/pace-core` is built on several layers:
|
|
|
24
24
|
### 1. Secure Password Requirements
|
|
25
25
|
|
|
26
26
|
```typescript
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
27
|
+
import { passwordSchema, securePasswordSchema, calculatePasswordStrength } from '@jmruthers/pace-core/utils/validation';
|
|
28
|
+
import { isStrongPassword } from '@jmruthers/pace-core/utils/validation';
|
|
29
|
+
|
|
30
|
+
// Using Zod schema (recommended)
|
|
31
|
+
function validateUserPassword(password: string) {
|
|
32
|
+
const result = securePasswordSchema.safeParse(password);
|
|
33
|
+
if (!result.success) {
|
|
34
|
+
return { valid: false, errors: result.error.errors };
|
|
35
|
+
}
|
|
36
|
+
return { valid: true };
|
|
37
|
+
}
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
// Using simple validation function
|
|
40
|
+
function checkPasswordStrength(password: string) {
|
|
41
|
+
const strength = calculatePasswordStrength(password);
|
|
42
|
+
return {
|
|
43
|
+
isValid: strength.level !== 'very-weak' && strength.level !== 'weak',
|
|
44
|
+
strength: strength.level,
|
|
45
|
+
score: strength.score,
|
|
46
|
+
feedback: strength.feedback
|
|
47
|
+
};
|
|
39
48
|
}
|
|
49
|
+
|
|
50
|
+
// Basic validation
|
|
51
|
+
const isValid = isStrongPassword(password); // Returns boolean
|
|
40
52
|
```
|
|
41
53
|
|
|
42
|
-
### 2.
|
|
54
|
+
### 2. Password Strength Indicator
|
|
43
55
|
|
|
44
56
|
```typescript
|
|
45
|
-
import {
|
|
57
|
+
import { calculatePasswordStrength } from '@jmruthers/pace-core/utils/validation';
|
|
46
58
|
|
|
47
|
-
function
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
const handleSetupMFA = async () => {
|
|
51
|
-
try {
|
|
52
|
-
const { qrCode, secret } = await setupMFA();
|
|
53
|
-
// Display QR code to user
|
|
54
|
-
console.log('MFA Setup:', { qrCode, secret });
|
|
55
|
-
} catch (error) {
|
|
56
|
-
console.error('MFA setup failed:', error);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const handleVerifyMFA = async (token: string) => {
|
|
61
|
-
try {
|
|
62
|
-
await verifyMFA(token);
|
|
63
|
-
console.log('MFA verified successfully');
|
|
64
|
-
} catch (error) {
|
|
65
|
-
console.error('MFA verification failed:', error);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
59
|
+
function PasswordInput() {
|
|
60
|
+
const [password, setPassword] = useState('');
|
|
61
|
+
const strength = calculatePasswordStrength(password);
|
|
68
62
|
|
|
69
63
|
return (
|
|
70
64
|
<div>
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
<input
|
|
66
|
+
type="password"
|
|
67
|
+
value={password}
|
|
68
|
+
onChange={(e) => setPassword(e.target.value)}
|
|
69
|
+
/>
|
|
70
|
+
<div className={`strength-${strength.level}`}>
|
|
71
|
+
Strength: {strength.level} ({strength.score}/100)
|
|
72
|
+
</div>
|
|
73
|
+
{strength.feedback.length > 0 && (
|
|
74
|
+
<ul>
|
|
75
|
+
{strength.feedback.map((msg, i) => (
|
|
76
|
+
<li key={i}>{msg}</li>
|
|
77
|
+
))}
|
|
78
|
+
</ul>
|
|
79
|
+
)}
|
|
74
80
|
</div>
|
|
75
81
|
);
|
|
76
82
|
}
|
|
@@ -884,4 +890,51 @@ const soc2Utils = {
|
|
|
884
890
|
- [ ] Data backup verification
|
|
885
891
|
- [ ] Compliance monitoring
|
|
886
892
|
|
|
887
|
-
For more information about implementing security in your application, see the [Authentication Guide](../core-concepts/authentication.md) and [RBAC System Guide](../core-concepts/rbac-system.md).
|
|
893
|
+
For more information about implementing security in your application, see the [Authentication Guide](../core-concepts/authentication.md) and [RBAC System Guide](../core-concepts/rbac-system.md).
|
|
894
|
+
|
|
895
|
+
## ♿ Accessibility
|
|
896
|
+
|
|
897
|
+
Security practices should maintain accessibility:
|
|
898
|
+
|
|
899
|
+
- **Error messages are accessible** - Security errors should be clearly communicated
|
|
900
|
+
- **Authentication flows are keyboard accessible** - All security forms should support keyboard navigation
|
|
901
|
+
- **Screen reader support** - Security messages should be properly announced
|
|
902
|
+
- **Focus management** - Ensure focus is properly managed during security operations
|
|
903
|
+
- **Timeouts are announced** - Session timeouts should be accessible to screen readers
|
|
904
|
+
|
|
905
|
+
### Accessibility Best Practices
|
|
906
|
+
|
|
907
|
+
1. **Test authentication with screen readers** - Verify login flows work with assistive technologies
|
|
908
|
+
2. **Ensure keyboard access** - All security forms should be keyboard accessible
|
|
909
|
+
3. **Provide clear error messages** - Security errors should be descriptive without exposing vulnerabilities
|
|
910
|
+
4. **Announce security state changes** - Use ARIA live regions for security status updates
|
|
911
|
+
5. **Test with assistive technologies** - Verify all security features work with screen readers
|
|
912
|
+
|
|
913
|
+
## ⚠️ Edge Cases
|
|
914
|
+
|
|
915
|
+
### Security vs Usability Conflicts
|
|
916
|
+
|
|
917
|
+
When security measures impact usability:
|
|
918
|
+
- Find balance between security and user experience
|
|
919
|
+
- Provide clear guidance for security requirements
|
|
920
|
+
- Implement security transparently
|
|
921
|
+
- Test with real users to ensure usability
|
|
922
|
+
- Document security decisions
|
|
923
|
+
|
|
924
|
+
### Rate Limiting Edge Cases
|
|
925
|
+
|
|
926
|
+
When rate limiting causes issues:
|
|
927
|
+
- Provide clear error messages for rate limit violations
|
|
928
|
+
- Implement progressive backoff for retries
|
|
929
|
+
- Consider user experience when setting limits
|
|
930
|
+
- Monitor rate limit effectiveness
|
|
931
|
+
- Adjust limits based on legitimate use patterns
|
|
932
|
+
|
|
933
|
+
### Session Management Edge Cases
|
|
934
|
+
|
|
935
|
+
When session management fails:
|
|
936
|
+
- Handle session expiration gracefully
|
|
937
|
+
- Provide clear messages for session issues
|
|
938
|
+
- Ensure proper cleanup on session end
|
|
939
|
+
- Test with multiple concurrent sessions
|
|
940
|
+
- Verify session security across devices
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T17:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Testing Best Practices
|
|
8
8
|
|
|
9
9
|
Comprehensive testing is essential for maintaining code quality and preventing regressions. This guide provides testing strategies and patterns for `@jmruthers/pace-core` applications.
|
|
10
10
|
|
|
11
|
-
> 📖 **For detailed testing standards and implementation patterns**, see the [Testing Standard](
|
|
11
|
+
> 📖 **For detailed testing standards and implementation patterns**, see the [Testing Standard](../standards/testing-standard.md) - the authoritative guide for writing world-class tests in pace-core.
|
|
12
12
|
|
|
13
13
|
## Overview
|
|
14
14
|
|
|
@@ -1002,4 +1002,33 @@ global.ResizeObserver = class ResizeObserver {
|
|
|
1002
1002
|
- [ ] Test error announcements
|
|
1003
1003
|
- [ ] Test skip links
|
|
1004
1004
|
|
|
1005
|
+
## ⚠️ Edge Cases
|
|
1006
|
+
|
|
1007
|
+
### Testing Complex Scenarios
|
|
1008
|
+
|
|
1009
|
+
When testing complex scenarios:
|
|
1010
|
+
- Test with realistic data volumes
|
|
1011
|
+
- Verify edge cases are covered
|
|
1012
|
+
- Test with different user roles and permissions
|
|
1013
|
+
- Ensure tests handle error conditions
|
|
1014
|
+
- Test with concurrent operations
|
|
1015
|
+
|
|
1016
|
+
### Flaky Tests
|
|
1017
|
+
|
|
1018
|
+
When tests are flaky:
|
|
1019
|
+
- Identify root causes of flakiness
|
|
1020
|
+
- Use proper wait strategies
|
|
1021
|
+
- Avoid timing-dependent tests
|
|
1022
|
+
- Mock external dependencies consistently
|
|
1023
|
+
- Document known flaky tests
|
|
1024
|
+
|
|
1025
|
+
### Test Performance Issues
|
|
1026
|
+
|
|
1027
|
+
When tests are slow:
|
|
1028
|
+
- Optimize test setup and teardown
|
|
1029
|
+
- Use test parallelization where possible
|
|
1030
|
+
- Mock expensive operations
|
|
1031
|
+
- Profile slow tests
|
|
1032
|
+
- Consider test prioritization
|
|
1033
|
+
|
|
1005
1034
|
For more information about testing your application, see the [Security Guide](./security.md) and [Performance Guide](./performance.md).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T12:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Authentication
|
|
@@ -29,7 +29,7 @@ The authentication system provides:
|
|
|
29
29
|
```mermaid
|
|
30
30
|
graph TD
|
|
31
31
|
A[UnifiedAuthProvider] -->|Internal Services| B[AuthService]
|
|
32
|
-
A -->|
|
|
32
|
+
A -->|RBAC Integration| C[RBAC Engine]
|
|
33
33
|
A -->|Internal Services| D[OrganisationService]
|
|
34
34
|
A -->|Internal Services| E[EventService]
|
|
35
35
|
A -->|Internal Services| F[InactivityService]
|
|
@@ -121,7 +121,7 @@ sequenceDiagram
|
|
|
121
121
|
|
|
122
122
|
## What's Next?
|
|
123
123
|
|
|
124
|
-
- **[Installation](../getting-started/installation.md)** - Get PACE Core set up
|
|
124
|
+
- **[Installation](../getting-started/installation-guide.md)** - Get PACE Core set up
|
|
125
125
|
- **[Quick Start](../getting-started/quick-start.md)** - Build your first app
|
|
126
126
|
- **[RBAC System](./rbac-system.md)** - Understand role-based access control
|
|
127
127
|
- **[Organisations](./organisations.md)** - Learn about multi-tenancy
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T12:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# RBAC System
|
|
8
8
|
|
|
9
|
-
> **📚 New Developer?** Start with the [Installation](../getting-started/installation.md) guide, then [Quick Start](../getting-started/quick-start.md) to build your first app.
|
|
9
|
+
> **📚 New Developer?** Start with the [Installation](../getting-started/installation-guide.md) guide, then [Quick Start](../getting-started/quick-start.md) to build your first app.
|
|
10
10
|
|
|
11
11
|
PACE Core provides a comprehensive Role-Based Access Control (RBAC) system that manages user permissions through roles, ensuring secure and scalable access control across your application.
|
|
12
12
|
|
|
@@ -287,7 +287,7 @@ For detailed migration instructions, see the **[RBAC Migration Guide](../migrati
|
|
|
287
287
|
- **[RBAC API Reference](../rbac/api-reference.md)** - Complete API documentation
|
|
288
288
|
- **[RBAC Examples](../rbac/examples.md)** - Practical usage examples
|
|
289
289
|
- **[Migration Guide](../migration/rbac-migration.md)** - Migrate from legacy RBAC
|
|
290
|
-
- **[Installation](../getting-started/installation.md)** - Get PACE Core set up
|
|
290
|
+
- **[Installation](../getting-started/installation-guide.md)** - Get PACE Core set up
|
|
291
291
|
- **[Authentication](./authentication.md)** - Understand authentication system
|
|
292
292
|
- **[Organisations](./organisations.md)** - Learn about multi-tenancy
|
|
293
293
|
- **[Events](./events.md)** - Understand event management
|
|
@@ -5,10 +5,13 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
5
5
|
## Getting started
|
|
6
6
|
|
|
7
7
|
- [Installation guide](./getting-started/installation-guide.md) – package, peer dependency, and Tailwind setup.
|
|
8
|
+
- [Quick start](./getting-started/quick-start.md) – get up and running quickly.
|
|
8
9
|
- [Quick reference](./getting-started/quick-reference.md) – one page of common imports and commands.
|
|
9
|
-
- [Vite configuration](./getting-started/
|
|
10
|
+
- [Vite configuration](./getting-started/installation-guide.md#advanced-vite-configuration-options) – detailed Vite configuration options (see Installation Guide).
|
|
11
|
+
- [Local development](./getting-started/local-development.md) – local development setup and workflows.
|
|
10
12
|
- [FAQ](./getting-started/faq.md) – fast answers to onboarding questions.
|
|
11
13
|
- [Getting started roadmap](./getting-started/documentation-index.md) – the task-by-task plan after installation.
|
|
14
|
+
- [Examples](./getting-started/examples/) – complete working examples.
|
|
12
15
|
|
|
13
16
|
## Core concepts
|
|
14
17
|
|
|
@@ -25,6 +28,8 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
25
28
|
- [Providers](./api-reference/providers.md)
|
|
26
29
|
- [Types](./api-reference/types.md)
|
|
27
30
|
- [Utilities](./api-reference/utilities.md)
|
|
31
|
+
- [RPC Functions](./api-reference/rpc-functions.md)
|
|
32
|
+
- [Deprecated APIs](./api-reference/deprecated.md)
|
|
28
33
|
|
|
29
34
|
## Implementation guides
|
|
30
35
|
|
|
@@ -32,8 +37,12 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
32
37
|
- [App layout](./implementation-guides/app-layout.md)
|
|
33
38
|
- [Component styling](./implementation-guides/component-styling.md)
|
|
34
39
|
- [Data tables](./implementation-guides/data-tables.md)
|
|
40
|
+
- [DataTable filtering](./implementation-guides/datatable-filtering.md)
|
|
41
|
+
- [DataTable RBAC usage](./implementation-guides/datatable-rbac-usage.md)
|
|
42
|
+
- [Hierarchical DataTable](./implementation-guides/hierarchical-datatable.md)
|
|
43
|
+
- [Large datasets](./implementation-guides/large-datasets.md)
|
|
44
|
+
- [Performance optimization](./implementation-guides/performance.md)
|
|
35
45
|
- [Dynamic colours](./implementation-guides/dynamic-colors.md)
|
|
36
|
-
- [Event theming summary](./implementation-guides/event-theming-summary.md)
|
|
37
46
|
- [File reference system](./implementation-guides/file-reference-system.md)
|
|
38
47
|
- [File upload & storage](./implementation-guides/file-upload-storage.md)
|
|
39
48
|
- [Forms](./implementation-guides/forms.md)
|
|
@@ -42,20 +51,20 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
42
51
|
- [Organisation security](./implementation-guides/organisation-security.md)
|
|
43
52
|
- [Permission enforcement](./implementation-guides/permission-enforcement.md)
|
|
44
53
|
- [Public pages](./implementation-guides/public-pages.md)
|
|
45
|
-
- [Public pages (advanced)](./implementation-guides/public-pages-advanced.md)
|
|
46
54
|
|
|
47
55
|
## RBAC module
|
|
48
56
|
|
|
49
57
|
- [Overview](./rbac/README.md)
|
|
50
58
|
- [Quick start](./rbac/quick-start.md)
|
|
59
|
+
- [Event-based apps](./rbac/event-based-apps.md)
|
|
51
60
|
- [Getting started](./rbac/getting-started.md)
|
|
52
61
|
- [API reference](./rbac/api-reference.md)
|
|
53
62
|
- [Examples](./rbac/examples.md)
|
|
63
|
+
- [RLS integration example](./rbac/examples/rbac-rls-integration-example.md)
|
|
54
64
|
- [Advanced patterns](./rbac/advanced-patterns.md)
|
|
55
65
|
- [Super admin guide](./rbac/super-admin-guide.md)
|
|
56
66
|
- [RLS integration](./rbac/rbac-rls-integration.md)
|
|
57
67
|
- [Troubleshooting](./rbac/troubleshooting.md)
|
|
58
|
-
- [Legacy RLS README](./rbac/README-rbac-rls-integration.md)
|
|
59
68
|
|
|
60
69
|
## Styling & theming
|
|
61
70
|
|
|
@@ -75,14 +84,19 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
75
84
|
- [Styling issues](./troubleshooting/styling-issues.md)
|
|
76
85
|
- [Tailwind content scanning](./troubleshooting/tailwind-content-scanning.md)
|
|
77
86
|
- [Organisation context setup](./troubleshooting/organisation-context-setup.md)
|
|
87
|
+
- [Debugging](./troubleshooting/debugging.md)
|
|
88
|
+
- [Migration issues](./troubleshooting/migration.md)
|
|
78
89
|
- [Cake page permission guard issue summary](./troubleshooting/cake-page-permission-guard-issue-summary.md)
|
|
79
90
|
- [Database view compatibility](./troubleshooting/database-view-compatibility.md)
|
|
80
91
|
- [React hooks issue analysis](./troubleshooting/react-hooks-issue-analysis.md)
|
|
92
|
+
- [Network error debugging](./troubleshooting/DEBUG_NETWORK_ERROR.md)
|
|
93
|
+
- [Supabase CORS fix](./troubleshooting/FIX_SUPABASE_CORS.md)
|
|
81
94
|
|
|
82
95
|
## Migration & release notes
|
|
83
96
|
|
|
84
97
|
- [Migration overview](./migration/README.md)
|
|
85
98
|
- [Unified migration guide](./migration/MIGRATION_GUIDE.md)
|
|
99
|
+
- [Quick migration guide](./migration/quick-migration-guide.md)
|
|
86
100
|
- [Organisation context timing fix](./migration/organisation-context-timing-fix.md)
|
|
87
101
|
- [Service architecture changes](./migration/service-architecture.md)
|
|
88
102
|
- [RBAC migration](./migration/rbac-migration.md)
|
|
@@ -105,15 +119,23 @@ This index mirrors the folder layout in `packages/core/docs/` so teams can quick
|
|
|
105
119
|
- [Deployment](./best-practices/deployment.md)
|
|
106
120
|
- [Performance](./best-practices/performance.md)
|
|
107
121
|
- [Security](./best-practices/security.md)
|
|
108
|
-
- [Testing](./
|
|
122
|
+
- [Testing](./testing/README.md)
|
|
109
123
|
|
|
110
124
|
## Security
|
|
111
125
|
|
|
112
126
|
- [Security posture](./security/README.md)
|
|
113
127
|
- [Security checklist](./security/checklist.md)
|
|
114
128
|
|
|
129
|
+
## Development standards
|
|
130
|
+
|
|
131
|
+
- [Standards overview](./standards/README.md) – Development standards for the project
|
|
132
|
+
- [Architecture Standard](./standards/01-architecture-standard.md) – Core architectural principles
|
|
133
|
+
- [API & RPC Standard](./standards/02-api-and-rpc-standard.md) – API design patterns and database function standards
|
|
134
|
+
- [Component Standard](./standards/03-component-standard.md) – React component development guidelines
|
|
135
|
+
- [Code Style Standard](./standards/04-code-style-standard.md) – Code style and TypeScript conventions
|
|
136
|
+
- [Security Standard](./standards/05-security-standard.md) – Security requirements and best practices
|
|
137
|
+
- [Testing & Documentation Standard](./standards/06-testing-and-docs-standard.md) – Testing strategy and documentation requirements
|
|
138
|
+
|
|
115
139
|
## Meta & maintenance
|
|
116
140
|
|
|
117
|
-
- [Documentation
|
|
118
|
-
- [Content audit report](./CONTENT_AUDIT_REPORT.md)
|
|
119
|
-
- [Documentation audit notes](./DOCUMENTATION_AUDIT.md)
|
|
141
|
+
- [Documentation index](./documentation-index.md) – This file
|
|
@@ -5,7 +5,7 @@ Follow this checklist after installing `@jmruthers/pace-core`. Each step points
|
|
|
5
5
|
## 1. Prepare the project
|
|
6
6
|
|
|
7
7
|
- ✅ Install the package and peers → [Installation guide](./installation-guide.md)
|
|
8
|
-
- ✅ Configure Tailwind scanning → [
|
|
8
|
+
- ✅ Configure Tailwind scanning → [Installation guide - Vite Configuration](./installation-guide.md#advanced-vite-configuration-options)
|
|
9
9
|
- ✅ Import base styles → [`@jmruthers/pace-core/styles/core.css`](../styles/README.md)
|
|
10
10
|
|
|
11
11
|
## 2. Connect authentication
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T14:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Examples & Starter Projects
|
|
@@ -562,7 +562,6 @@ function App() {
|
|
|
562
562
|
<UnifiedAuthProvider
|
|
563
563
|
supabaseClient={supabase}
|
|
564
564
|
appName="meal-manager"
|
|
565
|
-
enableRBAC={true}
|
|
566
565
|
requireOrganisationContext={true}
|
|
567
566
|
idleTimeoutMs={30 * 60 * 1000}
|
|
568
567
|
warnBeforeMs={5 * 60 * 1000}
|
|
@@ -880,8 +879,11 @@ Coming soon - complete starter projects you can download and run immediately:
|
|
|
880
879
|
|
|
881
880
|
### Component Examples
|
|
882
881
|
|
|
883
|
-
|
|
882
|
+
**Runnable Component Examples:**
|
|
883
|
+
For importable, runnable TypeScript/React component examples, see:
|
|
884
|
+
- [Runnable Examples](../../examples/) - Importable component examples (DataTable, Dialog, RBAC, PublicPages)
|
|
884
885
|
|
|
886
|
+
**Component Documentation:**
|
|
885
887
|
- [DataTable Examples](../api-reference/components.md#datatable)
|
|
886
888
|
- [Form Examples](../api-reference/components.md#form)
|
|
887
889
|
- [Navigation Examples](../implementation-guides/navigation.md)
|
|
@@ -40,6 +40,9 @@ function App() {
|
|
|
40
40
|
<UnifiedAuthProvider
|
|
41
41
|
supabaseClient={supabase}
|
|
42
42
|
appName="basic-auth-app"
|
|
43
|
+
idleTimeoutMs={30 * 60 * 1000} // 30 minutes
|
|
44
|
+
warnBeforeMs={5 * 60 * 1000} // 5 minutes warning
|
|
45
|
+
onIdleLogout={() => window.location.href = '/login'}
|
|
43
46
|
>
|
|
44
47
|
<BrowserRouter>
|
|
45
48
|
<Routes>
|
|
@@ -68,12 +68,14 @@ import { AppRoutes } from './components/AppRoutes';
|
|
|
68
68
|
function App() {
|
|
69
69
|
return (
|
|
70
70
|
<ErrorBoundary>
|
|
71
|
-
<UnifiedAuthProvider
|
|
72
|
-
supabaseClient={supabase}
|
|
71
|
+
<UnifiedAuthProvider
|
|
72
|
+
supabaseClient={supabase}
|
|
73
73
|
appName="meal-manager"
|
|
74
|
-
enableRBAC={true}
|
|
75
74
|
requireOrganisationContext={true}
|
|
76
75
|
persistState={true}
|
|
76
|
+
idleTimeoutMs={30 * 60 * 1000} // 30 minutes
|
|
77
|
+
warnBeforeMs={5 * 60 * 1000} // 5 minutes warning
|
|
78
|
+
onIdleLogout={() => window.location.href = '/login'}
|
|
77
79
|
>
|
|
78
80
|
<OrganisationProvider>
|
|
79
81
|
<EventProvider>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T14:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# PACE Core FAQ
|
|
@@ -14,7 +14,7 @@ Common questions and quick answers about PACE Core.
|
|
|
14
14
|
|
|
15
15
|
### How do I install PACE Core?
|
|
16
16
|
|
|
17
|
-
See the [Installation Guide](./
|
|
17
|
+
See the [Installation Guide](./installation-guide.md) for complete step-by-step instructions.
|
|
18
18
|
|
|
19
19
|
**Quick answer:**
|
|
20
20
|
```bash
|
|
@@ -57,7 +57,7 @@ npm install -D @tailwindcss/vite tailwindcss@^4.0.0
|
|
|
57
57
|
npm uninstall tailwindcss@^3.0.0
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
See [Installation Guide](./
|
|
60
|
+
See [Installation Guide](./installation-guide.md) for details.
|
|
61
61
|
|
|
62
62
|
### Do I need a tailwind.config.js file?
|
|
63
63
|
|
|
@@ -193,7 +193,7 @@ See [RBAC Troubleshooting](./rbac/troubleshooting.md) for help.
|
|
|
193
193
|
|
|
194
194
|
### What are the coding standards?
|
|
195
195
|
|
|
196
|
-
Follow the [Documentation Standard](../
|
|
196
|
+
Follow the [Documentation Standard](../standards/README.md) for:
|
|
197
197
|
- Code example standards
|
|
198
198
|
- Terminology usage
|
|
199
199
|
- Documentation structure
|