@nubitio/react-admin 0.5.11 → 0.5.14

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/README.md CHANGED
@@ -19,6 +19,20 @@ npm install @nubitio/react-admin
19
19
  "react-router-dom": "^6"
20
20
  ```
21
21
 
22
+ Icons are [Phosphor](https://phosphoricons.com) CSS classes (`ph ph-*`) used
23
+ throughout the shell, grids and forms — install and import the webfont once:
24
+
25
+ ```bash
26
+ npm install @phosphor-icons/web
27
+ ```
28
+
29
+ ```ts
30
+ // main.tsx
31
+ import '@phosphor-icons/web/regular';
32
+ ```
33
+
34
+ Without it, menu and toolbar icons render as empty squares.
35
+
22
36
  ## Quick start
23
37
 
24
38
  ```tsx
package/dist/index.cjs CHANGED
@@ -250,6 +250,12 @@ Object.defineProperty(exports, "IconButton", {
250
250
  return _nubitio_ui.IconButton;
251
251
  }
252
252
  });
253
+ Object.defineProperty(exports, "LoginPage", {
254
+ enumerable: true,
255
+ get: function() {
256
+ return _nubitio_admin.LoginPage;
257
+ }
258
+ });
253
259
  Object.defineProperty(exports, "MercureProvider", {
254
260
  enumerable: true,
255
261
  get: function() {
@@ -286,6 +292,12 @@ Object.defineProperty(exports, "SelectField", {
286
292
  return _nubitio_ui.SelectField;
287
293
  }
288
294
  });
295
+ Object.defineProperty(exports, "SessionProvider", {
296
+ enumerable: true,
297
+ get: function() {
298
+ return _nubitio_admin.SessionProvider;
299
+ }
300
+ });
289
301
  Object.defineProperty(exports, "SettingsPanel", {
290
302
  enumerable: true,
291
303
  get: function() {
@@ -358,6 +370,12 @@ Object.defineProperty(exports, "TimelineItem", {
358
370
  return _nubitio_ui.TimelineItem;
359
371
  }
360
372
  });
373
+ Object.defineProperty(exports, "ToastHost", {
374
+ enumerable: true,
375
+ get: function() {
376
+ return _nubitio_admin.ToastHost;
377
+ }
378
+ });
361
379
  Object.defineProperty(exports, "Toggle", {
362
380
  enumerable: true,
363
381
  get: function() {
@@ -382,6 +400,12 @@ Object.defineProperty(exports, "buildFields", {
382
400
  return _nubitio_crud.buildFields;
383
401
  }
384
402
  });
403
+ Object.defineProperty(exports, "buildMercureCollectionTopic", {
404
+ enumerable: true,
405
+ get: function() {
406
+ return _nubitio_core.buildMercureCollectionTopic;
407
+ }
408
+ });
385
409
  Object.defineProperty(exports, "checkboxField", {
386
410
  enumerable: true,
387
411
  get: function() {
@@ -424,6 +448,12 @@ Object.defineProperty(exports, "createCrudEvents", {
424
448
  return _nubitio_crud.createCrudEvents;
425
449
  }
426
450
  });
451
+ Object.defineProperty(exports, "createRestResourceStore", {
452
+ enumerable: true,
453
+ get: function() {
454
+ return _nubitio_crud.createRestResourceStore;
455
+ }
456
+ });
427
457
  Object.defineProperty(exports, "crudRoute", {
428
458
  enumerable: true,
429
459
  get: function() {
@@ -514,6 +544,12 @@ Object.defineProperty(exports, "getCoreTimezone", {
514
544
  return _nubitio_core.getCoreTimezone;
515
545
  }
516
546
  });
547
+ Object.defineProperty(exports, "getMercureTopicOrigin", {
548
+ enumerable: true,
549
+ get: function() {
550
+ return _nubitio_core.getMercureTopicOrigin;
551
+ }
552
+ });
517
553
  Object.defineProperty(exports, "identityField", {
518
554
  enumerable: true,
519
555
  get: function() {
@@ -568,6 +604,12 @@ Object.defineProperty(exports, "passwordField", {
568
604
  return _nubitio_crud.passwordField;
569
605
  }
570
606
  });
607
+ Object.defineProperty(exports, "resolveMercureTopicOrigin", {
608
+ enumerable: true,
609
+ get: function() {
610
+ return _nubitio_core.resolveMercureTopicOrigin;
611
+ }
612
+ });
571
613
  Object.defineProperty(exports, "resolveRangeTag", {
572
614
  enumerable: true,
573
615
  get: function() {
@@ -604,6 +646,12 @@ Object.defineProperty(exports, "useAccentColor", {
604
646
  return _nubitio_ui.useAccentColor;
605
647
  }
606
648
  });
649
+ Object.defineProperty(exports, "useAppRuntime", {
650
+ enumerable: true,
651
+ get: function() {
652
+ return _nubitio_admin.useAppRuntime;
653
+ }
654
+ });
607
655
  Object.defineProperty(exports, "useColumnPreset", {
608
656
  enumerable: true,
609
657
  get: function() {
@@ -676,6 +724,12 @@ Object.defineProperty(exports, "useScreenSizeClass", {
676
724
  return _nubitio_admin.useScreenSizeClass;
677
725
  }
678
726
  });
727
+ Object.defineProperty(exports, "useSession", {
728
+ enumerable: true,
729
+ get: function() {
730
+ return _nubitio_admin.useSession;
731
+ }
732
+ });
679
733
  Object.defineProperty(exports, "useSmartCrudRoles", {
680
734
  enumerable: true,
681
735
  get: function() {
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { CoreConfig, CoreConfigProvider, CoreConfigProviderProps, CoreHttpClient, CoreHttpClientConfig, CoreProvider, CoreProviderProps, CoreTranslationKeys, DataRecord, DateUtils, EventSubscription, MercureProvider, MercureProviderProps, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, initCoreI18n, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
- import { AuditEntry, AuditTrailConfig, AuditTrailPanel, AuditTrailPanelProps, BackendAdapter, BulkAction, ColumnPreset, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, EnumOption, FORM_EVENTS, Field, FieldBuilder, FieldDef, FieldInput, FieldOverride, FormHandle, FormLayout, FormOnChangeFn, FormSection, FormTab, FormView, FormatterFn, GridCellContext, GridHandle, GridOnChangeFn, HydraAdapter, LoadOption, OnChangeFn, ResourceConfig, ResourceFormDetail, ResourceGridDetail, ResourcePermissions, ResourceRouting, ResourceRowActions, ResourceSchemaResolver, ResourceStore, ResourceStoreFactory, ResourceStoreProvider, ResourceStoreProviderProps, ResourceToolbar, ResourceToolbarAction, ResourceToolbarActionVariant, ResourceToolbarContext, ResourceToolbarItems, RestAdapter, SmartCrudFieldContract, SmartCrudFieldOperation, SmartCrudFieldPatch, SmartCrudHydraFieldContract, SmartCrudHydraFieldDirective, SmartCrudManualField, SmartCrudManualFieldContract, SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
1
+ import { CoreConfig, CoreConfigProvider, CoreConfigProviderProps, CoreHttpClient, CoreHttpClientConfig, CoreProvider, CoreProviderProps, CoreTranslationKeys, DataRecord, DateUtils, EventSubscription, MercureProvider, MercureProviderProps, buildMercureCollectionTopic, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, initCoreI18n, resolveMercureTopicOrigin, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
+ import { AuditEntry, AuditTrailConfig, AuditTrailPanel, AuditTrailPanelProps, BackendAdapter, BulkAction, ColumnPreset, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, EnumOption, FORM_EVENTS, Field, FieldBuilder, FieldDef, FieldInput, FieldOverride, FormHandle, FormLayout, FormOnChangeFn, FormSection, FormTab, FormView, FormatterFn, GridCellContext, GridHandle, GridOnChangeFn, HydraAdapter, LoadOption, OnChangeFn, ResourceConfig, ResourceFormDetail, ResourceGridDetail, ResourcePermissions, ResourceRouting, ResourceRowActions, ResourceSchemaResolver, ResourceStore, ResourceStoreFactory, ResourceStoreProvider, ResourceStoreProviderProps, ResourceToolbar, ResourceToolbarAction, ResourceToolbarActionVariant, ResourceToolbarContext, ResourceToolbarItems, RestAdapter, RestQueryDialect, SmartCrudFieldContract, SmartCrudFieldOperation, SmartCrudFieldPatch, SmartCrudHydraFieldContract, SmartCrudHydraFieldDirective, SmartCrudManualField, SmartCrudManualFieldContract, SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
3
3
  import { ApiDoc, HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, OpenApiDoc, RemoteDataSourceOptions, RemoteFilterDescriptor, RemoteLoadOptions, RemoteSortDescriptor, SchemaProvider, UseSchemaContextResult, mapHydraSchemaToFields, parseHydraDoc, parseOpenApiDoc, resolveRangeTag, useHydraMetadata, useResourceSchema, useSchemaContext } from "@nubitio/hydra";
4
4
  import { ACCENT_PRESETS, AccentPreset, AppDialog, AppDialogProps, AppDropdown, AppDropdownOption, AppDropdownProps, AppDropdownVariant, AppToolbar, AppToolbarProps, Avatar, AvatarProps, Badge, BadgeProps, Button, ButtonProps, Card, CardProps, Chip, ChipProps, CollapsibleSection, CollapsibleSectionProps, ConfirmDialog, ConfirmDialogProps, ContextMenu, ContextMenuItem, ContextMenuProps, DatePicker, DatePickerProps, DateRangePicker, DateRangePickerProps, Density, DensityProvider, Drawer, DrawerProps, DrawerSide, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, EmptyStateProps, FormField, FormFieldProps, IconButton, IconButtonProps, Popover, PopoverProps, SelectField, SelectFieldProps, SettingsPanel, SettingsPanelProps, Skeleton, SkeletonProps, StatCard, StatCardProps, TextAreaField, TextAreaFieldProps, TextField, TextFieldProps, Theme, ThemeContext, ThemeContextValue, ThemeMode, ThemeProvider, ThemeProviderProps, ThemeSwitcher, ThemeSwitcherProps, Timeline, TimelineItem, TimelineItemProps, TimelineItemStatus, TimelineItemTone, TimelineOrientation, TimelineProps, TimelineVariant, Toggle, ToggleProps, UiStrings, UiStringsProvider, UiStringsProviderProps, useAccentColor, useDensity, useTheme, useUiStrings } from "@nubitio/ui";
5
- import { AdminHeader, AdminHeaderAction, AdminHeaderProps, AdminMenuItem, AdminMenuSubItem, AdminShell, AdminShellProps, AdminSidebarMenu, AdminSidebarMenuProps, AdminSidebarMenuSelectEvent, useScreenSize, useScreenSizeClass } from "@nubitio/admin";
6
- export { ACCENT_PRESETS, type AccentPreset, AdminHeader, type AdminHeaderAction, type AdminHeaderProps, type AdminMenuItem, type AdminMenuSubItem, AdminShell, type AdminShellProps, AdminSidebarMenu, type AdminSidebarMenuProps, type AdminSidebarMenuSelectEvent, type ApiDoc, AppDialog, type AppDialogProps, AppDropdown, type AppDropdownOption, type AppDropdownProps, type AppDropdownVariant, AppToolbar, type AppToolbarProps, type AuditEntry, type AuditTrailConfig, AuditTrailPanel, type AuditTrailPanelProps, Avatar, type AvatarProps, type BackendAdapter, Badge, type BadgeProps, type BulkAction, Button, type ButtonProps, Card, type CardProps, Chip, type ChipProps, CollapsibleSection, type CollapsibleSectionProps, type ColumnPreset, ColumnPresetSelector, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type CoreConfig, CoreConfigProvider, type CoreConfigProviderProps, type CoreHttpClient, type CoreHttpClientConfig, CoreProvider, type CoreProviderProps, type CoreTranslationKeys, CrudPage, DATA_GRID_EVENTS, DataGridView, type DataRecord, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateUtils, type Density, DensityProvider, DialogView, Drawer, type DrawerProps, type DrawerSide, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, type EmptyStateProps, type EnumOption, type EventSubscription, FORM_EVENTS, type Field, FieldBuilder, type FieldDef, type FieldInput, type FieldOverride, FormField, type FormFieldProps, type FormHandle, type FormLayout, type FormOnChangeFn, type FormSection, type FormTab, FormView, type FormatterFn, type GridCellContext, type GridHandle, type GridOnChangeFn, HydraAdapter, type HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, type IconButtonProps, type LoadOption, MercureProvider, type MercureProviderProps, type OnChangeFn, type OpenApiDoc, Popover, type PopoverProps, type RemoteDataSourceOptions, type RemoteFilterDescriptor, type RemoteLoadOptions, type RemoteSortDescriptor, type ResourceConfig, type ResourceFormDetail, type ResourceGridDetail, type ResourcePermissions, type ResourceRouting, type ResourceRowActions, type ResourceSchemaResolver, type ResourceStore, type ResourceStoreFactory, ResourceStoreProvider, type ResourceStoreProviderProps, type ResourceToolbar, type ResourceToolbarAction, type ResourceToolbarActionVariant, type ResourceToolbarContext, type ResourceToolbarItems, RestAdapter, SchemaProvider, SelectField, type SelectFieldProps, SettingsPanel, type SettingsPanelProps, Skeleton, type SkeletonProps, type SmartCrudFieldContract, type SmartCrudFieldOperation, type SmartCrudFieldPatch, type SmartCrudHydraFieldContract, type SmartCrudHydraFieldDirective, type SmartCrudManualField, type SmartCrudManualFieldContract, type SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, StatCard, type StatCardProps, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldProps, type Theme, ThemeContext, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeSwitcher, type ThemeSwitcherProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemStatus, type TimelineItemTone, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toggle, type ToggleProps, ToolbarSelect, type UiStrings, UiStringsProvider, type UiStringsProviderProps, type UseSchemaContextResult, buildFields, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
5
+ import { AdminHeader, AdminHeaderAction, AdminHeaderProps, AdminMenuItem, AdminMenuSubItem, AdminShell, AdminShellProps, AdminSidebarMenu, AdminSidebarMenuProps, AdminSidebarMenuSelectEvent, LoginPage, LoginPageProps, NotificationType, SessionContextValue, SessionProfile, SessionProvider, SessionProviderConfig, SessionState, ToastHost, ToastHostProps, ToastItem, useAppRuntime, useScreenSize, useScreenSizeClass, useSession } from "@nubitio/admin";
6
+ export { ACCENT_PRESETS, type AccentPreset, AdminHeader, type AdminHeaderAction, type AdminHeaderProps, type AdminMenuItem, type AdminMenuSubItem, AdminShell, type AdminShellProps, AdminSidebarMenu, type AdminSidebarMenuProps, type AdminSidebarMenuSelectEvent, type ApiDoc, AppDialog, type AppDialogProps, AppDropdown, type AppDropdownOption, type AppDropdownProps, type AppDropdownVariant, AppToolbar, type AppToolbarProps, type AuditEntry, type AuditTrailConfig, AuditTrailPanel, type AuditTrailPanelProps, Avatar, type AvatarProps, type BackendAdapter, Badge, type BadgeProps, type BulkAction, Button, type ButtonProps, Card, type CardProps, Chip, type ChipProps, CollapsibleSection, type CollapsibleSectionProps, type ColumnPreset, ColumnPresetSelector, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type CoreConfig, CoreConfigProvider, type CoreConfigProviderProps, type CoreHttpClient, type CoreHttpClientConfig, CoreProvider, type CoreProviderProps, type CoreTranslationKeys, CrudPage, DATA_GRID_EVENTS, DataGridView, type DataRecord, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateUtils, type Density, DensityProvider, DialogView, Drawer, type DrawerProps, type DrawerSide, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, type EmptyStateProps, type EnumOption, type EventSubscription, FORM_EVENTS, type Field, FieldBuilder, type FieldDef, type FieldInput, type FieldOverride, FormField, type FormFieldProps, type FormHandle, type FormLayout, type FormOnChangeFn, type FormSection, type FormTab, FormView, type FormatterFn, type GridCellContext, type GridHandle, type GridOnChangeFn, HydraAdapter, type HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, type IconButtonProps, type LoadOption, LoginPage, type LoginPageProps, MercureProvider, type MercureProviderProps, type NotificationType, type OnChangeFn, type OpenApiDoc, Popover, type PopoverProps, type RemoteDataSourceOptions, type RemoteFilterDescriptor, type RemoteLoadOptions, type RemoteSortDescriptor, type ResourceConfig, type ResourceFormDetail, type ResourceGridDetail, type ResourcePermissions, type ResourceRouting, type ResourceRowActions, type ResourceSchemaResolver, type ResourceStore, type ResourceStoreFactory, ResourceStoreProvider, type ResourceStoreProviderProps, type ResourceToolbar, type ResourceToolbarAction, type ResourceToolbarActionVariant, type ResourceToolbarContext, type ResourceToolbarItems, RestAdapter, type RestQueryDialect, SchemaProvider, SelectField, type SelectFieldProps, type SessionContextValue, type SessionProfile, SessionProvider, type SessionProviderConfig, type SessionState, SettingsPanel, type SettingsPanelProps, Skeleton, type SkeletonProps, type SmartCrudFieldContract, type SmartCrudFieldOperation, type SmartCrudFieldPatch, type SmartCrudHydraFieldContract, type SmartCrudHydraFieldDirective, type SmartCrudManualField, type SmartCrudManualFieldContract, type SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, StatCard, type StatCardProps, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldProps, type Theme, ThemeContext, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeSwitcher, type ThemeSwitcherProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemStatus, type TimelineItemTone, type TimelineOrientation, type TimelineProps, type TimelineVariant, ToastHost, type ToastHostProps, type ToastItem, Toggle, type ToggleProps, ToolbarSelect, type UiStrings, UiStringsProvider, type UiStringsProviderProps, type UseSchemaContextResult, buildFields, buildMercureCollectionTopic, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveMercureTopicOrigin, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useAppRuntime, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSession, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { CoreConfig, CoreConfigProvider, CoreConfigProviderProps, CoreHttpClient, CoreHttpClientConfig, CoreProvider, CoreProviderProps, CoreTranslationKeys, DataRecord, DateUtils, EventSubscription, MercureProvider, MercureProviderProps, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, initCoreI18n, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
- import { AuditEntry, AuditTrailConfig, AuditTrailPanel, AuditTrailPanelProps, BackendAdapter, BulkAction, ColumnPreset, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, EnumOption, FORM_EVENTS, Field, FieldBuilder, FieldDef, FieldInput, FieldOverride, FormHandle, FormLayout, FormOnChangeFn, FormSection, FormTab, FormView, FormatterFn, GridCellContext, GridHandle, GridOnChangeFn, HydraAdapter, LoadOption, OnChangeFn, ResourceConfig, ResourceFormDetail, ResourceGridDetail, ResourcePermissions, ResourceRouting, ResourceRowActions, ResourceSchemaResolver, ResourceStore, ResourceStoreFactory, ResourceStoreProvider, ResourceStoreProviderProps, ResourceToolbar, ResourceToolbarAction, ResourceToolbarActionVariant, ResourceToolbarContext, ResourceToolbarItems, RestAdapter, SmartCrudFieldContract, SmartCrudFieldOperation, SmartCrudFieldPatch, SmartCrudHydraFieldContract, SmartCrudHydraFieldDirective, SmartCrudManualField, SmartCrudManualFieldContract, SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
1
+ import { CoreConfig, CoreConfigProvider, CoreConfigProviderProps, CoreHttpClient, CoreHttpClientConfig, CoreProvider, CoreProviderProps, CoreTranslationKeys, DataRecord, DateUtils, EventSubscription, MercureProvider, MercureProviderProps, buildMercureCollectionTopic, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, initCoreI18n, resolveMercureTopicOrigin, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
+ import { AuditEntry, AuditTrailConfig, AuditTrailPanel, AuditTrailPanelProps, BackendAdapter, BulkAction, ColumnPreset, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, EnumOption, FORM_EVENTS, Field, FieldBuilder, FieldDef, FieldInput, FieldOverride, FormHandle, FormLayout, FormOnChangeFn, FormSection, FormTab, FormView, FormatterFn, GridCellContext, GridHandle, GridOnChangeFn, HydraAdapter, LoadOption, OnChangeFn, ResourceConfig, ResourceFormDetail, ResourceGridDetail, ResourcePermissions, ResourceRouting, ResourceRowActions, ResourceSchemaResolver, ResourceStore, ResourceStoreFactory, ResourceStoreProvider, ResourceStoreProviderProps, ResourceToolbar, ResourceToolbarAction, ResourceToolbarActionVariant, ResourceToolbarContext, ResourceToolbarItems, RestAdapter, RestQueryDialect, SmartCrudFieldContract, SmartCrudFieldOperation, SmartCrudFieldPatch, SmartCrudHydraFieldContract, SmartCrudHydraFieldDirective, SmartCrudManualField, SmartCrudManualFieldContract, SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
3
3
  import { ApiDoc, HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, OpenApiDoc, RemoteDataSourceOptions, RemoteFilterDescriptor, RemoteLoadOptions, RemoteSortDescriptor, SchemaProvider, UseSchemaContextResult, mapHydraSchemaToFields, parseHydraDoc, parseOpenApiDoc, resolveRangeTag, useHydraMetadata, useResourceSchema, useSchemaContext } from "@nubitio/hydra";
4
4
  import { ACCENT_PRESETS, AccentPreset, AppDialog, AppDialogProps, AppDropdown, AppDropdownOption, AppDropdownProps, AppDropdownVariant, AppToolbar, AppToolbarProps, Avatar, AvatarProps, Badge, BadgeProps, Button, ButtonProps, Card, CardProps, Chip, ChipProps, CollapsibleSection, CollapsibleSectionProps, ConfirmDialog, ConfirmDialogProps, ContextMenu, ContextMenuItem, ContextMenuProps, DatePicker, DatePickerProps, DateRangePicker, DateRangePickerProps, Density, DensityProvider, Drawer, DrawerProps, DrawerSide, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, EmptyStateProps, FormField, FormFieldProps, IconButton, IconButtonProps, Popover, PopoverProps, SelectField, SelectFieldProps, SettingsPanel, SettingsPanelProps, Skeleton, SkeletonProps, StatCard, StatCardProps, TextAreaField, TextAreaFieldProps, TextField, TextFieldProps, Theme, ThemeContext, ThemeContextValue, ThemeMode, ThemeProvider, ThemeProviderProps, ThemeSwitcher, ThemeSwitcherProps, Timeline, TimelineItem, TimelineItemProps, TimelineItemStatus, TimelineItemTone, TimelineOrientation, TimelineProps, TimelineVariant, Toggle, ToggleProps, UiStrings, UiStringsProvider, UiStringsProviderProps, useAccentColor, useDensity, useTheme, useUiStrings } from "@nubitio/ui";
5
- import { AdminHeader, AdminHeaderAction, AdminHeaderProps, AdminMenuItem, AdminMenuSubItem, AdminShell, AdminShellProps, AdminSidebarMenu, AdminSidebarMenuProps, AdminSidebarMenuSelectEvent, useScreenSize, useScreenSizeClass } from "@nubitio/admin";
6
- export { ACCENT_PRESETS, type AccentPreset, AdminHeader, type AdminHeaderAction, type AdminHeaderProps, type AdminMenuItem, type AdminMenuSubItem, AdminShell, type AdminShellProps, AdminSidebarMenu, type AdminSidebarMenuProps, type AdminSidebarMenuSelectEvent, type ApiDoc, AppDialog, type AppDialogProps, AppDropdown, type AppDropdownOption, type AppDropdownProps, type AppDropdownVariant, AppToolbar, type AppToolbarProps, type AuditEntry, type AuditTrailConfig, AuditTrailPanel, type AuditTrailPanelProps, Avatar, type AvatarProps, type BackendAdapter, Badge, type BadgeProps, type BulkAction, Button, type ButtonProps, Card, type CardProps, Chip, type ChipProps, CollapsibleSection, type CollapsibleSectionProps, type ColumnPreset, ColumnPresetSelector, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type CoreConfig, CoreConfigProvider, type CoreConfigProviderProps, type CoreHttpClient, type CoreHttpClientConfig, CoreProvider, type CoreProviderProps, type CoreTranslationKeys, CrudPage, DATA_GRID_EVENTS, DataGridView, type DataRecord, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateUtils, type Density, DensityProvider, DialogView, Drawer, type DrawerProps, type DrawerSide, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, type EmptyStateProps, type EnumOption, type EventSubscription, FORM_EVENTS, type Field, FieldBuilder, type FieldDef, type FieldInput, type FieldOverride, FormField, type FormFieldProps, type FormHandle, type FormLayout, type FormOnChangeFn, type FormSection, type FormTab, FormView, type FormatterFn, type GridCellContext, type GridHandle, type GridOnChangeFn, HydraAdapter, type HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, type IconButtonProps, type LoadOption, MercureProvider, type MercureProviderProps, type OnChangeFn, type OpenApiDoc, Popover, type PopoverProps, type RemoteDataSourceOptions, type RemoteFilterDescriptor, type RemoteLoadOptions, type RemoteSortDescriptor, type ResourceConfig, type ResourceFormDetail, type ResourceGridDetail, type ResourcePermissions, type ResourceRouting, type ResourceRowActions, type ResourceSchemaResolver, type ResourceStore, type ResourceStoreFactory, ResourceStoreProvider, type ResourceStoreProviderProps, type ResourceToolbar, type ResourceToolbarAction, type ResourceToolbarActionVariant, type ResourceToolbarContext, type ResourceToolbarItems, RestAdapter, SchemaProvider, SelectField, type SelectFieldProps, SettingsPanel, type SettingsPanelProps, Skeleton, type SkeletonProps, type SmartCrudFieldContract, type SmartCrudFieldOperation, type SmartCrudFieldPatch, type SmartCrudHydraFieldContract, type SmartCrudHydraFieldDirective, type SmartCrudManualField, type SmartCrudManualFieldContract, type SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, StatCard, type StatCardProps, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldProps, type Theme, ThemeContext, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeSwitcher, type ThemeSwitcherProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemStatus, type TimelineItemTone, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toggle, type ToggleProps, ToolbarSelect, type UiStrings, UiStringsProvider, type UiStringsProviderProps, type UseSchemaContextResult, buildFields, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
5
+ import { AdminHeader, AdminHeaderAction, AdminHeaderProps, AdminMenuItem, AdminMenuSubItem, AdminShell, AdminShellProps, AdminSidebarMenu, AdminSidebarMenuProps, AdminSidebarMenuSelectEvent, LoginPage, LoginPageProps, NotificationType, SessionContextValue, SessionProfile, SessionProvider, SessionProviderConfig, SessionState, ToastHost, ToastHostProps, ToastItem, useAppRuntime, useScreenSize, useScreenSizeClass, useSession } from "@nubitio/admin";
6
+ export { ACCENT_PRESETS, type AccentPreset, AdminHeader, type AdminHeaderAction, type AdminHeaderProps, type AdminMenuItem, type AdminMenuSubItem, AdminShell, type AdminShellProps, AdminSidebarMenu, type AdminSidebarMenuProps, type AdminSidebarMenuSelectEvent, type ApiDoc, AppDialog, type AppDialogProps, AppDropdown, type AppDropdownOption, type AppDropdownProps, type AppDropdownVariant, AppToolbar, type AppToolbarProps, type AuditEntry, type AuditTrailConfig, AuditTrailPanel, type AuditTrailPanelProps, Avatar, type AvatarProps, type BackendAdapter, Badge, type BadgeProps, type BulkAction, Button, type ButtonProps, Card, type CardProps, Chip, type ChipProps, CollapsibleSection, type CollapsibleSectionProps, type ColumnPreset, ColumnPresetSelector, ConfirmDialog, type ConfirmDialogProps, ContextMenu, type ContextMenuItem, type ContextMenuProps, type CoreConfig, CoreConfigProvider, type CoreConfigProviderProps, type CoreHttpClient, type CoreHttpClientConfig, CoreProvider, type CoreProviderProps, type CoreTranslationKeys, CrudPage, DATA_GRID_EVENTS, DataGridView, type DataRecord, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, DateUtils, type Density, DensityProvider, DialogView, Drawer, type DrawerProps, type DrawerSide, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, type EmptyStateProps, type EnumOption, type EventSubscription, FORM_EVENTS, type Field, FieldBuilder, type FieldDef, type FieldInput, type FieldOverride, FormField, type FormFieldProps, type FormHandle, type FormLayout, type FormOnChangeFn, type FormSection, type FormTab, FormView, type FormatterFn, type GridCellContext, type GridHandle, type GridOnChangeFn, HydraAdapter, type HydraApiDoc, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, type IconButtonProps, type LoadOption, LoginPage, type LoginPageProps, MercureProvider, type MercureProviderProps, type NotificationType, type OnChangeFn, type OpenApiDoc, Popover, type PopoverProps, type RemoteDataSourceOptions, type RemoteFilterDescriptor, type RemoteLoadOptions, type RemoteSortDescriptor, type ResourceConfig, type ResourceFormDetail, type ResourceGridDetail, type ResourcePermissions, type ResourceRouting, type ResourceRowActions, type ResourceSchemaResolver, type ResourceStore, type ResourceStoreFactory, ResourceStoreProvider, type ResourceStoreProviderProps, type ResourceToolbar, type ResourceToolbarAction, type ResourceToolbarActionVariant, type ResourceToolbarContext, type ResourceToolbarItems, RestAdapter, type RestQueryDialect, SchemaProvider, SelectField, type SelectFieldProps, type SessionContextValue, type SessionProfile, SessionProvider, type SessionProviderConfig, type SessionState, SettingsPanel, type SettingsPanelProps, Skeleton, type SkeletonProps, type SmartCrudFieldContract, type SmartCrudFieldOperation, type SmartCrudFieldPatch, type SmartCrudHydraFieldContract, type SmartCrudHydraFieldDirective, type SmartCrudManualField, type SmartCrudManualFieldContract, type SmartCrudOperation, SmartCrudPage, SmartCrudRolesProvider, StatCard, type StatCardProps, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldProps, type Theme, ThemeContext, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeSwitcher, type ThemeSwitcherProps, Timeline, TimelineItem, type TimelineItemProps, type TimelineItemStatus, type TimelineItemTone, type TimelineOrientation, type TimelineProps, type TimelineVariant, ToastHost, type ToastHostProps, type ToastItem, Toggle, type ToggleProps, ToolbarSelect, type UiStrings, UiStringsProvider, type UiStringsProviderProps, type UseSchemaContextResult, buildFields, buildMercureCollectionTopic, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveMercureTopicOrigin, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useAppRuntime, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSession, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { CoreConfigProvider, CoreProvider, DateUtils, MercureProvider, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, initCoreI18n, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
- import { AuditTrailPanel, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, FORM_EVENTS, FieldBuilder, FormView, HydraAdapter, ResourceStoreProvider, RestAdapter, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
1
+ import { CoreConfigProvider, CoreProvider, DateUtils, MercureProvider, buildMercureCollectionTopic, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, dispatch, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, initCoreI18n, resolveMercureTopicOrigin, useCoreConfig, useCoreHttpClient, useEvents, useMercureHub, useMercureSubscription } from "@nubitio/core";
2
+ import { AuditTrailPanel, ColumnPresetSelector, CrudPage, DATA_GRID_EVENTS, DataGridView, DialogView, DrawerView, FORM_EVENTS, FieldBuilder, FormView, HydraAdapter, ResourceStoreProvider, RestAdapter, SmartCrudPage, SmartCrudRolesProvider, ToolbarSelect, buildFields, checkboxField, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, entityField, enumField, fileField, identityField, imageField, noneField, numberField, passwordField, selectField, switchField, textField, textareaField, useColumnPreset, useSmartCrudRoles, validateFieldContract } from "@nubitio/crud";
3
3
  import { HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, SchemaProvider, mapHydraSchemaToFields, parseHydraDoc, parseOpenApiDoc, resolveRangeTag, useHydraMetadata, useResourceSchema, useSchemaContext } from "@nubitio/hydra";
4
4
  import { ACCENT_PRESETS, AppDialog, AppDropdown, AppToolbar, Avatar, Badge, Button, Card, Chip, CollapsibleSection, ConfirmDialog, ContextMenu, DatePicker, DateRangePicker, DensityProvider, Drawer, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, FormField, IconButton, Popover, SelectField, SettingsPanel, Skeleton, StatCard, TextAreaField, TextField, ThemeContext, ThemeProvider, ThemeSwitcher, Timeline, TimelineItem, Toggle, UiStringsProvider, useAccentColor, useDensity, useTheme, useUiStrings } from "@nubitio/ui";
5
- import { AdminHeader, AdminShell, AdminSidebarMenu, useScreenSize, useScreenSizeClass } from "@nubitio/admin";
6
- export { ACCENT_PRESETS, AdminHeader, AdminShell, AdminSidebarMenu, AppDialog, AppDropdown, AppToolbar, AuditTrailPanel, Avatar, Badge, Button, Card, Chip, CollapsibleSection, ColumnPresetSelector, ConfirmDialog, ContextMenu, CoreConfigProvider, CoreProvider, CrudPage, DATA_GRID_EVENTS, DataGridView, DatePicker, DateRangePicker, DateUtils, DensityProvider, DialogView, Drawer, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, FORM_EVENTS, FieldBuilder, FormField, FormView, HydraAdapter, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, MercureProvider, Popover, ResourceStoreProvider, RestAdapter, SchemaProvider, SelectField, SettingsPanel, Skeleton, SmartCrudPage, SmartCrudRolesProvider, StatCard, TextAreaField, TextField, ThemeContext, ThemeProvider, ThemeSwitcher, Timeline, TimelineItem, Toggle, ToolbarSelect, UiStringsProvider, buildFields, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
5
+ import { AdminHeader, AdminShell, AdminSidebarMenu, LoginPage, SessionProvider, ToastHost, useAppRuntime, useScreenSize, useScreenSizeClass, useSession } from "@nubitio/admin";
6
+ export { ACCENT_PRESETS, AdminHeader, AdminShell, AdminSidebarMenu, AppDialog, AppDropdown, AppToolbar, AuditTrailPanel, Avatar, Badge, Button, Card, Chip, CollapsibleSection, ColumnPresetSelector, ConfirmDialog, ContextMenu, CoreConfigProvider, CoreProvider, CrudPage, DATA_GRID_EVENTS, DataGridView, DatePicker, DateRangePicker, DateUtils, DensityProvider, DialogView, Drawer, DrawerView, EN_UI_STRINGS, ES_UI_STRINGS, EmptyState, FORM_EVENTS, FieldBuilder, FormField, FormView, HydraAdapter, HydraRemoteDataSource, HydraResourceSchemaProvider, HydraResourceStoreProvider, IconButton, LoginPage, MercureProvider, Popover, ResourceStoreProvider, RestAdapter, SchemaProvider, SelectField, SessionProvider, SettingsPanel, Skeleton, SmartCrudPage, SmartCrudRolesProvider, StatCard, TextAreaField, TextField, ThemeContext, ThemeProvider, ThemeSwitcher, Timeline, TimelineItem, ToastHost, Toggle, ToolbarSelect, UiStringsProvider, buildFields, buildMercureCollectionTopic, checkboxField, configureCore, configureCoreDate, coreTranslationsEn, coreTranslationsEs, createCoreHttpClient, createCrudEvents, createRestResourceStore, crudRoute, currencyField, dateField, datetimeField, defineFieldContract, defineFields, defineResource, dispatch, entityField, enumField, fileField, getCoreApiBaseUrl, getCoreCurrency, getCoreLocale, getCoreTimezone, getMercureTopicOrigin, identityField, imageField, initCoreI18n, mapHydraSchemaToFields, noneField, numberField, parseHydraDoc, parseOpenApiDoc, passwordField, resolveMercureTopicOrigin, resolveRangeTag, selectField, switchField, textField, textareaField, useAccentColor, useAppRuntime, useColumnPreset, useCoreConfig, useCoreHttpClient, useDensity, useEvents, useHydraMetadata, useMercureHub, useMercureSubscription, useResourceSchema, useSchemaContext, useScreenSize, useScreenSizeClass, useSession, useSmartCrudRoles, useTheme, useUiStrings, validateFieldContract };
package/dist/style.css CHANGED
@@ -4852,6 +4852,238 @@ html[data-density=compact] .nb-datagrid .nb-badge {
4852
4852
  outline: none;
4853
4853
  }
4854
4854
 
4855
+ .nb-form__file-upload-error {
4856
+ align-items: center;
4857
+ color: var(--error-color);
4858
+ display: inline-flex;
4859
+ font-size: var(--font-size-xs);
4860
+ gap: var(--space-1);
4861
+ }
4862
+ .nb-form__file-upload {
4863
+ display: flex;
4864
+ flex-direction: column;
4865
+ gap: var(--space-1);
4866
+ width: 100%;
4867
+ }
4868
+
4869
+ .nb-form__file-upload-zone {
4870
+ align-items: center;
4871
+ background: var(--surface-1);
4872
+ border: 1px dashed var(--border-color);
4873
+ border-radius: var(--radius-lg);
4874
+ box-sizing: border-box;
4875
+ cursor: pointer;
4876
+ display: flex;
4877
+ justify-content: center;
4878
+ min-height: 112px;
4879
+ overflow: hidden;
4880
+ position: relative;
4881
+ transition: border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
4882
+ width: 100%;
4883
+ }
4884
+ .nb-form__file-upload-zone:hover:not(.nb-form__file-upload-zone--disabled):not(.nb-form__file-upload-zone--filled) {
4885
+ background: color-mix(in srgb, var(--accent-color) 4%, var(--surface-1));
4886
+ border-color: var(--accent-color);
4887
+ }
4888
+ .nb-form__file-upload-zone--active {
4889
+ background: color-mix(in srgb, var(--accent-color) 8%, var(--surface-1));
4890
+ border-color: var(--accent-color);
4891
+ }
4892
+ .nb-form__file-upload-zone--filled {
4893
+ border-style: solid;
4894
+ cursor: default;
4895
+ min-height: 88px;
4896
+ }
4897
+ .nb-form__file-upload-zone--uploading {
4898
+ pointer-events: none;
4899
+ }
4900
+ .nb-form__file-upload-zone--disabled {
4901
+ cursor: not-allowed;
4902
+ opacity: 0.72;
4903
+ }
4904
+ .nb-form__file-upload-zone:focus-visible {
4905
+ box-shadow: 0 0 0 3px var(--focus-ring-color);
4906
+ outline: none;
4907
+ }
4908
+
4909
+ .nb-form__file-upload--image .nb-form__file-upload-zone {
4910
+ min-height: 168px;
4911
+ }
4912
+
4913
+ .nb-form__file-upload--image .nb-form__file-upload-zone--filled {
4914
+ min-height: 180px;
4915
+ }
4916
+
4917
+ .nb-form__file-upload--invalid .nb-form__file-upload-zone {
4918
+ border-color: var(--error-color);
4919
+ }
4920
+
4921
+ .nb-form__file-upload-placeholder {
4922
+ align-items: center;
4923
+ display: flex;
4924
+ flex-direction: column;
4925
+ gap: var(--space-2);
4926
+ max-width: 320px;
4927
+ padding: var(--space-4);
4928
+ text-align: center;
4929
+ }
4930
+
4931
+ .nb-form__file-upload-icon {
4932
+ align-items: center;
4933
+ background: color-mix(in srgb, var(--accent-color) 10%, transparent);
4934
+ border-radius: 999px;
4935
+ color: var(--accent-color);
4936
+ display: inline-flex;
4937
+ font-size: 24px;
4938
+ height: 48px;
4939
+ justify-content: center;
4940
+ width: 48px;
4941
+ }
4942
+
4943
+ .nb-form__file-upload-title {
4944
+ color: var(--text-primary);
4945
+ font-size: var(--font-size-sm);
4946
+ font-weight: var(--font-weight-semibold);
4947
+ }
4948
+
4949
+ .nb-form__file-upload-hint {
4950
+ color: var(--text-tertiary);
4951
+ font-size: var(--font-size-xs);
4952
+ line-height: var(--line-height-tight);
4953
+ }
4954
+
4955
+ .nb-form__file-upload-preview {
4956
+ display: block;
4957
+ height: 100%;
4958
+ max-height: 220px;
4959
+ object-fit: contain;
4960
+ width: 100%;
4961
+ }
4962
+
4963
+ .nb-form__file-upload-file {
4964
+ align-items: center;
4965
+ display: flex;
4966
+ gap: var(--space-3);
4967
+ max-width: 100%;
4968
+ padding: var(--space-3) var(--space-4);
4969
+ width: 100%;
4970
+ }
4971
+
4972
+ .nb-form__file-upload-file-icon {
4973
+ align-items: center;
4974
+ background: var(--surface-0);
4975
+ border: 1px solid var(--border-subtle);
4976
+ border-radius: var(--radius-md);
4977
+ color: var(--accent-color);
4978
+ display: inline-flex;
4979
+ flex: 0 0 auto;
4980
+ font-size: 22px;
4981
+ height: 44px;
4982
+ justify-content: center;
4983
+ width: 44px;
4984
+ }
4985
+
4986
+ .nb-form__file-upload-file-meta {
4987
+ display: flex;
4988
+ flex: 1 1 auto;
4989
+ flex-direction: column;
4990
+ gap: 2px;
4991
+ min-width: 0;
4992
+ }
4993
+
4994
+ .nb-form__file-upload-file-name {
4995
+ color: var(--text-primary);
4996
+ font-size: var(--font-size-sm);
4997
+ font-weight: var(--font-weight-medium);
4998
+ overflow: hidden;
4999
+ text-overflow: ellipsis;
5000
+ white-space: nowrap;
5001
+ }
5002
+
5003
+ .nb-form__file-upload-file-link {
5004
+ color: var(--accent-color);
5005
+ font-size: var(--font-size-xs);
5006
+ text-decoration: none;
5007
+ }
5008
+ .nb-form__file-upload-file-link:hover {
5009
+ text-decoration: underline;
5010
+ }
5011
+
5012
+ .nb-form__file-upload-overlay {
5013
+ align-items: center;
5014
+ background: rgba(0, 0, 0, 0.42);
5015
+ color: #fff;
5016
+ display: flex;
5017
+ flex-direction: column;
5018
+ font-size: var(--font-size-sm);
5019
+ gap: var(--space-2);
5020
+ inset: 0;
5021
+ justify-content: center;
5022
+ position: absolute;
5023
+ }
5024
+
5025
+ .nb-form__file-upload-spinner {
5026
+ animation: nb-form-file-spin 700ms linear infinite;
5027
+ border: 2px solid rgba(255, 255, 255, 0.35);
5028
+ border-radius: 999px;
5029
+ border-top-color: #fff;
5030
+ height: 24px;
5031
+ width: 24px;
5032
+ }
5033
+
5034
+ @keyframes nb-form-file-spin {
5035
+ to {
5036
+ transform: rotate(360deg);
5037
+ }
5038
+ }
5039
+ .nb-form__file-upload-actions {
5040
+ align-items: center;
5041
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.58), transparent);
5042
+ bottom: 0;
5043
+ display: flex;
5044
+ gap: var(--space-2);
5045
+ inset-inline: 0;
5046
+ justify-content: center;
5047
+ opacity: 0;
5048
+ padding: var(--space-3);
5049
+ position: absolute;
5050
+ transition: opacity var(--transition-base);
5051
+ }
5052
+
5053
+ .nb-form__file-upload-zone--filled:hover .nb-form__file-upload-actions,
5054
+ .nb-form__file-upload-zone--filled:focus-within .nb-form__file-upload-actions {
5055
+ opacity: 1;
5056
+ }
5057
+
5058
+ .nb-form__file-upload-action {
5059
+ align-items: center;
5060
+ background: var(--surface-1);
5061
+ border: 1px solid var(--border-subtle);
5062
+ border-radius: var(--radius-md);
5063
+ color: var(--text-primary);
5064
+ cursor: pointer;
5065
+ display: inline-flex;
5066
+ font: inherit;
5067
+ font-size: var(--font-size-xs);
5068
+ font-weight: var(--font-weight-medium);
5069
+ gap: var(--space-1);
5070
+ min-height: 28px;
5071
+ padding: 0 var(--space-2);
5072
+ transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
5073
+ }
5074
+ .nb-form__file-upload-action:hover {
5075
+ border-color: var(--accent-color);
5076
+ color: var(--accent-color);
5077
+ }
5078
+ .nb-form__file-upload-action--danger:hover {
5079
+ border-color: var(--error-color);
5080
+ color: var(--error-color);
5081
+ }
5082
+ .nb-form__file-upload-action:focus-visible {
5083
+ box-shadow: 0 0 0 2px var(--focus-ring-color);
5084
+ outline: none;
5085
+ }
5086
+
4855
5087
  .nb-form__file-upload-error {
4856
5088
  align-items: center;
4857
5089
  color: var(--error-color);
@@ -5797,238 +6029,6 @@ html[data-density=compact] .nb-datagrid .nb-badge {
5797
6029
  .nb-form__field .nb-date-picker__trigger:focus-within {
5798
6030
  min-height: var(--control-height-form, 34px);
5799
6031
  }
5800
- .nb-form__file-upload {
5801
- display: flex;
5802
- flex-direction: column;
5803
- gap: var(--space-1);
5804
- width: 100%;
5805
- }
5806
-
5807
- .nb-form__file-upload-zone {
5808
- align-items: center;
5809
- background: var(--surface-1);
5810
- border: 1px dashed var(--border-color);
5811
- border-radius: var(--radius-lg);
5812
- box-sizing: border-box;
5813
- cursor: pointer;
5814
- display: flex;
5815
- justify-content: center;
5816
- min-height: 112px;
5817
- overflow: hidden;
5818
- position: relative;
5819
- transition: border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
5820
- width: 100%;
5821
- }
5822
- .nb-form__file-upload-zone:hover:not(.nb-form__file-upload-zone--disabled):not(.nb-form__file-upload-zone--filled) {
5823
- background: color-mix(in srgb, var(--accent-color) 4%, var(--surface-1));
5824
- border-color: var(--accent-color);
5825
- }
5826
- .nb-form__file-upload-zone--active {
5827
- background: color-mix(in srgb, var(--accent-color) 8%, var(--surface-1));
5828
- border-color: var(--accent-color);
5829
- }
5830
- .nb-form__file-upload-zone--filled {
5831
- border-style: solid;
5832
- cursor: default;
5833
- min-height: 88px;
5834
- }
5835
- .nb-form__file-upload-zone--uploading {
5836
- pointer-events: none;
5837
- }
5838
- .nb-form__file-upload-zone--disabled {
5839
- cursor: not-allowed;
5840
- opacity: 0.72;
5841
- }
5842
- .nb-form__file-upload-zone:focus-visible {
5843
- box-shadow: 0 0 0 3px var(--focus-ring-color);
5844
- outline: none;
5845
- }
5846
-
5847
- .nb-form__file-upload--image .nb-form__file-upload-zone {
5848
- min-height: 168px;
5849
- }
5850
-
5851
- .nb-form__file-upload--image .nb-form__file-upload-zone--filled {
5852
- min-height: 180px;
5853
- }
5854
-
5855
- .nb-form__file-upload--invalid .nb-form__file-upload-zone {
5856
- border-color: var(--error-color);
5857
- }
5858
-
5859
- .nb-form__file-upload-placeholder {
5860
- align-items: center;
5861
- display: flex;
5862
- flex-direction: column;
5863
- gap: var(--space-2);
5864
- max-width: 320px;
5865
- padding: var(--space-4);
5866
- text-align: center;
5867
- }
5868
-
5869
- .nb-form__file-upload-icon {
5870
- align-items: center;
5871
- background: color-mix(in srgb, var(--accent-color) 10%, transparent);
5872
- border-radius: 999px;
5873
- color: var(--accent-color);
5874
- display: inline-flex;
5875
- font-size: 24px;
5876
- height: 48px;
5877
- justify-content: center;
5878
- width: 48px;
5879
- }
5880
-
5881
- .nb-form__file-upload-title {
5882
- color: var(--text-primary);
5883
- font-size: var(--font-size-sm);
5884
- font-weight: var(--font-weight-semibold);
5885
- }
5886
-
5887
- .nb-form__file-upload-hint {
5888
- color: var(--text-tertiary);
5889
- font-size: var(--font-size-xs);
5890
- line-height: var(--line-height-tight);
5891
- }
5892
-
5893
- .nb-form__file-upload-preview {
5894
- display: block;
5895
- height: 100%;
5896
- max-height: 220px;
5897
- object-fit: contain;
5898
- width: 100%;
5899
- }
5900
-
5901
- .nb-form__file-upload-file {
5902
- align-items: center;
5903
- display: flex;
5904
- gap: var(--space-3);
5905
- max-width: 100%;
5906
- padding: var(--space-3) var(--space-4);
5907
- width: 100%;
5908
- }
5909
-
5910
- .nb-form__file-upload-file-icon {
5911
- align-items: center;
5912
- background: var(--surface-0);
5913
- border: 1px solid var(--border-subtle);
5914
- border-radius: var(--radius-md);
5915
- color: var(--accent-color);
5916
- display: inline-flex;
5917
- flex: 0 0 auto;
5918
- font-size: 22px;
5919
- height: 44px;
5920
- justify-content: center;
5921
- width: 44px;
5922
- }
5923
-
5924
- .nb-form__file-upload-file-meta {
5925
- display: flex;
5926
- flex: 1 1 auto;
5927
- flex-direction: column;
5928
- gap: 2px;
5929
- min-width: 0;
5930
- }
5931
-
5932
- .nb-form__file-upload-file-name {
5933
- color: var(--text-primary);
5934
- font-size: var(--font-size-sm);
5935
- font-weight: var(--font-weight-medium);
5936
- overflow: hidden;
5937
- text-overflow: ellipsis;
5938
- white-space: nowrap;
5939
- }
5940
-
5941
- .nb-form__file-upload-file-link {
5942
- color: var(--accent-color);
5943
- font-size: var(--font-size-xs);
5944
- text-decoration: none;
5945
- }
5946
- .nb-form__file-upload-file-link:hover {
5947
- text-decoration: underline;
5948
- }
5949
-
5950
- .nb-form__file-upload-overlay {
5951
- align-items: center;
5952
- background: rgba(0, 0, 0, 0.42);
5953
- color: #fff;
5954
- display: flex;
5955
- flex-direction: column;
5956
- font-size: var(--font-size-sm);
5957
- gap: var(--space-2);
5958
- inset: 0;
5959
- justify-content: center;
5960
- position: absolute;
5961
- }
5962
-
5963
- .nb-form__file-upload-spinner {
5964
- animation: nb-form-file-spin 700ms linear infinite;
5965
- border: 2px solid rgba(255, 255, 255, 0.35);
5966
- border-radius: 999px;
5967
- border-top-color: #fff;
5968
- height: 24px;
5969
- width: 24px;
5970
- }
5971
-
5972
- @keyframes nb-form-file-spin {
5973
- to {
5974
- transform: rotate(360deg);
5975
- }
5976
- }
5977
- .nb-form__file-upload-actions {
5978
- align-items: center;
5979
- background: linear-gradient(to top, rgba(0, 0, 0, 0.58), transparent);
5980
- bottom: 0;
5981
- display: flex;
5982
- gap: var(--space-2);
5983
- inset-inline: 0;
5984
- justify-content: center;
5985
- opacity: 0;
5986
- padding: var(--space-3);
5987
- position: absolute;
5988
- transition: opacity var(--transition-base);
5989
- }
5990
-
5991
- .nb-form__file-upload-zone--filled:hover .nb-form__file-upload-actions,
5992
- .nb-form__file-upload-zone--filled:focus-within .nb-form__file-upload-actions {
5993
- opacity: 1;
5994
- }
5995
-
5996
- .nb-form__file-upload-action {
5997
- align-items: center;
5998
- background: var(--surface-1);
5999
- border: 1px solid var(--border-subtle);
6000
- border-radius: var(--radius-md);
6001
- color: var(--text-primary);
6002
- cursor: pointer;
6003
- display: inline-flex;
6004
- font: inherit;
6005
- font-size: var(--font-size-xs);
6006
- font-weight: var(--font-weight-medium);
6007
- gap: var(--space-1);
6008
- min-height: 28px;
6009
- padding: 0 var(--space-2);
6010
- transition: background var(--transition-base), border-color var(--transition-base), color var(--transition-base);
6011
- }
6012
- .nb-form__file-upload-action:hover {
6013
- border-color: var(--accent-color);
6014
- color: var(--accent-color);
6015
- }
6016
- .nb-form__file-upload-action--danger:hover {
6017
- border-color: var(--error-color);
6018
- color: var(--error-color);
6019
- }
6020
- .nb-form__file-upload-action:focus-visible {
6021
- box-shadow: 0 0 0 2px var(--focus-ring-color);
6022
- outline: none;
6023
- }
6024
-
6025
- .nb-form__file-upload-error {
6026
- align-items: center;
6027
- color: var(--error-color);
6028
- display: inline-flex;
6029
- font-size: var(--font-size-xs);
6030
- gap: var(--space-1);
6031
- }
6032
6032
  .nb-crud-dialog-root {
6033
6033
  z-index: 2500;
6034
6034
  }
@@ -6734,3 +6734,49 @@ html[data-density=compact] .nb-crud-page-shell__footer {
6734
6734
  opacity: 0;
6735
6735
  pointer-events: none;
6736
6736
  }
6737
+ .nb-toast-host {
6738
+ position: fixed;
6739
+ right: 1rem;
6740
+ bottom: 1rem;
6741
+ z-index: 1000;
6742
+ display: flex;
6743
+ flex-direction: column;
6744
+ gap: 0.5rem;
6745
+ max-width: min(24rem, 100vw - 2rem);
6746
+ }
6747
+
6748
+ .nb-toast {
6749
+ display: flex;
6750
+ align-items: flex-start;
6751
+ justify-content: space-between;
6752
+ gap: 0.75rem;
6753
+ padding: 0.75rem 1rem;
6754
+ border-radius: var(--radius-md, 0.5rem);
6755
+ border: 1px solid var(--border-subtle);
6756
+ background: var(--surface-2);
6757
+ color: var(--text-primary);
6758
+ box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.12));
6759
+ font-size: 0.875rem;
6760
+ }
6761
+
6762
+ .nb-toast--success {
6763
+ border-color: color-mix(in srgb, var(--success-color, #16a34a) 35%, var(--border-subtle));
6764
+ }
6765
+
6766
+ .nb-toast--error {
6767
+ border-color: color-mix(in srgb, var(--error-color, #dc2626) 35%, var(--border-subtle));
6768
+ }
6769
+
6770
+ .nb-toast--warning {
6771
+ border-color: color-mix(in srgb, var(--warning-color, #d97706) 35%, var(--border-subtle));
6772
+ }
6773
+
6774
+ .nb-toast__close {
6775
+ border: 0;
6776
+ background: transparent;
6777
+ color: var(--text-secondary);
6778
+ cursor: pointer;
6779
+ font-size: 1.125rem;
6780
+ line-height: 1;
6781
+ padding: 0;
6782
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nubitio/react-admin",
3
- "version": "0.5.11",
3
+ "version": "0.5.14",
4
4
  "type": "module",
5
5
  "description": "Batteries-included admin stack: core runtime, CRUD, Hydra adapter, and AdminShell.",
6
6
  "license": "MIT",
@@ -50,11 +50,11 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@nubitio/hydra": "^0.5.11",
54
- "@nubitio/admin": "^0.5.11",
55
- "@nubitio/core": "^0.5.11",
56
- "@nubitio/ui": "^0.5.11",
57
- "@nubitio/crud": "^0.5.11"
53
+ "@nubitio/admin": "^0.5.14",
54
+ "@nubitio/hydra": "^0.5.14",
55
+ "@nubitio/core": "^0.5.14",
56
+ "@nubitio/crud": "^0.5.14",
57
+ "@nubitio/ui": "^0.5.14"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@tanstack/react-query": "^5.0.0",