@jmruthers/pace-core 0.2.4
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 +202 -0
- package/README.md +299 -0
- package/dist/DataTable-BHlzyKZP.d.ts +116 -0
- package/dist/DataTable-GEY5U7OI.js +100 -0
- package/dist/DataTable-GEY5U7OI.js.map +1 -0
- package/dist/PublicLoadingSpinner-DztrzuJr.d.ts +3430 -0
- package/dist/UnifiedAuthProvider-w66zSCUf.d.ts +160 -0
- package/dist/api-GZHIDA4X.js +41 -0
- package/dist/api-GZHIDA4X.js.map +1 -0
- package/dist/appConfig-BVGyuvI7.d.ts +71 -0
- package/dist/appNameResolver-7GHF5ED2.js +22 -0
- package/dist/appNameResolver-7GHF5ED2.js.map +1 -0
- package/dist/audit-BUW3LMJB.js +16 -0
- package/dist/audit-BUW3LMJB.js.map +1 -0
- package/dist/chunk-22KLBHPS.js +29 -0
- package/dist/chunk-22KLBHPS.js.map +1 -0
- package/dist/chunk-24MKLB7U.js +81 -0
- package/dist/chunk-24MKLB7U.js.map +1 -0
- package/dist/chunk-2MKP6IYD.js +388 -0
- package/dist/chunk-2MKP6IYD.js.map +1 -0
- package/dist/chunk-2V3Y6YBC.js +114 -0
- package/dist/chunk-2V3Y6YBC.js.map +1 -0
- package/dist/chunk-5CDJCTOO.js +190 -0
- package/dist/chunk-5CDJCTOO.js.map +1 -0
- package/dist/chunk-6ZQVSHKL.js +1345 -0
- package/dist/chunk-6ZQVSHKL.js.map +1 -0
- package/dist/chunk-74C6SNEC.js +77 -0
- package/dist/chunk-74C6SNEC.js.map +1 -0
- package/dist/chunk-7BNPOCLL.js +178 -0
- package/dist/chunk-7BNPOCLL.js.map +1 -0
- package/dist/chunk-7JL3T7BO.js +3344 -0
- package/dist/chunk-7JL3T7BO.js.map +1 -0
- package/dist/chunk-CDQ3PX7L.js +18 -0
- package/dist/chunk-CDQ3PX7L.js.map +1 -0
- package/dist/chunk-DY5E3AT7.js +1734 -0
- package/dist/chunk-DY5E3AT7.js.map +1 -0
- package/dist/chunk-ETEJVKYK.js +6032 -0
- package/dist/chunk-ETEJVKYK.js.map +1 -0
- package/dist/chunk-I5Z3QH5X.js +32 -0
- package/dist/chunk-I5Z3QH5X.js.map +1 -0
- package/dist/chunk-MZBUOP4P.js +119 -0
- package/dist/chunk-MZBUOP4P.js.map +1 -0
- package/dist/chunk-N2EUGZRW.js +98 -0
- package/dist/chunk-N2EUGZRW.js.map +1 -0
- package/dist/chunk-NQ4TOOO6.js +20 -0
- package/dist/chunk-NQ4TOOO6.js.map +1 -0
- package/dist/chunk-OHXGNT3K.js +21 -0
- package/dist/chunk-OHXGNT3K.js.map +1 -0
- package/dist/chunk-OKXMUYIB.js +522 -0
- package/dist/chunk-OKXMUYIB.js.map +1 -0
- package/dist/chunk-PFRRIDYA.js +382 -0
- package/dist/chunk-PFRRIDYA.js.map +1 -0
- package/dist/chunk-PLDDJCW6.js +49 -0
- package/dist/chunk-PLDDJCW6.js.map +1 -0
- package/dist/chunk-SS3E6QLB.js +695 -0
- package/dist/chunk-SS3E6QLB.js.map +1 -0
- package/dist/chunk-TMRLB2LA.js +326 -0
- package/dist/chunk-TMRLB2LA.js.map +1 -0
- package/dist/chunk-WYB6MBZA.js +5533 -0
- package/dist/chunk-WYB6MBZA.js.map +1 -0
- package/dist/chunk-YDJW5XTN.js +84 -0
- package/dist/chunk-YDJW5XTN.js.map +1 -0
- package/dist/components.d.ts +1308 -0
- package/dist/components.js +3759 -0
- package/dist/components.js.map +1 -0
- package/dist/database-C3Szpi5J.d.ts +470 -0
- package/dist/hooks.d.ts +449 -0
- package/dist/hooks.js +612 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +385 -0
- package/dist/index.js +569 -0
- package/dist/index.js.map +1 -0
- package/dist/organisation-CO3Sh3_D.d.ts +99 -0
- package/dist/providers.d.ts +45 -0
- package/dist/providers.js +36 -0
- package/dist/providers.js.map +1 -0
- package/dist/rbac/eslint-rules.d.ts +52 -0
- package/dist/rbac/eslint-rules.js +252 -0
- package/dist/rbac/eslint-rules.js.map +1 -0
- package/dist/rbac/index.d.ts +1918 -0
- package/dist/rbac/index.js +2212 -0
- package/dist/rbac/index.js.map +1 -0
- package/dist/styles/core.css +401 -0
- package/dist/styles/fonts/georama-italic.woff2 +0 -0
- package/dist/styles/fonts/georama.woff2 +0 -0
- package/dist/styles/fonts/open-sans-italic.woff2 +0 -0
- package/dist/styles/fonts/open-sans.woff2 +0 -0
- package/dist/styles/fonts/reddit-mono.woff2 +0 -0
- package/dist/styles/index.d.ts +36 -0
- package/dist/styles/index.js +24 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/theming/runtime.d.ts +73 -0
- package/dist/theming/runtime.js +16 -0
- package/dist/theming/runtime.js.map +1 -0
- package/dist/types-CInEi-ng.d.ts +316 -0
- package/dist/types.d.ts +196 -0
- package/dist/types.js +83 -0
- package/dist/types.js.map +1 -0
- package/dist/unified-CM7T0aTK.d.ts +198 -0
- package/dist/useComponentPerformance-DE9l5RkL.d.ts +11 -0
- package/dist/usePublicRouteParams-B6i0KtXW.d.ts +477 -0
- package/dist/utils.d.ts +639 -0
- package/dist/utils.js +1103 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation-PM_iOaTI.d.ts +159 -0
- package/dist/validation.d.ts +138 -0
- package/dist/validation.js +477 -0
- package/dist/validation.js.map +1 -0
- package/docs/INDEX.md +192 -0
- package/docs/README.md +165 -0
- package/docs/api/.nojekyll +1 -0
- package/docs/api/README.md +301 -0
- package/docs/api/classes/ErrorBoundary.md +144 -0
- package/docs/api/classes/PublicErrorBoundary.md +132 -0
- package/docs/api/interfaces/AggregateConfig.md +43 -0
- package/docs/api/interfaces/ButtonProps.md +53 -0
- package/docs/api/interfaces/CardProps.md +40 -0
- package/docs/api/interfaces/ColorPalette.md +7 -0
- package/docs/api/interfaces/ColorShade.md +41 -0
- package/docs/api/interfaces/DataTableAction.md +200 -0
- package/docs/api/interfaces/DataTableColumn.md +300 -0
- package/docs/api/interfaces/DataTableProps.md +517 -0
- package/docs/api/interfaces/DataTableToolbarButton.md +96 -0
- package/docs/api/interfaces/EmptyStateConfig.md +61 -0
- package/docs/api/interfaces/EventContextType.md +96 -0
- package/docs/api/interfaces/EventLogoProps.md +152 -0
- package/docs/api/interfaces/EventProviderProps.md +19 -0
- package/docs/api/interfaces/FileSizeLimits.md +7 -0
- package/docs/api/interfaces/FileUploadProps.md +154 -0
- package/docs/api/interfaces/FooterProps.md +105 -0
- package/docs/api/interfaces/InactivityWarningModalProps.md +115 -0
- package/docs/api/interfaces/InputProps.md +53 -0
- package/docs/api/interfaces/LabelProps.md +107 -0
- package/docs/api/interfaces/LoginFormProps.md +184 -0
- package/docs/api/interfaces/NavigationItem.md +176 -0
- package/docs/api/interfaces/NavigationMenuProps.md +236 -0
- package/docs/api/interfaces/Organisation.md +140 -0
- package/docs/api/interfaces/OrganisationContextType.md +377 -0
- package/docs/api/interfaces/OrganisationMembership.md +140 -0
- package/docs/api/interfaces/OrganisationProviderProps.md +19 -0
- package/docs/api/interfaces/OrganisationSecurityError.md +62 -0
- package/docs/api/interfaces/PaceAppLayoutProps.md +393 -0
- package/docs/api/interfaces/PaceLoginPageProps.md +34 -0
- package/docs/api/interfaces/PaletteData.md +41 -0
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +94 -0
- package/docs/api/interfaces/PublicErrorBoundaryState.md +68 -0
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +86 -0
- package/docs/api/interfaces/PublicPageFooterProps.md +112 -0
- package/docs/api/interfaces/PublicPageHeaderProps.md +138 -0
- package/docs/api/interfaces/PublicPageLayoutProps.md +138 -0
- package/docs/api/interfaces/StorageConfig.md +41 -0
- package/docs/api/interfaces/StorageFileInfo.md +74 -0
- package/docs/api/interfaces/StorageFileMetadata.md +140 -0
- package/docs/api/interfaces/StorageListOptions.md +86 -0
- package/docs/api/interfaces/StorageListResult.md +41 -0
- package/docs/api/interfaces/StorageUploadOptions.md +88 -0
- package/docs/api/interfaces/StorageUploadResult.md +63 -0
- package/docs/api/interfaces/StorageUrlOptions.md +47 -0
- package/docs/api/interfaces/StyleImport.md +19 -0
- package/docs/api/interfaces/ToastActionElement.md +9 -0
- package/docs/api/interfaces/ToastProps.md +9 -0
- package/docs/api/interfaces/UnifiedAuthContextType.md +1108 -0
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +171 -0
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +136 -0
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +123 -0
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +87 -0
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +81 -0
- package/docs/api/interfaces/UsePublicEventOptions.md +34 -0
- package/docs/api/interfaces/UsePublicEventReturn.md +68 -0
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +94 -0
- package/docs/api/interfaces/UserEventAccess.md +118 -0
- package/docs/api/interfaces/UserMenuProps.md +86 -0
- package/docs/api/interfaces/UserProfile.md +63 -0
- package/docs/api/modules.md +4153 -0
- package/docs/api-reference/components.md +1623 -0
- package/docs/api-reference/hooks.md +627 -0
- package/docs/api-reference/providers.md +487 -0
- package/docs/api-reference/types.md +1005 -0
- package/docs/api-reference/utilities.md +1104 -0
- package/docs/app.css.example +53 -0
- package/docs/architecture/README.md +577 -0
- package/docs/best-practices/README.md +400 -0
- package/docs/best-practices/deployment.md +1042 -0
- package/docs/best-practices/performance.md +789 -0
- package/docs/best-practices/security.md +881 -0
- package/docs/best-practices/testing.md +981 -0
- package/docs/consuming-app-example.md +290 -0
- package/docs/consuming-app-vite-config.md +233 -0
- package/docs/core-concepts/authentication.md +98 -0
- package/docs/core-concepts/events.md +756 -0
- package/docs/core-concepts/organisations.md +790 -0
- package/docs/core-concepts/permissions.md +729 -0
- package/docs/core-concepts/rbac-system.md +233 -0
- package/docs/database-schema-requirements.md +172 -0
- package/docs/documentation-style-checklist.md +294 -0
- package/docs/examples/navigation-menu-auth-fix.md +344 -0
- package/docs/getting-started/examples/README.md +106 -0
- package/docs/getting-started/examples/basic-auth-app.md +521 -0
- package/docs/getting-started/examples/full-featured-app.md +616 -0
- package/docs/getting-started/installation.md +269 -0
- package/docs/getting-started/quick-start.md +401 -0
- package/docs/implementation-guides/app-layout.md +983 -0
- package/docs/implementation-guides/data-tables.md +1898 -0
- package/docs/implementation-guides/dynamic-colors.md +195 -0
- package/docs/implementation-guides/forms.md +578 -0
- package/docs/implementation-guides/hierarchical-datatable.md +850 -0
- package/docs/implementation-guides/large-datasets.md +281 -0
- package/docs/implementation-guides/navigation.md +844 -0
- package/docs/implementation-guides/performance.md +403 -0
- package/docs/implementation-guides/permission-enforcement.md +764 -0
- package/docs/implementation-guides/public-pages.md +752 -0
- package/docs/migration/README.md +493 -0
- package/docs/migration/organisation-context-timing-fix.md +217 -0
- package/docs/migration/quick-migration-guide.md +320 -0
- package/docs/migration/rbac-migration.md +571 -0
- package/docs/migration/v0.4.15-tailwind-scanning.md +272 -0
- package/docs/migration/v0.4.16-css-first-approach.md +306 -0
- package/docs/migration/v0.4.17-source-path-fix.md +229 -0
- package/docs/migration-guide.md +168 -0
- package/docs/performance/README.md +551 -0
- package/docs/print-components/README.md +258 -0
- package/docs/print-components/api-reference.md +636 -0
- package/docs/print-components/examples/README.md +204 -0
- package/docs/print-components/examples/basic-report.tsx +92 -0
- package/docs/print-components/examples/card-catalog.tsx +149 -0
- package/docs/print-components/examples/cover-page-report.tsx +163 -0
- package/docs/print-components/quick-start.md +363 -0
- package/docs/quick-reference.md +576 -0
- package/docs/rbac/README.md +265 -0
- package/docs/rbac/advanced-patterns.md +776 -0
- package/docs/rbac/api-reference.md +1033 -0
- package/docs/rbac/examples.md +883 -0
- package/docs/rbac/getting-started.md +679 -0
- package/docs/rbac/quick-start.md +619 -0
- package/docs/rbac/super-admin-guide.md +592 -0
- package/docs/rbac/troubleshooting.md +316 -0
- package/docs/security/README.md +680 -0
- package/docs/security/checklist.md +343 -0
- package/docs/style-guide.md +522 -0
- package/docs/styles/README.md +319 -0
- package/docs/testing/README.md +874 -0
- package/docs/troubleshooting/README.md +497 -0
- package/docs/troubleshooting/common-issues.md +1563 -0
- package/docs/troubleshooting/database-view-compatibility.md +119 -0
- package/docs/troubleshooting/debugging.md +1117 -0
- package/docs/troubleshooting/migration.md +918 -0
- package/docs/troubleshooting/organisation-context-setup.md +277 -0
- package/docs/troubleshooting/react-hooks-issue-analysis.md +166 -0
- package/docs/troubleshooting/styling-issues.md +219 -0
- package/docs/troubleshooting/tailwind-content-scanning.md +213 -0
- package/docs/usage.md +175 -0
- package/docs/visual-testing.md +114 -0
- package/package.json +211 -0
- package/src/__mocks__/lucide-react.ts +181 -0
- package/src/__tests__/README.md +404 -0
- package/src/__tests__/debug-provider.unit.test.tsx +67 -0
- package/src/__tests__/e2e/workflows.test.tsx +373 -0
- package/src/__tests__/hybridPermissions.unit.test.tsx +474 -0
- package/src/__tests__/index.integration.test.ts +491 -0
- package/src/__tests__/mocks/MockAuthProvider-standalone.tsx +47 -0
- package/src/__tests__/mocks/MockAuthProvider.tsx +63 -0
- package/src/__tests__/mocks/enhancedSupabaseMock.ts +252 -0
- package/src/__tests__/mocks/index.test.ts +23 -0
- package/src/__tests__/mocks/index.ts +16 -0
- package/src/__tests__/mocks/mockAuth.ts +155 -0
- package/src/__tests__/mocks/mockSupabase.ts +83 -0
- package/src/__tests__/mocks/mockSupabaseClient.ts +63 -0
- package/src/__tests__/mocks/providers.tsx +22 -0
- package/src/__tests__/patterns/__tests__/testPatterns.test.ts +394 -0
- package/src/__tests__/patterns/testPatterns.ts +124 -0
- package/src/__tests__/performance/componentPerformance.performance.test.ts +27 -0
- package/src/__tests__/performance/index.ts +24 -0
- package/src/__tests__/performance/performanceValidation.performance.test.ts +15 -0
- package/src/__tests__/security/security.unit.test.tsx +7 -0
- package/src/__tests__/security/securityValidation.security.test.tsx +153 -0
- package/src/__tests__/setup.ts +259 -0
- package/src/__tests__/setupTests.d.ts +1 -0
- package/src/__tests__/shared/componentTestUtils.tsx +475 -0
- package/src/__tests__/shared/errorHandlingTestUtils.ts +107 -0
- package/src/__tests__/shared/index.ts +81 -0
- package/src/__tests__/shared/integrationTestUtils.tsx +375 -0
- package/src/__tests__/shared/performanceTestUtils.tsx +476 -0
- package/src/__tests__/shared/testUtils.optimized.tsx +627 -0
- package/src/__tests__/simple.test.tsx +20 -0
- package/src/__tests__/templates/accessibility.test.template.tsx +279 -0
- package/src/__tests__/templates/component.test.template.tsx +122 -0
- package/src/__tests__/templates/integration.test.template.tsx +199 -0
- package/src/__tests__/test-utils/dataFactories.ts +60 -0
- package/src/__tests__/test-utils/index.ts +6 -0
- package/src/__tests__/typeSafety.unit.test.ts +65 -0
- package/src/__tests__/unifiedAuth.unit.test.tsx +151 -0
- package/src/__tests__/utils/accessibilityHelpers.ts +254 -0
- package/src/__tests__/utils/assertions.ts +50 -0
- package/src/__tests__/utils/deterministicHelpers.ts +31 -0
- package/src/__tests__/utils/edgeCaseConfig.test.ts +75 -0
- package/src/__tests__/utils/edgeCaseConfig.ts +98 -0
- package/src/__tests__/utils/mockHelpers.ts +149 -0
- package/src/__tests__/utils/mockLoader.ts +101 -0
- package/src/__tests__/utils/performanceHelpers.ts +55 -0
- package/src/__tests__/utils/performanceTestHelpers.ts +68 -0
- package/src/__tests__/utils/testDataFactories.ts +28 -0
- package/src/__tests__/utils/testIsolation.ts +67 -0
- package/src/__tests__/utils/visualTestHelpers.ts +20 -0
- package/src/__tests__/visual/__snapshots__/componentSnapshots.visual.test.tsx.snap +68 -0
- package/src/__tests__/visual/__snapshots__/componentVisuals.visual.test.tsx.snap +14 -0
- package/src/__tests__/visual/__snapshots__/visualRegression.test.tsx.snap +217 -0
- package/src/__tests__/visual/__snapshots__/visualRegression.visual.test.tsx.snap +24 -0
- package/src/__tests__/visual/componentSnapshots.visual.test.tsx +33 -0
- package/src/__tests__/visual/componentVisuals.visual.test.tsx +12 -0
- package/src/__tests__/visual/visualRegression.visual.test.tsx +20 -0
- package/src/components/Alert/Alert.tsx +134 -0
- package/src/components/Alert/__tests__/Alert.unit.test.tsx +381 -0
- package/src/components/Alert/index.ts +2 -0
- package/src/components/Avatar/Avatar.tsx +84 -0
- package/src/components/Avatar/__tests__/Avatar.unit.test.tsx +232 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Button/Button.tsx +270 -0
- package/src/components/Button/__tests__/Button.accessibility.test.tsx +131 -0
- package/src/components/Button/__tests__/Button.comprehensive.test.tsx +721 -0
- package/src/components/Button/__tests__/Button.unit.test.tsx +189 -0
- package/src/components/Button/__tests__/EventSelector.integration.test.tsx +285 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card.tsx +271 -0
- package/src/components/Card/__tests__/Card.accessibility.test.tsx +394 -0
- package/src/components/Card/__tests__/Card.comprehensive.test.tsx +599 -0
- package/src/components/Card/__tests__/Card.integration.test.tsx +673 -0
- package/src/components/Card/__tests__/Card.performance.test.tsx +546 -0
- package/src/components/Card/__tests__/Card.unit.test.tsx +330 -0
- package/src/components/Card/__tests__/Card.visual.test.tsx +599 -0
- package/src/components/Card/__tests__/README.md +211 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/Checkbox/Checkbox.tsx +75 -0
- package/src/components/Checkbox/__mocks__/Checkbox.tsx +2 -0
- package/src/components/Checkbox/__tests__/Checkbox.unit.test.tsx +520 -0
- package/src/components/Checkbox/index.ts +2 -0
- package/src/components/DataTable/DataTable.tsx +440 -0
- package/src/components/DataTable/__tests__/DataTable.autoSizing.test.tsx +526 -0
- package/src/components/DataTable/__tests__/DataTable.errorHandling.test.tsx +259 -0
- package/src/components/DataTable/__tests__/DataTable.hierarchical.test.tsx +675 -0
- package/src/components/DataTable/__tests__/DataTable.infinite-loop.test.tsx +324 -0
- package/src/components/DataTable/__tests__/DataTable.integration.test.tsx +724 -0
- package/src/components/DataTable/__tests__/DataTable.performance.test.tsx +597 -0
- package/src/components/DataTable/__tests__/DataTable.permissions.test.tsx +306 -0
- package/src/components/DataTable/__tests__/DataTable.regressionFixes.test.tsx +546 -0
- package/src/components/DataTable/__tests__/DataTable.selection.controlled.test.tsx +386 -0
- package/src/components/DataTable/__tests__/DataTable.selection.test.tsx +338 -0
- package/src/components/DataTable/__tests__/DataTable.userWorkflows.test.tsx +310 -0
- package/src/components/DataTable/__tests__/DataTable.workflowValidation.test.tsx +489 -0
- package/src/components/DataTable/__tests__/DataTable.workflows.test.tsx +701 -0
- package/src/components/DataTable/__tests__/README.md +136 -0
- package/src/components/DataTable/__tests__/mocks/MockRBACProvider.tsx +66 -0
- package/src/components/DataTable/__tests__/performance-regression.test.tsx +788 -0
- package/src/components/DataTable/__tests__/performance.test.tsx +365 -0
- package/src/components/DataTable/__tests__/test-utils/dataFactories.ts +103 -0
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +382 -0
- package/src/components/DataTable/__tests__/test-utils.ts +94 -0
- package/src/components/DataTable/components/ActionButtons.tsx +177 -0
- package/src/components/DataTable/components/BulkOperationsDropdown.tsx +160 -0
- package/src/components/DataTable/components/ColumnFilter.tsx +114 -0
- package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +100 -0
- package/src/components/DataTable/components/DataTableBody.tsx +462 -0
- package/src/components/DataTable/components/DataTableCore.tsx +869 -0
- package/src/components/DataTable/components/DataTableErrorBoundary.tsx +214 -0
- package/src/components/DataTable/components/DataTableHeader.tsx +31 -0
- package/src/components/DataTable/components/DataTableModals.tsx +87 -0
- package/src/components/DataTable/components/DataTableToolbar.tsx +251 -0
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +148 -0
- package/src/components/DataTable/components/EditableRow.tsx +160 -0
- package/src/components/DataTable/components/EmptyState.tsx +64 -0
- package/src/components/DataTable/components/ExpandButton.tsx +113 -0
- package/src/components/DataTable/components/FilterRow.tsx +101 -0
- package/src/components/DataTable/components/GroupHeader.tsx +42 -0
- package/src/components/DataTable/components/GroupingDropdown.tsx +96 -0
- package/src/components/DataTable/components/ImportModal.tsx +345 -0
- package/src/components/DataTable/components/LoadingState.tsx +12 -0
- package/src/components/DataTable/components/PaginationControls.tsx +332 -0
- package/src/components/DataTable/components/UnifiedTableBody.tsx +911 -0
- package/src/components/DataTable/components/ViewRowModal.tsx +68 -0
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +593 -0
- package/src/components/DataTable/components/__tests__/ActionButtons.unit.test.tsx +150 -0
- package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +224 -0
- package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.unit.test.tsx +244 -0
- package/src/components/DataTable/components/__tests__/DataTable.accessibility.test.tsx +523 -0
- package/src/components/DataTable/components/__tests__/DataTable.integration.test.tsx +401 -0
- package/src/components/DataTable/components/__tests__/DataTable.performance.test.tsx +161 -0
- package/src/components/DataTable/components/__tests__/DataTable.real.test.tsx +251 -0
- package/src/components/DataTable/components/__tests__/DataTable.security.test.tsx +172 -0
- package/src/components/DataTable/components/__tests__/DataTable.unit.test.tsx +290 -0
- package/src/components/DataTable/components/__tests__/DataTableBody.unit.test.tsx +147 -0
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.unit.test.tsx +182 -0
- package/src/components/DataTable/components/__tests__/DataTableHeader.unit.test.tsx +143 -0
- package/src/components/DataTable/components/__tests__/DataTableModals.unit.test.tsx +123 -0
- package/src/components/DataTable/components/__tests__/EditableRow.unit.test.tsx +660 -0
- package/src/components/DataTable/components/__tests__/EmptyState.unit.test.tsx +256 -0
- package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +498 -0
- package/src/components/DataTable/components/__tests__/FilterRow.unit.test.tsx +112 -0
- package/src/components/DataTable/components/__tests__/FilteringToggle.unit.test.tsx +130 -0
- package/src/components/DataTable/components/__tests__/GroupHeader.unit.test.tsx +172 -0
- package/src/components/DataTable/components/__tests__/GroupingDropdown.unit.test.tsx +222 -0
- package/src/components/DataTable/components/__tests__/ImportModal.unit.test.tsx +780 -0
- package/src/components/DataTable/components/__tests__/LoadingState.unit.test.tsx +65 -0
- package/src/components/DataTable/components/__tests__/PaginationControls.unit.test.tsx +634 -0
- package/src/components/DataTable/components/__tests__/StateComponents.unit.test.tsx +48 -0
- package/src/components/DataTable/components/__tests__/UnifiedTableBody.hierarchical.test.tsx +541 -0
- package/src/components/DataTable/components/__tests__/ViewRowModal.unit.test.tsx +228 -0
- package/src/components/DataTable/components/__tests__/VirtualizedDataTable.unit.test.tsx +568 -0
- package/src/components/DataTable/components/index.ts +17 -0
- package/src/components/DataTable/context/DataTableContext.tsx +97 -0
- package/src/components/DataTable/core/ActionManager.ts +235 -0
- package/src/components/DataTable/core/ColumnFactory.ts +268 -0
- package/src/components/DataTable/core/ColumnManager.ts +205 -0
- package/src/components/DataTable/core/DataManager.ts +188 -0
- package/src/components/DataTable/core/DataTableContext.tsx +182 -0
- package/src/components/DataTable/core/LocalDataAdapter.ts +264 -0
- package/src/components/DataTable/core/PluginRegistry.ts +229 -0
- package/src/components/DataTable/core/StateManager.ts +311 -0
- package/src/components/DataTable/core/__tests__/ActionManager.unit.test.ts +405 -0
- package/src/components/DataTable/core/__tests__/ArchitectureIntegration.unit.test.tsx +445 -0
- package/src/components/DataTable/core/__tests__/ColumnFactory.unit.test.ts +288 -0
- package/src/components/DataTable/core/__tests__/ColumnManager.unit.test.ts +623 -0
- package/src/components/DataTable/core/__tests__/DataManager.unit.test.ts +431 -0
- package/src/components/DataTable/core/__tests__/DataTableContext.unit.test.tsx +433 -0
- package/src/components/DataTable/core/__tests__/LocalDataAdapter.unit.test.ts +422 -0
- package/src/components/DataTable/core/__tests__/PluginRegistry.unit.test.tsx +207 -0
- package/src/components/DataTable/core/__tests__/StateManager.unit.test.ts +278 -0
- package/src/components/DataTable/core/index.ts +8 -0
- package/src/components/DataTable/core/interfaces.ts +338 -0
- package/src/components/DataTable/examples/AutoSizingExample.tsx +180 -0
- package/src/components/DataTable/examples/ColumnSizingComparison.tsx +235 -0
- package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +418 -0
- package/src/components/DataTable/examples/HierarchicalExample.tsx +472 -0
- package/src/components/DataTable/examples/InitialPageSizeExample.tsx +173 -0
- package/src/components/DataTable/examples/PerformanceExample.tsx +502 -0
- package/src/components/DataTable/examples/__tests__/PerformanceExample.unit.test.tsx +281 -0
- package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.unit.test.ts +407 -0
- package/src/components/DataTable/hooks/__tests__/useColumnReordering.unit.test.ts +679 -0
- package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +95 -0
- package/src/components/DataTable/hooks/useColumnReordering.ts +110 -0
- package/src/components/DataTable/hooks/useDataTableState.ts +325 -0
- package/src/components/DataTable/hooks/useHierarchicalState.ts +174 -0
- package/src/components/DataTable/index.ts +70 -0
- package/src/components/DataTable/styles.ts +171 -0
- package/src/components/DataTable/types.ts +475 -0
- package/src/components/DataTable/utils/__tests__/columnSizing.test.ts +237 -0
- package/src/components/DataTable/utils/__tests__/debugTools.unit.test.ts +267 -0
- package/src/components/DataTable/utils/__tests__/errorHandling.unit.test.ts +467 -0
- package/src/components/DataTable/utils/__tests__/exportUtils.unit.test.ts +380 -0
- package/src/components/DataTable/utils/__tests__/flexibleImport.unit.test.ts +233 -0
- package/src/components/DataTable/utils/__tests__/performanceUtils.unit.test.ts +414 -0
- package/src/components/DataTable/utils/columnSizing.ts +125 -0
- package/src/components/DataTable/utils/debugTools.ts +583 -0
- package/src/components/DataTable/utils/errorHandling.ts +494 -0
- package/src/components/DataTable/utils/exportUtils.ts +126 -0
- package/src/components/DataTable/utils/flexibleImport.ts +510 -0
- package/src/components/DataTable/utils/hierarchicalSorting.ts +151 -0
- package/src/components/DataTable/utils/hierarchicalUtils.ts +218 -0
- package/src/components/DataTable/utils/index.ts +1 -0
- package/src/components/DataTable/utils/performanceUtils.ts +351 -0
- package/src/components/Dialog/Dialog.tsx +782 -0
- package/src/components/Dialog/README.md +804 -0
- package/src/components/Dialog/__tests__/Dialog.accessibility.test.tsx +521 -0
- package/src/components/Dialog/__tests__/Dialog.auto-size.example.tsx +157 -0
- package/src/components/Dialog/__tests__/Dialog.enhanced.test.tsx +538 -0
- package/src/components/Dialog/__tests__/Dialog.unit.test.tsx +1373 -0
- package/src/components/Dialog/examples/BasicHtmlTest.tsx +55 -0
- package/src/components/Dialog/examples/DebugHtmlExample.tsx +68 -0
- package/src/components/Dialog/examples/HtmlDialogExample.tsx +202 -0
- package/src/components/Dialog/examples/SimpleHtmlTest.tsx +61 -0
- package/src/components/Dialog/examples/SmartDialogExample.tsx +322 -0
- package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +151 -0
- package/src/components/Dialog/index.ts +12 -0
- package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +611 -0
- package/src/components/Dialog/utils/safeHtml.ts +185 -0
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +312 -0
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.accessibility.test.tsx +517 -0
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.integration.test.tsx +572 -0
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.unit.test.tsx +579 -0
- package/src/components/ErrorBoundary/index.ts +8 -0
- package/src/components/EventSelector/EventSelector.tsx +360 -0
- package/src/components/EventSelector/__tests__/EventSelector.test.tsx +528 -0
- package/src/components/EventSelector/index.ts +3 -0
- package/src/components/EventSelector/types.ts +79 -0
- package/src/components/FileUpload/FileUpload.example.tsx +218 -0
- package/src/components/FileUpload/FileUpload.tsx +237 -0
- package/src/components/FileUpload/__tests__/FileUpload.integration.test.tsx +992 -0
- package/src/components/FileUpload/__tests__/FileUpload.real.test.tsx +927 -0
- package/src/components/FileUpload/__tests__/FileUpload.test.tsx +855 -0
- package/src/components/FileUpload/__tests__/FileUpload.unit.test.tsx +1311 -0
- package/src/components/FileUpload/__tests__/FileUpload.unmocked.test.tsx +937 -0
- package/src/components/FileUpload/index.ts +6 -0
- package/src/components/Footer/Footer.tsx +197 -0
- package/src/components/Footer/__tests__/Footer.accessibility.test.tsx +359 -0
- package/src/components/Footer/__tests__/Footer.integration.test.tsx +353 -0
- package/src/components/Footer/__tests__/Footer.performance.test.tsx +309 -0
- package/src/components/Footer/__tests__/Footer.unit.test.tsx +309 -0
- package/src/components/Footer/__tests__/Footer.visual.test.tsx +335 -0
- package/src/components/Footer/index.ts +17 -0
- package/src/components/Form/Form.tsx +166 -0
- package/src/components/Form/FormErrorSummary.tsx +113 -0
- package/src/components/Form/FormField.tsx +249 -0
- package/src/components/Form/FormFieldset.tsx +127 -0
- package/src/components/Form/FormLiveRegion.tsx +198 -0
- package/src/components/Form/__tests__/Form.accessibility.test.tsx +820 -0
- package/src/components/Form/__tests__/Form.unit.test.tsx +305 -0
- package/src/components/Form/__tests__/FormErrorSummary.unit.test.tsx +285 -0
- package/src/components/Form/__tests__/FormFieldset.unit.test.tsx +241 -0
- package/src/components/Form/index.ts +26 -0
- package/src/components/Header/Header.tsx +301 -0
- package/src/components/Header/__tests__/Header.accessibility.test.tsx +382 -0
- package/src/components/Header/__tests__/Header.comprehensive.test.tsx +509 -0
- package/src/components/Header/__tests__/Header.unit.test.tsx +335 -0
- package/src/components/Header/index.ts +4 -0
- package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +196 -0
- package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +164 -0
- package/src/components/InactivityWarningModal/__tests__/InactivityWarningModal.unit.test.tsx +224 -0
- package/src/components/InactivityWarningModal/index.ts +9 -0
- package/src/components/Input/Input.tsx +201 -0
- package/src/components/Input/__mocks__/Input.tsx +2 -0
- package/src/components/Input/__tests__/Input.accessibility.test.tsx +632 -0
- package/src/components/Input/__tests__/Input.unit.test.tsx +1121 -0
- package/src/components/Input/index.ts +9 -0
- package/src/components/Label/Label.tsx +186 -0
- package/src/components/Label/__tests__/Label.accessibility.test.tsx +239 -0
- package/src/components/Label/__tests__/Label.unit.test.tsx +331 -0
- package/src/components/Label/index.ts +2 -0
- package/src/components/LoadingSpinner/LoadingSpinner.tsx +98 -0
- package/src/components/LoadingSpinner/__tests__/LoadingSpinner.accessibility.test.tsx +116 -0
- package/src/components/LoadingSpinner/__tests__/LoadingSpinner.unit.test.tsx +144 -0
- package/src/components/LoadingSpinner/index.ts +3 -0
- package/src/components/LoginForm/LoginForm.tsx +273 -0
- package/src/components/LoginForm/__tests__/LoginForm.accessibility.test.tsx +201 -0
- package/src/components/LoginForm/__tests__/LoginForm.unit.test.tsx +119 -0
- package/src/components/LoginForm/index.ts +3 -0
- package/src/components/NavigationMenu/NavigationMenu.tsx +698 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.accessibility.test.tsx +378 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.enhanced.test.tsx +768 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.integration.test.tsx +576 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.performance.test.tsx +585 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.real.component.test.tsx +783 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.security.enhanced.test.tsx +810 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.security.test.tsx +494 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.unit.test.tsx +331 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.userWorkflows.test.tsx +347 -0
- package/src/components/NavigationMenu/__tests__/NavigationMenu.workflows.test.tsx +584 -0
- package/src/components/NavigationMenu/index.ts +10 -0
- package/src/components/NavigationMenu/types.ts +85 -0
- package/src/components/OrganisationSelector/OrganisationSelector.tsx +304 -0
- package/src/components/OrganisationSelector/__tests__/OrganisationSelector.unit.test.tsx +664 -0
- package/src/components/OrganisationSelector/index.ts +9 -0
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +699 -0
- package/src/components/PaceAppLayout/README.md +278 -0
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +288 -0
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +889 -0
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +629 -0
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +782 -0
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +904 -0
- package/src/components/PaceAppLayout/index.ts +1 -0
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +221 -0
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.accessibility.test.tsx +463 -0
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.integration.test.tsx +586 -0
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.unit.test.tsx +533 -0
- package/src/components/PaceLoginPage/index.ts +1 -0
- package/src/components/PasswordReset/PasswordChangeForm.tsx +186 -0
- package/src/components/PasswordReset/PasswordResetForm.tsx +201 -0
- package/src/components/PasswordReset/__tests__/PasswordChangeForm.accessibility.test.tsx +408 -0
- package/src/components/PasswordReset/__tests__/PasswordChangeForm.unit.test.tsx +561 -0
- package/src/components/PasswordReset/__tests__/PasswordReset.integration.test.tsx +304 -0
- package/src/components/PasswordReset/__tests__/PasswordResetForm.accessibility.test.tsx +20 -0
- package/src/components/PasswordReset/__tests__/PasswordResetForm.unit.test.tsx +523 -0
- package/src/components/PasswordReset/__tests__/__mocks__/UnifiedAuthProvider.ts +29 -0
- package/src/components/PasswordReset/index.ts +4 -0
- package/src/components/Print/__tests__/Print.comprehensive.test.tsx +331 -0
- package/src/components/PrintButton/PrintButton.tsx +321 -0
- package/src/components/PrintButton/PrintButtonGroup.tsx +84 -0
- package/src/components/PrintButton/PrintToolbar.tsx +94 -0
- package/src/components/PrintButton/__tests__/PrintButton.unit.test.tsx +429 -0
- package/src/components/PrintButton/__tests__/PrintButtonGroup.unit.test.tsx +277 -0
- package/src/components/PrintButton/__tests__/PrintToolbar.unit.test.tsx +264 -0
- package/src/components/PrintButton/examples/PrintButtonShowcase.tsx +438 -0
- package/src/components/PrintButton/index.ts +33 -0
- package/src/components/PrintButton/types.ts +173 -0
- package/src/components/PrintCard/PrintCard.tsx +154 -0
- package/src/components/PrintCard/PrintCardContent.tsx +57 -0
- package/src/components/PrintCard/PrintCardFooter.tsx +60 -0
- package/src/components/PrintCard/PrintCardGrid.tsx +91 -0
- package/src/components/PrintCard/PrintCardHeader.tsx +78 -0
- package/src/components/PrintCard/PrintCardImage.tsx +81 -0
- package/src/components/PrintCard/__tests__/PrintCard.unit.test.tsx +233 -0
- package/src/components/PrintCard/__tests__/PrintCardContent.test.tsx +284 -0
- package/src/components/PrintCard/__tests__/PrintCardGrid.unit.test.tsx +214 -0
- package/src/components/PrintCard/__tests__/PrintCardImage.unit.test.tsx +264 -0
- package/src/components/PrintCard/examples/PrintCardShowcase.tsx +239 -0
- package/src/components/PrintCard/index.ts +34 -0
- package/src/components/PrintCard/types.ts +171 -0
- package/src/components/PrintDataTable/PrintDataTable.tsx +215 -0
- package/src/components/PrintDataTable/PrintTableGroup.tsx +90 -0
- package/src/components/PrintDataTable/PrintTableRow.tsx +76 -0
- package/src/components/PrintDataTable/__tests__/PrintDataTable.unit.test.tsx +361 -0
- package/src/components/PrintDataTable/__tests__/PrintTableGroup.unit.test.tsx +314 -0
- package/src/components/PrintDataTable/__tests__/PrintTableRow.unit.test.tsx +362 -0
- package/src/components/PrintDataTable/index.ts +25 -0
- package/src/components/PrintDataTable/types.ts +67 -0
- package/src/components/PrintFooter/PrintFooter.tsx +183 -0
- package/src/components/PrintFooter/PrintFooterContent.tsx +71 -0
- package/src/components/PrintFooter/PrintFooterInfo.tsx +86 -0
- package/src/components/PrintFooter/PrintPageNumber.tsx +90 -0
- package/src/components/PrintFooter/__tests__/PrintFooter.unit.test.tsx +500 -0
- package/src/components/PrintFooter/__tests__/PrintFooterContent.unit.test.tsx +321 -0
- package/src/components/PrintFooter/__tests__/PrintFooterInfo.unit.test.tsx +335 -0
- package/src/components/PrintFooter/__tests__/PrintPageNumber.unit.test.tsx +340 -0
- package/src/components/PrintFooter/examples/PrintFooterShowcase.tsx +390 -0
- package/src/components/PrintFooter/index.ts +30 -0
- package/src/components/PrintFooter/types.ts +149 -0
- package/src/components/PrintGrid/PrintGrid.tsx +180 -0
- package/src/components/PrintGrid/PrintGridBreakpoint.tsx +109 -0
- package/src/components/PrintGrid/PrintGridContainer.tsx +128 -0
- package/src/components/PrintGrid/PrintGridItem.tsx +220 -0
- package/src/components/PrintGrid/__tests__/PrintGrid.unit.test.tsx +340 -0
- package/src/components/PrintGrid/__tests__/PrintGridBreakpoint.unit.test.tsx +261 -0
- package/src/components/PrintGrid/__tests__/PrintGridContainer.unit.test.tsx +338 -0
- package/src/components/PrintGrid/__tests__/PrintGridItem.unit.test.tsx +338 -0
- package/src/components/PrintGrid/examples/PrintGridShowcase.tsx +359 -0
- package/src/components/PrintGrid/index.ts +31 -0
- package/src/components/PrintGrid/types.ts +159 -0
- package/src/components/PrintHeader/PrintCoverHeader.tsx +230 -0
- package/src/components/PrintHeader/PrintHeader.tsx +150 -0
- package/src/components/PrintHeader/__tests__/PrintCoverHeader.unit.test.tsx +309 -0
- package/src/components/PrintHeader/__tests__/PrintHeader.unit.test.tsx +202 -0
- package/src/components/PrintHeader/index.ts +17 -0
- package/src/components/PrintHeader/types.ts +42 -0
- package/src/components/PrintLayout/PrintLayout.tsx +122 -0
- package/src/components/PrintLayout/PrintLayoutContext.tsx +66 -0
- package/src/components/PrintLayout/PrintPageBreak.tsx +52 -0
- package/src/components/PrintLayout/__tests__/PrintLayout.unit.test.tsx +238 -0
- package/src/components/PrintLayout/examples/PrintShowcase.tsx +230 -0
- package/src/components/PrintLayout/index.ts +19 -0
- package/src/components/PrintLayout/types.ts +37 -0
- package/src/components/PrintPageBreak/PrintPageBreak.tsx +120 -0
- package/src/components/PrintPageBreak/PrintPageBreakGroup.tsx +90 -0
- package/src/components/PrintPageBreak/PrintPageBreakIndicator.tsx +112 -0
- package/src/components/PrintPageBreak/__tests__/PrintPageBreak.unit.test.tsx +263 -0
- package/src/components/PrintPageBreak/__tests__/PrintPageBreakGroup.unit.test.tsx +239 -0
- package/src/components/PrintPageBreak/__tests__/PrintPageBreakIndicator.unit.test.tsx +235 -0
- package/src/components/PrintPageBreak/examples/PrintPageBreakShowcase.tsx +279 -0
- package/src/components/PrintPageBreak/index.ts +23 -0
- package/src/components/PrintPageBreak/types.ts +94 -0
- package/src/components/PrintSection/PrintColumn.tsx +104 -0
- package/src/components/PrintSection/PrintDivider.tsx +101 -0
- package/src/components/PrintSection/PrintSection.tsx +129 -0
- package/src/components/PrintSection/PrintSectionContent.tsx +75 -0
- package/src/components/PrintSection/PrintSectionHeader.tsx +97 -0
- package/src/components/PrintSection/__tests__/PrintColumn.unit.test.tsx +385 -0
- package/src/components/PrintSection/__tests__/PrintDivider.unit.test.tsx +373 -0
- package/src/components/PrintSection/__tests__/PrintSection.unit.test.tsx +390 -0
- package/src/components/PrintSection/__tests__/PrintSectionContent.unit.test.tsx +321 -0
- package/src/components/PrintSection/__tests__/PrintSectionHeader.unit.test.tsx +334 -0
- package/src/components/PrintSection/examples/PrintSectionShowcase.tsx +258 -0
- package/src/components/PrintSection/index.ts +33 -0
- package/src/components/PrintSection/types.ts +155 -0
- package/src/components/PrintText/PrintText.tsx +116 -0
- package/src/components/PrintText/__tests__/PrintText.unit.test.tsx +351 -0
- package/src/components/PrintText/index.ts +16 -0
- package/src/components/PrintText/types.ts +24 -0
- package/src/components/Progress/Progress.tsx +116 -0
- package/src/components/Progress/__tests__/Progress.accessibility.test.tsx +240 -0
- package/src/components/Progress/__tests__/Progress.unit.test.tsx +242 -0
- package/src/components/Progress/index.ts +3 -0
- package/src/components/PublicLayout/EventLogo.tsx +287 -0
- package/src/components/PublicLayout/PublicErrorBoundary.tsx +279 -0
- package/src/components/PublicLayout/PublicLoadingSpinner.tsx +208 -0
- package/src/components/PublicLayout/PublicPageContextChecker.tsx +130 -0
- package/src/components/PublicLayout/PublicPageDebugger.tsx +104 -0
- package/src/components/PublicLayout/PublicPageDiagnostic.tsx +162 -0
- package/src/components/PublicLayout/PublicPageFooter.tsx +124 -0
- package/src/components/PublicLayout/PublicPageHeader.tsx +178 -0
- package/src/components/PublicLayout/PublicPageLayout.tsx +232 -0
- package/src/components/PublicLayout/PublicPageProvider.tsx +137 -0
- package/src/components/PublicLayout/__tests__/EventLogo.test.tsx +761 -0
- package/src/components/PublicLayout/__tests__/PublicErrorBoundary.simplified.test.tsx +228 -0
- package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +228 -0
- package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +459 -0
- package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +362 -0
- package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +522 -0
- package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +599 -0
- package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +513 -0
- package/src/components/PublicLayout/index.ts +51 -0
- package/src/components/RBAC/PagePermissionGuard.tsx +274 -0
- package/src/components/RBAC/RBACGuard.tsx +143 -0
- package/src/components/RBAC/RBACProvider.tsx +186 -0
- package/src/components/RBAC/RoleBasedContent.tsx +129 -0
- package/src/components/RBAC/__tests__/PagePermissionGuard.unit.test.tsx +674 -0
- package/src/components/RBAC/__tests__/RBAC.integration.test.tsx +573 -0
- package/src/components/RBAC/__tests__/RBACGuard.unit.test.tsx +467 -0
- package/src/components/RBAC/__tests__/RBACProvider.accessibility.test.tsx +475 -0
- package/src/components/RBAC/__tests__/RBACProvider.advanced.test.tsx +569 -0
- package/src/components/RBAC/__tests__/RBACProvider.integration.test.tsx +352 -0
- package/src/components/RBAC/__tests__/RBACProvider.unit.test.tsx +128 -0
- package/src/components/RBAC/__tests__/RoleBasedContent.unit.test.tsx +657 -0
- package/src/components/RBAC/index.ts +23 -0
- package/src/components/Select/Select.tsx +654 -0
- package/src/components/Select/__tests__/SearchableSelect.unit.test.tsx +437 -0
- package/src/components/Select/__tests__/Select.accessibility.test.tsx +1202 -0
- package/src/components/Select/__tests__/Select.actual.test.tsx +774 -0
- package/src/components/Select/__tests__/Select.comprehensive.test.tsx +837 -0
- package/src/components/Select/__tests__/Select.enhanced.test.tsx +1101 -0
- package/src/components/Select/__tests__/Select.integration.test.tsx +772 -0
- package/src/components/Select/__tests__/Select.performance.test.tsx +695 -0
- package/src/components/Select/__tests__/Select.real-world.test.tsx +1046 -0
- package/src/components/Select/__tests__/Select.search-algorithms.test.tsx +968 -0
- package/src/components/Select/__tests__/Select.unit.test.tsx +647 -0
- package/src/components/Select/__tests__/Select.utils.test.tsx +890 -0
- package/src/components/Select/index.ts +1 -0
- package/src/components/SuperAdminGuard.tsx +116 -0
- package/src/components/Table/Table.tsx +222 -0
- package/src/components/Table/__tests__/Table.accessibility.test.tsx +233 -0
- package/src/components/Table/__tests__/Table.unit.test.tsx +235 -0
- package/src/components/Table/index.ts +11 -0
- package/src/components/Toast/Toast.tsx +339 -0
- package/src/components/Toast/__tests__/Toast.accessibility.test.tsx +238 -0
- package/src/components/Toast/__tests__/Toast.integration.test.tsx +699 -0
- package/src/components/Toast/__tests__/Toast.unit.test.tsx +750 -0
- package/src/components/Toast/index.ts +14 -0
- package/src/components/Tooltip/Tooltip.tsx +167 -0
- package/src/components/Tooltip/__tests__/Tooltip.accessibility.test.tsx +121 -0
- package/src/components/Tooltip/__tests__/Tooltip.unit.test.tsx +185 -0
- package/src/components/Tooltip/index.ts +7 -0
- package/src/components/UserMenu/UserMenu.tsx +243 -0
- package/src/components/UserMenu/__tests__/UserMenu.accessibility.test.tsx +139 -0
- package/src/components/UserMenu/__tests__/UserMenu.integration.test.tsx +188 -0
- package/src/components/UserMenu/__tests__/UserMenu.unit.test.tsx +458 -0
- package/src/components/UserMenu/index.ts +3 -0
- package/src/components/__tests__/EdgeCaseTesting.enhanced.test.tsx +523 -0
- package/src/components/__tests__/ErrorTesting.enhanced.test.tsx +455 -0
- package/src/components/__tests__/SuperAdminGuard.test.tsx +456 -0
- package/src/components/__tests__/SuperAdminGuard.unit.test.tsx +456 -0
- package/src/components/examples/PermissionExample.tsx +150 -0
- package/src/components/examples/__tests__/PermissionExample.unit.test.tsx +360 -0
- package/src/components/index.ts +434 -0
- package/src/components.ts +19 -0
- package/src/constants/performance.ts +14 -0
- package/src/examples/CorrectPublicPageImplementation.tsx +301 -0
- package/src/examples/PublicEventPage.tsx +274 -0
- package/src/examples/PublicPageApp.tsx +308 -0
- package/src/examples/PublicPageUsageExample.tsx +216 -0
- package/src/fonts/georama-italic.woff2 +0 -0
- package/src/fonts/georama.woff2 +0 -0
- package/src/fonts/open-sans-italic.woff2 +0 -0
- package/src/fonts/open-sans.woff2 +0 -0
- package/src/fonts/reddit-mono.woff2 +0 -0
- package/src/hooks/__tests__/hooks.integration.test.tsx +575 -0
- package/src/hooks/__tests__/useApiFetch.unit.test.ts +115 -0
- package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +133 -0
- package/src/hooks/__tests__/useDebounce.unit.test.ts +82 -0
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +293 -0
- package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +385 -0
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +286 -0
- package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +838 -0
- package/src/hooks/__tests__/usePermissionCache.unit.test.ts +627 -0
- package/src/hooks/__tests__/useRBAC.unit.test.ts +903 -0
- package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +537 -0
- package/src/hooks/__tests__/useToast.unit.test.tsx +62 -0
- package/src/hooks/__tests__/useZodForm.unit.test.tsx +37 -0
- package/src/hooks/index.ts +56 -0
- package/src/hooks/public/__tests__/usePublicEvent.test.tsx +397 -0
- package/src/hooks/public/__tests__/usePublicEventLogo.test.tsx +690 -0
- package/src/hooks/public/__tests__/usePublicRouteParams.test.tsx +449 -0
- package/src/hooks/public/index.ts +34 -0
- package/src/hooks/public/usePublicEvent.ts +261 -0
- package/src/hooks/public/usePublicEventLogo.ts +285 -0
- package/src/hooks/public/usePublicRouteParams.ts +259 -0
- package/src/hooks/useAppConfig.ts +94 -0
- package/src/hooks/useComponentPerformance.ts +39 -0
- package/src/hooks/useDataTablePerformance.ts +387 -0
- package/src/hooks/useDataTableState.ts +110 -0
- package/src/hooks/useDebounce.ts +18 -0
- package/src/hooks/useFocusManagement.ts +161 -0
- package/src/hooks/useFocusTrap.ts +155 -0
- package/src/hooks/useInactivityTracker.ts +372 -0
- package/src/hooks/useIsMobile.ts +42 -0
- package/src/hooks/useKeyboardShortcuts.ts +237 -0
- package/src/hooks/useOrganisationPermissions.ts +208 -0
- package/src/hooks/useOrganisationSecurity.ts +262 -0
- package/src/hooks/usePerformanceMonitor.ts +128 -0
- package/src/hooks/usePermissionCache.ts +455 -0
- package/src/hooks/useRBAC.ts +262 -0
- package/src/hooks/useSecureDataAccess.ts +586 -0
- package/src/hooks/useStorage.ts +274 -0
- package/src/hooks/useToast.ts +242 -0
- package/src/hooks/useZodForm.ts +28 -0
- package/src/index.ts +200 -0
- package/src/providers/AuthProvider.tsx +369 -0
- package/src/providers/EventProvider.tsx +324 -0
- package/src/providers/InactivityProvider.tsx +238 -0
- package/src/providers/OrganisationProvider.tsx +588 -0
- package/src/providers/RBACProvider.tsx +622 -0
- package/src/providers/UnifiedAuthProvider.tsx +327 -0
- package/src/providers/__tests__/EventProvider.unit.test.tsx +768 -0
- package/src/providers/__tests__/OrganisationProvider.basic.test.tsx +116 -0
- package/src/providers/__tests__/OrganisationProvider.unit.test.tsx +1312 -0
- package/src/providers/__tests__/UnifiedAuthProvider.inactivity.test.tsx +601 -0
- package/src/providers/__tests__/UnifiedAuthProvider.unit.test.tsx +675 -0
- package/src/providers/__tests__/index.unit.test.ts +78 -0
- package/src/providers/index.ts +15 -0
- package/src/rbac/README.md +885 -0
- package/src/rbac/__tests__/PagePermissionGuard.test.tsx +673 -0
- package/src/rbac/__tests__/README.md +170 -0
- package/src/rbac/__tests__/RoleBasedRouter.test.tsx +709 -0
- package/src/rbac/__tests__/TestContext.tsx +72 -0
- package/src/rbac/__tests__/__mocks__/cache.ts +144 -0
- package/src/rbac/__tests__/__mocks__/supabase.ts +152 -0
- package/src/rbac/__tests__/adapters-hooks-comprehensive.test.tsx +782 -0
- package/src/rbac/__tests__/adapters-hooks.test.tsx +561 -0
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +963 -0
- package/src/rbac/__tests__/adapters.test.tsx +444 -0
- package/src/rbac/__tests__/api.test.ts +620 -0
- package/src/rbac/__tests__/audit-observability-comprehensive.test.ts +792 -0
- package/src/rbac/__tests__/audit-observability.test.ts +549 -0
- package/src/rbac/__tests__/audit.test.ts +616 -0
- package/src/rbac/__tests__/build-contract-compliance-simple.test.ts +230 -0
- package/src/rbac/__tests__/cache-invalidation-comprehensive.test.ts +889 -0
- package/src/rbac/__tests__/cache-invalidation.test.ts +457 -0
- package/src/rbac/__tests__/cache.test.ts +458 -0
- package/src/rbac/__tests__/components-navigation-guard.enhanced.test.tsx +859 -0
- package/src/rbac/__tests__/components-navigation-guard.test.tsx +895 -0
- package/src/rbac/__tests__/components-navigation-provider.test.tsx +692 -0
- package/src/rbac/__tests__/components-page-permission-guard.test.tsx +673 -0
- package/src/rbac/__tests__/components-page-permission-provider.test.tsx +614 -0
- package/src/rbac/__tests__/components-permission-enforcer.enhanced.fixed.test.tsx +836 -0
- package/src/rbac/__tests__/components-permission-enforcer.enhanced.test.tsx +837 -0
- package/src/rbac/__tests__/components-permission-enforcer.test.tsx +825 -0
- package/src/rbac/__tests__/components-role-based-router.test.tsx +709 -0
- package/src/rbac/__tests__/components-secure-data-provider.test.tsx +607 -0
- package/src/rbac/__tests__/config.test.ts +583 -0
- package/src/rbac/__tests__/core-logic-unit.test.ts +190 -0
- package/src/rbac/__tests__/core-permission-logic-comprehensive.test.ts +1467 -0
- package/src/rbac/__tests__/core-permission-logic-fixed.test.ts +151 -0
- package/src/rbac/__tests__/core-permission-logic-simple.test.ts +968 -0
- package/src/rbac/__tests__/core-permission-logic.test.ts +966 -0
- package/src/rbac/__tests__/edge-cases-comprehensive.test.ts +988 -0
- package/src/rbac/__tests__/edge-cases.test.ts +654 -0
- package/src/rbac/__tests__/engine.test.ts +361 -0
- package/src/rbac/__tests__/engine.unit.test.ts +361 -0
- package/src/rbac/__tests__/hooks.enhanced.test.tsx +979 -0
- package/src/rbac/__tests__/hooks.fixed.test.tsx +475 -0
- package/src/rbac/__tests__/hooks.test.tsx +385 -0
- package/src/rbac/__tests__/index.test.ts +269 -0
- package/src/rbac/__tests__/integration.enhanced.test.tsx +824 -0
- package/src/rbac/__tests__/page-permission-guard-super-admin.test.tsx +261 -0
- package/src/rbac/__tests__/performance.enhanced.test.tsx +724 -0
- package/src/rbac/__tests__/permissions.test.ts +383 -0
- package/src/rbac/__tests__/requires-event.test.ts +330 -0
- package/src/rbac/__tests__/scope-isolation-comprehensive.test.ts +1349 -0
- package/src/rbac/__tests__/scope-isolation.test.ts +755 -0
- package/src/rbac/__tests__/secure-client-rls-comprehensive.test.ts +592 -0
- package/src/rbac/__tests__/secure-client-rls.test.ts +377 -0
- package/src/rbac/__tests__/security.test.ts +296 -0
- package/src/rbac/__tests__/setup.ts +228 -0
- package/src/rbac/__tests__/test-utils-enhanced.tsx +400 -0
- package/src/rbac/__tests__/types.test.ts +685 -0
- package/src/rbac/adapters.tsx +726 -0
- package/src/rbac/api.ts +337 -0
- package/src/rbac/audit-enhanced.ts +339 -0
- package/src/rbac/audit.ts +338 -0
- package/src/rbac/cache.ts +213 -0
- package/src/rbac/components/EnhancedNavigationMenu.tsx +294 -0
- package/src/rbac/components/NavigationGuard.tsx +294 -0
- package/src/rbac/components/NavigationProvider.tsx +314 -0
- package/src/rbac/components/PagePermissionGuard.tsx +430 -0
- package/src/rbac/components/PagePermissionProvider.tsx +274 -0
- package/src/rbac/components/PermissionEnforcer.tsx +307 -0
- package/src/rbac/components/RoleBasedRouter.tsx +425 -0
- package/src/rbac/components/SecureDataProvider.tsx +319 -0
- package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +631 -0
- package/src/rbac/components/__tests__/NavigationProvider.test.tsx +667 -0
- package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +647 -0
- package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +496 -0
- package/src/rbac/components/index.ts +64 -0
- package/src/rbac/config.ts +133 -0
- package/src/rbac/docs/event-based-apps.md +285 -0
- package/src/rbac/engine.ts +1026 -0
- package/src/rbac/eslint-rules.js +285 -0
- package/src/rbac/examples/CompleteRBACExample.tsx +323 -0
- package/src/rbac/examples/EventBasedApp.tsx +238 -0
- package/src/rbac/hooks.ts +555 -0
- package/src/rbac/index.ts +114 -0
- package/src/rbac/permissions.ts +293 -0
- package/src/rbac/secureClient.ts +244 -0
- package/src/rbac/security.ts +346 -0
- package/src/rbac/testing/__tests__/index.test.tsx +342 -0
- package/src/rbac/testing/index.tsx +340 -0
- package/src/rbac/types.ts +341 -0
- package/src/rbac/utils/__tests__/eventContext.test.ts +428 -0
- package/src/rbac/utils/__tests__/eventContext.unit.test.ts +428 -0
- package/src/rbac/utils/eventContext.ts +83 -0
- package/src/styles/__tests__/styles.unit.test.ts +164 -0
- package/src/styles/core.css +401 -0
- package/src/styles/index.ts +51 -0
- package/src/test-dom-cleanup.test.tsx +38 -0
- package/src/theming/__tests__/README.md +335 -0
- package/src/theming/__tests__/runtime.accessibility.test.ts +474 -0
- package/src/theming/__tests__/runtime.error.test.ts +616 -0
- package/src/theming/__tests__/runtime.integration.test.ts +376 -0
- package/src/theming/__tests__/runtime.performance.test.ts +411 -0
- package/src/theming/__tests__/runtime.unit.test.ts +470 -0
- package/src/theming/runtime.ts +187 -0
- package/src/types/__tests__/database.unit.test.ts +489 -0
- package/src/types/__tests__/guards.unit.test.ts +146 -0
- package/src/types/__tests__/index.unit.test.ts +77 -0
- package/src/types/__tests__/organisation.unit.test.ts +713 -0
- package/src/types/__tests__/rbac.unit.test.ts +621 -0
- package/src/types/__tests__/security.unit.test.ts +347 -0
- package/src/types/__tests__/supabase.unit.test.ts +658 -0
- package/src/types/__tests__/theme.unit.test.ts +218 -0
- package/src/types/__tests__/unified.unit.test.ts +537 -0
- package/src/types/__tests__/validation.unit.test.ts +616 -0
- package/src/types/database.ts +472 -0
- package/src/types/guards.ts +30 -0
- package/src/types/index.ts +25 -0
- package/src/types/organisation.ts +184 -0
- package/src/types/security.ts +70 -0
- package/src/types/supabase.ts +166 -0
- package/src/types/theme.ts +6 -0
- package/src/types/unified.ts +262 -0
- package/src/types/validation.ts +164 -0
- package/src/types/vitest-globals.d.ts +43 -0
- package/src/utils/__mocks__/supabaseMock.ts +75 -0
- package/src/utils/__mocks__/supabaseMock.tsx +198 -0
- package/src/utils/__tests__/appConfig.unit.test.ts +55 -0
- package/src/utils/__tests__/appNameResolver.unit.test.ts +137 -0
- package/src/utils/__tests__/audit.unit.test.ts +69 -0
- package/src/utils/__tests__/auth-utils.unit.test.ts +70 -0
- package/src/utils/__tests__/bundleAnalysis.unit.test.ts +317 -0
- package/src/utils/__tests__/cn.unit.test.ts +34 -0
- package/src/utils/__tests__/deviceFingerprint.unit.test.ts +480 -0
- package/src/utils/__tests__/dynamicUtils.unit.test.ts +322 -0
- package/src/utils/__tests__/formatDate.unit.test.ts +109 -0
- package/src/utils/__tests__/formatting.unit.test.ts +66 -0
- package/src/utils/__tests__/index.unit.test.ts +251 -0
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +309 -0
- package/src/utils/__tests__/organisationContext.unit.test.ts +192 -0
- package/src/utils/__tests__/performanceBudgets.unit.test.ts +259 -0
- package/src/utils/__tests__/permissionTypes.unit.test.ts +250 -0
- package/src/utils/__tests__/permissionUtils.unit.test.ts +362 -0
- package/src/utils/__tests__/sanitization.unit.test.ts +346 -0
- package/src/utils/__tests__/schemaUtils.unit.test.ts +441 -0
- package/src/utils/__tests__/secureDataAccess.unit.test.ts +334 -0
- package/src/utils/__tests__/secureErrors.unit.test.ts +377 -0
- package/src/utils/__tests__/secureStorage.unit.test.ts +293 -0
- package/src/utils/__tests__/security.unit.test.ts +127 -0
- package/src/utils/__tests__/securityMonitor.unit.test.ts +280 -0
- package/src/utils/__tests__/sessionTracking.unit.test.ts +370 -0
- package/src/utils/__tests__/validation.unit.test.ts +84 -0
- package/src/utils/__tests__/validationUtils.unit.test.ts +571 -0
- package/src/utils/appConfig.ts +47 -0
- package/src/utils/appIdResolver.ts +130 -0
- package/src/utils/appNameResolver.ts +190 -0
- package/src/utils/audit.ts +127 -0
- package/src/utils/auth-utils.ts +96 -0
- package/src/utils/bundleAnalysis.ts +129 -0
- package/src/utils/cn.ts +7 -0
- package/src/utils/debugLogger.ts +46 -0
- package/src/utils/deviceFingerprint.ts +215 -0
- package/src/utils/dynamicUtils.ts +105 -0
- package/src/utils/formatting.ts +77 -0
- package/src/utils/index.ts +145 -0
- package/src/utils/lazyLoad.tsx +44 -0
- package/src/utils/organisationContext.ts +135 -0
- package/src/utils/performanceBenchmark.ts +64 -0
- package/src/utils/performanceBudgets.ts +111 -0
- package/src/utils/permissionTypes.ts +37 -0
- package/src/utils/permissionUtils.ts +31 -0
- package/src/utils/print/PrintDataProcessor.ts +390 -0
- package/src/utils/print/__tests__/PrintDataProcessor.unit.test.ts +219 -0
- package/src/utils/print/__tests__/usePrintOptimization.unit.test.tsx +353 -0
- package/src/utils/print/examples/PrintUtilitiesShowcase.tsx +397 -0
- package/src/utils/print/index.ts +29 -0
- package/src/utils/print/types.ts +196 -0
- package/src/utils/print/usePrintOptimization.ts +272 -0
- package/src/utils/sanitization.ts +264 -0
- package/src/utils/schemaUtils.ts +37 -0
- package/src/utils/secureDataAccess.ts +361 -0
- package/src/utils/secureErrors.ts +79 -0
- package/src/utils/secureStorage.ts +244 -0
- package/src/utils/security.ts +156 -0
- package/src/utils/securityMonitor.ts +45 -0
- package/src/utils/sessionTracking.ts +170 -0
- package/src/utils/storage/README.md +348 -0
- package/src/utils/storage/__tests__/config.unit.test.ts +206 -0
- package/src/utils/storage/__tests__/helpers.unit.test.ts +646 -0
- package/src/utils/storage/__tests__/index.unit.test.ts +167 -0
- package/src/utils/storage/__tests__/types.unit.test.ts +441 -0
- package/src/utils/storage/config.ts +100 -0
- package/src/utils/storage/helpers.ts +359 -0
- package/src/utils/storage/index.ts +36 -0
- package/src/utils/storage/types.ts +90 -0
- package/src/utils/validation.ts +111 -0
- package/src/utils/validationUtils.ts +120 -0
- package/src/validation/__tests__/common.unit.test.ts +101 -0
- package/src/validation/__tests__/csrf.unit.test.ts +302 -0
- package/src/validation/__tests__/passwordSchema.unit.test.ts +98 -0
- package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +466 -0
- package/src/validation/common.ts +53 -0
- package/src/validation/csrf.ts +214 -0
- package/src/validation/index.ts +43 -0
- package/src/validation/passwordSchema.ts +125 -0
- package/src/validation/sanitization.ts +96 -0
- package/src/validation/schemaUtils.ts +42 -0
- package/src/validation/sqlInjectionProtection.ts +242 -0
- package/src/validation/user.ts +34 -0
package/docs/INDEX.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# PACE Core Documentation Index
|
|
2
|
+
|
|
3
|
+
> **📚 Complete Documentation Reference** | [Quick Start](./getting-started/quick-start.md) | [API Reference](./api-reference/components.md) | [Troubleshooting](./troubleshooting/README.md)
|
|
4
|
+
|
|
5
|
+
Complete index of all PACE Core documentation organized by topic and use case.
|
|
6
|
+
|
|
7
|
+
## 🚀 Getting Started
|
|
8
|
+
|
|
9
|
+
### First Time Users
|
|
10
|
+
- **[Installation](./getting-started/installation.md)** - Package installation and basic setup
|
|
11
|
+
- **[Quick Start](./getting-started/quick-start.md)** - Build your first app in 10 minutes
|
|
12
|
+
- **[Examples](./getting-started/examples/README.md)** - Complete working examples
|
|
13
|
+
|
|
14
|
+
### Configuration
|
|
15
|
+
- **[Vite Configuration](./consuming-app-vite-config.md)** - **CRITICAL** Tailwind v4 setup
|
|
16
|
+
- **[Environment Setup](./getting-started/environment-setup.md)** - Environment variables
|
|
17
|
+
- **[Build Configuration](./getting-started/build-configuration.md)** - Build tool setup
|
|
18
|
+
|
|
19
|
+
## 🏗️ Core Features
|
|
20
|
+
|
|
21
|
+
### Authentication & Security
|
|
22
|
+
- **[Authentication Overview](./core-concepts/authentication.md)** - User management and sessions
|
|
23
|
+
- **[RBAC System](./rbac/README.md)** - Role-based access control
|
|
24
|
+
- **[Security Best Practices](./best-practices/security.md)** - Security guidelines
|
|
25
|
+
- **[Permission Enforcement](./implementation-guides/permission-enforcement.md)** - Implementing permissions
|
|
26
|
+
|
|
27
|
+
### Data Management
|
|
28
|
+
- **[Data Tables](./implementation-guides/data-tables.md)** - Interactive data management
|
|
29
|
+
- **[Forms](./implementation-guides/forms.md)** - Form handling and validation
|
|
30
|
+
- **[Event Management](./core-concepts/event-management.md)** - Event selection and context
|
|
31
|
+
- **[Organisation Management](./core-concepts/organisation-management.md)** - Multi-tenant support
|
|
32
|
+
- **[Public Pages](./implementation-guides/public-pages.md)** - **NEW** Public pages without authentication
|
|
33
|
+
|
|
34
|
+
### UI & Layout
|
|
35
|
+
- **[Components API](./api-reference/components.md)** - Complete component reference
|
|
36
|
+
- **[App Layout](./implementation-guides/app-layout.md)** - Application structure
|
|
37
|
+
- **[Navigation](./implementation-guides/navigation.md)** - Navigation patterns
|
|
38
|
+
- **[Print Components](./print-components/README.md)** - Print-optimized layouts
|
|
39
|
+
|
|
40
|
+
## 🎨 Styling & Theming
|
|
41
|
+
|
|
42
|
+
### Design System
|
|
43
|
+
- **[Styling Overview](./styles/README.md)** - Complete design system
|
|
44
|
+
- **[Color Palettes](./styles/color-palettes.md)** - Main, secondary, accent colors
|
|
45
|
+
- **[Typography](./styles/typography.md)** - Font families and text styles
|
|
46
|
+
- **[Component Styling](./styles/component-styling.md)** - How components are styled
|
|
47
|
+
|
|
48
|
+
### Customization
|
|
49
|
+
- **[Custom Themes](./styles/custom-themes.md)** - Creating custom themes
|
|
50
|
+
- **[Dynamic Theming](./styles/dynamic-theming.md)** - Runtime theme switching
|
|
51
|
+
- **[CSS Architecture](./styles/css-architecture.md)** - Single-file CSS approach
|
|
52
|
+
|
|
53
|
+
## 🔧 API Reference
|
|
54
|
+
|
|
55
|
+
### Components
|
|
56
|
+
- **[UI Components](./api-reference/components.md)** - Button, Card, Input, etc.
|
|
57
|
+
- **[Data Components](./api-reference/components.md#data-table)** - DataTable, Form, etc.
|
|
58
|
+
- **[Layout Components](./api-reference/components.md#layout-components)** - PaceAppLayout, Header, etc.
|
|
59
|
+
- **[Print Components](./api-reference/components.md#print-components)** - Print-optimized components
|
|
60
|
+
|
|
61
|
+
### Hooks & Utilities
|
|
62
|
+
- **[React Hooks](./api-reference/hooks.md)** - useUnifiedAuth, useCan, etc.
|
|
63
|
+
- **[RBAC Hooks](./rbac/README.md#hooks)** - Permission checking hooks
|
|
64
|
+
- **[Utilities](./api-reference/utilities.md)** - Helper functions
|
|
65
|
+
|
|
66
|
+
## 🎯 Best Practices
|
|
67
|
+
|
|
68
|
+
### Development
|
|
69
|
+
- **[Best Practices Overview](./best-practices/README.md)** - Comprehensive guide
|
|
70
|
+
- **[Performance](./best-practices/performance.md)** - Optimization strategies
|
|
71
|
+
- **[Testing](./best-practices/testing.md)** - Testing patterns
|
|
72
|
+
- **[Code Quality](./best-practices/README.md#code-quality)** - TypeScript, organization
|
|
73
|
+
|
|
74
|
+
### Production
|
|
75
|
+
- **[Deployment](./best-practices/deployment.md)** - Production deployment
|
|
76
|
+
- **[Security](./best-practices/security.md)** - Security guidelines
|
|
77
|
+
- **[Monitoring](./best-practices/README.md#monitoring)** - Performance monitoring
|
|
78
|
+
|
|
79
|
+
## 🐛 Troubleshooting
|
|
80
|
+
|
|
81
|
+
### Common Issues
|
|
82
|
+
- **[Troubleshooting Overview](./troubleshooting/README.md)** - Complete guide
|
|
83
|
+
- **[Common Issues](./troubleshooting/common-issues.md)** - Frequent problems
|
|
84
|
+
- **[Styling Issues](./troubleshooting/styling-issues.md)** - Component styling
|
|
85
|
+
- **[Authentication Issues](./troubleshooting/authentication-issues.md)** - Auth problems
|
|
86
|
+
|
|
87
|
+
### Debugging
|
|
88
|
+
- **[Debugging Guide](./troubleshooting/debugging.md)** - Debug techniques
|
|
89
|
+
- **[Performance Issues](./troubleshooting/performance-issues.md)** - Performance problems
|
|
90
|
+
- **[Build Issues](./troubleshooting/build-issues.md)** - Build and deployment
|
|
91
|
+
|
|
92
|
+
## 🔄 Migration & Updates
|
|
93
|
+
|
|
94
|
+
### Version Updates
|
|
95
|
+
- **[Migration Overview](./migration/README.md)** - Upgrade guides
|
|
96
|
+
- **[v0.4.17 Source Path Fix](./migration/v0.4.17-source-path-fix.md)** - **CRITICAL** Fix
|
|
97
|
+
- **[v0.4.16 CSS-First Migration](./migration/v0.4.16-css-first-approach.md)** - Simplified config
|
|
98
|
+
- **[v0.4.15 Tailwind Scanning](./migration/v0.4.15-tailwind-scanning.md)** - Legacy approach
|
|
99
|
+
|
|
100
|
+
### Breaking Changes
|
|
101
|
+
- **[v0.x to v1.x](./migration/v0-to-v1.md)** - Major version upgrade
|
|
102
|
+
- **[RBAC Migration](./migration/rbac-migration.md)** - RBAC system updates
|
|
103
|
+
- **[Component Updates](./migration/component-updates.md)** - Component API changes
|
|
104
|
+
|
|
105
|
+
## 📖 Core Concepts
|
|
106
|
+
|
|
107
|
+
### Understanding PACE Core
|
|
108
|
+
- **[Architecture](./architecture/README.md)** - System architecture
|
|
109
|
+
- **[Design Principles](./core-concepts/design-principles.md)** - Core design philosophy
|
|
110
|
+
- **[Security Model](./core-concepts/security-model.md)** - Security architecture
|
|
111
|
+
- **[Performance Model](./core-concepts/performance-model.md)** - Performance considerations
|
|
112
|
+
|
|
113
|
+
### Key Concepts
|
|
114
|
+
- **[Permissions](./core-concepts/permissions.md)** - Permission system
|
|
115
|
+
- **[Events](./core-concepts/events.md)** - Event management
|
|
116
|
+
- **[Organisations](./core-concepts/organisations.md)** - Multi-tenancy
|
|
117
|
+
- **[Context Management](./core-concepts/context-management.md)** - React context usage
|
|
118
|
+
|
|
119
|
+
## 🛠️ Implementation Guides
|
|
120
|
+
|
|
121
|
+
### Application Structure
|
|
122
|
+
- **[App Layout](./implementation-guides/app-layout.md)** - Layout patterns
|
|
123
|
+
- **[Navigation](./implementation-guides/navigation.md)** - Navigation systems
|
|
124
|
+
- **[Routing](./implementation-guides/routing.md)** - URL routing
|
|
125
|
+
- **[State Management](./implementation-guides/state-management.md)** - Application state
|
|
126
|
+
|
|
127
|
+
### Data & Forms
|
|
128
|
+
- **[Data Tables](./implementation-guides/data-tables.md)** - Data management
|
|
129
|
+
- **[Forms](./implementation-guides/forms.md)** - Form implementation
|
|
130
|
+
- **[Validation](./implementation-guides/validation.md)** - Input validation
|
|
131
|
+
- **[File Upload](./implementation-guides/file-upload.md)** - File handling
|
|
132
|
+
|
|
133
|
+
### Advanced Features
|
|
134
|
+
- **[Permission Enforcement](./implementation-guides/permission-enforcement.md)** - Security implementation
|
|
135
|
+
- **[Event Management](./implementation-guides/event-management.md)** - Event handling
|
|
136
|
+
- **[Organisation Management](./implementation-guides/organisation-management.md)** - Multi-tenancy
|
|
137
|
+
- **[Print Reports](./implementation-guides/print-reports.md)** - Report generation
|
|
138
|
+
|
|
139
|
+
## 🎨 Styling Guides
|
|
140
|
+
|
|
141
|
+
### Design System
|
|
142
|
+
- **[Design Tokens](./styles/design-tokens.md)** - Design system tokens
|
|
143
|
+
- **[Color System](./styles/color-system.md)** - Color management
|
|
144
|
+
- **[Typography](./styles/typography.md)** - Text styling
|
|
145
|
+
- **[Spacing](./styles/spacing.md)** - Layout spacing
|
|
146
|
+
|
|
147
|
+
### Customization
|
|
148
|
+
- **[Theme Customization](./styles/theme-customization.md)** - Custom themes
|
|
149
|
+
- **[Component Customization](./styles/component-customization.md)** - Styling components
|
|
150
|
+
- **[CSS Architecture](./styles/css-architecture.md)** - CSS organization
|
|
151
|
+
- **[Responsive Design](./styles/responsive-design.md)** - Mobile-first approach
|
|
152
|
+
|
|
153
|
+
## 🔍 Search by Use Case
|
|
154
|
+
|
|
155
|
+
### I want to...
|
|
156
|
+
- **Build a new app** → [Quick Start](./getting-started/quick-start.md)
|
|
157
|
+
- **Add authentication** → [Authentication Guide](./core-concepts/authentication.md)
|
|
158
|
+
- **Implement permissions** → [RBAC System](./rbac/README.md)
|
|
159
|
+
- **Create data tables** → [Data Tables Guide](./implementation-guides/data-tables.md)
|
|
160
|
+
- **Style my app** → [Styling Overview](./styles/README.md)
|
|
161
|
+
- **Fix styling issues** → [Troubleshooting - Styling](./troubleshooting/styling-issues.md)
|
|
162
|
+
- **Optimize performance** → [Performance Best Practices](./best-practices/performance.md)
|
|
163
|
+
- **Deploy to production** → [Deployment Guide](./best-practices/deployment.md)
|
|
164
|
+
- **Migrate from v0.x** → [Migration Guide](./migration/README.md)
|
|
165
|
+
- **Debug an issue** → [Troubleshooting Overview](./troubleshooting/README.md)
|
|
166
|
+
|
|
167
|
+
### I'm looking for...
|
|
168
|
+
- **Component documentation** → [Components API](./api-reference/components.md)
|
|
169
|
+
- **Hook reference** → [Hooks API](./api-reference/hooks.md)
|
|
170
|
+
- **Code examples** → [Examples](./getting-started/examples/README.md)
|
|
171
|
+
- **Best practices** → [Best Practices](./best-practices/README.md)
|
|
172
|
+
- **Security guidelines** → [Security Best Practices](./best-practices/security.md)
|
|
173
|
+
- **Performance tips** → [Performance Best Practices](./best-practices/performance.md)
|
|
174
|
+
- **Testing strategies** → [Testing Best Practices](./best-practices/testing.md)
|
|
175
|
+
|
|
176
|
+
## 📚 Additional Resources
|
|
177
|
+
|
|
178
|
+
### External Links
|
|
179
|
+
- **[Supabase Documentation](https://supabase.com/docs)** - Backend services
|
|
180
|
+
- **[Tailwind CSS Documentation](https://tailwindcss.com/docs)** - CSS framework
|
|
181
|
+
- **[React Documentation](https://react.dev)** - React framework
|
|
182
|
+
- **[TypeScript Documentation](https://www.typescriptlang.org/docs)** - Type system
|
|
183
|
+
|
|
184
|
+
### Community
|
|
185
|
+
- **[GitHub Repository](https://github.com/jmruthers/pace-core)** - Source code
|
|
186
|
+
- **[Issue Tracker](https://github.com/jmruthers/pace-core/issues)** - Bug reports
|
|
187
|
+
- **[Discussions](https://github.com/jmruthers/pace-core/discussions)** - Community help
|
|
188
|
+
- **[Changelog](./CHANGELOG.md)** - Version history
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
**Need help?** Check the [Troubleshooting Guide](./troubleshooting/README.md) or [ask for help](https://github.com/jmruthers/pace-core/discussions).
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# @jmruthers/pace-core
|
|
2
|
+
|
|
3
|
+
> **⚡ Get Started in 5 Minutes** | [📚 Complete Index](./INDEX.md) | [Quick Reference](./quick-reference.md) | [Examples](./getting-started/examples/)
|
|
4
|
+
|
|
5
|
+
A comprehensive React component library with built-in authentication, RBAC, and event management.
|
|
6
|
+
|
|
7
|
+
> **📚 New to PACE Core?** Start with the [Complete Documentation Index](./INDEX.md) for a comprehensive overview of all available documentation.
|
|
8
|
+
|
|
9
|
+
## ⚡ Quick Start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @jmruthers/pace-core
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { UnifiedAuthProvider, DataTable } from '@jmruthers/pace-core';
|
|
17
|
+
|
|
18
|
+
// Import the core CSS file
|
|
19
|
+
import '@jmruthers/pace-core/styles/core.css';
|
|
20
|
+
|
|
21
|
+
function App() {
|
|
22
|
+
return (
|
|
23
|
+
<UnifiedAuthProvider>
|
|
24
|
+
<DataTable data={[]} columns={[]} />
|
|
25
|
+
</UnifiedAuthProvider>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 🎯 **Start Here**
|
|
31
|
+
- **[Quick Reference](./quick-reference.md)** - Single-page reference for common tasks
|
|
32
|
+
- **[Installation](./getting-started/installation.md)** - 5 min setup
|
|
33
|
+
- **[Quick Start](./getting-started/quick-start.md)** - Build your first app
|
|
34
|
+
- **[Examples](./getting-started/examples/)** - Complete working examples
|
|
35
|
+
|
|
36
|
+
## 🚀 **NEW: v0.4.17 Source Path Fix**
|
|
37
|
+
|
|
38
|
+
**Important**: v0.4.17 fixes the @source directive paths for proper Tailwind v4 content scanning.
|
|
39
|
+
|
|
40
|
+
- **[Source Path Fix Guide](./migration/v0.4.17-source-path-fix.md)** - **CRITICAL** Fix for @source directive paths
|
|
41
|
+
- **[CSS-First Migration Guide](./migration/v0.4.16-css-first-approach.md)** - Simplified configuration
|
|
42
|
+
- **[Legacy Migration Guide](./migration/v0.4.15-tailwind-scanning.md)** - For v0.4.15 source file approach
|
|
43
|
+
- **[Tailwind Content Scanning](./troubleshooting/tailwind-content-scanning.md)** - Comprehensive scanning solutions
|
|
44
|
+
|
|
45
|
+
## 📚 Documentation
|
|
46
|
+
|
|
47
|
+
### 🔧 **Core Features**
|
|
48
|
+
- **[Authentication](./core-concepts/authentication.md)** - User management and session handling
|
|
49
|
+
- **[RBAC System](./rbac/README.md)** - Complete role-based access control
|
|
50
|
+
- **[UI Components](./api-reference/components.md)** - Modern, accessible component library
|
|
51
|
+
- **[Print Components](./print-components/README.md)** - **NEW** Print-optimized layout system
|
|
52
|
+
- **[Styling](./styles/README.md)** - Design system and theming
|
|
53
|
+
|
|
54
|
+
### 🛠️ **Implementation**
|
|
55
|
+
- **[App Layout](./implementation-guides/app-layout.md)** - Application structure and layouts
|
|
56
|
+
- **[Data Tables](./implementation-guides/data-tables.md)** - Interactive data management
|
|
57
|
+
- **[Forms](./implementation-guides/forms.md)** - Form handling and validation
|
|
58
|
+
- **[Navigation](./implementation-guides/navigation.md)** - Navigation patterns and routing
|
|
59
|
+
- **[Public Pages](./implementation-guides/public-pages.md)** - **NEW** Public pages without authentication
|
|
60
|
+
- **[Permission Enforcement](./implementation-guides/permission-enforcement.md)** - Security implementation
|
|
61
|
+
|
|
62
|
+
### 📖 **Core Concepts**
|
|
63
|
+
- **[Permissions](./core-concepts/permissions.md)** - Permission checking and enforcement
|
|
64
|
+
- **[Events](./core-concepts/events.md)** - Event management and selection
|
|
65
|
+
- **[Organisations](./core-concepts/organisations.md)** - Multi-tenant organisation management
|
|
66
|
+
- **[Security](./core-concepts/security.md)** - Security-first design principles
|
|
67
|
+
|
|
68
|
+
### 🎨 **Styling & Theming**
|
|
69
|
+
- **[Design System](./styles/README.md)** - Complete design system overview
|
|
70
|
+
- **[Color Palettes](./styles/color-palettes.md)** - Main, secondary, and accent colors
|
|
71
|
+
- **[Typography](./styles/typography.md)** - Font families and text styles
|
|
72
|
+
- **[Component Styling](./styles/component-styling.md)** - How components are styled
|
|
73
|
+
- **[Custom Themes](./styles/custom-themes.md)** - Creating custom themes
|
|
74
|
+
|
|
75
|
+
### 🔧 **Configuration**
|
|
76
|
+
- **[Vite Configuration](./consuming-app-vite-config.md)** - **CRITICAL** Tailwind scanning setup
|
|
77
|
+
- **[Environment Setup](./getting-started/environment-setup.md)** - Environment variables and configuration
|
|
78
|
+
- **[Build Configuration](./getting-started/build-configuration.md)** - Build tool configuration
|
|
79
|
+
- **[Deployment](./getting-started/deployment.md)** - Production deployment guide
|
|
80
|
+
|
|
81
|
+
### 🎯 **Best Practices**
|
|
82
|
+
- **[Best Practices Overview](./best-practices/README.md)** - Comprehensive best practices guide
|
|
83
|
+
- **[Security](./best-practices/security.md)** - Security best practices and guidelines
|
|
84
|
+
- **[Performance](./best-practices/performance.md)** - Performance optimization strategies
|
|
85
|
+
- **[Testing](./best-practices/testing.md)** - Testing strategies and patterns
|
|
86
|
+
- **[Deployment](./best-practices/deployment.md)** - Deployment guidelines and best practices
|
|
87
|
+
|
|
88
|
+
### 🐛 **Troubleshooting**
|
|
89
|
+
- **[Troubleshooting Overview](./troubleshooting/README.md)** - Complete troubleshooting guide
|
|
90
|
+
- **[Common Issues](./troubleshooting/common-issues.md)** - Frequently encountered problems
|
|
91
|
+
- **[Styling Issues](./troubleshooting/styling-issues.md)** - Fix component styling problems
|
|
92
|
+
- **[Tailwind Content Scanning](./troubleshooting/tailwind-content-scanning.md)** - **NEW** Comprehensive scanning solutions
|
|
93
|
+
- **[Authentication Issues](./troubleshooting/authentication-issues.md)** - Auth-related problems
|
|
94
|
+
- **[Database Issues](./troubleshooting/database-issues.md)** - Database connection and setup
|
|
95
|
+
- **[Organisation Context Setup](./troubleshooting/organisation-context-setup.md)** - Database setup for organisation context
|
|
96
|
+
- **[Debugging](./troubleshooting/debugging.md)** - Debugging techniques and tools
|
|
97
|
+
|
|
98
|
+
## 🎨 Features
|
|
99
|
+
|
|
100
|
+
- **🔐 Authentication** - Built-in Supabase authentication with RBAC
|
|
101
|
+
- **📅 Event Management** - Complete event access control and management system
|
|
102
|
+
- **🎨 UI Components** - Modern, accessible components with Tailwind CSS
|
|
103
|
+
- **📱 Responsive** - Mobile-first design
|
|
104
|
+
- **♿ Accessible** - WCAG 2.1 AA compliant
|
|
105
|
+
- **🎯 TypeScript** - Full TypeScript support
|
|
106
|
+
- **🧪 Tested** - Comprehensive test coverage
|
|
107
|
+
- **🔒 Secure** - Security-first design
|
|
108
|
+
|
|
109
|
+
## 🏗️ Architecture
|
|
110
|
+
|
|
111
|
+
```mermaid
|
|
112
|
+
graph TD
|
|
113
|
+
A[Your App] --> B[UnifiedAuthProvider]
|
|
114
|
+
B --> C[Supabase Auth]
|
|
115
|
+
B --> D[RBAC System]
|
|
116
|
+
A --> E[UI Components]
|
|
117
|
+
E --> F[Tailwind CSS]
|
|
118
|
+
E --> G[Accessibility]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
For detailed architecture information, see the [PACE Core Architecture Guide](./architecture/README.md).
|
|
122
|
+
|
|
123
|
+
## 📦 What's Included
|
|
124
|
+
|
|
125
|
+
### Authentication & Events
|
|
126
|
+
- `UnifiedAuthProvider` - Complete auth provider with event access
|
|
127
|
+
- `EventProvider` - Event management and selection
|
|
128
|
+
- `useAuthWorkflow` - Auth state management
|
|
129
|
+
- `useEvents` - Event access and management
|
|
130
|
+
- `useUnifiedAuth` - Combined auth and event access
|
|
131
|
+
- `useCan` - Permission checking (from `@jmruthers/pace-core`)
|
|
132
|
+
- `usePermissions` - Get all permissions (from `@jmruthers/pace-core`)
|
|
133
|
+
|
|
134
|
+
### UI Components
|
|
135
|
+
- `Button` - Various button variants
|
|
136
|
+
- `DataTable` - Full-featured data table
|
|
137
|
+
- `Form` - Form components with validation
|
|
138
|
+
- `Modal` - Modal dialogs
|
|
139
|
+
- `Select` - Dropdown selectors
|
|
140
|
+
- And many more...
|
|
141
|
+
|
|
142
|
+
### Utilities
|
|
143
|
+
- `useToast` - Toast notifications
|
|
144
|
+
- `useDebounce` - Debounced values
|
|
145
|
+
- `useZodForm` - Form validation
|
|
146
|
+
|
|
147
|
+
## 🔧 Development
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Install dependencies
|
|
151
|
+
npm install
|
|
152
|
+
|
|
153
|
+
# Start development server
|
|
154
|
+
npm run dev
|
|
155
|
+
|
|
156
|
+
# Run tests
|
|
157
|
+
npm test
|
|
158
|
+
|
|
159
|
+
# Build package
|
|
160
|
+
npm run build
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 📄 License
|
|
164
|
+
|
|
165
|
+
MIT License - see [LICENSE](../../LICENSE) for details.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
@jmruthers/pace-core / [Exports](modules.md)
|
|
2
|
+
|
|
3
|
+
# @jmruthers/pace-core
|
|
4
|
+
|
|
5
|
+
Clean, modern React component library with Tailwind v4 styling and native utilities.
|
|
6
|
+
|
|
7
|
+
## 🚀 PaceAppLayout Usage
|
|
8
|
+
|
|
9
|
+
**PaceAppLayout uses React Router's nested routing pattern for optimal performance and scalability.**
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
// ✅ Correct usage with React Router
|
|
13
|
+
<Router>
|
|
14
|
+
<Routes>
|
|
15
|
+
<Route path="/" element={<PaceAppLayout appName="My App" />}>
|
|
16
|
+
<Route path="dashboard" element={<Dashboard />} />
|
|
17
|
+
<Route path="settings" element={<Settings />} />
|
|
18
|
+
</Route>
|
|
19
|
+
</Routes>
|
|
20
|
+
</Router>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 🚀 Complete Installation Guide
|
|
24
|
+
|
|
25
|
+
### 1. Install Dependencies
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Install pace-core and required peer dependencies
|
|
29
|
+
npm install @jmruthers/pace-core @tanstack/react-table @radix-ui/react-checkbox @radix-ui/react-dialog @radix-ui/react-dropdown-menu @radix-ui/react-label @radix-ui/react-slot lucide-react class-variance-authority clsx tailwind-merge
|
|
30
|
+
|
|
31
|
+
# Install Tailwind CSS v4 and Vite plugin
|
|
32
|
+
npm install -D @tailwindcss/vite tailwindcss@^4.0.0
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 2. Import Core Styles
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
// src/main.tsx (or your app's entry point)
|
|
39
|
+
import '@jmruthers/pace-core/styles/core.css';
|
|
40
|
+
import React from 'react';
|
|
41
|
+
import ReactDOM from 'react-dom/client';
|
|
42
|
+
import App from './App';
|
|
43
|
+
|
|
44
|
+
const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
|
|
45
|
+
root.render(
|
|
46
|
+
<React.StrictMode>
|
|
47
|
+
<App />
|
|
48
|
+
</React.StrictMode>
|
|
49
|
+
);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. Configure Vite with Tailwind v4
|
|
53
|
+
|
|
54
|
+
**NEW in v0.4.17+:** Pace-core uses Tailwind v4's CSS-first approach with corrected `@source` directives. This automatically scans the published source files without requiring complex Vite configuration.
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// vite.config.ts
|
|
58
|
+
import { defineConfig } from 'vite'
|
|
59
|
+
import react from '@vitejs/plugin-react'
|
|
60
|
+
import tailwindcss from '@tailwindcss/vite'
|
|
61
|
+
import path from 'path'
|
|
62
|
+
|
|
63
|
+
export default defineConfig({
|
|
64
|
+
plugins: [
|
|
65
|
+
react(),
|
|
66
|
+
tailwindcss({
|
|
67
|
+
// Only need to scan your app's source files
|
|
68
|
+
// pace-core source files are automatically scanned via @source directives
|
|
69
|
+
content: [
|
|
70
|
+
'./src/**/*.{js,ts,jsx,tsx}'
|
|
71
|
+
]
|
|
72
|
+
})
|
|
73
|
+
],
|
|
74
|
+
resolve: {
|
|
75
|
+
alias: {
|
|
76
|
+
"@": path.resolve(__dirname, "./src"),
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
server: {
|
|
80
|
+
port: 3000,
|
|
81
|
+
open: true,
|
|
82
|
+
},
|
|
83
|
+
build: {
|
|
84
|
+
outDir: 'dist',
|
|
85
|
+
sourcemap: true,
|
|
86
|
+
},
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Fallback Configuration:** If the CSS-first approach doesn't work, you can explicitly include pace-core source files:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// vite.config.ts - Fallback configuration
|
|
94
|
+
export default defineConfig({
|
|
95
|
+
plugins: [
|
|
96
|
+
react(),
|
|
97
|
+
tailwindcss({
|
|
98
|
+
content: [
|
|
99
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
100
|
+
'./node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}'
|
|
101
|
+
]
|
|
102
|
+
})
|
|
103
|
+
],
|
|
104
|
+
// ... rest of config
|
|
105
|
+
})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 4. Verify Installation
|
|
109
|
+
|
|
110
|
+
Create a test component to ensure everything works:
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
// src/App.tsx
|
|
114
|
+
import { Button, Card, Input } from '@jmruthers/pace-core';
|
|
115
|
+
|
|
116
|
+
function App() {
|
|
117
|
+
return (
|
|
118
|
+
<div className="p-8 space-y-4">
|
|
119
|
+
<h1 className="text-2xl font-bold text-main-900">PACE Core Test</h1>
|
|
120
|
+
|
|
121
|
+
<Card className="p-4">
|
|
122
|
+
<h2 className="text-lg font-semibold text-sec-800 mb-2">Components Test</h2>
|
|
123
|
+
<div className="space-y-2">
|
|
124
|
+
<Button variant="primary" className="bg-main-600 text-main-50">
|
|
125
|
+
Primary Button
|
|
126
|
+
</Button>
|
|
127
|
+
<Button variant="secondary" className="bg-sec-500 text-main-50">
|
|
128
|
+
Secondary Button
|
|
129
|
+
</Button>
|
|
130
|
+
<Input placeholder="Test input field" className="border-main-300" />
|
|
131
|
+
</div>
|
|
132
|
+
</Card>
|
|
133
|
+
</div>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export default App;
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Expected Result:** You should see properly styled components with PACE Core's design system colors and typography.
|
|
141
|
+
|
|
142
|
+
## ⚠️ Critical Configuration Notes
|
|
143
|
+
|
|
144
|
+
### Why Source File Scanning is Required
|
|
145
|
+
|
|
146
|
+
Pace-core v0.4.15+ includes source files in the published package because:
|
|
147
|
+
|
|
148
|
+
- Tailwind v4 needs to scan original TypeScript/JSX files to detect utility classes
|
|
149
|
+
- Compiled JavaScript files don't contain the class names Tailwind needs
|
|
150
|
+
- Without proper scanning, only ~292 CSS rules are generated instead of 800+ needed
|
|
151
|
+
|
|
152
|
+
### Alternative Configuration (if source files don't work)
|
|
153
|
+
|
|
154
|
+
If you're still having issues with component scanning:
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
// vite.config.ts
|
|
158
|
+
import { defineConfig } from 'vite'
|
|
159
|
+
import react from '@vitejs/plugin-react'
|
|
160
|
+
import tailwindcss from '@tailwindcss/vite'
|
|
161
|
+
|
|
162
|
+
export default defineConfig({
|
|
163
|
+
plugins: [
|
|
164
|
+
react(),
|
|
165
|
+
tailwindcss({
|
|
166
|
+
content: [
|
|
167
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
168
|
+
// Try source files first
|
|
169
|
+
'./node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}',
|
|
170
|
+
// Fallback: also scan dist files
|
|
171
|
+
'./node_modules/@jmruthers/pace-core/dist/**/*.{js,ts,jsx,tsx}'
|
|
172
|
+
]
|
|
173
|
+
})
|
|
174
|
+
],
|
|
175
|
+
})
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Legacy Configuration (v0.4.14 and below)
|
|
179
|
+
|
|
180
|
+
For older versions, use this configuration:
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
// vite.config.ts
|
|
184
|
+
export default defineConfig({
|
|
185
|
+
plugins: [
|
|
186
|
+
react(),
|
|
187
|
+
tailwindcss({
|
|
188
|
+
content: [
|
|
189
|
+
'./src/**/*.{js,ts,jsx,tsx}',
|
|
190
|
+
'./node_modules/@jmruthers/pace-core/**/*.{js,ts,jsx,tsx}'
|
|
191
|
+
]
|
|
192
|
+
})
|
|
193
|
+
],
|
|
194
|
+
})
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## 🔍 Troubleshooting
|
|
198
|
+
|
|
199
|
+
### Issue: Only 292 CSS rules instead of 800+
|
|
200
|
+
|
|
201
|
+
**Solution**:
|
|
202
|
+
1. Update to pace-core v0.4.15+
|
|
203
|
+
2. Use source file paths: `./node_modules/@jmruthers/pace-core/src/**/*.{js,ts,jsx,tsx}`
|
|
204
|
+
3. Clear build cache: `rm -rf dist .vite node_modules && npm install`
|
|
205
|
+
|
|
206
|
+
### Issue: Components appear unstyled
|
|
207
|
+
|
|
208
|
+
**Solution**:
|
|
209
|
+
1. Check your Vite configuration includes pace-core source files
|
|
210
|
+
2. Ensure CSS file is imported: `import '@jmruthers/pace-core/styles/core.css'`
|
|
211
|
+
3. Restart dev server after configuration changes
|
|
212
|
+
|
|
213
|
+
### Issue: Build errors with source files
|
|
214
|
+
|
|
215
|
+
**Solution**: Add TypeScript configuration for node_modules:
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
// tsconfig.json
|
|
219
|
+
{
|
|
220
|
+
"compilerOptions": {
|
|
221
|
+
"skipLibCheck": true
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Features
|
|
227
|
+
|
|
228
|
+
- 🎨 **Complete Design System** - Colors, typography, spacing, shadows
|
|
229
|
+
- 🧩 **React Components** - Buttons, inputs, cards, data tables, and more
|
|
230
|
+
- 🔐 **RBAC System** - Role-based access control with Supabase
|
|
231
|
+
- 🎨 **Tailwind v4** - CSS-first approach with design tokens
|
|
232
|
+
- 📱 **Responsive** - Mobile-first design patterns
|
|
233
|
+
- ♿ **Accessible** - WCAG compliant components
|
|
234
|
+
- 🚀 **Performance** - Tree-shakeable, optimized bundle
|
|
235
|
+
|
|
236
|
+
## Documentation
|
|
237
|
+
|
|
238
|
+
- [Quick Start Guide](./docs/getting-started/quick-start.md) - Complete step-by-step tutorial
|
|
239
|
+
- [Installation Guide](./docs/getting-started/installation.md) - Detailed setup instructions
|
|
240
|
+
- [Vite Configuration](./docs/consuming-app-vite-config.md) - **CRITICAL** Tailwind scanning setup
|
|
241
|
+
- [Component API](./docs/api/README.md) - All available components and hooks
|
|
242
|
+
- [Styling Guide](./docs/styles/README.md) - Understanding the design system
|
|
243
|
+
- [Troubleshooting](./docs/troubleshooting/styling-issues.md) - Fix common styling problems
|
|
244
|
+
- [Tailwind Content Scanning](./docs/troubleshooting/tailwind-content-scanning.md) - **NEW** Comprehensive scanning solutions
|
|
245
|
+
|
|
246
|
+
## Import Strategy
|
|
247
|
+
|
|
248
|
+
PACE Core provides two import paths to optimize for different use cases:
|
|
249
|
+
|
|
250
|
+
### Main Export (Recommended for Common Components)
|
|
251
|
+
|
|
252
|
+
Use the main export for frequently used components and utilities:
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
import {
|
|
256
|
+
Button,
|
|
257
|
+
Card,
|
|
258
|
+
Input,
|
|
259
|
+
DropdownMenu,
|
|
260
|
+
Select,
|
|
261
|
+
Dialog,
|
|
262
|
+
useUnifiedAuth
|
|
263
|
+
} from '@jmruthers/pace-core';
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Available from main export:**
|
|
267
|
+
- **Basic UI**: Button, Card, Input, Label, Alert, Avatar, Checkbox, Progress
|
|
268
|
+
- **Advanced UI**: Dialog (with HTML content), DropdownMenu, Select, Toast, Tooltip
|
|
269
|
+
- **Data Display**: DataTable (with hierarchical actions & expand/collapse all), Table
|
|
270
|
+
- **Forms**: Form, LoginForm
|
|
271
|
+
- **Layout**: PaceAppLayout, Header, Footer, NavigationMenu
|
|
272
|
+
- **Print Components**: PrintLayout, PrintDataTable, PrintCard, PrintHeader, PrintText, PrintButton, PrintGrid, PrintSection, PrintFooter, PrintPageBreak
|
|
273
|
+
- **Providers**: UnifiedAuthProvider, OrganisationProvider, EventProvider
|
|
274
|
+
- **Hooks**: useUnifiedAuth, useOrganisations, useEvents
|
|
275
|
+
|
|
276
|
+
### Component Documentation
|
|
277
|
+
|
|
278
|
+
- **[DataTable Component](docs/implementation-guides/data-tables.md)** - Enterprise-grade data table with hierarchical rows, expand/collapse all, actions, sorting, filtering, and performance optimization
|
|
279
|
+
- **[Hierarchical DataTable Guide](docs/implementation-guides/hierarchical-datatable.md)** - Complete guide for implementing parent/child rows with expand/collapse all and smart sorting
|
|
280
|
+
- **[Print Components](docs/print-components/README.md)** - **NEW** Print-optimized layout system for reports, documents, and printable content
|
|
281
|
+
- **[Print Quick Start](docs/print-components/quick-start.md)** - 5-minute setup guide
|
|
282
|
+
- **[Print API Reference](docs/print-components/api-reference.md)** - Complete component documentation
|
|
283
|
+
- **[Dialog Component](src/components/Dialog/README.md)** - Comprehensive dialog system with smart height management, scrolling, HTML content rendering, and accessibility features
|
|
284
|
+
- **[Storage System](src/utils/storage/README.md)** - File storage utilities with organization-scoped access control
|
|
285
|
+
|
|
286
|
+
### Complete Components Export (For Specialized Components)
|
|
287
|
+
|
|
288
|
+
Use the complete export for specialized or advanced components:
|
|
289
|
+
|
|
290
|
+
```typescript
|
|
291
|
+
import {
|
|
292
|
+
DataTable,
|
|
293
|
+
NavigationMenu,
|
|
294
|
+
FormField,
|
|
295
|
+
FormErrorSummary
|
|
296
|
+
} from '@jmruthers/pace-core/components';
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## License
|
|
300
|
+
|
|
301
|
+
MIT License - see [LICENSE](./LICENSE) for details.
|