@jmruthers/pace-core 0.5.4 → 0.5.5

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.
Files changed (158) hide show
  1. package/dist/{DataTable-ZQDRE46Q.js → DataTable-3SSI644S.js} +2 -2
  2. package/dist/{chunk-M4RW7PIP.js → chunk-2BJFM2JC.js} +105 -81
  3. package/dist/chunk-2BJFM2JC.js.map +1 -0
  4. package/dist/{chunk-5H3C2SWM.js → chunk-RTCA5ZNK.js} +2 -2
  5. package/dist/components.js +2 -2
  6. package/dist/index.js +2 -2
  7. package/dist/utils.js +1 -1
  8. package/docs/api/classes/ErrorBoundary.md +1 -1
  9. package/docs/api/classes/InvalidScopeError.md +1 -1
  10. package/docs/api/classes/MissingUserContextError.md +1 -1
  11. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  12. package/docs/api/classes/PermissionDeniedError.md +1 -1
  13. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  14. package/docs/api/classes/RBACAuditManager.md +1 -1
  15. package/docs/api/classes/RBACCache.md +1 -1
  16. package/docs/api/classes/RBACEngine.md +1 -1
  17. package/docs/api/classes/RBACError.md +1 -1
  18. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  19. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  20. package/docs/api/interfaces/AggregateConfig.md +1 -1
  21. package/docs/api/interfaces/ButtonProps.md +1 -1
  22. package/docs/api/interfaces/CardProps.md +1 -1
  23. package/docs/api/interfaces/ColorPalette.md +1 -1
  24. package/docs/api/interfaces/ColorShade.md +1 -1
  25. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  26. package/docs/api/interfaces/DataTableAction.md +1 -1
  27. package/docs/api/interfaces/DataTableColumn.md +1 -1
  28. package/docs/api/interfaces/DataTableProps.md +34 -34
  29. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  30. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  31. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  32. package/docs/api/interfaces/EventContextType.md +1 -1
  33. package/docs/api/interfaces/EventLogoProps.md +1 -1
  34. package/docs/api/interfaces/EventProviderProps.md +1 -1
  35. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  36. package/docs/api/interfaces/FileUploadProps.md +1 -1
  37. package/docs/api/interfaces/FooterProps.md +1 -1
  38. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  39. package/docs/api/interfaces/InputProps.md +1 -1
  40. package/docs/api/interfaces/LabelProps.md +1 -1
  41. package/docs/api/interfaces/LoginFormProps.md +1 -1
  42. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  43. package/docs/api/interfaces/NavigationContextType.md +1 -1
  44. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  45. package/docs/api/interfaces/NavigationItem.md +1 -1
  46. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  47. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  48. package/docs/api/interfaces/Organisation.md +1 -1
  49. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  50. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  51. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  52. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  53. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  54. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  55. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  56. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  57. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  58. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  59. package/docs/api/interfaces/PaletteData.md +1 -1
  60. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  61. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  62. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  63. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  64. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  65. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  66. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  67. package/docs/api/interfaces/RBACConfig.md +1 -1
  68. package/docs/api/interfaces/RBACContextType.md +1 -1
  69. package/docs/api/interfaces/RBACLogger.md +1 -1
  70. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  71. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  72. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  73. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  74. package/docs/api/interfaces/RouteConfig.md +1 -1
  75. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  76. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  77. package/docs/api/interfaces/StorageConfig.md +1 -1
  78. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  79. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  80. package/docs/api/interfaces/StorageListOptions.md +1 -1
  81. package/docs/api/interfaces/StorageListResult.md +1 -1
  82. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  83. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  84. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  85. package/docs/api/interfaces/StyleImport.md +1 -1
  86. package/docs/api/interfaces/ToastActionElement.md +1 -1
  87. package/docs/api/interfaces/ToastProps.md +1 -1
  88. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  89. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  90. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  91. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  92. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  93. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  94. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  95. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  96. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  97. package/docs/api/interfaces/UserEventAccess.md +1 -1
  98. package/docs/api/interfaces/UserMenuProps.md +1 -1
  99. package/docs/api/interfaces/UserProfile.md +1 -1
  100. package/docs/api/modules.md +3 -3
  101. package/docs/implementation-guides/data-tables.md +20 -0
  102. package/docs/quick-reference.md +9 -0
  103. package/docs/rbac/examples.md +4 -0
  104. package/package.json +1 -1
  105. package/src/__tests__/helpers/test-utils.tsx +147 -1
  106. package/src/components/DataTable/DataTable.tsx +20 -0
  107. package/src/components/DataTable/__tests__/DataTable.hooks.test 2.tsx +191 -0
  108. package/src/components/DataTable/__tests__/DataTable.hooks.test.tsx +191 -0
  109. package/src/components/DataTable/components/DataTableCore.tsx +167 -138
  110. package/src/hooks/__tests__/hooks.integration.test.tsx +575 -0
  111. package/src/hooks/__tests__/useApiFetch.unit.test.ts +115 -0
  112. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +133 -0
  113. package/src/hooks/__tests__/useDebounce.unit.test.ts +82 -0
  114. package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +293 -0
  115. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +385 -0
  116. package/src/hooks/__tests__/useOrganisationPermissions.unit.test.tsx +286 -0
  117. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +838 -0
  118. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +104 -0
  119. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +633 -0
  120. package/src/hooks/__tests__/useRBAC.unit.test.ts +856 -0
  121. package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +537 -0
  122. package/src/hooks/__tests__/useToast.unit.test.tsx +62 -0
  123. package/src/hooks/__tests__/useZodForm.unit.test.tsx +37 -0
  124. package/src/rbac/utils/__tests__/eventContext.test.ts +428 -0
  125. package/src/rbac/utils/__tests__/eventContext.unit.test.ts +428 -0
  126. package/src/utils/__tests__/appConfig.unit.test.ts +55 -0
  127. package/src/utils/__tests__/audit.unit.test.ts +69 -0
  128. package/src/utils/__tests__/auth-utils.unit.test.ts +70 -0
  129. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +317 -0
  130. package/src/utils/__tests__/cn.unit.test.ts +34 -0
  131. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +503 -0
  132. package/src/utils/__tests__/dynamicUtils.unit.test.ts +322 -0
  133. package/src/utils/__tests__/formatDate.unit.test.ts +109 -0
  134. package/src/utils/__tests__/formatting.unit.test.ts +66 -0
  135. package/src/utils/__tests__/index.unit.test.ts +251 -0
  136. package/src/utils/__tests__/lazyLoad.unit.test.tsx +309 -0
  137. package/src/utils/__tests__/organisationContext.unit.test.ts +192 -0
  138. package/src/utils/__tests__/performanceBudgets.unit.test.ts +259 -0
  139. package/src/utils/__tests__/permissionTypes.unit.test.ts +250 -0
  140. package/src/utils/__tests__/permissionUtils.unit.test.ts +362 -0
  141. package/src/utils/__tests__/sanitization.unit.test.ts +346 -0
  142. package/src/utils/__tests__/schemaUtils.unit.test.ts +441 -0
  143. package/src/utils/__tests__/secureDataAccess.unit.test.ts +334 -0
  144. package/src/utils/__tests__/secureErrors.unit.test.ts +377 -0
  145. package/src/utils/__tests__/secureStorage.unit.test.ts +293 -0
  146. package/src/utils/__tests__/security.unit.test.ts +127 -0
  147. package/src/utils/__tests__/securityMonitor.unit.test.ts +280 -0
  148. package/src/utils/__tests__/sessionTracking.unit.test.ts +356 -0
  149. package/src/utils/__tests__/validation.unit.test.ts +84 -0
  150. package/src/utils/__tests__/validationUtils.unit.test.ts +571 -0
  151. package/src/validation/__tests__/common.unit.test.ts +101 -0
  152. package/src/validation/__tests__/csrf.unit.test.ts +302 -0
  153. package/src/validation/__tests__/passwordSchema.unit.test 2.ts +98 -0
  154. package/src/validation/__tests__/passwordSchema.unit.test.ts +98 -0
  155. package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +466 -0
  156. package/dist/chunk-M4RW7PIP.js.map +0 -1
  157. /package/dist/{DataTable-ZQDRE46Q.js.map → DataTable-3SSI644S.js.map} +0 -0
  158. /package/dist/{chunk-5H3C2SWM.js.map → chunk-RTCA5ZNK.js.map} +0 -0
