@jmruthers/pace-core 0.2.5 → 0.2.6

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 (165) hide show
  1. package/dist/{DataTable-BHlzyKZP.d.ts → DataTable-C1AEm9Cx.d.ts} +1 -1
  2. package/dist/{DataTable-GEY5U7OI.js → DataTable-EEUDXPE5.js} +2 -8
  3. package/dist/{api-T6CBS7IO.js → api-ETQ6YJ3C.js} +2 -3
  4. package/dist/{chunk-DY5E3AT7.js → chunk-BEZRLNK3.js} +13 -3
  5. package/dist/chunk-BEZRLNK3.js.map +1 -0
  6. package/dist/{chunk-ANE4PDC2.js → chunk-C5G2A4PO.js} +159 -6
  7. package/dist/chunk-C5G2A4PO.js.map +1 -0
  8. package/dist/{chunk-WYB6MBZA.js → chunk-EWKPTNPO.js} +579 -973
  9. package/dist/chunk-EWKPTNPO.js.map +1 -0
  10. package/dist/{chunk-TMRLB2LA.js → chunk-HEMJ4SUJ.js} +2 -2
  11. package/dist/{chunk-O4T53L7X.js → chunk-HNDFPXUU.js} +5 -5
  12. package/dist/{chunk-UY7AM4QG.js → chunk-RRUYHORU.js} +161 -74
  13. package/dist/chunk-RRUYHORU.js.map +1 -0
  14. package/dist/{chunk-PFRRIDYA.js → chunk-TIVL4UQ7.js} +2 -2
  15. package/dist/{chunk-2MKP6IYD.js → chunk-VYG4AXYW.js} +2 -2
  16. package/dist/components.d.ts +2 -2
  17. package/dist/components.js +15 -16
  18. package/dist/components.js.map +1 -1
  19. package/dist/hooks.d.ts +1 -1
  20. package/dist/hooks.js +4 -4
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js +16 -17
  23. package/dist/index.js.map +1 -1
  24. package/dist/providers.js +2 -2
  25. package/dist/rbac/index.js +25 -20
  26. package/dist/rbac/index.js.map +1 -1
  27. package/dist/{types-CInEi-ng.d.ts → types-DiRQsGJs.d.ts} +0 -2
  28. package/dist/utils.d.ts +2 -2
  29. package/dist/utils.js +1 -1
  30. package/docs/api/classes/ErrorBoundary.md +1 -1
  31. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  32. package/docs/api/interfaces/AggregateConfig.md +1 -1
  33. package/docs/api/interfaces/ButtonProps.md +1 -1
  34. package/docs/api/interfaces/CardProps.md +1 -1
  35. package/docs/api/interfaces/ColorPalette.md +1 -1
  36. package/docs/api/interfaces/ColorShade.md +1 -1
  37. package/docs/api/interfaces/DataTableAction.md +1 -1
  38. package/docs/api/interfaces/DataTableColumn.md +1 -1
  39. package/docs/api/interfaces/DataTableProps.md +33 -33
  40. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  41. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  42. package/docs/api/interfaces/EventContextType.md +1 -1
  43. package/docs/api/interfaces/EventLogoProps.md +1 -1
  44. package/docs/api/interfaces/EventProviderProps.md +1 -1
  45. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  46. package/docs/api/interfaces/FileUploadProps.md +1 -1
  47. package/docs/api/interfaces/FooterProps.md +1 -1
  48. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  49. package/docs/api/interfaces/InputProps.md +1 -1
  50. package/docs/api/interfaces/LabelProps.md +1 -1
  51. package/docs/api/interfaces/LoginFormProps.md +1 -1
  52. package/docs/api/interfaces/NavigationItem.md +1 -1
  53. package/docs/api/interfaces/NavigationMenuProps.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/PaletteData.md +1 -1
  62. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  63. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  64. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  65. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  66. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  67. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  68. package/docs/api/interfaces/StorageConfig.md +1 -1
  69. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  70. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  71. package/docs/api/interfaces/StorageListOptions.md +1 -1
  72. package/docs/api/interfaces/StorageListResult.md +1 -1
  73. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  74. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  75. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  76. package/docs/api/interfaces/StyleImport.md +1 -1
  77. package/docs/api/interfaces/ToastActionElement.md +1 -1
  78. package/docs/api/interfaces/ToastProps.md +1 -1
  79. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  80. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  81. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  82. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  83. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  84. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  85. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  86. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  87. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  88. package/docs/api/interfaces/UserEventAccess.md +1 -1
  89. package/docs/api/interfaces/UserMenuProps.md +1 -1
  90. package/docs/api/interfaces/UserProfile.md +1 -1
  91. package/docs/api/modules.md +10 -10
  92. package/docs/architecture/README.md +1 -1
  93. package/package.json +1 -1
  94. package/src/__tests__/shared/testUtils.optimized.tsx +65 -7
  95. package/src/components/DataTable/DataTable.tsx +1 -3
  96. package/src/components/DataTable/__tests__/DataTable.errorHandling.test.tsx +0 -8
  97. package/src/components/DataTable/__tests__/DataTable.hierarchical.test.tsx +17 -12
  98. package/src/components/DataTable/__tests__/DataTable.infinite-loop.test.tsx +0 -1
  99. package/src/components/DataTable/__tests__/DataTable.integration.test.tsx +4 -12
  100. package/src/components/DataTable/__tests__/DataTable.performance.test.tsx +0 -8
  101. package/src/components/DataTable/__tests__/DataTable.permissions.test.tsx +21 -11
  102. package/src/components/DataTable/__tests__/DataTable.sorting.test.tsx +321 -0
  103. package/src/components/DataTable/__tests__/DataTable.userWorkflows.test.tsx +21 -11
  104. package/src/components/DataTable/__tests__/DataTable.workflowValidation.test.tsx +94 -0
  105. package/src/components/DataTable/__tests__/DataTable.workflows.test.tsx +25 -15
  106. package/src/components/DataTable/__tests__/README.md +11 -2
  107. package/src/components/DataTable/__tests__/performance-regression.test.tsx +0 -11
  108. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +0 -1
  109. package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +2 -2
  110. package/src/components/DataTable/components/DataTableBody.tsx +34 -35
  111. package/src/components/DataTable/components/DataTableCore.tsx +205 -133
  112. package/src/components/DataTable/components/DataTableToolbar.tsx +9 -10
  113. package/src/components/DataTable/components/DraggableColumnHeader.tsx +3 -7
  114. package/src/components/DataTable/components/EditableRow.tsx +6 -7
  115. package/src/components/DataTable/components/FilterRow.tsx +0 -1
  116. package/src/components/DataTable/components/GroupingDropdown.tsx +2 -2
  117. package/src/components/DataTable/components/UnifiedTableBody.tsx +83 -281
  118. package/src/components/DataTable/components/VirtualizedDataTable.tsx +9 -89
  119. package/src/components/DataTable/components/__tests__/DataTable.accessibility.test.tsx +111 -5
  120. package/src/components/DataTable/components/__tests__/DataTable.integration.test.tsx +82 -13
  121. package/src/components/DataTable/components/__tests__/DataTable.performance.test.tsx +0 -1
  122. package/src/components/DataTable/components/__tests__/DataTable.real.test.tsx +2 -2
  123. package/src/components/DataTable/components/__tests__/DataTable.security.test.tsx +0 -1
  124. package/src/components/DataTable/components/__tests__/DataTable.unit.test.tsx +2 -2
  125. package/src/components/DataTable/components/__tests__/FilteringToggle.unit.test.tsx +3 -0
  126. package/src/components/DataTable/components/index.ts +0 -1
  127. package/src/components/DataTable/core/DataTableContext.tsx +0 -1
  128. package/src/components/DataTable/index.ts +0 -2
  129. package/src/components/DataTable/types.ts +0 -2
  130. package/src/components/Input/Input.tsx +2 -2
  131. package/src/components/Input/__tests__/Input.unit.test.tsx +4 -4
  132. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +6 -2
  133. package/src/components/RBAC/PagePermissionGuard.tsx +13 -0
  134. package/src/components/RBAC/__tests__/PagePermissionGuard.unit.test.tsx +10 -1
  135. package/src/components/Select/Select.tsx +7 -1
  136. package/src/components/__tests__/EdgeCaseTesting.enhanced.test.tsx +2 -1
  137. package/src/hooks/__tests__/useRBAC.unit.test.ts +32 -24
  138. package/src/providers/RBACProvider.tsx +14 -2
  139. package/src/providers/__tests__/UnifiedAuthProvider.unit.test.tsx +11 -3
  140. package/src/rbac/__tests__/cache-invalidation.test.ts +2 -2
  141. package/src/rbac/__tests__/cache.test.ts +3 -3
  142. package/src/rbac/hooks.ts +15 -7
  143. package/src/utils/__tests__/lazyLoad.unit.test.tsx +13 -18
  144. package/src/utils/storage/__tests__/helpers.unit.test.ts +9 -7
  145. package/dist/cache-I72HKDOA.js +0 -12
  146. package/dist/cache-I72HKDOA.js.map +0 -1
  147. package/dist/chunk-ANE4PDC2.js.map +0 -1
  148. package/dist/chunk-DY5E3AT7.js.map +0 -1
  149. package/dist/chunk-MRRFJ6SA.js +0 -161
  150. package/dist/chunk-MRRFJ6SA.js.map +0 -1
  151. package/dist/chunk-UY7AM4QG.js.map +0 -1
  152. package/dist/chunk-WYB6MBZA.js.map +0 -1
  153. package/src/components/DataTable/__tests__/DataTable.autoSizing.test.tsx +0 -526
  154. package/src/components/DataTable/components/DataTableHeader.tsx +0 -31
  155. package/src/components/DataTable/components/__tests__/DataTableHeader.unit.test.tsx +0 -143
  156. package/src/components/DataTable/examples/AutoSizingExample.tsx +0 -180
  157. package/src/components/DataTable/examples/ColumnSizingComparison.tsx +0 -235
  158. package/src/components/DataTable/utils/__tests__/columnSizing.test.ts +0 -237
  159. package/src/components/DataTable/utils/columnSizing.ts +0 -125
  160. /package/dist/{DataTable-GEY5U7OI.js.map → DataTable-EEUDXPE5.js.map} +0 -0
  161. /package/dist/{api-T6CBS7IO.js.map → api-ETQ6YJ3C.js.map} +0 -0
  162. /package/dist/{chunk-TMRLB2LA.js.map → chunk-HEMJ4SUJ.js.map} +0 -0
  163. /package/dist/{chunk-O4T53L7X.js.map → chunk-HNDFPXUU.js.map} +0 -0
  164. /package/dist/{chunk-PFRRIDYA.js.map → chunk-TIVL4UQ7.js.map} +0 -0
  165. /package/dist/{chunk-2MKP6IYD.js.map → chunk-VYG4AXYW.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / StorageListResult
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / StorageListResult
2
2
 
3
3
  # Interface: StorageListResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / StorageUploadOptions
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / StorageUploadOptions
2
2
 
3
3
  # Interface: StorageUploadOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / StorageUploadResult
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / StorageUploadResult
2
2
 
3
3
  # Interface: StorageUploadResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / StorageUrlOptions
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / StorageUrlOptions
2
2
 
3
3
  # Interface: StorageUrlOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / StyleImport
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / StyleImport
2
2
 
3
3
  # Interface: StyleImport
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / ToastActionElement
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / ToastActionElement
2
2
 
3
3
  # Interface: ToastActionElement
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / ToastProps
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / ToastProps
2
2
 
3
3
  # Interface: ToastProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
2
2
 
3
3
  # Interface: UnifiedAuthContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
2
2
 
3
3
  # Interface: UnifiedAuthProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
2
2
 
3
3
  # Interface: UseInactivityTrackerOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
2
2
 
3
3
  # Interface: UseInactivityTrackerReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UsePublicEventLogoOptions
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UsePublicEventLogoOptions
2
2
 
3
3
  # Interface: UsePublicEventLogoOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UsePublicEventLogoReturn
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UsePublicEventLogoReturn
2
2
 
3
3
  # Interface: UsePublicEventLogoReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
2
2
 
3
3
  # Interface: UsePublicEventOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
2
2
 
3
3
  # Interface: UsePublicEventReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
2
2
 
3
3
  # Interface: UsePublicRouteParamsReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UserEventAccess
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UserEventAccess
2
2
 
3
3
  # Interface: UserEventAccess
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.2.5](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.2.6](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.2.5](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.2.6](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.2.5
3
+ # @jmruthers/pace-core - v0.2.6
4
4
 
5
5
  **`File`**
6
6
 
@@ -718,7 +718,7 @@ Features are configured through the unified `features` prop for maximum flexibil
718
718
 
719
719
  #### Defined in
720
720
 
721
- [packages/core/src/components/DataTable/DataTable.tsx:414](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/DataTable.tsx#L414)
721
+ [packages/core/src/components/DataTable/DataTable.tsx:412](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/DataTable.tsx#L412)
722
722
 
723
723
  ___
724
724
 
@@ -2418,7 +2418,7 @@ ___
2418
2418
 
2419
2419
  #### Defined in
2420
2420
 
2421
- [packages/core/src/components/Select/Select.tsx:269](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L269)
2421
+ [packages/core/src/components/Select/Select.tsx:275](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L275)
2422
2422
 
2423
2423
  ___
2424
2424
 
@@ -2438,7 +2438,7 @@ ___
2438
2438
 
2439
2439
  #### Defined in
2440
2440
 
2441
- [packages/core/src/components/Select/Select.tsx:392](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L392)
2441
+ [packages/core/src/components/Select/Select.tsx:398](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L398)
2442
2442
 
2443
2443
  ___
2444
2444
 
@@ -2458,7 +2458,7 @@ ___
2458
2458
 
2459
2459
  #### Defined in
2460
2460
 
2461
- [packages/core/src/components/Select/Select.tsx:409](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L409)
2461
+ [packages/core/src/components/Select/Select.tsx:415](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L415)
2462
2462
 
2463
2463
  ___
2464
2464
 
@@ -2478,7 +2478,7 @@ ___
2478
2478
 
2479
2479
  #### Defined in
2480
2480
 
2481
- [packages/core/src/components/Select/Select.tsx:536](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L536)
2481
+ [packages/core/src/components/Select/Select.tsx:542](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L542)
2482
2482
 
2483
2483
  ___
2484
2484
 
@@ -2498,7 +2498,7 @@ ___
2498
2498
 
2499
2499
  #### Defined in
2500
2500
 
2501
- [packages/core/src/components/Select/Select.tsx:621](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L621)
2501
+ [packages/core/src/components/Select/Select.tsx:627](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L627)
2502
2502
 
2503
2503
  ___
2504
2504
 
@@ -2518,7 +2518,7 @@ ___
2518
2518
 
2519
2519
  #### Defined in
2520
2520
 
2521
- [packages/core/src/components/Select/Select.tsx:632](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L632)
2521
+ [packages/core/src/components/Select/Select.tsx:638](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L638)
2522
2522
 
2523
2523
  ___
2524
2524
 
@@ -2538,7 +2538,7 @@ ___
2538
2538
 
2539
2539
  #### Defined in
2540
2540
 
2541
- [packages/core/src/components/Select/Select.tsx:643](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L643)
2541
+ [packages/core/src/components/Select/Select.tsx:649](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/Select/Select.tsx#L649)
2542
2542
 
2543
2543
  ___
2544
2544
 
@@ -119,7 +119,7 @@ ComponentName/
119
119
 
120
120
  ### Component Design Patterns
121
121
 
122
- 1. **Compound Components**: Components that work together (e.g., DataTable + DataTableHeader + DataTableBody)
122
+ 1. **Compound Components**: Components that work together (e.g., DataTable + DataTableToolbar + DataTableBody)
123
123
  2. **Render Props**: Flexible rendering patterns for complex components
124
124
  3. **Controlled/Uncontrolled**: Support for both controlled and uncontrolled usage
125
125
  4. **Composition**: Components that can be composed together
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmruthers/pace-core",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -137,8 +137,35 @@ function getSharedSupabaseClient(): SupabaseClient {
137
137
  error: null
138
138
  });
139
139
 
140
- vi.spyOn(sharedSupabaseClient.auth, 'onAuthStateChange').mockReturnValue({
141
- data: { subscription: { unsubscribe: vi.fn() } }
140
+ vi.spyOn(sharedSupabaseClient.auth, 'signUp').mockResolvedValue({
141
+ data: { user: null, session: null },
142
+ error: null
143
+ });
144
+
145
+ vi.spyOn(sharedSupabaseClient.auth, 'signOut').mockResolvedValue({
146
+ error: null
147
+ });
148
+
149
+ vi.spyOn(sharedSupabaseClient.auth, 'resetPasswordForEmail').mockResolvedValue({
150
+ error: null
151
+ });
152
+
153
+ vi.spyOn(sharedSupabaseClient.auth, 'updateUser').mockResolvedValue({
154
+ data: { user: null },
155
+ error: null
156
+ });
157
+
158
+ vi.spyOn(sharedSupabaseClient.auth, 'refreshSession').mockResolvedValue({
159
+ data: { session: null },
160
+ error: null
161
+ });
162
+
163
+ vi.spyOn(sharedSupabaseClient.auth, 'onAuthStateChange').mockImplementation((callback) => {
164
+ // Store the callback for potential use in tests
165
+ (sharedSupabaseClient as any)._authCallback = callback;
166
+ return {
167
+ data: { subscription: { unsubscribe: vi.fn() } }
168
+ };
142
169
  });
143
170
 
144
171
  // Mock the from method
@@ -553,11 +580,42 @@ export async function measureMemoryUsage<T extends Record<string, any>>(
553
580
  */
554
581
  export function resetSharedSupabaseMock() {
555
582
  const client = getSharedSupabaseClient();
556
- client.from.mockClear();
557
- client.auth.getUser.mockClear();
558
- client.auth.getSession.mockClear();
559
- client.rpc.mockClear();
560
- // Add other specific mocks to clear if their state needs to be reset per test
583
+ // Only clear mocks if they exist
584
+ if (client.from && typeof client.from.mockClear === 'function') {
585
+ client.from.mockClear();
586
+ }
587
+ if (client.auth && client.auth.getUser && typeof client.auth.getUser.mockClear === 'function') {
588
+ client.auth.getUser.mockClear();
589
+ }
590
+ if (client.auth && client.auth.getSession && typeof client.auth.getSession.mockClear === 'function') {
591
+ client.auth.getSession.mockClear();
592
+ }
593
+ if (client.auth && client.auth.signInWithPassword && typeof client.auth.signInWithPassword.mockClear === 'function') {
594
+ client.auth.signInWithPassword.mockClear();
595
+ }
596
+ if (client.auth && client.auth.signUp && typeof client.auth.signUp.mockClear === 'function') {
597
+ client.auth.signUp.mockClear();
598
+ }
599
+ if (client.auth && client.auth.signOut && typeof client.auth.signOut.mockClear === 'function') {
600
+ client.auth.signOut.mockClear();
601
+ }
602
+ if (client.auth && client.auth.resetPasswordForEmail && typeof client.auth.resetPasswordForEmail.mockClear === 'function') {
603
+ client.auth.resetPasswordForEmail.mockClear();
604
+ }
605
+ if (client.auth && client.auth.updateUser && typeof client.auth.updateUser.mockClear === 'function') {
606
+ client.auth.updateUser.mockClear();
607
+ }
608
+ if (client.auth && client.auth.refreshSession && typeof client.auth.refreshSession.mockClear === 'function') {
609
+ client.auth.refreshSession.mockClear();
610
+ }
611
+ if (client.auth && client.auth.onAuthStateChange && typeof client.auth.onAuthStateChange.mockClear === 'function') {
612
+ client.auth.onAuthStateChange.mockClear();
613
+ }
614
+ if (client.rpc && typeof client.rpc.mockClear === 'function') {
615
+ client.rpc.mockClear();
616
+ }
617
+ // Clear any stored callbacks
618
+ delete (client as any)._authCallback;
561
619
  }
562
620
 
563
621
  // ============================================================================
@@ -23,7 +23,7 @@
23
23
  * ## Features
24
24
  * - ✅ **Search** - Global search with column-specific filters
25
25
  * - ✅ **Pagination** - Configurable pagination with custom initial page size and page size options
26
- * - ✅ **Sorting** - Multi-column sorting with visual indicators
26
+ * - ✅ **Sorting** - Multi-column sorting with visual indicators (↕️ unsorted, ↑ ascending, ↓ descending)
27
27
  * - ✅ **Filtering** - Column-specific filtering with multiple input types
28
28
  * - ✅ **Export/Import** - CSV and JSON data export/import
29
29
  * - ✅ **Row Selection** - Single and multi-row selection for bulk operations
@@ -34,7 +34,6 @@
34
34
  * - ✅ **Grouping** - Data grouping with aggregation functions
35
35
  * - ✅ **Column Visibility** - Show/hide columns dynamically
36
36
  * - ✅ **Column Reordering** - Drag and drop column reordering
37
- * - ✅ **Auto Column Sizing** - Automatic column width adjustment based on content
38
37
  * - ✅ **Intelligent Virtual Scrolling** - Automatic performance optimization for large datasets
39
38
  * - ✅ **Responsive Design** - Mobile-friendly responsive layout
40
39
  * - ✅ **Accessibility** - WCAG 2.1 AA compliant with keyboard navigation
@@ -113,7 +112,6 @@
113
112
  * grouping: true,
114
113
  * columnVisibility: true,
115
114
  * columnReordering: true,
116
- * autoColumnSizing: true, // Enable automatic column width adjustment
117
115
  * }}
118
116
  * initialPageSize={25} // Set custom initial page size
119
117
  * columnOrder={['select', 'name', 'email', 'role', 'status']} // Control column order
@@ -108,14 +108,6 @@ vi.mock('../core/DataTableContext', () => ({
108
108
  }));
109
109
 
110
110
  // Mock individual components
111
- vi.mock('../components/DataTableHeader', () => ({
112
- DataTableHeader: ({ title, description }: any) => (
113
- <div data-testid="data-table-header">
114
- {title && <h2 data-testid="table-title">{title}</h2>}
115
- {description && <p data-testid="table-description">{description}</p>}
116
- </div>
117
- ),
118
- }));
119
111
 
120
112
  vi.mock('../components/DataTableToolbar', () => ({
121
113
  DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,
@@ -37,13 +37,25 @@ vi.mock('@tanstack/react-table', () => {
37
37
  {
38
38
  id: 'name',
39
39
  isPlaceholder: false,
40
- column: { columnDef: { header: 'Name' } },
40
+ column: {
41
+ columnDef: { header: 'Name' },
42
+ getCanSort: () => true,
43
+ getToggleSortingHandler: () => vi.fn(),
44
+ getIsSorted: () => false,
45
+ getIsVisible: () => true,
46
+ },
41
47
  getContext: () => ({}),
42
48
  },
43
49
  {
44
50
  id: 'type',
45
51
  isPlaceholder: false,
46
- column: { columnDef: { header: 'Type' } },
52
+ column: {
53
+ columnDef: { header: 'Type' },
54
+ getCanSort: () => true,
55
+ getToggleSortingHandler: () => vi.fn(),
56
+ getIsSorted: () => false,
57
+ getIsVisible: () => true,
58
+ },
47
59
  getContext: () => ({}),
48
60
  },
49
61
  ],
@@ -169,14 +181,6 @@ vi.mock('../core/DataTableContext', () => ({
169
181
  }));
170
182
 
171
183
  // Mock individual components
172
- vi.mock('../components/DataTableHeader', () => ({
173
- DataTableHeader: ({ title, description }: any) => (
174
- <div data-testid="data-table-header">
175
- {title && <h2 data-testid="table-title">{title}</h2>}
176
- {description && <p data-testid="table-description">{description}</p>}
177
- </div>
178
- ),
179
- }));
180
184
 
181
185
  vi.mock('../components/DataTableToolbar', () => ({
182
186
  DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,
@@ -290,8 +294,9 @@ describe('DataTable Hierarchical Functionality', () => {
290
294
  // Should render the table
291
295
  expect(screen.getByRole('table')).toBeInTheDocument();
292
296
 
293
- // Should render global expand/collapse all button
294
- expect(screen.getByRole('button', { name: 'Expand all' })).toBeInTheDocument();
297
+ // Should render sort buttons (current implementation behavior)
298
+ expect(screen.getByRole('button', { name: /sort by name/i })).toBeInTheDocument();
299
+ expect(screen.getByRole('button', { name: /sort by type/i })).toBeInTheDocument();
295
300
 
296
301
  // Should render individual expansion buttons for parent rows
297
302
  // The HTML shows the expansion button structure is present in parent rows
@@ -194,7 +194,6 @@ const ComplexDataProcessingComponent = () => {
194
194
  grouping: true,
195
195
  columnVisibility: true,
196
196
  columnReordering: true,
197
- autoColumnSizing: true,
198
197
  hierarchical: false,
199
198
  }}
200
199
  title="Complex Data Processing Test"
@@ -163,14 +163,6 @@ vi.mock('../core/DataTableContext', () => ({
163
163
  }));
164
164
 
165
165
  // Mock individual components
166
- vi.mock('../components/DataTableHeader', () => ({
167
- DataTableHeader: ({ title, description }: any) => (
168
- <div data-testid="data-table-header">
169
- {title && <h2 data-testid="table-title">{title}</h2>}
170
- {description && <p data-testid="table-description">{description}</p>}
171
- </div>
172
- ),
173
- }));
174
166
 
175
167
  vi.mock('../components/DataTableToolbar', () => ({
176
168
  DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,
@@ -322,8 +314,8 @@ describe('DataTable Integration Tests', () => {
322
314
  </MockRBACProvider>
323
315
  );
324
316
 
325
- expect(screen.getByTestId('table-title')).toHaveTextContent('Users Table');
326
- expect(screen.getByTestId('table-description')).toHaveTextContent('Manage user accounts');
317
+ expect(screen.getByText('Users Table')).toBeInTheDocument();
318
+ expect(screen.getByText('Manage user accounts')).toBeInTheDocument();
327
319
  });
328
320
 
329
321
  it('should render with actions', () => {
@@ -673,8 +665,8 @@ describe('DataTable Integration Tests', () => {
673
665
  );
674
666
 
675
667
  expect(screen.getByRole('table')).toBeInTheDocument();
676
- expect(screen.getByTestId('table-title')).toHaveTextContent('Comprehensive Test');
677
- expect(screen.getByTestId('table-description')).toHaveTextContent('Testing all features');
668
+ expect(screen.getByText('Comprehensive Test')).toBeInTheDocument();
669
+ expect(screen.getByText('Testing all features')).toBeInTheDocument();
678
670
  });
679
671
 
680
672
  it('should handle read-only mode correctly', () => {
@@ -141,14 +141,6 @@ vi.mock('../core/DataTableContext', () => ({
141
141
  }));
142
142
 
143
143
  // Mock individual components
144
- vi.mock('../components/DataTableHeader', () => ({
145
- DataTableHeader: ({ title, description }: any) => (
146
- <div data-testid="data-table-header">
147
- {title && <h2 data-testid="table-title">{title}</h2>}
148
- {description && <p data-testid="table-description">{description}</p>}
149
- </div>
150
- ),
151
- }));
152
144
 
153
145
  vi.mock('../components/DataTableToolbar', () => ({
154
146
  DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,
@@ -26,19 +26,37 @@ vi.mock('@tanstack/react-table', () => ({
26
26
  {
27
27
  id: 'name',
28
28
  isPlaceholder: false,
29
- column: { columnDef: { header: 'Name' } },
29
+ column: {
30
+ columnDef: { header: 'Name' },
31
+ getCanSort: () => true,
32
+ getToggleSortingHandler: () => vi.fn(),
33
+ getIsSorted: () => false,
34
+ getIsVisible: () => true,
35
+ },
30
36
  getContext: () => ({}),
31
37
  },
32
38
  {
33
39
  id: 'email',
34
40
  isPlaceholder: false,
35
- column: { columnDef: { header: 'Email' } },
41
+ column: {
42
+ columnDef: { header: 'Email' },
43
+ getCanSort: () => true,
44
+ getToggleSortingHandler: () => vi.fn(),
45
+ getIsSorted: () => false,
46
+ getIsVisible: () => true,
47
+ },
36
48
  getContext: () => ({}),
37
49
  },
38
50
  {
39
51
  id: 'role',
40
52
  isPlaceholder: false,
41
- column: { columnDef: { header: 'Role' } },
53
+ column: {
54
+ columnDef: { header: 'Role' },
55
+ getCanSort: () => true,
56
+ getToggleSortingHandler: () => vi.fn(),
57
+ getIsSorted: () => false,
58
+ getIsVisible: () => true,
59
+ },
42
60
  getContext: () => ({}),
43
61
  },
44
62
  ],
@@ -157,14 +175,6 @@ vi.mock('../core/DataTableContext', () => ({
157
175
  }));
158
176
 
159
177
  // Mock individual components
160
- vi.mock('../components/DataTableHeader', () => ({
161
- DataTableHeader: ({ title, description }: any) => (
162
- <div data-testid="data-table-header">
163
- {title && <h2 data-testid="table-title">{title}</h2>}
164
- {description && <p data-testid="table-description">{description}</p>}
165
- </div>
166
- ),
167
- }));
168
178
 
169
179
  vi.mock('../components/DataTableToolbar', () => ({
170
180
  DataTableToolbar: () => <div data-testid="data-table-toolbar">Toolbar</div>,