@jmruthers/pace-core 0.2.7 → 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/dist/{DataTable-EEUDXPE5.js → DataTable-GX3XERFJ.js} +8 -4
- package/dist/{DataTable-C1AEm9Cx.d.ts → DataTable-ltTFXHS3.d.ts} +3 -1
- package/dist/{chunk-VYG4AXYW.js → chunk-5EL3KHOQ.js} +2 -2
- package/dist/{chunk-ETEJVKYK.js → chunk-6CR3MRZN.js} +1426 -62
- package/dist/chunk-6CR3MRZN.js.map +1 -0
- package/dist/chunk-AUE24LVR.js +268 -0
- package/dist/chunk-AUE24LVR.js.map +1 -0
- package/dist/chunk-COBPIXXQ.js +379 -0
- package/dist/chunk-COBPIXXQ.js.map +1 -0
- package/dist/{chunk-EWKPTNPO.js → chunk-GSNM5D6H.js} +388 -86
- package/dist/chunk-GSNM5D6H.js.map +1 -0
- package/dist/{chunk-2V3Y6YBC.js → chunk-OEGRKULD.js} +1 -42
- package/dist/chunk-OEGRKULD.js.map +1 -0
- package/dist/chunk-OYRY44Q2.js +62 -0
- package/dist/chunk-OYRY44Q2.js.map +1 -0
- package/dist/{chunk-RRUYHORU.js → chunk-T3XIA4AJ.js} +297 -433
- package/dist/chunk-T3XIA4AJ.js.map +1 -0
- package/dist/{chunk-HEMJ4SUJ.js → chunk-TGDCLPP2.js} +11 -7
- package/dist/{chunk-HEMJ4SUJ.js.map → chunk-TGDCLPP2.js.map} +1 -1
- package/dist/{chunk-HNDFPXUU.js → chunk-U6JDHVC2.js} +6 -4
- package/dist/{chunk-HNDFPXUU.js.map → chunk-U6JDHVC2.js.map} +1 -1
- package/dist/{chunk-TIVL4UQ7.js → chunk-XJK2J4N6.js} +6 -4
- package/dist/{chunk-TIVL4UQ7.js.map → chunk-XJK2J4N6.js.map} +1 -1
- package/dist/components.d.ts +2 -2
- package/dist/components.js +21 -20
- package/dist/components.js.map +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +7 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +26 -25
- package/dist/index.js.map +1 -1
- package/dist/providers.js +8 -7
- package/dist/rbac/index.d.ts +806 -806
- package/dist/rbac/index.js +937 -1179
- package/dist/rbac/index.js.map +1 -1
- package/dist/{types-DiRQsGJs.d.ts → types-BRDU7N6w.d.ts} +12 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +6 -6
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +4 -4
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +21 -8
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +46 -33
- package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
- package/docs/api/interfaces/EmptyStateConfig.md +5 -5
- package/docs/api/interfaces/EventContextType.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/EventProviderProps.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- 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 +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +3 -3
- package/package.json +5 -2
- 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 +37 -225
- package/src/__tests__/templates/component.test.template.tsx +97 -75
- package/src/__tests__/templates/hook.test.template.ts +173 -0
- package/src/__tests__/types/test.types.ts +106 -0
- package/src/components/Alert/Alert.test.tsx +496 -0
- package/src/components/Avatar/Avatar.test.tsx +484 -0
- package/src/components/Button/Button.test.tsx +662 -0
- package/src/components/Card/Card.test.tsx +593 -0
- package/src/components/Checkbox/Checkbox.test.tsx +461 -0
- package/src/components/DataTable/DataTable.tsx +9 -1
- package/src/components/DataTable/components/AccessDeniedPage.tsx +168 -0
- package/src/components/DataTable/components/ActionButtons.tsx +18 -1
- package/src/components/DataTable/components/DataTableCore.tsx +97 -11
- package/src/components/DataTable/components/DataTableToolbar.tsx +22 -10
- package/src/components/DataTable/components/UnifiedTableBody.tsx +33 -4
- package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +1 -0
- package/src/components/DataTable/examples/HierarchicalExample.tsx +3 -0
- package/src/components/DataTable/examples/InitialPageSizeExample.tsx +3 -0
- package/src/components/DataTable/examples/PerformanceExample.tsx +3 -0
- package/src/components/DataTable/types.ts +39 -1
- package/src/components/Dialog/Dialog.test.tsx +1139 -0
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +752 -0
- package/src/components/FileUpload/FileUpload.test.tsx +665 -0
- package/src/hooks/useCounter.test.ts +135 -0
- package/src/rbac/index.ts +3 -3
- package/dist/chunk-2V3Y6YBC.js.map +0 -1
- package/dist/chunk-BEZRLNK3.js +0 -1744
- package/dist/chunk-BEZRLNK3.js.map +0 -1
- package/dist/chunk-ETEJVKYK.js.map +0 -1
- package/dist/chunk-EWKPTNPO.js.map +0 -1
- package/dist/chunk-OHXGNT3K.js +0 -21
- package/dist/chunk-OHXGNT3K.js.map +0 -1
- package/dist/chunk-RRUYHORU.js.map +0 -1
- package/src/__tests__/README.md +0 -404
- package/src/__tests__/debug-provider.unit.test.tsx +0 -67
- package/src/__tests__/e2e/workflows.test.tsx +0 -373
- package/src/__tests__/hybridPermissions.unit.test.tsx +0 -474
- package/src/__tests__/index.integration.test.ts +0 -491
- package/src/__tests__/mocks/MockAuthProvider-standalone.tsx +0 -47
- package/src/__tests__/mocks/MockAuthProvider.tsx +0 -63
- package/src/__tests__/mocks/enhancedSupabaseMock.ts +0 -252
- package/src/__tests__/mocks/index.test.ts +0 -23
- package/src/__tests__/mocks/index.ts +0 -16
- package/src/__tests__/mocks/mockAuth.ts +0 -155
- package/src/__tests__/mocks/mockSupabase.ts +0 -83
- package/src/__tests__/mocks/mockSupabaseClient.ts +0 -63
- package/src/__tests__/mocks/providers.tsx +0 -22
- package/src/__tests__/patterns/__tests__/testPatterns.test.ts +0 -394
- package/src/__tests__/patterns/testPatterns.ts +0 -124
- package/src/__tests__/performance/componentPerformance.performance.test.ts +0 -27
- package/src/__tests__/performance/index.ts +0 -24
- package/src/__tests__/performance/performanceValidation.performance.test.ts +0 -15
- package/src/__tests__/security/security.unit.test.tsx +0 -7
- package/src/__tests__/security/securityValidation.security.test.tsx +0 -153
- package/src/__tests__/setupTests.d.ts +0 -1
- package/src/__tests__/shared/componentTestUtils.tsx +0 -475
- package/src/__tests__/shared/errorHandlingTestUtils.ts +0 -107
- package/src/__tests__/shared/index.ts +0 -81
- package/src/__tests__/shared/integrationTestUtils.tsx +0 -375
- package/src/__tests__/shared/performanceTestUtils.tsx +0 -476
- package/src/__tests__/shared/testUtils.optimized.tsx +0 -685
- package/src/__tests__/simple.test.tsx +0 -20
- package/src/__tests__/test-utils/dataFactories.ts +0 -60
- package/src/__tests__/test-utils/index.ts +0 -6
- package/src/__tests__/typeSafety.unit.test.ts +0 -65
- package/src/__tests__/unifiedAuth.unit.test.tsx +0 -151
- package/src/__tests__/utils/accessibilityHelpers.ts +0 -254
- package/src/__tests__/utils/assertions.ts +0 -50
- package/src/__tests__/utils/deterministicHelpers.ts +0 -31
- package/src/__tests__/utils/edgeCaseConfig.test.ts +0 -75
- package/src/__tests__/utils/edgeCaseConfig.ts +0 -98
- package/src/__tests__/utils/mockHelpers.ts +0 -149
- package/src/__tests__/utils/mockLoader.ts +0 -101
- package/src/__tests__/utils/performanceHelpers.ts +0 -55
- package/src/__tests__/utils/performanceTestHelpers.ts +0 -68
- package/src/__tests__/utils/testDataFactories.ts +0 -28
- package/src/__tests__/utils/testIsolation.ts +0 -67
- package/src/__tests__/utils/visualTestHelpers.ts +0 -20
- package/src/__tests__/visual/__snapshots__/componentSnapshots.visual.test.tsx.snap +0 -68
- package/src/__tests__/visual/__snapshots__/componentVisuals.visual.test.tsx.snap +0 -14
- package/src/__tests__/visual/__snapshots__/visualRegression.test.tsx.snap +0 -217
- package/src/__tests__/visual/__snapshots__/visualRegression.visual.test.tsx.snap +0 -24
- package/src/__tests__/visual/componentSnapshots.visual.test.tsx +0 -33
- package/src/__tests__/visual/componentVisuals.visual.test.tsx +0 -12
- package/src/__tests__/visual/visualRegression.visual.test.tsx +0 -20
- package/src/components/Alert/__tests__/Alert.unit.test.tsx +0 -381
- package/src/components/Avatar/__tests__/Avatar.unit.test.tsx +0 -232
- package/src/components/Button/__tests__/Button.accessibility.test.tsx +0 -131
- package/src/components/Button/__tests__/Button.comprehensive.test.tsx +0 -721
- package/src/components/Button/__tests__/Button.unit.test.tsx +0 -189
- package/src/components/Button/__tests__/EventSelector.integration.test.tsx +0 -285
- package/src/components/Card/__tests__/Card.accessibility.test.tsx +0 -394
- package/src/components/Card/__tests__/Card.comprehensive.test.tsx +0 -599
- package/src/components/Card/__tests__/Card.integration.test.tsx +0 -673
- package/src/components/Card/__tests__/Card.performance.test.tsx +0 -546
- package/src/components/Card/__tests__/Card.unit.test.tsx +0 -330
- package/src/components/Card/__tests__/Card.visual.test.tsx +0 -599
- package/src/components/Card/__tests__/README.md +0 -211
- package/src/components/Checkbox/__tests__/Checkbox.unit.test.tsx +0 -520
- package/src/components/DataTable/__tests__/DataTable.errorHandling.test.tsx +0 -251
- package/src/components/DataTable/__tests__/DataTable.hierarchical.test.tsx +0 -680
- package/src/components/DataTable/__tests__/DataTable.infinite-loop.test.tsx +0 -323
- package/src/components/DataTable/__tests__/DataTable.integration.test.tsx +0 -716
- package/src/components/DataTable/__tests__/DataTable.performance.test.tsx +0 -589
- package/src/components/DataTable/__tests__/DataTable.permissions.test.tsx +0 -316
- package/src/components/DataTable/__tests__/DataTable.regressionFixes.test.tsx +0 -546
- package/src/components/DataTable/__tests__/DataTable.selection.controlled.test.tsx +0 -386
- package/src/components/DataTable/__tests__/DataTable.selection.test.tsx +0 -338
- package/src/components/DataTable/__tests__/DataTable.sorting.test.tsx +0 -321
- package/src/components/DataTable/__tests__/DataTable.userWorkflows.test.tsx +0 -320
- package/src/components/DataTable/__tests__/DataTable.workflowValidation.test.tsx +0 -583
- package/src/components/DataTable/__tests__/DataTable.workflows.test.tsx +0 -711
- package/src/components/DataTable/__tests__/performance-regression.test.tsx +0 -777
- package/src/components/DataTable/__tests__/performance.test.tsx +0 -365
- package/src/components/DataTable/components/__tests__/ActionButtons.unit.test.tsx +0 -150
- package/src/components/DataTable/components/__tests__/BulkOperationsDropdown.test.tsx +0 -224
- package/src/components/DataTable/components/__tests__/ColumnVisibilityDropdown.unit.test.tsx +0 -244
- package/src/components/DataTable/components/__tests__/DataTable.accessibility.test.tsx +0 -629
- package/src/components/DataTable/components/__tests__/DataTable.integration.test.tsx +0 -470
- package/src/components/DataTable/components/__tests__/DataTable.performance.test.tsx +0 -160
- package/src/components/DataTable/components/__tests__/DataTable.real.test.tsx +0 -251
- package/src/components/DataTable/components/__tests__/DataTable.security.test.tsx +0 -171
- package/src/components/DataTable/components/__tests__/DataTable.unit.test.tsx +0 -290
- package/src/components/DataTable/components/__tests__/DataTableBody.unit.test.tsx +0 -147
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.unit.test.tsx +0 -182
- package/src/components/DataTable/components/__tests__/DataTableModals.unit.test.tsx +0 -123
- package/src/components/DataTable/components/__tests__/EditableRow.unit.test.tsx +0 -660
- package/src/components/DataTable/components/__tests__/EmptyState.unit.test.tsx +0 -256
- package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +0 -498
- package/src/components/DataTable/components/__tests__/FilterRow.unit.test.tsx +0 -112
- package/src/components/DataTable/components/__tests__/FilteringToggle.unit.test.tsx +0 -133
- package/src/components/DataTable/components/__tests__/GroupHeader.unit.test.tsx +0 -172
- package/src/components/DataTable/components/__tests__/GroupingDropdown.unit.test.tsx +0 -222
- package/src/components/DataTable/components/__tests__/ImportModal.unit.test.tsx +0 -780
- package/src/components/DataTable/components/__tests__/LoadingState.unit.test.tsx +0 -65
- package/src/components/DataTable/components/__tests__/PaginationControls.unit.test.tsx +0 -634
- package/src/components/DataTable/components/__tests__/StateComponents.unit.test.tsx +0 -48
- package/src/components/DataTable/components/__tests__/UnifiedTableBody.hierarchical.test.tsx +0 -541
- package/src/components/DataTable/components/__tests__/ViewRowModal.unit.test.tsx +0 -228
- package/src/components/DataTable/components/__tests__/VirtualizedDataTable.unit.test.tsx +0 -568
- package/src/components/DataTable/core/__tests__/ActionManager.unit.test.ts +0 -405
- package/src/components/DataTable/core/__tests__/ArchitectureIntegration.unit.test.tsx +0 -445
- package/src/components/DataTable/core/__tests__/ColumnFactory.unit.test.ts +0 -288
- package/src/components/DataTable/core/__tests__/ColumnManager.unit.test.ts +0 -623
- package/src/components/DataTable/core/__tests__/DataManager.unit.test.ts +0 -431
- package/src/components/DataTable/core/__tests__/DataTableContext.unit.test.tsx +0 -433
- package/src/components/DataTable/core/__tests__/LocalDataAdapter.unit.test.ts +0 -422
- package/src/components/DataTable/core/__tests__/PluginRegistry.unit.test.tsx +0 -207
- package/src/components/DataTable/core/__tests__/StateManager.unit.test.ts +0 -278
- package/src/components/DataTable/examples/__tests__/PerformanceExample.unit.test.tsx +0 -281
- package/src/components/DataTable/hooks/__tests__/useColumnOrderPersistence.unit.test.ts +0 -407
- package/src/components/DataTable/hooks/__tests__/useColumnReordering.unit.test.ts +0 -679
- package/src/components/DataTable/utils/__tests__/debugTools.unit.test.ts +0 -267
- package/src/components/DataTable/utils/__tests__/errorHandling.unit.test.ts +0 -467
- package/src/components/DataTable/utils/__tests__/exportUtils.unit.test.ts +0 -380
- package/src/components/DataTable/utils/__tests__/flexibleImport.unit.test.ts +0 -233
- package/src/components/DataTable/utils/__tests__/performanceUtils.unit.test.ts +0 -414
- package/src/components/Dialog/__tests__/Dialog.accessibility.test.tsx +0 -521
- package/src/components/Dialog/__tests__/Dialog.auto-size.example.tsx +0 -157
- package/src/components/Dialog/__tests__/Dialog.enhanced.test.tsx +0 -538
- package/src/components/Dialog/__tests__/Dialog.unit.test.tsx +0 -1373
- package/src/components/Dialog/examples/__tests__/SmartDialogExample.unit.test.tsx +0 -151
- package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +0 -611
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.accessibility.test.tsx +0 -517
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.integration.test.tsx +0 -572
- package/src/components/ErrorBoundary/__tests__/ErrorBoundary.unit.test.tsx +0 -579
- package/src/components/EventSelector/__tests__/EventSelector.test.tsx +0 -528
- package/src/components/FileUpload/__tests__/FileUpload.integration.test.tsx +0 -992
- package/src/components/FileUpload/__tests__/FileUpload.real.test.tsx +0 -927
- package/src/components/FileUpload/__tests__/FileUpload.test.tsx +0 -855
- package/src/components/FileUpload/__tests__/FileUpload.unit.test.tsx +0 -1311
- package/src/components/FileUpload/__tests__/FileUpload.unmocked.test.tsx +0 -937
- package/src/components/Footer/__tests__/Footer.accessibility.test.tsx +0 -359
- package/src/components/Footer/__tests__/Footer.integration.test.tsx +0 -353
- package/src/components/Footer/__tests__/Footer.performance.test.tsx +0 -309
- package/src/components/Footer/__tests__/Footer.unit.test.tsx +0 -309
- package/src/components/Footer/__tests__/Footer.visual.test.tsx +0 -335
- package/src/components/Form/__tests__/Form.accessibility.test.tsx +0 -820
- package/src/components/Form/__tests__/Form.unit.test.tsx +0 -305
- package/src/components/Form/__tests__/FormErrorSummary.unit.test.tsx +0 -285
- package/src/components/Form/__tests__/FormFieldset.unit.test.tsx +0 -241
- package/src/components/Header/__tests__/Header.accessibility.test.tsx +0 -382
- package/src/components/Header/__tests__/Header.comprehensive.test.tsx +0 -509
- package/src/components/Header/__tests__/Header.unit.test.tsx +0 -335
- package/src/components/InactivityWarningModal/InactivityWarningModal.test.tsx +0 -196
- package/src/components/InactivityWarningModal/__tests__/InactivityWarningModal.unit.test.tsx +0 -224
- package/src/components/Input/__tests__/Input.accessibility.test.tsx +0 -632
- package/src/components/Input/__tests__/Input.unit.test.tsx +0 -1121
- package/src/components/Label/__tests__/Label.accessibility.test.tsx +0 -239
- package/src/components/Label/__tests__/Label.unit.test.tsx +0 -331
- package/src/components/LoadingSpinner/__tests__/LoadingSpinner.accessibility.test.tsx +0 -116
- package/src/components/LoadingSpinner/__tests__/LoadingSpinner.unit.test.tsx +0 -144
- package/src/components/LoginForm/__tests__/LoginForm.accessibility.test.tsx +0 -201
- package/src/components/LoginForm/__tests__/LoginForm.unit.test.tsx +0 -119
- package/src/components/NavigationMenu/__tests__/NavigationMenu.accessibility.test.tsx +0 -378
- package/src/components/NavigationMenu/__tests__/NavigationMenu.enhanced.test.tsx +0 -768
- package/src/components/NavigationMenu/__tests__/NavigationMenu.integration.test.tsx +0 -576
- package/src/components/NavigationMenu/__tests__/NavigationMenu.performance.test.tsx +0 -585
- package/src/components/NavigationMenu/__tests__/NavigationMenu.real.component.test.tsx +0 -783
- package/src/components/NavigationMenu/__tests__/NavigationMenu.security.enhanced.test.tsx +0 -810
- package/src/components/NavigationMenu/__tests__/NavigationMenu.security.test.tsx +0 -494
- package/src/components/NavigationMenu/__tests__/NavigationMenu.unit.test.tsx +0 -331
- package/src/components/NavigationMenu/__tests__/NavigationMenu.userWorkflows.test.tsx +0 -347
- package/src/components/NavigationMenu/__tests__/NavigationMenu.workflows.test.tsx +0 -584
- package/src/components/OrganisationSelector/__tests__/OrganisationSelector.unit.test.tsx +0 -664
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.accessibility.test.tsx +0 -288
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +0 -893
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +0 -629
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +0 -782
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -904
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.accessibility.test.tsx +0 -463
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.integration.test.tsx +0 -586
- package/src/components/PaceLoginPage/__tests__/PaceLoginPage.unit.test.tsx +0 -533
- package/src/components/PasswordReset/__tests__/PasswordChangeForm.accessibility.test.tsx +0 -408
- package/src/components/PasswordReset/__tests__/PasswordChangeForm.unit.test.tsx +0 -561
- package/src/components/PasswordReset/__tests__/PasswordReset.integration.test.tsx +0 -304
- package/src/components/PasswordReset/__tests__/PasswordResetForm.accessibility.test.tsx +0 -20
- package/src/components/PasswordReset/__tests__/PasswordResetForm.unit.test.tsx +0 -523
- package/src/components/PasswordReset/__tests__/__mocks__/UnifiedAuthProvider.ts +0 -29
- package/src/components/Print/__tests__/Print.comprehensive.test.tsx +0 -331
- package/src/components/PrintButton/__tests__/PrintButton.unit.test.tsx +0 -429
- package/src/components/PrintButton/__tests__/PrintButtonGroup.unit.test.tsx +0 -277
- package/src/components/PrintButton/__tests__/PrintToolbar.unit.test.tsx +0 -264
- package/src/components/PrintCard/__tests__/PrintCard.unit.test.tsx +0 -233
- package/src/components/PrintCard/__tests__/PrintCardContent.test.tsx +0 -284
- package/src/components/PrintCard/__tests__/PrintCardGrid.unit.test.tsx +0 -214
- package/src/components/PrintCard/__tests__/PrintCardImage.unit.test.tsx +0 -264
- package/src/components/PrintDataTable/__tests__/PrintDataTable.unit.test.tsx +0 -361
- package/src/components/PrintDataTable/__tests__/PrintTableGroup.unit.test.tsx +0 -314
- package/src/components/PrintDataTable/__tests__/PrintTableRow.unit.test.tsx +0 -362
- package/src/components/PrintFooter/__tests__/PrintFooter.unit.test.tsx +0 -500
- package/src/components/PrintFooter/__tests__/PrintFooterContent.unit.test.tsx +0 -321
- package/src/components/PrintFooter/__tests__/PrintFooterInfo.unit.test.tsx +0 -335
- package/src/components/PrintFooter/__tests__/PrintPageNumber.unit.test.tsx +0 -340
- package/src/components/PrintGrid/__tests__/PrintGrid.unit.test.tsx +0 -340
- package/src/components/PrintGrid/__tests__/PrintGridBreakpoint.unit.test.tsx +0 -261
- package/src/components/PrintGrid/__tests__/PrintGridContainer.unit.test.tsx +0 -338
- package/src/components/PrintGrid/__tests__/PrintGridItem.unit.test.tsx +0 -338
- package/src/components/PrintHeader/__tests__/PrintCoverHeader.unit.test.tsx +0 -309
- package/src/components/PrintHeader/__tests__/PrintHeader.unit.test.tsx +0 -202
- package/src/components/PrintLayout/__tests__/PrintLayout.unit.test.tsx +0 -238
- package/src/components/PrintPageBreak/__tests__/PrintPageBreak.unit.test.tsx +0 -263
- package/src/components/PrintPageBreak/__tests__/PrintPageBreakGroup.unit.test.tsx +0 -239
- package/src/components/PrintPageBreak/__tests__/PrintPageBreakIndicator.unit.test.tsx +0 -235
- package/src/components/PrintSection/__tests__/PrintColumn.unit.test.tsx +0 -385
- package/src/components/PrintSection/__tests__/PrintDivider.unit.test.tsx +0 -373
- package/src/components/PrintSection/__tests__/PrintSection.unit.test.tsx +0 -390
- package/src/components/PrintSection/__tests__/PrintSectionContent.unit.test.tsx +0 -321
- package/src/components/PrintSection/__tests__/PrintSectionHeader.unit.test.tsx +0 -334
- package/src/components/PrintText/__tests__/PrintText.unit.test.tsx +0 -351
- package/src/components/Progress/__tests__/Progress.accessibility.test.tsx +0 -240
- package/src/components/Progress/__tests__/Progress.unit.test.tsx +0 -242
- package/src/components/PublicLayout/__tests__/EventLogo.test.tsx +0 -761
- package/src/components/PublicLayout/__tests__/PublicErrorBoundary.simplified.test.tsx +0 -228
- package/src/components/PublicLayout/__tests__/PublicErrorBoundary.test.tsx +0 -228
- package/src/components/PublicLayout/__tests__/PublicLoadingSpinner.test.tsx +0 -459
- package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +0 -362
- package/src/components/PublicLayout/__tests__/PublicPageHeader.test.tsx +0 -522
- package/src/components/PublicLayout/__tests__/PublicPageLayout.test.tsx +0 -599
- package/src/components/PublicLayout/__tests__/PublicPageProvider.test.tsx +0 -513
- package/src/components/RBAC/__tests__/PagePermissionGuard.unit.test.tsx +0 -683
- package/src/components/RBAC/__tests__/RBAC.integration.test.tsx +0 -573
- package/src/components/RBAC/__tests__/RBACGuard.unit.test.tsx +0 -467
- package/src/components/RBAC/__tests__/RBACProvider.accessibility.test.tsx +0 -475
- package/src/components/RBAC/__tests__/RBACProvider.advanced.test.tsx +0 -569
- package/src/components/RBAC/__tests__/RBACProvider.integration.test.tsx +0 -352
- package/src/components/RBAC/__tests__/RBACProvider.unit.test.tsx +0 -128
- package/src/components/RBAC/__tests__/RoleBasedContent.unit.test.tsx +0 -657
- package/src/components/Select/__tests__/SearchableSelect.unit.test.tsx +0 -437
- package/src/components/Select/__tests__/Select.accessibility.test.tsx +0 -1202
- package/src/components/Select/__tests__/Select.actual.test.tsx +0 -774
- package/src/components/Select/__tests__/Select.comprehensive.test.tsx +0 -837
- package/src/components/Select/__tests__/Select.enhanced.test.tsx +0 -1101
- package/src/components/Select/__tests__/Select.integration.test.tsx +0 -772
- package/src/components/Select/__tests__/Select.performance.test.tsx +0 -695
- package/src/components/Select/__tests__/Select.real-world.test.tsx +0 -1046
- package/src/components/Select/__tests__/Select.search-algorithms.test.tsx +0 -968
- package/src/components/Select/__tests__/Select.unit.test.tsx +0 -647
- package/src/components/Select/__tests__/Select.utils.test.tsx +0 -890
- package/src/components/Table/__tests__/Table.accessibility.test.tsx +0 -233
- package/src/components/Table/__tests__/Table.unit.test.tsx +0 -235
- package/src/components/Toast/__tests__/Toast.accessibility.test.tsx +0 -238
- package/src/components/Toast/__tests__/Toast.integration.test.tsx +0 -699
- package/src/components/Toast/__tests__/Toast.unit.test.tsx +0 -750
- package/src/components/Tooltip/__tests__/Tooltip.accessibility.test.tsx +0 -121
- package/src/components/Tooltip/__tests__/Tooltip.unit.test.tsx +0 -185
- package/src/components/UserMenu/__tests__/UserMenu.accessibility.test.tsx +0 -139
- package/src/components/UserMenu/__tests__/UserMenu.integration.test.tsx +0 -188
- package/src/components/UserMenu/__tests__/UserMenu.unit.test.tsx +0 -458
- package/src/components/__tests__/EdgeCaseTesting.enhanced.test.tsx +0 -524
- package/src/components/__tests__/ErrorTesting.enhanced.test.tsx +0 -455
- package/src/components/__tests__/SuperAdminGuard.test.tsx +0 -456
- package/src/components/__tests__/SuperAdminGuard.unit.test.tsx +0 -456
- package/src/components/examples/__tests__/PermissionExample.unit.test.tsx +0 -360
- package/src/hooks/__tests__/hooks.integration.test.tsx +0 -575
- package/src/hooks/__tests__/useApiFetch.unit.test.ts +0 -115
- package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +0 -133
- package/src/hooks/__tests__/useDebounce.unit.test.ts +0 -82
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +0 -293
- package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +0 -385
- package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +0 -286
- package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +0 -838
- package/src/hooks/__tests__/usePermissionCache.unit.test.ts +0 -627
- package/src/hooks/__tests__/useRBAC.unit.test.ts +0 -911
- package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +0 -537
- package/src/hooks/__tests__/useToast.unit.test.tsx +0 -62
- package/src/hooks/__tests__/useZodForm.unit.test.tsx +0 -37
- package/src/hooks/public/__tests__/usePublicEvent.test.tsx +0 -397
- package/src/hooks/public/__tests__/usePublicEventLogo.test.tsx +0 -690
- package/src/hooks/public/__tests__/usePublicRouteParams.test.tsx +0 -449
- package/src/providers/__tests__/EventProvider.unit.test.tsx +0 -768
- package/src/providers/__tests__/OrganisationProvider.basic.test.tsx +0 -116
- package/src/providers/__tests__/OrganisationProvider.unit.test.tsx +0 -1312
- package/src/providers/__tests__/UnifiedAuthProvider.inactivity.test.tsx +0 -601
- package/src/providers/__tests__/UnifiedAuthProvider.unit.test.tsx +0 -683
- package/src/providers/__tests__/index.unit.test.ts +0 -78
- package/src/rbac/__tests__/PagePermissionGuard.test.tsx +0 -673
- package/src/rbac/__tests__/README.md +0 -170
- package/src/rbac/__tests__/RoleBasedRouter.test.tsx +0 -709
- package/src/rbac/__tests__/TestContext.tsx +0 -72
- package/src/rbac/__tests__/__mocks__/cache.ts +0 -144
- package/src/rbac/__tests__/__mocks__/supabase.ts +0 -152
- package/src/rbac/__tests__/adapters-hooks-comprehensive.test.tsx +0 -782
- package/src/rbac/__tests__/adapters-hooks.test.tsx +0 -561
- package/src/rbac/__tests__/adapters.comprehensive.test.tsx +0 -963
- package/src/rbac/__tests__/adapters.test.tsx +0 -444
- package/src/rbac/__tests__/api.test.ts +0 -620
- package/src/rbac/__tests__/audit-observability-comprehensive.test.ts +0 -792
- package/src/rbac/__tests__/audit-observability.test.ts +0 -549
- package/src/rbac/__tests__/audit.test.ts +0 -616
- package/src/rbac/__tests__/build-contract-compliance-simple.test.ts +0 -230
- package/src/rbac/__tests__/cache-invalidation-comprehensive.test.ts +0 -889
- package/src/rbac/__tests__/cache-invalidation.test.ts +0 -457
- package/src/rbac/__tests__/cache.test.ts +0 -458
- package/src/rbac/__tests__/components-navigation-guard.enhanced.test.tsx +0 -859
- package/src/rbac/__tests__/components-navigation-guard.test.tsx +0 -895
- package/src/rbac/__tests__/components-navigation-provider.test.tsx +0 -692
- package/src/rbac/__tests__/components-page-permission-guard.test.tsx +0 -673
- package/src/rbac/__tests__/components-page-permission-provider.test.tsx +0 -614
- package/src/rbac/__tests__/components-permission-enforcer.enhanced.fixed.test.tsx +0 -836
- package/src/rbac/__tests__/components-permission-enforcer.enhanced.test.tsx +0 -837
- package/src/rbac/__tests__/components-permission-enforcer.test.tsx +0 -825
- package/src/rbac/__tests__/components-role-based-router.test.tsx +0 -709
- package/src/rbac/__tests__/components-secure-data-provider.test.tsx +0 -607
- package/src/rbac/__tests__/config.test.ts +0 -583
- package/src/rbac/__tests__/core-logic-unit.test.ts +0 -190
- package/src/rbac/__tests__/core-permission-logic-comprehensive.test.ts +0 -1467
- package/src/rbac/__tests__/core-permission-logic-fixed.test.ts +0 -151
- package/src/rbac/__tests__/core-permission-logic-simple.test.ts +0 -968
- package/src/rbac/__tests__/core-permission-logic.test.ts +0 -966
- package/src/rbac/__tests__/edge-cases-comprehensive.test.ts +0 -988
- package/src/rbac/__tests__/edge-cases.test.ts +0 -654
- package/src/rbac/__tests__/engine.test.ts +0 -361
- package/src/rbac/__tests__/engine.unit.test.ts +0 -361
- package/src/rbac/__tests__/hooks.enhanced.test.tsx +0 -979
- package/src/rbac/__tests__/hooks.fixed.test.tsx +0 -475
- package/src/rbac/__tests__/hooks.test.tsx +0 -385
- package/src/rbac/__tests__/index.test.ts +0 -269
- package/src/rbac/__tests__/integration.enhanced.test.tsx +0 -824
- package/src/rbac/__tests__/page-permission-guard-super-admin.test.tsx +0 -261
- package/src/rbac/__tests__/performance.enhanced.test.tsx +0 -724
- package/src/rbac/__tests__/permissions.test.ts +0 -383
- package/src/rbac/__tests__/requires-event.test.ts +0 -330
- package/src/rbac/__tests__/scope-isolation-comprehensive.test.ts +0 -1349
- package/src/rbac/__tests__/scope-isolation.test.ts +0 -755
- package/src/rbac/__tests__/secure-client-rls-comprehensive.test.ts +0 -592
- package/src/rbac/__tests__/secure-client-rls.test.ts +0 -377
- package/src/rbac/__tests__/security.test.ts +0 -296
- package/src/rbac/__tests__/setup.ts +0 -228
- package/src/rbac/__tests__/test-utils-enhanced.tsx +0 -400
- package/src/rbac/__tests__/types.test.ts +0 -685
- package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +0 -631
- package/src/rbac/components/__tests__/NavigationProvider.test.tsx +0 -667
- package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +0 -647
- package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +0 -496
- package/src/rbac/testing/__tests__/index.test.tsx +0 -342
- package/src/rbac/utils/__tests__/eventContext.test.ts +0 -428
- package/src/rbac/utils/__tests__/eventContext.unit.test.ts +0 -428
- package/src/styles/__tests__/styles.unit.test.ts +0 -164
- package/src/test-dom-cleanup.test.tsx +0 -38
- package/src/theming/__tests__/README.md +0 -335
- package/src/theming/__tests__/runtime.accessibility.test.ts +0 -474
- package/src/theming/__tests__/runtime.error.test.ts +0 -616
- package/src/theming/__tests__/runtime.integration.test.ts +0 -376
- package/src/theming/__tests__/runtime.performance.test.ts +0 -411
- package/src/theming/__tests__/runtime.unit.test.ts +0 -470
- package/src/types/__tests__/database.unit.test.ts +0 -489
- package/src/types/__tests__/guards.unit.test.ts +0 -146
- package/src/types/__tests__/index.unit.test.ts +0 -77
- package/src/types/__tests__/organisation.unit.test.ts +0 -713
- package/src/types/__tests__/rbac.unit.test.ts +0 -621
- package/src/types/__tests__/security.unit.test.ts +0 -347
- package/src/types/__tests__/supabase.unit.test.ts +0 -658
- package/src/types/__tests__/theme.unit.test.ts +0 -218
- package/src/types/__tests__/unified.unit.test.ts +0 -537
- package/src/types/__tests__/validation.unit.test.ts +0 -616
- package/src/utils/__tests__/appConfig.unit.test.ts +0 -55
- package/src/utils/__tests__/appNameResolver.unit.test.ts +0 -137
- package/src/utils/__tests__/audit.unit.test.ts +0 -69
- package/src/utils/__tests__/auth-utils.unit.test.ts +0 -70
- package/src/utils/__tests__/bundleAnalysis.unit.test.ts +0 -317
- package/src/utils/__tests__/cn.unit.test.ts +0 -34
- package/src/utils/__tests__/deviceFingerprint.unit.test.ts +0 -480
- package/src/utils/__tests__/dynamicUtils.unit.test.ts +0 -322
- package/src/utils/__tests__/formatDate.unit.test.ts +0 -109
- package/src/utils/__tests__/formatting.unit.test.ts +0 -66
- package/src/utils/__tests__/index.unit.test.ts +0 -251
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +0 -304
- package/src/utils/__tests__/organisationContext.unit.test.ts +0 -192
- package/src/utils/__tests__/performanceBudgets.unit.test.ts +0 -259
- package/src/utils/__tests__/permissionTypes.unit.test.ts +0 -250
- package/src/utils/__tests__/permissionUtils.unit.test.ts +0 -362
- package/src/utils/__tests__/sanitization.unit.test.ts +0 -346
- package/src/utils/__tests__/schemaUtils.unit.test.ts +0 -441
- package/src/utils/__tests__/secureDataAccess.unit.test.ts +0 -334
- package/src/utils/__tests__/secureErrors.unit.test.ts +0 -377
- package/src/utils/__tests__/secureStorage.unit.test.ts +0 -293
- package/src/utils/__tests__/security.unit.test.ts +0 -127
- package/src/utils/__tests__/securityMonitor.unit.test.ts +0 -280
- package/src/utils/__tests__/sessionTracking.unit.test.ts +0 -370
- package/src/utils/__tests__/validation.unit.test.ts +0 -84
- package/src/utils/__tests__/validationUtils.unit.test.ts +0 -571
- package/src/utils/print/__tests__/PrintDataProcessor.unit.test.ts +0 -219
- package/src/utils/print/__tests__/usePrintOptimization.unit.test.tsx +0 -353
- package/src/utils/storage/__tests__/config.unit.test.ts +0 -206
- package/src/utils/storage/__tests__/helpers.unit.test.ts +0 -648
- package/src/utils/storage/__tests__/index.unit.test.ts +0 -167
- package/src/utils/storage/__tests__/types.unit.test.ts +0 -441
- package/src/validation/__tests__/common.unit.test.ts +0 -101
- package/src/validation/__tests__/csrf.unit.test.ts +0 -302
- package/src/validation/__tests__/passwordSchema.unit.test.ts +0 -98
- package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +0 -466
- /package/dist/{DataTable-EEUDXPE5.js.map → DataTable-GX3XERFJ.js.map} +0 -0
- /package/dist/{chunk-VYG4AXYW.js.map → chunk-5EL3KHOQ.js.map} +0 -0
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Alert,
|
|
3
3
|
AlertDescription,
|
|
4
|
+
Card,
|
|
5
|
+
CardContent,
|
|
6
|
+
CardDescription,
|
|
7
|
+
CardFooter,
|
|
8
|
+
CardHeader,
|
|
9
|
+
CardTitle,
|
|
4
10
|
Input,
|
|
5
11
|
Select,
|
|
6
12
|
SelectContent,
|
|
@@ -9,7 +15,7 @@ import {
|
|
|
9
15
|
SelectSeparator,
|
|
10
16
|
SelectTrigger,
|
|
11
17
|
SelectValue
|
|
12
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-GSNM5D6H.js";
|
|
13
19
|
import {
|
|
14
20
|
isPermitted
|
|
15
21
|
} from "./chunk-C5G2A4PO.js";
|
|
@@ -17,21 +23,18 @@ import {
|
|
|
17
23
|
EventProvider_exports,
|
|
18
24
|
init_EventProvider,
|
|
19
25
|
useEvents
|
|
20
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-TGDCLPP2.js";
|
|
21
27
|
import {
|
|
22
28
|
PublicErrorBoundary,
|
|
23
29
|
useAppConfig,
|
|
24
30
|
usePublicEventLogo,
|
|
25
31
|
usePublicPageContext
|
|
26
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-5EL3KHOQ.js";
|
|
27
33
|
import {
|
|
28
34
|
OrganisationProvider_exports,
|
|
29
|
-
UnifiedAuthProvider_exports,
|
|
30
35
|
init_OrganisationProvider,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
useUnifiedAuth
|
|
34
|
-
} from "./chunk-BEZRLNK3.js";
|
|
36
|
+
useOrganisations
|
|
37
|
+
} from "./chunk-COBPIXXQ.js";
|
|
35
38
|
import {
|
|
36
39
|
Button,
|
|
37
40
|
Dialog,
|
|
@@ -40,8 +43,11 @@ import {
|
|
|
40
43
|
DialogOverlay,
|
|
41
44
|
DialogTitle,
|
|
42
45
|
DialogTrigger,
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
UnifiedAuthProvider_exports,
|
|
47
|
+
init_Button,
|
|
48
|
+
init_UnifiedAuthProvider,
|
|
49
|
+
useUnifiedAuth
|
|
50
|
+
} from "./chunk-6CR3MRZN.js";
|
|
45
51
|
import {
|
|
46
52
|
LoadingSpinner
|
|
47
53
|
} from "./chunk-CDQ3PX7L.js";
|
|
@@ -51,156 +57,21 @@ import {
|
|
|
51
57
|
import {
|
|
52
58
|
cn,
|
|
53
59
|
init_cn
|
|
54
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-OYRY44Q2.js";
|
|
55
61
|
import {
|
|
56
62
|
__require,
|
|
57
63
|
__toCommonJS
|
|
58
64
|
} from "./chunk-PLDDJCW6.js";
|
|
59
65
|
|
|
60
|
-
// src/components/Card/Card.tsx
|
|
61
|
-
init_cn();
|
|
62
|
-
import * as React from "react";
|
|
63
|
-
import { jsx } from "react/jsx-runtime";
|
|
64
|
-
function getCardClasses(variant = "default", size = "default") {
|
|
65
|
-
const baseClasses = "rounded-lg border bg-card text-card-foreground shadow-sm";
|
|
66
|
-
const variantClasses = {
|
|
67
|
-
default: "shadow-xl",
|
|
68
|
-
outline: "border-2",
|
|
69
|
-
ghost: "border-0 shadow-none"
|
|
70
|
-
};
|
|
71
|
-
const sizeClasses3 = {
|
|
72
|
-
default: "",
|
|
73
|
-
sm: "text-sm",
|
|
74
|
-
lg: "text-lg"
|
|
75
|
-
};
|
|
76
|
-
return `${baseClasses} ${variantClasses[variant]} ${sizeClasses3[size]}`;
|
|
77
|
-
}
|
|
78
|
-
var Card = React.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
79
|
-
"article",
|
|
80
|
-
{
|
|
81
|
-
ref,
|
|
82
|
-
className: cn(
|
|
83
|
-
"grid grid-rows-[auto_1fr_auto] min-w-0 overflow-visible",
|
|
84
|
-
getCardClasses(variant, size),
|
|
85
|
-
className
|
|
86
|
-
),
|
|
87
|
-
...props
|
|
88
|
-
}
|
|
89
|
-
));
|
|
90
|
-
Card.displayName = "Card";
|
|
91
|
-
var CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
92
|
-
"header",
|
|
93
|
-
{
|
|
94
|
-
ref,
|
|
95
|
-
className: cn("flex flex-col space-y-1.5 p-6 min-w-0 w-full", className),
|
|
96
|
-
...props
|
|
97
|
-
}
|
|
98
|
-
));
|
|
99
|
-
CardHeader.displayName = "CardHeader";
|
|
100
|
-
var CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
101
|
-
"h3",
|
|
102
|
-
{
|
|
103
|
-
ref,
|
|
104
|
-
className: cn(
|
|
105
|
-
"text-2xl font-semibold leading-none tracking-tight",
|
|
106
|
-
className
|
|
107
|
-
),
|
|
108
|
-
...props
|
|
109
|
-
}
|
|
110
|
-
));
|
|
111
|
-
CardTitle.displayName = "CardTitle";
|
|
112
|
-
var CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
113
|
-
"p",
|
|
114
|
-
{
|
|
115
|
-
ref,
|
|
116
|
-
className: cn(className),
|
|
117
|
-
...props
|
|
118
|
-
}
|
|
119
|
-
));
|
|
120
|
-
CardDescription.displayName = "CardDescription";
|
|
121
|
-
var CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
122
|
-
"main",
|
|
123
|
-
{
|
|
124
|
-
ref,
|
|
125
|
-
className: cn("p-6 pt-0 min-w-0 w-full", className),
|
|
126
|
-
...props
|
|
127
|
-
}
|
|
128
|
-
));
|
|
129
|
-
CardContent.displayName = "CardContent";
|
|
130
|
-
var CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
131
|
-
"footer",
|
|
132
|
-
{
|
|
133
|
-
ref,
|
|
134
|
-
className: cn("flex items-center p-6 pt-0 min-w-0 w-full", className),
|
|
135
|
-
...props
|
|
136
|
-
}
|
|
137
|
-
));
|
|
138
|
-
CardFooter.displayName = "CardFooter";
|
|
139
|
-
var CardActions = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
140
|
-
"nav",
|
|
141
|
-
{
|
|
142
|
-
ref,
|
|
143
|
-
className: cn("flex gap-2", className),
|
|
144
|
-
role: "group",
|
|
145
|
-
"aria-label": "Card actions",
|
|
146
|
-
...props
|
|
147
|
-
}
|
|
148
|
-
));
|
|
149
|
-
CardActions.displayName = "CardActions";
|
|
150
|
-
var HoverCard = React.forwardRef(({ children, className, ...props }, ref) => {
|
|
151
|
-
return /* @__PURE__ */ jsx(
|
|
152
|
-
"section",
|
|
153
|
-
{
|
|
154
|
-
ref,
|
|
155
|
-
className: cn("relative inline-block", className),
|
|
156
|
-
...props,
|
|
157
|
-
children
|
|
158
|
-
}
|
|
159
|
-
);
|
|
160
|
-
});
|
|
161
|
-
HoverCard.displayName = "HoverCard";
|
|
162
|
-
var HoverCardTrigger = React.forwardRef(({ className, asChild, children, ...props }, ref) => {
|
|
163
|
-
if (asChild) {
|
|
164
|
-
return /* @__PURE__ */ jsx("span", { className: cn("cursor-pointer", className), children });
|
|
165
|
-
}
|
|
166
|
-
return /* @__PURE__ */ jsx(
|
|
167
|
-
"button",
|
|
168
|
-
{
|
|
169
|
-
ref,
|
|
170
|
-
type: "button",
|
|
171
|
-
className: cn(
|
|
172
|
-
"cursor-pointer bg-transparent border-0 p-0 m-0 font-inherit color-inherit text-left",
|
|
173
|
-
className
|
|
174
|
-
),
|
|
175
|
-
...props,
|
|
176
|
-
children
|
|
177
|
-
}
|
|
178
|
-
);
|
|
179
|
-
});
|
|
180
|
-
HoverCardTrigger.displayName = "HoverCardTrigger";
|
|
181
|
-
var HoverCardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
182
|
-
"aside",
|
|
183
|
-
{
|
|
184
|
-
ref,
|
|
185
|
-
className: cn(
|
|
186
|
-
"absolute z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-4 text-popover-foreground shadow-md",
|
|
187
|
-
className
|
|
188
|
-
),
|
|
189
|
-
role: "tooltip",
|
|
190
|
-
...props
|
|
191
|
-
}
|
|
192
|
-
));
|
|
193
|
-
HoverCardContent.displayName = "HoverCardContent";
|
|
194
|
-
|
|
195
66
|
// src/components/Label/Label.tsx
|
|
196
67
|
init_cn();
|
|
197
|
-
import * as
|
|
68
|
+
import * as React from "react";
|
|
198
69
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
199
|
-
import { Fragment, jsx
|
|
70
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
200
71
|
var getLabelClasses = () => {
|
|
201
72
|
return "font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70";
|
|
202
73
|
};
|
|
203
|
-
var Label =
|
|
74
|
+
var Label = React.forwardRef(({
|
|
204
75
|
className,
|
|
205
76
|
required = false,
|
|
206
77
|
requiredIndicator,
|
|
@@ -229,7 +100,7 @@ var Label = React2.forwardRef(({
|
|
|
229
100
|
...props,
|
|
230
101
|
children: [
|
|
231
102
|
children,
|
|
232
|
-
required && /* @__PURE__ */
|
|
103
|
+
required && /* @__PURE__ */ jsx(
|
|
233
104
|
"label",
|
|
234
105
|
{
|
|
235
106
|
"aria-label": "required",
|
|
@@ -243,8 +114,8 @@ var Label = React2.forwardRef(({
|
|
|
243
114
|
]
|
|
244
115
|
}
|
|
245
116
|
),
|
|
246
|
-
showHelperText && /* @__PURE__ */
|
|
247
|
-
hasError && /* @__PURE__ */
|
|
117
|
+
showHelperText && /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", helperTextClassName), children: helperText }),
|
|
118
|
+
hasError && /* @__PURE__ */ jsx(
|
|
248
119
|
"p",
|
|
249
120
|
{
|
|
250
121
|
role: "alert",
|
|
@@ -259,10 +130,10 @@ Label.displayName = LabelPrimitive.Root.displayName;
|
|
|
259
130
|
|
|
260
131
|
// src/components/Avatar/Avatar.tsx
|
|
261
132
|
init_cn();
|
|
262
|
-
import * as
|
|
133
|
+
import * as React2 from "react";
|
|
263
134
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
264
|
-
import { jsx as
|
|
265
|
-
var Avatar =
|
|
135
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
136
|
+
var Avatar = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
266
137
|
AvatarPrimitive.Root,
|
|
267
138
|
{
|
|
268
139
|
ref,
|
|
@@ -274,7 +145,7 @@ var Avatar = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
274
145
|
}
|
|
275
146
|
));
|
|
276
147
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
277
|
-
var AvatarImage =
|
|
148
|
+
var AvatarImage = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
278
149
|
AvatarPrimitive.Image,
|
|
279
150
|
{
|
|
280
151
|
ref,
|
|
@@ -283,7 +154,7 @@ var AvatarImage = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
283
154
|
}
|
|
284
155
|
));
|
|
285
156
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
286
|
-
var AvatarFallback =
|
|
157
|
+
var AvatarFallback = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
287
158
|
AvatarPrimitive.Fallback,
|
|
288
159
|
{
|
|
289
160
|
ref,
|
|
@@ -298,10 +169,10 @@ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
|
298
169
|
|
|
299
170
|
// src/components/Progress/Progress.tsx
|
|
300
171
|
init_cn();
|
|
301
|
-
import * as
|
|
172
|
+
import * as React3 from "react";
|
|
302
173
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
303
|
-
import { jsx as
|
|
304
|
-
var Progress =
|
|
174
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
175
|
+
var Progress = React3.forwardRef(({ className, value, max = 100, ...props }, ref) => /* @__PURE__ */ jsx3(
|
|
305
176
|
ProgressPrimitive.Root,
|
|
306
177
|
{
|
|
307
178
|
ref,
|
|
@@ -315,7 +186,7 @@ var Progress = React4.forwardRef(({ className, value, max = 100, ...props }, ref
|
|
|
315
186
|
"aria-valuenow": value,
|
|
316
187
|
"aria-valuemax": max,
|
|
317
188
|
"aria-valuemin": 0,
|
|
318
|
-
children: /* @__PURE__ */
|
|
189
|
+
children: /* @__PURE__ */ jsx3(
|
|
319
190
|
ProgressPrimitive.Indicator,
|
|
320
191
|
{
|
|
321
192
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -328,12 +199,12 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
328
199
|
|
|
329
200
|
// src/components/Toast/Toast.tsx
|
|
330
201
|
init_cn();
|
|
331
|
-
import * as
|
|
202
|
+
import * as React4 from "react";
|
|
332
203
|
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
333
204
|
import { X } from "lucide-react";
|
|
334
|
-
import { jsx as
|
|
205
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
335
206
|
var ToastProvider = ToastPrimitives.Provider;
|
|
336
|
-
var ToastViewport =
|
|
207
|
+
var ToastViewport = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
337
208
|
ToastPrimitives.Viewport,
|
|
338
209
|
{
|
|
339
210
|
ref,
|
|
@@ -346,8 +217,8 @@ var ToastViewport = React5.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
346
217
|
}
|
|
347
218
|
));
|
|
348
219
|
ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
|
|
349
|
-
var Toast =
|
|
350
|
-
return /* @__PURE__ */
|
|
220
|
+
var Toast = React4.forwardRef(({ className, ...props }, ref) => {
|
|
221
|
+
return /* @__PURE__ */ jsx4(
|
|
351
222
|
ToastPrimitives.Root,
|
|
352
223
|
{
|
|
353
224
|
ref,
|
|
@@ -361,7 +232,7 @@ var Toast = React5.forwardRef(({ className, ...props }, ref) => {
|
|
|
361
232
|
);
|
|
362
233
|
});
|
|
363
234
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
364
|
-
var ToastAction =
|
|
235
|
+
var ToastAction = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
365
236
|
ToastPrimitives.Action,
|
|
366
237
|
{
|
|
367
238
|
ref,
|
|
@@ -374,7 +245,7 @@ var ToastAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
374
245
|
}
|
|
375
246
|
));
|
|
376
247
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
377
|
-
var ToastClose =
|
|
248
|
+
var ToastClose = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
378
249
|
ToastPrimitives.Close,
|
|
379
250
|
{
|
|
380
251
|
ref,
|
|
@@ -385,11 +256,11 @@ var ToastClose = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
385
256
|
),
|
|
386
257
|
"toast-close": "",
|
|
387
258
|
...props,
|
|
388
|
-
children: /* @__PURE__ */
|
|
259
|
+
children: /* @__PURE__ */ jsx4(X, { className: "h-4 w-4" })
|
|
389
260
|
}
|
|
390
261
|
));
|
|
391
262
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
392
|
-
var ToastTitle =
|
|
263
|
+
var ToastTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
393
264
|
ToastPrimitives.Title,
|
|
394
265
|
{
|
|
395
266
|
ref,
|
|
@@ -399,7 +270,7 @@ var ToastTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
399
270
|
}
|
|
400
271
|
));
|
|
401
272
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
402
|
-
var ToastDescription =
|
|
273
|
+
var ToastDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
403
274
|
ToastPrimitives.Description,
|
|
404
275
|
{
|
|
405
276
|
ref,
|
|
@@ -420,14 +291,14 @@ function useToast() {
|
|
|
420
291
|
};
|
|
421
292
|
}
|
|
422
293
|
function Toaster() {
|
|
423
|
-
return /* @__PURE__ */
|
|
294
|
+
return /* @__PURE__ */ jsx4(ToastProvider, { "data-testid": "toast-provider", children: /* @__PURE__ */ jsx4(ToastViewport, {}) });
|
|
424
295
|
}
|
|
425
296
|
|
|
426
297
|
// src/components/Form/Form.tsx
|
|
427
298
|
init_cn();
|
|
428
299
|
import { useForm, FormProvider } from "react-hook-form";
|
|
429
300
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
430
|
-
import { jsx as
|
|
301
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
431
302
|
function Form({
|
|
432
303
|
schema,
|
|
433
304
|
defaultValues,
|
|
@@ -443,15 +314,15 @@ function Form({
|
|
|
443
314
|
mode
|
|
444
315
|
});
|
|
445
316
|
const handleSubmit = methods.handleSubmit(onSubmit, onError);
|
|
446
|
-
return /* @__PURE__ */
|
|
317
|
+
return /* @__PURE__ */ jsx5(FormProvider, { ...methods, children: /* @__PURE__ */ jsx5("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: typeof children === "function" ? children(methods) : children }) });
|
|
447
318
|
}
|
|
448
319
|
|
|
449
320
|
// src/components/LoginForm/LoginForm.tsx
|
|
450
321
|
init_Button();
|
|
451
|
-
import
|
|
322
|
+
import React5, { useState, useCallback, useMemo } from "react";
|
|
452
323
|
init_cn();
|
|
453
|
-
import { jsx as
|
|
454
|
-
var LoginForm =
|
|
324
|
+
import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
325
|
+
var LoginForm = React5.memo(({
|
|
455
326
|
onSignIn,
|
|
456
327
|
onSuccess,
|
|
457
328
|
onError,
|
|
@@ -492,15 +363,15 @@ var LoginForm = React6.memo(({
|
|
|
492
363
|
}, [onSignUp]);
|
|
493
364
|
const displayTitle = useMemo(() => title || (appName ? `Sign in to ${appName}` : "Sign In"), [title, appName]);
|
|
494
365
|
const displaySubtitle = useMemo(() => subtitle || "Enter your credentials to continue.", [subtitle]);
|
|
495
|
-
return /* @__PURE__ */
|
|
366
|
+
return /* @__PURE__ */ jsx6(Card, { className: cn("w-full max-w-md mx-auto", className), children: /* @__PURE__ */ jsxs2("form", { onSubmit: handleSubmit, "data-testid": "login-form", children: [
|
|
496
367
|
/* @__PURE__ */ jsxs2(CardHeader, { className: "space-y-1", children: [
|
|
497
|
-
/* @__PURE__ */
|
|
498
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ jsx6(CardTitle, { className: "text-2xl text-center", children: displayTitle }),
|
|
369
|
+
/* @__PURE__ */ jsx6(CardDescription, { className: "text-center", children: displaySubtitle })
|
|
499
370
|
] }),
|
|
500
371
|
/* @__PURE__ */ jsxs2(CardContent, { className: "space-y-4", children: [
|
|
501
|
-
error && /* @__PURE__ */
|
|
502
|
-
/* @__PURE__ */
|
|
503
|
-
/* @__PURE__ */
|
|
372
|
+
error && /* @__PURE__ */ jsx6(Alert, { variant: "destructive", children: /* @__PURE__ */ jsx6(AlertDescription, { children: error }) }),
|
|
373
|
+
/* @__PURE__ */ jsx6(Label, { htmlFor: "email", children: "Email" }),
|
|
374
|
+
/* @__PURE__ */ jsx6(
|
|
504
375
|
Input,
|
|
505
376
|
{
|
|
506
377
|
id: "email",
|
|
@@ -512,8 +383,8 @@ var LoginForm = React6.memo(({
|
|
|
512
383
|
disabled: isLoading
|
|
513
384
|
}
|
|
514
385
|
),
|
|
515
|
-
/* @__PURE__ */
|
|
516
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ jsx6(Label, { htmlFor: "password", children: "Password" }),
|
|
387
|
+
/* @__PURE__ */ jsx6(
|
|
517
388
|
Input,
|
|
518
389
|
{
|
|
519
390
|
id: "password",
|
|
@@ -527,7 +398,7 @@ var LoginForm = React6.memo(({
|
|
|
527
398
|
)
|
|
528
399
|
] }),
|
|
529
400
|
/* @__PURE__ */ jsxs2(CardFooter, { className: "flex flex-col space-y-4", children: [
|
|
530
|
-
/* @__PURE__ */
|
|
401
|
+
/* @__PURE__ */ jsx6(
|
|
531
402
|
Button,
|
|
532
403
|
{
|
|
533
404
|
type: "submit",
|
|
@@ -536,7 +407,7 @@ var LoginForm = React6.memo(({
|
|
|
536
407
|
children: isLoading ? "Signing in..." : "Sign In"
|
|
537
408
|
}
|
|
538
409
|
),
|
|
539
|
-
showSignUp && (onSignUp ? /* @__PURE__ */
|
|
410
|
+
showSignUp && (onSignUp ? /* @__PURE__ */ jsx6("div", { className: "text-sm text-center text-muted-foreground", children: /* @__PURE__ */ jsx6(
|
|
540
411
|
"button",
|
|
541
412
|
{
|
|
542
413
|
type: "button",
|
|
@@ -547,7 +418,7 @@ var LoginForm = React6.memo(({
|
|
|
547
418
|
) }) : /* @__PURE__ */ jsxs2("p", { className: "text-center text-muted-foreground", children: [
|
|
548
419
|
"Don't have an account?",
|
|
549
420
|
" ",
|
|
550
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ jsx6("a", { href: "/signup", className: "text-primary hover:underline", children: "Sign up" })
|
|
551
422
|
] }))
|
|
552
423
|
] })
|
|
553
424
|
] }) });
|
|
@@ -558,7 +429,7 @@ init_Button();
|
|
|
558
429
|
init_EventProvider();
|
|
559
430
|
import { RefreshCw, AlertCircle, Lock, Calendar, Star } from "lucide-react";
|
|
560
431
|
import { useEffect, useMemo as useMemo2 } from "react";
|
|
561
|
-
import { jsx as
|
|
432
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
562
433
|
function EventSelector({
|
|
563
434
|
placeholder = "Select an event",
|
|
564
435
|
className,
|
|
@@ -633,15 +504,15 @@ function EventSelector({
|
|
|
633
504
|
}, [events, selectedEvent, setSelectedEvent, onEventChange]);
|
|
634
505
|
if (isLoading) {
|
|
635
506
|
return /* @__PURE__ */ jsxs3("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
636
|
-
/* @__PURE__ */
|
|
637
|
-
/* @__PURE__ */
|
|
507
|
+
/* @__PURE__ */ jsx7(LoadingSpinner, { size: "sm" }),
|
|
508
|
+
/* @__PURE__ */ jsx7("span", { className: "text-sm text-muted-foreground", children: "Loading events..." })
|
|
638
509
|
] });
|
|
639
510
|
}
|
|
640
511
|
if (error) {
|
|
641
|
-
return /* @__PURE__ */
|
|
642
|
-
/* @__PURE__ */
|
|
512
|
+
return /* @__PURE__ */ jsx7("div", { className, children: /* @__PURE__ */ jsxs3(Alert, { variant: "destructive", children: [
|
|
513
|
+
/* @__PURE__ */ jsx7(Lock, { className: "h-4 w-4" }),
|
|
643
514
|
/* @__PURE__ */ jsxs3(AlertDescription, { className: "flex items-center justify-between", children: [
|
|
644
|
-
/* @__PURE__ */
|
|
515
|
+
/* @__PURE__ */ jsx7("span", { children: error.message }),
|
|
645
516
|
showRetryButton && /* @__PURE__ */ jsxs3(
|
|
646
517
|
Button,
|
|
647
518
|
{
|
|
@@ -650,7 +521,7 @@ function EventSelector({
|
|
|
650
521
|
onClick: handleRetry,
|
|
651
522
|
className: "ml-2",
|
|
652
523
|
children: [
|
|
653
|
-
/* @__PURE__ */
|
|
524
|
+
/* @__PURE__ */ jsx7(RefreshCw, { className: "h-3 w-3 mr-1" }),
|
|
654
525
|
"Retry"
|
|
655
526
|
]
|
|
656
527
|
}
|
|
@@ -660,10 +531,10 @@ function EventSelector({
|
|
|
660
531
|
}
|
|
661
532
|
if (events.length === 0) {
|
|
662
533
|
if (showNoEventsMessage) {
|
|
663
|
-
return /* @__PURE__ */
|
|
664
|
-
/* @__PURE__ */
|
|
534
|
+
return /* @__PURE__ */ jsx7("div", { className, children: /* @__PURE__ */ jsxs3(Alert, { variant: "inline", children: [
|
|
535
|
+
/* @__PURE__ */ jsx7(AlertCircle, { className: "h-4 w-4 text-acc-700" }),
|
|
665
536
|
/* @__PURE__ */ jsxs3(AlertDescription, { className: "flex items-center justify-between", children: [
|
|
666
|
-
/* @__PURE__ */
|
|
537
|
+
/* @__PURE__ */ jsx7("span", { children: "No events available." }),
|
|
667
538
|
showRetryButton && /* @__PURE__ */ jsxs3(
|
|
668
539
|
Button,
|
|
669
540
|
{
|
|
@@ -672,7 +543,7 @@ function EventSelector({
|
|
|
672
543
|
onClick: handleRetry,
|
|
673
544
|
className: "ml-2",
|
|
674
545
|
children: [
|
|
675
|
-
/* @__PURE__ */
|
|
546
|
+
/* @__PURE__ */ jsx7(RefreshCw, { className: "h-3 w-3 mr-1" }),
|
|
676
547
|
"Refresh"
|
|
677
548
|
]
|
|
678
549
|
}
|
|
@@ -689,34 +560,34 @@ function EventSelector({
|
|
|
689
560
|
onValueChange: handleValueChange,
|
|
690
561
|
className,
|
|
691
562
|
children: [
|
|
692
|
-
/* @__PURE__ */
|
|
693
|
-
/* @__PURE__ */
|
|
694
|
-
/* @__PURE__ */
|
|
563
|
+
/* @__PURE__ */ jsx7(SelectTrigger, { className: "text-left", variant: "outline", children: /* @__PURE__ */ jsx7(SelectValue, { placeholder, children: selectedEvent && /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
564
|
+
/* @__PURE__ */ jsx7(Calendar, { className: "h-4 w-4 flex-shrink-0" }),
|
|
565
|
+
/* @__PURE__ */ jsx7("span", { className: "truncate", children: selectedEvent.event_name || selectedEvent.name }),
|
|
695
566
|
selectedEvent.event_date && /* @__PURE__ */ jsxs3("span", { className: "text-xs text-muted-foreground flex-shrink-0", children: [
|
|
696
567
|
"(",
|
|
697
568
|
formatEventDate(selectedEvent.event_date),
|
|
698
569
|
")"
|
|
699
570
|
] })
|
|
700
571
|
] }) }) }),
|
|
701
|
-
/* @__PURE__ */
|
|
572
|
+
/* @__PURE__ */ jsx7(SelectContent, { children: sortedEvents.map((event) => {
|
|
702
573
|
const isNext = isNextEvent(event);
|
|
703
574
|
const isSelected = selectedEvent && (selectedEvent.event_id === event.event_id || selectedEvent.id === event.id);
|
|
704
|
-
return /* @__PURE__ */
|
|
575
|
+
return /* @__PURE__ */ jsx7(
|
|
705
576
|
SelectItem,
|
|
706
577
|
{
|
|
707
578
|
value: event.event_id || event.id,
|
|
708
579
|
className: "flex items-center justify-between",
|
|
709
580
|
children: /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2 w-full", children: [
|
|
710
|
-
showNextEventIndicator && isNext && /* @__PURE__ */
|
|
581
|
+
showNextEventIndicator && isNext && /* @__PURE__ */ jsx7(Star, { className: "h-3 w-3 text-acc-500" }),
|
|
711
582
|
/* @__PURE__ */ jsxs3("div", { className: "flex-1", children: [
|
|
712
583
|
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
|
|
713
|
-
/* @__PURE__ */
|
|
714
|
-
isSelected && /* @__PURE__ */
|
|
584
|
+
/* @__PURE__ */ jsx7("span", { className: isSelected ? "font-semibold" : "", children: event.event_name || event.name }),
|
|
585
|
+
isSelected && /* @__PURE__ */ jsx7("span", { className: "text-xs bg-primary text-primary-foreground px-1 rounded", children: "Current" })
|
|
715
586
|
] }),
|
|
716
587
|
showEventDetails && event.event_date && /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
|
|
717
|
-
/* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
719
|
-
showNextEventIndicator && isNext && /* @__PURE__ */
|
|
588
|
+
/* @__PURE__ */ jsx7(Calendar, { className: "h-3 w-3" }),
|
|
589
|
+
/* @__PURE__ */ jsx7("span", { children: formatEventDate(event.event_date) }),
|
|
590
|
+
showNextEventIndicator && isNext && /* @__PURE__ */ jsx7("span", { className: "text-acc-600 font-medium", children: "(Next)" })
|
|
720
591
|
] }),
|
|
721
592
|
showEventDetails && event.event_venue && /* @__PURE__ */ jsxs3("div", { className: "text-xs text-muted-foreground", children: [
|
|
722
593
|
"\u{1F4CD} ",
|
|
@@ -737,7 +608,7 @@ function EventSelector({
|
|
|
737
608
|
init_Button();
|
|
738
609
|
import { useState as useState2 } from "react";
|
|
739
610
|
init_cn();
|
|
740
|
-
import { jsx as
|
|
611
|
+
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
741
612
|
function PasswordChangeForm({ onSubmit, className }) {
|
|
742
613
|
const [newPassword, setNewPassword] = useState2("");
|
|
743
614
|
const [confirmPassword, setConfirmPassword] = useState2("");
|
|
@@ -767,10 +638,10 @@ function PasswordChangeForm({ onSubmit, className }) {
|
|
|
767
638
|
}
|
|
768
639
|
};
|
|
769
640
|
return /* @__PURE__ */ jsxs4("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
|
|
770
|
-
error && /* @__PURE__ */
|
|
641
|
+
error && /* @__PURE__ */ jsx8("div", { role: "alert", children: error }),
|
|
771
642
|
/* @__PURE__ */ jsxs4("div", { className: "space-y-2", children: [
|
|
772
|
-
/* @__PURE__ */
|
|
773
|
-
/* @__PURE__ */
|
|
643
|
+
/* @__PURE__ */ jsx8(Label, { htmlFor: "new-password", children: "New Password" }),
|
|
644
|
+
/* @__PURE__ */ jsx8(
|
|
774
645
|
Input,
|
|
775
646
|
{
|
|
776
647
|
id: "new-password",
|
|
@@ -783,8 +654,8 @@ function PasswordChangeForm({ onSubmit, className }) {
|
|
|
783
654
|
)
|
|
784
655
|
] }),
|
|
785
656
|
/* @__PURE__ */ jsxs4("div", { className: "space-y-2", children: [
|
|
786
|
-
/* @__PURE__ */
|
|
787
|
-
/* @__PURE__ */
|
|
657
|
+
/* @__PURE__ */ jsx8(Label, { htmlFor: "confirm-password", children: "Confirm Password" }),
|
|
658
|
+
/* @__PURE__ */ jsx8(
|
|
788
659
|
Input,
|
|
789
660
|
{
|
|
790
661
|
id: "confirm-password",
|
|
@@ -796,7 +667,7 @@ function PasswordChangeForm({ onSubmit, className }) {
|
|
|
796
667
|
}
|
|
797
668
|
)
|
|
798
669
|
] }),
|
|
799
|
-
/* @__PURE__ */
|
|
670
|
+
/* @__PURE__ */ jsx8(
|
|
800
671
|
Button,
|
|
801
672
|
{
|
|
802
673
|
type: "submit",
|
|
@@ -812,10 +683,10 @@ function PasswordChangeForm({ onSubmit, className }) {
|
|
|
812
683
|
init_Button();
|
|
813
684
|
|
|
814
685
|
// src/components/UserMenu/UserMenu.tsx
|
|
815
|
-
import
|
|
686
|
+
import React7, { useCallback as useCallback2, useMemo as useMemo3, useState as useState3 } from "react";
|
|
816
687
|
import { ChevronDown, LogOut, KeyRound } from "lucide-react";
|
|
817
|
-
import { jsx as
|
|
818
|
-
var UserMenu =
|
|
688
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
689
|
+
var UserMenu = React7.memo(function UserMenu2({
|
|
819
690
|
user,
|
|
820
691
|
onSignOut,
|
|
821
692
|
onChangePassword,
|
|
@@ -840,34 +711,34 @@ var UserMenu = React8.memo(function UserMenu2({
|
|
|
840
711
|
}
|
|
841
712
|
return /* @__PURE__ */ jsxs5(Dialog, { open: isPasswordDialogOpen, onOpenChange: setPasswordDialogOpen, children: [
|
|
842
713
|
/* @__PURE__ */ jsxs5(Select, { className, children: [
|
|
843
|
-
/* @__PURE__ */
|
|
714
|
+
/* @__PURE__ */ jsx9(SelectTrigger, { asChild: true, children: /* @__PURE__ */ jsxs5(Button, { variant: "outline", className: "flex items-center gap-2", "aria-label": userInfo.displayName, children: [
|
|
844
715
|
showAvatar && /* @__PURE__ */ jsxs5(Avatar, { className: "h-8 w-8", children: [
|
|
845
|
-
/* @__PURE__ */
|
|
846
|
-
/* @__PURE__ */
|
|
716
|
+
/* @__PURE__ */ jsx9(AvatarImage, { src: userInfo.avatarUrl, alt: userInfo.displayName }),
|
|
717
|
+
/* @__PURE__ */ jsx9(AvatarFallback, { children: userInfo.initial })
|
|
847
718
|
] }),
|
|
848
|
-
/* @__PURE__ */
|
|
849
|
-
/* @__PURE__ */
|
|
719
|
+
/* @__PURE__ */ jsx9("span", { className: "hidden sm:inline-block", children: userInfo.displayName }),
|
|
720
|
+
/* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4" })
|
|
850
721
|
] }) }),
|
|
851
722
|
/* @__PURE__ */ jsxs5(SelectContent, { children: [
|
|
852
|
-
/* @__PURE__ */
|
|
853
|
-
/* @__PURE__ */
|
|
854
|
-
/* @__PURE__ */
|
|
723
|
+
/* @__PURE__ */ jsx9(SelectLabel, { className: "font-normal", children: /* @__PURE__ */ jsxs5("div", { className: "flex flex-col space-y-1", children: [
|
|
724
|
+
/* @__PURE__ */ jsx9("p", { className: "font-medium", children: userInfo.displayName }),
|
|
725
|
+
/* @__PURE__ */ jsx9("p", { className: "text-muted-foreground", children: userInfo.email })
|
|
855
726
|
] }) }),
|
|
856
|
-
/* @__PURE__ */
|
|
857
|
-
/* @__PURE__ */
|
|
858
|
-
/* @__PURE__ */
|
|
859
|
-
/* @__PURE__ */
|
|
727
|
+
/* @__PURE__ */ jsx9(SelectSeparator, {}),
|
|
728
|
+
/* @__PURE__ */ jsx9(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsxs5(SelectItem, { value: "change-password", children: [
|
|
729
|
+
/* @__PURE__ */ jsx9(KeyRound, { className: "mr-2 h-4 w-4" }),
|
|
730
|
+
/* @__PURE__ */ jsx9("span", { children: "Change Password" })
|
|
860
731
|
] }) }),
|
|
861
732
|
/* @__PURE__ */ jsxs5(SelectItem, { value: "sign-out", onClick: handleSignOut, children: [
|
|
862
|
-
/* @__PURE__ */
|
|
863
|
-
/* @__PURE__ */
|
|
733
|
+
/* @__PURE__ */ jsx9(LogOut, { className: "mr-2 h-4 w-4" }),
|
|
734
|
+
/* @__PURE__ */ jsx9("span", { children: "Sign out" })
|
|
864
735
|
] })
|
|
865
736
|
] })
|
|
866
737
|
] }),
|
|
867
|
-
/* @__PURE__ */
|
|
738
|
+
/* @__PURE__ */ jsx9(DialogOverlay, {}),
|
|
868
739
|
/* @__PURE__ */ jsxs5(DialogContent, { className, children: [
|
|
869
|
-
/* @__PURE__ */
|
|
870
|
-
/* @__PURE__ */
|
|
740
|
+
/* @__PURE__ */ jsx9(DialogHeader, { children: /* @__PURE__ */ jsx9(DialogTitle, { children: "Change Password" }) }),
|
|
741
|
+
/* @__PURE__ */ jsx9(
|
|
871
742
|
PasswordChangeForm,
|
|
872
743
|
{
|
|
873
744
|
onSubmit: async ({ newPassword, confirmPassword }) => {
|
|
@@ -885,7 +756,7 @@ var UserMenu = React8.memo(function UserMenu2({
|
|
|
885
756
|
] })
|
|
886
757
|
] });
|
|
887
758
|
});
|
|
888
|
-
var UserMenuLoading =
|
|
759
|
+
var UserMenuLoading = React7.memo(function UserMenuLoading2() {
|
|
889
760
|
return /* @__PURE__ */ jsxs5("div", { className: "relative inline-block text-left", children: [
|
|
890
761
|
/* @__PURE__ */ jsxs5(
|
|
891
762
|
"button",
|
|
@@ -894,23 +765,23 @@ var UserMenuLoading = React8.memo(function UserMenuLoading2() {
|
|
|
894
765
|
disabled: true,
|
|
895
766
|
className: "flex items-center space-x-2 px-3 py-2 text-sm font-medium text-muted-foreground bg-muted border border-input rounded-md",
|
|
896
767
|
children: [
|
|
897
|
-
/* @__PURE__ */
|
|
898
|
-
/* @__PURE__ */
|
|
899
|
-
/* @__PURE__ */
|
|
768
|
+
/* @__PURE__ */ jsx9("div", { className: "w-6 h-6 rounded-full bg-muted animate-pulse" }),
|
|
769
|
+
/* @__PURE__ */ jsx9("span", { className: "truncate max-w-[150px]", children: "Loading..." }),
|
|
770
|
+
/* @__PURE__ */ jsx9(ChevronDown, { className: "w-4 h-4 text-muted-foreground" })
|
|
900
771
|
]
|
|
901
772
|
}
|
|
902
773
|
),
|
|
903
|
-
/* @__PURE__ */
|
|
774
|
+
/* @__PURE__ */ jsx9("div", { role: "status", "aria-label": "Loading user menu", "aria-live": "polite", className: "w-6 h-6 rounded-full bg-muted animate-pulse" })
|
|
904
775
|
] });
|
|
905
776
|
});
|
|
906
777
|
UserMenu.Loading = UserMenuLoading;
|
|
907
778
|
|
|
908
779
|
// src/components/NavigationMenu/NavigationMenu.tsx
|
|
909
|
-
import * as
|
|
780
|
+
import * as React8 from "react";
|
|
910
781
|
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
911
782
|
init_UnifiedAuthProvider();
|
|
912
|
-
import { jsx as
|
|
913
|
-
var NavigationMenu =
|
|
783
|
+
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
784
|
+
var NavigationMenu = React8.forwardRef(({
|
|
914
785
|
items,
|
|
915
786
|
mode = "dropdown",
|
|
916
787
|
currentPath,
|
|
@@ -928,15 +799,15 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
928
799
|
filterByPermissions = true,
|
|
929
800
|
...props
|
|
930
801
|
}, ref) => {
|
|
931
|
-
const [expandedItems, setExpandedItems] =
|
|
932
|
-
const buttonRef =
|
|
802
|
+
const [expandedItems, setExpandedItems] = React8.useState(/* @__PURE__ */ new Set());
|
|
803
|
+
const buttonRef = React8.useRef(null);
|
|
933
804
|
let authContext = null;
|
|
934
805
|
try {
|
|
935
806
|
authContext = useUnifiedAuth();
|
|
936
807
|
} catch (error) {
|
|
937
808
|
console.warn("[NavigationMenu] useUnifiedAuth not available, running in unauthenticated mode");
|
|
938
809
|
}
|
|
939
|
-
const filteredItems =
|
|
810
|
+
const filteredItems = React8.useMemo(() => {
|
|
940
811
|
if (!filterByPermissions || !authContext) return items || [];
|
|
941
812
|
return (items || []).filter((item) => {
|
|
942
813
|
if (item.meta?.hidden) return false;
|
|
@@ -964,7 +835,7 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
964
835
|
return true;
|
|
965
836
|
});
|
|
966
837
|
}, [items, filterByPermissions, authContext]);
|
|
967
|
-
|
|
838
|
+
React8.useEffect(() => {
|
|
968
839
|
if (auditLog && authContext) {
|
|
969
840
|
console.log("[NavigationMenu] Navigation access attempt:", {
|
|
970
841
|
itemId: "navigation-menu",
|
|
@@ -1061,7 +932,7 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
1061
932
|
const hasChildren = item.children && item.children.length > 0;
|
|
1062
933
|
const isExpanded = expandedItems.has(item.id);
|
|
1063
934
|
const itemIsActive = isActiveItem(item);
|
|
1064
|
-
return /* @__PURE__ */
|
|
935
|
+
return /* @__PURE__ */ jsx10("li", { role: "none", children: hasChildren ? /* @__PURE__ */ jsxs6("div", { children: [
|
|
1065
936
|
/* @__PURE__ */ jsxs6(
|
|
1066
937
|
"button",
|
|
1067
938
|
{
|
|
@@ -1071,21 +942,21 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
1071
942
|
"aria-controls": `submenu-${item.id}`,
|
|
1072
943
|
"aria-current": itemIsActive ? "page" : void 0,
|
|
1073
944
|
children: [
|
|
1074
|
-
/* @__PURE__ */
|
|
1075
|
-
/* @__PURE__ */
|
|
945
|
+
/* @__PURE__ */ jsx10("span", { children: item.label }),
|
|
946
|
+
/* @__PURE__ */ jsx10(ChevronDown2, { "aria-hidden": "true" })
|
|
1076
947
|
]
|
|
1077
948
|
}
|
|
1078
949
|
),
|
|
1079
|
-
isExpanded && item.children && /* @__PURE__ */
|
|
950
|
+
isExpanded && item.children && /* @__PURE__ */ jsx10(
|
|
1080
951
|
"ul",
|
|
1081
952
|
{
|
|
1082
953
|
id: `submenu-${item.id}`,
|
|
1083
954
|
role: "menu",
|
|
1084
955
|
"aria-label": `${item.label} submenu`,
|
|
1085
|
-
children: item.children.map((child) => /* @__PURE__ */
|
|
956
|
+
children: item.children.map((child) => /* @__PURE__ */ jsx10(React8.Fragment, { children: renderHierarchicalItem(child, level + 1) }, child.id))
|
|
1086
957
|
}
|
|
1087
958
|
)
|
|
1088
|
-
] }) : /* @__PURE__ */
|
|
959
|
+
] }) : /* @__PURE__ */ jsx10(
|
|
1089
960
|
"a",
|
|
1090
961
|
{
|
|
1091
962
|
href: item.href || "#",
|
|
@@ -1110,19 +981,19 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
1110
981
|
className,
|
|
1111
982
|
"data-testid": "navigation-menu-root",
|
|
1112
983
|
children: [
|
|
1113
|
-
/* @__PURE__ */
|
|
984
|
+
/* @__PURE__ */ jsx10(
|
|
1114
985
|
SelectTrigger,
|
|
1115
986
|
{
|
|
1116
987
|
ref: buttonRef,
|
|
1117
988
|
disabled,
|
|
1118
989
|
"aria-label": buttonText,
|
|
1119
990
|
"data-testid": "navigation-menu-trigger",
|
|
1120
|
-
children: /* @__PURE__ */
|
|
991
|
+
children: /* @__PURE__ */ jsx10(SelectValue, { placeholder: buttonText })
|
|
1121
992
|
}
|
|
1122
993
|
),
|
|
1123
|
-
/* @__PURE__ */
|
|
994
|
+
/* @__PURE__ */ jsx10(SelectContent, { children: filteredItems.map((item) => {
|
|
1124
995
|
const isActive = isActiveItem(item);
|
|
1125
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ jsx10(
|
|
1126
997
|
SelectItem,
|
|
1127
998
|
{
|
|
1128
999
|
value: item.id,
|
|
@@ -1137,14 +1008,14 @@ var NavigationMenu = React9.forwardRef(({
|
|
|
1137
1008
|
}
|
|
1138
1009
|
);
|
|
1139
1010
|
}
|
|
1140
|
-
return /* @__PURE__ */
|
|
1011
|
+
return /* @__PURE__ */ jsx10(
|
|
1141
1012
|
"nav",
|
|
1142
1013
|
{
|
|
1143
1014
|
ref,
|
|
1144
1015
|
className,
|
|
1145
1016
|
"aria-label": navigationLabel,
|
|
1146
1017
|
...props,
|
|
1147
|
-
children: /* @__PURE__ */
|
|
1018
|
+
children: /* @__PURE__ */ jsx10("ul", { role: "menubar", children: filteredItems.map((item) => /* @__PURE__ */ jsx10(React8.Fragment, { children: renderHierarchicalItem(item, 0) }, item.id)) })
|
|
1148
1019
|
}
|
|
1149
1020
|
);
|
|
1150
1021
|
});
|
|
@@ -1152,7 +1023,7 @@ NavigationMenu.displayName = "NavigationMenu";
|
|
|
1152
1023
|
|
|
1153
1024
|
// src/components/Header/Header.tsx
|
|
1154
1025
|
init_cn();
|
|
1155
|
-
import { jsx as
|
|
1026
|
+
import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1156
1027
|
function Header({
|
|
1157
1028
|
logoUrl,
|
|
1158
1029
|
logoAlt = "Logo",
|
|
@@ -1169,18 +1040,18 @@ function Header({
|
|
|
1169
1040
|
currentPath,
|
|
1170
1041
|
onNavigate
|
|
1171
1042
|
}) {
|
|
1172
|
-
return /* @__PURE__ */
|
|
1043
|
+
return /* @__PURE__ */ jsx11("header", { className: cn(
|
|
1173
1044
|
"w-full border-b border-main-200 h-16 shadow-sm bg-main-100 ",
|
|
1174
1045
|
className
|
|
1175
1046
|
), role: "banner", children: /* @__PURE__ */ jsxs7("nav", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto grid grid-cols-[auto_auto_1fr_auto] gap-4 h-full items-center", children: [
|
|
1176
|
-
logo ? logo : logoUrl ? /* @__PURE__ */
|
|
1047
|
+
logo ? logo : logoUrl ? /* @__PURE__ */ jsx11(
|
|
1177
1048
|
"img",
|
|
1178
1049
|
{
|
|
1179
1050
|
src: logoUrl,
|
|
1180
1051
|
alt: logoAlt || "Logo",
|
|
1181
1052
|
className: "h-[2.15rem] w-auto max-w-[200px] object-contain rounded-md shadow-md bg-transparent"
|
|
1182
1053
|
}
|
|
1183
|
-
) : /* @__PURE__ */
|
|
1054
|
+
) : /* @__PURE__ */ jsx11(
|
|
1184
1055
|
"img",
|
|
1185
1056
|
{
|
|
1186
1057
|
src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' fill='%23000'/%3E%3Ctext x='16' y='20' text-anchor='middle' fill='white' font-family='Arial' font-size='14' font-weight='bold'%3EL%3C/text%3E%3C/svg%3E",
|
|
@@ -1188,7 +1059,7 @@ function Header({
|
|
|
1188
1059
|
className: "h-8 w-8 shadow-md"
|
|
1189
1060
|
}
|
|
1190
1061
|
),
|
|
1191
|
-
navItems && navItems.length > 0 && /* @__PURE__ */
|
|
1062
|
+
navItems && navItems.length > 0 && /* @__PURE__ */ jsx11(
|
|
1192
1063
|
NavigationMenu,
|
|
1193
1064
|
{
|
|
1194
1065
|
items: navItems,
|
|
@@ -1198,7 +1069,7 @@ function Header({
|
|
|
1198
1069
|
className: "w-48"
|
|
1199
1070
|
}
|
|
1200
1071
|
),
|
|
1201
|
-
showEventSelector && /* @__PURE__ */
|
|
1072
|
+
showEventSelector && /* @__PURE__ */ jsx11(
|
|
1202
1073
|
EventSelector,
|
|
1203
1074
|
{
|
|
1204
1075
|
placeholder: "Select event",
|
|
@@ -1207,7 +1078,7 @@ function Header({
|
|
|
1207
1078
|
}
|
|
1208
1079
|
),
|
|
1209
1080
|
actions,
|
|
1210
|
-
showUserMenu && (userMenu ? userMenu : /* @__PURE__ */
|
|
1081
|
+
showUserMenu && (userMenu ? userMenu : /* @__PURE__ */ jsx11(
|
|
1211
1082
|
UserMenu,
|
|
1212
1083
|
{
|
|
1213
1084
|
user: user || null,
|
|
@@ -1221,8 +1092,8 @@ function Header({
|
|
|
1221
1092
|
|
|
1222
1093
|
// src/components/Footer/Footer.tsx
|
|
1223
1094
|
init_cn();
|
|
1224
|
-
import
|
|
1225
|
-
import { Fragment as Fragment3, jsx as
|
|
1095
|
+
import React9 from "react";
|
|
1096
|
+
import { Fragment as Fragment3, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1226
1097
|
var FooterComponent = ({
|
|
1227
1098
|
companyName = "Solvera Solutions Pty Ltd",
|
|
1228
1099
|
year = (/* @__PURE__ */ new Date()).getFullYear(),
|
|
@@ -1233,22 +1104,22 @@ var FooterComponent = ({
|
|
|
1233
1104
|
children
|
|
1234
1105
|
}) => {
|
|
1235
1106
|
const copyrightText = copyright || `\xA9 Copyright 2022\u2013${year} all rights reserved, ${companyName}.`;
|
|
1236
|
-
return /* @__PURE__ */
|
|
1237
|
-
logo && /* @__PURE__ */
|
|
1238
|
-
children && /* @__PURE__ */
|
|
1239
|
-
/* @__PURE__ */
|
|
1240
|
-
links && links.length > 0 && /* @__PURE__ */
|
|
1107
|
+
return /* @__PURE__ */ jsx12("footer", { className: cn("mt-8 py-6 flex justify-center border-t border-border bg-main-100", className), children: /* @__PURE__ */ jsxs8("section", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto text-center", children: [
|
|
1108
|
+
logo && /* @__PURE__ */ jsx12("img", { src: logo, alt: "Logo", className: "h-8 w-auto" }),
|
|
1109
|
+
children && /* @__PURE__ */ jsx12(Fragment3, { children }),
|
|
1110
|
+
/* @__PURE__ */ jsx12("span", { className: "text-muted-foreground", children: copyrightText }),
|
|
1111
|
+
links && links.length > 0 && /* @__PURE__ */ jsx12("ul", { className: "flex gap-4 mt-2 md:mt-0", children: links.map((link, index) => /* @__PURE__ */ jsx12("li", { children: /* @__PURE__ */ jsx12("a", { href: link.href, className: "text-muted-foreground hover:text-foreground", children: link.label }) }, index)) })
|
|
1241
1112
|
] }) });
|
|
1242
1113
|
};
|
|
1243
1114
|
FooterComponent.displayName = "Footer";
|
|
1244
|
-
var Footer =
|
|
1115
|
+
var Footer = React9.memo(FooterComponent);
|
|
1245
1116
|
Footer.displayName = "Footer";
|
|
1246
1117
|
|
|
1247
1118
|
// src/components/PaceAppLayout/PaceAppLayout.tsx
|
|
1248
1119
|
init_UnifiedAuthProvider();
|
|
1249
1120
|
import { useState as useState5, useEffect as useEffect3, useMemo as useMemo5, useCallback as useCallback3 } from "react";
|
|
1250
1121
|
import { Outlet, useNavigate, useLocation } from "react-router-dom";
|
|
1251
|
-
import { Fragment as Fragment4, jsx as
|
|
1122
|
+
import { Fragment as Fragment4, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1252
1123
|
var EMPTY_PAGE_ID_MAPPING = {};
|
|
1253
1124
|
var EMPTY_ROUTE_PERMISSIONS = {};
|
|
1254
1125
|
function PaceAppLayout({
|
|
@@ -1474,33 +1345,33 @@ function PaceAppLayout({
|
|
|
1474
1345
|
return result || { error: null };
|
|
1475
1346
|
};
|
|
1476
1347
|
if (enforcePermissions && isCheckingPermission) {
|
|
1477
|
-
return /* @__PURE__ */
|
|
1478
|
-
/* @__PURE__ */
|
|
1479
|
-
/* @__PURE__ */
|
|
1348
|
+
return /* @__PURE__ */ jsx13("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsxs9("div", { className: "text-center", children: [
|
|
1349
|
+
/* @__PURE__ */ jsx13("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-sec-900 mx-auto mb-4" }),
|
|
1350
|
+
/* @__PURE__ */ jsx13("p", { className: "text-sec-600", children: "Checking permissions..." })
|
|
1480
1351
|
] }) });
|
|
1481
1352
|
}
|
|
1482
1353
|
if (enforcePermissions && permissionError) {
|
|
1483
|
-
return /* @__PURE__ */
|
|
1484
|
-
/* @__PURE__ */
|
|
1485
|
-
/* @__PURE__ */
|
|
1486
|
-
/* @__PURE__ */
|
|
1354
|
+
return /* @__PURE__ */ jsx13("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsxs9("div", { className: "text-center", children: [
|
|
1355
|
+
/* @__PURE__ */ jsx13("h2", { className: "text-xl font-semibold text-acc-600 mb-2", children: "Permission Error" }),
|
|
1356
|
+
/* @__PURE__ */ jsx13("p", { className: "text-sec-600 mb-4", children: permissionError.message }),
|
|
1357
|
+
/* @__PURE__ */ jsx13(Button, { onClick: () => navigate("/"), children: "Go Home" })
|
|
1487
1358
|
] }) });
|
|
1488
1359
|
}
|
|
1489
1360
|
if (enforcePermissions && hasPermission === false) {
|
|
1490
1361
|
if (enforcePagePermissions && pagePermissionFallback) {
|
|
1491
|
-
return /* @__PURE__ */
|
|
1362
|
+
return /* @__PURE__ */ jsx13(Fragment4, { children: pagePermissionFallback });
|
|
1492
1363
|
}
|
|
1493
1364
|
if (permissionFallback) {
|
|
1494
|
-
return /* @__PURE__ */
|
|
1365
|
+
return /* @__PURE__ */ jsx13(Fragment4, { children: permissionFallback });
|
|
1495
1366
|
}
|
|
1496
|
-
return /* @__PURE__ */
|
|
1497
|
-
/* @__PURE__ */
|
|
1498
|
-
/* @__PURE__ */
|
|
1499
|
-
/* @__PURE__ */
|
|
1367
|
+
return /* @__PURE__ */ jsx13("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsxs9("div", { className: "text-center", children: [
|
|
1368
|
+
/* @__PURE__ */ jsx13("h2", { className: "text-xl font-semibold text-acc-600 mb-2", children: "Access Denied" }),
|
|
1369
|
+
/* @__PURE__ */ jsx13("p", { className: "text-sec-600 mb-4", children: "You don't have permission to access this page." }),
|
|
1370
|
+
/* @__PURE__ */ jsx13(Button, { onClick: () => navigate("/"), children: "Go Home" })
|
|
1500
1371
|
] }) });
|
|
1501
1372
|
}
|
|
1502
1373
|
return /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
1503
|
-
/* @__PURE__ */
|
|
1374
|
+
/* @__PURE__ */ jsx13(
|
|
1504
1375
|
Header,
|
|
1505
1376
|
{
|
|
1506
1377
|
logo: customLogo || void 0,
|
|
@@ -1523,15 +1394,15 @@ function PaceAppLayout({
|
|
|
1523
1394
|
className: headerClassName || "sticky top-0 z-[40] w-full"
|
|
1524
1395
|
}
|
|
1525
1396
|
),
|
|
1526
|
-
/* @__PURE__ */
|
|
1527
|
-
/* @__PURE__ */
|
|
1397
|
+
/* @__PURE__ */ jsx13("main", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto py-8", children: /* @__PURE__ */ jsx13(Outlet, {}) }),
|
|
1398
|
+
/* @__PURE__ */ jsx13(Footer, {})
|
|
1528
1399
|
] });
|
|
1529
1400
|
}
|
|
1530
1401
|
|
|
1531
1402
|
// src/components/PaceLoginPage/PaceLoginPage.tsx
|
|
1532
1403
|
import { useEffect as useEffect4, useState as useState6 } from "react";
|
|
1533
1404
|
import { useNavigate as useNavigate2 } from "react-router-dom";
|
|
1534
|
-
import { jsx as
|
|
1405
|
+
import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1535
1406
|
var PaceLoginPage = ({
|
|
1536
1407
|
appName = "Pace",
|
|
1537
1408
|
onSuccessRedirectPath = "/"
|
|
@@ -1564,7 +1435,7 @@ var PaceLoginPage = ({
|
|
|
1564
1435
|
}
|
|
1565
1436
|
};
|
|
1566
1437
|
return /* @__PURE__ */ jsxs10("main", { className: "min-h-screen grid mx-auto w-fit content-center justify-items-center gap-y-8", "aria-label": `${appName} Login Page`, children: [
|
|
1567
|
-
/* @__PURE__ */
|
|
1438
|
+
/* @__PURE__ */ jsx14(
|
|
1568
1439
|
"img",
|
|
1569
1440
|
{
|
|
1570
1441
|
src: `/${appName.toLowerCase()}_logo_square.svg`,
|
|
@@ -1572,7 +1443,7 @@ var PaceLoginPage = ({
|
|
|
1572
1443
|
className: "h-48"
|
|
1573
1444
|
}
|
|
1574
1445
|
),
|
|
1575
|
-
/* @__PURE__ */
|
|
1446
|
+
/* @__PURE__ */ jsx14(
|
|
1576
1447
|
LoginForm,
|
|
1577
1448
|
{
|
|
1578
1449
|
className: "w-md",
|
|
@@ -1584,13 +1455,13 @@ var PaceLoginPage = ({
|
|
|
1584
1455
|
}
|
|
1585
1456
|
}
|
|
1586
1457
|
),
|
|
1587
|
-
authError && /* @__PURE__ */
|
|
1458
|
+
authError && /* @__PURE__ */ jsx14("em", { className: "mt-4 text-destructive text-center", children: authError.message })
|
|
1588
1459
|
] });
|
|
1589
1460
|
};
|
|
1590
1461
|
|
|
1591
1462
|
// src/components/ErrorBoundary/ErrorBoundary.tsx
|
|
1592
1463
|
import { Component } from "react";
|
|
1593
|
-
import { jsx as
|
|
1464
|
+
import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1594
1465
|
var ErrorBoundary = class extends Component {
|
|
1595
1466
|
constructor(props) {
|
|
1596
1467
|
super(props);
|
|
@@ -1663,20 +1534,20 @@ var ErrorBoundary = class extends Component {
|
|
|
1663
1534
|
if (fallback) {
|
|
1664
1535
|
return fallback;
|
|
1665
1536
|
}
|
|
1666
|
-
return /* @__PURE__ */
|
|
1537
|
+
return /* @__PURE__ */ jsx15(
|
|
1667
1538
|
"div",
|
|
1668
1539
|
{
|
|
1669
1540
|
role: "alert",
|
|
1670
1541
|
className: "p-6 bg-destructive/10 border border-destructive/20 rounded-lg",
|
|
1671
1542
|
"data-error-boundary": errorId,
|
|
1672
1543
|
children: /* @__PURE__ */ jsxs11("div", { className: "flex items-start gap-3", children: [
|
|
1673
|
-
/* @__PURE__ */
|
|
1544
|
+
/* @__PURE__ */ jsx15("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx15("svg", { className: "w-5 h-5 text-destructive", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsx15("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z", clipRule: "evenodd" }) }) }),
|
|
1674
1545
|
/* @__PURE__ */ jsxs11("div", { className: "flex-1 min-w-0", children: [
|
|
1675
1546
|
/* @__PURE__ */ jsxs11("h3", { className: "text-destructive", children: [
|
|
1676
1547
|
"Error in ",
|
|
1677
1548
|
componentName
|
|
1678
1549
|
] }),
|
|
1679
|
-
/* @__PURE__ */
|
|
1550
|
+
/* @__PURE__ */ jsx15("p", { className: "text-destructive/80", children: this.state.error?.message || "An unexpected error occurred." }),
|
|
1680
1551
|
enableRetry && retryCount < maxRetries && /* @__PURE__ */ jsxs11("div", { className: "flex gap-3 mb-4", children: [
|
|
1681
1552
|
/* @__PURE__ */ jsxs11(
|
|
1682
1553
|
"button",
|
|
@@ -1692,7 +1563,7 @@ var ErrorBoundary = class extends Component {
|
|
|
1692
1563
|
]
|
|
1693
1564
|
}
|
|
1694
1565
|
),
|
|
1695
|
-
/* @__PURE__ */
|
|
1566
|
+
/* @__PURE__ */ jsx15(
|
|
1696
1567
|
"button",
|
|
1697
1568
|
{
|
|
1698
1569
|
onClick: () => window.location.reload(),
|
|
@@ -1702,8 +1573,8 @@ var ErrorBoundary = class extends Component {
|
|
|
1702
1573
|
)
|
|
1703
1574
|
] }),
|
|
1704
1575
|
retryCount >= maxRetries && /* @__PURE__ */ jsxs11("div", { className: "mb-4 p-3 bg-acc-50 border border-acc-200 rounded-md", children: [
|
|
1705
|
-
/* @__PURE__ */
|
|
1706
|
-
/* @__PURE__ */
|
|
1576
|
+
/* @__PURE__ */ jsx15("p", { className: "text-acc-800", children: "Maximum retry attempts reached. Please reload the page or contact support." }),
|
|
1577
|
+
/* @__PURE__ */ jsx15(
|
|
1707
1578
|
"button",
|
|
1708
1579
|
{
|
|
1709
1580
|
onClick: () => window.location.reload(),
|
|
@@ -1727,7 +1598,7 @@ import { useState as useState7, useCallback as useCallback4 } from "react";
|
|
|
1727
1598
|
init_Button();
|
|
1728
1599
|
init_OrganisationProvider();
|
|
1729
1600
|
import { RefreshCw as RefreshCw2, AlertCircle as AlertCircle2, Building2, Shield } from "lucide-react";
|
|
1730
|
-
import { jsx as
|
|
1601
|
+
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1731
1602
|
function OrganisationSelector({
|
|
1732
1603
|
placeholder = "Select organisation",
|
|
1733
1604
|
className,
|
|
@@ -1792,14 +1663,14 @@ function OrganisationSelector({
|
|
|
1792
1663
|
}, [refreshOrganisations]);
|
|
1793
1664
|
if (orgLoading) {
|
|
1794
1665
|
return /* @__PURE__ */ jsxs12("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
1795
|
-
/* @__PURE__ */
|
|
1796
|
-
/* @__PURE__ */
|
|
1666
|
+
/* @__PURE__ */ jsx16(LoadingSpinner, { size: "sm" }),
|
|
1667
|
+
/* @__PURE__ */ jsx16("span", { className: "text-sm text-muted-foreground", children: compact ? "Loading..." : "Loading organisations..." })
|
|
1797
1668
|
] });
|
|
1798
1669
|
}
|
|
1799
1670
|
if (orgError) {
|
|
1800
1671
|
return /* @__PURE__ */ jsxs12("div", { className: `space-y-2 ${className}`, children: [
|
|
1801
1672
|
/* @__PURE__ */ jsxs12(Alert, { variant: "destructive", children: [
|
|
1802
|
-
/* @__PURE__ */
|
|
1673
|
+
/* @__PURE__ */ jsx16(AlertCircle2, { className: "h-4 w-4" }),
|
|
1803
1674
|
/* @__PURE__ */ jsxs12(AlertDescription, { children: [
|
|
1804
1675
|
"Failed to load organisations: ",
|
|
1805
1676
|
orgError.message
|
|
@@ -1814,7 +1685,7 @@ function OrganisationSelector({
|
|
|
1814
1685
|
disabled: isLoading,
|
|
1815
1686
|
className: "w-full",
|
|
1816
1687
|
children: [
|
|
1817
|
-
/* @__PURE__ */
|
|
1688
|
+
/* @__PURE__ */ jsx16(RefreshCw2, { className: `h-4 w-4 mr-2 ${isLoading ? "animate-spin" : ""}` }),
|
|
1818
1689
|
"Retry"
|
|
1819
1690
|
]
|
|
1820
1691
|
}
|
|
@@ -1825,8 +1696,8 @@ function OrganisationSelector({
|
|
|
1825
1696
|
if (showNoOrganisationsMessage) {
|
|
1826
1697
|
return /* @__PURE__ */ jsxs12("div", { className: `space-y-2 ${className}`, children: [
|
|
1827
1698
|
/* @__PURE__ */ jsxs12(Alert, { children: [
|
|
1828
|
-
/* @__PURE__ */
|
|
1829
|
-
/* @__PURE__ */
|
|
1699
|
+
/* @__PURE__ */ jsx16(Building2, { className: "h-4 w-4" }),
|
|
1700
|
+
/* @__PURE__ */ jsx16(AlertDescription, { children: "No organisations available. Please contact your administrator to be added to an organisation." })
|
|
1830
1701
|
] }),
|
|
1831
1702
|
showRetryButton && /* @__PURE__ */ jsxs12(
|
|
1832
1703
|
Button,
|
|
@@ -1837,7 +1708,7 @@ function OrganisationSelector({
|
|
|
1837
1708
|
disabled: isLoading,
|
|
1838
1709
|
className: "w-full",
|
|
1839
1710
|
children: [
|
|
1840
|
-
/* @__PURE__ */
|
|
1711
|
+
/* @__PURE__ */ jsx16(RefreshCw2, { className: `h-4 w-4 mr-2 ${isLoading ? "animate-spin" : ""}` }),
|
|
1841
1712
|
"Check Again"
|
|
1842
1713
|
]
|
|
1843
1714
|
}
|
|
@@ -1847,8 +1718,8 @@ function OrganisationSelector({
|
|
|
1847
1718
|
return null;
|
|
1848
1719
|
}
|
|
1849
1720
|
const switchErrorDisplay = switchError && /* @__PURE__ */ jsxs12(Alert, { variant: "destructive", className: "mt-2", children: [
|
|
1850
|
-
/* @__PURE__ */
|
|
1851
|
-
/* @__PURE__ */
|
|
1721
|
+
/* @__PURE__ */ jsx16(AlertCircle2, { className: "h-4 w-4" }),
|
|
1722
|
+
/* @__PURE__ */ jsx16(AlertDescription, { children: switchError })
|
|
1852
1723
|
] });
|
|
1853
1724
|
return /* @__PURE__ */ jsxs12("div", { className: `space-y-2 ${className}`, children: [
|
|
1854
1725
|
/* @__PURE__ */ jsxs12(
|
|
@@ -1858,14 +1729,14 @@ function OrganisationSelector({
|
|
|
1858
1729
|
onValueChange: handleOrganisationChange,
|
|
1859
1730
|
disabled: disabled || isLoading,
|
|
1860
1731
|
children: [
|
|
1861
|
-
/* @__PURE__ */
|
|
1862
|
-
isLoading ? /* @__PURE__ */
|
|
1863
|
-
/* @__PURE__ */
|
|
1732
|
+
/* @__PURE__ */ jsx16(SelectTrigger, { className: `${isLoading ? "opacity-50" : ""}`, children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
|
|
1733
|
+
isLoading ? /* @__PURE__ */ jsx16(LoadingSpinner, { size: "sm" }) : /* @__PURE__ */ jsx16(Building2, { className: "h-4 w-4 text-muted-foreground" }),
|
|
1734
|
+
/* @__PURE__ */ jsx16(SelectValue, { placeholder })
|
|
1864
1735
|
] }) }),
|
|
1865
|
-
/* @__PURE__ */
|
|
1736
|
+
/* @__PURE__ */ jsx16(SelectContent, { children: organisations.map((org) => {
|
|
1866
1737
|
const userRole = getUserRole(org.id);
|
|
1867
1738
|
const hasAccess = validateOrganisationAccess(org.id);
|
|
1868
|
-
return /* @__PURE__ */
|
|
1739
|
+
return /* @__PURE__ */ jsx16(
|
|
1869
1740
|
SelectItem,
|
|
1870
1741
|
{
|
|
1871
1742
|
value: org.id,
|
|
@@ -1873,15 +1744,15 @@ function OrganisationSelector({
|
|
|
1873
1744
|
className: !hasAccess ? "opacity-50" : "",
|
|
1874
1745
|
children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between w-full", children: [
|
|
1875
1746
|
/* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
|
|
1876
|
-
/* @__PURE__ */
|
|
1747
|
+
/* @__PURE__ */ jsx16(Building2, { className: "h-4 w-4" }),
|
|
1877
1748
|
/* @__PURE__ */ jsxs12("div", { className: "flex flex-col", children: [
|
|
1878
|
-
/* @__PURE__ */
|
|
1879
|
-
!compact && org.description && /* @__PURE__ */
|
|
1749
|
+
/* @__PURE__ */ jsx16("span", { className: "font-medium", children: org.display_name }),
|
|
1750
|
+
!compact && org.description && /* @__PURE__ */ jsx16("span", { className: "text-xs text-muted-foreground truncate max-w-40", children: org.description })
|
|
1880
1751
|
] })
|
|
1881
1752
|
] }),
|
|
1882
1753
|
showRole && /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-1 ml-4", children: [
|
|
1883
|
-
/* @__PURE__ */
|
|
1884
|
-
/* @__PURE__ */
|
|
1754
|
+
/* @__PURE__ */ jsx16(Shield, { className: "h-3 w-3 text-muted-foreground" }),
|
|
1755
|
+
/* @__PURE__ */ jsx16("span", { className: "text-xs text-muted-foreground capitalize", children: userRole.replace("_", " ") })
|
|
1885
1756
|
] })
|
|
1886
1757
|
] })
|
|
1887
1758
|
},
|
|
@@ -1900,7 +1771,7 @@ init_Button();
|
|
|
1900
1771
|
import { useState as useState8 } from "react";
|
|
1901
1772
|
init_cn();
|
|
1902
1773
|
init_UnifiedAuthProvider();
|
|
1903
|
-
import { jsx as
|
|
1774
|
+
import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1904
1775
|
function PasswordResetForm({
|
|
1905
1776
|
onSuccess,
|
|
1906
1777
|
onError,
|
|
@@ -1941,13 +1812,13 @@ function PasswordResetForm({
|
|
|
1941
1812
|
setError(null);
|
|
1942
1813
|
};
|
|
1943
1814
|
if (isSuccess) {
|
|
1944
|
-
return /* @__PURE__ */
|
|
1945
|
-
/* @__PURE__ */
|
|
1815
|
+
return /* @__PURE__ */ jsx17("div", { className: cn("", className), role: "form", children: /* @__PURE__ */ jsxs13("div", { className: "space-y-4 text-center", children: [
|
|
1816
|
+
/* @__PURE__ */ jsx17("h2", { children: "Check your email" }),
|
|
1946
1817
|
/* @__PURE__ */ jsxs13("p", { className: "text-sec-600", children: [
|
|
1947
1818
|
"We have sent a password reset link to ",
|
|
1948
1819
|
email
|
|
1949
1820
|
] }),
|
|
1950
|
-
/* @__PURE__ */
|
|
1821
|
+
/* @__PURE__ */ jsx17(
|
|
1951
1822
|
Button,
|
|
1952
1823
|
{
|
|
1953
1824
|
variant: "outline",
|
|
@@ -1958,15 +1829,15 @@ function PasswordResetForm({
|
|
|
1958
1829
|
)
|
|
1959
1830
|
] }) });
|
|
1960
1831
|
}
|
|
1961
|
-
return /* @__PURE__ */
|
|
1832
|
+
return /* @__PURE__ */ jsx17("div", { className: cn("", className), role: "form", children: /* @__PURE__ */ jsxs13("div", { className: "space-y-4", children: [
|
|
1962
1833
|
/* @__PURE__ */ jsxs13("div", { className: "space-y-2", children: [
|
|
1963
|
-
/* @__PURE__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
1834
|
+
/* @__PURE__ */ jsx17("h2", { children: "Reset Password" }),
|
|
1835
|
+
/* @__PURE__ */ jsx17("p", { className: "text-sec-600", children: "Enter your email address and we'll send you a reset link." })
|
|
1965
1836
|
] }),
|
|
1966
1837
|
/* @__PURE__ */ jsxs13("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
|
|
1967
1838
|
/* @__PURE__ */ jsxs13("div", { className: "space-y-2", children: [
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
1839
|
+
/* @__PURE__ */ jsx17(Label, { htmlFor: "email", children: "Email Address" }),
|
|
1840
|
+
/* @__PURE__ */ jsx17(
|
|
1970
1841
|
Input,
|
|
1971
1842
|
{
|
|
1972
1843
|
id: "email",
|
|
@@ -1979,8 +1850,8 @@ function PasswordResetForm({
|
|
|
1979
1850
|
}
|
|
1980
1851
|
)
|
|
1981
1852
|
] }),
|
|
1982
|
-
error && /* @__PURE__ */
|
|
1983
|
-
/* @__PURE__ */
|
|
1853
|
+
error && /* @__PURE__ */ jsx17("div", { className: "text-sm text-destructive", role: "alert", children: error }),
|
|
1854
|
+
/* @__PURE__ */ jsx17(
|
|
1984
1855
|
Button,
|
|
1985
1856
|
{
|
|
1986
1857
|
type: "submit",
|
|
@@ -2465,7 +2336,7 @@ function useFileUpload({ supabase, appName, orgId }) {
|
|
|
2465
2336
|
// src/components/FileUpload/FileUpload.tsx
|
|
2466
2337
|
import { useCallback as useCallback6, useState as useState10 } from "react";
|
|
2467
2338
|
init_Button();
|
|
2468
|
-
import { jsx as
|
|
2339
|
+
import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2469
2340
|
function FileUpload({
|
|
2470
2341
|
supabase,
|
|
2471
2342
|
appName,
|
|
@@ -2554,7 +2425,7 @@ function FileUpload({
|
|
|
2554
2425
|
onDragOver: handleDrag,
|
|
2555
2426
|
onDrop: handleDrop,
|
|
2556
2427
|
children: [
|
|
2557
|
-
/* @__PURE__ */
|
|
2428
|
+
/* @__PURE__ */ jsx18(
|
|
2558
2429
|
"input",
|
|
2559
2430
|
{
|
|
2560
2431
|
type: "file",
|
|
@@ -2566,8 +2437,8 @@ function FileUpload({
|
|
|
2566
2437
|
}
|
|
2567
2438
|
),
|
|
2568
2439
|
children || /* @__PURE__ */ jsxs14("div", { className: "file-upload__content", children: [
|
|
2569
|
-
/* @__PURE__ */
|
|
2570
|
-
/* @__PURE__ */
|
|
2440
|
+
/* @__PURE__ */ jsx18("p", { className: "file-upload__text", children: dragActive ? "Drop files here" : "Drag and drop files here or click to select" }),
|
|
2441
|
+
/* @__PURE__ */ jsx18(
|
|
2571
2442
|
Button,
|
|
2572
2443
|
{
|
|
2573
2444
|
type: "button",
|
|
@@ -2582,24 +2453,24 @@ function FileUpload({
|
|
|
2582
2453
|
}
|
|
2583
2454
|
),
|
|
2584
2455
|
selectedFiles.length > 0 && /* @__PURE__ */ jsxs14("div", { className: "file-upload__files", children: [
|
|
2585
|
-
/* @__PURE__ */
|
|
2586
|
-
/* @__PURE__ */
|
|
2587
|
-
/* @__PURE__ */
|
|
2588
|
-
/* @__PURE__ */
|
|
2456
|
+
/* @__PURE__ */ jsx18("h4", { className: "file-upload__files-title", children: "Selected Files:" }),
|
|
2457
|
+
/* @__PURE__ */ jsx18("ul", { className: "file-upload__files-list", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsxs14("li", { className: "file-upload__file-item", children: [
|
|
2458
|
+
/* @__PURE__ */ jsx18("span", { className: "file-upload__file-name", children: file.name }),
|
|
2459
|
+
/* @__PURE__ */ jsx18("span", { className: "file-upload__file-size", children: formatFileSize(file.size) })
|
|
2589
2460
|
] }, index)) })
|
|
2590
2461
|
] }),
|
|
2591
|
-
validationErrors.length > 0 && /* @__PURE__ */
|
|
2462
|
+
validationErrors.length > 0 && /* @__PURE__ */ jsx18(Alert, { variant: "destructive", className: "file-upload__errors", children: /* @__PURE__ */ jsx18("ul", { children: validationErrors.map((error, index) => /* @__PURE__ */ jsx18("li", { children: error }, index)) }) }),
|
|
2592
2463
|
isUploading && /* @__PURE__ */ jsxs14("div", { className: "file-upload__progress", children: [
|
|
2593
|
-
/* @__PURE__ */
|
|
2464
|
+
/* @__PURE__ */ jsx18(Progress, { value: uploadProgress, max: 100 }),
|
|
2594
2465
|
/* @__PURE__ */ jsxs14("p", { className: "file-upload__progress-text", children: [
|
|
2595
2466
|
"Uploading... ",
|
|
2596
2467
|
uploadProgress,
|
|
2597
2468
|
"%"
|
|
2598
2469
|
] })
|
|
2599
2470
|
] }),
|
|
2600
|
-
uploadError && /* @__PURE__ */
|
|
2471
|
+
uploadError && /* @__PURE__ */ jsx18(Alert, { variant: "destructive", className: "file-upload__error", children: uploadError }),
|
|
2601
2472
|
selectedFiles.length > 0 && /* @__PURE__ */ jsxs14("div", { className: "file-upload__actions", children: [
|
|
2602
|
-
/* @__PURE__ */
|
|
2473
|
+
/* @__PURE__ */ jsx18(
|
|
2603
2474
|
Button,
|
|
2604
2475
|
{
|
|
2605
2476
|
onClick: handleUpload,
|
|
@@ -2608,7 +2479,7 @@ function FileUpload({
|
|
|
2608
2479
|
children: isUploading ? "Uploading..." : `Upload ${selectedFiles.length} file${selectedFiles.length > 1 ? "s" : ""}`
|
|
2609
2480
|
}
|
|
2610
2481
|
),
|
|
2611
|
-
/* @__PURE__ */
|
|
2482
|
+
/* @__PURE__ */ jsx18(
|
|
2612
2483
|
Button,
|
|
2613
2484
|
{
|
|
2614
2485
|
variant: "outline",
|
|
@@ -2624,9 +2495,9 @@ function FileUpload({
|
|
|
2624
2495
|
|
|
2625
2496
|
// src/components/Table/Table.tsx
|
|
2626
2497
|
init_cn();
|
|
2627
|
-
import * as
|
|
2628
|
-
import { jsx as
|
|
2629
|
-
var Table =
|
|
2498
|
+
import * as React16 from "react";
|
|
2499
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
2500
|
+
var Table = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2630
2501
|
"table",
|
|
2631
2502
|
{
|
|
2632
2503
|
ref,
|
|
@@ -2635,9 +2506,9 @@ var Table = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
2635
2506
|
}
|
|
2636
2507
|
));
|
|
2637
2508
|
Table.displayName = "Table";
|
|
2638
|
-
var TableHeader =
|
|
2509
|
+
var TableHeader = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
2639
2510
|
TableHeader.displayName = "TableHeader";
|
|
2640
|
-
var TableBody =
|
|
2511
|
+
var TableBody = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2641
2512
|
"tbody",
|
|
2642
2513
|
{
|
|
2643
2514
|
ref,
|
|
@@ -2646,7 +2517,7 @@ var TableBody = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2646
2517
|
}
|
|
2647
2518
|
));
|
|
2648
2519
|
TableBody.displayName = "TableBody";
|
|
2649
|
-
var TableFooter =
|
|
2520
|
+
var TableFooter = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2650
2521
|
"tfoot",
|
|
2651
2522
|
{
|
|
2652
2523
|
ref,
|
|
@@ -2658,7 +2529,7 @@ var TableFooter = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2658
2529
|
}
|
|
2659
2530
|
));
|
|
2660
2531
|
TableFooter.displayName = "TableFooter";
|
|
2661
|
-
var TableRow =
|
|
2532
|
+
var TableRow = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2662
2533
|
"tr",
|
|
2663
2534
|
{
|
|
2664
2535
|
ref,
|
|
@@ -2670,7 +2541,7 @@ var TableRow = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2670
2541
|
}
|
|
2671
2542
|
));
|
|
2672
2543
|
TableRow.displayName = "TableRow";
|
|
2673
|
-
var TableHead =
|
|
2544
|
+
var TableHead = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2674
2545
|
"th",
|
|
2675
2546
|
{
|
|
2676
2547
|
ref,
|
|
@@ -2682,7 +2553,7 @@ var TableHead = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2682
2553
|
}
|
|
2683
2554
|
));
|
|
2684
2555
|
TableHead.displayName = "TableHead";
|
|
2685
|
-
var TableCell =
|
|
2556
|
+
var TableCell = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2686
2557
|
"td",
|
|
2687
2558
|
{
|
|
2688
2559
|
ref,
|
|
@@ -2691,7 +2562,7 @@ var TableCell = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2691
2562
|
}
|
|
2692
2563
|
));
|
|
2693
2564
|
TableCell.displayName = "TableCell";
|
|
2694
|
-
var TableCaption =
|
|
2565
|
+
var TableCaption = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
2695
2566
|
"caption",
|
|
2696
2567
|
{
|
|
2697
2568
|
ref,
|
|
@@ -2703,7 +2574,7 @@ TableCaption.displayName = "TableCaption";
|
|
|
2703
2574
|
|
|
2704
2575
|
// src/components/PublicLayout/EventLogo.tsx
|
|
2705
2576
|
import { useMemo as useMemo6 } from "react";
|
|
2706
|
-
import { jsx as
|
|
2577
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
2707
2578
|
var sizeClasses = {
|
|
2708
2579
|
xs: "h-4 w-4 text-xs",
|
|
2709
2580
|
sm: "h-6 w-6 text-sm",
|
|
@@ -2748,7 +2619,7 @@ function EventLogo({
|
|
|
2748
2619
|
const hasValidOrganisationId = organisationId && uuidRegex.test(organisationId);
|
|
2749
2620
|
const { supabase } = usePublicPageContext();
|
|
2750
2621
|
if (!supabase) {
|
|
2751
|
-
return /* @__PURE__ */
|
|
2622
|
+
return /* @__PURE__ */ jsx20("div", { className: `${sizeClasses[size]} ${className}`.trim(), title: `${eventName} logo (Supabase not configured)`, children: eventName ? defaultGenerateFallbackText(eventName) : "EV" });
|
|
2752
2623
|
}
|
|
2753
2624
|
const {
|
|
2754
2625
|
logoUrl,
|
|
@@ -2772,30 +2643,30 @@ function EventLogo({
|
|
|
2772
2643
|
return `${baseClasses} ${sizeClass} ${className}`.trim();
|
|
2773
2644
|
}, [sizeClass, className]);
|
|
2774
2645
|
if (!hasValidOrganisationId && !isLoading && !logoUrl && showFallback) {
|
|
2775
|
-
return /* @__PURE__ */
|
|
2646
|
+
return /* @__PURE__ */ jsx20("div", { className: combinedClasses, title: `${eventName} logo (invalid organisation ID)`, children: fallbackText });
|
|
2776
2647
|
}
|
|
2777
2648
|
if (isLoading) {
|
|
2778
2649
|
if (LoadingComponent) {
|
|
2779
|
-
return /* @__PURE__ */
|
|
2650
|
+
return /* @__PURE__ */ jsx20(LoadingComponent, {});
|
|
2780
2651
|
}
|
|
2781
|
-
return /* @__PURE__ */
|
|
2652
|
+
return /* @__PURE__ */ jsx20("div", { className: `${combinedClasses} animate-pulse`, children: /* @__PURE__ */ jsx20("div", { className: "w-3/4 h-3/4 bg-gray-300 rounded" }) });
|
|
2782
2653
|
}
|
|
2783
2654
|
if (error) {
|
|
2784
2655
|
if (ErrorComponent) {
|
|
2785
|
-
return /* @__PURE__ */
|
|
2656
|
+
return /* @__PURE__ */ jsx20(ErrorComponent, { error });
|
|
2786
2657
|
}
|
|
2787
2658
|
if (showFallback) {
|
|
2788
|
-
return /* @__PURE__ */
|
|
2659
|
+
return /* @__PURE__ */ jsx20("div", { className: combinedClasses, title: `${eventName} (logo unavailable)`, children: fallbackText });
|
|
2789
2660
|
}
|
|
2790
2661
|
return null;
|
|
2791
2662
|
}
|
|
2792
2663
|
if (!logoUrl) {
|
|
2793
2664
|
if (showFallback) {
|
|
2794
|
-
return /* @__PURE__ */
|
|
2665
|
+
return /* @__PURE__ */ jsx20("div", { className: combinedClasses, title: `${eventName} logo`, children: fallbackText });
|
|
2795
2666
|
}
|
|
2796
2667
|
return null;
|
|
2797
2668
|
}
|
|
2798
|
-
return /* @__PURE__ */
|
|
2669
|
+
return /* @__PURE__ */ jsx20(
|
|
2799
2670
|
"img",
|
|
2800
2671
|
{
|
|
2801
2672
|
src: logoUrl,
|
|
@@ -2814,7 +2685,7 @@ function EventLogo({
|
|
|
2814
2685
|
);
|
|
2815
2686
|
}
|
|
2816
2687
|
function EventLogoCompact(props) {
|
|
2817
|
-
return /* @__PURE__ */
|
|
2688
|
+
return /* @__PURE__ */ jsx20(
|
|
2818
2689
|
EventLogo,
|
|
2819
2690
|
{
|
|
2820
2691
|
...props,
|
|
@@ -2824,7 +2695,7 @@ function EventLogoCompact(props) {
|
|
|
2824
2695
|
);
|
|
2825
2696
|
}
|
|
2826
2697
|
function EventLogoLarge(props) {
|
|
2827
|
-
return /* @__PURE__ */
|
|
2698
|
+
return /* @__PURE__ */ jsx20(
|
|
2828
2699
|
EventLogo,
|
|
2829
2700
|
{
|
|
2830
2701
|
...props,
|
|
@@ -2835,7 +2706,7 @@ function EventLogoLarge(props) {
|
|
|
2835
2706
|
}
|
|
2836
2707
|
|
|
2837
2708
|
// src/components/PublicLayout/PublicPageHeader.tsx
|
|
2838
|
-
import { jsx as
|
|
2709
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2839
2710
|
function PublicPageHeader({
|
|
2840
2711
|
event,
|
|
2841
2712
|
eventCode,
|
|
@@ -2850,10 +2721,10 @@ function PublicPageHeader({
|
|
|
2850
2721
|
}) {
|
|
2851
2722
|
const { appName } = useAppConfig();
|
|
2852
2723
|
const headerClasses = `bg-white border-b border-gray-200 ${className}`.trim();
|
|
2853
|
-
return /* @__PURE__ */
|
|
2724
|
+
return /* @__PURE__ */ jsx21("header", { className: headerClasses, children: /* @__PURE__ */ jsxs15("div", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto", children: [
|
|
2854
2725
|
/* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between py-4", children: [
|
|
2855
|
-
showAppLogo && /* @__PURE__ */
|
|
2856
|
-
/* @__PURE__ */
|
|
2726
|
+
showAppLogo && /* @__PURE__ */ jsx21("div", { className: "flex-shrink-0", children: customAppLogo || /* @__PURE__ */ jsxs15("div", { className: "flex items-center", children: [
|
|
2727
|
+
/* @__PURE__ */ jsx21(
|
|
2857
2728
|
"img",
|
|
2858
2729
|
{
|
|
2859
2730
|
className: "h-8 w-auto",
|
|
@@ -2861,9 +2732,9 @@ function PublicPageHeader({
|
|
|
2861
2732
|
alt: appName
|
|
2862
2733
|
}
|
|
2863
2734
|
),
|
|
2864
|
-
/* @__PURE__ */
|
|
2735
|
+
/* @__PURE__ */ jsx21("span", { className: "ml-2 text-lg font-semibold text-gray-900", children: appName })
|
|
2865
2736
|
] }) }),
|
|
2866
|
-
showEventLogo && /* @__PURE__ */
|
|
2737
|
+
showEventLogo && /* @__PURE__ */ jsx21("div", { className: "flex-shrink-0", children: customEventLogo || /* @__PURE__ */ jsx21(
|
|
2867
2738
|
EventLogo,
|
|
2868
2739
|
{
|
|
2869
2740
|
eventId: event.event_id,
|
|
@@ -2874,21 +2745,21 @@ function PublicPageHeader({
|
|
|
2874
2745
|
}
|
|
2875
2746
|
) })
|
|
2876
2747
|
] }),
|
|
2877
|
-
/* @__PURE__ */
|
|
2878
|
-
/* @__PURE__ */
|
|
2879
|
-
event.event_venue && /* @__PURE__ */
|
|
2748
|
+
/* @__PURE__ */ jsx21("div", { className: "pb-4", children: /* @__PURE__ */ jsxs15("div", { className: "text-center", children: [
|
|
2749
|
+
/* @__PURE__ */ jsx21("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: event.event_name }),
|
|
2750
|
+
event.event_venue && /* @__PURE__ */ jsx21("p", { className: "text-md text-gray-500 mb-4", children: event.event_venue }),
|
|
2880
2751
|
title && /* @__PURE__ */ jsxs15("div", { className: "mt-6", children: [
|
|
2881
|
-
/* @__PURE__ */
|
|
2882
|
-
description && /* @__PURE__ */
|
|
2752
|
+
/* @__PURE__ */ jsx21("h2", { className: "text-2xl font-semibold text-gray-800 mb-2", children: title }),
|
|
2753
|
+
description && /* @__PURE__ */ jsx21("p", { className: "text-lg text-gray-600 max-w-3xl mx-auto", children: description })
|
|
2883
2754
|
] }),
|
|
2884
|
-
children && /* @__PURE__ */
|
|
2755
|
+
children && /* @__PURE__ */ jsx21("div", { className: "mt-4", children })
|
|
2885
2756
|
] }) })
|
|
2886
2757
|
] }) });
|
|
2887
2758
|
}
|
|
2888
2759
|
|
|
2889
2760
|
// src/components/PublicLayout/PublicPageFooter.tsx
|
|
2890
2761
|
init_cn();
|
|
2891
|
-
import { Fragment as Fragment5, jsx as
|
|
2762
|
+
import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2892
2763
|
function PublicPageFooter({
|
|
2893
2764
|
event,
|
|
2894
2765
|
companyName = "Solvera Solutions Pty Ltd",
|
|
@@ -2900,16 +2771,16 @@ function PublicPageFooter({
|
|
|
2900
2771
|
children
|
|
2901
2772
|
}) {
|
|
2902
2773
|
const copyrightText = copyright || `\xA9 Copyright 2022\u2013${year} all rights reserved, ${companyName}.`;
|
|
2903
|
-
return /* @__PURE__ */
|
|
2904
|
-
logo && /* @__PURE__ */
|
|
2905
|
-
children && /* @__PURE__ */
|
|
2906
|
-
/* @__PURE__ */
|
|
2907
|
-
links && links.length > 0 && /* @__PURE__ */
|
|
2774
|
+
return /* @__PURE__ */ jsx22("footer", { className: cn("mt-8 py-6 flex justify-center border-t border-border bg-main-100", className), children: /* @__PURE__ */ jsxs16("section", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto text-center", children: [
|
|
2775
|
+
logo && /* @__PURE__ */ jsx22("img", { src: logo, alt: "Logo", className: "h-8 w-auto" }),
|
|
2776
|
+
children && /* @__PURE__ */ jsx22(Fragment5, { children }),
|
|
2777
|
+
/* @__PURE__ */ jsx22("span", { className: "text-muted-foreground", children: copyrightText }),
|
|
2778
|
+
links && links.length > 0 && /* @__PURE__ */ jsx22("ul", { className: "flex gap-4 mt-2 md:mt-0", children: links.map((link, index) => /* @__PURE__ */ jsx22("li", { children: /* @__PURE__ */ jsx22("a", { href: link.href, className: "text-muted-foreground hover:text-foreground", children: link.label }) }, index)) })
|
|
2908
2779
|
] }) });
|
|
2909
2780
|
}
|
|
2910
2781
|
|
|
2911
2782
|
// src/components/PublicLayout/PublicLoadingSpinner.tsx
|
|
2912
|
-
import { jsx as
|
|
2783
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2913
2784
|
var sizeClasses2 = {
|
|
2914
2785
|
sm: "h-4 w-4",
|
|
2915
2786
|
md: "h-8 w-8",
|
|
@@ -2927,7 +2798,7 @@ function PublicLoadingSpinner({
|
|
|
2927
2798
|
const sizeClass = sizeClasses2[size];
|
|
2928
2799
|
const displayMessage = customMessage || message;
|
|
2929
2800
|
const content = /* @__PURE__ */ jsxs17("div", { className: `flex flex-col items-center ${className}`, children: [
|
|
2930
|
-
showLogo && /* @__PURE__ */
|
|
2801
|
+
showLogo && /* @__PURE__ */ jsx23("div", { className: "mb-4", children: /* @__PURE__ */ jsx23(
|
|
2931
2802
|
"img",
|
|
2932
2803
|
{
|
|
2933
2804
|
className: "h-8 w-auto",
|
|
@@ -2936,7 +2807,7 @@ function PublicLoadingSpinner({
|
|
|
2936
2807
|
}
|
|
2937
2808
|
) }),
|
|
2938
2809
|
/* @__PURE__ */ jsxs17("div", { className: "relative", children: [
|
|
2939
|
-
/* @__PURE__ */
|
|
2810
|
+
/* @__PURE__ */ jsx23(
|
|
2940
2811
|
"div",
|
|
2941
2812
|
{
|
|
2942
2813
|
className: `${sizeClass} border-2 border-gray-200 border-t-blue-600 rounded-full animate-spin`,
|
|
@@ -2944,12 +2815,12 @@ function PublicLoadingSpinner({
|
|
|
2944
2815
|
"aria-label": "Loading"
|
|
2945
2816
|
}
|
|
2946
2817
|
),
|
|
2947
|
-
/* @__PURE__ */
|
|
2818
|
+
/* @__PURE__ */ jsx23("span", { className: "sr-only", children: displayMessage })
|
|
2948
2819
|
] }),
|
|
2949
|
-
displayMessage && /* @__PURE__ */
|
|
2820
|
+
displayMessage && /* @__PURE__ */ jsx23("p", { className: "mt-4 text-sm text-gray-600 text-center", children: displayMessage })
|
|
2950
2821
|
] });
|
|
2951
2822
|
if (centered) {
|
|
2952
|
-
return /* @__PURE__ */
|
|
2823
|
+
return /* @__PURE__ */ jsx23("div", { className: "min-h-screen bg-white flex items-center justify-center", children: /* @__PURE__ */ jsx23("div", { className: "max-w-md mx-auto px-4", children: content }) });
|
|
2953
2824
|
}
|
|
2954
2825
|
return content;
|
|
2955
2826
|
}
|
|
@@ -2958,8 +2829,8 @@ function PublicLoadingSpinnerFullPage({
|
|
|
2958
2829
|
eventName,
|
|
2959
2830
|
className = ""
|
|
2960
2831
|
}) {
|
|
2961
|
-
return /* @__PURE__ */
|
|
2962
|
-
/* @__PURE__ */
|
|
2832
|
+
return /* @__PURE__ */ jsx23("div", { className: `min-h-screen bg-white flex items-center justify-center ${className}`, children: /* @__PURE__ */ jsxs17("div", { className: "max-w-md mx-auto text-center px-4", children: [
|
|
2833
|
+
/* @__PURE__ */ jsx23("div", { className: "mb-8", children: /* @__PURE__ */ jsx23(
|
|
2963
2834
|
"img",
|
|
2964
2835
|
{
|
|
2965
2836
|
className: "h-12 w-auto mx-auto",
|
|
@@ -2967,8 +2838,8 @@ function PublicLoadingSpinnerFullPage({
|
|
|
2967
2838
|
alt: "PACE Core"
|
|
2968
2839
|
}
|
|
2969
2840
|
) }),
|
|
2970
|
-
eventName && /* @__PURE__ */
|
|
2971
|
-
/* @__PURE__ */
|
|
2841
|
+
eventName && /* @__PURE__ */ jsx23("h1", { className: "text-2xl font-bold text-gray-900 mb-4", children: eventName }),
|
|
2842
|
+
/* @__PURE__ */ jsx23("div", { className: "relative mb-6", children: /* @__PURE__ */ jsx23(
|
|
2972
2843
|
"div",
|
|
2973
2844
|
{
|
|
2974
2845
|
className: "h-12 w-12 border-4 border-gray-200 border-t-blue-600 rounded-full animate-spin mx-auto",
|
|
@@ -2976,11 +2847,11 @@ function PublicLoadingSpinnerFullPage({
|
|
|
2976
2847
|
"aria-label": "Loading"
|
|
2977
2848
|
}
|
|
2978
2849
|
) }),
|
|
2979
|
-
/* @__PURE__ */
|
|
2850
|
+
/* @__PURE__ */ jsx23("p", { className: "text-lg text-gray-600", children: message }),
|
|
2980
2851
|
/* @__PURE__ */ jsxs17("div", { className: "mt-4 flex justify-center space-x-1", children: [
|
|
2981
|
-
/* @__PURE__ */
|
|
2982
|
-
/* @__PURE__ */
|
|
2983
|
-
/* @__PURE__ */
|
|
2852
|
+
/* @__PURE__ */ jsx23("div", { className: "h-2 w-2 bg-blue-600 rounded-full animate-bounce", style: { animationDelay: "0ms" } }),
|
|
2853
|
+
/* @__PURE__ */ jsx23("div", { className: "h-2 w-2 bg-blue-600 rounded-full animate-bounce", style: { animationDelay: "150ms" } }),
|
|
2854
|
+
/* @__PURE__ */ jsx23("div", { className: "h-2 w-2 bg-blue-600 rounded-full animate-bounce", style: { animationDelay: "300ms" } })
|
|
2984
2855
|
] })
|
|
2985
2856
|
] }) });
|
|
2986
2857
|
}
|
|
@@ -2988,7 +2859,7 @@ function PublicLoadingSkeleton({
|
|
|
2988
2859
|
lines = 3,
|
|
2989
2860
|
className = ""
|
|
2990
2861
|
}) {
|
|
2991
|
-
return /* @__PURE__ */
|
|
2862
|
+
return /* @__PURE__ */ jsx23("div", { className: `animate-pulse ${className}`, children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx23(
|
|
2992
2863
|
"div",
|
|
2993
2864
|
{
|
|
2994
2865
|
className: `h-4 bg-gray-200 rounded mb-2 ${index === lines - 1 ? "w-3/4" : "w-full"}`
|
|
@@ -2999,7 +2870,7 @@ function PublicLoadingSkeleton({
|
|
|
2999
2870
|
|
|
3000
2871
|
// src/components/PublicLayout/PublicPageLayout.tsx
|
|
3001
2872
|
import { useMemo as useMemo7 } from "react";
|
|
3002
|
-
import { jsx as
|
|
2873
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3003
2874
|
function PublicPageLayout({
|
|
3004
2875
|
eventCode,
|
|
3005
2876
|
children,
|
|
@@ -3021,17 +2892,17 @@ function PublicPageLayout({
|
|
|
3021
2892
|
return `${baseClasses} ${className}`.trim();
|
|
3022
2893
|
}, [className]);
|
|
3023
2894
|
if (isLoading) {
|
|
3024
|
-
return /* @__PURE__ */
|
|
2895
|
+
return /* @__PURE__ */ jsx24("div", { className: layoutClasses, children: /* @__PURE__ */ jsx24("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ jsx24(LoadingFallback, {}) }) });
|
|
3025
2896
|
}
|
|
3026
2897
|
if (error && showValidationErrors) {
|
|
3027
|
-
return /* @__PURE__ */
|
|
3028
|
-
/* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ jsx24("div", { className: layoutClasses, children: /* @__PURE__ */ jsx24("div", { className: "flex-1 flex items-center justify-center", children: ErrorFallback ? /* @__PURE__ */ jsx24(ErrorFallback, { error, retry: refetch }) : /* @__PURE__ */ jsxs18("div", { className: "text-center p-8", children: [
|
|
2899
|
+
/* @__PURE__ */ jsx24("h1", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Event Not Found" }),
|
|
3029
2900
|
/* @__PURE__ */ jsxs18("p", { className: "text-gray-600 mb-6", children: [
|
|
3030
2901
|
'The event code "',
|
|
3031
2902
|
eventCode,
|
|
3032
2903
|
'" is invalid or the event is not available for public viewing.'
|
|
3033
2904
|
] }),
|
|
3034
|
-
/* @__PURE__ */
|
|
2905
|
+
/* @__PURE__ */ jsx24(
|
|
3035
2906
|
"button",
|
|
3036
2907
|
{
|
|
3037
2908
|
onClick: refetch,
|
|
@@ -3042,10 +2913,10 @@ function PublicPageLayout({
|
|
|
3042
2913
|
] }) }) });
|
|
3043
2914
|
}
|
|
3044
2915
|
if (!event) {
|
|
3045
|
-
return /* @__PURE__ */
|
|
3046
|
-
/* @__PURE__ */
|
|
3047
|
-
/* @__PURE__ */
|
|
3048
|
-
/* @__PURE__ */
|
|
2916
|
+
return /* @__PURE__ */ jsx24("div", { className: layoutClasses, children: /* @__PURE__ */ jsx24("div", { className: "flex-1 flex items-center justify-center", children: /* @__PURE__ */ jsxs18("div", { className: "text-center p-8", children: [
|
|
2917
|
+
/* @__PURE__ */ jsx24("h1", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Event Not Available" }),
|
|
2918
|
+
/* @__PURE__ */ jsx24("p", { className: "text-gray-600 mb-6", children: "This event is not available for public viewing." }),
|
|
2919
|
+
/* @__PURE__ */ jsx24(
|
|
3049
2920
|
"button",
|
|
3050
2921
|
{
|
|
3051
2922
|
onClick: refetch,
|
|
@@ -3055,16 +2926,16 @@ function PublicPageLayout({
|
|
|
3055
2926
|
)
|
|
3056
2927
|
] }) }) });
|
|
3057
2928
|
}
|
|
3058
|
-
return /* @__PURE__ */
|
|
3059
|
-
customHeader || /* @__PURE__ */
|
|
2929
|
+
return /* @__PURE__ */ jsx24(PublicErrorBoundary, { children: /* @__PURE__ */ jsxs18("div", { className: layoutClasses, children: [
|
|
2930
|
+
customHeader || /* @__PURE__ */ jsx24(
|
|
3060
2931
|
PublicPageHeader,
|
|
3061
2932
|
{
|
|
3062
2933
|
event,
|
|
3063
2934
|
eventCode
|
|
3064
2935
|
}
|
|
3065
2936
|
),
|
|
3066
|
-
/* @__PURE__ */
|
|
3067
|
-
showFooter && (customFooter || /* @__PURE__ */
|
|
2937
|
+
/* @__PURE__ */ jsx24("main", { className: "px-4 w-[min(var(--app-width),100%)] mx-auto py-8", children }),
|
|
2938
|
+
showFooter && (customFooter || /* @__PURE__ */ jsx24(PublicPageFooter, { event }))
|
|
3068
2939
|
] }) });
|
|
3069
2940
|
}
|
|
3070
2941
|
function usePublicPageContext2() {
|
|
@@ -3082,7 +2953,7 @@ function usePublicPageContext2() {
|
|
|
3082
2953
|
|
|
3083
2954
|
// src/components/PublicLayout/PublicPageDebugger.tsx
|
|
3084
2955
|
import { useEffect as useEffect5 } from "react";
|
|
3085
|
-
import { jsx as
|
|
2956
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3086
2957
|
function PublicPageDebugger({ enabled = true, label = "PublicPage" }) {
|
|
3087
2958
|
useEffect5(() => {
|
|
3088
2959
|
if (!enabled) return;
|
|
@@ -3136,14 +3007,14 @@ function PublicPageDebugger({ enabled = true, label = "PublicPage" }) {
|
|
|
3136
3007
|
zIndex: 9999,
|
|
3137
3008
|
fontFamily: "monospace"
|
|
3138
3009
|
}, children: [
|
|
3139
|
-
/* @__PURE__ */
|
|
3140
|
-
/* @__PURE__ */
|
|
3010
|
+
/* @__PURE__ */ jsx25("div", { children: "Public Page Debugger" }),
|
|
3011
|
+
/* @__PURE__ */ jsx25("div", { children: "Check console for context analysis" })
|
|
3141
3012
|
] });
|
|
3142
3013
|
}
|
|
3143
3014
|
|
|
3144
3015
|
// src/components/PublicLayout/PublicPageDiagnostic.tsx
|
|
3145
3016
|
import { useEffect as useEffect6, useState as useState11 } from "react";
|
|
3146
|
-
import { jsx as
|
|
3017
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3147
3018
|
function PublicPageDiagnostic({ enabled = true, label = "PublicPage" }) {
|
|
3148
3019
|
const [diagnostics, setDiagnostics] = useState11({
|
|
3149
3020
|
hasPublicPageContext: false,
|
|
@@ -3237,7 +3108,7 @@ function PublicPageDiagnostic({ enabled = true, label = "PublicPage" }) {
|
|
|
3237
3108
|
maxWidth: "300px",
|
|
3238
3109
|
borderRadius: "0 0 8px 0"
|
|
3239
3110
|
}, children: [
|
|
3240
|
-
/* @__PURE__ */
|
|
3111
|
+
/* @__PURE__ */ jsx26("div", { style: { fontWeight: "bold", marginBottom: "8px" }, children: "\u{1F50D} Public Page Diagnostics" }),
|
|
3241
3112
|
/* @__PURE__ */ jsxs20("div", { children: [
|
|
3242
3113
|
"Public Context: ",
|
|
3243
3114
|
diagnostics.hasPublicPageContext ? "\u2705" : "\u274C"
|
|
@@ -3262,13 +3133,13 @@ function PublicPageDiagnostic({ enabled = true, label = "PublicPage" }) {
|
|
|
3262
3133
|
"Route Params: ",
|
|
3263
3134
|
diagnostics.routeParams ? "\u2705" : "\u274C"
|
|
3264
3135
|
] }),
|
|
3265
|
-
/* @__PURE__ */
|
|
3136
|
+
/* @__PURE__ */ jsx26("div", { style: { marginTop: "8px", fontSize: "10px", opacity: 0.8 }, children: "Check console for detailed analysis" })
|
|
3266
3137
|
] });
|
|
3267
3138
|
}
|
|
3268
3139
|
|
|
3269
3140
|
// src/components/PublicLayout/PublicPageContextChecker.tsx
|
|
3270
3141
|
import { useEffect as useEffect7 } from "react";
|
|
3271
|
-
import { jsx as
|
|
3142
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3272
3143
|
function PublicPageContextChecker({ enabled = true, label = "PublicPage" }) {
|
|
3273
3144
|
useEffect7(() => {
|
|
3274
3145
|
if (!enabled) return;
|
|
@@ -3346,20 +3217,13 @@ function PublicPageContextChecker({ enabled = true, label = "PublicPage" }) {
|
|
|
3346
3217
|
borderRadius: "0 0 8px 0",
|
|
3347
3218
|
border: "2px solid #dc2626"
|
|
3348
3219
|
}, children: [
|
|
3349
|
-
/* @__PURE__ */
|
|
3350
|
-
/* @__PURE__ */
|
|
3351
|
-
/* @__PURE__ */
|
|
3220
|
+
/* @__PURE__ */ jsx27("div", { style: { fontWeight: "bold", marginBottom: "8px" }, children: "\u{1F6A8} PUBLIC PAGE CONTEXT CHECK" }),
|
|
3221
|
+
/* @__PURE__ */ jsx27("div", { children: "Check console for authentication context analysis" }),
|
|
3222
|
+
/* @__PURE__ */ jsx27("div", { style: { marginTop: "8px", fontSize: "10px", opacity: 0.9 }, children: "If you see \u274C errors in console, your public page is inside auth context!" })
|
|
3352
3223
|
] });
|
|
3353
3224
|
}
|
|
3354
3225
|
|
|
3355
3226
|
export {
|
|
3356
|
-
Card,
|
|
3357
|
-
CardHeader,
|
|
3358
|
-
CardTitle,
|
|
3359
|
-
CardDescription,
|
|
3360
|
-
CardContent,
|
|
3361
|
-
CardFooter,
|
|
3362
|
-
CardActions,
|
|
3363
3227
|
Label,
|
|
3364
3228
|
Avatar,
|
|
3365
3229
|
AvatarImage,
|
|
@@ -3428,4 +3292,4 @@ export {
|
|
|
3428
3292
|
PublicPageDiagnostic,
|
|
3429
3293
|
PublicPageContextChecker
|
|
3430
3294
|
};
|
|
3431
|
-
//# sourceMappingURL=chunk-
|
|
3295
|
+
//# sourceMappingURL=chunk-T3XIA4AJ.js.map
|