@jmruthers/pace-core 0.5.181 → 0.5.182
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/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.ts +1 -5
- package/src/types/__tests__/guards.test.ts +1 -1
- 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/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/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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 📚 PACE Standards — Master README
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
This document is the single source of truth for all engineering standards for pace-core and consuming apps.
|
|
5
|
+
|
|
6
|
+
## pace-core Standards
|
|
7
|
+
- 01-architecture-standard.md
|
|
8
|
+
- 02-api-and-rpc-standard.md
|
|
9
|
+
- 03-component-standard.md
|
|
10
|
+
- 04-code-style-standard.md
|
|
11
|
+
- 05-security-standard.md
|
|
12
|
+
- 06-testing-and-docs-standard.md
|
|
13
|
+
|
|
14
|
+
## Consuming App Standards
|
|
15
|
+
- 01-app-architecture.md
|
|
16
|
+
- 02-pace-core-integration.md
|
|
17
|
+
- 03-domain-model.md
|
|
18
|
+
- 04-app-security-and-rbac.md
|
|
19
|
+
- 05-testing-strategy.md
|
|
20
|
+
- 06-ai-collaboration.md
|
|
21
|
+
|
|
22
|
+
## Precedence
|
|
23
|
+
1. Security
|
|
24
|
+
2. API/RPC
|
|
25
|
+
3. Components
|
|
26
|
+
4. Code Style
|
|
27
|
+
5. Testing
|
|
28
|
+
6. Documentation
|
|
29
|
+
7. Consuming App Standards
|
|
30
|
+
|
|
31
|
+
## AI Rules
|
|
32
|
+
- Read relevant standards
|
|
33
|
+
- Apply Cursor Checklists
|
|
34
|
+
- Prefer pace-core for reusable logic
|
|
35
|
+
- Update docs on API changes
|
package/docs/styles/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T18:30:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# PACE Core Styling Guide
|
|
@@ -386,6 +386,19 @@ import './app.css'; // Import app-specific colors second
|
|
|
386
386
|
/* ... other pace-core source directives */
|
|
387
387
|
```
|
|
388
388
|
|
|
389
|
+
### Colors Not Appearing
|
|
390
|
+
|
|
391
|
+
- Ensure you've imported `@jmruthers/pace-core/src/styles/core.css`
|
|
392
|
+
- If using custom palettes, check that your `app.css` defines the complete palette
|
|
393
|
+
- Verify Tailwind v4 is installed
|
|
394
|
+
- Check that font files are available in your `/fonts` directory
|
|
395
|
+
|
|
396
|
+
### Dynamic Theming Issues
|
|
397
|
+
|
|
398
|
+
- Verify palette data has correct structure (main/sec/acc with 50-950 shades)
|
|
399
|
+
- Check browser console for errors
|
|
400
|
+
- Use `isDynamicThemingActive()` to debug dynamic theming state
|
|
401
|
+
|
|
389
402
|
## Best Practices
|
|
390
403
|
|
|
391
404
|
1. **Create app.css** - Always create `src/app.css` with your brand colors and source directives
|
|
@@ -395,18 +408,86 @@ import './app.css'; // Import app-specific colors second
|
|
|
395
408
|
5. **Use semantic tokens** - Prefer `bg-primary` over `bg-main-600` for better maintainability
|
|
396
409
|
6. **Keep app.css clean** - Only put color palettes and source directives in app.css, no other CSS
|
|
397
410
|
|
|
411
|
+
## Visual Testing
|
|
412
|
+
|
|
413
|
+
For visual regression testing and component verification, see the [Visual Testing Guide](./visual-testing.md).
|
|
414
|
+
|
|
398
415
|
## Support
|
|
399
416
|
|
|
400
417
|
If you're having trouble with PACE Core styling:
|
|
401
418
|
|
|
402
419
|
1. Check the [troubleshooting section](#troubleshooting) above
|
|
403
|
-
2. Review the
|
|
404
|
-
3. Check the [visual testing guide](
|
|
420
|
+
2. Review the examples in this guide
|
|
421
|
+
3. Check the [visual testing guide](./visual-testing.md) for component verification
|
|
405
422
|
4. Open an issue on our GitHub repository
|
|
406
423
|
|
|
424
|
+
## ♿ Accessibility
|
|
425
|
+
|
|
426
|
+
Styling implementations should maintain accessibility:
|
|
427
|
+
|
|
428
|
+
- **Color contrast** - All color combinations meet WCAG 2.1 AA contrast requirements
|
|
429
|
+
- **Focus indicators** - Accessible focus styles are included in core.css
|
|
430
|
+
- **Semantic color tokens** - Use semantic tokens (bg-primary, text-foreground) for better accessibility
|
|
431
|
+
- **High contrast support** - Color palettes support high contrast modes
|
|
432
|
+
- **Screen reader compatibility** - Styling doesn't interfere with screen reader functionality
|
|
433
|
+
|
|
434
|
+
### Accessibility Best Practices
|
|
435
|
+
|
|
436
|
+
1. **Test color contrast** - Verify all text/background combinations meet WCAG standards
|
|
437
|
+
2. **Use semantic tokens** - Prefer `bg-primary` over `bg-main-600` for better maintainability
|
|
438
|
+
3. **Ensure focus visibility** - Focus indicators are included, but verify they're visible
|
|
439
|
+
4. **Test with assistive technologies** - Verify styling works with screen readers
|
|
440
|
+
5. **Maintain color independence** - Don't rely solely on color to convey information
|
|
441
|
+
|
|
442
|
+
## ⚠️ Edge Cases
|
|
443
|
+
|
|
444
|
+
### Missing app.css Configuration
|
|
445
|
+
|
|
446
|
+
When `app.css` is missing or incomplete:
|
|
447
|
+
- Components will appear unstyled
|
|
448
|
+
- Colors won't work (will show as gray/default)
|
|
449
|
+
- Verify `app.css` exists and includes complete color palettes
|
|
450
|
+
- Check import order (core.css first, then app.css)
|
|
451
|
+
- Verify all `@source` directives are present
|
|
452
|
+
|
|
453
|
+
### Tailwind v4 Content Scanning Issues
|
|
454
|
+
|
|
455
|
+
When Tailwind classes are missing:
|
|
456
|
+
- Verify `@source` directives include pace-core paths
|
|
457
|
+
- Check that all pace-core component paths are scanned
|
|
458
|
+
- Ensure Tailwind v4 is properly configured
|
|
459
|
+
- Review content scanning configuration
|
|
460
|
+
- See [troubleshooting guide](../troubleshooting/styling-issues.md) for detailed help
|
|
461
|
+
|
|
462
|
+
### Dynamic Theming Conflicts
|
|
463
|
+
|
|
464
|
+
When dynamic theming conflicts with app colors:
|
|
465
|
+
- Verify palette structure matches expected format
|
|
466
|
+
- Check that dynamic theming is properly cleared when needed
|
|
467
|
+
- Ensure app.css colors are defined before dynamic theming
|
|
468
|
+
- Test with both static and dynamic theming scenarios
|
|
469
|
+
- Review dynamic theming implementation
|
|
470
|
+
|
|
471
|
+
### Color Palette Inconsistencies
|
|
472
|
+
|
|
473
|
+
When colors don't match expectations:
|
|
474
|
+
- Verify all shades (50-950) are defined for each palette
|
|
475
|
+
- Check OKLCH color format is correct
|
|
476
|
+
- Ensure color values are within valid ranges
|
|
477
|
+
- Test color rendering across different browsers
|
|
478
|
+
- Verify semantic token mappings in core.css
|
|
479
|
+
|
|
480
|
+
### Import Order Issues
|
|
481
|
+
|
|
482
|
+
When styles don't apply correctly:
|
|
483
|
+
- Verify core.css is imported before app.css
|
|
484
|
+
- Check that both files are imported in entry point
|
|
485
|
+
- Ensure no conflicting CSS imports
|
|
486
|
+
- Review import statements for correctness
|
|
487
|
+
- Test with minimal configuration
|
|
488
|
+
|
|
407
489
|
## Next Steps
|
|
408
490
|
|
|
409
|
-
- [Usage Guide](../usage.md) - Complete integration guide
|
|
410
|
-
- [Visual Testing Guide](../visual-testing.md) - Component verification
|
|
411
491
|
- [Component Documentation](../api-reference/components.md) - Individual component docs
|
|
412
|
-
- [
|
|
492
|
+
- [Visual Testing Guide](./visual-testing.md) - Component verification
|
|
493
|
+
- [Implementation Guides](../implementation-guides/component-styling.md) - Component styling guide
|
package/docs/testing/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T19:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Testing Guide
|
|
8
8
|
|
|
9
9
|
This guide covers testing strategies, patterns, and best practices for applications built with PACE Core.
|
|
10
10
|
|
|
11
|
-
> 📖 **For comprehensive testing standards and patterns**, see the [Testing Standard](
|
|
11
|
+
> 📖 **For comprehensive testing standards and 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
|
|
|
@@ -590,7 +590,32 @@ describe('Keyboard Navigation', () => {
|
|
|
590
590
|
|
|
591
591
|
## Visual Regression Testing
|
|
592
592
|
|
|
593
|
-
|
|
593
|
+
Visual regression testing ensures visual parity after styling changes and helps catch unintended visual changes.
|
|
594
|
+
|
|
595
|
+
### Testing Approach
|
|
596
|
+
|
|
597
|
+
1. **Component Snapshots**: Each component should be tested with visual snapshots
|
|
598
|
+
2. **Color Variations**: Test with different palette combinations
|
|
599
|
+
3. **Responsive**: Test at different screen sizes
|
|
600
|
+
|
|
601
|
+
### Key Components to Test
|
|
602
|
+
|
|
603
|
+
#### Button Component
|
|
604
|
+
- **Variants**: default, destructive, outline, secondary, ghost, link
|
|
605
|
+
- **Sizes**: sm, default, lg, icon
|
|
606
|
+
- **States**: normal, hover, active, disabled, focus
|
|
607
|
+
|
|
608
|
+
#### Card Component
|
|
609
|
+
- **Variants**: default, outline, ghost
|
|
610
|
+
- **Sizes**: default, sm, lg
|
|
611
|
+
- **Content**: with/without header, footer, actions
|
|
612
|
+
|
|
613
|
+
#### DataTable Component
|
|
614
|
+
- **States**: empty, loading, with data
|
|
615
|
+
- **Features**: sorting, filtering, pagination
|
|
616
|
+
- **Responsive**: mobile, tablet, desktop
|
|
617
|
+
|
|
618
|
+
### Component Snapshots
|
|
594
619
|
|
|
595
620
|
```tsx
|
|
596
621
|
import { render } from '@testing-library/react';
|
|
@@ -628,29 +653,90 @@ describe('Visual Regression Tests', () => {
|
|
|
628
653
|
});
|
|
629
654
|
```
|
|
630
655
|
|
|
631
|
-
###
|
|
656
|
+
### Visual Testing Setup
|
|
632
657
|
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
describe('Component Tests', () => {
|
|
638
|
-
test('Button renders correctly', () => {
|
|
639
|
-
const { container } = render(
|
|
640
|
-
<Button>Test Button</Button>
|
|
641
|
-
);
|
|
642
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
643
|
-
});
|
|
658
|
+
```bash
|
|
659
|
+
# Install visual testing tools
|
|
660
|
+
npm install --save-dev @storybook/react @storybook/addon-storyshots
|
|
644
661
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
<Button>Test Button</Button>
|
|
648
|
-
);
|
|
649
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
650
|
-
});
|
|
651
|
-
});
|
|
662
|
+
# Run visual tests
|
|
663
|
+
npm run test:visual
|
|
652
664
|
```
|
|
653
665
|
|
|
666
|
+
### Test Cases
|
|
667
|
+
|
|
668
|
+
1. **Light Mode Default Palette**
|
|
669
|
+
- Use default main/sec/acc colors
|
|
670
|
+
- Verify all components render correctly
|
|
671
|
+
- Check color contrast ratios
|
|
672
|
+
|
|
673
|
+
2. **Dynamic Palette Replacement**
|
|
674
|
+
- Apply different organisation palettes
|
|
675
|
+
- Verify all components update correctly
|
|
676
|
+
- Test palette switching
|
|
677
|
+
- Check no hue shifts occur
|
|
678
|
+
|
|
679
|
+
3. **Custom App Palettes**
|
|
680
|
+
- Test with different brand colors
|
|
681
|
+
- Verify OKLCH format works correctly
|
|
682
|
+
- Check all shade variations (50-950)
|
|
683
|
+
|
|
684
|
+
### Visual Parity Checklist
|
|
685
|
+
|
|
686
|
+
- [ ] Button variants maintain same visual appearance
|
|
687
|
+
- [ ] Card shadows and borders unchanged
|
|
688
|
+
- [ ] DataTable styling consistent
|
|
689
|
+
- [ ] Typography hierarchy preserved
|
|
690
|
+
- [ ] Focus states work correctly
|
|
691
|
+
- [ ] Hover effects unchanged
|
|
692
|
+
- [ ] Spacing and layout identical
|
|
693
|
+
- [ ] Color contrast maintained
|
|
694
|
+
- [ ] Dynamic theming works
|
|
695
|
+
|
|
696
|
+
### Screenshot Comparison
|
|
697
|
+
|
|
698
|
+
#### Before (Legacy System)
|
|
699
|
+
- Components using `app-*` classes
|
|
700
|
+
- CVA-based styling
|
|
701
|
+
- Complex theming system
|
|
702
|
+
|
|
703
|
+
#### After (New System)
|
|
704
|
+
- Components using native utilities (`main-*`, `sec-*`, `acc-*`)
|
|
705
|
+
- No CVA dependency
|
|
706
|
+
- Simple runtime theming
|
|
707
|
+
|
|
708
|
+
### Testing Tools
|
|
709
|
+
|
|
710
|
+
1. **Chromatic** - Visual regression testing
|
|
711
|
+
2. **Percy** - Cross-browser visual testing
|
|
712
|
+
3. **Storybook** - Component isolation and testing
|
|
713
|
+
4. **Playwright** - Automated visual testing
|
|
714
|
+
|
|
715
|
+
### Manual Testing Checklist
|
|
716
|
+
|
|
717
|
+
- [ ] All components render without errors
|
|
718
|
+
- [ ] Colors display correctly in light mode
|
|
719
|
+
- [ ] Dynamic palette switching works
|
|
720
|
+
- [ ] No visual regressions detected
|
|
721
|
+
- [ ] Performance is maintained or improved
|
|
722
|
+
- [ ] Accessibility features work correctly
|
|
723
|
+
|
|
724
|
+
### Reporting Issues
|
|
725
|
+
|
|
726
|
+
If visual regressions are found:
|
|
727
|
+
|
|
728
|
+
1. Document the specific component and variant
|
|
729
|
+
2. Note the expected vs actual appearance
|
|
730
|
+
3. Check if it's a color mapping issue
|
|
731
|
+
4. Verify the palette values are correct
|
|
732
|
+
5. Test with different color combinations
|
|
733
|
+
|
|
734
|
+
### Maintenance
|
|
735
|
+
|
|
736
|
+
- Update visual tests when adding new components
|
|
737
|
+
- Re-run tests after palette changes
|
|
738
|
+
- Test dynamic theming with new palettes
|
|
739
|
+
|
|
654
740
|
## Performance Testing
|
|
655
741
|
|
|
656
742
|
### 1. Component Performance Tests
|
|
@@ -880,3 +966,68 @@ module.exports = {
|
|
|
880
966
|
- **Test accessibility** and performance
|
|
881
967
|
|
|
882
968
|
This testing guide provides comprehensive coverage of testing strategies for PACE Core applications. Follow these patterns and best practices to ensure your applications are well-tested and maintainable.
|
|
969
|
+
|
|
970
|
+
## ♿ Accessibility
|
|
971
|
+
|
|
972
|
+
Testing should include accessibility considerations:
|
|
973
|
+
|
|
974
|
+
- **Accessibility testing tools** - Use jest-axe for automated accessibility testing
|
|
975
|
+
- **Keyboard navigation testing** - Verify all interactive elements are keyboard accessible
|
|
976
|
+
- **Screen reader compatibility** - Test with assistive technologies
|
|
977
|
+
- **Color contrast verification** - Ensure all color combinations meet WCAG standards
|
|
978
|
+
- **Focus management testing** - Verify focus indicators and focus order
|
|
979
|
+
|
|
980
|
+
### Accessibility Best Practices
|
|
981
|
+
|
|
982
|
+
1. **Include accessibility tests** - Add accessibility tests to your test suite
|
|
983
|
+
2. **Test keyboard navigation** - Verify all interactive elements are keyboard accessible
|
|
984
|
+
3. **Test with screen readers** - Use assistive technologies to verify functionality
|
|
985
|
+
4. **Verify color contrast** - Test color combinations meet WCAG standards
|
|
986
|
+
5. **Test focus management** - Ensure focus indicators are visible and logical
|
|
987
|
+
|
|
988
|
+
## ⚠️ Edge Cases
|
|
989
|
+
|
|
990
|
+
### Test Environment Issues
|
|
991
|
+
|
|
992
|
+
When tests fail due to environment issues:
|
|
993
|
+
- Verify test setup files are correctly configured
|
|
994
|
+
- Check that all required mocks are in place
|
|
995
|
+
- Ensure test utilities are properly imported
|
|
996
|
+
- Review test configuration for correctness
|
|
997
|
+
- Test with minimal configuration
|
|
998
|
+
|
|
999
|
+
### Mock Data Inconsistencies
|
|
1000
|
+
|
|
1001
|
+
When mocks don't match actual API responses:
|
|
1002
|
+
- Update mocks to match current API structure
|
|
1003
|
+
- Verify mock data matches production data structure
|
|
1004
|
+
- Test with realistic data scenarios
|
|
1005
|
+
- Review mock implementations for accuracy
|
|
1006
|
+
- Test with different data variations
|
|
1007
|
+
|
|
1008
|
+
### Visual Regression False Positives
|
|
1009
|
+
|
|
1010
|
+
When visual tests fail incorrectly:
|
|
1011
|
+
- Verify screenshot comparison thresholds
|
|
1012
|
+
- Check for environment-specific differences
|
|
1013
|
+
- Review test configuration for consistency
|
|
1014
|
+
- Test with different browsers and devices
|
|
1015
|
+
- Verify color rendering across platforms
|
|
1016
|
+
|
|
1017
|
+
### Performance Test Flakiness
|
|
1018
|
+
|
|
1019
|
+
When performance tests are inconsistent:
|
|
1020
|
+
- Use appropriate performance thresholds
|
|
1021
|
+
- Account for system load variations
|
|
1022
|
+
- Test in consistent environments
|
|
1023
|
+
- Review performance test methodology
|
|
1024
|
+
- Consider using statistical analysis
|
|
1025
|
+
|
|
1026
|
+
### Integration Test Timing Issues
|
|
1027
|
+
|
|
1028
|
+
When integration tests fail due to timing:
|
|
1029
|
+
- Use proper wait conditions
|
|
1030
|
+
- Account for async operations
|
|
1031
|
+
- Test with realistic network delays
|
|
1032
|
+
- Review test timeout settings
|
|
1033
|
+
- Verify proper cleanup between tests
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
lastUpdated: 2025-
|
|
3
|
-
version: 0.5.
|
|
4
|
-
reviewedBy:
|
|
2
|
+
lastUpdated: 2025-11-18T15:00:00+11:00
|
|
3
|
+
version: 0.5.181
|
|
4
|
+
reviewedBy: documentation-standards-audit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Troubleshooting Guide
|
|
@@ -870,6 +870,53 @@ function DebugInfo() {
|
|
|
870
870
|
- [ ] Update error handling if needed
|
|
871
871
|
- [ ] Consider adding monitoring for similar issues
|
|
872
872
|
|
|
873
|
+
## ♿ Accessibility
|
|
874
|
+
|
|
875
|
+
Troubleshooting should consider accessibility:
|
|
876
|
+
|
|
877
|
+
- **WCAG 2.1 AA compliance** - Ensure fixes maintain accessibility standards
|
|
878
|
+
- **Screen Reader Support** - Verify solutions don't break screen reader functionality
|
|
879
|
+
- **Keyboard Navigation** - Ensure fixes don't affect keyboard accessibility
|
|
880
|
+
- **Error Announcements** - Ensure error messages are accessible
|
|
881
|
+
- **Focus Management** - Verify focus handling remains correct
|
|
882
|
+
|
|
883
|
+
### Accessibility Best Practices
|
|
884
|
+
|
|
885
|
+
1. **Test with screen readers** - Verify fixes work with assistive technologies
|
|
886
|
+
2. **Check error announcements** - Ensure error messages are properly announced
|
|
887
|
+
3. **Maintain keyboard access** - Verify all interactive elements remain keyboard accessible
|
|
888
|
+
4. **Preserve semantic structure** - Don't break semantic HTML with workarounds
|
|
889
|
+
5. **Test focus management** - Ensure focus handling remains correct
|
|
890
|
+
|
|
891
|
+
## ⚠️ Edge Cases
|
|
892
|
+
|
|
893
|
+
### Multiple Issues Occurring Simultaneously
|
|
894
|
+
|
|
895
|
+
When multiple issues occur at once:
|
|
896
|
+
- Address setup issues first (RBAC, providers, environment)
|
|
897
|
+
- Fix authentication before permission issues
|
|
898
|
+
- Resolve network/CORS before data fetching issues
|
|
899
|
+
- Test each fix independently
|
|
900
|
+
- Use systematic debugging approach
|
|
901
|
+
|
|
902
|
+
### Issues That Only Occur in Production
|
|
903
|
+
|
|
904
|
+
When issues only appear in production:
|
|
905
|
+
- Verify environment variables are set correctly
|
|
906
|
+
- Check build configuration matches development
|
|
907
|
+
- Ensure all dependencies are included in build
|
|
908
|
+
- Verify API endpoints are accessible from production
|
|
909
|
+
- Check for environment-specific configuration differences
|
|
910
|
+
|
|
911
|
+
### Intermittent Issues
|
|
912
|
+
|
|
913
|
+
When issues occur intermittently:
|
|
914
|
+
- Check for race conditions in async operations
|
|
915
|
+
- Verify cache invalidation is working correctly
|
|
916
|
+
- Check for timing issues in provider setup
|
|
917
|
+
- Monitor network conditions
|
|
918
|
+
- Review error logs for patterns
|
|
919
|
+
|
|
873
920
|
## Related Documentation
|
|
874
921
|
|
|
875
922
|
- [Common Issues](./common-issues.md) - Specific problem solutions
|