@jmruthers/pace-core 0.5.124 → 0.5.126

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 (116) hide show
  1. package/dist/{DataTable-OKDYRW2S.js → DataTable-6FN7XDXA.js} +2 -2
  2. package/dist/{chunk-GBGYYMC6.js → chunk-QXGLU2O5.js} +26 -18
  3. package/dist/{chunk-GBGYYMC6.js.map → chunk-QXGLU2O5.js.map} +1 -1
  4. package/dist/{chunk-VPUCTHTY.js → chunk-R4CRQUJJ.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/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/EventAppRoleData.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/GrantEventAppRoleParams.md +1 -1
  45. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  46. package/docs/api/interfaces/InputProps.md +1 -1
  47. package/docs/api/interfaces/LabelProps.md +1 -1
  48. package/docs/api/interfaces/LoginFormProps.md +1 -1
  49. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  50. package/docs/api/interfaces/NavigationContextType.md +1 -1
  51. package/docs/api/interfaces/NavigationGuardProps.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/NavigationProviderProps.md +1 -1
  55. package/docs/api/interfaces/Organisation.md +1 -1
  56. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  57. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  58. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  59. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  60. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  61. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  62. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  63. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  64. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  65. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  66. package/docs/api/interfaces/PaletteData.md +1 -1
  67. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  68. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  69. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  70. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  71. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  72. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  73. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  74. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  75. package/docs/api/interfaces/RBACConfig.md +1 -1
  76. package/docs/api/interfaces/RBACLogger.md +1 -1
  77. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  78. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  79. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  80. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  81. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  82. package/docs/api/interfaces/RouteConfig.md +1 -1
  83. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  84. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  85. package/docs/api/interfaces/StorageConfig.md +1 -1
  86. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  87. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  88. package/docs/api/interfaces/StorageListOptions.md +1 -1
  89. package/docs/api/interfaces/StorageListResult.md +1 -1
  90. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  91. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  92. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  93. package/docs/api/interfaces/StyleImport.md +1 -1
  94. package/docs/api/interfaces/SwitchProps.md +1 -1
  95. package/docs/api/interfaces/ToastActionElement.md +1 -1
  96. package/docs/api/interfaces/ToastProps.md +1 -1
  97. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  98. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  99. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  100. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  101. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  102. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  103. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  104. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  105. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  106. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  107. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  108. package/docs/api/interfaces/UserEventAccess.md +1 -1
  109. package/docs/api/interfaces/UserMenuProps.md +1 -1
  110. package/docs/api/interfaces/UserProfile.md +1 -1
  111. package/docs/api/modules.md +2 -2
  112. package/package.json +1 -1
  113. package/src/components/DataTable/components/DataTableToolbar.tsx +1 -14
  114. package/src/components/DataTable/components/UnifiedTableBody.tsx +30 -5
  115. /package/dist/{DataTable-OKDYRW2S.js.map → DataTable-6FN7XDXA.js.map} +0 -0
  116. /package/dist/{chunk-VPUCTHTY.js.map → chunk-R4CRQUJJ.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / RouteConfig
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / RouteConfig
2
2
 
3
3
  # Interface: RouteConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / SecureDataContextType
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / SecureDataContextType
2
2
 
3
3
  # Interface: SecureDataContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
2
2
 
3
3
  # Interface: SecureDataProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageConfig
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageConfig
2
2
 
3
3
  # Interface: StorageConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageFileInfo
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageFileInfo
2
2
 
3
3
  # Interface: StorageFileInfo
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageFileMetadata
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageFileMetadata
2
2
 
3
3
  # Interface: StorageFileMetadata
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageListOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageListOptions
2
2
 
3
3
  # Interface: StorageListOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageListResult
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageListResult
2
2
 
3
3
  # Interface: StorageListResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageUploadOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageUploadOptions
2
2
 
3
3
  # Interface: StorageUploadOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageUploadResult
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageUploadResult
2
2
 
3
3
  # Interface: StorageUploadResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StorageUrlOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StorageUrlOptions
2
2
 
3
3
  # Interface: StorageUrlOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / StyleImport
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / StyleImport
2
2
 
3
3
  # Interface: StyleImport
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / SwitchProps
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / SwitchProps
2
2
 
3
3
  # Interface: SwitchProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / ToastActionElement
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / ToastActionElement
2
2
 
3
3
  # Interface: ToastActionElement
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / ToastProps
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / ToastProps
2
2
 
3
3
  # Interface: ToastProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
2
2
 
3
3
  # Interface: UnifiedAuthContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
2
2
 
3
3
  # Interface: UnifiedAuthProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
2
2
 
3
3
  # Interface: UseInactivityTrackerOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
2
2
 
3
3
  # Interface: UseInactivityTrackerReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
2
2
 
3
3
  # Interface: UsePublicEventOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
2
2
 
3
3
  # Interface: UsePublicEventReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
2
2
 
3
3
  # Interface: UsePublicFileDisplayOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
2
2
 
3
3
  # Interface: UsePublicFileDisplayReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
2
2
 
3
3
  # Interface: UsePublicRouteParamsReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
2
2
 
3
3
  # Interface: UseResolvedScopeOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
2
2
 
3
3
  # Interface: UseResolvedScopeReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UserEventAccess
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UserEventAccess
2
2
 
3
3
  # Interface: UserEventAccess
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.124](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.5.126](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.124](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.126](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.124
3
+ # @jmruthers/pace-core - v0.5.126
4
4
 
5
5
  **`File`**
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmruthers/pace-core",
3
- "version": "0.5.124",
3
+ "version": "0.5.126",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -212,20 +212,7 @@ export function DataTableToolbar<TData extends DataRecord>({
212
212
  )}
213
213
 
214
214
  {/* Row Creation - ONLY if user has create permission */}
215
- {(() => {
216
- // Debug logging for creation button visibility
217
- if (import.meta.env.MODE === 'development') {
218
- const logger = console;
219
- logger.debug('[DataTableToolbar] Creation button check:', {
220
- 'features.creation': features.creation,
221
- 'permissions.canCreate.can': permissions.canCreate.can,
222
- 'onCreateRow provided': !!onCreateRow,
223
- 'will show button': features.creation && permissions.canCreate.can && onCreateRow
224
- });
225
- }
226
-
227
- return features.creation && permissions.canCreate.can && onCreateRow;
228
- })() && (
215
+ {features.creation && permissions.canCreate.can && onCreateRow && (
229
216
  <Button
230
217
  variant="outline"
231
218
  onClick={onCreateRow}
@@ -148,7 +148,13 @@ function SelectEditField<TData extends DataRecord>({
148
148
 
149
149
  // Monitor search input value via DOM events to detect when user types
150
150
  React.useEffect(() => {
151
- if (!isOpen || !isSearchable || !isCreatable) return;
151
+ if (!isOpen || !isSearchable || !isCreatable || !columnDef.onCreateNew) {
152
+ // Reset showCreateOption when conditions aren't met
153
+ if (!isOpen || !isCreatable || !columnDef.onCreateNew) {
154
+ setShowCreateOption(false);
155
+ }
156
+ return;
157
+ }
152
158
 
153
159
  // Function to find and attach listener to search input
154
160
  const findAndAttachSearchInput = (): (() => void) | null => {
@@ -206,7 +212,24 @@ function SelectEditField<TData extends DataRecord>({
206
212
  };
207
213
 
208
214
  const hasMatch = (columnDef.fieldOptions || []).some(checkMatch);
209
- setShowCreateOption(!hasMatch);
215
+ // Always show create option when there's a search term (user might want to create even if matches exist)
216
+ const shouldShow = isCreatable && !!columnDef.onCreateNew;
217
+
218
+ // Debug logging for creatable select
219
+ if (import.meta.env.MODE === 'development' && isCreatable) {
220
+ logger.debug('[SelectEditField] Creatable select check:', {
221
+ searchTerm: currentSearch,
222
+ searchLower,
223
+ hasMatch,
224
+ isCreatable,
225
+ hasOnCreateNew: !!columnDef.onCreateNew,
226
+ shouldShow,
227
+ fieldOptionsCount: columnDef.fieldOptions?.length || 0,
228
+ note: 'Create option shows when search term exists, regardless of matches'
229
+ });
230
+ }
231
+
232
+ setShowCreateOption(shouldShow);
210
233
  } else {
211
234
  setShowCreateOption(false);
212
235
  }
@@ -238,7 +261,9 @@ function SelectEditField<TData extends DataRecord>({
238
261
  };
239
262
 
240
263
  const hasMatch = (columnDef.fieldOptions || []).some(checkMatch);
241
- setShowCreateOption(!hasMatch);
264
+ // Always show create option when there's a search term (user might want to create even if matches exist)
265
+ const shouldShow = isCreatable && !!columnDef.onCreateNew;
266
+ setShowCreateOption(shouldShow);
242
267
  } else {
243
268
  setShowCreateOption(false);
244
269
  }
@@ -268,7 +293,7 @@ function SelectEditField<TData extends DataRecord>({
268
293
  }
269
294
 
270
295
  return cleanup;
271
- }, [isOpen, isSearchable, isCreatable, columnDef.fieldOptions]);
296
+ }, [isOpen, isSearchable, isCreatable, columnDef.fieldOptions, columnDef.onCreateNew]);
272
297
 
273
298
  const handleCreateNew = React.useCallback(async () => {
274
299
  if (!isCreatable || !columnDef.onCreateNew || !searchTerm.trim()) return;
@@ -344,7 +369,7 @@ function SelectEditField<TData extends DataRecord>({
344
369
 
345
370
  return null;
346
371
  })}
347
- {showCreateOption && isCreatable && searchTerm.trim() && (
372
+ {showCreateOption && isCreatable && searchTerm.trim() && columnDef.onCreateNew && (
348
373
  <SelectItem
349
374
  key="__create_new__"
350
375
  value={`__create_new__${searchTerm}`}