@firecms/core 3.0.0-canary.144 → 3.0.0-canary.146

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 (97) hide show
  1. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
  2. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +2 -2
  3. package/dist/components/common/useDataSourceEntityCollectionTableController.d.ts +1 -1
  4. package/dist/core/EntityEditView.d.ts +1 -1
  5. package/dist/core/FireCMS.d.ts +1 -1
  6. package/dist/hooks/data/delete.d.ts +4 -4
  7. package/dist/hooks/data/save.d.ts +3 -3
  8. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  9. package/dist/hooks/data/useEntityFetch.d.ts +3 -3
  10. package/dist/hooks/useAuthController.d.ts +1 -1
  11. package/dist/hooks/useBuildNavigationController.d.ts +3 -3
  12. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  13. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  14. package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
  15. package/dist/index.es.js +85 -78
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/index.umd.js +85 -78
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/types/auth.d.ts +6 -10
  20. package/dist/types/collections.d.ts +12 -12
  21. package/dist/types/datasource.d.ts +0 -4
  22. package/dist/types/entity_actions.d.ts +4 -4
  23. package/dist/types/entity_callbacks.d.ts +16 -16
  24. package/dist/types/export_import.d.ts +4 -4
  25. package/dist/types/firecms.d.ts +2 -2
  26. package/dist/types/firecms_context.d.ts +1 -1
  27. package/dist/types/permissions.d.ts +4 -4
  28. package/dist/types/plugins.d.ts +8 -8
  29. package/dist/types/user.d.ts +1 -0
  30. package/dist/util/builders.d.ts +2 -2
  31. package/dist/util/icons.d.ts +3 -1
  32. package/dist/util/permissions.d.ts +4 -4
  33. package/package.json +5 -5
  34. package/src/app/Scaffold.tsx +2 -2
  35. package/src/components/ArrayContainer.tsx +1 -1
  36. package/src/components/CircularProgressCenter.tsx +1 -1
  37. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +1 -1
  38. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +5 -5
  39. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +2 -2
  40. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +7 -8
  41. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +2 -2
  42. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +1 -1
  43. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +4 -4
  44. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -3
  45. package/src/components/EntityCollectionView/EntityCollectionView.tsx +3 -3
  46. package/src/components/EntityPreview.tsx +7 -5
  47. package/src/components/EntityView.tsx +4 -4
  48. package/src/components/HomePage/FavouritesView.tsx +1 -1
  49. package/src/components/HomePage/NavigationCard.tsx +1 -1
  50. package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
  51. package/src/components/HomePage/NavigationGroup.tsx +1 -1
  52. package/src/components/PropertyConfigBadge.tsx +1 -1
  53. package/src/components/PropertyIdCopyTooltip.tsx +1 -1
  54. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +1 -1
  55. package/src/components/SelectableTable/SelectableTable.tsx +2 -2
  56. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +1 -1
  57. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +1 -1
  58. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +1 -1
  59. package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
  60. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
  61. package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
  62. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +2 -2
  63. package/src/core/DefaultDrawer.tsx +2 -2
  64. package/src/core/DrawerNavigationItem.tsx +3 -3
  65. package/src/core/EntityEditView.tsx +4 -4
  66. package/src/core/FireCMS.tsx +1 -1
  67. package/src/core/SideDialogs.tsx +1 -1
  68. package/src/core/field_configs.tsx +1 -1
  69. package/src/form/components/StorageItemPreview.tsx +2 -2
  70. package/src/form/field_bindings/MapFieldBinding.tsx +1 -1
  71. package/src/form/field_bindings/ReferenceFieldBinding.tsx +3 -3
  72. package/src/hooks/data/delete.ts +4 -4
  73. package/src/hooks/data/save.ts +3 -3
  74. package/src/hooks/data/useCollectionFetch.tsx +2 -2
  75. package/src/hooks/data/useEntityFetch.tsx +5 -5
  76. package/src/hooks/useAuthController.tsx +1 -1
  77. package/src/hooks/useBuildNavigationController.tsx +4 -6
  78. package/src/hooks/useFireCMSContext.tsx +5 -5
  79. package/src/hooks/useResolvedNavigationFrom.tsx +5 -5
  80. package/src/hooks/useValidateAuthenticator.tsx +3 -3
  81. package/src/preview/components/EmptyValue.tsx +1 -1
  82. package/src/preview/components/ImagePreview.tsx +2 -2
  83. package/src/preview/components/UrlComponentPreview.tsx +1 -1
  84. package/src/types/auth.tsx +6 -12
  85. package/src/types/collections.ts +12 -12
  86. package/src/types/datasource.ts +0 -5
  87. package/src/types/entity_actions.tsx +4 -4
  88. package/src/types/entity_callbacks.ts +18 -18
  89. package/src/types/export_import.ts +4 -4
  90. package/src/types/firecms.tsx +2 -2
  91. package/src/types/firecms_context.tsx +1 -1
  92. package/src/types/permissions.ts +5 -5
  93. package/src/types/plugins.tsx +8 -8
  94. package/src/types/user.ts +2 -0
  95. package/src/util/builders.ts +6 -6
  96. package/src/util/icons.tsx +12 -8
  97. package/src/util/permissions.ts +8 -8
package/dist/index.es.js CHANGED
@@ -613,7 +613,7 @@ function PropertyIdCopyTooltipContent({ propertyKey }) {
613
613
  Typography,
614
614
  {
615
615
  variant: "caption",
616
- className: "min-w-20 text-slate-400",
616
+ className: "min-w-20 text-surface-accent-400",
617
617
  color: "disabled",
618
618
  children: copied ? "Copied" : "Property ID"
619
619
  }
@@ -2790,22 +2790,23 @@ function hashString(str) {
2790
2790
  }
2791
2791
  return Math.abs(hash2);
2792
2792
  }
