@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,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useCan
|
|
3
|
+
} from "./chunk-AUE24LVR.js";
|
|
1
4
|
import {
|
|
2
5
|
useDataTablePerformance
|
|
3
6
|
} from "./chunk-SS3E6QLB.js";
|
|
@@ -8,19 +11,21 @@ import {
|
|
|
8
11
|
DialogDescription,
|
|
9
12
|
DialogHeader,
|
|
10
13
|
DialogTitle,
|
|
11
|
-
init_Button
|
|
12
|
-
|
|
14
|
+
init_Button,
|
|
15
|
+
init_UnifiedAuthProvider,
|
|
16
|
+
useUnifiedAuth
|
|
17
|
+
} from "./chunk-6CR3MRZN.js";
|
|
13
18
|
import {
|
|
14
19
|
cn,
|
|
15
20
|
init_cn
|
|
16
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-OYRY44Q2.js";
|
|
17
22
|
|
|
18
23
|
// src/components/DataTable/DataTable.tsx
|
|
19
|
-
import
|
|
24
|
+
import React11 from "react";
|
|
20
25
|
|
|
21
26
|
// src/components/DataTable/components/DataTableCore.tsx
|
|
22
27
|
init_cn();
|
|
23
|
-
import
|
|
28
|
+
import React10, { useMemo as useMemo6, useCallback as useCallback5, useEffect as useEffect5, useState as useState6, useRef as useRef4 } from "react";
|
|
24
29
|
import {
|
|
25
30
|
useReactTable,
|
|
26
31
|
getCoreRowModel,
|
|
@@ -853,6 +858,8 @@ function ColumnVisibilityDropdown({
|
|
|
853
858
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
854
859
|
function DataTableToolbar({
|
|
855
860
|
features,
|
|
861
|
+
rbac,
|
|
862
|
+
permissions,
|
|
856
863
|
globalFilter,
|
|
857
864
|
onGlobalFilterChange,
|
|
858
865
|
columns,
|
|
@@ -908,7 +915,7 @@ function DataTableToolbar({
|
|
|
908
915
|
]
|
|
909
916
|
}
|
|
910
917
|
),
|
|
911
|
-
features.creation && onCreateRow && /* @__PURE__ */ jsxs4(
|
|
918
|
+
features.creation && permissions.canCreate.can && onCreateRow && /* @__PURE__ */ jsxs4(
|
|
912
919
|
Button,
|
|
913
920
|
{
|
|
914
921
|
variant: "outline",
|
|
@@ -919,7 +926,7 @@ function DataTableToolbar({
|
|
|
919
926
|
]
|
|
920
927
|
}
|
|
921
928
|
),
|
|
922
|
-
features.import && /* @__PURE__ */ jsxs4(
|
|
929
|
+
features.import && permissions.canImport.can && /* @__PURE__ */ jsxs4(
|
|
923
930
|
Button,
|
|
924
931
|
{
|
|
925
932
|
variant: "outline",
|
|
@@ -930,7 +937,7 @@ function DataTableToolbar({
|
|
|
930
937
|
]
|
|
931
938
|
}
|
|
932
939
|
),
|
|
933
|
-
features.export && /* @__PURE__ */ jsxs4(
|
|
940
|
+
features.export && permissions.canExport.can && /* @__PURE__ */ jsxs4(
|
|
934
941
|
Button,
|
|
935
942
|
{
|
|
936
943
|
variant: "outline",
|
|
@@ -941,7 +948,7 @@ function DataTableToolbar({
|
|
|
941
948
|
]
|
|
942
949
|
}
|
|
943
950
|
),
|
|
944
|
-
features.deleteSelected && features.deletion && features.selection && /* @__PURE__ */ jsxs4(
|
|
951
|
+
features.deleteSelected && features.deletion && features.selection && permissions.canDelete.can && /* @__PURE__ */ jsxs4(
|
|
945
952
|
Button,
|
|
946
953
|
{
|
|
947
954
|
variant: "destructive",
|
|
@@ -1167,7 +1174,9 @@ function ActionButtons({
|
|
|
1167
1174
|
actions = [],
|
|
1168
1175
|
isEditing = false,
|
|
1169
1176
|
isParent = false,
|
|
1170
|
-
hierarchical = false
|
|
1177
|
+
hierarchical = false,
|
|
1178
|
+
rbac,
|
|
1179
|
+
permissions
|
|
1171
1180
|
}) {
|
|
1172
1181
|
if (actions.length === 0) {
|
|
1173
1182
|
return null;
|
|
@@ -1175,6 +1184,10 @@ function ActionButtons({
|
|
|
1175
1184
|
const allActions = actions;
|
|
1176
1185
|
const visibleActions = allActions.filter((action) => {
|
|
1177
1186
|
if (action.hidden) return false;
|
|
1187
|
+
if (permissions) {
|
|
1188
|
+
if (action.label === "Edit" && !permissions.canUpdate.can) return false;
|
|
1189
|
+
if (action.label === "Delete" && !permissions.canDelete.can) return false;
|
|
1190
|
+
}
|
|
1178
1191
|
if (hierarchical) {
|
|
1179
1192
|
if (action.showForParent && !isParent) return false;
|
|
1180
1193
|
if (action.showForChild && isParent) return false;
|
|
@@ -1395,7 +1408,9 @@ var MemoizedRow = ({
|
|
|
1395
1408
|
grouping,
|
|
1396
1409
|
editingRowId,
|
|
1397
1410
|
hierarchical,
|
|
1398
|
-
actions
|
|
1411
|
+
actions,
|
|
1412
|
+
rbac,
|
|
1413
|
+
permissions
|
|
1399
1414
|
}) => {
|
|
1400
1415
|
const rowId = getRowId ? getRowId(row.original, row.index) : String(row.index);
|
|
1401
1416
|
const hierarchicalRow = row.original;
|
|
@@ -1458,7 +1473,9 @@ var MemoizedRow = ({
|
|
|
1458
1473
|
actions,
|
|
1459
1474
|
isEditing,
|
|
1460
1475
|
isParent,
|
|
1461
|
-
hierarchical: !!hierarchical
|
|
1476
|
+
hierarchical: !!hierarchical,
|
|
1477
|
+
rbac,
|
|
1478
|
+
permissions
|
|
1462
1479
|
}
|
|
1463
1480
|
) : flexRender(cell.column.columnDef.cell, {
|
|
1464
1481
|
...cell.getContext(),
|
|
@@ -1561,7 +1578,9 @@ var MemoizedRow = ({
|
|
|
1561
1578
|
actions,
|
|
1562
1579
|
isEditing,
|
|
1563
1580
|
isParent,
|
|
1564
|
-
hierarchical: !!hierarchical
|
|
1581
|
+
hierarchical: !!hierarchical,
|
|
1582
|
+
rbac,
|
|
1583
|
+
permissions
|
|
1565
1584
|
}
|
|
1566
1585
|
) : flexRender(cell.column.columnDef.cell, {
|
|
1567
1586
|
...cell.getContext(),
|
|
@@ -1613,7 +1632,9 @@ function UnifiedTableBody({
|
|
|
1613
1632
|
virtualHeight = 600,
|
|
1614
1633
|
forceVirtualization = false,
|
|
1615
1634
|
hierarchical,
|
|
1616
|
-
actions = []
|
|
1635
|
+
actions = [],
|
|
1636
|
+
rbac,
|
|
1637
|
+
permissions
|
|
1617
1638
|
}) {
|
|
1618
1639
|
const headerRef = useRef2(null);
|
|
1619
1640
|
const bodyRef = useRef2(null);
|
|
@@ -1671,6 +1692,8 @@ function UnifiedTableBody({
|
|
|
1671
1692
|
editingRowId,
|
|
1672
1693
|
hierarchical,
|
|
1673
1694
|
actions,
|
|
1695
|
+
rbac,
|
|
1696
|
+
permissions,
|
|
1674
1697
|
style: {
|
|
1675
1698
|
position: "absolute",
|
|
1676
1699
|
top: 0,
|
|
@@ -1700,7 +1723,9 @@ function UnifiedTableBody({
|
|
|
1700
1723
|
grouping,
|
|
1701
1724
|
editingRowId,
|
|
1702
1725
|
hierarchical,
|
|
1703
|
-
actions
|
|
1726
|
+
actions,
|
|
1727
|
+
rbac,
|
|
1728
|
+
permissions
|
|
1704
1729
|
},
|
|
1705
1730
|
row.id
|
|
1706
1731
|
);
|
|
@@ -2991,11 +3016,223 @@ var ColumnFactory = class {
|
|
|
2991
3016
|
}
|
|
2992
3017
|
};
|
|
2993
3018
|
|
|
3019
|
+
// src/components/Card/Card.tsx
|
|
3020
|
+
init_cn();
|
|
3021
|
+
import * as React9 from "react";
|
|
3022
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
3023
|
+
function getCardClasses(variant = "default", size = "default") {
|
|
3024
|
+
const baseClasses = "rounded-lg border bg-card text-card-foreground shadow-sm";
|
|
3025
|
+
const variantClasses = {
|
|
3026
|
+
default: "shadow-xl",
|
|
3027
|
+
outline: "border-2",
|
|
3028
|
+
ghost: "border-0 shadow-none"
|
|
3029
|
+
};
|
|
3030
|
+
const sizeClasses = {
|
|
3031
|
+
default: "",
|
|
3032
|
+
sm: "text-sm",
|
|
3033
|
+
lg: "text-lg"
|
|
3034
|
+
};
|
|
3035
|
+
return `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]}`;
|
|
3036
|
+
}
|
|
3037
|
+
var Card = React9.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3038
|
+
"article",
|
|
3039
|
+
{
|
|
3040
|
+
ref,
|
|
3041
|
+
className: cn(
|
|
3042
|
+
"grid grid-rows-[auto_1fr_auto] min-w-0 overflow-visible",
|
|
3043
|
+
getCardClasses(variant, size),
|
|
3044
|
+
className
|
|
3045
|
+
),
|
|
3046
|
+
...props
|
|
3047
|
+
}
|
|
3048
|
+
));
|
|
3049
|
+
Card.displayName = "Card";
|
|
3050
|
+
var CardHeader = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3051
|
+
"header",
|
|
3052
|
+
{
|
|
3053
|
+
ref,
|
|
3054
|
+
className: cn("flex flex-col space-y-1.5 p-6 min-w-0 w-full", className),
|
|
3055
|
+
...props
|
|
3056
|
+
}
|
|
3057
|
+
));
|
|
3058
|
+
CardHeader.displayName = "CardHeader";
|
|
3059
|
+
var CardTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3060
|
+
"h3",
|
|
3061
|
+
{
|
|
3062
|
+
ref,
|
|
3063
|
+
className: cn(
|
|
3064
|
+
"text-2xl font-semibold leading-none tracking-tight",
|
|
3065
|
+
className
|
|
3066
|
+
),
|
|
3067
|
+
...props
|
|
3068
|
+
}
|
|
3069
|
+
));
|
|
3070
|
+
CardTitle.displayName = "CardTitle";
|
|
3071
|
+
var CardDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3072
|
+
"p",
|
|
3073
|
+
{
|
|
3074
|
+
ref,
|
|
3075
|
+
className: cn(className),
|
|
3076
|
+
...props
|
|
3077
|
+
}
|
|
3078
|
+
));
|
|
3079
|
+
CardDescription.displayName = "CardDescription";
|
|
3080
|
+
var CardContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3081
|
+
"main",
|
|
3082
|
+
{
|
|
3083
|
+
ref,
|
|
3084
|
+
className: cn("p-6 pt-0 min-w-0 w-full", className),
|
|
3085
|
+
...props
|
|
3086
|
+
}
|
|
3087
|
+
));
|
|
3088
|
+
CardContent.displayName = "CardContent";
|
|
3089
|
+
var CardFooter = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3090
|
+
"footer",
|
|
3091
|
+
{
|
|
3092
|
+
ref,
|
|
3093
|
+
className: cn("flex items-center p-6 pt-0 min-w-0 w-full", className),
|
|
3094
|
+
...props
|
|
3095
|
+
}
|
|
3096
|
+
));
|
|
3097
|
+
CardFooter.displayName = "CardFooter";
|
|
3098
|
+
var CardActions = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3099
|
+
"nav",
|
|
3100
|
+
{
|
|
3101
|
+
ref,
|
|
3102
|
+
className: cn("flex gap-2", className),
|
|
3103
|
+
role: "group",
|
|
3104
|
+
"aria-label": "Card actions",
|
|
3105
|
+
...props
|
|
3106
|
+
}
|
|
3107
|
+
));
|
|
3108
|
+
CardActions.displayName = "CardActions";
|
|
3109
|
+
var HoverCard = React9.forwardRef(({ children, className, ...props }, ref) => {
|
|
3110
|
+
return /* @__PURE__ */ jsx18(
|
|
3111
|
+
"section",
|
|
3112
|
+
{
|
|
3113
|
+
ref,
|
|
3114
|
+
className: cn("relative inline-block", className),
|
|
3115
|
+
...props,
|
|
3116
|
+
children
|
|
3117
|
+
}
|
|
3118
|
+
);
|
|
3119
|
+
});
|
|
3120
|
+
HoverCard.displayName = "HoverCard";
|
|
3121
|
+
var HoverCardTrigger = React9.forwardRef(({ className, asChild, children, ...props }, ref) => {
|
|
3122
|
+
if (asChild) {
|
|
3123
|
+
return /* @__PURE__ */ jsx18("span", { className: cn("cursor-pointer", className), children });
|
|
3124
|
+
}
|
|
3125
|
+
return /* @__PURE__ */ jsx18(
|
|
3126
|
+
"button",
|
|
3127
|
+
{
|
|
3128
|
+
ref,
|
|
3129
|
+
type: "button",
|
|
3130
|
+
className: cn(
|
|
3131
|
+
"cursor-pointer bg-transparent border-0 p-0 m-0 font-inherit color-inherit text-left",
|
|
3132
|
+
className
|
|
3133
|
+
),
|
|
3134
|
+
...props,
|
|
3135
|
+
children
|
|
3136
|
+
}
|
|
3137
|
+
);
|
|
3138
|
+
});
|
|
3139
|
+
HoverCardTrigger.displayName = "HoverCardTrigger";
|
|
3140
|
+
var HoverCardContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
3141
|
+
"aside",
|
|
3142
|
+
{
|
|
3143
|
+
ref,
|
|
3144
|
+
className: cn(
|
|
3145
|
+
"absolute z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-4 text-popover-foreground shadow-md",
|
|
3146
|
+
className
|
|
3147
|
+
),
|
|
3148
|
+
role: "tooltip",
|
|
3149
|
+
...props
|
|
3150
|
+
}
|
|
3151
|
+
));
|
|
3152
|
+
HoverCardContent.displayName = "HoverCardContent";
|
|
3153
|
+
|
|
3154
|
+
// src/components/DataTable/components/AccessDeniedPage.tsx
|
|
3155
|
+
init_Button();
|
|
3156
|
+
import { ShieldX, ArrowLeft, RefreshCw } from "lucide-react";
|
|
3157
|
+
import { Fragment as Fragment6, jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3158
|
+
function AccessDeniedPage({
|
|
3159
|
+
resource,
|
|
3160
|
+
operation = "access",
|
|
3161
|
+
message,
|
|
3162
|
+
onRetry,
|
|
3163
|
+
onBack,
|
|
3164
|
+
className
|
|
3165
|
+
}) {
|
|
3166
|
+
const defaultMessage = message || `You don't have permission to ${operation} ${resource} data`;
|
|
3167
|
+
const handleRetry = () => {
|
|
3168
|
+
if (onRetry) {
|
|
3169
|
+
onRetry();
|
|
3170
|
+
} else {
|
|
3171
|
+
window.location.reload();
|
|
3172
|
+
}
|
|
3173
|
+
};
|
|
3174
|
+
const handleBack = () => {
|
|
3175
|
+
if (onBack) {
|
|
3176
|
+
onBack();
|
|
3177
|
+
} else {
|
|
3178
|
+
window.history.back();
|
|
3179
|
+
}
|
|
3180
|
+
};
|
|
3181
|
+
return /* @__PURE__ */ jsx19("div", { className: `flex items-center justify-center min-h-[400px] p-8 ${className || ""}`, children: /* @__PURE__ */ jsx19(Card, { className: "max-w-md w-full text-center", children: /* @__PURE__ */ jsxs13("div", { className: "flex flex-col items-center space-y-6 p-8", children: [
|
|
3182
|
+
/* @__PURE__ */ jsx19("div", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-acc-100", children: /* @__PURE__ */ jsx19(ShieldX, { className: "w-8 h-8 text-acc-600" }) }),
|
|
3183
|
+
/* @__PURE__ */ jsxs13("div", { className: "space-y-2", children: [
|
|
3184
|
+
/* @__PURE__ */ jsx19("h2", { className: "text-xl font-semibold text-sec-900", children: "Access Denied" }),
|
|
3185
|
+
/* @__PURE__ */ jsx19("p", { className: "text-sec-600", children: defaultMessage })
|
|
3186
|
+
] }),
|
|
3187
|
+
/* @__PURE__ */ jsxs13("div", { className: "text-sm text-sec-500 bg-sec-50 rounded-lg p-3 w-full", children: [
|
|
3188
|
+
/* @__PURE__ */ jsx19("strong", { children: "Resource:" }),
|
|
3189
|
+
" ",
|
|
3190
|
+
resource,
|
|
3191
|
+
operation && /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
3192
|
+
/* @__PURE__ */ jsx19("br", {}),
|
|
3193
|
+
/* @__PURE__ */ jsx19("strong", { children: "Operation:" }),
|
|
3194
|
+
" ",
|
|
3195
|
+
operation
|
|
3196
|
+
] })
|
|
3197
|
+
] }),
|
|
3198
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex flex-col sm:flex-row gap-3 w-full", children: [
|
|
3199
|
+
onRetry && /* @__PURE__ */ jsxs13(
|
|
3200
|
+
Button,
|
|
3201
|
+
{
|
|
3202
|
+
variant: "outline",
|
|
3203
|
+
onClick: handleRetry,
|
|
3204
|
+
className: "flex-1",
|
|
3205
|
+
children: [
|
|
3206
|
+
/* @__PURE__ */ jsx19(RefreshCw, { className: "w-4 h-4 mr-2" }),
|
|
3207
|
+
"Retry"
|
|
3208
|
+
]
|
|
3209
|
+
}
|
|
3210
|
+
),
|
|
3211
|
+
/* @__PURE__ */ jsxs13(
|
|
3212
|
+
Button,
|
|
3213
|
+
{
|
|
3214
|
+
variant: "outline",
|
|
3215
|
+
onClick: handleBack,
|
|
3216
|
+
className: "flex-1",
|
|
3217
|
+
children: [
|
|
3218
|
+
/* @__PURE__ */ jsx19(ArrowLeft, { className: "w-4 h-4 mr-2" }),
|
|
3219
|
+
"Go Back"
|
|
3220
|
+
]
|
|
3221
|
+
}
|
|
3222
|
+
)
|
|
3223
|
+
] }),
|
|
3224
|
+
/* @__PURE__ */ jsx19("div", { className: "text-xs text-sec-400", children: "If you believe this is an error, please contact your administrator." })
|
|
3225
|
+
] }) }) });
|
|
3226
|
+
}
|
|
3227
|
+
|
|
2994
3228
|
// src/components/DataTable/components/DataTableCore.tsx
|
|
2995
|
-
|
|
3229
|
+
init_UnifiedAuthProvider();
|
|
3230
|
+
import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2996
3231
|
function DataTableInternal({
|
|
2997
3232
|
data,
|
|
2998
3233
|
columns,
|
|
3234
|
+
rbac,
|
|
3235
|
+
// MANDATORY RBAC
|
|
2999
3236
|
title,
|
|
3000
3237
|
description,
|
|
3001
3238
|
variant = "default",
|
|
@@ -3016,6 +3253,7 @@ function DataTableInternal({
|
|
|
3016
3253
|
onDeleteRow,
|
|
3017
3254
|
onCreateRow,
|
|
3018
3255
|
onImport,
|
|
3256
|
+
onExport,
|
|
3019
3257
|
onRowSelectionChange,
|
|
3020
3258
|
selection,
|
|
3021
3259
|
onDeleteSelected,
|
|
@@ -3027,6 +3265,49 @@ function DataTableInternal({
|
|
|
3027
3265
|
actions = [],
|
|
3028
3266
|
columnOrder: externalColumnOrder
|
|
3029
3267
|
}) {
|
|
3268
|
+
const authResult = useUnifiedAuth();
|
|
3269
|
+
const user = authResult.user;
|
|
3270
|
+
if (!user) {
|
|
3271
|
+
throw new Error("DataTable requires authenticated user for RBAC");
|
|
3272
|
+
}
|
|
3273
|
+
if (!rbac?.resource) {
|
|
3274
|
+
throw new Error("DataTable requires rbac.resource for permission checking");
|
|
3275
|
+
}
|
|
3276
|
+
const scope = {
|
|
3277
|
+
organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
|
|
3278
|
+
eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
|
|
3279
|
+
appId: user?.user_metadata?.appId || user?.app_metadata?.appId
|
|
3280
|
+
};
|
|
3281
|
+
const permissions = {
|
|
3282
|
+
canRead: useCan(user.id, scope, `read:${rbac.resource}`, rbac.pageId),
|
|
3283
|
+
canCreate: useCan(user.id, scope, `create:${rbac.resource}`, rbac.pageId),
|
|
3284
|
+
canUpdate: useCan(user.id, scope, `update:${rbac.resource}`, rbac.pageId),
|
|
3285
|
+
canDelete: useCan(user.id, scope, `delete:${rbac.resource}`, rbac.pageId),
|
|
3286
|
+
canExport: useCan(user.id, scope, `manage:${rbac.resource}`, rbac.pageId),
|
|
3287
|
+
// Using manage for export/import
|
|
3288
|
+
canImport: useCan(user.id, scope, `manage:${rbac.resource}`, rbac.pageId)
|
|
3289
|
+
// Using manage for export/import
|
|
3290
|
+
};
|
|
3291
|
+
if (!permissions.canRead.can) {
|
|
3292
|
+
return /* @__PURE__ */ jsx20(AccessDeniedPage, { resource: rbac?.resource || "test-resource", operation: "read" });
|
|
3293
|
+
}
|
|
3294
|
+
const secureFeatures = {
|
|
3295
|
+
...features,
|
|
3296
|
+
creation: features.creation && permissions.canCreate.can,
|
|
3297
|
+
editing: features.editing && permissions.canUpdate.can,
|
|
3298
|
+
deletion: features.deletion && permissions.canDelete.can,
|
|
3299
|
+
deleteSelected: features.deleteSelected && permissions.canDelete.can,
|
|
3300
|
+
export: features.export && permissions.canExport.can,
|
|
3301
|
+
import: features.import && permissions.canImport.can
|
|
3302
|
+
};
|
|
3303
|
+
const secureHandlers = {
|
|
3304
|
+
onEditRow: permissions.canUpdate.can ? onEditRow : void 0,
|
|
3305
|
+
onDeleteRow: permissions.canDelete.can ? onDeleteRow : void 0,
|
|
3306
|
+
onCreateRow: permissions.canCreate.can ? onCreateRow : void 0,
|
|
3307
|
+
onImport: permissions.canImport.can ? onImport : void 0,
|
|
3308
|
+
onExport: permissions.canExport.can ? onExport : void 0,
|
|
3309
|
+
onDeleteSelected: permissions.canDelete.can ? onDeleteSelected : void 0
|
|
3310
|
+
};
|
|
3030
3311
|
const [sorting, setSorting] = useState6([]);
|
|
3031
3312
|
const [columnFilters, setColumnFilters] = useState6([]);
|
|
3032
3313
|
const [columnVisibility, setColumnVisibility] = useState6({});
|
|
@@ -3179,28 +3460,38 @@ function DataTableInternal({
|
|
|
3179
3460
|
const finalDataCount = finalPaginationMode === "server" ? serverData?.totalCount || 0 : finalTableData?.length || 0;
|
|
3180
3461
|
const effectiveActions = useMemo6(() => {
|
|
3181
3462
|
const result = [...actions];
|
|
3182
|
-
if (
|
|
3463
|
+
if (secureFeatures.editing && secureHandlers.onEditRow && !result.some((a) => a.label === "Edit")) {
|
|
3183
3464
|
result.push({
|
|
3184
3465
|
label: "Edit",
|
|
3185
3466
|
onClick: (row) => {
|
|
3467
|
+
if (!permissions.canUpdate.can) {
|
|
3468
|
+
throw new Error("Insufficient permissions to edit this resource");
|
|
3469
|
+
}
|
|
3186
3470
|
const rowId = getRowId ? getRowId(row, 0) : row.id || String(0);
|
|
3187
3471
|
tableActions.setEditingRow(rowId, { ...row });
|
|
3188
3472
|
},
|
|
3189
3473
|
icon: Edit,
|
|
3190
|
-
testId: "edit"
|
|
3474
|
+
testId: "edit",
|
|
3475
|
+
hidden: !permissions.canUpdate.can
|
|
3191
3476
|
});
|
|
3192
3477
|
}
|
|
3193
|
-
if (
|
|
3478
|
+
if (secureFeatures.deletion && secureHandlers.onDeleteRow && !result.some((a) => a.label === "Delete")) {
|
|
3194
3479
|
result.push({
|
|
3195
3480
|
label: "Delete",
|
|
3196
|
-
onClick:
|
|
3481
|
+
onClick: (row) => {
|
|
3482
|
+
if (!permissions.canDelete.can) {
|
|
3483
|
+
throw new Error("Insufficient permissions to delete this resource");
|
|
3484
|
+
}
|
|
3485
|
+
secureHandlers.onDeleteRow(row);
|
|
3486
|
+
},
|
|
3197
3487
|
icon: Trash,
|
|
3198
3488
|
testId: "delete",
|
|
3199
|
-
variant: "destructive"
|
|
3489
|
+
variant: "destructive",
|
|
3490
|
+
hidden: !permissions.canDelete.can
|
|
3200
3491
|
});
|
|
3201
3492
|
}
|
|
3202
3493
|
return result;
|
|
3203
|
-
}, [actions,
|
|
3494
|
+
}, [actions, secureFeatures, permissions, secureHandlers, getRowId, tableActions]);
|
|
3204
3495
|
const enhancedColumns = useMemo6(() => {
|
|
3205
3496
|
const baseColumns = [...columns].map((column) => ({
|
|
3206
3497
|
...column,
|
|
@@ -3213,7 +3504,7 @@ function DataTableInternal({
|
|
|
3213
3504
|
header: ({ table: table2 }) => {
|
|
3214
3505
|
const isAllSelected = table2.getIsAllPageRowsSelected();
|
|
3215
3506
|
const isSomeSelected = table2.getIsSomePageRowsSelected();
|
|
3216
|
-
return /* @__PURE__ */
|
|
3507
|
+
return /* @__PURE__ */ jsx20(
|
|
3217
3508
|
Checkbox,
|
|
3218
3509
|
{
|
|
3219
3510
|
checked: isAllSelected ? true : isSomeSelected ? "indeterminate" : false,
|
|
@@ -3222,7 +3513,7 @@ function DataTableInternal({
|
|
|
3222
3513
|
}
|
|
3223
3514
|
);
|
|
3224
3515
|
},
|
|
3225
|
-
cell: ({ row }) => /* @__PURE__ */
|
|
3516
|
+
cell: ({ row }) => /* @__PURE__ */ jsx20(
|
|
3226
3517
|
Checkbox,
|
|
3227
3518
|
{
|
|
3228
3519
|
checked: row.getIsSelected(),
|
|
@@ -3385,7 +3676,7 @@ function DataTableInternal({
|
|
|
3385
3676
|
};
|
|
3386
3677
|
}, [cleanup]);
|
|
3387
3678
|
if (isLoading) {
|
|
3388
|
-
return /* @__PURE__ */
|
|
3679
|
+
return /* @__PURE__ */ jsx20(LoadingComponent, {});
|
|
3389
3680
|
}
|
|
3390
3681
|
const PaginationComponent = enhancedPagination || finalPaginationMode !== "client" ? EnhancedPaginationControls : PaginationControls;
|
|
3391
3682
|
const visibleColumns = table?.getVisibleFlatColumns() || [];
|
|
@@ -3394,8 +3685,8 @@ function DataTableInternal({
|
|
|
3394
3685
|
).length;
|
|
3395
3686
|
const hasSelectColumn = visibleColumns.some((col) => col.id === "select");
|
|
3396
3687
|
const hasActionsColumn = visibleColumns.some((col) => col.id === "actions");
|
|
3397
|
-
return /* @__PURE__ */
|
|
3398
|
-
/* @__PURE__ */
|
|
3688
|
+
return /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
3689
|
+
/* @__PURE__ */ jsxs14("table", { className: getTableClasses({
|
|
3399
3690
|
isFixed: true,
|
|
3400
3691
|
variant,
|
|
3401
3692
|
className: cn("border-collapse relative w-full", className)
|
|
@@ -3403,15 +3694,15 @@ function DataTableInternal({
|
|
|
3403
3694
|
tableLayout: "fixed",
|
|
3404
3695
|
width: "100%"
|
|
3405
3696
|
}, children: [
|
|
3406
|
-
/* @__PURE__ */
|
|
3407
|
-
(title || description) && /* @__PURE__ */
|
|
3408
|
-
title && /* @__PURE__ */
|
|
3409
|
-
description && /* @__PURE__ */
|
|
3697
|
+
/* @__PURE__ */ jsxs14("caption", { className: "text-left pb-2", children: [
|
|
3698
|
+
(title || description) && /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
3699
|
+
title && /* @__PURE__ */ jsx20("h2", { children: title }),
|
|
3700
|
+
description && /* @__PURE__ */ jsx20("p", { children: description })
|
|
3410
3701
|
] }),
|
|
3411
|
-
/* @__PURE__ */
|
|
3702
|
+
/* @__PURE__ */ jsx20(Fragment7, { children: /* @__PURE__ */ jsx20(
|
|
3412
3703
|
DataTableToolbar,
|
|
3413
3704
|
{
|
|
3414
|
-
features,
|
|
3705
|
+
features: secureFeatures,
|
|
3415
3706
|
globalFilter: searchQuery,
|
|
3416
3707
|
onGlobalFilterChange: handleSearch,
|
|
3417
3708
|
columns,
|
|
@@ -3423,32 +3714,34 @@ function DataTableInternal({
|
|
|
3423
3714
|
onColumnVisibilityChange: (columnId, visible) => {
|
|
3424
3715
|
setColumnVisibility((prev) => ({ ...prev, [columnId]: visible }));
|
|
3425
3716
|
},
|
|
3426
|
-
onCreateRow:
|
|
3717
|
+
onCreateRow: secureFeatures.creation && secureHandlers.onCreateRow ? () => tableActions.setCreating(true) : void 0,
|
|
3427
3718
|
onImportClick: () => setShowImportModal(true),
|
|
3428
|
-
onExport: () => {
|
|
3429
|
-
},
|
|
3719
|
+
onExport: secureHandlers.onExport || (() => {
|
|
3720
|
+
}),
|
|
3430
3721
|
rowSelection,
|
|
3431
|
-
onDeleteSelected,
|
|
3722
|
+
onDeleteSelected: secureHandlers.onDeleteSelected,
|
|
3432
3723
|
onToggleFilterRow: () => setShowFilterRow(!showFilterRow),
|
|
3433
|
-
showFilterRow
|
|
3724
|
+
showFilterRow,
|
|
3725
|
+
rbac,
|
|
3726
|
+
permissions
|
|
3434
3727
|
}
|
|
3435
3728
|
) })
|
|
3436
3729
|
] }),
|
|
3437
|
-
/* @__PURE__ */
|
|
3438
|
-
hasSelectColumn && /* @__PURE__ */
|
|
3439
|
-
/* @__PURE__ */
|
|
3440
|
-
hasActionsColumn && /* @__PURE__ */
|
|
3730
|
+
/* @__PURE__ */ jsxs14("colgroup", { children: [
|
|
3731
|
+
hasSelectColumn && /* @__PURE__ */ jsx20("col", { span: 1, "data-col-type": "select" }),
|
|
3732
|
+
/* @__PURE__ */ jsx20("col", { span: dataColumns, "data-col-type": "data" }),
|
|
3733
|
+
hasActionsColumn && /* @__PURE__ */ jsx20("col", { span: 1, "data-col-type": "actions" })
|
|
3441
3734
|
] }),
|
|
3442
|
-
/* @__PURE__ */
|
|
3735
|
+
/* @__PURE__ */ jsx20("thead", { children: table?.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx20("tr", { children: headerGroup.headers.filter((header) => {
|
|
3443
3736
|
return typeof header.column.getIsVisible === "function" ? header.column.getIsVisible() : true;
|
|
3444
3737
|
}).map((header) => {
|
|
3445
3738
|
const isSortable = header.column.getCanSort();
|
|
3446
3739
|
const ariaSort = isSortable ? header.column.getIsSorted() === "asc" ? "ascending" : header.column.getIsSorted() === "desc" ? "descending" : "none" : void 0;
|
|
3447
|
-
return /* @__PURE__ */
|
|
3740
|
+
return /* @__PURE__ */ jsx20(
|
|
3448
3741
|
"th",
|
|
3449
3742
|
{
|
|
3450
3743
|
...isSortable ? { "aria-sort": ariaSort } : {},
|
|
3451
|
-
children: header.isPlaceholder ? null : isSortable ? /* @__PURE__ */
|
|
3744
|
+
children: header.isPlaceholder ? null : isSortable ? /* @__PURE__ */ jsx20(
|
|
3452
3745
|
Button,
|
|
3453
3746
|
{
|
|
3454
3747
|
variant: "ghost",
|
|
@@ -3456,17 +3749,17 @@ function DataTableInternal({
|
|
|
3456
3749
|
onClick: header.column.getToggleSortingHandler(),
|
|
3457
3750
|
"aria-label": `Sort by ${typeof header.column.columnDef.header === "string" ? header.column.columnDef.header : "column"}`,
|
|
3458
3751
|
tabIndex: 0,
|
|
3459
|
-
children: /* @__PURE__ */
|
|
3752
|
+
children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-1", children: [
|
|
3460
3753
|
typeof header.column.columnDef.header === "function" ? header.column.columnDef.header(header.getContext()) : header.column.columnDef.header,
|
|
3461
|
-
header.column.getIsSorted() === "asc" ? /* @__PURE__ */
|
|
3754
|
+
header.column.getIsSorted() === "asc" ? /* @__PURE__ */ jsx20(ChevronUp2, { className: "h-4 w-4" }) : header.column.getIsSorted() === "desc" ? /* @__PURE__ */ jsx20(ChevronDown3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx20(ChevronsUpDown, { className: "h-4 w-4" })
|
|
3462
3755
|
] })
|
|
3463
3756
|
}
|
|
3464
|
-
) : /* @__PURE__ */
|
|
3757
|
+
) : /* @__PURE__ */ jsx20("div", { children: typeof header.column.columnDef.header === "function" ? header.column.columnDef.header(header.getContext()) : header.column.columnDef.header })
|
|
3465
3758
|
},
|
|
3466
3759
|
header.id
|
|
3467
3760
|
);
|
|
3468
3761
|
}) }, headerGroup.id)) }),
|
|
3469
|
-
/* @__PURE__ */
|
|
3762
|
+
/* @__PURE__ */ jsx20(
|
|
3470
3763
|
UnifiedTableBody,
|
|
3471
3764
|
{
|
|
3472
3765
|
table,
|
|
@@ -3509,7 +3802,7 @@ function DataTableInternal({
|
|
|
3509
3802
|
grouping,
|
|
3510
3803
|
aggregates,
|
|
3511
3804
|
getRowId,
|
|
3512
|
-
emptyState:
|
|
3805
|
+
emptyState: React10.isValidElement(emptyState) ? void 0 : emptyState,
|
|
3513
3806
|
isFiltered: searchQuery !== "" || columnFilters.length > 0,
|
|
3514
3807
|
onClearFilters: () => {
|
|
3515
3808
|
setSearchQuery("");
|
|
@@ -3535,10 +3828,12 @@ function DataTableInternal({
|
|
|
3535
3828
|
isAllExpanded: hierarchicalState.getExpandedIds().length > 0 && hierarchicalState.getExpandedIds().length === finalTableData.filter((row) => row.isParent).length,
|
|
3536
3829
|
hasAnyChildren: finalTableData.some((row) => row.isParent)
|
|
3537
3830
|
} : void 0,
|
|
3538
|
-
actions: effectiveActions
|
|
3831
|
+
actions: effectiveActions,
|
|
3832
|
+
rbac,
|
|
3833
|
+
permissions
|
|
3539
3834
|
}
|
|
3540
3835
|
),
|
|
3541
|
-
features.pagination && /* @__PURE__ */
|
|
3836
|
+
features.pagination && /* @__PURE__ */ jsx20("tfoot", { children: /* @__PURE__ */ jsx20("tr", { children: /* @__PURE__ */ jsx20("td", { colSpan: visibleColumns.length, children: /* @__PURE__ */ jsx20(
|
|
3542
3837
|
PaginationComponent,
|
|
3543
3838
|
{
|
|
3544
3839
|
table,
|
|
@@ -3549,7 +3844,7 @@ function DataTableInternal({
|
|
|
3549
3844
|
}
|
|
3550
3845
|
) }) }) })
|
|
3551
3846
|
] }),
|
|
3552
|
-
/* @__PURE__ */
|
|
3847
|
+
/* @__PURE__ */ jsx20(
|
|
3553
3848
|
DataTableModals,
|
|
3554
3849
|
{
|
|
3555
3850
|
showImportModal,
|
|
@@ -3569,11 +3864,11 @@ function DataTableInternal({
|
|
|
3569
3864
|
] });
|
|
3570
3865
|
}
|
|
3571
3866
|
function DataTableCore(props) {
|
|
3572
|
-
return /* @__PURE__ */
|
|
3867
|
+
return /* @__PURE__ */ jsx20(DataTableErrorBoundary, { children: /* @__PURE__ */ jsx20(DataTableInternal, { ...props }) });
|
|
3573
3868
|
}
|
|
3574
3869
|
|
|
3575
3870
|
// src/components/DataTable/DataTable.tsx
|
|
3576
|
-
import { jsx as
|
|
3871
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
3577
3872
|
function DataTable(props) {
|
|
3578
3873
|
if (!props.features) {
|
|
3579
3874
|
throw new Error("DataTable: features configuration is required");
|
|
@@ -3581,9 +3876,9 @@ function DataTable(props) {
|
|
|
3581
3876
|
if (props.features.deleteSelected && !props.features.deletion) {
|
|
3582
3877
|
console.warn("DataTable: deleteSelected requires deletion to be enabled");
|
|
3583
3878
|
}
|
|
3584
|
-
return /* @__PURE__ */
|
|
3879
|
+
return /* @__PURE__ */ jsx21(DataTableCore, { ...props });
|
|
3585
3880
|
}
|
|
3586
|
-
var DataTableComponent =
|
|
3881
|
+
var DataTableComponent = React11.memo(DataTable);
|
|
3587
3882
|
|
|
3588
3883
|
// src/components/DataTable/core/DataManager.ts
|
|
3589
3884
|
var DataManager = class {
|
|
@@ -4756,7 +5051,7 @@ var LocalDataAdapter = class {
|
|
|
4756
5051
|
|
|
4757
5052
|
// src/components/DataTable/core/DataTableContext.tsx
|
|
4758
5053
|
import { createContext as createContext3, useContext as useContext3, useMemo as useMemo7, useEffect as useEffect6 } from "react";
|
|
4759
|
-
import { jsx as
|
|
5054
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
4760
5055
|
var DataTableContext = createContext3(null);
|
|
4761
5056
|
function DataTableProvider({
|
|
4762
5057
|
children,
|
|
@@ -4840,7 +5135,7 @@ function DataTableProvider({
|
|
|
4840
5135
|
stateManager.updateActions(actions);
|
|
4841
5136
|
}
|
|
4842
5137
|
}, [actions, actionManager, stateManager]);
|
|
4843
|
-
return /* @__PURE__ */
|
|
5138
|
+
return /* @__PURE__ */ jsx22(DataTableContext.Provider, { value: contextValue, children });
|
|
4844
5139
|
}
|
|
4845
5140
|
function useDataTableContext() {
|
|
4846
5141
|
const context = useContext3(DataTableContext);
|
|
@@ -4877,7 +5172,7 @@ import {
|
|
|
4877
5172
|
Download as Download2,
|
|
4878
5173
|
Trash as Trash3
|
|
4879
5174
|
} from "lucide-react";
|
|
4880
|
-
import { jsx as
|
|
5175
|
+
import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4881
5176
|
function BulkOperationsDropdown({
|
|
4882
5177
|
operations,
|
|
4883
5178
|
selectedRows = {},
|
|
@@ -4905,8 +5200,8 @@ function BulkOperationsDropdown({
|
|
|
4905
5200
|
onOperation(operation, selectedData);
|
|
4906
5201
|
}
|
|
4907
5202
|
};
|
|
4908
|
-
return /* @__PURE__ */
|
|
4909
|
-
/* @__PURE__ */
|
|
5203
|
+
return /* @__PURE__ */ jsxs15(Select, { disabled: !hasSelection, children: [
|
|
5204
|
+
/* @__PURE__ */ jsx23(SelectTrigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
|
|
4910
5205
|
Button,
|
|
4911
5206
|
{
|
|
4912
5207
|
variant: "outline",
|
|
@@ -4914,8 +5209,8 @@ function BulkOperationsDropdown({
|
|
|
4914
5209
|
disabled: !hasSelection,
|
|
4915
5210
|
className: `min-w-[140px] h-9 px-3 py-2 text-sm font-medium ${className || ""}`,
|
|
4916
5211
|
children: [
|
|
4917
|
-
/* @__PURE__ */
|
|
4918
|
-
/* @__PURE__ */
|
|
5212
|
+
/* @__PURE__ */ jsx23(MoreHorizontal2, { className: "h-4 w-4 mr-2 flex-shrink-0" }),
|
|
5213
|
+
/* @__PURE__ */ jsxs15("span", { className: "truncate", children: [
|
|
4919
5214
|
"Bulk Actions (",
|
|
4920
5215
|
selectedCount,
|
|
4921
5216
|
")"
|
|
@@ -4923,11 +5218,11 @@ function BulkOperationsDropdown({
|
|
|
4923
5218
|
]
|
|
4924
5219
|
}
|
|
4925
5220
|
) }),
|
|
4926
|
-
/* @__PURE__ */
|
|
5221
|
+
/* @__PURE__ */ jsx23(SelectContent, { className: "w-48 !bg-main-50 border border-sec-200 shadow-lg z-[9999]", style: { backgroundColor: "white" }, children: operations.map((operation) => {
|
|
4927
5222
|
const Icon = operationIcons[operation];
|
|
4928
5223
|
const label = operationLabels[operation];
|
|
4929
5224
|
const variant = operationVariants[operation];
|
|
4930
|
-
return /* @__PURE__ */
|
|
5225
|
+
return /* @__PURE__ */ jsxs15(
|
|
4931
5226
|
SelectItem,
|
|
4932
5227
|
{
|
|
4933
5228
|
value: operation,
|
|
@@ -4935,8 +5230,8 @@ function BulkOperationsDropdown({
|
|
|
4935
5230
|
disabled: !hasSelection,
|
|
4936
5231
|
className: `flex items-center gap-2 ${variant === "destructive" ? "text-destructive focus:text-destructive" : ""}`,
|
|
4937
5232
|
children: [
|
|
4938
|
-
/* @__PURE__ */
|
|
4939
|
-
/* @__PURE__ */
|
|
5233
|
+
/* @__PURE__ */ jsx23(Icon, { className: "h-4 w-4" }),
|
|
5234
|
+
/* @__PURE__ */ jsx23("span", { children: label })
|
|
4940
5235
|
]
|
|
4941
5236
|
},
|
|
4942
5237
|
operation
|
|
@@ -4948,7 +5243,7 @@ function BulkOperationsDropdown({
|
|
|
4948
5243
|
// src/components/DataTable/components/GroupHeader.tsx
|
|
4949
5244
|
init_Button();
|
|
4950
5245
|
import { ChevronDown as ChevronDown4, ChevronRight as ChevronRight3 } from "lucide-react";
|
|
4951
|
-
import { jsx as
|
|
5246
|
+
import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4952
5247
|
function GroupHeader({
|
|
4953
5248
|
row,
|
|
4954
5249
|
groupByColumn,
|
|
@@ -4957,18 +5252,18 @@ function GroupHeader({
|
|
|
4957
5252
|
subRowsCount
|
|
4958
5253
|
}) {
|
|
4959
5254
|
const groupValue = row.getValue(groupByColumn);
|
|
4960
|
-
return /* @__PURE__ */
|
|
4961
|
-
/* @__PURE__ */
|
|
5255
|
+
return /* @__PURE__ */ jsxs16("div", { className: "flex items-center py-2 px-4 bg-muted/50 border-b font-medium", children: [
|
|
5256
|
+
/* @__PURE__ */ jsx24(
|
|
4962
5257
|
Button,
|
|
4963
5258
|
{
|
|
4964
5259
|
variant: "ghost",
|
|
4965
5260
|
size: "sm",
|
|
4966
5261
|
onClick: onToggle,
|
|
4967
5262
|
className: "p-0 h-auto mr-2",
|
|
4968
|
-
children: isExpanded ? /* @__PURE__ */
|
|
5263
|
+
children: isExpanded ? /* @__PURE__ */ jsx24(ChevronDown4, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx24(ChevronRight3, { className: "h-4 w-4" })
|
|
4969
5264
|
}
|
|
4970
5265
|
),
|
|
4971
|
-
/* @__PURE__ */
|
|
5266
|
+
/* @__PURE__ */ jsxs16("span", { className: "text-sm", children: [
|
|
4972
5267
|
String(groupValue),
|
|
4973
5268
|
" (",
|
|
4974
5269
|
subRowsCount,
|
|
@@ -4979,13 +5274,13 @@ function GroupHeader({
|
|
|
4979
5274
|
|
|
4980
5275
|
// src/components/DataTable/components/EditableRow.tsx
|
|
4981
5276
|
init_Button();
|
|
4982
|
-
import { jsx as
|
|
5277
|
+
import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4983
5278
|
var renderEditField2 = (column, value, onChange, editingData = {}, placeholder) => {
|
|
4984
5279
|
const columnDef = column.columnDef;
|
|
4985
5280
|
if (columnDef.fieldType === "select" && columnDef.fieldOptions) {
|
|
4986
5281
|
const editKey = columnDef.editAccessorKey || column.id;
|
|
4987
5282
|
const editValue = editingData[editKey] || value;
|
|
4988
|
-
return /* @__PURE__ */
|
|
5283
|
+
return /* @__PURE__ */ jsxs17(
|
|
4989
5284
|
Select,
|
|
4990
5285
|
{
|
|
4991
5286
|
value: String(editValue || ""),
|
|
@@ -4997,14 +5292,14 @@ var renderEditField2 = (column, value, onChange, editingData = {}, placeholder)
|
|
|
4997
5292
|
}
|
|
4998
5293
|
},
|
|
4999
5294
|
children: [
|
|
5000
|
-
/* @__PURE__ */
|
|
5001
|
-
/* @__PURE__ */
|
|
5295
|
+
/* @__PURE__ */ jsx25(SelectTrigger, { className: "w-full h-7", children: /* @__PURE__ */ jsx25(SelectValue, { placeholder: placeholder || `Select ${column.id}` }) }),
|
|
5296
|
+
/* @__PURE__ */ jsx25(SelectContent, { children: columnDef.fieldOptions.map((option) => /* @__PURE__ */ jsx25(SelectItem, { value: String(option.value), children: option.label }, option.value)) })
|
|
5002
5297
|
]
|
|
5003
5298
|
}
|
|
5004
5299
|
);
|
|
5005
5300
|
}
|
|
5006
5301
|
if (columnDef.fieldType === "date") {
|
|
5007
|
-
return /* @__PURE__ */
|
|
5302
|
+
return /* @__PURE__ */ jsx25(
|
|
5008
5303
|
Input,
|
|
5009
5304
|
{
|
|
5010
5305
|
type: "date",
|
|
@@ -5014,7 +5309,7 @@ var renderEditField2 = (column, value, onChange, editingData = {}, placeholder)
|
|
|
5014
5309
|
}
|
|
5015
5310
|
);
|
|
5016
5311
|
}
|
|
5017
|
-
return /* @__PURE__ */
|
|
5312
|
+
return /* @__PURE__ */ jsx25(
|
|
5018
5313
|
Input,
|
|
5019
5314
|
{
|
|
5020
5315
|
type: "text",
|
|
@@ -5046,15 +5341,15 @@ function EditableRow({
|
|
|
5046
5341
|
testId: action.testId || `action-${action.label.toLowerCase().replace(/\s+/g, "-")}-${rowId}`,
|
|
5047
5342
|
visible: true
|
|
5048
5343
|
}));
|
|
5049
|
-
return /* @__PURE__ */
|
|
5050
|
-
row.getVisibleCells().map((cell) => /* @__PURE__ */
|
|
5344
|
+
return /* @__PURE__ */ jsxs17("tr", { children: [
|
|
5345
|
+
row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx25("td", { children: cell.column.id !== "actions" ? renderEditField2(cell.column, editingData[cell.column.id], (value) => {
|
|
5051
5346
|
if (typeof value === "object" && value !== null) {
|
|
5052
5347
|
onEditingDataChange({ ...editingData, ...value });
|
|
5053
5348
|
} else {
|
|
5054
5349
|
onEditingDataChange({ ...editingData, [cell.column.id]: value });
|
|
5055
5350
|
}
|
|
5056
|
-
}, editingData) : /* @__PURE__ */
|
|
5057
|
-
/* @__PURE__ */
|
|
5351
|
+
}, editingData) : /* @__PURE__ */ jsxs17("div", { className: "flex gap-1", children: [
|
|
5352
|
+
/* @__PURE__ */ jsx25(
|
|
5058
5353
|
Button,
|
|
5059
5354
|
{
|
|
5060
5355
|
onClick: onSave,
|
|
@@ -5063,7 +5358,7 @@ function EditableRow({
|
|
|
5063
5358
|
children: "Save"
|
|
5064
5359
|
}
|
|
5065
5360
|
),
|
|
5066
|
-
/* @__PURE__ */
|
|
5361
|
+
/* @__PURE__ */ jsx25(
|
|
5067
5362
|
Button,
|
|
5068
5363
|
{
|
|
5069
5364
|
onClick: onCancel,
|
|
@@ -5073,7 +5368,7 @@ function EditableRow({
|
|
|
5073
5368
|
}
|
|
5074
5369
|
)
|
|
5075
5370
|
] }) }, cell.id)),
|
|
5076
|
-
actions.length > 0 && /* @__PURE__ */
|
|
5371
|
+
actions.length > 0 && /* @__PURE__ */ jsx25("td", { children: /* @__PURE__ */ jsx25(
|
|
5077
5372
|
ActionButtons,
|
|
5078
5373
|
{
|
|
5079
5374
|
row: row.original,
|
|
@@ -5089,6 +5384,13 @@ function EditableRow({
|
|
|
5089
5384
|
}
|
|
5090
5385
|
|
|
5091
5386
|
export {
|
|
5387
|
+
Card,
|
|
5388
|
+
CardHeader,
|
|
5389
|
+
CardTitle,
|
|
5390
|
+
CardDescription,
|
|
5391
|
+
CardContent,
|
|
5392
|
+
CardFooter,
|
|
5393
|
+
CardActions,
|
|
5092
5394
|
Input,
|
|
5093
5395
|
Alert,
|
|
5094
5396
|
AlertTitle,
|
|
@@ -5136,4 +5438,4 @@ export {
|
|
|
5136
5438
|
GroupHeader,
|
|
5137
5439
|
EditableRow
|
|
5138
5440
|
};
|
|
5139
|
-
//# sourceMappingURL=chunk-
|
|
5441
|
+
//# sourceMappingURL=chunk-GSNM5D6H.js.map
|