@jmruthers/pace-core 0.5.81 → 0.5.82

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 (113) hide show
  1. package/dist/{DataTable-OBT663FS.js → DataTable-AK65GULE.js} +2 -2
  2. package/dist/{chunk-3FV24IOD.js → chunk-IEFWXF2A.js} +2 -2
  3. package/dist/{chunk-CACHCRZS.js → chunk-VCYSL54W.js} +90 -2
  4. package/dist/{chunk-CACHCRZS.js.map → chunk-VCYSL54W.js.map} +1 -1
  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/ColumnFactory.md +1 -1
  9. package/docs/api/classes/ErrorBoundary.md +1 -1
  10. package/docs/api/classes/InvalidScopeError.md +1 -1
  11. package/docs/api/classes/MissingUserContextError.md +1 -1
  12. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  13. package/docs/api/classes/PermissionDeniedError.md +1 -1
  14. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  15. package/docs/api/classes/RBACAuditManager.md +1 -1
  16. package/docs/api/classes/RBACCache.md +1 -1
  17. package/docs/api/classes/RBACEngine.md +1 -1
  18. package/docs/api/classes/RBACError.md +1 -1
  19. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  20. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  21. package/docs/api/classes/StorageUtils.md +1 -1
  22. package/docs/api/enums/FileCategory.md +1 -1
  23. package/docs/api/interfaces/AggregateConfig.md +1 -1
  24. package/docs/api/interfaces/ButtonProps.md +1 -1
  25. package/docs/api/interfaces/CardProps.md +1 -1
  26. package/docs/api/interfaces/ColorPalette.md +1 -1
  27. package/docs/api/interfaces/ColorShade.md +1 -1
  28. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  29. package/docs/api/interfaces/DataRecord.md +1 -1
  30. package/docs/api/interfaces/DataTableAction.md +1 -1
  31. package/docs/api/interfaces/DataTableColumn.md +1 -1
  32. package/docs/api/interfaces/DataTableProps.md +1 -1
  33. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  34. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  35. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  36. package/docs/api/interfaces/EventLogoProps.md +1 -1
  37. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  38. package/docs/api/interfaces/FileMetadata.md +1 -1
  39. package/docs/api/interfaces/FileReference.md +1 -1
  40. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  41. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  42. package/docs/api/interfaces/FileUploadProps.md +1 -1
  43. package/docs/api/interfaces/FooterProps.md +1 -1
  44. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  45. package/docs/api/interfaces/InputProps.md +1 -1
  46. package/docs/api/interfaces/LabelProps.md +1 -1
  47. package/docs/api/interfaces/LoginFormProps.md +1 -1
  48. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  49. package/docs/api/interfaces/NavigationContextType.md +1 -1
  50. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  51. package/docs/api/interfaces/NavigationItem.md +1 -1
  52. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  53. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  54. package/docs/api/interfaces/Organisation.md +1 -1
  55. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  56. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  57. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  58. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  59. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  60. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  61. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  62. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  63. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  64. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  65. package/docs/api/interfaces/PaletteData.md +1 -1
  66. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  67. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  68. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  69. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  70. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  71. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  72. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  73. package/docs/api/interfaces/RBACConfig.md +1 -1
  74. package/docs/api/interfaces/RBACLogger.md +1 -1
  75. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  76. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  77. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  78. package/docs/api/interfaces/RouteConfig.md +1 -1
  79. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  80. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  81. package/docs/api/interfaces/StorageConfig.md +1 -1
  82. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  83. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  84. package/docs/api/interfaces/StorageListOptions.md +1 -1
  85. package/docs/api/interfaces/StorageListResult.md +1 -1
  86. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  87. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  88. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  89. package/docs/api/interfaces/StyleImport.md +1 -1
  90. package/docs/api/interfaces/SwitchProps.md +1 -1
  91. package/docs/api/interfaces/ToastActionElement.md +1 -1
  92. package/docs/api/interfaces/ToastProps.md +1 -1
  93. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  94. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  95. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  96. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  97. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  98. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  99. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  100. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  101. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  102. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  103. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  104. package/docs/api/interfaces/UserEventAccess.md +1 -1
  105. package/docs/api/interfaces/UserMenuProps.md +1 -1
  106. package/docs/api/interfaces/UserProfile.md +1 -1
  107. package/docs/api/modules.md +2 -2
  108. package/package.json +1 -1
  109. package/src/components/DataTable/components/DataTableCore.tsx +62 -0
  110. package/src/components/DataTable/components/UnifiedTableBody.tsx +35 -0
  111. package/src/components/DataTable/hooks/useDataTableDataPipeline.ts +12 -1
  112. /package/dist/{DataTable-OBT663FS.js.map → DataTable-AK65GULE.js.map} +0 -0
  113. /package/dist/{chunk-3FV24IOD.js.map → chunk-IEFWXF2A.js.map} +0 -0