@@ -32,7 +32,7 @@ import {
32
32
  useDataTableContext,
33
33
  usePluginRegistry,
34
34
  useStateManager
35
- } from "./chunk-M4RW7PIP.js";
35
+ } from "./chunk-2BJFM2JC.js";
36
36
  import "./chunk-QVYBYGT2.js";
37
37
  import "./chunk-GWSBHC4J.js";
38
38
  import "./chunk-7BNPOCLL.js";
@@ -96,4 +96,4 @@ export {
96
96
  usePluginRegistry,
97
97
  useStateManager
98
98
  };
99
- //# sourceMappingURL=DataTable-ZQDRE46Q.js.map
99
+ //# sourceMappingURL=DataTable-3SSI644S.js.map
@@ -3267,47 +3267,6 @@ function DataTableInternal({
3267
3267
  }) {
3268
3268
  const authResult = useUnifiedAuth();
3269
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
- };
3311
3270
  const [sorting, setSorting] = useState6([]);
3312
3271
  const [columnFilters, setColumnFilters] = useState6([]);
3313
3272
  const [columnVisibility, setColumnVisibility] = useState6({});
@@ -3388,6 +3347,40 @@ function DataTableInternal({
3388
3347
  defaultOrder: columns.map((col) => col.id || col.accessorKey || ""),
3389
3348
  enablePersistence: features.columnReordering
3390
3349
  });
