@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.
- package/dist/{DataTable-OKDYRW2S.js → DataTable-6FN7XDXA.js} +2 -2
- package/dist/{chunk-GBGYYMC6.js → chunk-QXGLU2O5.js} +26 -18
- package/dist/{chunk-GBGYYMC6.js.map → chunk-QXGLU2O5.js.map} +1 -1
- package/dist/{chunk-VPUCTHTY.js → chunk-R4CRQUJJ.js} +2 -2
- package/dist/components.js +2 -2
- package/dist/index.js +2 -2
- package/dist/utils.js +1 -1
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- 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/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventAppRoleData.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/GrantEventAppRoleParams.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/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.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 +1 -1
- 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/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/ProtectedRouteProps.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/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RoleManagementResult.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.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/SwitchProps.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/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeReturn.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 +2 -2
- package/package.json +1 -1
- package/src/components/DataTable/components/DataTableToolbar.tsx +1 -14
- package/src/components/DataTable/components/UnifiedTableBody.tsx +30 -5
- /package/dist/{DataTable-OKDYRW2S.js.map → DataTable-6FN7XDXA.js.map} +0 -0
- /package/dist/{chunk-VPUCTHTY.js.map → chunk-R4CRQUJJ.js.map} +0 -0
package/docs/api/modules.md
CHANGED
package/package.json
CHANGED
|
@@ -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)
|
|
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
|
-
|
|
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
|
-
|
|
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}`}
|
|
File without changes
|
|
File without changes
|