@@ -53,7 +53,7 @@ import {
53
53
  sortHierarchicalDataWithSorting,
54
54
  validateHierarchicalData,
55
55
  validatePaginationConfig
56
- } from "./chunk-CACHCRZS.js";
56
+ } from "./chunk-VCYSL54W.js";
57
57
  import "./chunk-YVUZWLQG.js";
58
58
  import "./chunk-S63MFSY6.js";
59
59
  import "./chunk-Q7APDV6H.js";
@@ -154,4 +154,4 @@ export {
154
154
  validateHierarchicalData,
155
155
  validatePaginationConfig
156
156
  };
157
- //# sourceMappingURL=DataTable-OBT663FS.js.map
157
+ //# sourceMappingURL=DataTable-AK65GULE.js.map
@@ -22,7 +22,7 @@ import {
22
22
  SelectSeparator,
23
23
  SelectTrigger,
24
24
  SelectValue
25
- } from "./chunk-CACHCRZS.js";
25
+ } from "./chunk-VCYSL54W.js";
26
26
  import {
27
27
  isPermitted,
28
28
  isSuperAdmin
@@ -3883,4 +3883,4 @@ export {
3883
3883
  PublicPageDiagnostic,
3884
3884
  PublicPageContextChecker
3885
3885
  };
3886
- //# sourceMappingURL=chunk-3FV24IOD.js.map
3886
+ //# sourceMappingURL=chunk-IEFWXF2A.js.map
@@ -7660,6 +7660,37 @@ function UnifiedTableBody({
7660
7660
  const shouldVirtualize = forceVirtualization || dataLength > VIRTUALIZATION_THRESHOLD;
7661
7661
  const rows = table.getRowModel().rows;
7662
7662
  const headerGroups = table.getHeaderGroups();
7663
+ useEffect3(() => {
7664
+ if (import.meta.env?.MODE === "development" && rows.length === 0 && dataLength > 0) {
7665
+ const tableState = table.getState();
7666
+ const pagination = tableState.pagination;
7667
+ const columnFilters = tableState.columnFilters;
7668
+ const globalFilter = tableState.globalFilter;
7669
+ const allRows = table.getPrePaginationRowModel?.()?.rows || [];
7670
+ const rowCount = table.getRowCount();
7671
+ const pageCount = table.getPageCount();
7672
+ console.warn("[DataTable] Diagnostic: Rows empty but data exists", {
7673
+ dataLength,
7674
+ rowsLength: rows.length,
7675
+ allRowsLength: allRows.length,
7676
+ rowCount,
7677
+ pageCount,
7678
+ pagination: {
7679
+ pageIndex: pagination.pageIndex,
7680
+ pageSize: pagination.pageSize
7681
+ },
7682
+ columnFilters,
7683
+ globalFilter,
7684
+ hasFilteredRows: table.getFilteredRowModel?.()?.rows?.length || 0,
7685
+ hasSortedRows: table.getSortedRowModel?.()?.rows?.length || 0,
7686
+ tableOptions: {
7687
+ getFilteredRowModel: !!table.options.getFilteredRowModel,
7688
+ getSortedRowModel: !!table.options.getSortedRowModel,
7689
+ getPaginationRowModel: !!table.options.getPaginationRowModel
7690
+ }
7691
+ });
7692
+ }
7693
+ }, [rows.length, dataLength, table]);
7663
7694
  const virtualizer = useVirtualizer({
7664
7695
  count: shouldVirtualize ? rows.length : 0,
7665
7696
  getScrollElement: () => parentRef.current,
@@ -9555,7 +9586,10 @@ function useDataTableDataPipeline({
9555
9586
  );
9556
9587
  const baseData = useMemo8(() => {
9557
9588
  if (finalPaginationMode === "server") {
9558
- return serverData?.data ?? [];
9589
+ if (serverData?.data && serverData.data.length > 0) {
9590
+ return serverData.data;
9591
+ }
9592
+ return structuredHierarchicalData;
9559
9593
  }
9560
9594
  return structuredHierarchicalData;
9561
9595
  }, [finalPaginationMode, serverData?.data, structuredHierarchicalData]);
@@ -11131,6 +11165,20 @@ function DataTableInternal({
11131
11165
  console.error("[DataTable] Hierarchical data validation failed:", hierarchicalValidation.errors);
11132
11166
  }
11133
11167
  }, [hierarchicalValidation]);
11168
+ useEffect12(() => {
11169
+ if (import.meta.env?.MODE === "development" && finalTableData.length === 0 && data.length > 0) {
11170
+ console.warn("[DataTable] Diagnostic: finalTableData empty but input data exists", {
11171
+ inputDataLength: data.length,
11172
+ finalTableDataLength: finalTableData.length,
11173
+ dataCount: finalDataCount,
11174
+ finalPaginationMode,
11175
+ hasServerData: !!serverData,
11176
+ serverDataLength: serverData?.data?.length || 0,
11177
+ hierarchicalEnabled: Boolean(secureFeatures.hierarchical && hierarchical?.enabled),
11178
+ hierarchicalValid: hierarchicalValidation.isValid
11179
+ });
11180
+ }
11181
+ }, [finalTableData.length, data.length, finalDataCount, finalPaginationMode, serverData, secureFeatures.hierarchical, hierarchical, hierarchicalValidation.isValid]);
11134
11182
  const {
11135
11183
  columnOrder: savedColumnOrder,
11136
11184
  isLoaded: isColumnOrderLoaded,
@@ -11375,7 +11423,47 @@ function DataTableInternal({
11375
11423
  finalDataCount,
11376
11424
  pageSize: effectivePageSize
11377
11425
  });
11426
+ useEffect12(() => {
11427
+ if (import.meta.env?.MODE === "development" && finalTableData.length > 0) {
11428
+ const configDataLength = tableConfig.data?.length || 0;
11429
+ if (configDataLength === 0) {
11430
+ console.warn("[DataTable] Diagnostic: tableConfig.data is empty but finalTableData has items", {
11431
+ finalTableDataLength: finalTableData.length,
11432
+ configDataLength,
11433
+ enhancedColumnsCount: enhancedColumns.length
11434
+ });
11435
+ }
11436
+ }
11437
+ }, [finalTableData.length, tableConfig.data]);
11378
11438
  const table = useReactTable(tableConfig);
11439
+ useEffect12(() => {
11440
+ if (import.meta.env?.MODE === "development" && finalTableData.length > 0) {
11441
+ const rows = table.getRowModel().rows;
11442
+ if (rows.length === 0) {
11443
+ const coreRows = table.getCoreRowModel().rows;
11444
+ const prePaginationRows = table.getPrePaginationRowModel?.()?.rows || [];
11445
+ const filteredRows = table.getFilteredRowModel?.()?.rows || [];
11446
+ const sortedRows = table.getSortedRowModel?.()?.rows || [];
11447
+ console.warn("[DataTable] Diagnostic: Table created but rows are empty", {
11448
+ finalTableDataLength: finalTableData.length,
11449
+ tableConfigDataLength: tableConfig.data?.length || 0,
11450
+ coreRowsLength: coreRows.length,
11451
+ prePaginationRowsLength: prePaginationRows.length,
11452
+ filteredRowsLength: filteredRows.length,
11453
+ sortedRowsLength: sortedRows.length,
11454
+ finalRowsLength: rows.length,
11455
+ pagination: table.getState().pagination,
11456
+ tableOptions: {
11457
+ getCoreRowModel: !!tableConfig.getCoreRowModel,
11458
+ getFilteredRowModel: !!tableConfig.getFilteredRowModel,
11459
+ getSortedRowModel: !!tableConfig.getSortedRowModel,
11460
+ getPaginationRowModel: !!tableConfig.getPaginationRowModel
11461
+ },
11462
+ hasRowId: !!resolvedGetRowId
11463
+ });
11464
+ }
11465
+ }
11466
+ }, [table, finalTableData.length, tableConfig, resolvedGetRowId]);
11379
11467
  if (!user) {
11380
11468
  throw new Error("DataTable requires authenticated user for RBAC");
11381
11469
  }
@@ -11872,4 +11960,4 @@ lodash/lodash.js:
11872
11960
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
11873
11961
  *)
11874
11962
  */
11875
- //# sourceMappingURL=chunk-CACHCRZS.js.map
11963
+ //# sourceMappingURL=chunk-VCYSL54W.js.map