2793
- function getIcon(iconKey, className) {
2793
+ function getIcon(iconKey, className, color) {
2794
2794
  if (!iconKey) return void 0;
2795
2795
  iconKey = slugify(iconKey);
2796
2796
  if (!(iconKey in iconKeysMap)) {
2797
2797
  return void 0;
2798
2798
  }
2799
- return iconKey in iconKeysMap ? /* @__PURE__ */ jsx(Icon, { iconKey, size: "medium", className }) : void 0;
2799
+ return iconKey in iconKeysMap ? /* @__PURE__ */ jsx(Icon, { iconKey, size: "medium", className, color }) : void 0;
2800
2800
  }
2801
2801
  const IconForView = React__default.memo(
2802
2802
  function IconForView2({
2803
2803
  collectionOrView,
2804
2804
  className,
2805
+ color,
2805
2806
  size = "medium"
2806
2807
  }) {
2807
2808
  if (!collectionOrView) return /* @__PURE__ */ jsx(Fragment, {});
2808
- const icon = getIcon(collectionOrView.icon, className);
2809
+ const icon = getIcon(collectionOrView.icon, className, color);
2809
2810
  if (collectionOrView?.icon && icon)
2810
2811
  return icon;
2811
2812
  let slugName = slugify(("singularName" in collectionOrView ? collectionOrView.singularName : void 0) ?? collectionOrView.name);
@@ -2820,10 +2821,10 @@ const IconForView = React__default.memo(
2820
2821
  const iconsCount = coolIconKeys.length;
2821
2822
  if (!key)
2822
2823
  key = coolIconKeys[hashString(collectionOrView.path) % iconsCount];
2823
- return /* @__PURE__ */ jsx(Icon, { iconKey: key, size, className });
2824
+ return /* @__PURE__ */ jsx(Icon, { iconKey: key, size, className, color });
2824
2825
  },
2825
2826
  (prevProps, nextProps) => {
2826
- return equal(prevProps.collectionOrView?.icon, nextProps.collectionOrView?.icon);
2827
+ return equal(prevProps.collectionOrView?.icon, nextProps.collectionOrView?.icon) && equal(prevProps.color, nextProps.color);
2827
2828
  }
2828
2829
  );
2829
2830
  const iconKeysMap = iconKeys.reduce((acc, key) => {
@@ -4053,11 +4054,11 @@ function EntityView({
4053
4054
  const properties = resolvedCollection.properties;
4054
4055
  return /* @__PURE__ */ jsx("div", { className: "w-full " + className, children: /* @__PURE__ */ jsxs("div", { className: "w-full mb-4", children: [
4055
4056
  /* @__PURE__ */ jsxs("div", { className: cls(defaultBorderMixin, "flex justify-between py-2 border-b last:border-b-0"), children: [
4056
- /* @__PURE__ */ jsx("div", { className: "flex items-center w-1/4", children: /* @__PURE__ */ jsx("span", { className: "pl-2 text-sm text-gray-600", children: "Id" }) }),
4057
+ /* @__PURE__ */ jsx("div", { className: "flex items-center w-1/4", children: /* @__PURE__ */ jsx("span", { className: "pl-2 text-sm text-surface-600", children: "Id" }) }),
4057
4058
  /* @__PURE__ */ jsxs(
4058
4059
  "div",
4059
4060
  {
4060
- className: "flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",
4061
+ className: "flex-grow p-2 ml-2 w-3/4 text-surface-900 dark:text-white min-h-[56px] flex items-center",
4061
4062
  children: [
4062
4063
  /* @__PURE__ */ jsx("span", { className: "flex-grow mr-2", children: entity.id }),
4063
4064
  customizationController?.entityLinkBuilder && /* @__PURE__ */ jsx(
@@ -4085,11 +4086,11 @@ function EntityView({
4085
4086
  {
4086
4087
  className: cls(defaultBorderMixin, "flex justify-between py-2 border-b last:border-b-0"),
4087
4088
  children: [
4088
- /* @__PURE__ */ jsx("div", { className: "flex items-center w-1/4", children: /* @__PURE__ */ jsx("span", { className: "pl-2 text-sm text-gray-600", children: property.name }) }),
4089
+ /* @__PURE__ */ jsx("div", { className: "flex items-center w-1/4", children: /* @__PURE__ */ jsx("span", { className: "pl-2 text-sm text-surface-600", children: property.name }) }),
4089
4090
  /* @__PURE__ */ jsx(
4090
4091
  "div",
4091
4092
  {
4092
- className: "flex-grow p-2 ml-2 w-3/4 text-gray-900 dark:text-white min-h-[56px] flex items-center",
4093
+ className: "flex-grow p-2 ml-2 w-3/4 text-surface-900 dark:text-white min-h-[56px] flex items-center",
4093
4094
  children: /* @__PURE__ */ jsx(
4094
4095
  PropertyPreview,
4095
4096
  {
@@ -4960,7 +4961,7 @@ function StorageUpload$1({
4960
4961
  children: /* @__PURE__ */ jsx(
4961
4962
  Typography,
4962
4963
  {
4963
- className: "text-gray-400 dark:text-gray-600",
4964
+ className: "text-surface-400 dark:text-surface-600",
4964
4965
  variant: "body2",
4965
4966
  align: "center",
4966
4967
  children: helpText
@@ -4982,7 +4983,7 @@ function StorageUpload$1({
4982
4983
  color: "inherit",
4983
4984
  size: "small",
4984
4985
  onClick: open,
4985
- children: /* @__PURE__ */ jsx(EditIcon, { size: "small", className: "text-gray-500" })
4986
+ children: /* @__PURE__ */ jsx(EditIcon, { size: "small", className: "text-surface-500" })
4986
4987
  }
4987
4988
  )
4988
4989
  }
@@ -5054,7 +5055,7 @@ function EntityPreview({
5054
5055
  hover: disabled ? void 0 : hover,
5055
5056
  size,
5056
5057
  children: [
5057
- /* @__PURE__ */ jsxs("div", { className: cls("flex w-10 h-10 mr-2 shrink-0", size === "smallest" ? "my-0.5" : "m-2 self-start"), children: [
5058
+ /* @__PURE__ */ jsxs("div", { className: cls("flex w-10 h-10 ml-1 mr-2 shrink-0", size === "smallest" ? "my-0.5" : "m-2 self-start"), children: [
5058
5059
  imageProperty && /* @__PURE__ */ jsx(
5059
5060
  PropertyPreview,
5060
5061
  {
@@ -5064,7 +5065,15 @@ function EntityPreview({
5064
5065
  value: getValueInPath(entity.values, imagePropertyKey)
5065
5066
  }
5066
5067
  ),
5067
- !imageProperty && /* @__PURE__ */ jsx(IconForView, { collectionOrView: collection, size, className: "m-auto" })
5068
+ !imageProperty && /* @__PURE__ */ jsx(
5069
+ IconForView,
5070
+ {
5071
+ collectionOrView: collection,
5072
+ color: "primary",
5073
+ size,
5074
+ className: "m-auto p-1"
5075
+ }
5076
+ )
5068
5077
  ] }),
5069
5078
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col grow-1 w-full max-w-full m-1", children: [
5070
5079
  size !== "smallest" && includeId && (entity ? /* @__PURE__ */ jsx("div", { className: `${size !== "medium" ? "block whitespace-nowrap overflow-hidden truncate" : ""}`, children: /* @__PURE__ */ jsx(
@@ -5165,11 +5174,11 @@ const EntityPreviewContainer = React.forwardRef(({
5165
5174
  tabindex: 0
5166
5175
  },
5167
5176
  className: cls(
5168
- "bg-white dark:bg-gray-900",
5177
+ "bg-white dark:bg-surface-900",
5169
5178
  "min-h-[42px]",
5170
5179
  fullwidth ? "w-full" : "",
5171
5180
  "items-center",
5172
- hover ? "hover:bg-slate-50 dark:hover:bg-gray-800 group-hover:bg-slate-50 dark:group-hover:bg-gray-800" : "",
5181
+ hover ? "hover:bg-surface-accent-50 dark:hover:bg-surface-800 group-hover:bg-surface-accent-50 dark:group-hover:bg-surface-800" : "",
5173
5182
  size === "smallest" ? "p-1" : "px-2 py-1",
5174
5183
  "flex border rounded-lg",
5175
5184
  onClick ? "cursor-pointer" : "",
@@ -5303,22 +5312,20 @@ const TableReferenceFieldInternal = React__default.memo(
5303
5312
  EntityPreviewContainer,
5304
5313
  {
5305
5314
  className: cls(
5306
- "px-4 py-2 text-sm font-medium flex items-center uppercase",
5315
+ "px-3 py-2 text-sm font-medium flex items-center",
5307
5316
  multiselect ? "gap-4" : "gap-6",
5308
- disabled ? "text-slate-500" : "cursor-pointer text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-gray-800 group-hover:bg-slate-50 dark:group-hover:bg-gray-800"
5317
+ disabled ? "text-surface-accent-500" : "cursor-pointer text-text-secondary dark:text-text-secondary-dark hover:bg-surface-accent-50 dark:hover:bg-surface-800 group-hover:bg-surface-accent-50 dark:group-hover:bg-surface-800"
5309
5318
  ),
5310
5319
  onClick: handleOpen,
5311
5320
  size: "medium",
5312
5321
  children: [
5313
5322
  /* @__PURE__ */ jsx(
5314
- IconForView,
5323
+ EditIcon,
5315
5324
  {
5316
5325
  size: "small",
5317
- collectionOrView: collection,
5318
- className: "text-gray-300 dark:text-gray-600"
5326
+ className: "ml-2 mr-1 text-surface-300 dark:text-surface-600"
5319
5327
  }
5320
5328
  ),
5321
- "Edit ",
5322
5329
  title
5323
5330
  ]
5324
5331
  }
@@ -5799,10 +5806,10 @@ const EntityTableCell = React__default.memo(
5799
5806
  className: cls(
5800
5807
  "transition-colors duration-100 ease-in-out",
5801
5808
  `flex relative h-full rounded-md p-${p} border border-4 border-opacity-75`,
5802
- onHover && !disabled ? "bg-gray-50 dark:bg-gray-900" : "",
5803
- saved ? "bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75" : "",
5809
+ onHover && !disabled ? "bg-surface-50 dark:bg-surface-900" : "",
5810
+ saved ? "bg-surface-100 bg-opacity-75 dark:bg-surface-800 dark:bg-opacity-75" : "",
5804
5811
  hideOverflow ? "overflow-hidden" : "",
5805
- isSelected ? "bg-gray-50 dark:bg-gray-900" : "",
5812
+ isSelected ? "bg-surface-50 dark:bg-surface-900" : "",
5806
5813
  borderClass
5807
5814
  ),
5808
5815
  ref,
@@ -5844,7 +5851,7 @@ const EntityTableCell = React__default.memo(
5844
5851
  )
5845
5852
  ] }),
5846
5853
  actions,
5847
- disabled && onHover && disabledTooltip && /* @__PURE__ */ jsx("div", { className: "absolute top-1 right-1 text-xs", children: /* @__PURE__ */ jsx(Tooltip, { title: disabledTooltip, children: /* @__PURE__ */ jsx(RemoveCircleIcon, { size: "smallest", color: "disabled", className: "text-gray-500" }) }) })
5854
+ disabled && onHover && disabledTooltip && /* @__PURE__ */ jsx("div", { className: "absolute top-1 right-1 text-xs", children: /* @__PURE__ */ jsx(Tooltip, { title: disabledTooltip, children: /* @__PURE__ */ jsx(RemoveCircleIcon, { size: "smallest", color: "disabled", className: "text-surface-500" }) }) })
5848
5855
  ]
5849
5856
  }
5850
5857
  );
@@ -6325,7 +6332,7 @@ const EntityCollectionRowActions = function EntityCollectionRowActions2({
6325
6332
  "div",
6326
6333
  {
6327
6334
  className: cls(
6328
- "h-full flex items-center justify-center flex-col bg-gray-50 dark:bg-gray-900 bg-opacity-90 dark:bg-opacity-90 z-10",
6335
+ "h-full flex items-center justify-center flex-col bg-surface-50 dark:bg-surface-900 bg-opacity-90 dark:bg-opacity-90 z-10",
6329
6336
  frozen ? "sticky left-0" : ""
6330
6337
  ),
6331
6338
  style: {
@@ -6456,7 +6463,7 @@ function CollectionTableToolbar({
6456
6463
  return /* @__PURE__ */ jsxs(
6457
6464
  "div",
6458
6465
  {
6459
- className: cls(defaultBorderMixin, "no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-gray-50 dark:bg-gray-900 border-b flex flex-row justify-between items-center w-full"),
6466
+ className: cls(defaultBorderMixin, "no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-surface-50 dark:bg-surface-900 border-b flex flex-row justify-between items-center w-full"),
6460
6467
  children: [
6461
6468
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 md:mr-4 mr-2", children: [
6462
6469
  title && /* @__PURE__ */ jsx("div", { className: "hidden lg:block", children: title }),
@@ -6702,7 +6709,7 @@ function CircularProgressCenter({ text, ...props }) {
6702
6709
  return /* @__PURE__ */ jsx(
6703
6710
  "div",
6704
6711
  {
6705
- className: "flex w-full h-screen max-h-full max-w-full bg-gray-50 dark:bg-gray-900 gap-4",
6712
+ className: "flex w-full h-screen max-h-full max-w-full bg-surface-50 dark:bg-surface-900 gap-4",
6706
6713
  children: /* @__PURE__ */ jsxs("div", { className: "m-auto flex flex-col gap-2 items-center", children: [
6707
6714
  /* @__PURE__ */ jsx(CircularProgress, { ...props }),
6708
6715
  text && /* @__PURE__ */ jsx(
@@ -6750,9 +6757,9 @@ const VirtualTableHeader = React__default.memo(
6750
6757
  "div",
6751
6758
  {
6752
6759
  className: cls(
6753
- "flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center bg-gray-50 dark:bg-gray-900",
6754
- "text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 ",
6755
- "hover:bg-gray-100 dark:hover:bg-gray-800 hover:bg-opacity-50 dark:hover:bg-opacity-50",
6760
+ "flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center bg-surface-50 dark:bg-surface-900",
6761
+ "text-text-secondary hover:text-text-primary dark:text-text-secondary-dark dark:hover:text-text-primary-dark",
6762
+ "hover:bg-surface-100 dark:hover:bg-surface-800 hover:bg-opacity-50 dark:hover:bg-opacity-50",
6756
6763
  column.frozen ? "sticky left-0 z-10" : "relative z-0"
6757
6764
  ),
6758
6765
  style: {
@@ -6798,7 +6805,7 @@ const VirtualTableHeader = React__default.memo(
6798
6805
  IconButton,
6799
6806
  {
6800
6807
  size: "small",
6801
- className: onHover || openFilter ? "bg-white dark:bg-gray-950" : void 0,
6808
+ className: onHover || openFilter ? "bg-white dark:bg-surface-950" : void 0,
6802
6809
  onClick: () => {
6803
6810
  onColumnSort(column.key);
6804
6811
  },
@@ -6827,7 +6834,7 @@ const VirtualTableHeader = React__default.memo(
6827
6834
  trigger: /* @__PURE__ */ jsx(
6828
6835
  IconButton,
6829
6836
  {
6830
- className: onHover || openFilter ? "bg-white dark:bg-gray-950" : void 0,
6837
+ className: onHover || openFilter ? "bg-white dark:bg-surface-950" : void 0,
6831
6838
  size: "small",
6832
6839
  onClick: handleSettingsClick,
6833
6840
  children: /* @__PURE__ */ jsx(FilterListIcon, { size: "small" })
@@ -6855,7 +6862,7 @@ const VirtualTableHeader = React__default.memo(
6855
6862
  ref: resizeHandleRef,
6856
6863
  className: cls(
6857
6864
  "absolute h-full w-[6px] top-0 right-0 cursor-col-resize",
6858
- hovered && "bg-gray-300 dark:bg-gray-700"
6865
+ hovered && "bg-surface-300 dark:bg-surface-700"
6859
6866
  ),
6860
6867
  onMouseDown: onClickResizeColumn ? () => onClickResizeColumn(columnIndex, column) : void 0
6861
6868
  }
@@ -6906,12 +6913,12 @@ function FilterForm({
6906
6913
  e.preventDefault();
6907
6914
  submit();
6908
6915
  },
6909
- className: "text-gray-900 dark:text-white",
6916
+ className: "text-surface-900 dark:text-white",
6910
6917
  children: [
6911
6918
  /* @__PURE__ */ jsx(
6912
6919
  "div",
6913
6920
  {
6914
- className: cls(defaultBorderMixin, "py-4 px-6 text-xs font-semibold uppercase border-b"),
6921
+ className: cls(defaultBorderMixin, "py-4 px-6 typography-label border-b"),
6915
6922
  children: column.title ?? id
6916
6923
  }
6917
6924
  ),
@@ -7028,7 +7035,7 @@ const VirtualTableHeaderRow = ({
7028
7035
  return /* @__PURE__ */ jsxs(
7029
7036
  "div",
7030
7037
  {
7031
- className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 h-12 border-b bg-gray-50 dark:bg-gray-900"),
7038
+ className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 h-12 border-b bg-surface-50 dark:bg-surface-900"),
7032
7039
  children: [
7033
7040
  columns.map((c, columnIndex) => {
7034
7041
  const column = columns[columnIndex];
@@ -7078,7 +7085,7 @@ const VirtualTableRow = React__default.memo(
7078
7085
  "div",
7079
7086
  {
7080
7087
  className: cls(
7081
- "flex min-w-full text-sm border-b border-gray-200 dark:border-gray-800 border-opacity-40 dark:border-opacity-40",
7088
+ "flex min-w-full text-sm border-b border-surface-200 dark:border-surface-800 border-opacity-40 dark:border-opacity-40",
7082
7089
  rowClassName ? rowClassName(rowData) : "",
7083
7090
  {
7084
7091
  "hover:bg-opacity-95": hoverRow,
@@ -7585,7 +7592,7 @@ function ReferenceFilterField({
7585
7592
  !isArray && /* @__PURE__ */ jsxs(
7586
7593
  Label,
7587
7594
  {
7588
- className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-gray-100 dark:[&:has(:checked)]:bg-gray-800",
7595
+ className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800",
7589
7596
  htmlFor: "null-filter",
7590
7597
  children: [
7591
7598
  /* @__PURE__ */ jsx(
@@ -7777,7 +7784,7 @@ function StringNumberFilterField({
7777
7784
  !isArray && /* @__PURE__ */ jsxs(
7778
7785
  Label,
7779
7786
  {
7780
- className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-gray-100 dark:[&:has(:checked)]:bg-gray-800",
7787
+ className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800",
7781
7788
  htmlFor: "null-filter",
7782
7789
  children: [
7783
7790
  /* @__PURE__ */ jsx(
@@ -7904,7 +7911,7 @@ function DateTimeFilterField({
7904
7911
  /* @__PURE__ */ jsxs(
7905
7912
  Label,
7906
7913
  {
7907
- className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-gray-100 dark:[&:has(:checked)]:bg-gray-800",
7914
+ className: "border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800",
7908
7915
  htmlFor: "null-filter",
7909
7916
  children: [
7910
7917
  /* @__PURE__ */ jsx(
@@ -8018,7 +8025,7 @@ const SelectableTable = React__default.memo(
8018
8025
  children: /* @__PURE__ */ jsx(
8019
8026
  "div",
8020
8027
  {
8021
- className: "h-full w-full flex flex-col bg-white dark:bg-gray-950",
8028
+ className: "h-full w-full flex flex-col bg-white dark:bg-surface-950",
8022
8029
  ref,
8023
8030
  children: /* @__PURE__ */ jsx(
8024
8031
  VirtualTable,
@@ -8041,7 +8048,7 @@ const SelectableTable = React__default.memo(
8041
8048
  checkFilterCombination,
8042
8049
  createFilterField: filterable ? createFilterField : void 0,
8043
8050
  rowClassName: useCallback((entity) => {
8044
- return highlightedRow?.(entity) ? "bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75" : "";
8051
+ return highlightedRow?.(entity) ? "bg-surface-100 bg-opacity-75 dark:bg-surface-800 dark:bg-opacity-75" : "";
8045
8052
  }, [highlightedRow]),
8046
8053
  className: "flex-grow",
8047
8054
  emptyComponent,
@@ -8341,7 +8348,7 @@ const EntityCollectionTable = function EntityCollectionTable2({
8341
8348
  {
8342
8349
  ref,
8343
8350
  style,
8344
- className: cls("h-full w-full flex flex-col bg-white dark:bg-gray-950", className),
8351
+ className: cls("h-full w-full flex flex-col bg-white dark:bg-surface-950", className),
8345
8352
  children: [
8346
8353
  /* @__PURE__ */ jsx(
8347
8354
  CollectionTableToolbar,
@@ -9158,7 +9165,7 @@ function ReferenceSelectionTable({
9158
9165
  {
9159
9166
  size: "small",
9160
9167
  collectionOrView: collection,
9161
- className: "text-gray-300 dark:text-gray-600"
9168
+ className: "text-surface-300 dark:text-surface-600"
9162
9169
  }
9163
9170
  ),
9164
9171
  collection.singularName ? `Select ${collection.singularName}` : `Select from ${collection.name}`
@@ -9258,7 +9265,7 @@ function NavigationGroup({
9258
9265
  ExpandablePanel,
9259
9266
  {
9260
9267
  invisible: true,
9261
- titleClassName: "font-medium text-sm text-gray-600 dark:text-gray-400",
9268
+ titleClassName: "font-medium text-sm text-surface-600 dark:text-surface-400",
9262
9269
  innerClassName: "py-4",
9263
9270
  initiallyExpanded: !(userConfigurationPersistence?.collapsedGroups ?? []).includes(group ?? "ungrouped"),
9264
9271
  onExpandedChange: (expanded) => {
@@ -9306,7 +9313,7 @@ function NavigationCard({
9306
9313
  /* @__PURE__ */ jsxs(
9307
9314
  "div",
9308
9315
  {
9309
- className: "h-10 flex items-center w-full justify-between text-gray-300 dark:text-gray-600",
9316
+ className: "h-10 flex items-center w-full justify-between text-surface-300 dark:text-surface-600",
9310
9317
  children: [
9311
9318
  icon,
9312
9319
  /* @__PURE__ */ jsx(
@@ -9426,7 +9433,7 @@ function NavigationCardBinding({
9426
9433
  StarBorderIcon,
9427
9434
  {
9428
9435
  size: 18,
9429
- className: "text-gray-400 dark:text-gray-500"
9436
+ className: "text-surface-400 dark:text-surface-500"
9430
9437
  }
9431
9438
  )
9432
9439
  },
@@ -9515,7 +9522,7 @@ function NavigationChip({ entry }) {
9515
9522
  {
9516
9523
  onClick: onIconClick,
9517
9524
  size: 18,
9518
- className: "text-gray-400 dark:text-gray-500"
9525
+ className: "text-surface-400 dark:text-surface-500"
9519
9526
  }
9520
9527
  ),
9521
9528
  children: entry.name
@@ -10754,7 +10761,7 @@ function EntityEditViewInner({
10754
10761
  pluginActions.length > 0 && /* @__PURE__ */ jsx(
10755
10762
  "div",
10756
10763
  {
10757
- className: cls("w-full flex justify-end items-center sticky top-0 right-0 left-0 z-10 bg-opacity-60 bg-slate-200 dark:bg-opacity-60 dark:bg-slate-800 backdrop-blur-md"),
10764
+ className: cls("w-full flex justify-end items-center sticky top-0 right-0 left-0 z-10 bg-opacity-60 bg-surface-accent-200 dark:bg-opacity-60 dark:bg-surface-accent-800 backdrop-blur-md"),
10758
10765
  children: pluginActions
10759
10766
  }
10760
10767
  ),
@@ -10879,7 +10886,7 @@ function EntityEditViewInner({
10879
10886
  /* @__PURE__ */ jsxs(
10880
10887
  "div",
10881
10888
  {
10882
- className: cls(defaultBorderMixin, "no-scrollbar h-16 border-b pl-2 pr-2 pt-1 flex items-end overflow-scroll bg-gray-50 dark:bg-gray-950"),
10889
+ className: cls(defaultBorderMixin, "no-scrollbar h-16 border-b pl-2 pr-2 pt-1 flex items-end overflow-scroll bg-surface-50 dark:bg-surface-950"),
10883
10890
  children: [
10884
10891
  /* @__PURE__ */ jsx(
10885
10892
  "div",
@@ -11249,7 +11256,7 @@ function PopupFormFieldInternal({
11249
11256
  const form = /* @__PURE__ */ jsxs(
11250
11257
  "div",
11251
11258
  {
11252
- className: `text-gray-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-gray-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`,
11259
+ className: `text-surface-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-surface-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`,
11253
11260
  children: [
11254
11261
  internalForm,
11255
11262
  savingError && /* @__PURE__ */ jsx(Typography, { color: "error", children: savingError.message })
@@ -11262,7 +11269,7 @@ function PopupFormFieldInternal({
11262
11269
  style: {
11263
11270
  boxShadow: "0 0 0 2px rgba(128,128,128,0.2)"
11264
11271
  },
11265
- className: `inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-gray-950 ${!open ? "invisible" : "visible"} cursor-grab overflow-visible`,
11272
+ className: `inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-surface-950 ${!open ? "invisible" : "visible"} cursor-grab overflow-visible`,
11266
11273
  ref: draggableRef,
11267
11274
  children: [
11268
11275
  /* @__PURE__ */ jsx(ElementResizeListener, { onResize: adaptResize }),
@@ -11275,7 +11282,7 @@ function PopupFormFieldInternal({
11275
11282
  /* @__PURE__ */ jsx(
11276
11283
  "div",
11277
11284
  {
11278
- className: "absolute -top-3.5 -right-3.5 bg-gray-500 rounded-full",
11285
+ className: "absolute -top-3.5 -right-3.5 bg-surface-500 rounded-full",
11279
11286
  style: {
11280
11287
  width: "32px",
11281
11288
  height: "32px"
@@ -11736,7 +11743,7 @@ const EntityCollectionView = React__default.memo(
11736
11743
  }
11737
11744
  )
11738
11745
  ] }),
11739
- children: collection.description && /* @__PURE__ */ jsx("div", { className: "m-4 text-gray-900 dark:text-white", children: /* @__PURE__ */ jsx(Markdown, { source: collection.description }) })
11746
+ children: collection.description && /* @__PURE__ */ jsx("div", { className: "m-4 text-surface-900 dark:text-white", children: /* @__PURE__ */ jsx(Markdown, { source: collection.description }) })
11740
11747
  }
11741
11748
  );
11742
11749
  const buildAdditionalHeaderWidget = useCallback(({
@@ -11978,7 +11985,7 @@ function EntityIdHeaderWidget({
11978
11985
  align: "start",
11979
11986
  alignOffset: -117,
11980
11987
  trigger: /* @__PURE__ */ jsx(IconButton, { size: "small", children: /* @__PURE__ */ jsx(SearchIcon, { size: "small" }) }),
11981
- children: /* @__PURE__ */ jsxs("div", { className: cls("my-2 rounded-lg bg-gray-50 dark:bg-gray-950 text-gray-900 dark:text-white"), children: [
11988
+ children: /* @__PURE__ */ jsxs("div", { className: cls("my-2 rounded-lg bg-surface-50 dark:bg-surface-950 text-surface-900 dark:text-white"), children: [
11982
11989
  /* @__PURE__ */ jsx(
11983
11990
  "form",
11984
11991
  {
@@ -12006,7 +12013,7 @@ function EntityIdHeaderWidget({
12006
12013
  setSearchString(e.target.value);
12007
12014
  },
12008
12015
  value: searchString,
12009
- className: "rounded-lg bg-white dark:bg-gray-800 flex-grow bg-transparent outline-none p-2 " + focusedDisabled
12016
+ className: "rounded-lg bg-white dark:bg-surface-800 flex-grow bg-transparent outline-none p-2 " + focusedDisabled
12010
12017
  }
12011
12018
  ),
12012
12019
  /* @__PURE__ */ jsx(
@@ -12048,7 +12055,7 @@ function PropertyConfigBadge({
12048
12055
  propertyConfig,
12049
12056
  disabled
12050
12057
  }) {
12051
- const classes = "h-8 w-8 p-1 rounded-full shadow text-white " + (disabled ? "bg-gray-400 dark:bg-gray-600" : "");
12058
+ const classes = "h-8 w-8 p-1 rounded-full shadow text-white " + (disabled ? "bg-surface-400 dark:bg-surface-600" : "");
12052
12059
  const defaultPropertyConfig = typeof propertyConfig?.property === "object" ? getDefaultFieldConfig(propertyConfig.property) : void 0;
12053
12060
  return /* @__PURE__ */ jsx(
12054
12061
  "div",
@@ -12578,7 +12585,7 @@ function ArrayContainerItem({
12578
12585
  ref: provided.innerRef,
12579
12586
  ...provided.draggableProps,
12580
12587
  style: provided.draggableProps.style,
12581
- className: `${!isDragging ? "hover:bg-slate-50 dark:hover:bg-gray-800 dark:hover:bg-opacity-20" : ""} rounded-md opacity-100`,
12588
+ className: `${!isDragging ? "hover:bg-surface-accent-50 dark:hover:bg-surface-800 dark:hover:bg-opacity-20" : ""} rounded-md opacity-100`,
12582
12589
  children: /* @__PURE__ */ jsxs(
12583
12590
  "div",
12584
12591
  {
@@ -13532,7 +13539,7 @@ function EmptyValue() {
13532
13539
  return /* @__PURE__ */ jsx(
13533
13540
  "div",
13534
13541
  {
13535
- className: "rounded-full bg-gray-200 bg-opacity-30 dark:bg-opacity-20 w-5 h-2 inline-block"
13542
+ className: "rounded-full bg-surface-200 bg-opacity-30 dark:bg-opacity-20 w-5 h-2 inline-block"
13536
13543
  }
13537
13544
  );
13538
13545
  }
@@ -13599,7 +13606,7 @@ function ImagePreview({
13599
13606
  children: /* @__PURE__ */ jsx(
13600
13607
  ContentCopyIcon,
13601
13608
  {
13602
- className: "text-gray-700 dark:text-gray-300",
13609
+ className: "text-surface-700 dark:text-surface-300",
13603
13610
  size: "smallest"
13604
13611
  }
13605
13612
  )
@@ -13621,7 +13628,7 @@ function ImagePreview({
13621
13628
  children: /* @__PURE__ */ jsx(
13622
13629
  OpenInNewIcon,
13623
13630
  {
13624
- className: "text-gray-700 dark:text-gray-300",
13631
+ className: "text-surface-700 dark:text-surface-300",
13625
13632
  size: "smallest"
13626
13633
  }
13627
13634
  )
@@ -13697,7 +13704,7 @@ function UrlComponentPreview({
13697
13704
  height: getThumbnailMeasure(size)
13698
13705
  },
13699
13706
  children: [
13700
- /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-gray-700 dark:text-gray-300" }),
13707
+ /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" }),
13701
13708
  hint && /* @__PURE__ */ jsx(Tooltip, { title: hint, children: /* @__PURE__ */ jsx(
13702
13709
  Typography,
13703
13710
  {
@@ -15365,7 +15372,7 @@ function StorageItemPreview({
15365
15372
  !placeholder && !disabled && /* @__PURE__ */ jsx(
15366
15373
  "div",
15367
15374
  {
15368
- className: "absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-gray-900",
15375
+ className: "absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-surface-900",
15369
15376
  children: /* @__PURE__ */ jsx(
15370
15377
  Tooltip,
15371
15378
  {
@@ -15401,7 +15408,7 @@ function StorageItemPreview({
15401
15408
  {
15402
15409
  onClick: (e) => e.stopPropagation(),
15403
15410
  className: "flex flex-col items-center justify-center w-full h-full",
15404
- children: /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-gray-700 dark:text-gray-300" })
15411
+ children: /* @__PURE__ */ jsx(DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" })
15405
15412
  }
15406
15413
  )
15407
15414
  ] });
@@ -16111,7 +16118,7 @@ function ReferenceFieldBindingInternal({
16111
16118
  {
16112
16119
  className: cls(
16113
16120
  "px-6 h-16 text-sm font-medium flex items-center gap-6",
16114
- disabled || isSubmitting ? "text-slate-500" : "cursor-pointer text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-gray-800 group-hover:bg-slate-50 dark:group-hover:bg-gray-800"
16121
+ disabled || isSubmitting ? "text-surface-accent-500" : "cursor-pointer text-surface-accent-700 dark:text-surface-accent-300 hover:bg-surface-accent-50 dark:hover:bg-surface-800 group-hover:bg-surface-accent-50 dark:group-hover:bg-surface-800"
16115
16122
  ),
16116
16123
  onClick: onEntryClick,
16117
16124
  size: "medium",
@@ -16120,7 +16127,7 @@ function ReferenceFieldBindingInternal({
16120
16127
  IconForView,
16121
16128
  {
16122
16129
  collectionOrView: collection,
16123
- className: "text-gray-300 dark:text-gray-600"
16130
+ className: "text-surface-300 dark:text-surface-600"
16124
16131
  }
16125
16132
  ),
16126
16133
  `Edit ${property.name}`.toUpperCase()
@@ -16452,7 +16459,7 @@ function MapFieldBinding({
16452
16459
  expanded: expanded2
16453
16460
  });
16454
16461
  },
16455
- innerClassName: "px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2 bg-white dark:bg-gray-900",
16462
+ innerClassName: "px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2 bg-white dark:bg-surface-900",
16456
16463
  title,
16457
16464
  children: mapFormView
16458
16465
  }
@@ -17709,7 +17716,7 @@ const DEFAULT_FIELD_CONFIGS = {
17709
17716
  },
17710
17717
  multi_select: {
17711
17718
  key: "multi_select",
17712
- name: "Multi select",
17719
+ name: "Multi select (enum)",
17713
17720
  description: "Select multiple text values from within an enumeration",
17714
17721
  Icon: ListAltIcon,
17715
17722
  color: "#4223c9",
@@ -18483,7 +18490,7 @@ function SideDialogView({
18483
18490
  panel && /* @__PURE__ */ jsx(
18484
18491
  "div",
18485
18492
  {
18486
- className: "transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-gray-900 ",
18493
+ className: "transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-surface-900 ",
18487
18494
  style: {
18488
18495
  width: panel.width,
18489
18496
  transform: `translateX(-${offsetPosition * 200}px)`
@@ -19364,7 +19371,7 @@ const Scaffold = React__default.memo(
19364
19371
  }, children: /* @__PURE__ */ jsxs(
19365
19372
  "div",
19366
19373
  {
19367
- className: cls("flex h-screen w-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white overflow-hidden", className),
19374
+ className: cls("flex h-screen w-screen bg-surface-50 dark:bg-surface-900 text-surface-900 dark:text-white overflow-hidden", className),
19368
19375
  style: {
19369
19376
  paddingTop: "env(safe-area-inset-top)",
19370
19377
  paddingLeft: "env(safe-area-inset-left)",
@@ -19436,7 +19443,7 @@ function DrawerWrapper(props) {
19436
19443
  children: /* @__PURE__ */ jsx(
19437
19444
  "div",
19438
19445
  {
19439
- className: "ml-2 fixed top-1 left-2 sm:top-2 sm:left-3 !bg-gray-50 dark:!bg-gray-900 rounded-full w-fit z-20",
19446
+ className: "ml-2 fixed top-1 left-2 sm:top-2 sm:left-3 !bg-surface-50 dark:!bg-surface-900 rounded-full w-fit z-20",
19440
19447
  children: /* @__PURE__ */ jsx(
19441
19448
  IconButton,
19442
19449
  {
@@ -19526,7 +19533,7 @@ function DrawerNavigationItem({
19526
19533
  const iconWrap = /* @__PURE__ */ jsx(
19527
19534
  "div",
19528
19535
  {
19529
- className: "text-gray-600 dark:text-gray-500",
19536
+ className: "text-text-secondary dark:text-text-secondary-dark",
19530
19537
  children: icon
19531
19538
  }
19532
19539
  );
@@ -19540,13 +19547,13 @@ function DrawerNavigationItem({
19540
19547
  },
19541
19548
  className: ({ isActive }) => cls(
19542
19549
  "rounded-lg truncate",
19543
- "hover:bg-slate-300 hover:bg-opacity-75 dark:hover:bg-slate-800 dark:hover:bg-opacity-75 text-gray-800 dark:text-gray-200 hover:text-gray-900 hover:dark:text-white",
19550
+ "hover:bg-surface-accent-300 hover:bg-opacity-75 dark:hover:bg-surface-accent-800 dark:hover:bg-opacity-75 text-text-secondary dark:text-surface-200 hover:text-surface-900 hover:dark:text-white",
19544
19551
  "flex flex-row items-center mr-8",
19545
19552
  // "transition-all ease-in-out delay-100 duration-300",
19546
19553
  // drawerOpen ? "w-full" : "w-18",
19547
19554
  drawerOpen ? "pl-4 h-12" : "pl-4 h-11",
19548
19555
  "font-medium text-sm",
19549
- isActive ? "bg-slate-200 bg-opacity-60 dark:bg-gray-800 dark:bg-opacity-50" : ""
19556
+ isActive ? "bg-surface-accent-200 bg-opacity-60 dark:bg-surface-800 dark:bg-opacity-50" : ""
19550
19557
  ),
19551
19558
  to: url,
19552
19559
  children: [
@@ -19634,7 +19641,7 @@ function DefaultDrawer({
19634
19641
  children: groupsWithoutAdmin.map((group) => /* @__PURE__ */ jsxs(
19635
19642
  "div",
19636
19643
  {
19637
- className: "bg-gray-50 dark:bg-gray-800 dark:bg-opacity-30 my-4 rounded-lg ml-4",
19644
+ className: "bg-surface-50 dark:bg-surface-800 dark:bg-opacity-30 my-4 rounded-lg ml-4",
19638
19645
  children: [
19639
19646
  buildGroupHeader(group),
19640
19647
  Object.values(navigationEntries).filter((e) => e.group === group).map((view, index) => /* @__PURE__ */ jsx(
@@ -19666,7 +19673,7 @@ function DefaultDrawer({
19666
19673
  IconButton,
19667
19674
  {
19668
19675
  shape: "square",
19669
- className: "m-4 text-gray-900 dark:text-white w-fit",
19676
+ className: "m-4 text-surface-900 dark:text-white w-fit",
19670
19677
  children: [
19671
19678
  /* @__PURE__ */ jsx(
19672
19679
  Tooltip,