3350
+ const permissions = {
3351
+ canRead: useCan(user?.id || "", {
3352
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3353
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3354
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3355
+ }, `read:${rbac.resource}`, rbac.pageId),
3356
+ canCreate: useCan(user?.id || "", {
3357
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3358
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3359
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3360
+ }, `create:${rbac.resource}`, rbac.pageId),
3361
+ canUpdate: useCan(user?.id || "", {
3362
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3363
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3364
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3365
+ }, `update:${rbac.resource}`, rbac.pageId),
3366
+ canDelete: useCan(user?.id || "", {
3367
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3368
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3369
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3370
+ }, `delete:${rbac.resource}`, rbac.pageId),
3371
+ canExport: useCan(user?.id || "", {
3372
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3373
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3374
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3375
+ }, `manage:${rbac.resource}`, rbac.pageId),
3376
+ // Using manage for export/import
3377
+ canImport: useCan(user?.id || "", {
3378
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3379
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3380
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3381
+ }, `manage:${rbac.resource}`, rbac.pageId)
3382
+ // Using manage for export/import
3383
+ };
3391
3384
  const finalPaginationMode = paginationMode || detectedMode;
3392
3385
  const finalPageSizeOptions = optimizedPageSizeOptions;
3393
3386
  const validatedInitialPageSize = useMemo6(() => {
@@ -3458,6 +3451,76 @@ function DataTableInternal({
3458
3451
  return features.hierarchical && hierarchical?.enabled && sorting.length > 0 ? sortedTableData : tableData;
3459
3452
  }, [features.hierarchical, hierarchical?.enabled, sorting.length, sortedTableData, tableData]);
3460
3453
  const finalDataCount = finalPaginationMode === "server" ? serverData?.totalCount || 0 : finalTableData?.length || 0;
3454
+ const handleSearch = useCallback5((value) => {
3455
+ setSearchQuery(value);
3456
+ if (features.pagination) {
3457
+ setPagination((prev) => ({ ...prev, pageIndex: 0 }));
3458
+ }
3459
+ }, [setSearchQuery, features.pagination]);
3460
+ const handleServerSideChange = useCallback5(async () => {
3461
+ if (finalPaginationMode !== "server" || !serverSide) return;
3462
+ const params = {
3463
+ pageIndex: pagination.pageIndex,
3464
+ pageSize: pagination.pageSize,
3465
+ sorting,
3466
+ columnFilters,
3467
+ globalFilter: searchQuery,
3468
+ grouping
3469
+ };
3470
+ await fetchServerData(params);
3471
+ }, [
3472
+ finalPaginationMode,
3473
+ serverSide,
3474
+ pagination,
3475
+ sorting,
3476
+ columnFilters,
3477
+ searchQuery,
3478
+ grouping,
3479
+ fetchServerData
3480
+ ]);
3481
+ useEffect5(() => {
3482
+ if ((tableData?.length || 0) > 0 || finalPaginationMode === "server") {
3483
+ handleServerSideChange();
3484
+ }
3485
+ }, [handleServerSideChange, tableData?.length, finalPaginationMode]);
3486
+ useEffect5(() => {
3487
+ return () => {
3488
+ if (typeof cleanup === "function") {
3489
+ cleanup();
3490
+ }
3491
+ };
3492
+ }, [cleanup]);
3493
+ if (!user) {
3494
+ throw new Error("DataTable requires authenticated user for RBAC");
3495
+ }
3496
+ if (!rbac?.resource) {
3497
+ throw new Error("DataTable requires rbac.resource for permission checking");
3498
+ }
3499
+ const scope = {
3500
+ organisationId: user?.user_metadata?.organisationId || user?.app_metadata?.organisationId,
3501
+ eventId: user?.user_metadata?.eventId || user?.app_metadata?.eventId,
3502
+ appId: user?.user_metadata?.appId || user?.app_metadata?.appId
3503
+ };
3504
+ if (!permissions.canRead.can) {
3505
+ return /* @__PURE__ */ jsx20(AccessDeniedPage, { resource: rbac?.resource || "test-resource", operation: "read" });
3506
+ }
3507
+ const secureFeatures = {
3508
+ ...features,
3509
+ creation: features.creation && permissions.canCreate.can,
3510
+ editing: features.editing && permissions.canUpdate.can,
3511
+ deletion: features.deletion && permissions.canDelete.can,
3512
+ deleteSelected: features.deleteSelected && permissions.canDelete.can,
3513
+ export: features.export && permissions.canExport.can,
3514
+ import: features.import && permissions.canImport.can
3515
+ };
3516
+ const secureHandlers = {
3517
+ onEditRow: permissions.canUpdate.can ? onEditRow : void 0,
3518
+ onDeleteRow: permissions.canDelete.can ? onDeleteRow : void 0,
3519
+ onCreateRow: permissions.canCreate.can ? onCreateRow : void 0,
3520
+ onImport: permissions.canImport.can ? onImport : void 0,
3521
+ onExport: permissions.canExport.can ? onExport : void 0,
3522
+ onDeleteSelected: permissions.canDelete.can ? onDeleteSelected : void 0
3523
+ };
3461
3524
  const effectiveActions = useMemo6(() => {
3462
3525
  const result = [...actions];
3463
3526
  if (secureFeatures.editing && secureHandlers.onEditRow && !result.some((a) => a.label === "Edit")) {
@@ -3636,45 +3699,6 @@ function DataTableInternal({
3636
3699
  pagination.pageSize
3637
3700
  ]);
3638
3701
  const table = useReactTable(tableConfig);
3639
- const handleSearch = useCallback5((value) => {
3640
- setSearchQuery(value);
3641
- if (features.pagination) {
3642
- setPagination((prev) => ({ ...prev, pageIndex: 0 }));
3643
- }
3644
- }, [setSearchQuery, features.pagination]);
3645
- const handleServerSideChange = useCallback5(async () => {
3646
- if (finalPaginationMode !== "server" || !serverSide) return;
3647
- const params = {
3648
- pageIndex: pagination.pageIndex,
3649
- pageSize: pagination.pageSize,
3650
- sorting,
3651
- columnFilters,
3652
- globalFilter: searchQuery,
3653
- grouping
3654
- };
3655
- await fetchServerData(params);
3656
- }, [
3657
- finalPaginationMode,
3658
- serverSide,
3659
- pagination,
3660
- sorting,
3661
- columnFilters,
3662
- searchQuery,
3663
- grouping,
3664
- fetchServerData
3665
- ]);
3666
- useEffect5(() => {
3667
- if ((tableData?.length || 0) > 0 || finalPaginationMode === "server") {
3668
- handleServerSideChange();
3669
- }
3670
- }, [handleServerSideChange, tableData?.length, finalPaginationMode]);
3671
- useEffect5(() => {
3672
- return () => {
3673
- if (typeof cleanup === "function") {
3674
- cleanup();
3675
- }
3676
- };
3677
- }, [cleanup]);
3678
3702
  if (isLoading) {
3679
3703
  return /* @__PURE__ */ jsx20(LoadingComponent, {});
3680
3704
  }
@@ -5438,4 +5462,4 @@ export {
5438
5462
  GroupHeader,
5439
5463
  EditableRow
5440
5464
  };
5441
- //# sourceMappingURL=chunk-M4RW7PIP.js.map
5465
+ //# sourceMappingURL=chunk-2BJFM2JC.js.map