@jmruthers/pace-core 0.4.1 → 0.5.1
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 +26 -1
- package/README.md +231 -229
- package/dist/{DataTable-2LB6HI6V.js → DataTable-GX3XERFJ.js} +14 -17
- package/dist/{DataTable-BDBqkU-i.d.ts → DataTable-ltTFXHS3.d.ts} +25 -51
- package/dist/{Table-CIm9IWqk.d.ts → PublicLoadingSpinner-DztrzuJr.d.ts} +635 -122
- package/dist/UnifiedAuthProvider-w66zSCUf.d.ts +160 -0
- package/dist/{api-AIJ3IJX3.js → api-ETQ6YJ3C.js} +6 -4
- package/dist/{appConfig-fB1pP_v3.d.ts → appConfig-BVGyuvI7.d.ts} +1 -1
- package/dist/appNameResolver-7GHF5ED2.js +22 -0
- package/dist/{audit-PD5L5ZSC.js → audit-BUW3LMJB.js} +3 -3
- package/dist/chunk-5EL3KHOQ.js +388 -0
- package/dist/chunk-5EL3KHOQ.js.map +1 -0
- package/dist/{chunk-4MCJAK7J.js → chunk-6CR3MRZN.js} +1827 -4886
- package/dist/chunk-6CR3MRZN.js.map +1 -0
- package/dist/{chunk-YNU5QJ4S.js → chunk-7BNPOCLL.js} +22 -5
- package/dist/chunk-7BNPOCLL.js.map +1 -0
- package/dist/chunk-AUE24LVR.js +268 -0
- package/dist/chunk-AUE24LVR.js.map +1 -0
- package/dist/chunk-C5G2A4PO.js +1349 -0
- package/dist/chunk-C5G2A4PO.js.map +1 -0
- package/dist/{chunk-4ZTIEYU2.js → chunk-CDQ3PX7L.js} +1 -1
- package/dist/chunk-CDQ3PX7L.js.map +1 -0
- package/dist/chunk-COBPIXXQ.js +379 -0
- package/dist/chunk-COBPIXXQ.js.map +1 -0
- package/dist/chunk-GSNM5D6H.js +5441 -0
- package/dist/chunk-GSNM5D6H.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-KK6WIDK6.js → chunk-OEGRKULD.js} +12 -2
- package/dist/{chunk-KK6WIDK6.js.map → chunk-OEGRKULD.js.map} +1 -1
- package/dist/chunk-OYRY44Q2.js +62 -0
- package/dist/chunk-OYRY44Q2.js.map +1 -0
- package/dist/{chunk-DC5AMYBS.js → chunk-PLDDJCW6.js} +15 -5
- package/dist/chunk-PLDDJCW6.js.map +1 -0
- package/dist/{chunk-WHLSWC6W.js → chunk-SS3E6QLB.js} +16 -61
- package/dist/chunk-SS3E6QLB.js.map +1 -0
- package/dist/chunk-T3XIA4AJ.js +3295 -0
- package/dist/chunk-T3XIA4AJ.js.map +1 -0
- package/dist/{chunk-H4PZ4B3Y.js → chunk-TGDCLPP2.js} +129 -28
- package/dist/chunk-TGDCLPP2.js.map +1 -0
- package/dist/{chunk-IOX76PSM.js → chunk-U6JDHVC2.js} +273 -29
- package/dist/chunk-U6JDHVC2.js.map +1 -0
- package/dist/{chunk-JUUNUW3O.js → chunk-XJK2J4N6.js} +17 -6
- package/dist/chunk-XJK2J4N6.js.map +1 -0
- package/dist/chunk-YDJW5XTN.js +84 -0
- package/dist/chunk-YDJW5XTN.js.map +1 -0
- package/dist/components.d.ts +906 -10
- package/dist/components.js +3263 -84
- package/dist/components.js.map +1 -1
- package/dist/{database-CAMsquLm.d.ts → database-C3Szpi5J.d.ts} +28 -11
- package/dist/hooks.d.ts +7 -6
- package/dist/hooks.js +35 -11
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +245 -111
- package/dist/index.js +195 -185
- package/dist/index.js.map +1 -1
- package/dist/{organisation-DLNNQhPB.d.ts → organisation-CO3Sh3_D.d.ts} +1 -1
- package/dist/providers.d.ts +4 -4
- package/dist/providers.js +21 -6
- package/dist/rbac/index.d.ts +862 -806
- package/dist/rbac/index.js +953 -1032
- package/dist/rbac/index.js.map +1 -1
- package/dist/styles/core.css +422 -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-Bavn44NW.d.ts → types-BRDU7N6w.d.ts} +79 -33
- package/dist/types.d.ts +5 -5
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/dist/{unified-BtRpPbmp.d.ts → unified-CM7T0aTK.d.ts} +1 -2
- package/dist/usePublicRouteParams-B6i0KtXW.d.ts +477 -0
- package/dist/utils.d.ts +83 -60
- package/dist/utils.js +301 -55657
- package/dist/utils.js.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.js +1 -1
- package/docs/INDEX.md +192 -0
- package/docs/README.md +46 -32
- package/docs/api/README.md +231 -229
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +132 -0
- package/docs/api/interfaces/AggregateConfig.md +4 -4
- package/docs/api/interfaces/ButtonProps.md +2 -2
- package/docs/api/interfaces/CardProps.md +2 -2
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +98 -7
- package/docs/api/interfaces/DataTableColumn.md +131 -12
- package/docs/api/interfaces/DataTableProps.md +77 -274
- package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
- package/docs/api/interfaces/EmptyStateConfig.md +5 -5
- package/docs/api/interfaces/EventContextType.md +7 -7
- package/docs/api/interfaces/EventLogoProps.md +152 -0
- package/docs/api/interfaces/EventProviderProps.md +2 -2
- package/docs/api/interfaces/FileSizeLimits.md +7 -0
- package/docs/api/interfaces/FileUploadProps.md +154 -0
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +115 -0
- package/docs/api/interfaces/InputProps.md +2 -2
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +2 -2
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +26 -26
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- 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 +2 -2
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +447 -46
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +95 -9
- 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 +14 -14
- package/docs/api/interfaces/UserMenuProps.md +6 -6
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +1626 -768
- package/docs/api-reference/components.md +761 -43
- package/docs/api-reference/hooks.md +126 -0
- package/docs/api-reference/providers.md +141 -65
- package/docs/api-reference/types.md +66 -36
- package/docs/api-reference/utilities.md +1 -1
- package/docs/architecture/README.md +1 -2
- package/docs/best-practices/README.md +400 -0
- package/docs/consuming-app-example.md +42 -96
- package/docs/consuming-app-vite-config.md +233 -0
- package/docs/core-concepts/events.md +3 -3
- package/docs/core-concepts/organisations.md +0 -1
- package/docs/core-concepts/rbac-system.md +23 -10
- package/docs/documentation-style-checklist.md +8 -2
- package/docs/examples/navigation-menu-auth-fix.md +344 -0
- package/docs/getting-started/examples/README.md +15 -1
- package/docs/getting-started/examples/basic-auth-app.md +444 -119
- package/docs/getting-started/examples/full-featured-app.md +6 -6
- package/docs/getting-started/installation.md +231 -52
- package/docs/getting-started/quick-start.md +121 -24
- package/docs/implementation-guides/app-layout.md +133 -108
- package/docs/implementation-guides/data-tables.md +1011 -29
- package/docs/implementation-guides/forms.md +3 -3
- package/docs/implementation-guides/hierarchical-datatable.md +850 -0
- package/docs/implementation-guides/large-datasets.md +2 -2
- package/docs/implementation-guides/navigation.md +1 -1
- package/docs/implementation-guides/permission-enforcement.md +4 -4
- package/docs/implementation-guides/public-pages.md +752 -0
- package/docs/migration/README.md +18 -8
- package/docs/migration/quick-migration-guide.md +320 -0
- package/docs/migration/rbac-migration.md +50 -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 +51 -104
- package/docs/performance/README.md +1 -4
- 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 +53 -36
- package/docs/rbac/README.md +136 -69
- package/docs/rbac/api-reference.md +39 -8
- package/docs/rbac/examples.md +237 -66
- package/docs/rbac/getting-started.md +131 -16
- package/docs/rbac/quick-start.md +499 -323
- package/docs/rbac/troubleshooting.md +240 -262
- package/docs/security/README.md +50 -1
- package/docs/styles/README.md +143 -117
- package/docs/testing/README.md +6 -10
- package/docs/troubleshooting/README.md +497 -0
- package/docs/troubleshooting/common-issues.md +604 -14
- package/docs/troubleshooting/styling-issues.md +219 -0
- package/docs/troubleshooting/tailwind-content-scanning.md +213 -0
- package/docs/usage.md +28 -90
- package/docs/visual-testing.md +0 -7
- package/package.json +46 -24
- package/src/__mocks__/lucide-react.ts +181 -0
- package/src/__tests__/REBUILD_PLAN.md +223 -0
- package/src/__tests__/TESTING_GUIDELINES.md +341 -0
- package/src/__tests__/fixtures/mocks.ts +93 -0
- package/src/__tests__/helpers/component-test-utils.tsx +145 -0
- package/src/__tests__/helpers/test-utils.tsx +117 -0
- package/src/__tests__/integration/UserProfile.test.tsx +128 -0
- package/src/__tests__/setup.ts +71 -0
- package/src/__tests__/templates/accessibility.test.template.tsx +279 -0
- package/src/__tests__/templates/component.test.template.tsx +144 -0
- package/src/__tests__/templates/hook.test.template.ts +173 -0
- package/src/__tests__/templates/integration.test.template.tsx +199 -0
- package/src/__tests__/types/test.types.ts +106 -0
- package/src/components/Alert/Alert.test.tsx +496 -0
- package/src/components/Alert/Alert.tsx +134 -0
- package/src/components/Alert/index.ts +2 -0
- package/src/components/Avatar/Avatar.test.tsx +484 -0
- package/src/components/Avatar/Avatar.tsx +84 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Button/Button.test.tsx +662 -0
- package/src/components/Button/Button.tsx +270 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card.test.tsx +593 -0
- package/src/components/Card/Card.tsx +271 -0
- package/src/components/Card/index.ts +1 -0
- package/src/components/Checkbox/Checkbox.test.tsx +461 -0
- package/src/components/Checkbox/Checkbox.tsx +75 -0
- package/src/components/Checkbox/__mocks__/Checkbox.tsx +2 -0
- package/src/components/Checkbox/index.ts +2 -0
- package/src/components/DataTable/DataTable.tsx +446 -0
- package/src/components/DataTable/__tests__/README.md +145 -0
- package/src/components/DataTable/__tests__/mocks/MockRBACProvider.tsx +66 -0
- package/src/components/DataTable/__tests__/test-utils/dataFactories.ts +103 -0
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +381 -0
- package/src/components/DataTable/__tests__/test-utils.ts +94 -0
- package/src/components/DataTable/components/AccessDeniedPage.tsx +168 -0
- package/src/components/DataTable/components/ActionButtons.tsx +194 -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 +461 -0
- package/src/components/DataTable/components/DataTableCore.tsx +1027 -0
- package/src/components/DataTable/components/DataTableErrorBoundary.tsx +214 -0
- package/src/components/DataTable/components/DataTableModals.tsx +87 -0
- package/src/components/DataTable/components/DataTableToolbar.tsx +262 -0
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +144 -0
- package/src/components/DataTable/components/EditableRow.tsx +159 -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 +100 -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 +742 -0
- package/src/components/DataTable/components/ViewRowModal.tsx +68 -0
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +513 -0
- package/src/components/DataTable/components/index.ts +16 -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 +181 -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/index.ts +8 -0
- package/src/components/DataTable/core/interfaces.ts +338 -0
- package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +419 -0
- package/src/components/DataTable/examples/HierarchicalExample.tsx +475 -0
- package/src/components/DataTable/examples/InitialPageSizeExample.tsx +176 -0
- package/src/components/DataTable/examples/PerformanceExample.tsx +505 -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 +68 -0
- package/src/components/DataTable/styles.ts +171 -0
- package/src/components/DataTable/types.ts +511 -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.test.tsx +1139 -0
- package/src/components/Dialog/Dialog.tsx +782 -0
- package/src/components/Dialog/README.md +804 -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/index.ts +12 -0
- package/src/components/Dialog/utils/safeHtml.ts +185 -0
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +752 -0
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +312 -0
- package/src/components/ErrorBoundary/index.ts +8 -0
- package/src/components/EventSelector/EventSelector.tsx +360 -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.test.tsx +665 -0
- package/src/components/FileUpload/FileUpload.tsx +237 -0
- package/src/components/FileUpload/index.ts +6 -0
- package/src/components/Footer/Footer.tsx +197 -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/index.ts +26 -0
- package/src/components/Header/Header.tsx +301 -0
- package/src/components/Header/index.ts +4 -0
- package/src/components/InactivityWarningModal/InactivityWarningModal.tsx +164 -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/index.ts +9 -0
- package/src/components/Label/Label.tsx +186 -0
- package/src/components/Label/index.ts +2 -0
- package/src/components/LoadingSpinner/LoadingSpinner.tsx +98 -0
- package/src/components/LoadingSpinner/index.ts +3 -0
- package/src/components/LoginForm/LoginForm.tsx +273 -0
- package/src/components/LoginForm/index.ts +3 -0
- package/src/components/NavigationMenu/NavigationMenu.tsx +698 -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/index.ts +9 -0
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +699 -0
- package/src/components/PaceAppLayout/README.md +278 -0
- package/src/components/PaceAppLayout/index.ts +1 -0
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +221 -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/index.ts +4 -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/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/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/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/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/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/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/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/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/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/index.ts +16 -0
- package/src/components/PrintText/types.ts +24 -0
- package/src/components/Progress/Progress.tsx +116 -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/index.ts +51 -0
- package/src/components/RBAC/PagePermissionGuard.tsx +287 -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/index.ts +23 -0
- package/src/components/Select/Select.tsx +660 -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/index.ts +11 -0
- package/src/components/Toast/Toast.tsx +339 -0
- package/src/components/Toast/index.ts +14 -0
- package/src/components/Tooltip/Tooltip.tsx +167 -0
- package/src/components/Tooltip/index.ts +7 -0
- package/src/components/UserMenu/UserMenu.tsx +243 -0
- package/src/components/UserMenu/index.ts +3 -0
- package/src/components/examples/PermissionExample.tsx +150 -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/hooks/index.ts +56 -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/useCounter.test.ts +135 -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 +634 -0
- package/src/providers/UnifiedAuthProvider.tsx +327 -0
- package/src/providers/index.ts +15 -0
- package/src/rbac/README.md +885 -0
- package/src/rbac/adapters.tsx +726 -0
- package/src/rbac/api.ts +339 -0
- package/src/rbac/audit-enhanced.ts +339 -0
- package/src/rbac/audit.ts +338 -0
- package/src/rbac/cache.ts +215 -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/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 +570 -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/index.tsx +340 -0
- package/src/rbac/types.ts +343 -0
- package/src/rbac/utils/eventContext.ts +83 -0
- package/src/styles/core.css +422 -0
- package/src/styles/index.ts +51 -0
- package/src/theming/runtime.ts +187 -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/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/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/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/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/dist/UnifiedAuthProvider-V7y63NjT.d.ts +0 -88
- package/dist/chunk-4MCJAK7J.js.map +0 -1
- package/dist/chunk-4ZTIEYU2.js.map +0 -1
- package/dist/chunk-H4PZ4B3Y.js.map +0 -1
- package/dist/chunk-IOX76PSM.js.map +0 -1
- package/dist/chunk-JUUNUW3O.js.map +0 -1
- package/dist/chunk-U7DY5T33.js +0 -11
- package/dist/chunk-U7DY5T33.js.map +0 -1
- package/dist/chunk-WHLSWC6W.js.map +0 -1
- package/dist/chunk-XI7QFSSC.js +0 -790
- package/dist/chunk-XI7QFSSC.js.map +0 -1
- package/dist/chunk-XIJMMBDD.js +0 -73
- package/dist/chunk-XIJMMBDD.js.map +0 -1
- package/dist/chunk-YNU5QJ4S.js.map +0 -1
- package/dist/chunk-YWYCNGWH.js +0 -2070
- package/dist/chunk-YWYCNGWH.js.map +0 -1
- package/dist/chunk-ZJ3UKPIW.js +0 -952
- package/dist/chunk-ZJ3UKPIW.js.map +0 -1
- package/dist/useAppConfig-CZNJJsT_.d.ts +0 -148
- package/dist/{DataTable-2LB6HI6V.js.map → DataTable-GX3XERFJ.js.map} +0 -0
- package/dist/{api-AIJ3IJX3.js.map → api-ETQ6YJ3C.js.map} +0 -0
- package/dist/{audit-PD5L5ZSC.js.map → appNameResolver-7GHF5ED2.js.map} +0 -0
- package/dist/{chunk-DC5AMYBS.js.map → audit-BUW3LMJB.js.map} +0 -0
- package/dist/{validation-D2-NNCCE.d.ts → validation-PM_iOaTI.d.ts} +6 -6
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import React__default, { Component, ReactNode } from 'react';
|
|
2
|
+
import React__default, { Component, ReactNode, ErrorInfo } from 'react';
|
|
3
3
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
4
4
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
5
5
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
6
6
|
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
7
7
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
8
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
9
|
-
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
10
9
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
11
10
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
12
11
|
import { FieldValues, DefaultValues, SubmitHandler, SubmitErrorHandler, UseFormReturn } from 'react-hook-form';
|
|
13
12
|
import { z } from 'zod';
|
|
14
|
-
import { User } from '@supabase/supabase-js';
|
|
15
|
-
import { r as Event } from './unified-
|
|
16
|
-
import { O as Organisation } from './organisation-
|
|
13
|
+
import { User, SupabaseClient, createClient } from '@supabase/supabase-js';
|
|
14
|
+
import { r as Event } from './unified-CM7T0aTK.js';
|
|
15
|
+
import { O as Organisation } from './organisation-CO3Sh3_D.js';
|
|
17
16
|
|
|
18
17
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
19
18
|
/** Visual variant of the button */
|
|
@@ -57,7 +56,7 @@ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAtt
|
|
|
57
56
|
* Features:
|
|
58
57
|
* - Semantic HTML structure (article, header, main, footer, etc.)
|
|
59
58
|
* - Modular card structure (header, content, footer, actions, etc.)
|
|
60
|
-
* - CardContent uses
|
|
59
|
+
* - CardContent uses main element for primary content (accessible when nested)
|
|
61
60
|
* - Consistent padding, border, and shadow
|
|
62
61
|
* - Responsive and accessible
|
|
63
62
|
* - HoverCard for popover-style cards
|
|
@@ -86,7 +85,7 @@ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAtt
|
|
|
86
85
|
* // Semantic HTML structure:
|
|
87
86
|
* // - Card: <article> element for self-contained content
|
|
88
87
|
* // - CardHeader: <header> element for card heading area
|
|
89
|
-
* // - CardContent: <
|
|
88
|
+
* // - CardContent: <main> element for primary card content
|
|
90
89
|
* // - CardFooter: <footer> element for card footer area
|
|
91
90
|
* // - CardActions: <nav> element for action buttons
|
|
92
91
|
*
|
|
@@ -117,9 +116,9 @@ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttribu
|
|
|
117
116
|
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
118
117
|
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
119
118
|
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
120
|
-
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<
|
|
119
|
+
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
121
120
|
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
122
|
-
declare const CardActions: React.ForwardRefExoticComponent<React.HTMLAttributes<
|
|
121
|
+
declare const CardActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
123
122
|
type CardActionsProps = React.HTMLAttributes<HTMLElement>;
|
|
124
123
|
|
|
125
124
|
/**
|
|
@@ -497,7 +496,7 @@ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
|
|
|
497
496
|
* // Progress with custom styling
|
|
498
497
|
* <Progress
|
|
499
498
|
* value={75}
|
|
500
|
-
* className="h-4 bg-
|
|
499
|
+
* className="h-4 bg-sec-200"
|
|
501
500
|
* />
|
|
502
501
|
*
|
|
503
502
|
* // Animated progress (controlled)
|
|
@@ -559,7 +558,7 @@ declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.Re
|
|
|
559
558
|
* Dialog size variants
|
|
560
559
|
* @public
|
|
561
560
|
*/
|
|
562
|
-
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
561
|
+
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'auto';
|
|
563
562
|
/**
|
|
564
563
|
* Props for the Dialog root component
|
|
565
564
|
* @public
|
|
@@ -632,18 +631,34 @@ interface DialogFooterProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
632
631
|
interface DialogBodyProps extends React.HTMLAttributes<HTMLElement> {
|
|
633
632
|
/** Custom max height for the scrollable area */
|
|
634
633
|
maxHeight?: string;
|
|
634
|
+
/** HTML content to render (will be sanitized for security) */
|
|
635
|
+
htmlContent?: string;
|
|
636
|
+
/** Whether to allow HTML content rendering (default: true) */
|
|
637
|
+
allowHtml?: boolean;
|
|
638
|
+
/** Whether to use strict HTML sanitization (default: true) */
|
|
639
|
+
strictSanitization?: boolean;
|
|
640
|
+
/** Whether to log HTML sanitization warnings to console (default: false) */
|
|
641
|
+
logWarnings?: boolean;
|
|
635
642
|
}
|
|
636
643
|
/**
|
|
637
644
|
* Props for the DialogTitle component
|
|
638
645
|
* @public
|
|
639
646
|
*/
|
|
640
647
|
interface DialogTitleProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> {
|
|
648
|
+
/** HTML content to render as title (will be sanitized for security) */
|
|
649
|
+
htmlContent?: string;
|
|
650
|
+
/** Whether to allow HTML content rendering (default: true) */
|
|
651
|
+
allowHtml?: boolean;
|
|
641
652
|
}
|
|
642
653
|
/**
|
|
643
654
|
* Props for the DialogDescription component
|
|
644
655
|
* @public
|
|
645
656
|
*/
|
|
646
657
|
interface DialogDescriptionProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description> {
|
|
658
|
+
/** HTML content to render as description (will be sanitized for security) */
|
|
659
|
+
htmlContent?: string;
|
|
660
|
+
/** Whether to allow HTML content rendering (default: true) */
|
|
661
|
+
allowHtml?: boolean;
|
|
647
662
|
}
|
|
648
663
|
declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
|
|
649
664
|
declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -698,22 +713,30 @@ declare const DialogHeader: {
|
|
|
698
713
|
/**
|
|
699
714
|
* DialogBody component
|
|
700
715
|
* Semantic main content area for dialog body content with scrollable functionality
|
|
716
|
+
* Supports both React children and safe HTML content rendering
|
|
701
717
|
*
|
|
702
718
|
* @param props - Body configuration and styling
|
|
703
719
|
* @returns JSX.Element - The scrollable dialog body container using semantic <main> element
|
|
704
720
|
*
|
|
705
721
|
* @example
|
|
706
722
|
* ```tsx
|
|
723
|
+
* // Using React children
|
|
707
724
|
* <DialogBody>
|
|
708
725
|
* <section className="space-y-4">
|
|
709
726
|
* <h4>Content Title</h4>
|
|
710
727
|
* <p>Long content that will scroll...</p>
|
|
711
728
|
* </section>
|
|
712
729
|
* </DialogBody>
|
|
730
|
+
*
|
|
731
|
+
* // Using HTML content
|
|
732
|
+
* <DialogBody
|
|
733
|
+
* htmlContent="<h2>Import Instructions</h2><p>Upload a CSV file with the following format:</p><ul><li>Required columns: name, email</li><li>Optional columns: phone, address</li></ul>"
|
|
734
|
+
* allowHtml={true}
|
|
735
|
+
* />
|
|
713
736
|
* ```
|
|
714
737
|
*/
|
|
715
738
|
declare const DialogBody: {
|
|
716
|
-
({ className, maxHeight, style, ...props }: DialogBodyProps): react_jsx_runtime.JSX.Element;
|
|
739
|
+
({ className, maxHeight, style, htmlContent, allowHtml, strictSanitization, logWarnings, children, ...props }: DialogBodyProps): react_jsx_runtime.JSX.Element;
|
|
717
740
|
displayName: string;
|
|
718
741
|
};
|
|
719
742
|
/**
|
|
@@ -738,109 +761,39 @@ declare const DialogFooter: {
|
|
|
738
761
|
declare const DialogTitle: React.ForwardRefExoticComponent<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
739
762
|
declare const DialogDescription: React.ForwardRefExoticComponent<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
740
763
|
|
|
741
|
-
declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
|
|
742
|
-
declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
743
|
-
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
744
|
-
declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
|
|
745
|
-
declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
|
|
746
|
-
declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
747
|
-
declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
748
|
-
inset?: boolean;
|
|
749
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
750
|
-
/**
|
|
751
|
-
* DropdownMenuSubContent component
|
|
752
|
-
* The content container for dropdown menu sub-items
|
|
753
|
-
*
|
|
754
|
-
* @param props - Content configuration and styling
|
|
755
|
-
* @param ref - Forwarded ref to the content element
|
|
756
|
-
* @returns JSX.Element - The dropdown menu sub-content container
|
|
757
|
-
*
|
|
758
|
-
* @example
|
|
759
|
-
* ```tsx
|
|
760
|
-
* <DropdownMenuSubContent>
|
|
761
|
-
* <DropdownMenuItem>Option 1</DropdownMenuItem>
|
|
762
|
-
* <DropdownMenuItem>Option 2</DropdownMenuItem>
|
|
763
|
-
* </DropdownMenuSubContent>
|
|
764
|
-
* ```
|
|
765
|
-
*/
|
|
766
|
-
declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
767
|
-
/**
|
|
768
|
-
* DropdownMenuContent component
|
|
769
|
-
* The main content container for dropdown menu items
|
|
770
|
-
*
|
|
771
|
-
* @param props - Content configuration and styling
|
|
772
|
-
* @param ref - Forwarded ref to the content element
|
|
773
|
-
* @returns JSX.Element - The dropdown menu content container
|
|
774
|
-
*
|
|
775
|
-
* @example
|
|
776
|
-
* ```tsx
|
|
777
|
-
* <DropdownMenuContent>
|
|
778
|
-
* <DropdownMenuItem>Profile</DropdownMenuItem>
|
|
779
|
-
* <DropdownMenuItem>Settings</DropdownMenuItem>
|
|
780
|
-
* </DropdownMenuContent>
|
|
781
|
-
* ```
|
|
782
|
-
*/
|
|
783
|
-
declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
784
|
-
/**
|
|
785
|
-
* DropdownMenuItem component
|
|
786
|
-
* Individual menu item within the dropdown
|
|
787
|
-
*
|
|
788
|
-
* @param props - Item configuration and styling
|
|
789
|
-
* @param ref - Forwarded ref to the item element
|
|
790
|
-
* @returns JSX.Element - The dropdown menu item
|
|
791
|
-
*
|
|
792
|
-
* @example
|
|
793
|
-
* ```tsx
|
|
794
|
-
* <DropdownMenuItem onClick={() => console.log('clicked')}>
|
|
795
|
-
* Profile
|
|
796
|
-
* </DropdownMenuItem>
|
|
797
|
-
* ```
|
|
798
|
-
*/
|
|
799
|
-
declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
800
|
-
inset?: boolean;
|
|
801
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
802
|
-
declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
803
|
-
declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
804
|
-
declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
805
|
-
inset?: boolean;
|
|
806
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
807
|
-
declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
808
|
-
declare const DropdownMenuShortcut: {
|
|
809
|
-
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
|
|
810
|
-
displayName: string;
|
|
811
|
-
};
|
|
812
|
-
|
|
813
764
|
/**
|
|
814
|
-
* @file
|
|
765
|
+
* @file Select Component - Simple HTML Structure
|
|
815
766
|
* @package @jmruthers/pace-core
|
|
816
767
|
* @module Components/Select
|
|
817
|
-
* @since 0.
|
|
768
|
+
* @since 0.3.0
|
|
818
769
|
*
|
|
819
|
-
* A
|
|
820
|
-
*
|
|
770
|
+
* A simple select component using semantic HTML structure
|
|
771
|
+
* with proper DOM nesting and accessibility.
|
|
821
772
|
*
|
|
822
773
|
* Features:
|
|
823
|
-
* -
|
|
824
|
-
* -
|
|
825
|
-
* -
|
|
826
|
-
* -
|
|
827
|
-
* -
|
|
828
|
-
* -
|
|
829
|
-
* - Custom styling and theming
|
|
774
|
+
* - Semantic HTML with <form> + <button> + <ul> + <li>
|
|
775
|
+
* - Proper DOM nesting (no button inside select)
|
|
776
|
+
* - Built on pace-core Button component for consistency
|
|
777
|
+
* - Simple positioning and styling
|
|
778
|
+
* - Better accessibility and SEO
|
|
779
|
+
* - Backward compatible API
|
|
830
780
|
*/
|
|
831
781
|
|
|
832
|
-
interface SelectProps {
|
|
782
|
+
interface SelectProps extends Omit<React.HTMLAttributes<HTMLFormElement>, 'onChange' | 'onKeyDown' | 'onFocus' | 'onBlur'> {
|
|
833
783
|
value?: string;
|
|
834
784
|
defaultValue?: string;
|
|
785
|
+
selectedText?: string;
|
|
835
786
|
onValueChange?: (value: string) => void;
|
|
836
787
|
open?: boolean;
|
|
837
788
|
defaultOpen?: boolean;
|
|
838
789
|
onOpenChange?: (open: boolean) => void;
|
|
839
790
|
disabled?: boolean;
|
|
840
791
|
children: React.ReactNode;
|
|
792
|
+
className?: string;
|
|
841
793
|
}
|
|
842
794
|
interface SelectTriggerProps extends Omit<ButtonProps, 'onClick' | 'onKeyDown'> {
|
|
843
795
|
children: React.ReactNode;
|
|
796
|
+
asChild?: boolean;
|
|
844
797
|
}
|
|
845
798
|
interface SelectValueProps {
|
|
846
799
|
placeholder?: string;
|
|
@@ -851,22 +804,21 @@ interface SelectContentProps {
|
|
|
851
804
|
className?: string;
|
|
852
805
|
searchable?: boolean;
|
|
853
806
|
searchPlaceholder?: string;
|
|
854
|
-
position?: 'top' | 'bottom' | 'auto';
|
|
855
|
-
align?: 'start' | 'center' | 'end';
|
|
856
|
-
sideOffset?: number;
|
|
857
807
|
maxHeight?: string;
|
|
808
|
+
style?: React.CSSProperties;
|
|
858
809
|
}
|
|
859
810
|
interface SelectItemProps {
|
|
860
811
|
value: string;
|
|
861
812
|
children: React.ReactNode;
|
|
862
813
|
disabled?: boolean;
|
|
863
814
|
className?: string;
|
|
815
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
864
816
|
}
|
|
865
|
-
declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<
|
|
817
|
+
declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLFormElement>>;
|
|
866
818
|
declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
867
|
-
declare const SelectValue: React.ForwardRefExoticComponent<SelectValueProps & React.RefAttributes<
|
|
868
|
-
declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<
|
|
869
|
-
declare const SelectItem: React.ForwardRefExoticComponent<SelectItemProps & React.RefAttributes<
|
|
819
|
+
declare const SelectValue: React.ForwardRefExoticComponent<SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
|
|
820
|
+
declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLUListElement>>;
|
|
821
|
+
declare const SelectItem: React.ForwardRefExoticComponent<SelectItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
870
822
|
declare const SelectGroup: React.ForwardRefExoticComponent<{
|
|
871
823
|
children: React.ReactNode;
|
|
872
824
|
className?: string;
|
|
@@ -1049,7 +1001,7 @@ declare function Toaster(): react_jsx_runtime.JSX.Element;
|
|
|
1049
1001
|
* <TooltipTrigger asChild>
|
|
1050
1002
|
* <Button>Advanced Tooltip</Button>
|
|
1051
1003
|
* </TooltipTrigger>
|
|
1052
|
-
* <TooltipContent side="top" className="bg-
|
|
1004
|
+
* <TooltipContent side="top" className="bg-main-500 text-main-50">
|
|
1053
1005
|
* <div className="space-y-1">
|
|
1054
1006
|
* <p className="font-semibold">Advanced Tooltip</p>
|
|
1055
1007
|
* <p className="text-xs">With custom styling</p>
|
|
@@ -1098,7 +1050,7 @@ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.T
|
|
|
1098
1050
|
*
|
|
1099
1051
|
* @example
|
|
1100
1052
|
* ```tsx
|
|
1101
|
-
* <TooltipContent side="top" className="bg-
|
|
1053
|
+
* <TooltipContent side="top" className="bg-main-500">
|
|
1102
1054
|
* Custom tooltip content
|
|
1103
1055
|
* </TooltipContent>
|
|
1104
1056
|
* ```
|
|
@@ -1499,7 +1451,7 @@ interface NavigationMenuProps {
|
|
|
1499
1451
|
* window.location.href = item.href;
|
|
1500
1452
|
* }
|
|
1501
1453
|
* }}
|
|
1502
|
-
* className="w-64 bg-
|
|
1454
|
+
* className="w-64 bg-sec-50 p-4"
|
|
1503
1455
|
* />
|
|
1504
1456
|
* );
|
|
1505
1457
|
* }
|
|
@@ -1597,7 +1549,6 @@ interface NavigationMenuProps {
|
|
|
1597
1549
|
* - Uses Tailwind CSS for consistent styling
|
|
1598
1550
|
* - Supports custom className for additional styling
|
|
1599
1551
|
* - Responsive design considerations
|
|
1600
|
-
* - Dark mode compatible color schemes
|
|
1601
1552
|
*
|
|
1602
1553
|
* @dependencies
|
|
1603
1554
|
* - React 18+ - Component framework and hooks
|
|
@@ -1692,7 +1643,7 @@ interface NavigationMenuProps {
|
|
|
1692
1643
|
* window.location.href = item.href;
|
|
1693
1644
|
* }
|
|
1694
1645
|
* }}
|
|
1695
|
-
* className="w-64 bg-
|
|
1646
|
+
* className="w-64 bg-sec-50 p-4"
|
|
1696
1647
|
* />
|
|
1697
1648
|
* );
|
|
1698
1649
|
* }
|
|
@@ -1710,16 +1661,35 @@ interface NavigationMenuProps {
|
|
|
1710
1661
|
* const location = useLocation();
|
|
1711
1662
|
* const { hasRole, hasPermission } = useUnifiedAuth();
|
|
1712
1663
|
*
|
|
1713
|
-
* // Build navigation items
|
|
1664
|
+
* // Build navigation items with permission requirements
|
|
1714
1665
|
* const navItems = [
|
|
1715
|
-
* {
|
|
1716
|
-
*
|
|
1717
|
-
*
|
|
1718
|
-
*
|
|
1719
|
-
*
|
|
1720
|
-
*
|
|
1721
|
-
*
|
|
1722
|
-
* {
|
|
1666
|
+
* {
|
|
1667
|
+
* id: 'dashboard',
|
|
1668
|
+
* label: 'Dashboard',
|
|
1669
|
+
* href: '/dashboard',
|
|
1670
|
+
* icon: 'LayoutDashboard',
|
|
1671
|
+
* permissions: ['dashboard:read']
|
|
1672
|
+
* },
|
|
1673
|
+
* {
|
|
1674
|
+
* id: 'meals',
|
|
1675
|
+
* label: 'Meals',
|
|
1676
|
+
* href: '/meals',
|
|
1677
|
+
* icon: 'UtensilsCrossed',
|
|
1678
|
+
* permissions: ['meals:read']
|
|
1679
|
+
* },
|
|
1680
|
+
* {
|
|
1681
|
+
* id: 'admin',
|
|
1682
|
+
* label: 'Admin Panel',
|
|
1683
|
+
* href: '/admin',
|
|
1684
|
+
* icon: 'Shield',
|
|
1685
|
+
* roles: ['admin', 'super_admin']
|
|
1686
|
+
* },
|
|
1687
|
+
* {
|
|
1688
|
+
* id: 'profile',
|
|
1689
|
+
* label: 'Profile',
|
|
1690
|
+
* href: '/profile',
|
|
1691
|
+
* icon: 'User'
|
|
1692
|
+
* }
|
|
1723
1693
|
* ];
|
|
1724
1694
|
*
|
|
1725
1695
|
* return (
|
|
@@ -1730,6 +1700,8 @@ interface NavigationMenuProps {
|
|
|
1730
1700
|
* onNavigate={(item) => navigate(item.href)}
|
|
1731
1701
|
* buttonText="Navigation"
|
|
1732
1702
|
* navigationLabel="Main application navigation"
|
|
1703
|
+
* filterByPermissions={true}
|
|
1704
|
+
* auditLog={true}
|
|
1733
1705
|
* />
|
|
1734
1706
|
* );
|
|
1735
1707
|
* }
|
|
@@ -2238,7 +2210,7 @@ interface PaceAppLayoutProps {
|
|
|
2238
2210
|
* - Automatic page permission validation
|
|
2239
2211
|
*
|
|
2240
2212
|
* @example
|
|
2241
|
-
* Basic React Router setup with permission enforcement:
|
|
2213
|
+
* Basic React Router setup with permission enforcement (RECOMMENDED):
|
|
2242
2214
|
* ```tsx
|
|
2243
2215
|
* import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
|
|
2244
2216
|
* import { UnifiedAuthProvider } from '@jmruthers/pace-core/providers';
|
|
@@ -2268,6 +2240,7 @@ interface PaceAppLayoutProps {
|
|
|
2268
2240
|
* }
|
|
2269
2241
|
* ```
|
|
2270
2242
|
*
|
|
2243
|
+
*
|
|
2271
2244
|
* @example
|
|
2272
2245
|
* Custom navigation items with permission filtering:
|
|
2273
2246
|
* ```tsx
|
|
@@ -2595,7 +2568,7 @@ declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryS
|
|
|
2595
2568
|
* // With custom styling
|
|
2596
2569
|
* <LoadingSpinner
|
|
2597
2570
|
* size="lg"
|
|
2598
|
-
* className="text-
|
|
2571
|
+
* className="text-main-500"
|
|
2599
2572
|
* />
|
|
2600
2573
|
*
|
|
2601
2574
|
* // In a button
|
|
@@ -2641,7 +2614,7 @@ interface LoadingSpinnerProps {
|
|
|
2641
2614
|
*
|
|
2642
2615
|
* @example
|
|
2643
2616
|
* ```tsx
|
|
2644
|
-
* <LoadingSpinner size="lg" className="text-
|
|
2617
|
+
* <LoadingSpinner size="lg" className="text-main-500" />
|
|
2645
2618
|
* ```
|
|
2646
2619
|
*/
|
|
2647
2620
|
declare const LoadingSpinner: React__default.FC<LoadingSpinnerProps>;
|
|
@@ -2747,7 +2720,7 @@ declare function OrganisationSelector({ placeholder, className, onOrganisationCh
|
|
|
2747
2720
|
*
|
|
2748
2721
|
* // Password reset form with custom styling
|
|
2749
2722
|
* <PasswordResetForm
|
|
2750
|
-
* className="max-w-md mx-auto p-6 bg-
|
|
2723
|
+
* className="max-w-md mx-auto p-6 bg-main-50 rounded-lg shadow-md"
|
|
2751
2724
|
* onSuccess={() => {
|
|
2752
2725
|
* console.log('Reset email sent successfully');
|
|
2753
2726
|
* navigate('/check-email');
|
|
@@ -2798,6 +2771,153 @@ interface PasswordResetFormProps {
|
|
|
2798
2771
|
}
|
|
2799
2772
|
declare function PasswordResetForm({ onSuccess, onError, className }: PasswordResetFormProps): react_jsx_runtime.JSX.Element;
|
|
2800
2773
|
|
|
2774
|
+
interface FileUploadProps {
|
|
2775
|
+
supabase: SupabaseClient;
|
|
2776
|
+
appName: string;
|
|
2777
|
+
orgId: string;
|
|
2778
|
+
onUploadComplete?: (result: {
|
|
2779
|
+
success: boolean;
|
|
2780
|
+
path?: string;
|
|
2781
|
+
error?: string;
|
|
2782
|
+
}) => void;
|
|
2783
|
+
onUploadStart?: () => void;
|
|
2784
|
+
accept?: string;
|
|
2785
|
+
maxSize?: number;
|
|
2786
|
+
multiple?: boolean;
|
|
2787
|
+
disabled?: boolean;
|
|
2788
|
+
className?: string;
|
|
2789
|
+
children?: React__default.ReactNode;
|
|
2790
|
+
}
|
|
2791
|
+
declare function FileUpload({ supabase, appName, orgId, onUploadComplete, onUploadStart, accept, maxSize, multiple, disabled, className, children }: FileUploadProps): react_jsx_runtime.JSX.Element;
|
|
2792
|
+
|
|
2793
|
+
/**
|
|
2794
|
+
* Storage utility types for pace-core
|
|
2795
|
+
*/
|
|
2796
|
+
interface StorageUploadOptions {
|
|
2797
|
+
/** The app name from rbac_apps */
|
|
2798
|
+
appName: string;
|
|
2799
|
+
/** Organisation ID for scoping */
|
|
2800
|
+
orgId: string;
|
|
2801
|
+
/** Whether the file should be publicly accessible */
|
|
2802
|
+
isPublic?: boolean;
|
|
2803
|
+
/** Optional tags for categorisation */
|
|
2804
|
+
tags?: string[];
|
|
2805
|
+
/** Optional custom path within the app/org structure */
|
|
2806
|
+
customPath?: string;
|
|
2807
|
+
/** Optional metadata to store with the file */
|
|
2808
|
+
metadata?: Record<string, any>;
|
|
2809
|
+
}
|
|
2810
|
+
interface StorageFileMetadata {
|
|
2811
|
+
mimeType: string;
|
|
2812
|
+
size: number;
|
|
2813
|
+
width?: number;
|
|
2814
|
+
height?: number;
|
|
2815
|
+
hash?: string;
|
|
2816
|
+
orgId: string;
|
|
2817
|
+
appName: string;
|
|
2818
|
+
uploadedBy: string;
|
|
2819
|
+
uploadedAt: string;
|
|
2820
|
+
tags?: string[];
|
|
2821
|
+
isPublic: boolean;
|
|
2822
|
+
customMetadata?: Record<string, any>;
|
|
2823
|
+
}
|
|
2824
|
+
interface StorageUploadResult {
|
|
2825
|
+
success: boolean;
|
|
2826
|
+
path?: string;
|
|
2827
|
+
publicUrl?: string;
|
|
2828
|
+
metadata?: StorageFileMetadata;
|
|
2829
|
+
error?: string;
|
|
2830
|
+
}
|
|
2831
|
+
interface StorageUrlOptions {
|
|
2832
|
+
/** The app name from rbac_apps */
|
|
2833
|
+
appName: string;
|
|
2834
|
+
/** Organisation ID for scoping */
|
|
2835
|
+
orgId: string;
|
|
2836
|
+
/** Expiry time in seconds for signed URLs (default: 3600) */
|
|
2837
|
+
expiresIn?: number;
|
|
2838
|
+
}
|
|
2839
|
+
interface StorageListOptions {
|
|
2840
|
+
/** The app name from rbac_apps */
|
|
2841
|
+
appName: string;
|
|
2842
|
+
/** Organisation ID for scoping */
|
|
2843
|
+
orgId: string;
|
|
2844
|
+
/** Optional path prefix to filter by */
|
|
2845
|
+
pathPrefix?: string;
|
|
2846
|
+
/** Optional tags to filter by */
|
|
2847
|
+
tags?: string[];
|
|
2848
|
+
/** Maximum number of files to return */
|
|
2849
|
+
limit?: number;
|
|
2850
|
+
/** Offset for pagination */
|
|
2851
|
+
offset?: number;
|
|
2852
|
+
}
|
|
2853
|
+
interface StorageFileInfo {
|
|
2854
|
+
name: string;
|
|
2855
|
+
path: string;
|
|
2856
|
+
size: number;
|
|
2857
|
+
mimeType: string;
|
|
2858
|
+
lastModified: string;
|
|
2859
|
+
metadata: StorageFileMetadata;
|
|
2860
|
+
}
|
|
2861
|
+
interface StorageListResult {
|
|
2862
|
+
files: StorageFileInfo[];
|
|
2863
|
+
totalCount: number;
|
|
2864
|
+
hasMore: boolean;
|
|
2865
|
+
}
|
|
2866
|
+
interface FileSizeLimits {
|
|
2867
|
+
[mimeType: string]: number;
|
|
2868
|
+
}
|
|
2869
|
+
interface StorageConfig {
|
|
2870
|
+
bucketName: string;
|
|
2871
|
+
fileSizeLimits: FileSizeLimits;
|
|
2872
|
+
defaultFileSizeLimit: number;
|
|
2873
|
+
}
|
|
2874
|
+
|
|
2875
|
+
/**
|
|
2876
|
+
* React hook for storage operations
|
|
2877
|
+
*/
|
|
2878
|
+
|
|
2879
|
+
interface UseStorageOptions {
|
|
2880
|
+
supabase: SupabaseClient;
|
|
2881
|
+
appName: string;
|
|
2882
|
+
orgId: string;
|
|
2883
|
+
}
|
|
2884
|
+
interface UseStorageReturn {
|
|
2885
|
+
uploadFile: (file: File, options?: Partial<StorageUploadOptions>) => Promise<StorageUploadResult>;
|
|
2886
|
+
isUploading: boolean;
|
|
2887
|
+
uploadError: string | null;
|
|
2888
|
+
getPublicUrl: (path: string) => string;
|
|
2889
|
+
getSignedUrl: (path: string, expiresIn?: number) => Promise<string | null>;
|
|
2890
|
+
getFileUrl: (path: string) => string;
|
|
2891
|
+
deleteFile: (path: string) => Promise<{
|
|
2892
|
+
success: boolean;
|
|
2893
|
+
error?: string;
|
|
2894
|
+
}>;
|
|
2895
|
+
archiveFile: (path: string) => Promise<{
|
|
2896
|
+
success: boolean;
|
|
2897
|
+
error?: string;
|
|
2898
|
+
}>;
|
|
2899
|
+
listFiles: (options?: Partial<StorageListOptions>) => Promise<StorageListResult>;
|
|
2900
|
+
isListing: boolean;
|
|
2901
|
+
listError: string | null;
|
|
2902
|
+
isLoading: boolean;
|
|
2903
|
+
error: string | null;
|
|
2904
|
+
files: StorageFileInfo[];
|
|
2905
|
+
refreshFiles: () => Promise<void>;
|
|
2906
|
+
}
|
|
2907
|
+
/**
|
|
2908
|
+
* Hook for storage operations with app and organisation context
|
|
2909
|
+
*/
|
|
2910
|
+
declare function useStorage({ supabase, appName, orgId }: UseStorageOptions): UseStorageReturn;
|
|
2911
|
+
/**
|
|
2912
|
+
* Hook for file upload with progress tracking
|
|
2913
|
+
*/
|
|
2914
|
+
declare function useFileUpload({ supabase, appName, orgId }: UseStorageOptions): {
|
|
2915
|
+
uploadWithProgress: (file: File, options?: Partial<StorageUploadOptions>) => Promise<StorageUploadResult>;
|
|
2916
|
+
uploadProgress: number;
|
|
2917
|
+
isUploading: boolean;
|
|
2918
|
+
uploadError: string | null;
|
|
2919
|
+
};
|
|
2920
|
+
|
|
2801
2921
|
/**
|
|
2802
2922
|
* @file Table Component System
|
|
2803
2923
|
* @package @jmruthers/pace-core
|
|
@@ -2914,4 +3034,397 @@ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<
|
|
|
2914
3034
|
declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
|
|
2915
3035
|
declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
|
|
2916
3036
|
|
|
2917
|
-
|
|
3037
|
+
interface PublicPageLayoutProps {
|
|
3038
|
+
/** The event code for this public page */
|
|
3039
|
+
eventCode: string;
|
|
3040
|
+
/** Child components to render */
|
|
3041
|
+
children: ReactNode;
|
|
3042
|
+
/** Optional event data - if not provided, will be fetched by parent component */
|
|
3043
|
+
event?: Event | null;
|
|
3044
|
+
/** Whether to show the footer (default: true) */
|
|
3045
|
+
showFooter?: boolean;
|
|
3046
|
+
/** Custom CSS classes for the layout */
|
|
3047
|
+
className?: string;
|
|
3048
|
+
/** Custom error fallback component */
|
|
3049
|
+
errorFallback?: React__default.ComponentType<{
|
|
3050
|
+
error: Error;
|
|
3051
|
+
retry: () => void;
|
|
3052
|
+
}>;
|
|
3053
|
+
/** Custom loading fallback component */
|
|
3054
|
+
loadingFallback?: React__default.ComponentType;
|
|
3055
|
+
/** Custom header component */
|
|
3056
|
+
customHeader?: ReactNode;
|
|
3057
|
+
/** Custom footer component */
|
|
3058
|
+
customFooter?: ReactNode;
|
|
3059
|
+
/** Whether to show event validation errors (default: true) */
|
|
3060
|
+
showValidationErrors?: boolean;
|
|
3061
|
+
}
|
|
3062
|
+
/**
|
|
3063
|
+
* Layout component for public pages that don't require authentication
|
|
3064
|
+
*
|
|
3065
|
+
* This component provides a consistent structure for public event pages
|
|
3066
|
+
* with event-specific branding, error handling, and loading states.
|
|
3067
|
+
*
|
|
3068
|
+
* @param props - Layout configuration and content
|
|
3069
|
+
* @returns React element with complete public page layout
|
|
3070
|
+
*/
|
|
3071
|
+
declare function PublicPageLayout({ eventCode, children, event, showFooter, className, errorFallback: ErrorFallback, loadingFallback: LoadingFallback, customHeader, customFooter, showValidationErrors }: PublicPageLayoutProps): react_jsx_runtime.JSX.Element;
|
|
3072
|
+
/**
|
|
3073
|
+
* Hook for accessing public page context
|
|
3074
|
+
* Provides access to event data and layout state within public pages
|
|
3075
|
+
*
|
|
3076
|
+
* @deprecated This hook is no longer needed as PublicPageLayout no longer
|
|
3077
|
+
* automatically fetches event data. Use usePublicRouteParams and usePublicEvent
|
|
3078
|
+
* directly in your components instead.
|
|
3079
|
+
*/
|
|
3080
|
+
declare function usePublicPageContext$1(): {
|
|
3081
|
+
eventCode: null;
|
|
3082
|
+
eventId: null;
|
|
3083
|
+
event: null;
|
|
3084
|
+
isLoading: boolean;
|
|
3085
|
+
error: null;
|
|
3086
|
+
refetch: () => Promise<void>;
|
|
3087
|
+
isPublicPage: boolean;
|
|
3088
|
+
};
|
|
3089
|
+
|
|
3090
|
+
interface PublicPageHeaderProps {
|
|
3091
|
+
/** The event data for this public page */
|
|
3092
|
+
event: Event;
|
|
3093
|
+
/** The event code for this public page */
|
|
3094
|
+
eventCode: string;
|
|
3095
|
+
/** Optional page title */
|
|
3096
|
+
title?: string;
|
|
3097
|
+
/** Optional page description */
|
|
3098
|
+
description?: string;
|
|
3099
|
+
/** Whether to show the event logo (default: true) */
|
|
3100
|
+
showEventLogo?: boolean;
|
|
3101
|
+
/** Whether to show the app logo (default: true) */
|
|
3102
|
+
showAppLogo?: boolean;
|
|
3103
|
+
/** Custom CSS classes for the header */
|
|
3104
|
+
className?: string;
|
|
3105
|
+
/** Custom content to display in the header */
|
|
3106
|
+
children?: ReactNode;
|
|
3107
|
+
/** Custom app logo component */
|
|
3108
|
+
customAppLogo?: ReactNode;
|
|
3109
|
+
/** Custom event logo component */
|
|
3110
|
+
customEventLogo?: ReactNode;
|
|
3111
|
+
}
|
|
3112
|
+
/**
|
|
3113
|
+
* Header component for public pages with event-specific branding
|
|
3114
|
+
*
|
|
3115
|
+
* This component displays the app logo, event logo, and event information
|
|
3116
|
+
* in a clean, accessible layout suitable for public pages.
|
|
3117
|
+
*
|
|
3118
|
+
* @param props - Header configuration and content
|
|
3119
|
+
* @returns React element with public page header
|
|
3120
|
+
*/
|
|
3121
|
+
declare function PublicPageHeader({ event, eventCode, title, description, showEventLogo, showAppLogo, className, children, customAppLogo, customEventLogo }: PublicPageHeaderProps): react_jsx_runtime.JSX.Element;
|
|
3122
|
+
|
|
3123
|
+
interface PublicPageContextType {
|
|
3124
|
+
isPublicPage: true;
|
|
3125
|
+
supabase: ReturnType<typeof createClient<Database>> | null;
|
|
3126
|
+
environment: {
|
|
3127
|
+
supabaseUrl: string | null;
|
|
3128
|
+
supabaseKey: string | null;
|
|
3129
|
+
};
|
|
3130
|
+
}
|
|
3131
|
+
interface PublicPageProviderProps {
|
|
3132
|
+
children: ReactNode;
|
|
3133
|
+
}
|
|
3134
|
+
/**
|
|
3135
|
+
* Provider for public pages that completely isolates them from authentication context
|
|
3136
|
+
*
|
|
3137
|
+
* This provider:
|
|
3138
|
+
* - Does not initialize any authentication providers
|
|
3139
|
+
* - Provides environment variables for public data access
|
|
3140
|
+
* - Includes error boundary for graceful error handling
|
|
3141
|
+
* - Is completely separate from the main app context
|
|
3142
|
+
*/
|
|
3143
|
+
declare function PublicPageProvider({ children }: PublicPageProviderProps): react_jsx_runtime.JSX.Element;
|
|
3144
|
+
/**
|
|
3145
|
+
* Hook to access public page context
|
|
3146
|
+
*
|
|
3147
|
+
* @returns Public page context with environment variables
|
|
3148
|
+
*/
|
|
3149
|
+
declare function usePublicPageContext(): PublicPageContextType;
|
|
3150
|
+
/**
|
|
3151
|
+
* Hook to check if we're in a public page context
|
|
3152
|
+
*
|
|
3153
|
+
* @returns True if we're in a public page context
|
|
3154
|
+
*/
|
|
3155
|
+
declare function useIsPublicPage(): boolean;
|
|
3156
|
+
|
|
3157
|
+
interface PublicPageFooterProps {
|
|
3158
|
+
/** The event data for this public page */
|
|
3159
|
+
event: Event;
|
|
3160
|
+
/** Company or organization name */
|
|
3161
|
+
companyName?: string;
|
|
3162
|
+
/** Current year or custom year for copyright */
|
|
3163
|
+
year?: number;
|
|
3164
|
+
/** Optional array of navigation links to display */
|
|
3165
|
+
links?: Array<{
|
|
3166
|
+
label: string;
|
|
3167
|
+
href: string;
|
|
3168
|
+
}>;
|
|
3169
|
+
/** Optional CSS class name */
|
|
3170
|
+
className?: string;
|
|
3171
|
+
/** Logo image URL */
|
|
3172
|
+
logo?: string;
|
|
3173
|
+
/** Copyright text */
|
|
3174
|
+
copyright?: string;
|
|
3175
|
+
/** Footer content - children to render inside footer */
|
|
3176
|
+
children?: React__default.ReactNode;
|
|
3177
|
+
}
|
|
3178
|
+
/**
|
|
3179
|
+
* Footer component for public pages that matches the normal Footer exactly
|
|
3180
|
+
*
|
|
3181
|
+
* This component uses the same styling and structure as the main Footer component
|
|
3182
|
+
* to ensure consistency across the application.
|
|
3183
|
+
*
|
|
3184
|
+
* @param props - Footer configuration and content
|
|
3185
|
+
* @returns React element with public page footer
|
|
3186
|
+
*/
|
|
3187
|
+
declare function PublicPageFooter({ event, companyName, year, links, className, logo, copyright, children }: PublicPageFooterProps): react_jsx_runtime.JSX.Element;
|
|
3188
|
+
|
|
3189
|
+
/**
|
|
3190
|
+
* @file Public Page Debugger
|
|
3191
|
+
* @package @jmruthers/pace-core
|
|
3192
|
+
* @module Components/PublicLayout
|
|
3193
|
+
* @since 1.0.0
|
|
3194
|
+
*
|
|
3195
|
+
* A debugging component that helps identify why authentication context
|
|
3196
|
+
* is being triggered in public pages.
|
|
3197
|
+
*/
|
|
3198
|
+
interface PublicPageDebuggerProps {
|
|
3199
|
+
/** Whether to enable debugging */
|
|
3200
|
+
enabled?: boolean;
|
|
3201
|
+
/** Custom label for this debugger instance */
|
|
3202
|
+
label?: string;
|
|
3203
|
+
}
|
|
3204
|
+
/**
|
|
3205
|
+
* Debugger component that logs context information
|
|
3206
|
+
*
|
|
3207
|
+
* This component helps identify why authentication context
|
|
3208
|
+
* is being triggered in public pages.
|
|
3209
|
+
*/
|
|
3210
|
+
declare function PublicPageDebugger({ enabled, label }: PublicPageDebuggerProps): react_jsx_runtime.JSX.Element | null;
|
|
3211
|
+
|
|
3212
|
+
/**
|
|
3213
|
+
* @file Public Page Diagnostic Component
|
|
3214
|
+
* @package @jmruthers/pace-core
|
|
3215
|
+
* @module Components/PublicLayout
|
|
3216
|
+
* @since 1.0.0
|
|
3217
|
+
*
|
|
3218
|
+
* A diagnostic component that helps identify exactly where authentication
|
|
3219
|
+
* context is being triggered in public pages.
|
|
3220
|
+
*/
|
|
3221
|
+
interface PublicPageDiagnosticProps {
|
|
3222
|
+
/** Whether to enable diagnostics */
|
|
3223
|
+
enabled?: boolean;
|
|
3224
|
+
/** Custom label for this diagnostic instance */
|
|
3225
|
+
label?: string;
|
|
3226
|
+
}
|
|
3227
|
+
/**
|
|
3228
|
+
* Diagnostic component that identifies authentication context issues
|
|
3229
|
+
*
|
|
3230
|
+
* This component will help you identify exactly where the problem is
|
|
3231
|
+
* in your public page implementation.
|
|
3232
|
+
*/
|
|
3233
|
+
declare function PublicPageDiagnostic({ enabled, label }: PublicPageDiagnosticProps): react_jsx_runtime.JSX.Element | null;
|
|
3234
|
+
|
|
3235
|
+
/**
|
|
3236
|
+
* @file Public Page Context Checker
|
|
3237
|
+
* @package @jmruthers/pace-core
|
|
3238
|
+
* @module Components/PublicLayout
|
|
3239
|
+
* @since 1.0.0
|
|
3240
|
+
*
|
|
3241
|
+
* A simple component that immediately identifies if a public page
|
|
3242
|
+
* is being rendered inside authentication context.
|
|
3243
|
+
*/
|
|
3244
|
+
interface PublicPageContextCheckerProps {
|
|
3245
|
+
/** Whether to enable checking */
|
|
3246
|
+
enabled?: boolean;
|
|
3247
|
+
/** Custom label for this checker instance */
|
|
3248
|
+
label?: string;
|
|
3249
|
+
}
|
|
3250
|
+
/**
|
|
3251
|
+
* Context checker component that immediately identifies authentication context issues
|
|
3252
|
+
*
|
|
3253
|
+
* This component will immediately log to console if authentication context
|
|
3254
|
+
* is being triggered in a public page.
|
|
3255
|
+
*/
|
|
3256
|
+
declare function PublicPageContextChecker({ enabled, label }: PublicPageContextCheckerProps): react_jsx_runtime.JSX.Element | null;
|
|
3257
|
+
|
|
3258
|
+
interface EventLogoProps {
|
|
3259
|
+
/** The event ID to fetch logo for */
|
|
3260
|
+
eventId: string;
|
|
3261
|
+
/** The event name for fallback text generation */
|
|
3262
|
+
eventName: string;
|
|
3263
|
+
/** The organisation ID for storage path */
|
|
3264
|
+
organisationId: string;
|
|
3265
|
+
/** Logo size variant */
|
|
3266
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
3267
|
+
/** Custom CSS classes */
|
|
3268
|
+
className?: string;
|
|
3269
|
+
/** Whether to show fallback text when no logo is available */
|
|
3270
|
+
showFallback?: boolean;
|
|
3271
|
+
/** Custom fallback text generator */
|
|
3272
|
+
generateFallbackText?: (eventName: string) => string;
|
|
3273
|
+
/** Whether to validate image existence */
|
|
3274
|
+
validateImage?: boolean;
|
|
3275
|
+
/** Custom loading component */
|
|
3276
|
+
loadingComponent?: React__default.ComponentType;
|
|
3277
|
+
/** Custom error component */
|
|
3278
|
+
errorComponent?: React__default.ComponentType<{
|
|
3279
|
+
error: Error;
|
|
3280
|
+
}>;
|
|
3281
|
+
}
|
|
3282
|
+
/**
|
|
3283
|
+
* Component for displaying event logos with fallback to initials
|
|
3284
|
+
*
|
|
3285
|
+
* This component is context-aware and automatically detects whether it's being used
|
|
3286
|
+
* in a public or authenticated context. It fetches and displays event logos from storage,
|
|
3287
|
+
* with automatic fallback to event initials if no logo is available.
|
|
3288
|
+
*
|
|
3289
|
+
* @param props - Logo configuration and styling
|
|
3290
|
+
* @returns React element with event logo or fallback
|
|
3291
|
+
*/
|
|
3292
|
+
declare function EventLogo({ eventId, eventName, organisationId, size, className, showFallback, generateFallbackText, validateImage, loadingComponent: LoadingComponent, errorComponent: ErrorComponent }: EventLogoProps): react_jsx_runtime.JSX.Element | null;
|
|
3293
|
+
/**
|
|
3294
|
+
* Compact event logo for small spaces
|
|
3295
|
+
*/
|
|
3296
|
+
declare function EventLogoCompact(props: EventLogoProps): react_jsx_runtime.JSX.Element;
|
|
3297
|
+
/**
|
|
3298
|
+
* Large event logo for prominent display
|
|
3299
|
+
*/
|
|
3300
|
+
declare function EventLogoLarge(props: EventLogoProps): react_jsx_runtime.JSX.Element;
|
|
3301
|
+
|
|
3302
|
+
interface PublicErrorBoundaryProps {
|
|
3303
|
+
/** Child components to wrap */
|
|
3304
|
+
children: ReactNode;
|
|
3305
|
+
/** Custom error fallback component */
|
|
3306
|
+
fallback?: React__default.ComponentType<PublicErrorBoundaryState>;
|
|
3307
|
+
/** Custom CSS classes for error display */
|
|
3308
|
+
className?: string;
|
|
3309
|
+
/** Whether to show error details in development */
|
|
3310
|
+
showErrorDetails?: boolean;
|
|
3311
|
+
/** Custom error message */
|
|
3312
|
+
customErrorMessage?: string;
|
|
3313
|
+
/** Custom recovery action */
|
|
3314
|
+
onRecover?: () => void;
|
|
3315
|
+
}
|
|
3316
|
+
interface PublicErrorBoundaryState {
|
|
3317
|
+
/** Whether an error has occurred */
|
|
3318
|
+
hasError: boolean;
|
|
3319
|
+
/** The error that occurred */
|
|
3320
|
+
error: Error | null;
|
|
3321
|
+
/** Error information */
|
|
3322
|
+
errorInfo: ErrorInfo | null;
|
|
3323
|
+
/** Function to reset the error state */
|
|
3324
|
+
resetError: () => void;
|
|
3325
|
+
}
|
|
3326
|
+
/**
|
|
3327
|
+
* Error boundary component for public pages
|
|
3328
|
+
*
|
|
3329
|
+
* This component catches JavaScript errors anywhere in the child component tree,
|
|
3330
|
+
* logs those errors, and displays a fallback UI instead of the component tree that crashed.
|
|
3331
|
+
*
|
|
3332
|
+
* @param props - Error boundary configuration
|
|
3333
|
+
* @returns React element with error boundary wrapper
|
|
3334
|
+
*/
|
|
3335
|
+
declare class PublicErrorBoundary extends Component<PublicErrorBoundaryProps, PublicErrorBoundaryState> {
|
|
3336
|
+
constructor(props: PublicErrorBoundaryProps);
|
|
3337
|
+
static getDerivedStateFromError(error: Error): Partial<PublicErrorBoundaryState>;
|
|
3338
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
3339
|
+
resetError: () => void;
|
|
3340
|
+
render(): string | number | boolean | Iterable<React__default.ReactNode> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
3341
|
+
}
|
|
3342
|
+
/**
|
|
3343
|
+
* Hook for accessing error boundary state
|
|
3344
|
+
* Useful for components that need to know if they're inside an error boundary
|
|
3345
|
+
*/
|
|
3346
|
+
declare function useErrorBoundary(): {
|
|
3347
|
+
captureError: (error: Error) => void;
|
|
3348
|
+
resetError: () => void;
|
|
3349
|
+
};
|
|
3350
|
+
/**
|
|
3351
|
+
* Default error fallback component
|
|
3352
|
+
*/
|
|
3353
|
+
declare function DefaultPublicErrorFallback({ error, resetError }: PublicErrorBoundaryState): react_jsx_runtime.JSX.Element;
|
|
3354
|
+
|
|
3355
|
+
/**
|
|
3356
|
+
* @file Public Loading Spinner Component
|
|
3357
|
+
* @package @jmruthers/pace-core
|
|
3358
|
+
* @module Components/PublicLayout
|
|
3359
|
+
* @since 1.0.0
|
|
3360
|
+
*
|
|
3361
|
+
* A loading spinner component specifically designed for public pages.
|
|
3362
|
+
* Provides consistent loading states with event-specific branding.
|
|
3363
|
+
*
|
|
3364
|
+
* Features:
|
|
3365
|
+
* - Consistent loading design
|
|
3366
|
+
* - Event-specific branding
|
|
3367
|
+
* - Multiple size options
|
|
3368
|
+
* - Accessibility compliant
|
|
3369
|
+
* - TypeScript support
|
|
3370
|
+
*
|
|
3371
|
+
* @example
|
|
3372
|
+
* ```tsx
|
|
3373
|
+
* import { PublicLoadingSpinner } from '@jmruthers/pace-core';
|
|
3374
|
+
*
|
|
3375
|
+
* function PublicEventPage() {
|
|
3376
|
+
* if (isLoading) {
|
|
3377
|
+
* return <PublicLoadingSpinner message="Loading event details..." />;
|
|
3378
|
+
* }
|
|
3379
|
+
* }
|
|
3380
|
+
* ```
|
|
3381
|
+
*
|
|
3382
|
+
* @accessibility
|
|
3383
|
+
* - WCAG 2.1 AA compliant
|
|
3384
|
+
* - Screen reader friendly
|
|
3385
|
+
* - Proper ARIA labels
|
|
3386
|
+
* - High contrast support
|
|
3387
|
+
*
|
|
3388
|
+
* @dependencies
|
|
3389
|
+
* - React 18+ - Component framework
|
|
3390
|
+
* - Tailwind CSS - Styling
|
|
3391
|
+
*/
|
|
3392
|
+
interface PublicLoadingSpinnerProps {
|
|
3393
|
+
/** Loading message to display */
|
|
3394
|
+
message?: string;
|
|
3395
|
+
/** Size variant */
|
|
3396
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
3397
|
+
/** Custom CSS classes */
|
|
3398
|
+
className?: string;
|
|
3399
|
+
/** Whether to show the app logo */
|
|
3400
|
+
showLogo?: boolean;
|
|
3401
|
+
/** Custom loading message */
|
|
3402
|
+
customMessage?: string;
|
|
3403
|
+
/** Whether to center the spinner */
|
|
3404
|
+
centered?: boolean;
|
|
3405
|
+
}
|
|
3406
|
+
/**
|
|
3407
|
+
* Loading spinner component for public pages
|
|
3408
|
+
*
|
|
3409
|
+
* This component displays a consistent loading state with optional
|
|
3410
|
+
* branding and messaging for public pages.
|
|
3411
|
+
*
|
|
3412
|
+
* @param props - Spinner configuration and styling
|
|
3413
|
+
* @returns React element with loading spinner
|
|
3414
|
+
*/
|
|
3415
|
+
declare function PublicLoadingSpinner({ message, size, className, showLogo, customMessage, centered }: PublicLoadingSpinnerProps): react_jsx_runtime.JSX.Element;
|
|
3416
|
+
/**
|
|
3417
|
+
* Full page loading spinner with event branding
|
|
3418
|
+
*/
|
|
3419
|
+
declare function PublicLoadingSpinnerFullPage({ message, eventName, className }: Pick<PublicLoadingSpinnerProps, 'message' | 'className'> & {
|
|
3420
|
+
eventName?: string;
|
|
3421
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3422
|
+
/**
|
|
3423
|
+
* Skeleton loading component for content placeholders
|
|
3424
|
+
*/
|
|
3425
|
+
declare function PublicLoadingSkeleton({ lines, className }: {
|
|
3426
|
+
lines?: number;
|
|
3427
|
+
className?: string;
|
|
3428
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3429
|
+
|
|
3430
|
+
export { ToastViewport as $, Alert as A, Button as B, Card as C, Dialog as D, DialogContent as E, type FileSizeLimits as F, DialogHeader as G, DialogBody as H, Input as I, DialogFooter as J, DialogTitle as K, Label as L, DialogDescription as M, Select as N, SelectGroup as O, Progress as P, SelectValue as Q, SelectTrigger as R, type StorageConfig as S, SelectContent as T, SelectLabel as U, SelectItem as V, SelectSeparator as W, Toast as X, Toaster as Y, ToastAction as Z, ToastProvider as _, type StorageUploadOptions as a, type PublicPageLayoutProps as a$, ToastTitle as a0, ToastDescription as a1, ToastClose as a2, useToast as a3, type ToastActionElement as a4, type ToastProps as a5, Tooltip as a6, TooltipTrigger as a7, TooltipContent as a8, TooltipProvider as a9, TableHeader as aA, TableBody as aB, TableCaption as aC, TableCell as aD, TableFooter as aE, TableHead as aF, TableRow as aG, type StorageFileInfo as aH, PublicPageLayout as aI, usePublicPageContext$1 as aJ, PublicPageHeader as aK, PublicPageProvider as aL, usePublicPageContext as aM, useIsPublicPage as aN, PublicPageFooter as aO, PublicPageDebugger as aP, PublicPageDiagnostic as aQ, PublicPageContextChecker as aR, EventLogo as aS, EventLogoCompact as aT, EventLogoLarge as aU, PublicErrorBoundary as aV, useErrorBoundary as aW, DefaultPublicErrorFallback as aX, PublicLoadingSpinner as aY, PublicLoadingSpinnerFullPage as aZ, PublicLoadingSkeleton as a_, TooltipRoot as aa, Form as ab, LoginForm as ac, type LoginFormProps as ad, Header as ae, Footer as af, type FooterProps as ag, NavigationMenu as ah, type NavigationMenuProps as ai, type NavigationItem as aj, UserMenu as ak, type UserMenuProps as al, PaceAppLayout as am, type PaceAppLayoutProps as an, PaceLoginPage as ao, type PaceLoginPageProps as ap, ErrorBoundary as aq, LoadingSpinner as ar, EventSelector as as, OrganisationSelector as at, PasswordResetForm as au, FileUpload as av, type FileUploadProps as aw, useStorage as ax, useFileUpload as ay, Table as az, type StorageUploadResult as b, type PublicPageHeaderProps as b0, type PublicPageFooterProps as b1, type EventLogoProps as b2, type PublicErrorBoundaryProps as b3, type PublicErrorBoundaryState as b4, type PublicLoadingSpinnerProps as b5, type CardActionsProps as b6, type DialogProps as b7, type DialogTriggerProps as b8, type DialogContentProps as b9, type DialogOverlayProps as ba, type DialogHeaderProps as bb, type DialogFooterProps as bc, type DialogTitleProps as bd, type DialogDescriptionProps as be, type DialogSize as bf, type FormProps as bg, type OrganisationSelectorProps as bh, type ErrorBoundaryProps as bi, type ErrorBoundaryState as bj, type UseStorageOptions as bk, type UseStorageReturn as bl, type StorageUrlOptions as c, type StorageListOptions as d, type StorageListResult as e, type StorageFileMetadata as f, type ButtonProps as g, CardHeader as h, CardFooter as i, CardTitle as j, CardDescription as k, CardContent as l, CardActions as m, type CardProps as n, type InputProps as o, type LabelProps as p, AlertTitle as q, AlertDescription as r, Avatar as s, AvatarImage as t, AvatarFallback as u, Checkbox as v, DialogPortal as w, DialogOverlay as x, DialogTrigger as y, DialogClose as z };
|