@firecms/core 3.5.0 → 3.5.2-canary.09e1281

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 (56) hide show
  1. package/dist/components/EntityCollectionView/CollectionCountBadge.d.ts +8 -0
  2. package/dist/components/EntityCollectionView/CollectionPathTitle.d.ts +24 -0
  3. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +5 -0
  4. package/dist/components/EntityCollectionView/EntityIdHeaderWidget.d.ts +12 -0
  5. package/dist/components/EntityCollectionView/utils.d.ts +3 -3
  6. package/dist/components/HomePage/HomePageDnD.d.ts +4 -2
  7. package/dist/{de-CBOjCvsy.js → de-CUF9f7S-.js} +2 -1
  8. package/dist/{de-CBOjCvsy.js.map → de-CUF9f7S-.js.map} +1 -1
  9. package/dist/{editor-BSo_aS1I.js → editor-WZytSO_1.js} +172 -137
  10. package/dist/editor-WZytSO_1.js.map +1 -0
  11. package/dist/{fr-DRfttcG0.js → fr-DmkMX6hp.js} +2 -1
  12. package/dist/{fr-DRfttcG0.js.map → fr-DmkMX6hp.js.map} +1 -1
  13. package/dist/{hi-DwieOZNf.js → hi-BKuaMr7w.js} +2 -1
  14. package/dist/{hi-DwieOZNf.js.map → hi-BKuaMr7w.js.map} +1 -1
  15. package/dist/index.es.js +787 -638
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/index.umd.js +946 -756
  18. package/dist/index.umd.js.map +1 -1
  19. package/dist/internal/useLeavePageConfirmation.d.ts +11 -0
  20. package/dist/{it-l2KXtx9n.js → it-BwQflFGz.js} +2 -1
  21. package/dist/{it-l2KXtx9n.js.map → it-BwQflFGz.js.map} +1 -1
  22. package/dist/{pl-DPZrdKhi.js → pl-BPsAvZvc.js} +2 -1
  23. package/dist/{pl-DPZrdKhi.js.map → pl-BPsAvZvc.js.map} +1 -1
  24. package/dist/{pt-BoHpabw1.js → pt-D5q7OQp1.js} +2 -1
  25. package/dist/{pt-BoHpabw1.js.map → pt-D5q7OQp1.js.map} +1 -1
  26. package/dist/types/side_dialogs_controller.d.ts +4 -2
  27. package/dist/types/translations.d.ts +1 -0
  28. package/package.json +3 -3
  29. package/src/components/EntityCollectionView/CollectionCountBadge.tsx +17 -0
  30. package/src/components/EntityCollectionView/CollectionPathTitle.tsx +68 -0
  31. package/src/components/EntityCollectionView/EntityCollectionView.tsx +12 -111
  32. package/src/components/EntityCollectionView/EntityIdHeaderWidget.tsx +124 -0
  33. package/src/components/EntityCollectionView/utils.ts +7 -7
  34. package/src/components/HomePage/DefaultHomePage.tsx +2 -0
  35. package/src/components/HomePage/HomePageDnD.tsx +12 -4
  36. package/src/components/common/default_entity_actions.tsx +2 -1
  37. package/src/core/DefaultAppBar.tsx +12 -9
  38. package/src/core/EntityEditView.tsx +26 -1
  39. package/src/core/SideDialogs.tsx +6 -13
  40. package/src/editor/selectors/link-selector.tsx +37 -12
  41. package/src/hooks/useReferenceDialog.tsx +2 -2
  42. package/src/internal/useBuildSideDialogsController.tsx +44 -2
  43. package/src/internal/useLeavePageConfirmation.ts +25 -0
  44. package/src/locales/de.ts +1 -0
  45. package/src/locales/en.ts +1 -0
  46. package/src/locales/es.ts +1 -0
  47. package/src/locales/fr.ts +1 -0
  48. package/src/locales/hi.ts +1 -0
  49. package/src/locales/it.ts +1 -0
  50. package/src/locales/pl.ts +1 -0
  51. package/src/locales/pt.ts +1 -0
  52. package/src/types/side_dialogs_controller.tsx +4 -2
  53. package/src/types/translations.ts +1 -0
  54. package/dist/editor-BSo_aS1I.js.map +0 -1
  55. package/dist/internal/useUnsavedChangesDialog.d.ts +0 -12
  56. package/src/internal/useUnsavedChangesDialog.tsx +0 -142
package/dist/index.umd.js CHANGED
@@ -4802,7 +4802,7 @@
4802
4802
  }
4803
4803
  function useDateFnsLocale(locale) {
4804
4804
  const $ = reactCompilerRuntime.c(7);
4805
- const [, forceUpdate] = React.useReducer(_temp$G, 0);
4805
+ const [, forceUpdate] = React.useReducer(_temp$I, 0);
4806
4806
  let t0;
4807
4807
  if ($[0] !== forceUpdate || $[1] !== locale) {
4808
4808
  t0 = () => {
@@ -4845,7 +4845,7 @@
4845
4845
  }
4846
4846
  return t2;
4847
4847
  }
4848
- function _temp$G(count) {
4848
+ function _temp$I(count) {
4849
4849
  return count + 1;
4850
4850
  }
4851
4851
  const CONTAINER_FULL_WIDTH = "100vw";
@@ -5062,7 +5062,7 @@
5062
5062
  }
5063
5063
  setDataLoading(false);
5064
5064
  setDataLoadingError(void 0);
5065
- setData(entities.map(_temp$F));
5065
+ setData(entities.map(_temp$H));
5066
5066
  setNoMoreToLoad(!itemCount || entities.length < itemCount);
5067
5067
  };
5068
5068
  const onError = (error) => {
@@ -5097,7 +5097,7 @@
5097
5097
  orderBy: sortByProperty,
5098
5098
  order: currentSort
5099
5099
  }).then(onEntitiesUpdate).catch(onError);
5100
- return _temp2$h;
5100
+ return _temp2$i;
5101
5101
  }
5102
5102
  };
5103
5103
  $[8] = collection;
@@ -5146,9 +5146,9 @@
5146
5146
  }
5147
5147
  return t6;
5148
5148
  }
5149
- function _temp2$h() {
5149
+ function _temp2$i() {
5150
5150
  }
5151
- function _temp$F(e_1) {
5151
+ function _temp$H(e_1) {
5152
5152
  return {
5153
5153
  ...e_1
5154
5154
  };
@@ -5361,7 +5361,7 @@
5361
5361
  setEntity(CACHE[entityCacheKey(path, entityId)]);
5362
5362
  setDataLoading(false);
5363
5363
  setDataLoadingError(void 0);
5364
- return _temp$E;
5364
+ return _temp$G;
5365
5365
  } else {
5366
5366
  if (entityId && path && collection) {
5367
5367
  if (dataSource.listenEntity) {
@@ -5382,7 +5382,7 @@
5382
5382
  databaseId,
5383
5383
  collection
5384
5384
  }).then(onEntityUpdate).catch(onError);
5385
- return _temp2$g;
5385
+ return _temp2$h;
5386
5386
  }
5387
5387
  } else {
5388
5388
  onEntityUpdate(void 0);
@@ -5430,9 +5430,9 @@
5430
5430
  }
5431
5431
  function _temp3$7() {
5432
5432
  }
5433
- function _temp2$g() {
5433
+ function _temp2$h() {
5434
5434
  }
5435
- function _temp$E() {
5435
+ function _temp$G() {
5436
5436
  }
5437
5437
  async function saveEntityWithCallbacks({
5438
5438
  collection,
@@ -6087,7 +6087,7 @@
6087
6087
  }
6088
6088
  let t9;
6089
6089
  if ($[19] !== url) {
6090
- t9 = /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { title: "Open image in new tab", side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { className: "invisible group-hover:visible", variant: "filled", component: "a", href: url, rel: "noopener noreferrer", target: "_blank", size: "smallest", onClick: _temp$D, children: t8 }) });
6090
+ t9 = /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { title: "Open image in new tab", side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { className: "invisible group-hover:visible", variant: "filled", component: "a", href: url, rel: "noopener noreferrer", target: "_blank", size: "smallest", onClick: _temp$F, children: t8 }) });
6091
6091
  $[19] = url;
6092
6092
  $[20] = t9;
6093
6093
  } else {
@@ -6121,7 +6121,7 @@
6121
6121
  }
6122
6122
  return t11;
6123
6123
  }
6124
- function _temp$D(e_0) {
6124
+ function _temp$F(e_0) {
6125
6125
  return e_0.stopPropagation();
6126
6126
  }
6127
6127
  const FIRECMS_NS$1 = "firecms_core";
@@ -6188,7 +6188,7 @@
6188
6188
  }
6189
6189
  let t3;
6190
6190
  if ($[2] !== url) {
6191
- t3 = /* @__PURE__ */ jsxRuntime.jsxs("a", { className: "flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary", href: url, rel: "noopener noreferrer", onMouseDown: _temp$C, target: "_blank", children: [
6191
+ t3 = /* @__PURE__ */ jsxRuntime.jsxs("a", { className: "flex gap-4 break-words items-center font-medium text-primary visited:text-primary dark:visited:text-primary dark:text-primary", href: url, rel: "noopener noreferrer", onMouseDown: _temp$E, target: "_blank", children: [
6192
6192
  t2,
6193
6193
  url
6194
6194
  ] });
@@ -6290,7 +6290,7 @@
6290
6290
  }
6291
6291
  let t7;
6292
6292
  if ($[27] !== t4 || $[28] !== t6 || $[29] !== url) {
6293
- t7 = /* @__PURE__ */ jsxRuntime.jsxs("a", { href: url, rel: "noopener noreferrer", target: "_blank", onClick: _temp2$f, className: "flex flex-col items-center justify-center", style: t4, children: [
6293
+ t7 = /* @__PURE__ */ jsxRuntime.jsxs("a", { href: url, rel: "noopener noreferrer", target: "_blank", onClick: _temp2$g, className: "flex flex-col items-center justify-center", style: t4, children: [
6294
6294
  t5,
6295
6295
  t6
6296
6296
  ] });
@@ -6315,10 +6315,10 @@
6315
6315
  }
6316
6316
  }
6317
6317
  }
6318
- function _temp2$f(e_0) {
6318
+ function _temp2$g(e_0) {
6319
6319
  return e_0.stopPropagation();
6320
6320
  }
6321
- function _temp$C(e) {
6321
+ function _temp$E(e) {
6322
6322
  e.preventDefault();
6323
6323
  }
6324
6324
  function VideoPreview(t0) {
@@ -6452,7 +6452,7 @@
6452
6452
  if (Array.isArray(arrayProperty.of)) {
6453
6453
  let t1;
6454
6454
  if ($[6] !== arrayProperty.of) {
6455
- t1 = arrayProperty.of.map(_temp$B);
6455
+ t1 = arrayProperty.of.map(_temp$D);
6456
6456
  $[6] = arrayProperty.of;
6457
6457
  $[7] = t1;
6458
6458
  } else {
@@ -6590,7 +6590,7 @@
6590
6590
  }
6591
6591
  return content || null;
6592
6592
  }
6593
- function _temp$B(p, i) {
6593
+ function _temp$D(p, i) {
6594
6594
  return renderGenericArrayCell(p, i);
6595
6595
  }
6596
6596
  function renderMap(property, size) {
@@ -7781,7 +7781,7 @@
7781
7781
  timeZoneName: "short"
7782
7782
  });
7783
7783
  const parts = tzFormatter.formatToParts(date);
7784
- t32 = parts.find(_temp$A)?.value ?? "";
7784
+ t32 = parts.find(_temp$C)?.value ?? "";
7785
7785
  $[6] = date;
7786
7786
  $[7] = timezone;
7787
7787
  $[8] = t32;
@@ -7852,7 +7852,7 @@
7852
7852
  }
7853
7853
  return t3;
7854
7854
  }
7855
- function _temp$A(p) {
7855
+ function _temp$C(p) {
7856
7856
  return p.type === "timeZoneName";
7857
7857
  }
7858
7858
  function MapPropertyPreview(t0) {
@@ -7947,7 +7947,7 @@
7947
7947
  }
7948
7948
  let t1;
7949
7949
  if ($[1] !== value) {
7950
- t1 = Object.entries(value).map(_temp$z);
7950
+ t1 = Object.entries(value).map(_temp$B);
7951
7951
  $[1] = value;
7952
7952
  $[2] = t1;
7953
7953
  } else {
@@ -7963,7 +7963,7 @@
7963
7963
  }
7964
7964
  return t2;
7965
7965
  }
7966
- function _temp$z(t0) {
7966
+ function _temp$B(t0) {
7967
7967
  const [key, childValue] = t0;
7968
7968
  const isTimestampObj = childValue && typeof childValue === "object" && (childValue instanceof Date || "_seconds" in childValue && "_nanoseconds" in childValue && typeof childValue._seconds === "number" && typeof childValue._nanoseconds === "number" || "seconds" in childValue && "nanoseconds" in childValue && typeof childValue.seconds === "number" && typeof childValue.nanoseconds === "number");
7969
7969
  const isScalar = childValue && (typeof childValue !== "object" || isTimestampObj);
@@ -9286,7 +9286,7 @@
9286
9286
  console.trace("onChange");
9287
9287
  if (valueType === "number") {
9288
9288
  if (multiple) {
9289
- const newValue = updatedValue.map(_temp$y);
9289
+ const newValue = updatedValue.map(_temp$A);
9290
9290
  updateValue(newValue);
9291
9291
  } else {
9292
9292
  updateValue(parseFloat(updatedValue));
@@ -9339,7 +9339,7 @@
9339
9339
  const handleOpenChange = t4;
9340
9340
  let t5;
9341
9341
  if ($[11] !== disabled || $[12] !== enumValues || $[13] !== internalValue || $[14] !== multiple || $[15] !== onChange || $[16] !== renderValue || $[17] !== small || $[18] !== validValue) {
9342
- t5 = multiple ? /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent outline-none", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue.map(_temp2$e) : [], onValueChange: onChange, onOpenChange: handleOpenChange, children: enumValues?.map((enumConfig) => /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelectItem, { value: String(enumConfig.id), children: /* @__PURE__ */ jsxRuntime.jsx(EnumValuesChip, { enumKey: enumConfig.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig.id)) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent outline-none [&_button]:ring-0 [&_button]:ring-offset-0", inputClassName: "ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-offset-0", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue?.toString() : "", onValueChange: onChange, onOpenChange: handleOpenChange, renderValue, children: enumValues?.map((enumConfig_0) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: String(enumConfig_0.id), children: /* @__PURE__ */ jsxRuntime.jsx(EnumValuesChip, { enumKey: enumConfig_0.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig_0.id)) });
9342
+ t5 = multiple ? /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent outline-none", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue.map(_temp2$f) : [], onValueChange: onChange, onOpenChange: handleOpenChange, children: enumValues?.map((enumConfig) => /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelectItem, { value: String(enumConfig.id), children: /* @__PURE__ */ jsxRuntime.jsx(EnumValuesChip, { enumKey: enumConfig.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig.id)) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent outline-none [&_button]:ring-0 [&_button]:ring-offset-0", inputClassName: "ring-0 ring-offset-0 focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-offset-0", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue?.toString() : "", onValueChange: onChange, onOpenChange: handleOpenChange, renderValue, children: enumValues?.map((enumConfig_0) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: String(enumConfig_0.id), children: /* @__PURE__ */ jsxRuntime.jsx(EnumValuesChip, { enumKey: enumConfig_0.id, enumValues, size: small ? "small" : "medium" }) }, enumConfig_0.id)) });
9343
9343
  $[11] = disabled;
9344
9344
  $[12] = enumValues;
9345
9345
  $[13] = internalValue;
@@ -9354,10 +9354,10 @@
9354
9354
  }
9355
9355
  return t5;
9356
9356
  }
9357
- function _temp2$e(v_0) {
9357
+ function _temp2$f(v_0) {
9358
9358
  return v_0.toString();
9359
9359
  }
9360
- function _temp$y(v) {
9360
+ function _temp$A(v) {
9361
9361
  return parseFloat(v);
9362
9362
  }
9363
9363
  function VirtualTableNumberInput(props) {
@@ -9553,7 +9553,7 @@
9553
9553
  const renderValue = t3;
9554
9554
  let t4;
9555
9555
  if ($[7] !== disabled || $[8] !== internalValue || $[9] !== multiple || $[10] !== onChange || $[11] !== renderValue || $[12] !== users || $[13] !== validValue) {
9556
- t4 = multiple ? /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue : [], onValueChange: onChange, children: users?.map(_temp$x) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue : "", onValueChange: onChange, renderValue, children: users?.map(_temp2$d) });
9556
+ t4 = multiple ? /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelect, { inputRef: ref, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, includeClear: false, useChips: false, value: validValue ? internalValue : [], onValueChange: onChange, children: users?.map(_temp$z) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { inputRef: ref, size: "large", fullWidth: true, className: "w-full h-full p-0 bg-transparent", position: "item-aligned", disabled, padding: false, value: validValue ? internalValue : "", onValueChange: onChange, renderValue, children: users?.map(_temp2$e) });
9557
9557
  $[7] = disabled;
9558
9558
  $[8] = internalValue;
9559
9559
  $[9] = multiple;
@@ -9567,10 +9567,10 @@
9567
9567
  }
9568
9568
  return t4;
9569
9569
  }
9570
- function _temp2$d(user_1) {
9570
+ function _temp2$e(user_1) {
9571
9571
  return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: user_1.uid, children: /* @__PURE__ */ jsxRuntime.jsx(UserDisplay, { user: user_1 }) }, user_1.uid);
9572
9572
  }
9573
- function _temp$x(user_0) {
9573
+ function _temp$z(user_0) {
9574
9574
  return /* @__PURE__ */ jsxRuntime.jsx(ui.MultiSelectItem, { value: user_0.uid, children: /* @__PURE__ */ jsxRuntime.jsx(UserDisplay, { user: user_0 }) }, user_0.uid);
9575
9575
  }
9576
9576
  class ErrorBoundary extends React.Component {
@@ -9818,7 +9818,7 @@
9818
9818
  newValue = [...internalValue];
9819
9819
  newValue = removeDuplicates(newValue);
9820
9820
  setInternalValue(newValue);
9821
- const fieldValue = newValue.filter(_temp$w).map(_temp2$c);
9821
+ const fieldValue = newValue.filter(_temp$y).map(_temp2$d);
9822
9822
  if (multipleFilesSupported) {
9823
9823
  onChange(fieldValue);
9824
9824
  } else {
@@ -9936,10 +9936,10 @@
9936
9936
  }
9937
9937
  return t11;
9938
9938
  }
9939
- function _temp2$c(e_0) {
9939
+ function _temp2$d(e_0) {
9940
9940
  return e_0.storagePathOrDownloadUrl;
9941
9941
  }
9942
- function _temp$w(e) {
9942
+ function _temp$y(e) {
9943
9943
  return !!e.storagePathOrDownloadUrl;
9944
9944
  }
9945
9945
  function getInternalInitialValue(multipleFilesSupported, value, metadata, size) {
@@ -10230,7 +10230,7 @@
10230
10230
  const snackbarContext = useSnackbarController();
10231
10231
  let t1;
10232
10232
  if ($[0] !== storage.acceptedFiles) {
10233
- t1 = storage.acceptedFiles ? storage.acceptedFiles.map(_temp$v).reduce(_temp2$b, {}) : void 0;
10233
+ t1 = storage.acceptedFiles ? storage.acceptedFiles.map(_temp$x).reduce(_temp2$c, {}) : void 0;
10234
10234
  $[0] = storage.acceptedFiles;
10235
10235
  $[1] = t1;
10236
10236
  } else {
@@ -10453,13 +10453,13 @@
10453
10453
  }
10454
10454
  return t20;
10455
10455
  }
10456
- function _temp2$b(a, b) {
10456
+ function _temp2$c(a, b) {
10457
10457
  return {
10458
10458
  ...a,
10459
10459
  ...b
10460
10460
  };
10461
10461
  }
10462
- function _temp$v(e) {
10462
+ function _temp$x(e) {
10463
10463
  return {
10464
10464
  [e]: []
10465
10465
  };
@@ -10569,7 +10569,7 @@
10569
10569
  let t1;
10570
10570
  if ($[2] !== updateValue) {
10571
10571
  t1 = (entities) => {
10572
- updateValue(entities.filter(Boolean).map(_temp$u));
10572
+ updateValue(entities.filter(Boolean).map(_temp$w));
10573
10573
  };
10574
10574
  $[2] = updateValue;
10575
10575
  $[3] = t1;
@@ -10579,7 +10579,7 @@
10579
10579
  const onMultipleEntitiesSelected = t1;
10580
10580
  let t2;
10581
10581
  if ($[4] !== internalValue) {
10582
- t2 = internalValue ? Array.isArray(internalValue) ? internalValue.map(_temp2$a) : internalValue.id ? [internalValue.id] : [] : [];
10582
+ t2 = internalValue ? Array.isArray(internalValue) ? internalValue.map(_temp2$b) : internalValue.id ? [internalValue.id] : [] : [];
10583
10583
  $[4] = internalValue;
10584
10584
  $[5] = t2;
10585
10585
  } else {
@@ -10741,10 +10741,10 @@
10741
10741
  }
10742
10742
  return t10;
10743
10743
  }, equal);
10744
- function _temp$u(e) {
10744
+ function _temp$w(e) {
10745
10745
  return getReferenceFrom(e);
10746
10746
  }
10747
- function _temp2$a(ref) {
10747
+ function _temp2$b(ref) {
10748
10748
  return ref.id;
10749
10749
  }
10750
10750
  yup__namespace.addMethod(yup__namespace.array, "uniqueInArray", function(mapper = (a) => a, message) {
@@ -12399,7 +12399,7 @@
12399
12399
  }
12400
12400
  let t5;
12401
12401
  if ($[15] !== placeholder) {
12402
- t5 = placeholder && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: _temp$t, className: "flex flex-col items-center justify-center w-full h-full", children: /* @__PURE__ */ jsxRuntime.jsx(ui.DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" }) });
12402
+ t5 = placeholder && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: _temp$v, className: "flex flex-col items-center justify-center w-full h-full", children: /* @__PURE__ */ jsxRuntime.jsx(ui.DescriptionIcon, { className: "text-surface-700 dark:text-surface-300" }) });
12403
12403
  $[15] = placeholder;
12404
12404
  $[16] = t5;
12405
12405
  } else {
@@ -12422,7 +12422,7 @@
12422
12422
  }
12423
12423
  return t6;
12424
12424
  }
12425
- function _temp$t(e) {
12425
+ function _temp$v(e) {
12426
12426
  return e.stopPropagation();
12427
12427
  }
12428
12428
  const dropZoneClasses = "box-border relative pt-[2px] items-center border border-transparent min-h-[254px] outline-none rounded-md duration-200 ease-[cubic-bezier(0.4,0,0.2,1)] focus:border-primary-solid";
@@ -12650,7 +12650,7 @@
12650
12650
  t4 = $[7];
12651
12651
  }
12652
12652
  const style = t4;
12653
- const getImageSizeNumber = _temp$s;
12653
+ const getImageSizeNumber = _temp$u;
12654
12654
  let child;
12655
12655
  if (entry.storagePathOrDownloadUrl) {
12656
12656
  const t52 = `storage_preview_${entry.storagePathOrDownloadUrl}`;
@@ -12725,7 +12725,7 @@
12725
12725
  }
12726
12726
  return t6;
12727
12727
  }
12728
- function _temp$s(previewSize) {
12728
+ function _temp$u(previewSize) {
12729
12729
  switch (previewSize) {
12730
12730
  case "small": {
12731
12731
  return 40;
@@ -12762,7 +12762,7 @@
12762
12762
  const snackbarContext = useSnackbarController();
12763
12763
  let t1;
12764
12764
  if ($[0] !== storage.acceptedFiles) {
12765
- t1 = storage.acceptedFiles ? storage.acceptedFiles.reduce(_temp2$9, {}) : void 0;
12765
+ t1 = storage.acceptedFiles ? storage.acceptedFiles.reduce(_temp2$a, {}) : void 0;
12766
12766
  $[0] = storage.acceptedFiles;
12767
12767
  $[1] = t1;
12768
12768
  } else {
@@ -12955,7 +12955,7 @@
12955
12955
  }
12956
12956
  return t21;
12957
12957
  }
12958
- function _temp2$9(acc, ext) {
12958
+ function _temp2$a(acc, ext) {
12959
12959
  return {
12960
12960
  ...acc,
12961
12961
  [ext]: []
@@ -14498,7 +14498,7 @@
14498
14498
  } else {
14499
14499
  t42 = $[20];
14500
14500
  }
14501
- t3 = Object.entries(mapProperties).filter(_temp$r).map(t42);
14501
+ t3 = Object.entries(mapProperties).filter(_temp$t).map(t42);
14502
14502
  $[6] = autoFocus;
14503
14503
  $[7] = context;
14504
14504
  $[8] = disabled;
@@ -14577,7 +14577,7 @@
14577
14577
  }
14578
14578
  return t10;
14579
14579
  }
14580
- function _temp$r(t0) {
14580
+ function _temp$t(t0) {
14581
14581
  const [, property_0] = t0;
14582
14582
  return !isHidden(property_0);
14583
14583
  }
@@ -15951,7 +15951,7 @@
15951
15951
  const property = t4;
15952
15952
  let t5;
15953
15953
  if ($[9] !== properties) {
15954
- t5 = Object.entries(properties).map(_temp$q);
15954
+ t5 = Object.entries(properties).map(_temp$s);
15955
15955
  $[9] = properties;
15956
15956
  $[10] = t5;
15957
15957
  } else {
@@ -16044,7 +16044,7 @@
16044
16044
  }
16045
16045
  return t11;
16046
16046
  }
16047
- function _temp$q(t0) {
16047
+ function _temp$s(t0) {
16048
16048
  const [key, property_0] = t0;
16049
16049
  return {
16050
16050
  id: key,
@@ -19377,7 +19377,7 @@
19377
19377
  let t1;
19378
19378
  if ($[0] !== text) {
19379
19379
  const urlRegex = /https?:\/\/[^\s]+/g;
19380
- t1 = text.replace(urlRegex, _temp$p);
19380
+ t1 = text.replace(urlRegex, _temp$r);
19381
19381
  $[0] = text;
19382
19382
  $[1] = t1;
19383
19383
  } else {
@@ -19396,7 +19396,7 @@
19396
19396
  }
19397
19397
  return t2;
19398
19398
  };
19399
- function _temp$p(url) {
19399
+ function _temp$r(url) {
19400
19400
  return `<a href="${url}" class="underline" target="_blank">Link</a><br/>`;
19401
19401
  }
19402
19402
  const operationLabels$2 = {
@@ -19709,7 +19709,7 @@
19709
19709
  }
19710
19710
  let t9;
19711
19711
  if ($[24] !== possibleOperations) {
19712
- t9 = possibleOperations.map(_temp2$8);
19712
+ t9 = possibleOperations.map(_temp2$9);
19713
19713
  $[24] = possibleOperations;
19714
19714
  $[25] = t9;
19715
19715
  } else {
@@ -19717,7 +19717,7 @@
19717
19717
  }
19718
19718
  let t10;
19719
19719
  if ($[26] !== operation || $[27] !== t8 || $[28] !== t9) {
19720
- t10 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { value: operation, size: "medium", fullWidth: true, position: "item-aligned", onValueChange: t8, renderValue: _temp$o, children: t9 }) });
19720
+ t10 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { value: operation, size: "medium", fullWidth: true, position: "item-aligned", onValueChange: t8, renderValue: _temp$q, children: t9 }) });
19721
19721
  $[26] = operation;
19722
19722
  $[27] = t8;
19723
19723
  $[28] = t9;
@@ -19819,10 +19819,10 @@
19819
19819
  function _temp3$5(e_1) {
19820
19820
  return String(e_1);
19821
19821
  }
19822
- function _temp2$8(op_2) {
19822
+ function _temp2$9(op_2) {
19823
19823
  return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: op_2, children: operationLabels$1[op_2] }, op_2);
19824
19824
  }
19825
- function _temp$o(op_1) {
19825
+ function _temp$q(op_1) {
19826
19826
  return operationLabels$1[op_1];
19827
19827
  }
19828
19828
  function BooleanFilterField(t0) {
@@ -19985,7 +19985,7 @@
19985
19985
  }
19986
19986
  let t7;
19987
19987
  if ($[15] !== possibleOperations) {
19988
- t7 = possibleOperations.map(_temp2$7);
19988
+ t7 = possibleOperations.map(_temp2$8);
19989
19989
  $[15] = possibleOperations;
19990
19990
  $[16] = t7;
19991
19991
  } else {
@@ -19993,7 +19993,7 @@
19993
19993
  }
19994
19994
  let t8;
19995
19995
  if ($[17] !== operation || $[18] !== t6 || $[19] !== t7) {
19996
- t8 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { value: operation, size: "medium", fullWidth: true, onValueChange: t6, renderValue: _temp$n, children: t7 }) });
19996
+ t8 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[100px]", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Select, { value: operation, size: "medium", fullWidth: true, onValueChange: t6, renderValue: _temp$p, children: t7 }) });
19997
19997
  $[17] = operation;
19998
19998
  $[18] = t6;
19999
19999
  $[19] = t7;
@@ -20040,10 +20040,10 @@
20040
20040
  }
20041
20041
  return t12;
20042
20042
  }
20043
- function _temp2$7(op_2) {
20043
+ function _temp2$8(op_2) {
20044
20044
  return /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: op_2, children: operationLabels[op_2] }, op_2);
20045
20045
  }
20046
- function _temp$n(op_1) {
20046
+ function _temp$p(op_1) {
20047
20047
  return operationLabels[op_1];
20048
20048
  }
20049
20049
  const SelectableTable = function SelectableTable2({
@@ -20806,7 +20806,7 @@
20806
20806
  parentCollectionIds
20807
20807
  };
20808
20808
  const searchBlocked = customizationController.plugins?.find((p) => p.collectionView?.blockSearch?.(props));
20809
- const addTextSearchClickListener = Boolean(dataSource?.initTextSearch) || customizationController.plugins?.find(_temp$m);
20809
+ const addTextSearchClickListener = Boolean(dataSource?.initTextSearch) || customizationController.plugins?.find(_temp$o);
20810
20810
  if (addTextSearchClickListener) {
20811
20811
  onTextSearchClick = addTextSearchClickListener ? () => {
20812
20812
  setTextSearchLoading(true);
@@ -20902,7 +20902,7 @@
20902
20902
  }
20903
20903
  return t3;
20904
20904
  }
20905
- function _temp$m(p_0) {
20905
+ function _temp$o(p_0) {
20906
20906
  return Boolean(p_0.collectionView?.onTextSearchClick);
20907
20907
  }
20908
20908
  function DeleteEntityDialog({
@@ -21069,20 +21069,20 @@
21069
21069
  } catch {
21070
21070
  }
21071
21071
  }
21072
- function addRecentId(collectionId, id) {
21073
- const recentIds = getRecentIds(collectionId);
21072
+ function addRecentId(key, id) {
21073
+ const recentIds = getRecentIds(key);
21074
21074
  const newRecentIds = [id, ...recentIds.filter((i) => i !== id)];
21075
21075
  if (newRecentIds.length > 5) {
21076
21076
  newRecentIds.pop();
21077
21077
  }
21078
- saveSearchedIdsLocally(collectionId, newRecentIds);
21078
+ saveSearchedIdsLocally(key, newRecentIds);
21079
21079
  return newRecentIds;
21080
21080
  }
21081
- function saveSearchedIdsLocally(collectionId, ids) {
21082
- setLocalStorageItem("recent_id_searches::" + collectionId, JSON.stringify(ids));
21081
+ function saveSearchedIdsLocally(key, ids) {
21082
+ setLocalStorageItem("recent_id_searches::" + key, JSON.stringify(ids));
21083
21083
  }
21084
- function getRecentIds(collectionId) {
21085
- return getLocalStorageJSON("recent_id_searches::" + collectionId, []);
21084
+ function getRecentIds(key) {
21085
+ return getLocalStorageJSON("recent_id_searches::" + key, []);
21086
21086
  }
21087
21087
  const editEntityAction = {
21088
21088
  icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EditIcon, { size: "small" }),
@@ -21112,7 +21112,7 @@
21112
21112
  entityId: entity.id
21113
21113
  });
21114
21114
  if (collection) {
21115
- addRecentId(collection.id, entity.id);
21115
+ addRecentId(fullIdPath ?? fullPath ?? collection.id, entity.id);
21116
21116
  }
21117
21117
  const path = collection?.collectionGroup ? entity.path : fullPath ?? collection?.path ?? entity.path;
21118
21118
  const resolvedPathSegments = collection?.collectionGroup ? entity.pathSegments : pathSegments ?? entity.pathSegments;
@@ -21565,7 +21565,7 @@
21565
21565
  T0 = ui.Collapse;
21566
21566
  t4 = favouriteCollections.length > 0;
21567
21567
  t2 = "flex flex-row flex-wrap gap-2 pb-2 min-h-[32px]";
21568
- t3 = favouriteCollections.map(_temp$l);
21568
+ t3 = favouriteCollections.map(_temp$n);
21569
21569
  $[2] = navigationController;
21570
21570
  $[3] = t1;
21571
21571
  $[4] = T0;
@@ -21599,7 +21599,7 @@
21599
21599
  }
21600
21600
  return t6;
21601
21601
  }
21602
- function _temp$l(entry_0) {
21602
+ function _temp$n(entry_0) {
21603
21603
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationChip, { entry: entry_0 }, entry_0.path);
21604
21604
  }
21605
21605
  const scrollsMap = {};
@@ -21836,7 +21836,7 @@
21836
21836
  }
21837
21837
  let t4;
21838
21838
  if ($[4] !== actions) {
21839
- t4 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", onClick: _temp$k, children: actions });
21839
+ t4 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", onClick: _temp$m, children: actions });
21840
21840
  $[4] = actions;
21841
21841
  $[5] = t4;
21842
21842
  } else {
@@ -21923,7 +21923,7 @@
21923
21923
  }
21924
21924
  return t12;
21925
21925
  });
21926
- function _temp$k(event) {
21926
+ function _temp$m(event) {
21927
21927
  event.preventDefault();
21928
21928
  event.stopPropagation();
21929
21929
  }
@@ -22159,21 +22159,24 @@
22159
22159
  entries: g.entries.map(cloneSerializableNavigationEntry)
22160
22160
  }));
22161
22161
  function SortableNavigationCard(t0) {
22162
- const $ = reactCompilerRuntime.c(17);
22162
+ const $ = reactCompilerRuntime.c(18);
22163
22163
  const {
22164
22164
  entry,
22165
- onClick
22165
+ onClick,
22166
+ disabled
22166
22167
  } = t0;
22167
22168
  let t1;
22168
- if ($[0] !== entry.url) {
22169
+ if ($[0] !== disabled || $[1] !== entry.url) {
22169
22170
  t1 = {
22170
22171
  id: entry.url,
22171
- animateLayoutChanges
22172
+ animateLayoutChanges,
22173
+ disabled
22172
22174
  };
22173
- $[0] = entry.url;
22174
- $[1] = t1;
22175
+ $[0] = disabled;
22176
+ $[1] = entry.url;
22177
+ $[2] = t1;
22175
22178
  } else {
22176
- t1 = $[1];
22179
+ t1 = $[2];
22177
22180
  }
22178
22181
  const {
22179
22182
  setNodeRef,
@@ -22184,101 +22187,104 @@
22184
22187
  isDragging
22185
22188
  } = sortable.useSortable(t1);
22186
22189
  let t2;
22187
- if ($[2] !== transform) {
22190
+ if ($[3] !== transform) {
22188
22191
  t2 = transform ? utilities.CSS.Transform.toString(transform) : void 0;
22189
- $[2] = transform;
22190
- $[3] = t2;
22192
+ $[3] = transform;
22193
+ $[4] = t2;
22191
22194
  } else {
22192
- t2 = $[3];
22195
+ t2 = $[4];
22193
22196
  }
22194
22197
  const t3 = isDragging ? 0 : 1;
22195
22198
  let t4;
22196
- if ($[4] !== t2 || $[5] !== t3 || $[6] !== transition) {
22199
+ if ($[5] !== t2 || $[6] !== t3 || $[7] !== transition) {
22197
22200
  t4 = {
22198
22201
  transform: t2,
22199
22202
  transition,
22200
22203
  opacity: t3
22201
22204
  };
22202
- $[4] = t2;
22203
- $[5] = t3;
22204
- $[6] = transition;
22205
- $[7] = t4;
22205
+ $[5] = t2;
22206
+ $[6] = t3;
22207
+ $[7] = transition;
22208
+ $[8] = t4;
22206
22209
  } else {
22207
- t4 = $[7];
22210
+ t4 = $[8];
22208
22211
  }
22209
22212
  const style = t4;
22210
22213
  let t5;
22211
- if ($[8] !== entry || $[9] !== onClick) {
22214
+ if ($[9] !== entry || $[10] !== onClick) {
22212
22215
  t5 = /* @__PURE__ */ jsxRuntime.jsx(NavigationCardBinding, { ...entry, onClick });
22213
- $[8] = entry;
22214
- $[9] = onClick;
22215
- $[10] = t5;
22216
+ $[9] = entry;
22217
+ $[10] = onClick;
22218
+ $[11] = t5;
22216
22219
  } else {
22217
- t5 = $[10];
22220
+ t5 = $[11];
22218
22221
  }
22219
22222
  let t6;
22220
- if ($[11] !== attributes || $[12] !== listeners2 || $[13] !== setNodeRef || $[14] !== style || $[15] !== t5) {
22223
+ if ($[12] !== attributes || $[13] !== listeners2 || $[14] !== setNodeRef || $[15] !== style || $[16] !== t5) {
22221
22224
  t6 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: setNodeRef, style, ...attributes, ...listeners2, children: t5 });
22222
- $[11] = attributes;
22223
- $[12] = listeners2;
22224
- $[13] = setNodeRef;
22225
- $[14] = style;
22226
- $[15] = t5;
22227
- $[16] = t6;
22225
+ $[12] = attributes;
22226
+ $[13] = listeners2;
22227
+ $[14] = setNodeRef;
22228
+ $[15] = style;
22229
+ $[16] = t5;
22230
+ $[17] = t6;
22228
22231
  } else {
22229
- t6 = $[16];
22232
+ t6 = $[17];
22230
22233
  }
22231
22234
  return t6;
22232
22235
  }
22233
22236
  function NavigationGroupDroppable(t0) {
22234
- const $ = reactCompilerRuntime.c(11);
22237
+ const $ = reactCompilerRuntime.c(12);
22235
22238
  const {
22236
22239
  id,
22237
22240
  itemIds,
22238
22241
  children,
22239
- isPotentialCardDropTarget: t1
22242
+ isPotentialCardDropTarget: t1,
22243
+ disabled
22240
22244
  } = t0;
22241
22245
  const isPotentialCardDropTarget = t1 === void 0 ? false : t1;
22242
22246
  let t2;
22243
- if ($[0] !== id) {
22247
+ if ($[0] !== disabled || $[1] !== id) {
22244
22248
  t2 = {
22245
- id
22249
+ id,
22250
+ disabled
22246
22251
  };
22247
- $[0] = id;
22248
- $[1] = t2;
22252
+ $[0] = disabled;
22253
+ $[1] = id;
22254
+ $[2] = t2;
22249
22255
  } else {
22250
- t2 = $[1];
22256
+ t2 = $[2];
22251
22257
  }
22252
22258
  const {
22253
22259
  setNodeRef
22254
22260
  } = core.useDroppable(t2);
22255
22261
  const t3 = isPotentialCardDropTarget ? "p-2 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg" : void 0;
22256
22262
  let t4;
22257
- if ($[2] !== t3) {
22263
+ if ($[3] !== t3) {
22258
22264
  t4 = ui.cls(t3, "transition-all duration-200 ease-in-out");
22259
- $[2] = t3;
22260
- $[3] = t4;
22265
+ $[3] = t3;
22266
+ $[4] = t4;
22261
22267
  } else {
22262
- t4 = $[3];
22268
+ t4 = $[4];
22263
22269
  }
22264
22270
  let t5;
22265
- if ($[4] !== children || $[5] !== itemIds) {
22271
+ if ($[5] !== children || $[6] !== itemIds) {
22266
22272
  t5 = /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: itemIds, strategy: sortable.rectSortingStrategy, children });
22267
- $[4] = children;
22268
- $[5] = itemIds;
22269
- $[6] = t5;
22273
+ $[5] = children;
22274
+ $[6] = itemIds;
22275
+ $[7] = t5;
22270
22276
  } else {
22271
- t5 = $[6];
22277
+ t5 = $[7];
22272
22278
  }
22273
22279
  let t6;
22274
- if ($[7] !== setNodeRef || $[8] !== t4 || $[9] !== t5) {
22280
+ if ($[8] !== setNodeRef || $[9] !== t4 || $[10] !== t5) {
22275
22281
  t6 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: setNodeRef, className: t4, children: t5 });
22276
- $[7] = setNodeRef;
22277
- $[8] = t4;
22278
- $[9] = t5;
22279
- $[10] = t6;
22282
+ $[8] = setNodeRef;
22283
+ $[9] = t4;
22284
+ $[10] = t5;
22285
+ $[11] = t6;
22280
22286
  } else {
22281
- t6 = $[10];
22287
+ t6 = $[11];
22282
22288
  }
22283
22289
  return t6;
22284
22290
  }
@@ -23263,8 +23269,8 @@
23263
23269
  return /* @__PURE__ */ jsxRuntime.jsx(SortableNavigationGroup, { groupName: groupKey, disabled: dndDisabled, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationGroup, { group: groupKey === DEFAULT_GROUP_KEY ? void 0 : groupKey, minimised: draggingGroupId === groupKey && !isDraggingCardOnly, isPotentialCardDropTarget: isDraggingCardOnly, dndDisabled, onEditGroup: () => {
23264
23270
  if (dndDisabled) return;
23265
23271
  setDialogOpenForGroup(groupKey);
23266
- }, collapsed: isGroupCollapsed(groupKey), onToggleCollapsed: () => toggleGroupCollapsed(groupKey), children: /* @__PURE__ */ jsxRuntime.jsx(NavigationGroupDroppable, { id: groupKey, itemIds: entriesInGroup.map((e_4) => e_4.url), isPotentialCardDropTarget: isDraggingCardOnly, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: [
23267
- entriesInGroup.map((entry) => /* @__PURE__ */ jsxRuntime.jsx(SortableNavigationCard, { entry, onClick: () => {
23272
+ }, collapsed: isGroupCollapsed(groupKey), onToggleCollapsed: () => toggleGroupCollapsed(groupKey), children: /* @__PURE__ */ jsxRuntime.jsx(NavigationGroupDroppable, { id: groupKey, itemIds: entriesInGroup.map((e_4) => e_4.url), isPotentialCardDropTarget: isDraggingCardOnly, disabled: dndDisabled, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: [
23273
+ entriesInGroup.map((entry) => /* @__PURE__ */ jsxRuntime.jsx(SortableNavigationCard, { entry, disabled: dndDisabled, onClick: () => {
23268
23274
  let event = "unmapped_event";
23269
23275
  if (entry.type === "collection") event = "home_navigate_to_collection";
23270
23276
  else if (entry.type === "view") event = "home_navigate_to_view";
@@ -24284,7 +24290,7 @@
24284
24290
  let t19;
24285
24291
  let t20;
24286
24292
  if ($[19] !== items2) {
24287
- t20 = items2.map(_temp$j);
24293
+ t20 = items2.map(_temp$l);
24288
24294
  $[19] = items2;
24289
24295
  $[20] = t20;
24290
24296
  } else {
@@ -24390,7 +24396,7 @@
24390
24396
  }
24391
24397
  return t29;
24392
24398
  });
24393
- function _temp$j(i) {
24399
+ function _temp$l(i) {
24394
24400
  return i.id;
24395
24401
  }
24396
24402
  function Board(t0) {
@@ -26562,7 +26568,7 @@
26562
26568
  }
26563
26569
  let t7;
26564
26570
  if ($[30] !== collection.forceFilter || $[31] !== filtersDialogOpen || $[32] !== resolvedProperties || $[33] !== tableController) {
26565
- t7 = resolvedProperties && tableController.setFilterValues && /* @__PURE__ */ jsxRuntime.jsx(FiltersDialog, { open: filtersDialogOpen, onOpenChange: setFiltersDialogOpen, properties: resolvedProperties, filterValues: tableController.filterValues, setFilterValues: (filterValues_0) => tableController.setFilterValues?.(filterValues_0 ?? {}), forceFilter: collection.forceFilter, allowedFilters: tableController.allowedFilters?.map(_temp$i) });
26571
+ t7 = resolvedProperties && tableController.setFilterValues && /* @__PURE__ */ jsxRuntime.jsx(FiltersDialog, { open: filtersDialogOpen, onOpenChange: setFiltersDialogOpen, properties: resolvedProperties, filterValues: tableController.filterValues, setFilterValues: (filterValues_0) => tableController.setFilterValues?.(filterValues_0 ?? {}), forceFilter: collection.forceFilter, allowedFilters: tableController.allowedFilters?.map(_temp$k) });
26566
26572
  $[30] = collection.forceFilter;
26567
26573
  $[31] = filtersDialogOpen;
26568
26574
  $[32] = resolvedProperties;
@@ -26585,9 +26591,225 @@
26585
26591
  }
26586
26592
  return t8;
26587
26593
  }
26588
- function _temp$i(key_0) {
26594
+ function _temp$k(key_0) {
26589
26595
  return key_0.toString();
26590
26596
  }
26597
+ const DEFAULT_ENTITY_OPEN_MODE$1 = "side_panel";
26598
+ function EntityIdHeaderWidget(t0) {
26599
+ const $ = reactCompilerRuntime.c(53);
26600
+ const {
26601
+ collection,
26602
+ path,
26603
+ pathSegments,
26604
+ fullIdPath
26605
+ } = t0;
26606
+ const navigation = useNavigationController();
26607
+ const [openPopup, setOpenPopup] = React.useState(false);
26608
+ const [searchString, setSearchString] = React.useState("");
26609
+ let t1;
26610
+ if ($[0] !== fullIdPath) {
26611
+ t1 = () => getRecentIds(fullIdPath);
26612
+ $[0] = fullIdPath;
26613
+ $[1] = t1;
26614
+ } else {
26615
+ t1 = $[1];
26616
+ }
26617
+ const [recentIds, setRecentIds] = React.useState(t1);
26618
+ const sideEntityController = useSideEntityController();
26619
+ const {
26620
+ t
26621
+ } = useTranslation();
26622
+ const openEntityMode = collection?.openEntityMode ?? DEFAULT_ENTITY_OPEN_MODE$1;
26623
+ let t2;
26624
+ if ($[2] !== openPopup || $[3] !== t) {
26625
+ t2 = !openPopup ? t("find_by_id") : void 0;
26626
+ $[2] = openPopup;
26627
+ $[3] = t;
26628
+ $[4] = t2;
26629
+ } else {
26630
+ t2 = $[4];
26631
+ }
26632
+ let t3;
26633
+ if ($[5] !== fullIdPath) {
26634
+ t3 = (open) => {
26635
+ if (open) {
26636
+ setRecentIds(getRecentIds(fullIdPath));
26637
+ }
26638
+ setOpenPopup(open);
26639
+ };
26640
+ $[5] = fullIdPath;
26641
+ $[6] = t3;
26642
+ } else {
26643
+ t3 = $[6];
26644
+ }
26645
+ let t4;
26646
+ let t5;
26647
+ if ($[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26648
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SearchIcon, { size: "small" }) });
26649
+ t5 = ui.cls("my-2 rounded-lg bg-surface-50 dark:bg-surface-950 text-surface-900 dark:text-white");
26650
+ $[7] = t4;
26651
+ $[8] = t5;
26652
+ } else {
26653
+ t4 = $[7];
26654
+ t5 = $[8];
26655
+ }
26656
+ let t6;
26657
+ if ($[9] !== collection || $[10] !== fullIdPath || $[11] !== navigation || $[12] !== openEntityMode || $[13] !== path || $[14] !== pathSegments || $[15] !== searchString || $[16] !== sideEntityController) {
26658
+ t6 = (e) => {
26659
+ e.preventDefault();
26660
+ const entityId = searchString.trim();
26661
+ if (!entityId) {
26662
+ return;
26663
+ }
26664
+ setOpenPopup(false);
26665
+ setRecentIds(addRecentId(fullIdPath, entityId));
26666
+ navigateToEntity({
26667
+ openEntityMode,
26668
+ collection,
26669
+ entityId,
26670
+ path,
26671
+ pathSegments,
26672
+ fullIdPath,
26673
+ sideEntityController,
26674
+ navigation
26675
+ });
26676
+ };
26677
+ $[9] = collection;
26678
+ $[10] = fullIdPath;
26679
+ $[11] = navigation;
26680
+ $[12] = openEntityMode;
26681
+ $[13] = path;
26682
+ $[14] = pathSegments;
26683
+ $[15] = searchString;
26684
+ $[16] = sideEntityController;
26685
+ $[17] = t6;
26686
+ } else {
26687
+ t6 = $[17];
26688
+ }
26689
+ let t7;
26690
+ if ($[18] !== t) {
26691
+ t7 = t("find_entity_by_id");
26692
+ $[18] = t;
26693
+ $[19] = t7;
26694
+ } else {
26695
+ t7 = $[19];
26696
+ }
26697
+ let t8;
26698
+ if ($[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26699
+ t8 = (e_0) => {
26700
+ setSearchString(e_0.target.value);
26701
+ };
26702
+ $[20] = t8;
26703
+ } else {
26704
+ t8 = $[20];
26705
+ }
26706
+ let t9;
26707
+ if ($[21] !== openPopup || $[22] !== searchString || $[23] !== t7) {
26708
+ t9 = /* @__PURE__ */ jsxRuntime.jsx("input", { autoFocus: openPopup, placeholder: t7, onChange: t8, value: searchString, className: "rounded-lg bg-white dark:bg-surface-800 flex-grow bg-transparent outline-none p-2 " + ui.focusedDisabled });
26709
+ $[21] = openPopup;
26710
+ $[22] = searchString;
26711
+ $[23] = t7;
26712
+ $[24] = t9;
26713
+ } else {
26714
+ t9 = $[24];
26715
+ }
26716
+ const t10 = !searchString.trim();
26717
+ let t11;
26718
+ if ($[25] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
26719
+ t11 = /* @__PURE__ */ jsxRuntime.jsx(ui.KeyboardTabIcon, {});
26720
+ $[25] = t11;
26721
+ } else {
26722
+ t11 = $[25];
26723
+ }
26724
+ let t12;
26725
+ if ($[26] !== t10) {
26726
+ t12 = /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "text", disabled: t10, type: "submit", children: t11 });
26727
+ $[26] = t10;
26728
+ $[27] = t12;
26729
+ } else {
26730
+ t12 = $[27];
26731
+ }
26732
+ let t13;
26733
+ if ($[28] !== t12 || $[29] !== t9) {
26734
+ t13 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex p-2 w-full gap-2", children: [
26735
+ t9,
26736
+ t12
26737
+ ] });
26738
+ $[28] = t12;
26739
+ $[29] = t9;
26740
+ $[30] = t13;
26741
+ } else {
26742
+ t13 = $[30];
26743
+ }
26744
+ let t14;
26745
+ if ($[31] !== t13 || $[32] !== t6) {
26746
+ t14 = /* @__PURE__ */ jsxRuntime.jsx("form", { noValidate: true, onSubmit: t6, className: "w-96 max-w-full", children: t13 });
26747
+ $[31] = t13;
26748
+ $[32] = t6;
26749
+ $[33] = t14;
26750
+ } else {
26751
+ t14 = $[33];
26752
+ }
26753
+ let t15;
26754
+ if ($[34] !== collection || $[35] !== fullIdPath || $[36] !== navigation || $[37] !== openEntityMode || $[38] !== path || $[39] !== pathSegments || $[40] !== recentIds || $[41] !== sideEntityController) {
26755
+ t15 = recentIds && recentIds.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-2", children: recentIds.map((id) => /* @__PURE__ */ jsxRuntime.jsx(ReferencePreview, { reference: new EntityReference(id, path, void 0, pathSegments), hover: true, onClick: () => {
26756
+ setOpenPopup(false);
26757
+ navigateToEntity({
26758
+ openEntityMode,
26759
+ collection,
26760
+ entityId: id,
26761
+ path,
26762
+ pathSegments,
26763
+ fullIdPath,
26764
+ sideEntityController,
26765
+ navigation
26766
+ });
26767
+ }, includeEntityLink: false, size: "small" }, id)) });
26768
+ $[34] = collection;
26769
+ $[35] = fullIdPath;
26770
+ $[36] = navigation;
26771
+ $[37] = openEntityMode;
26772
+ $[38] = path;
26773
+ $[39] = pathSegments;
26774
+ $[40] = recentIds;
26775
+ $[41] = sideEntityController;
26776
+ $[42] = t15;
26777
+ } else {
26778
+ t15 = $[42];
26779
+ }
26780
+ let t16;
26781
+ if ($[43] !== t14 || $[44] !== t15) {
26782
+ t16 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t5, children: [
26783
+ t14,
26784
+ t15
26785
+ ] });
26786
+ $[43] = t14;
26787
+ $[44] = t15;
26788
+ $[45] = t16;
26789
+ } else {
26790
+ t16 = $[45];
26791
+ }
26792
+ let t17;
26793
+ if ($[46] !== openPopup || $[47] !== t16 || $[48] !== t3) {
26794
+ t17 = /* @__PURE__ */ jsxRuntime.jsx(ui.Popover, { open: openPopup, onOpenChange: t3, sideOffset: 0, align: "start", alignOffset: -117, trigger: t4, children: t16 });
26795
+ $[46] = openPopup;
26796
+ $[47] = t16;
26797
+ $[48] = t3;
26798
+ $[49] = t17;
26799
+ } else {
26800
+ t17 = $[49];
26801
+ }
26802
+ let t18;
26803
+ if ($[50] !== t17 || $[51] !== t2) {
26804
+ t18 = /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { title: t2, asChild: false, children: t17 });
26805
+ $[50] = t17;
26806
+ $[51] = t2;
26807
+ $[52] = t18;
26808
+ } else {
26809
+ t18 = $[52];
26810
+ }
26811
+ return t18;
26812
+ }
26591
26813
  const collectionScrollCache = /* @__PURE__ */ new Map();
26592
26814
  function useScrollRestoration() {
26593
26815
  const updateCollectionScroll = ({
@@ -26628,6 +26850,7 @@
26628
26850
  isSubCollection,
26629
26851
  className,
26630
26852
  updateUrl,
26853
+ onCountChange,
26631
26854
  ...collectionProp
26632
26855
  }) {
26633
26856
  const context = useFireCMSContext();
@@ -26765,7 +26988,7 @@
26765
26988
  entityId: clickedEntity.id
26766
26989
  });
26767
26990
  if (collection_1) {
26768
- addRecentId(collection_1.id, clickedEntity.id);
26991
+ addRecentId(fullIdPath ?? fullPath, clickedEntity.id);
26769
26992
  }
26770
26993
  const isCollectionGroup = Boolean(collection_1?.collectionGroup);
26771
26994
  const path = isCollectionGroup ? clickedEntity.path : fullPath ?? clickedEntity.path;
@@ -27093,8 +27316,9 @@
27093
27316
  React.useEffect(() => {
27094
27317
  if (docsCount !== void 0) {
27095
27318
  breadcrumbs.updateCount(fullPath, docsCount);
27319
+ onCountChange?.(docsCount);
27096
27320
  }
27097
- }, [docsCount, fullPath, breadcrumbs.updateCount]);
27321
+ }, [docsCount, fullPath, breadcrumbs.updateCount, onCountChange]);
27098
27322
  const countFetcher = /* @__PURE__ */ jsxRuntime.jsx(EntitiesCount, { fullPath, pathSegments, collection, filter: tableController.filterValues, sortBy: tableController.sortBy, onCountChange: setDocsCount });
27099
27323
  const buildAdditionalHeaderWidget = React.useCallback(({
27100
27324
  property: property_2,
@@ -27240,207 +27464,6 @@
27240
27464
  }
27241
27465
  };
27242
27466
  }
27243
- function EntityIdHeaderWidget(t0) {
27244
- const $ = reactCompilerRuntime.c(50);
27245
- const {
27246
- collection,
27247
- path,
27248
- pathSegments,
27249
- fullIdPath
27250
- } = t0;
27251
- const navigation = useNavigationController();
27252
- const [openPopup, setOpenPopup] = React.useState(false);
27253
- const [searchString, setSearchString] = React.useState("");
27254
- let t1;
27255
- if ($[0] !== collection.id) {
27256
- t1 = getRecentIds(collection.id);
27257
- $[0] = collection.id;
27258
- $[1] = t1;
27259
- } else {
27260
- t1 = $[1];
27261
- }
27262
- const [recentIds, setRecentIds] = React.useState(t1);
27263
- const sideEntityController = useSideEntityController();
27264
- const {
27265
- t
27266
- } = useTranslation();
27267
- const openEntityMode = collection?.openEntityMode ?? DEFAULT_ENTITY_OPEN_MODE;
27268
- let t2;
27269
- if ($[2] !== openPopup || $[3] !== t) {
27270
- t2 = !openPopup ? t("find_by_id") : void 0;
27271
- $[2] = openPopup;
27272
- $[3] = t;
27273
- $[4] = t2;
27274
- } else {
27275
- t2 = $[4];
27276
- }
27277
- let t3;
27278
- let t4;
27279
- if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27280
- t3 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SearchIcon, { size: "small" }) });
27281
- t4 = ui.cls("my-2 rounded-lg bg-surface-50 dark:bg-surface-950 text-surface-900 dark:text-white");
27282
- $[5] = t3;
27283
- $[6] = t4;
27284
- } else {
27285
- t3 = $[5];
27286
- t4 = $[6];
27287
- }
27288
- let t5;
27289
- if ($[7] !== collection || $[8] !== fullIdPath || $[9] !== navigation || $[10] !== openEntityMode || $[11] !== path || $[12] !== pathSegments || $[13] !== searchString || $[14] !== sideEntityController) {
27290
- t5 = (e) => {
27291
- e.preventDefault();
27292
- if (!searchString) {
27293
- return;
27294
- }
27295
- setOpenPopup(false);
27296
- const entityId = searchString.trim();
27297
- setRecentIds(addRecentId(collection.id, entityId));
27298
- navigateToEntity({
27299
- openEntityMode,
27300
- collection,
27301
- entityId,
27302
- path,
27303
- pathSegments,
27304
- fullIdPath,
27305
- sideEntityController,
27306
- navigation
27307
- });
27308
- };
27309
- $[7] = collection;
27310
- $[8] = fullIdPath;
27311
- $[9] = navigation;
27312
- $[10] = openEntityMode;
27313
- $[11] = path;
27314
- $[12] = pathSegments;
27315
- $[13] = searchString;
27316
- $[14] = sideEntityController;
27317
- $[15] = t5;
27318
- } else {
27319
- t5 = $[15];
27320
- }
27321
- let t6;
27322
- if ($[16] !== t) {
27323
- t6 = t("find_entity_by_id");
27324
- $[16] = t;
27325
- $[17] = t6;
27326
- } else {
27327
- t6 = $[17];
27328
- }
27329
- let t7;
27330
- if ($[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27331
- t7 = (e_0) => {
27332
- setSearchString(e_0.target.value);
27333
- };
27334
- $[18] = t7;
27335
- } else {
27336
- t7 = $[18];
27337
- }
27338
- let t8;
27339
- if ($[19] !== openPopup || $[20] !== searchString || $[21] !== t6) {
27340
- t8 = /* @__PURE__ */ jsxRuntime.jsx("input", { autoFocus: openPopup, placeholder: t6, onChange: t7, value: searchString, className: "rounded-lg bg-white dark:bg-surface-800 flex-grow bg-transparent outline-none p-2 " + ui.focusedDisabled });
27341
- $[19] = openPopup;
27342
- $[20] = searchString;
27343
- $[21] = t6;
27344
- $[22] = t8;
27345
- } else {
27346
- t8 = $[22];
27347
- }
27348
- const t9 = !searchString.trim();
27349
- let t10;
27350
- if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
27351
- t10 = /* @__PURE__ */ jsxRuntime.jsx(ui.KeyboardTabIcon, {});
27352
- $[23] = t10;
27353
- } else {
27354
- t10 = $[23];
27355
- }
27356
- let t11;
27357
- if ($[24] !== t9) {
27358
- t11 = /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "text", disabled: t9, type: "submit", children: t10 });
27359
- $[24] = t9;
27360
- $[25] = t11;
27361
- } else {
27362
- t11 = $[25];
27363
- }
27364
- let t12;
27365
- if ($[26] !== t11 || $[27] !== t8) {
27366
- t12 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex p-2 w-full gap-2", children: [
27367
- t8,
27368
- t11
27369
- ] });
27370
- $[26] = t11;
27371
- $[27] = t8;
27372
- $[28] = t12;
27373
- } else {
27374
- t12 = $[28];
27375
- }
27376
- let t13;
27377
- if ($[29] !== t12 || $[30] !== t5) {
27378
- t13 = /* @__PURE__ */ jsxRuntime.jsx("form", { noValidate: true, onSubmit: t5, className: "w-96 max-w-full", children: t12 });
27379
- $[29] = t12;
27380
- $[30] = t5;
27381
- $[31] = t13;
27382
- } else {
27383
- t13 = $[31];
27384
- }
27385
- let t14;
27386
- if ($[32] !== collection || $[33] !== fullIdPath || $[34] !== navigation || $[35] !== openEntityMode || $[36] !== path || $[37] !== pathSegments || $[38] !== recentIds || $[39] !== sideEntityController) {
27387
- t14 = recentIds && recentIds.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-2", children: recentIds.map((id) => /* @__PURE__ */ jsxRuntime.jsx(ReferencePreview, { reference: new EntityReference(id, path, void 0, pathSegments), hover: true, onClick: () => {
27388
- setOpenPopup(false);
27389
- navigateToEntity({
27390
- openEntityMode,
27391
- collection,
27392
- entityId: id,
27393
- path,
27394
- pathSegments,
27395
- fullIdPath,
27396
- sideEntityController,
27397
- navigation
27398
- });
27399
- }, includeEntityLink: false, size: "small" }, id)) });
27400
- $[32] = collection;
27401
- $[33] = fullIdPath;
27402
- $[34] = navigation;
27403
- $[35] = openEntityMode;
27404
- $[36] = path;
27405
- $[37] = pathSegments;
27406
- $[38] = recentIds;
27407
- $[39] = sideEntityController;
27408
- $[40] = t14;
27409
- } else {
27410
- t14 = $[40];
27411
- }
27412
- let t15;
27413
- if ($[41] !== t13 || $[42] !== t14) {
27414
- t15 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t4, children: [
27415
- t13,
27416
- t14
27417
- ] });
27418
- $[41] = t13;
27419
- $[42] = t14;
27420
- $[43] = t15;
27421
- } else {
27422
- t15 = $[43];
27423
- }
27424
- let t16;
27425
- if ($[44] !== openPopup || $[45] !== t15) {
27426
- t16 = /* @__PURE__ */ jsxRuntime.jsx(ui.Popover, { open: openPopup, onOpenChange: setOpenPopup, sideOffset: 0, align: "start", alignOffset: -117, trigger: t3, children: t15 });
27427
- $[44] = openPopup;
27428
- $[45] = t15;
27429
- $[46] = t16;
27430
- } else {
27431
- t16 = $[46];
27432
- }
27433
- let t17;
27434
- if ($[47] !== t16 || $[48] !== t2) {
27435
- t17 = /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { title: t2, asChild: false, children: t16 });
27436
- $[47] = t16;
27437
- $[48] = t2;
27438
- $[49] = t17;
27439
- } else {
27440
- t17 = $[49];
27441
- }
27442
- return t17;
27443
- }
27444
27467
  const EntityCollectionView$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
27445
27468
  __proto__: null,
27446
27469
  EntityCollectionView: EntityCollectionView$1
@@ -27860,7 +27883,7 @@
27860
27883
  }
27861
27884
  let t10;
27862
27885
  if ($[11] !== headerActions) {
27863
- t10 = headerActions && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: _temp$h, children: headerActions });
27886
+ t10 = headerActions && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: _temp$j, children: headerActions });
27864
27887
  $[11] = headerActions;
27865
27888
  $[12] = t10;
27866
27889
  } else {
@@ -27940,7 +27963,7 @@
27940
27963
  }
27941
27964
  return t16;
27942
27965
  }
27943
- function _temp$h(e) {
27966
+ function _temp$j(e) {
27944
27967
  return e.stopPropagation();
27945
27968
  }
27946
27969
  function DefaultDrawer(t0) {
@@ -27985,10 +28008,10 @@
27985
28008
  navigationEntries,
27986
28009
  groups
27987
28010
  } = navigation.topLevelNavigation;
27988
- const adminViews = navigationEntries.filter(_temp$g) ?? [];
28011
+ const adminViews = navigationEntries.filter(_temp$i) ?? [];
27989
28012
  let t2;
27990
28013
  if ($[1] !== groups) {
27991
- t2 = groups.filter(_temp2$6);
28014
+ t2 = groups.filter(_temp2$7);
27992
28015
  $[1] = groups;
27993
28016
  $[2] = t2;
27994
28017
  } else {
@@ -28125,10 +28148,10 @@
28125
28148
  }
28126
28149
  return t14;
28127
28150
  }
28128
- function _temp2$6(g) {
28151
+ function _temp2$7(g) {
28129
28152
  return g !== "Admin";
28130
28153
  }
28131
- function _temp$g(e) {
28154
+ function _temp$i(e) {
28132
28155
  return e.type === "admin";
28133
28156
  }
28134
28157
  function DrawerToggle() {
@@ -28259,8 +28282,149 @@
28259
28282
  }
28260
28283
  return t2;
28261
28284
  }
28285
+ function CollectionCountBadge(t0) {
28286
+ const $ = reactCompilerRuntime.c(3);
28287
+ const {
28288
+ count
28289
+ } = t0;
28290
+ if (count === void 0) {
28291
+ return null;
28292
+ }
28293
+ if (count === null) {
28294
+ let t12;
28295
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28296
+ t12 = /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "w-8 h-4 rounded-md" });
28297
+ $[0] = t12;
28298
+ } else {
28299
+ t12 = $[0];
28300
+ }
28301
+ return t12;
28302
+ }
28303
+ let t1;
28304
+ if ($[1] !== count) {
28305
+ t1 = /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-surface-accent-500 dark:text-surface-accent-400 bg-surface-100 dark:bg-surface-700 px-1 py-0 rounded", children: count });
28306
+ $[1] = count;
28307
+ $[2] = t1;
28308
+ } else {
28309
+ t1 = $[2];
28310
+ }
28311
+ return t1;
28312
+ }
28313
+ function PathTitle(t0) {
28314
+ const $ = reactCompilerRuntime.c(15);
28315
+ const {
28316
+ parents,
28317
+ name,
28318
+ count,
28319
+ className
28320
+ } = t0;
28321
+ let t1;
28322
+ if ($[0] !== className) {
28323
+ t1 = ui.cls("flex flex-col", className);
28324
+ $[0] = className;
28325
+ $[1] = t1;
28326
+ } else {
28327
+ t1 = $[1];
28328
+ }
28329
+ let t2;
28330
+ if ($[2] !== parents) {
28331
+ t2 = parents.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", noWrap: true, children: parents.join(" / ") });
28332
+ $[2] = parents;
28333
+ $[3] = t2;
28334
+ } else {
28335
+ t2 = $[3];
28336
+ }
28337
+ let t3;
28338
+ if ($[4] !== name) {
28339
+ t3 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "body2", noWrap: true, className: "font-medium", children: name });
28340
+ $[4] = name;
28341
+ $[5] = t3;
28342
+ } else {
28343
+ t3 = $[5];
28344
+ }
28345
+ let t4;
28346
+ if ($[6] !== count) {
28347
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(CollectionCountBadge, { count });
28348
+ $[6] = count;
28349
+ $[7] = t4;
28350
+ } else {
28351
+ t4 = $[7];
28352
+ }
28353
+ let t5;
28354
+ if ($[8] !== t3 || $[9] !== t4) {
28355
+ t5 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center gap-2 min-w-0", children: [
28356
+ t3,
28357
+ t4
28358
+ ] });
28359
+ $[8] = t3;
28360
+ $[9] = t4;
28361
+ $[10] = t5;
28362
+ } else {
28363
+ t5 = $[10];
28364
+ }
28365
+ let t6;
28366
+ if ($[11] !== t1 || $[12] !== t2 || $[13] !== t5) {
28367
+ t6 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t1, children: [
28368
+ t2,
28369
+ t5
28370
+ ] });
28371
+ $[11] = t1;
28372
+ $[12] = t2;
28373
+ $[13] = t5;
28374
+ $[14] = t6;
28375
+ } else {
28376
+ t6 = $[14];
28377
+ }
28378
+ return t6;
28379
+ }
28380
+ function CollectionPathTitle(t0) {
28381
+ const $ = reactCompilerRuntime.c(9);
28382
+ const {
28383
+ path,
28384
+ name,
28385
+ count
28386
+ } = t0;
28387
+ const navigation = useNavigationController();
28388
+ let t1;
28389
+ let t2;
28390
+ if ($[0] !== navigation.collections) {
28391
+ t2 = navigation.collections ?? [];
28392
+ $[0] = navigation.collections;
28393
+ $[1] = t2;
28394
+ } else {
28395
+ t2 = $[1];
28396
+ }
28397
+ let t3;
28398
+ if ($[2] !== path || $[3] !== t2) {
28399
+ t3 = getNavigationEntriesFromPath({
28400
+ path,
28401
+ collections: t2
28402
+ }).slice(0, -1).map(_temp$h);
28403
+ $[2] = path;
28404
+ $[3] = t2;
28405
+ $[4] = t3;
28406
+ } else {
28407
+ t3 = $[4];
28408
+ }
28409
+ t1 = t3;
28410
+ const parents = t1;
28411
+ let t4;
28412
+ if ($[5] !== count || $[6] !== name || $[7] !== parents) {
28413
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(PathTitle, { parents, name, count, className: "shrink-0 mx-2 max-w-[140px] sm:max-w-[240px] lg:max-w-[320px]" });
28414
+ $[5] = count;
28415
+ $[6] = name;
28416
+ $[7] = parents;
28417
+ $[8] = t4;
28418
+ } else {
28419
+ t4 = $[8];
28420
+ }
28421
+ return t4;
28422
+ }
28423
+ function _temp$h(entry) {
28424
+ return entry.type === "entity" ? entry.entityId : entry.type === "collection" ? entry.collection.name : entry.view.name;
28425
+ }
28262
28426
  const DefaultAppBar = function DefaultAppBar2(t0) {
28263
- const $ = reactCompilerRuntime.c(54);
28427
+ const $ = reactCompilerRuntime.c(58);
28264
28428
  const {
28265
28429
  title,
28266
28430
  endAdornment,
@@ -28281,6 +28445,7 @@
28281
28445
  const logo = logoProp ?? appLogo;
28282
28446
  const navigation = useNavigationController();
28283
28447
  const breadcrumbs = useBreadcrumbsController();
28448
+ const lastBreadcrumb = breadcrumbs.breadcrumbs?.[breadcrumbs.breadcrumbs.length - 1];
28284
28449
  const authController = useAuthController();
28285
28450
  const {
28286
28451
  mode,
@@ -28371,30 +28536,39 @@
28371
28536
  }
28372
28537
  let t8;
28373
28538
  if ($[21] !== breadcrumbs.breadcrumbs) {
28374
- t8 = (breadcrumbs.breadcrumbs ?? []).length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-8 hidden lg:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row gap-2 items-center", children: breadcrumbs.breadcrumbs.map(_temp$f) }) });
28539
+ t8 = (breadcrumbs.breadcrumbs ?? []).length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-8 hidden lg:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row gap-2 items-center", children: breadcrumbs.breadcrumbs.map(_temp$g) }) });
28375
28540
  $[21] = breadcrumbs.breadcrumbs;
28376
28541
  $[22] = t8;
28377
28542
  } else {
28378
28543
  t8 = $[22];
28379
28544
  }
28380
28545
  let t9;
28381
- if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28382
- t9 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow" });
28383
- $[23] = t9;
28546
+ if ($[23] !== breadcrumbs.breadcrumbs || $[24] !== lastBreadcrumb) {
28547
+ t9 = lastBreadcrumb && /* @__PURE__ */ jsxRuntime.jsx(PathTitle, { className: "lg:hidden min-w-0 mr-2", parents: breadcrumbs.breadcrumbs.slice(0, -1).map(_temp2$6), name: lastBreadcrumb.title, count: lastBreadcrumb.count });
28548
+ $[23] = breadcrumbs.breadcrumbs;
28549
+ $[24] = lastBreadcrumb;
28550
+ $[25] = t9;
28384
28551
  } else {
28385
- t9 = $[23];
28552
+ t9 = $[25];
28386
28553
  }
28387
28554
  let t10;
28388
- if ($[24] !== endAdornment) {
28389
- t10 = endAdornment && /* @__PURE__ */ jsxRuntime.jsx(ErrorBoundary, { children: endAdornment });
28390
- $[24] = endAdornment;
28391
- $[25] = t10;
28555
+ if ($[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28556
+ t10 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow" });
28557
+ $[26] = t10;
28392
28558
  } else {
28393
- t10 = $[25];
28559
+ t10 = $[26];
28394
28560
  }
28395
28561
  let t11;
28396
- if ($[26] !== includeModeToggle || $[27] !== mode || $[28] !== setMode || $[29] !== t) {
28397
- t11 = includeModeToggle && /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Open drawer", children: mode === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(ui.DarkModeIcon, { size: "small" }) : /* @__PURE__ */ jsxRuntime.jsx(ui.LightModeIcon, { size: "small" }) }), children: [
28562
+ if ($[27] !== endAdornment) {
28563
+ t11 = endAdornment && /* @__PURE__ */ jsxRuntime.jsx(ErrorBoundary, { children: endAdornment });
28564
+ $[27] = endAdornment;
28565
+ $[28] = t11;
28566
+ } else {
28567
+ t11 = $[28];
28568
+ }
28569
+ let t12;
28570
+ if ($[29] !== includeModeToggle || $[30] !== mode || $[31] !== setMode || $[32] !== t) {
28571
+ t12 = includeModeToggle && /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Open drawer", children: mode === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(ui.DarkModeIcon, { size: "small" }) : /* @__PURE__ */ jsxRuntime.jsx(ui.LightModeIcon, { size: "small" }) }), children: [
28398
28572
  /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: () => setMode("dark"), children: [
28399
28573
  /* @__PURE__ */ jsxRuntime.jsx(ui.DarkModeIcon, { size: "smallest" }),
28400
28574
  " ",
@@ -28411,101 +28585,106 @@
28411
28585
  t("system_mode")
28412
28586
  ] })
28413
28587
  ] });
28414
- $[26] = includeModeToggle;
28415
- $[27] = mode;
28416
- $[28] = setMode;
28417
- $[29] = t;
28418
- $[30] = t11;
28588
+ $[29] = includeModeToggle;
28589
+ $[30] = mode;
28590
+ $[31] = setMode;
28591
+ $[32] = t;
28592
+ $[33] = t12;
28419
28593
  } else {
28420
- t11 = $[30];
28594
+ t12 = $[33];
28421
28595
  }
28422
- let t12;
28423
- if ($[31] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28424
- t12 = /* @__PURE__ */ jsxRuntime.jsx(LanguageToggle, {});
28425
- $[31] = t12;
28596
+ let t13;
28597
+ if ($[34] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
28598
+ t13 = /* @__PURE__ */ jsxRuntime.jsx(LanguageToggle, {});
28599
+ $[34] = t13;
28426
28600
  } else {
28427
- t12 = $[31];
28601
+ t13 = $[34];
28428
28602
  }
28429
- let t13;
28430
- if ($[32] !== user) {
28431
- t13 = user && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-2 mb-2", children: [
28603
+ let t14;
28604
+ if ($[35] !== user) {
28605
+ t14 = user && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-2 mb-2", children: [
28432
28606
  user.displayName && /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "body1", color: "secondary", children: user.displayName }),
28433
28607
  user.email && /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "body2", color: "secondary", children: user.email })
28434
28608
  ] });
28435
- $[32] = user;
28436
- $[33] = t13;
28609
+ $[35] = user;
28610
+ $[36] = t14;
28437
28611
  } else {
28438
- t13 = $[33];
28612
+ t14 = $[36];
28439
28613
  }
28440
- let t14;
28441
- if ($[34] !== authController || $[35] !== dropDownActions || $[36] !== navigate || $[37] !== t) {
28442
- t14 = !dropDownActions && /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: async () => {
28614
+ let t15;
28615
+ if ($[37] !== authController || $[38] !== dropDownActions || $[39] !== navigate || $[40] !== t) {
28616
+ t15 = !dropDownActions && /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: async () => {
28443
28617
  await authController.signOut();
28444
28618
  navigate("/");
28445
28619
  }, children: [
28446
28620
  /* @__PURE__ */ jsxRuntime.jsx(ui.LogoutIcon, {}),
28447
28621
  t("log_out")
28448
28622
  ] });
28449
- $[34] = authController;
28450
- $[35] = dropDownActions;
28451
- $[36] = navigate;
28452
- $[37] = t;
28453
- $[38] = t14;
28623
+ $[37] = authController;
28624
+ $[38] = dropDownActions;
28625
+ $[39] = navigate;
28626
+ $[40] = t;
28627
+ $[41] = t15;
28454
28628
  } else {
28455
- t14 = $[38];
28629
+ t15 = $[41];
28456
28630
  }
28457
- let t15;
28458
- if ($[39] !== avatarComponent || $[40] !== dropDownActions || $[41] !== t13 || $[42] !== t14) {
28459
- t15 = /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: avatarComponent, children: [
28460
- t13,
28631
+ let t16;
28632
+ if ($[42] !== avatarComponent || $[43] !== dropDownActions || $[44] !== t14 || $[45] !== t15) {
28633
+ t16 = /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: avatarComponent, children: [
28634
+ t14,
28461
28635
  dropDownActions,
28462
- t14
28636
+ t15
28463
28637
  ] });
28464
- $[39] = avatarComponent;
28465
- $[40] = dropDownActions;
28466
- $[41] = t13;
28467
- $[42] = t14;
28468
- $[43] = t15;
28638
+ $[42] = avatarComponent;
28639
+ $[43] = dropDownActions;
28640
+ $[44] = t14;
28641
+ $[45] = t15;
28642
+ $[46] = t16;
28469
28643
  } else {
28470
- t15 = $[43];
28644
+ t16 = $[46];
28471
28645
  }
28472
- let t16;
28473
- if ($[44] !== startAdornment || $[45] !== style || $[46] !== t10 || $[47] !== t11 || $[48] !== t15 || $[49] !== t5 || $[50] !== t6 || $[51] !== t7 || $[52] !== t8) {
28474
- t16 = /* @__PURE__ */ jsxRuntime.jsxs("div", { style, className: t5, children: [
28646
+ let t17;
28647
+ if ($[47] !== startAdornment || $[48] !== style || $[49] !== t11 || $[50] !== t12 || $[51] !== t16 || $[52] !== t5 || $[53] !== t6 || $[54] !== t7 || $[55] !== t8 || $[56] !== t9) {
28648
+ t17 = /* @__PURE__ */ jsxRuntime.jsxs("div", { style, className: t5, children: [
28475
28649
  t6,
28476
28650
  t7,
28477
28651
  t8,
28478
- startAdornment,
28479
28652
  t9,
28653
+ startAdornment,
28480
28654
  t10,
28481
28655
  t11,
28482
28656
  t12,
28483
- t15
28657
+ t13,
28658
+ t16
28484
28659
  ] });
28485
- $[44] = startAdornment;
28486
- $[45] = style;
28487
- $[46] = t10;
28488
- $[47] = t11;
28489
- $[48] = t15;
28490
- $[49] = t5;
28491
- $[50] = t6;
28492
- $[51] = t7;
28493
- $[52] = t8;
28494
- $[53] = t16;
28660
+ $[47] = startAdornment;
28661
+ $[48] = style;
28662
+ $[49] = t11;
28663
+ $[50] = t12;
28664
+ $[51] = t16;
28665
+ $[52] = t5;
28666
+ $[53] = t6;
28667
+ $[54] = t7;
28668
+ $[55] = t8;
28669
+ $[56] = t9;
28670
+ $[57] = t17;
28495
28671
  } else {
28496
- t16 = $[53];
28672
+ t17 = $[57];
28497
28673
  }
28498
- return t16;
28674
+ return t17;
28499
28675
  };
28500
- function _temp$f(breadcrumb, index) {
28676
+ function _temp$g(breadcrumb, index) {
28501
28677
  return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
28502
28678
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", children: "/" }),
28503
28679
  /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Link, { className: "visited:text-inherit visited:dark:text-inherit block", to: breadcrumb.url, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center gap-2 whitespace-nowrap", children: [
28504
28680
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "body2", children: breadcrumb.title }),
28505
- breadcrumb.count !== void 0 && (breadcrumb.count !== null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-surface-accent-500 dark:text-surface-accent-400 bg-surface-100 dark:bg-surface-700 px-1 py-0 rounded", children: breadcrumb.count }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Skeleton, { className: "w-8 h-4 rounded-md" }))
28681
+ /* @__PURE__ */ jsxRuntime.jsx(CollectionCountBadge, { count: breadcrumb.count })
28506
28682
  ] }) }, index)
28507
28683
  ] }, breadcrumb.url + "_" + index);
28508
28684
  }
28685
+ function _temp2$6(breadcrumb_0) {
28686
+ return breadcrumb_0.title;
28687
+ }
28509
28688
  const buildIdsMap = (value) => value && Array.isArray(value) && value.length > 0 ? value.map((v, index) => {
28510
28689
  if (!v) return {};
28511
28690
  return {
@@ -28942,7 +29121,7 @@
28942
29121
  } else {
28943
29122
  const searchResult = iconsSearch.search(value);
28944
29123
  const limited = searchResult.slice(0, 50);
28945
- setKeys(limited.map(_temp$e));
29124
+ setKeys(limited.map(_temp$f));
28946
29125
  }
28947
29126
  }, UPDATE_SEARCH_INDEX_WAIT_MS);
28948
29127
  $[0] = t3;
@@ -29034,7 +29213,7 @@
29034
29213
  }
29035
29214
  return t11;
29036
29215
  }
29037
- function _temp$e(e) {
29216
+ function _temp$f(e) {
29038
29217
  return e.item.key;
29039
29218
  }
29040
29219
  function FieldCaption(t0) {
@@ -29493,7 +29672,7 @@
29493
29672
  i18n
29494
29673
  } = useTranslation();
29495
29674
  const plugins = React.useContext(CustomizationControllerContext)?.plugins;
29496
- const runsProPlugin = plugins?.some(_temp$d) ?? false;
29675
+ const runsProPlugin = plugins?.some(_temp$e) ?? false;
29497
29676
  const [dismissed, setDismissed] = React.useState(_temp2$5);
29498
29677
  const [dismissedForGood, setDismissedForGood] = React.useState(_temp3$4);
29499
29678
  const content = licenseStatus ? buildBannerContent(licenseStatus, t, i18n?.language, runsProPlugin) : null;
@@ -29583,7 +29762,7 @@
29583
29762
  function _temp2$5() {
29584
29763
  return readDismissed(sessionDismissals);
29585
29764
  }
29586
- function _temp$d(plugin) {
29765
+ function _temp$e(plugin) {
29587
29766
  return PRO_PLUGIN_KEYS.includes(plugin.key);
29588
29767
  }
29589
29768
  function buildBannerContent(status, t, language, runsProPlugin) {
@@ -29723,64 +29902,32 @@
29723
29902
  }
29724
29903
  }
29725
29904
  function useReferenceDialog(referenceDialogProps) {
29726
- const $ = reactCompilerRuntime.c(9);
29727
29905
  const navigation = useNavigationController();
29728
29906
  const sideDialogsController = useSideDialogsController();
29729
- let t0;
29730
- if ($[0] !== navigation || $[1] !== referenceDialogProps || $[2] !== sideDialogsController) {
29731
- t0 = () => {
29732
- if (referenceDialogProps.path) {
29733
- let usedCollection = referenceDialogProps.collection;
29734
- if (!usedCollection) {
29735
- usedCollection = navigation.getCollection(referenceDialogProps.path);
29907
+ const open = React.useCallback(() => {
29908
+ if (referenceDialogProps.path) {
29909
+ let usedCollection = referenceDialogProps.collection;
29910
+ if (!usedCollection) usedCollection = navigation.getCollection(referenceDialogProps.path);
29911
+ if (!usedCollection) throw Error("Not able to resolve the collection in useReferenceDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
29912
+ sideDialogsController.open({
29913
+ key: `reference_${referenceDialogProps.path}`,
29914
+ component: /* @__PURE__ */ jsxRuntime.jsx(ReferenceSelectionTable, { collection: usedCollection, ...referenceDialogProps }),
29915
+ width: "90vw",
29916
+ onClose: () => {
29917
+ referenceDialogProps.onClose?.();
29736
29918
  }
29737
- if (!usedCollection) {
29738
- throw Error("Not able to resolve the collection in useReferenceDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
29739
- }
29740
- sideDialogsController.open({
29741
- key: `reference_${referenceDialogProps.path}`,
29742
- component: /* @__PURE__ */ jsxRuntime.jsx(ReferenceSelectionTable, { collection: usedCollection, ...referenceDialogProps }),
29743
- width: "90vw",
29744
- onClose: () => {
29745
- referenceDialogProps.onClose?.();
29746
- }
29747
- });
29748
- } else {
29749
- throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`");
29750
- }
29751
- };
29752
- $[0] = navigation;
29753
- $[1] = referenceDialogProps;
29754
- $[2] = sideDialogsController;
29755
- $[3] = t0;
29756
- } else {
29757
- t0 = $[3];
29758
- }
29759
- const open = t0;
29760
- let t1;
29761
- if ($[4] !== sideDialogsController) {
29762
- t1 = () => {
29763
- sideDialogsController.close();
29764
- };
29765
- $[4] = sideDialogsController;
29766
- $[5] = t1;
29767
- } else {
29768
- t1 = $[5];
29769
- }
29770
- const close = t1;
29771
- let t2;
29772
- if ($[6] !== close || $[7] !== open) {
29773
- t2 = {
29774
- open,
29775
- close
29776
- };
29777
- $[6] = close;
29778
- $[7] = open;
29779
- $[8] = t2;
29780
- } else {
29781
- t2 = $[8];
29782
- }
29783
- return t2;
29919
+ });
29920
+ } else {
29921
+ throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`");
29922
+ }
29923
+ }, [navigation, referenceDialogProps, sideDialogsController]);
29924
+ const close = React.useCallback(() => {
29925
+ sideDialogsController.close(`reference_${referenceDialogProps.path}`);
29926
+ }, [sideDialogsController, referenceDialogProps.path]);
29927
+ return {
29928
+ open,
29929
+ close
29930
+ };
29784
29931
  }
29785
29932
  const fireCMSLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAa9SURBVHgB7Z1NbBNHFMf/a7uBEgMOHy2pSlnUql+oEG7lgNgcqZAgR9RKSU5tT9mcqp6SXNoj5tBzHAmk3ggSUo/Ziko9skXqoVIlJm3Von4IhzhAIIk7b9ab+COJvZ63610nP8netWx5Z//73syb2Zm3BjqJXc4BixaQMgHjDFCWW5iVb83aH5eL8jdC7lS2a/Ny3wGyLvJGER3CQJRsCHZBfrqCBpHaRkCJuXYb2O9EKWg0AtpKtDF5gnJr5BA+BSVm/sAsQiY8AZW1PSHR7IhE2wwhX1NAWlrlywIhwC9gPISrR8iyFJDvnQIzvALapRH5PgG+uo0bAbLIfLYAJngEtJ+awOq03LOQCAxZN6bGOdw6BV3GyV1X7iEx4hFlGQGs3qt4jBbtW6Cq65bIXW0km7x06XG0SXsCei57S+4NoDtwZUs91I5LBxfQE28O8W0o2kVIEQeDihhMwO4Vz0cEFbF1AbtfPB8RRMTWBNw54vmIVkVsMYxRDYaJnYOpztl+1LQn1VxAu3QN3dPaBkGe80sTzX60vQt7geY0IsDcMw8r+wPO9N6H2TOPXHpBbn9DcfWgehHu09OYf/YGnNJ5uE9OIyJkjyWb3+rLrQVU9R71MMIbELD238XlvjsYOXQTuUywIbziSg6zC5cw8+/HcBbPI0RkwdJnt6oPtxFw6ZbX5eFn5PANDB+5qQTkQCyfwNSfX6Lw3ycICTkclh3c7IvNBQzJdUmwide+YhOunpCFHN1sFGcrAR+AsdUl95zo/xr2q98gCkhAEpIEZUQAL6Qr99XUNY2tsL3EOp5HjcPc2x9FJh5BVQQdk47NiAlkGgZOai2QOWD2xWM+kZah1nvwl+84W2xpfS9OVlthnQWuWugS8QgKhebeuYiBfffBRK7eCutduGng2ApxEM+HX0RjrPrThoD2Y7b7tHERz4dEvPXmVbXl+DvvNq1HlQWmLoMBClPiJJ4PlWn65KfgIbVuhV4jojrNLz2CJlTIBx+cQpwZ+vVbzBYvQZP1xqRigWkLDEybnyHuXDv+BYcrS4PrsWinIqC++17J3Qmth8EJeQlPTErTVDbqQAuajEUYKOsyfPgm9DGU0Rkc9V8S6r56KMDWH8V50SctMKM9WErumzSGj9yAPj0WubAFTXhcIlp4LnrZTFVmhbYNtWiMXaXI4Cm3cUYKmNIa80mieD76UYOyQGgN2SdZQLrnovsXJKAJDRgK0TE4upzaFpjLsHTQO8JB/R6JmYEuyz3A4gEkkuW90EVfwLvyZtXffUgkB03gfWihP0N1h0MCCmhQTOu7QadY0C97UdsCxd64rGQIjtijXXahbYHuvn4kFbf3GDQhC1zTCobcfdqF6Bhur+7FN8gCUy40KGb2wjlgImmQ++pf/LV5skABTb6ncCBhMF10Rwq46kCT/LFzSBozr5yFPituqjJNQUCDpLkxuS9DeUXVXbnybWgydXwQSWHquAUGHHrzBXSgCV3RJFghWV/hKIf7GsroKgKqelB7mfzoW0OIO0zWJ3nu0LsnoKoH9a2Qru64eRFxpXB0gMn6UPCnuFV35a6DgXz/h7F0Zd6La6y3GXUTLEt0f1i7g2guFzH387TaxgESb/DUKEffV/0d8tmT/oe6wYQyixUyF1gLCrGG3r3KWZaavAt1Aq7QghIWs4mDiCQelYGxvy5UBpAqagX0GhMWK1RHq4jIMOrR1rHPnv6cebCjPFO/4KZxmYM3V4ZyIJhgZPIPBxO/zyEKrvefw+TrlrJARmrqPp9IF9qE3biQ1VEsGlIUEGChDWGXyFwshMDIPy7G/voRA0sPwQFVEddl+MQU422CMYt876a9hCaLDVfJlUNrBQaePIQthbywIAJbJbnnjAyMZw+9F3LcSVnjMm0sNiTsEq2JuIYIIDHNZ0VYjx/gxPMicivPar4nweZ7cmoUmSwuwpHw0e0yHTVf8m8v5uvXRuwcZESS379tXpwW7sqtTELlVdlxuM3EI5oLqGLDNFWgAjsHUTnnpuymPWlE8Kc98dlNvNNAMAGJ3dRPNQSf2qEOkKYbIN3UsLjtiEcEt8BquiLEocGT7GS7mX/1BCS8fjMF2wmbZaTyUk9tlxOmFfQFJLwcM1JE4wqSgSNddpQjBSiPgD67SWiZsBcn5V8PIzZCkrvSTTPprsxZzsMRkPDCHQsdtcjwhPMJT8BqvHwM8pUaRuiQaCkHWKOBAAchE42APusPI1Bi0gMJTPAgvPk9NDmgGx9GsBVK0NIA1Mg3rdlTCx9z3rYha5zY2NLjMMo/eXMboxWsnv8Br15XnnLWoGsAAAAASUVORK5CYII=";
29786
29933
  function useBrowserTitleAndIcon(name, logo) {
@@ -30439,7 +30586,7 @@
30439
30586
  t0 = $[0];
30440
30587
  }
30441
30588
  const configCache = React.useRef(t0);
30442
- const getCollectionFromStorage = _temp$c;
30589
+ const getCollectionFromStorage = _temp$d;
30443
30590
  let t1;
30444
30591
  if ($[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
30445
30592
  t1 = (path) => {
@@ -30562,7 +30709,7 @@
30562
30709
  }
30563
30710
  return t11;
30564
30711
  }
30565
- function _temp$c(storageKey) {
30712
+ function _temp$d(storageKey) {
30566
30713
  return getLocalStorageJSON(storageKey, {});
30567
30714
  }
30568
30715
  function useBuildModeController() {
@@ -30725,78 +30872,32 @@
30725
30872
  }
30726
30873
  return t7;
30727
30874
  }
30728
- function useNavigationUnsavedChangesDialog(when, onSuccess) {
30729
- const [isDialogOpen, setIsDialogOpen] = React.useState(false);
30730
- const [pendingNavigation, setPendingNavigation] = React.useState(null);
30731
- const handleCancel = React.useCallback(() => {
30732
- setIsDialogOpen(false);
30733
- setPendingNavigation(null);
30734
- }, []);
30735
- const handleOk = React.useCallback(() => {
30736
- setIsDialogOpen(false);
30737
- if (pendingNavigation) {
30738
- onSuccess();
30739
- if (pendingNavigation.type === "popstate") {
30740
- window.history.go(pendingNavigation.delta);
30741
- } else if (pendingNavigation.type === "link") {
30742
- window.location.href = pendingNavigation.href;
30743
- }
30744
- setPendingNavigation(null);
30745
- }
30746
- }, [onSuccess, pendingNavigation]);
30747
- const handleBeforeUnload = React.useCallback((e) => {
30748
- if (when) {
30749
- e.preventDefault();
30750
- e.returnValue = "";
30751
- }
30752
- }, [when]);
30753
- const handlePopState = React.useCallback((e_0) => {
30754
- if (when) {
30755
- e_0.preventDefault();
30756
- setPendingNavigation({
30757
- type: "popstate",
30758
- delta: -1
30759
- });
30760
- setIsDialogOpen(true);
30761
- }
30762
- }, [when]);
30763
- const handleLinkClick = React.useCallback((e_1) => {
30764
- if (!when) return;
30765
- const target = e_1.target;
30766
- const anchor = target.closest("a[href]");
30767
- if (anchor && anchor.host === window.location.host) {
30768
- e_1.preventDefault();
30769
- const href = anchor.getAttribute("href");
30770
- if (href) {
30771
- setPendingNavigation({
30772
- type: "link",
30773
- href
30774
- });
30775
- setIsDialogOpen(true);
30875
+ function useLeavePageConfirmation(when) {
30876
+ const $ = reactCompilerRuntime.c(3);
30877
+ let t0;
30878
+ let t1;
30879
+ if ($[0] !== when) {
30880
+ t0 = () => {
30881
+ if (!when) {
30882
+ return;
30776
30883
  }
30777
- }
30778
- }, [when]);
30779
- React.useEffect(() => {
30780
- if (when) {
30884
+ const handleBeforeUnload = _temp$c;
30781
30885
  window.addEventListener("beforeunload", handleBeforeUnload);
30782
- window.addEventListener("popstate", handlePopState);
30783
- document.addEventListener("click", handleLinkClick);
30784
- } else {
30785
- window.removeEventListener("beforeunload", handleBeforeUnload);
30786
- window.removeEventListener("popstate", handlePopState);
30787
- document.removeEventListener("click", handleLinkClick);
30788
- }
30789
- return () => {
30790
- window.removeEventListener("beforeunload", handleBeforeUnload);
30791
- window.removeEventListener("popstate", handlePopState);
30792
- document.removeEventListener("click", handleLinkClick);
30886
+ return () => window.removeEventListener("beforeunload", handleBeforeUnload);
30793
30887
  };
30794
- }, [when, handleBeforeUnload, handlePopState, handleLinkClick]);
30795
- return {
30796
- navigationWasBlocked: isDialogOpen,
30797
- handleCancel,
30798
- handleOk
30799
- };
30888
+ t1 = [when];
30889
+ $[0] = when;
30890
+ $[1] = t0;
30891
+ $[2] = t1;
30892
+ } else {
30893
+ t0 = $[1];
30894
+ t1 = $[2];
30895
+ }
30896
+ React.useEffect(t0, t1);
30897
+ }
30898
+ function _temp$c(e) {
30899
+ e.preventDefault();
30900
+ e.returnValue = "";
30800
30901
  }
30801
30902
  function UnsavedChangesDialog(t0) {
30802
30903
  const $ = reactCompilerRuntime.c(30);
@@ -31116,17 +31217,14 @@
31116
31217
  const widthRef = React.useRef(panel?.width);
31117
31218
  const width = widthRef.current;
31118
31219
  const sideDialogsController = useSideDialogsController();
31119
- const {
31120
- handleOk: handleNavigationOk,
31121
- handleCancel: handleNavigationCancel
31122
- } = useNavigationUnsavedChangesDialog(blocked && !drawerCloseRequested, () => setBlocked(false));
31220
+ useLeavePageConfirmation(blocked && !drawerCloseRequested);
31123
31221
  React.useEffect(() => {
31124
31222
  if (panel) widthRef.current = panel.width;
31125
31223
  }, [panel]);
31126
31224
  const handleDrawerCloseOk = () => {
31127
31225
  setBlocked(false);
31128
31226
  setDrawerCloseRequested(false);
31129
- sideDialogsController.close();
31227
+ sideDialogsController.close(panel?.key);
31130
31228
  panel?.onClose?.();
31131
31229
  };
31132
31230
  const handleDrawerCloseCancel = () => {
@@ -31136,7 +31234,7 @@
31136
31234
  if (blocked && !force) {
31137
31235
  setDrawerCloseRequested(true);
31138
31236
  } else {
31139
- sideDialogsController.close();
31237
+ sideDialogsController.close(panel?.key);
31140
31238
  panel?.onClose?.();
31141
31239
  }
31142
31240
  };
@@ -31169,7 +31267,7 @@
31169
31267
  width
31170
31268
  } })
31171
31269
  ] }),
31172
- /* @__PURE__ */ jsxRuntime.jsx(UnsavedChangesDialog, { open: drawerCloseRequested, handleOk: drawerCloseRequested ? handleDrawerCloseOk : handleNavigationOk, handleCancel: drawerCloseRequested ? handleDrawerCloseCancel : handleNavigationCancel, body: blockedNavigationMessage })
31270
+ /* @__PURE__ */ jsxRuntime.jsx(UnsavedChangesDialog, { open: drawerCloseRequested, handleOk: handleDrawerCloseOk, handleCancel: handleDrawerCloseCancel, body: blockedNavigationMessage })
31173
31271
  ] });
31174
31272
  }
31175
31273
  function EntityEditViewFormActions({
@@ -31635,6 +31733,9 @@
31635
31733
  }, [selectedTabProp]);
31636
31734
  const subcollections = (collection.subcollections ?? []).filter((c) => !c.hideFromNavigation);
31637
31735
  const subcollectionsCount = subcollections?.length ?? 0;
31736
+ const [subcollectionCounts, setSubcollectionCounts] = React.useState({});
31737
+ const selectedSubcollection = subcollections.find((subcollection) => (subcollection.id ?? subcollection.path) === selectedTab);
31738
+ const selectedSubcollectionDataSource = useDataSource();
31638
31739
  const customViews = collection.entityViews ?? [];
31639
31740
  const customViewsCount = customViews?.length ?? 0;
31640
31741
  const includeJsonView = collection.includeJsonView === void 0 ? true : collection.includeJsonView;
@@ -31708,15 +31809,18 @@
31708
31809
  const jsonView = selectedTab === JSON_TAB_VALUE || mountedTabsRef.current.has(JSON_TAB_VALUE) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cls("relative flex-1 h-full overflow-auto w-full", {
31709
31810
  "hidden": selectedTab !== JSON_TAB_VALUE
31710
31811
  }), role: "tabpanel", children: /* @__PURE__ */ jsxRuntime.jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxRuntime.jsx(EntityJsonPreview, { values: formContext?.values ?? entity?.values ?? {} }) }) }, "json_view") : null;
31711
- const subCollectionsViews = subcollections && subcollections.map((subcollection) => {
31712
- const subcollectionId = subcollection.id ?? subcollection.path;
31713
- const newFullPath = usedEntity ? `${path}/${usedEntity?.id}/${removeInitialAndTrailingSlashes(subcollection.path)}` : void 0;
31812
+ const subCollectionsViews = subcollections && subcollections.map((subcollection_0) => {
31813
+ const subcollectionId = subcollection_0.id ?? subcollection_0.path;
31814
+ const newFullPath = usedEntity ? `${path}/${usedEntity?.id}/${removeInitialAndTrailingSlashes(subcollection_0.path)}` : void 0;
31714
31815
  const newFullIdPath = fullIdPath && usedEntity ? `${fullIdPath}/${encodeEntityId(usedEntity.id)}/${removeInitialAndTrailingSlashes(subcollectionId)}` : void 0;
31715
- const newPathSegments = buildSubcollectionPathSegments(pathSegments, usedEntity?.id, subcollection.path);
31816
+ const newPathSegments = buildSubcollectionPathSegments(pathSegments, usedEntity?.id, subcollection_0.path);
31716
31817
  if (selectedTab !== subcollectionId) return null;
31717
31818
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-1 h-full overflow-auto w-full", role: "tabpanel", children: [
31718
31819
  globalLoading && /* @__PURE__ */ jsxRuntime.jsx(CircularProgressCenter, {}),
31719
- !globalLoading && (usedEntity && newFullPath ? /* @__PURE__ */ jsxRuntime.jsx(EntityCollectionView$1, { fullPath: newFullPath, pathSegments: newPathSegments, fullIdPath: newFullIdPath, parentCollectionIds: [...parentCollectionIds, collection.id], isSubCollection: true, updateUrl: false, ...subcollection, openEntityMode: layout }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center w-full h-full p-3", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "label", children: t("youd_need_to_save_before_additional_collections") }) }))
31820
+ !globalLoading && (usedEntity && newFullPath ? /* @__PURE__ */ jsxRuntime.jsx(EntityCollectionView$1, { fullPath: newFullPath, pathSegments: newPathSegments, fullIdPath: newFullIdPath, parentCollectionIds: [...parentCollectionIds, collection.id], isSubCollection: true, updateUrl: false, ...subcollection_0, openEntityMode: layout, onCountChange: (count) => setSubcollectionCounts((counts) => counts[subcollectionId] === count ? counts : {
31821
+ ...counts,
31822
+ [subcollectionId]: count
31823
+ }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center w-full h-full p-3", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "label", children: t("youd_need_to_save_before_additional_collections") }) }))
31720
31824
  ] }, `subcol_${subcollectionId}`);
31721
31825
  }).filter(Boolean);
31722
31826
  const onSideTabClick = (value_0) => {
@@ -31752,7 +31856,7 @@
31752
31856
  onSaved?.(res);
31753
31857
  formProps?.onSaved?.(res);
31754
31858
  }, Builder: selectedSecondaryForm?.Builder });
31755
- const subcollectionTabs = subcollections && subcollections.filter((sub) => !groupedViews.includes(sub.id ?? sub.path)).map((subcollection_0) => /* @__PURE__ */ jsxRuntime.jsx(ui.Tab, { className: "text-sm min-w-[120px]", value: subcollection_0.id ?? subcollection_0.path, children: subcollection_0.name }, `entity_detail_collection_tab_${subcollection_0.name}`));
31859
+ const subcollectionTabs = subcollections && subcollections.filter((sub) => !groupedViews.includes(sub.id ?? sub.path)).map((subcollection_1) => /* @__PURE__ */ jsxRuntime.jsx(ui.Tab, { className: "text-sm min-w-[120px]", value: subcollection_1.id ?? subcollection_1.path, children: subcollection_1.name }, `entity_detail_collection_tab_${subcollection_1.name}`));
31756
31860
  const customViewTabsStart = resolvedEntityViews.filter((view) => view.position === "start" && !groupedViews.includes(view.key)).map((view_0) => /* @__PURE__ */ jsxRuntime.jsx(ui.Tab, { className: !view_0.tabComponent ? "text-sm min-w-[120px]" : void 0, value: view_0.key, children: view_0.tabComponent ?? view_0.name }, `entity_detail_collection_tab_${view_0.name}`));
31757
31861
  const customViewTabsEnd = resolvedEntityViews.filter((view_1) => (!view_1.position || view_1.position === "end") && !groupedViews.includes(view_1.key)).map((view_2) => /* @__PURE__ */ jsxRuntime.jsx(ui.Tab, { className: !view_2.tabComponent ? "text-sm min-w-[120px]" : void 0, value: view_2.key, children: view_2.tabComponent ?? view_2.name }, `entity_detail_collection_tab_${view_2.name}`));
31758
31862
  const viewGroupMenus = collection.viewGroups?.map((group) => {
@@ -31761,13 +31865,17 @@
31761
31865
  group.name,
31762
31866
  /* @__PURE__ */ jsxRuntime.jsx(ui.ExpandMoreIcon, { className: "ml-1 -mr-1", size: "small" })
31763
31867
  ] }), children: group.views.map((viewId) => {
31764
- const subcollection_1 = subcollections.find((s) => (s.id ?? s.path) === viewId);
31868
+ const subcollection_2 = subcollections.find((s) => (s.id ?? s.path) === viewId);
31765
31869
  const customView_0 = resolvedEntityViews.find((v) => v.key === viewId);
31766
- const name = subcollection_1?.name ?? customView_0?.name ?? viewId;
31870
+ const name = subcollection_2?.name ?? customView_0?.name ?? viewId;
31767
31871
  return /* @__PURE__ */ jsxRuntime.jsx(ui.MenuItem, { onClick: () => onSideTabClick(viewId), className: selectedTab === viewId ? "bg-surface-accent-100 dark:bg-surface-accent-900" : "", children: name }, `view_group_${group.name}_${viewId}`);
31768
31872
  }) }, `view_group_${group.name}`);
31769
31873
  });
31770
31874
  const shouldShowTopBar = Boolean(barActions) || hasAdditionalViews;
31875
+ const subcollectionTitle = layout === "side_panel" && selectedSubcollection && usedEntity ? (() => {
31876
+ const subcollectionId_0 = selectedSubcollection.id ?? selectedSubcollection.path;
31877
+ return /* @__PURE__ */ jsxRuntime.jsx(CollectionPathTitle, { path: fullIdPath ? `${fullIdPath}/${encodeEntityId(usedEntity.id)}/${removeInitialAndTrailingSlashes(subcollectionId_0)}` : `${path}/${usedEntity.id}/${removeInitialAndTrailingSlashes(selectedSubcollection.path)}`, name: selectedSubcollection.name, count: subcollectionCounts[subcollectionId_0] ?? (selectedSubcollectionDataSource.countEntities ? null : void 0) });
31878
+ })() : null;
31771
31879
  let result = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col h-full w-full bg-white dark:bg-surface-900", children: [
31772
31880
  shouldShowTopBar && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cls("h-14 items-center overflow-hidden w-full border-b pl-2 pr-2 flex gap-2 bg-surface-50 dark:bg-surface-900", ui.defaultBorderMixin), children: [
31773
31881
  barActions?.({
@@ -31776,6 +31884,7 @@
31776
31884
  values: formContext?.values ?? usedEntity?.values ?? {},
31777
31885
  status
31778
31886
  }),
31887
+ subcollectionTitle,
31779
31888
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow" }),
31780
31889
  pluginActionsTop,
31781
31890
  globalLoading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "self-center", children: /* @__PURE__ */ jsxRuntime.jsx(ui.CircularProgress, { size: "small" }) }),
@@ -32027,7 +32136,7 @@
32027
32136
  };
32028
32137
  };
32029
32138
  function useBuildSideDialogsController() {
32030
- const $ = reactCompilerRuntime.c(21);
32139
+ const $ = reactCompilerRuntime.c(23);
32031
32140
  const location = reactRouterDom.useLocation();
32032
32141
  const navigate = reactRouterDom.useNavigate();
32033
32142
  let t0;
@@ -32050,46 +32159,78 @@
32050
32159
  const routesCount = React.useRef(0);
32051
32160
  let t2;
32052
32161
  if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
32053
- t2 = (newPanels) => {
32054
- sidePanelsRef.current = newPanels;
32055
- setSidePanels(newPanels);
32056
- };
32162
+ t2 = {};
32057
32163
  $[2] = t2;
32058
32164
  } else {
32059
32165
  t2 = $[2];
32060
32166
  }
32061
- const updateSidePanels = t2;
32167
+ const entryKeysOfPanelsWithoutUrl = React.useRef(t2);
32062
32168
  let t3;
32063
- if ($[3] !== location.state) {
32064
- t3 = () => {
32169
+ if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
32170
+ t3 = (newPanels) => {
32171
+ sidePanelsRef.current = newPanels;
32172
+ setSidePanels(newPanels);
32173
+ };
32174
+ $[3] = t3;
32175
+ } else {
32176
+ t3 = $[3];
32177
+ }
32178
+ const updateSidePanels = t3;
32179
+ let t4;
32180
+ if ($[4] !== location.key || $[5] !== location.state) {
32181
+ t4 = () => {
32065
32182
  const state = location.state;
32066
32183
  const panelKeys = state?.panels ?? [];
32067
- const newPanels_0 = panelKeys.map((key) => routesStore.current[key]).filter(_temp$a);
32184
+ const panelsInHistory = panelKeys.map((key) => routesStore.current[key]).filter(_temp$a);
32185
+ const keptPanels = [];
32186
+ let matched = 0;
32187
+ for (const panel of sidePanelsRef.current) {
32188
+ if (panelsInHistory[matched]?.key === panel.key) {
32189
+ keptPanels.push(panel);
32190
+ matched++;
32191
+ } else {
32192
+ if (!panel.urlPath && (keptPanels.length > 0 || entryKeysOfPanelsWithoutUrl.current[panel.key] === location.key)) {
32193
+ keptPanels.push(panel);
32194
+ } else {
32195
+ break;
32196
+ }
32197
+ }
32198
+ }
32199
+ const newPanels_0 = [...keptPanels, ...panelsInHistory.slice(matched)];
32068
32200
  if (!equal(sidePanelsRef.current.map(_temp2$4), newPanels_0.map(_temp3$3))) {
32069
32201
  updateSidePanels(newPanels_0);
32070
32202
  }
32071
32203
  };
32072
- $[3] = location.state;
32073
- $[4] = t3;
32074
- } else {
32075
- t3 = $[4];
32076
- }
32077
- let t4;
32078
- if ($[5] !== location) {
32079
- t4 = [location];
32080
- $[5] = location;
32204
+ $[4] = location.key;
32205
+ $[5] = location.state;
32081
32206
  $[6] = t4;
32082
32207
  } else {
32083
32208
  t4 = $[6];
32084
32209
  }
32085
- React.useEffect(t3, t4);
32086
32210
  let t5;
32087
- if ($[7] !== location || $[8] !== navigate) {
32088
- t5 = () => {
32211
+ if ($[7] !== location) {
32212
+ t5 = [location];
32213
+ $[7] = location;
32214
+ $[8] = t5;
32215
+ } else {
32216
+ t5 = $[8];
32217
+ }
32218
+ React.useEffect(t4, t5);
32219
+ let t6;
32220
+ if ($[9] !== location || $[10] !== navigate) {
32221
+ t6 = (key_0) => {
32089
32222
  const currentPanels = sidePanelsRef.current;
32090
32223
  if (currentPanels.length === 0) {
32091
32224
  return;
32092
32225
  }
32226
+ const index = key_0 !== void 0 ? currentPanels.findLastIndex((p_2) => p_2.key === key_0) : -1;
32227
+ if (index !== -1 && index < currentPanels.length - 1 && !currentPanels[index].urlPath) {
32228
+ updateSidePanels(currentPanels.filter((_, i) => i !== index));
32229
+ if (routesCount.current > 0) {
32230
+ routesCount.current = routesCount.current - 1;
32231
+ }
32232
+ return;
32233
+ }
32093
32234
  const lastSidePanel = currentPanels[currentPanels.length - 1];
32094
32235
  const updatedPanels = [...currentPanels.slice(0, -1)];
32095
32236
  updateSidePanels(updatedPanels);
@@ -32111,28 +32252,31 @@
32111
32252
  }
32112
32253
  }
32113
32254
  };
32114
- $[7] = location;
32115
- $[8] = navigate;
32116
- $[9] = t5;
32255
+ $[9] = location;
32256
+ $[10] = navigate;
32257
+ $[11] = t6;
32117
32258
  } else {
32118
- t5 = $[9];
32259
+ t6 = $[11];
32119
32260
  }
32120
- const close = t5;
32121
- let t6;
32122
- if ($[10] !== location || $[11] !== navigate) {
32123
- t6 = (panelProps) => {
32261
+ const close = t6;
32262
+ let t7;
32263
+ if ($[12] !== location || $[13] !== navigate) {
32264
+ t7 = (panelProps) => {
32124
32265
  const newPanels_1 = Array.isArray(panelProps) ? panelProps : [panelProps];
32125
- newPanels_1.forEach((panel) => {
32126
- routesStore.current[panel.key] = panel;
32266
+ newPanels_1.forEach((panel_0) => {
32267
+ routesStore.current[panel_0.key] = panel_0;
32268
+ if (!panel_0.urlPath) {
32269
+ entryKeysOfPanelsWithoutUrl.current[panel_0.key] = location.key;
32270
+ }
32127
32271
  });
32128
32272
  routesCount.current = routesCount.current + newPanels_1.length;
32129
32273
  const baseLocation_0 = location.state?.base_location ?? location;
32130
32274
  const currentPanels_0 = sidePanelsRef.current;
32131
32275
  const updatedPanels_0 = [...currentPanels_0, ...newPanels_1];
32132
32276
  updateSidePanels(updatedPanels_0);
32133
- newPanels_1.forEach((panel_0) => {
32134
- if (panel_0.urlPath) {
32135
- navigate(panel_0.urlPath, {
32277
+ newPanels_1.forEach((panel_1) => {
32278
+ if (panel_1.urlPath) {
32279
+ navigate(panel_1.urlPath, {
32136
32280
  state: {
32137
32281
  base_location: baseLocation_0,
32138
32282
  panels: updatedPanels_0.map(_temp5$1)
@@ -32141,27 +32285,30 @@
32141
32285
  }
32142
32286
  });
32143
32287
  };
32144
- $[10] = location;
32145
- $[11] = navigate;
32146
- $[12] = t6;
32288
+ $[12] = location;
32289
+ $[13] = navigate;
32290
+ $[14] = t7;
32147
32291
  } else {
32148
- t6 = $[12];
32292
+ t7 = $[14];
32149
32293
  }
32150
- const open = t6;
32151
- let t7;
32152
- if ($[13] !== location || $[14] !== navigate) {
32153
- t7 = (panelProps_0) => {
32294
+ const open = t7;
32295
+ let t8;
32296
+ if ($[15] !== location || $[16] !== navigate) {
32297
+ t8 = (panelProps_0) => {
32154
32298
  const newPanels_2 = Array.isArray(panelProps_0) ? panelProps_0 : [panelProps_0];
32155
- newPanels_2.forEach((panel_1) => {
32156
- routesStore.current[panel_1.key] = panel_1;
32299
+ newPanels_2.forEach((panel_2) => {
32300
+ routesStore.current[panel_2.key] = panel_2;
32301
+ if (!panel_2.urlPath) {
32302
+ entryKeysOfPanelsWithoutUrl.current[panel_2.key] = location.key;
32303
+ }
32157
32304
  });
32158
32305
  const baseLocation_1 = location.state?.base_location ?? location;
32159
32306
  const currentPanels_1 = sidePanelsRef.current;
32160
32307
  const updatedPanels_1 = [...currentPanels_1.slice(0, -newPanels_2.length), ...newPanels_2];
32161
32308
  updateSidePanels(updatedPanels_1);
32162
- newPanels_2.forEach((panel_2) => {
32163
- if (panel_2.urlPath) {
32164
- navigate(panel_2.urlPath, {
32309
+ newPanels_2.forEach((panel_3) => {
32310
+ if (panel_3.urlPath) {
32311
+ navigate(panel_3.urlPath, {
32165
32312
  replace: true,
32166
32313
  state: {
32167
32314
  base_location: baseLocation_1,
@@ -32171,41 +32318,41 @@
32171
32318
  }
32172
32319
  });
32173
32320
  };
32174
- $[13] = location;
32175
- $[14] = navigate;
32176
- $[15] = t7;
32321
+ $[15] = location;
32322
+ $[16] = navigate;
32323
+ $[17] = t8;
32177
32324
  } else {
32178
- t7 = $[15];
32325
+ t8 = $[17];
32179
32326
  }
32180
- const replace = t7;
32181
- let t8;
32182
- if ($[16] !== close || $[17] !== open || $[18] !== replace || $[19] !== sidePanels) {
32183
- t8 = {
32327
+ const replace = t8;
32328
+ let t9;
32329
+ if ($[18] !== close || $[19] !== open || $[20] !== replace || $[21] !== sidePanels) {
32330
+ t9 = {
32184
32331
  sidePanels,
32185
32332
  setSidePanels: updateSidePanels,
32186
32333
  close,
32187
32334
  open,
32188
32335
  replace
32189
32336
  };
32190
- $[16] = close;
32191
- $[17] = open;
32192
- $[18] = replace;
32193
- $[19] = sidePanels;
32194
- $[20] = t8;
32337
+ $[18] = close;
32338
+ $[19] = open;
32339
+ $[20] = replace;
32340
+ $[21] = sidePanels;
32341
+ $[22] = t9;
32195
32342
  } else {
32196
- t8 = $[20];
32343
+ t9 = $[22];
32197
32344
  }
32198
- return t8;
32345
+ return t9;
32346
+ }
32347
+ function _temp6$1(p_5) {
32348
+ return p_5.key;
32199
32349
  }
32200
- function _temp6$1(p_4) {
32350
+ function _temp5$1(p_4) {
32201
32351
  return p_4.key;
32202
32352
  }
32203
- function _temp5$1(p_3) {
32353
+ function _temp4$2(p_3) {
32204
32354
  return p_3.key;
32205
32355
  }
32206
- function _temp4$2(p_2) {
32207
- return p_2.key;
32208
- }
32209
32356
  function _temp3$3(p_1) {
32210
32357
  return p_1.key;
32211
32358
  }
@@ -35009,6 +35156,7 @@
35009
35156
  editor_cancel: "Cancel",
35010
35157
  editor_remove_link: "Remove link",
35011
35158
  editor_paste_or_type_link: "Paste or type link",
35159
+ editor_invalid_url: "Invalid URL",
35012
35160
  editor_open_in_new_window: "Open in new window",
35013
35161
  editor_bold: "Bold",
35014
35162
  editor_italic: "Italic",
@@ -35714,6 +35862,7 @@
35714
35862
  editor_cancel: "Cancelar",
35715
35863
  editor_remove_link: "Eliminar enlace",
35716
35864
  editor_paste_or_type_link: "Pega o escribe el enlace",
35865
+ editor_invalid_url: "URL no válida",
35717
35866
  editor_open_in_new_window: "Abrir en una ventana nueva",
35718
35867
  editor_bold: "Negrita",
35719
35868
  editor_italic: "Cursiva",
@@ -38654,7 +38803,7 @@
38654
38803
  }
38655
38804
  }
38656
38805
  const LinkSelector = (t0) => {
38657
- const $ = reactCompilerRuntime.c(58);
38806
+ const $ = reactCompilerRuntime.c(66);
38658
38807
  const {
38659
38808
  open,
38660
38809
  onOpenChange
@@ -38667,20 +38816,23 @@
38667
38816
  const {
38668
38817
  t
38669
38818
  } = useTranslation();
38819
+ const [error, setError] = React.useState(null);
38820
+ const isInputInvalid = !!error;
38670
38821
  let t1;
38671
- let t2;
38672
- if ($[0] !== open) {
38822
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38673
38823
  t1 = () => {
38674
- if (open && inputRef.current) {
38675
- inputRef.current.focus();
38676
- }
38824
+ setError(null);
38677
38825
  };
38826
+ $[0] = t1;
38827
+ } else {
38828
+ t1 = $[0];
38829
+ }
38830
+ let t2;
38831
+ if ($[1] !== open) {
38678
38832
  t2 = [open];
38679
- $[0] = open;
38680
- $[1] = t1;
38833
+ $[1] = open;
38681
38834
  $[2] = t2;
38682
38835
  } else {
38683
- t1 = $[1];
38684
38836
  t2 = $[2];
38685
38837
  }
38686
38838
  React.useEffect(t1, t2);
@@ -38688,195 +38840,227 @@
38688
38840
  return null;
38689
38841
  }
38690
38842
  let t3;
38691
- if ($[3] !== onOpenChange || $[4] !== view) {
38843
+ if ($[3] !== isInputInvalid) {
38692
38844
  t3 = (e) => {
38693
- e.preventDefault();
38845
+ if (isInputInvalid) {
38846
+ setError(null);
38847
+ }
38848
+ };
38849
+ $[3] = isInputInvalid;
38850
+ $[4] = t3;
38851
+ } else {
38852
+ t3 = $[4];
38853
+ }
38854
+ const handleChange = t3;
38855
+ let t4;
38856
+ if ($[5] !== onOpenChange || $[6] !== t || $[7] !== view) {
38857
+ t4 = (e_0) => {
38858
+ e_0.preventDefault();
38859
+ e_0.stopPropagation();
38860
+ setError(null);
38694
38861
  const value = inputRef.current?.value;
38695
38862
  if (!value) {
38696
38863
  return;
38697
38864
  }
38698
38865
  const url = getUrlFromString(value);
38699
- if (url) {
38700
- setMark(schema.marks.link, {
38701
- href: url
38702
- })(view.state, view.dispatch);
38703
- view.focus();
38704
- onOpenChange(false);
38866
+ if (!url) {
38867
+ setError(t("editor_invalid_url"));
38868
+ return;
38705
38869
  }
38870
+ setMark(schema.marks.link, {
38871
+ href: url
38872
+ })(view.state, view.dispatch);
38873
+ view.focus();
38874
+ onOpenChange(false);
38706
38875
  };
38707
- $[3] = onOpenChange;
38708
- $[4] = view;
38709
- $[5] = t3;
38876
+ $[5] = onOpenChange;
38877
+ $[6] = t;
38878
+ $[7] = view;
38879
+ $[8] = t4;
38710
38880
  } else {
38711
- t3 = $[5];
38881
+ t4 = $[8];
38712
38882
  }
38713
- const handleSubmit = t3;
38714
- let t4;
38715
- if ($[6] !== onOpenChange || $[7] !== view) {
38716
- t4 = () => {
38883
+ const handleSubmit = t4;
38884
+ let t5;
38885
+ if ($[9] !== onOpenChange || $[10] !== view) {
38886
+ t5 = () => {
38717
38887
  unsetMark(schema.marks.link)(view.state, view.dispatch);
38718
38888
  view.focus();
38719
38889
  onOpenChange(false);
38720
38890
  };
38721
- $[6] = onOpenChange;
38722
- $[7] = view;
38723
- $[8] = t4;
38891
+ $[9] = onOpenChange;
38892
+ $[10] = view;
38893
+ $[11] = t5;
38724
38894
  } else {
38725
- t4 = $[8];
38895
+ t5 = $[11];
38726
38896
  }
38727
- const handleRemoveLink = t4;
38897
+ const handleRemoveLink = t5;
38728
38898
  let T0;
38729
38899
  let T1;
38730
38900
  let href;
38731
38901
  let t10;
38732
38902
  let t11;
38733
38903
  let t12;
38734
- let t5;
38904
+ let t13;
38735
38905
  let t6;
38736
38906
  let t7;
38737
38907
  let t8;
38738
38908
  let t9;
38739
- if ($[9] !== onOpenChange || $[10] !== open || $[11] !== state) {
38909
+ if ($[12] !== onOpenChange || $[13] !== open || $[14] !== state) {
38740
38910
  const isActive = isMarkActive(state, schema.marks.link);
38741
- let t132;
38742
- if ($[23] !== state) {
38743
- t132 = getMarkAttributes(state, schema.marks.link).href || "";
38744
- $[23] = state;
38745
- $[24] = t132;
38911
+ let t142;
38912
+ if ($[26] !== state) {
38913
+ t142 = getMarkAttributes(state, schema.marks.link).href || "";
38914
+ $[26] = state;
38915
+ $[27] = t142;
38746
38916
  } else {
38747
- t132 = $[24];
38917
+ t142 = $[27];
38748
38918
  }
38749
- href = t132;
38919
+ href = t142;
38750
38920
  T1 = ui.Popover;
38751
- t10 = true;
38752
- t11 = open;
38753
- t12 = onOpenChange;
38921
+ t11 = true;
38922
+ t12 = open;
38923
+ t13 = onOpenChange;
38754
38924
  T0 = ui.Button;
38755
- t6 = "text";
38756
- t7 = "button";
38757
- t8 = "gap-2 rounded-none";
38758
- t9 = "text";
38759
- t5 = ui.cls("underline decoration-stone-400 underline-offset-4", {
38925
+ t7 = "text";
38926
+ t8 = "button";
38927
+ t9 = "gap-2 rounded-none";
38928
+ t10 = "text";
38929
+ t6 = ui.cls("underline decoration-stone-400 underline-offset-4", {
38760
38930
  "text-blue-500": isActive
38761
38931
  });
38762
- $[9] = onOpenChange;
38763
- $[10] = open;
38764
- $[11] = state;
38765
- $[12] = T0;
38766
- $[13] = T1;
38767
- $[14] = href;
38768
- $[15] = t10;
38769
- $[16] = t11;
38770
- $[17] = t12;
38771
- $[18] = t5;
38772
- $[19] = t6;
38773
- $[20] = t7;
38774
- $[21] = t8;
38775
- $[22] = t9;
38776
- } else {
38777
- T0 = $[12];
38778
- T1 = $[13];
38779
- href = $[14];
38780
- t10 = $[15];
38781
- t11 = $[16];
38782
- t12 = $[17];
38783
- t5 = $[18];
38784
- t6 = $[19];
38785
- t7 = $[20];
38786
- t8 = $[21];
38787
- t9 = $[22];
38788
- }
38789
- let t13;
38790
- if ($[25] !== t) {
38791
- t13 = t("editor_link");
38792
- $[25] = t;
38793
- $[26] = t13;
38932
+ $[12] = onOpenChange;
38933
+ $[13] = open;
38934
+ $[14] = state;
38935
+ $[15] = T0;
38936
+ $[16] = T1;
38937
+ $[17] = href;
38938
+ $[18] = t10;
38939
+ $[19] = t11;
38940
+ $[20] = t12;
38941
+ $[21] = t13;
38942
+ $[22] = t6;
38943
+ $[23] = t7;
38944
+ $[24] = t8;
38945
+ $[25] = t9;
38794
38946
  } else {
38795
- t13 = $[26];
38947
+ T0 = $[15];
38948
+ T1 = $[16];
38949
+ href = $[17];
38950
+ t10 = $[18];
38951
+ t11 = $[19];
38952
+ t12 = $[20];
38953
+ t13 = $[21];
38954
+ t6 = $[22];
38955
+ t7 = $[23];
38956
+ t8 = $[24];
38957
+ t9 = $[25];
38796
38958
  }
38797
38959
  let t14;
38798
- if ($[27] !== t13 || $[28] !== t5) {
38799
- t14 = /* @__PURE__ */ jsxRuntime.jsx("p", { className: t5, children: t13 });
38800
- $[27] = t13;
38801
- $[28] = t5;
38960
+ if ($[28] !== t) {
38961
+ t14 = t("editor_link");
38962
+ $[28] = t;
38802
38963
  $[29] = t14;
38803
38964
  } else {
38804
38965
  t14 = $[29];
38805
38966
  }
38806
38967
  let t15;
38807
- if ($[30] !== T0 || $[31] !== t14 || $[32] !== t6 || $[33] !== t7 || $[34] !== t8 || $[35] !== t9) {
38808
- t15 = /* @__PURE__ */ jsxRuntime.jsx(T0, { variant: t6, type: t7, className: t8, color: t9, children: t14 });
38809
- $[30] = T0;
38810
- $[31] = t14;
38811
- $[32] = t6;
38812
- $[33] = t7;
38813
- $[34] = t8;
38814
- $[35] = t9;
38815
- $[36] = t15;
38968
+ if ($[30] !== t14 || $[31] !== t6) {
38969
+ t15 = /* @__PURE__ */ jsxRuntime.jsx("p", { className: t6, children: t14 });
38970
+ $[30] = t14;
38971
+ $[31] = t6;
38972
+ $[32] = t15;
38816
38973
  } else {
38817
- t15 = $[36];
38974
+ t15 = $[32];
38818
38975
  }
38819
38976
  let t16;
38820
- if ($[37] !== t) {
38821
- t16 = t("editor_paste_or_type_link");
38822
- $[37] = t;
38823
- $[38] = t16;
38977
+ if ($[33] !== T0 || $[34] !== t10 || $[35] !== t15 || $[36] !== t7 || $[37] !== t8 || $[38] !== t9) {
38978
+ t16 = /* @__PURE__ */ jsxRuntime.jsx(T0, { variant: t7, type: t8, className: t9, color: t10, children: t15 });
38979
+ $[33] = T0;
38980
+ $[34] = t10;
38981
+ $[35] = t15;
38982
+ $[36] = t7;
38983
+ $[37] = t8;
38984
+ $[38] = t9;
38985
+ $[39] = t16;
38824
38986
  } else {
38825
- t16 = $[38];
38987
+ t16 = $[39];
38826
38988
  }
38827
38989
  let t17;
38828
- if ($[39] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38829
- t17 = ui.cls("text-surface-900 dark:text-white flex-grow bg-transparent p-1 text-sm outline-none", ui.focusedDisabled);
38830
- $[39] = t17;
38990
+ if ($[40] !== t) {
38991
+ t17 = t("editor_paste_or_type_link");
38992
+ $[40] = t;
38993
+ $[41] = t17;
38831
38994
  } else {
38832
- t17 = $[39];
38995
+ t17 = $[41];
38833
38996
  }
38834
38997
  let t18;
38835
- if ($[40] !== href || $[41] !== open || $[42] !== t16) {
38836
- t18 = /* @__PURE__ */ jsxRuntime.jsx("input", { ref: inputRef, autoFocus: open, placeholder: t16, defaultValue: href, className: t17 });
38837
- $[40] = href;
38838
- $[41] = open;
38839
- $[42] = t16;
38840
- $[43] = t18;
38998
+ if ($[42] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
38999
+ t18 = ui.cls("text-surface-900 dark:text-white flex-grow bg-transparent p-1 text-sm outline-none", ui.focusedDisabled);
39000
+ $[42] = t18;
38841
39001
  } else {
38842
- t18 = $[43];
39002
+ t18 = $[42];
38843
39003
  }
38844
39004
  let t19;
38845
- if ($[44] !== handleRemoveLink || $[45] !== href) {
38846
- t19 = href ? /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", variant: "text", type: "button", color: "text", className: "flex items-center", onClick: handleRemoveLink, children: /* @__PURE__ */ jsxRuntime.jsx(ui.DeleteIcon, { size: "small" }) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", type: "submit", variant: "text", children: /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: "small" }) });
38847
- $[44] = handleRemoveLink;
38848
- $[45] = href;
38849
- $[46] = t19;
39005
+ if ($[43] !== href || $[44] !== isInputInvalid || $[45] !== open || $[46] !== t17) {
39006
+ t19 = /* @__PURE__ */ jsxRuntime.jsx("input", { ref: inputRef, autoFocus: open, placeholder: t17, defaultValue: href, className: t18, "aria-invalid": isInputInvalid });
39007
+ $[43] = href;
39008
+ $[44] = isInputInvalid;
39009
+ $[45] = open;
39010
+ $[46] = t17;
39011
+ $[47] = t19;
38850
39012
  } else {
38851
- t19 = $[46];
39013
+ t19 = $[47];
38852
39014
  }
38853
39015
  let t20;
38854
- if ($[47] !== handleSubmit || $[48] !== t18 || $[49] !== t19) {
38855
- t20 = /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, className: "flex p-1 gap-1", children: [
38856
- t18,
38857
- t19
38858
- ] });
38859
- $[47] = handleSubmit;
38860
- $[48] = t18;
38861
- $[49] = t19;
39016
+ if ($[48] !== handleRemoveLink || $[49] !== href) {
39017
+ t20 = href ? /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", variant: "text", type: "button", color: "text", className: "flex items-center", onClick: handleRemoveLink, children: /* @__PURE__ */ jsxRuntime.jsx(ui.DeleteIcon, { size: "small" }) }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "small", type: "submit", variant: "text", children: /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: "small" }) });
39018
+ $[48] = handleRemoveLink;
39019
+ $[49] = href;
38862
39020
  $[50] = t20;
38863
39021
  } else {
38864
39022
  t20 = $[50];
38865
39023
  }
38866
39024
  let t21;
38867
- if ($[51] !== T1 || $[52] !== t10 || $[53] !== t11 || $[54] !== t12 || $[55] !== t15 || $[56] !== t20) {
38868
- t21 = /* @__PURE__ */ jsxRuntime.jsx(T1, { modal: t10, open: t11, onOpenChange: t12, trigger: t15, children: t20 });
38869
- $[51] = T1;
38870
- $[52] = t10;
38871
- $[53] = t11;
38872
- $[54] = t12;
38873
- $[55] = t15;
38874
- $[56] = t20;
38875
- $[57] = t21;
39025
+ if ($[51] !== handleChange || $[52] !== handleSubmit || $[53] !== t19 || $[54] !== t20) {
39026
+ t21 = /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, className: "flex p-1 gap-1", onChange: handleChange, children: [
39027
+ t19,
39028
+ t20
39029
+ ] });
39030
+ $[51] = handleChange;
39031
+ $[52] = handleSubmit;
39032
+ $[53] = t19;
39033
+ $[54] = t20;
39034
+ $[55] = t21;
38876
39035
  } else {
38877
- t21 = $[57];
39036
+ t21 = $[55];
38878
39037
  }
38879
- return t21;
39038
+ let t22;
39039
+ if ($[56] !== error) {
39040
+ t22 = error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-2", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "error", role: "alert", "aria-live": "polite", children: error }) });
39041
+ $[56] = error;
39042
+ $[57] = t22;
39043
+ } else {
39044
+ t22 = $[57];
39045
+ }
39046
+ let t23;
39047
+ if ($[58] !== T1 || $[59] !== t11 || $[60] !== t12 || $[61] !== t13 || $[62] !== t16 || $[63] !== t21 || $[64] !== t22) {
39048
+ t23 = /* @__PURE__ */ jsxRuntime.jsxs(T1, { modal: t11, open: t12, onOpenChange: t13, trigger: t16, children: [
39049
+ t21,
39050
+ t22
39051
+ ] });
39052
+ $[58] = T1;
39053
+ $[59] = t11;
39054
+ $[60] = t12;
39055
+ $[61] = t13;
39056
+ $[62] = t16;
39057
+ $[63] = t21;
39058
+ $[64] = t22;
39059
+ $[65] = t23;
39060
+ } else {
39061
+ t23 = $[65];
39062
+ }
39063
+ return t23;
38880
39064
  };
38881
39065
  const TextButtons = () => {
38882
39066
  const $ = reactCompilerRuntime.c(3);
@@ -41155,6 +41339,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
41155
41339
  editor_cancel: "Abbrechen",
41156
41340
  editor_remove_link: "Link entfernen",
41157
41341
  editor_paste_or_type_link: "Link einfügen oder eintippen",
41342
+ editor_invalid_url: "Ungültige URL",
41158
41343
  editor_open_in_new_window: "In neuem Fenster öffnen",
41159
41344
  editor_bold: "Fett",
41160
41345
  editor_italic: "Kursiv",
@@ -41862,6 +42047,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
41862
42047
  editor_cancel: "Annuler",
41863
42048
  editor_remove_link: "Supprimer le lien",
41864
42049
  editor_paste_or_type_link: "Coller ou taper le lien",
42050
+ editor_invalid_url: "URL invalide",
41865
42051
  editor_open_in_new_window: "Ouvrir dans une nouvelle fenêtre",
41866
42052
  editor_bold: "Gras",
41867
42053
  editor_italic: "Italique",
@@ -42569,6 +42755,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
42569
42755
  editor_cancel: "Annulla",
42570
42756
  editor_remove_link: "Rimuovi link",
42571
42757
  editor_paste_or_type_link: "Incolla o digita il link",
42758
+ editor_invalid_url: "URL non valido",
42572
42759
  editor_open_in_new_window: "Apri in una nuova finestra",
42573
42760
  editor_bold: "Grassetto",
42574
42761
  editor_italic: "Corsivo",
@@ -43276,6 +43463,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
43276
43463
  editor_cancel: "रद्द करें",
43277
43464
  editor_remove_link: "लिंक हटाएं",
43278
43465
  editor_paste_or_type_link: "लिंक पेस्ट करें या टाइप करें",
43466
+ editor_invalid_url: "अमान्य URL",
43279
43467
  editor_open_in_new_window: "नई विंडो में खोलें",
43280
43468
  editor_bold: "बोल्ड",
43281
43469
  editor_italic: "इटैलिक",
@@ -43985,6 +44173,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
43985
44173
  editor_cancel: "Cancelar",
43986
44174
  editor_remove_link: "Remover ligação",
43987
44175
  editor_paste_or_type_link: "Cole ou escreva a ligação",
44176
+ editor_invalid_url: "URL inválido",
43988
44177
  editor_open_in_new_window: "Abrir numa nova janela",
43989
44178
  editor_bold: "Negrito",
43990
44179
  editor_italic: "Itálico",
@@ -44694,6 +44883,7 @@ ul[data-type="taskList"] li[data-checked="true"] > div > p {
44694
44883
  editor_cancel: "Anuluj",
44695
44884
  editor_remove_link: "Usuń link",
44696
44885
  editor_paste_or_type_link: "Wklej lub wpisz link",
44886
+ editor_invalid_url: "Nieprawidłowy URL",
44697
44887
  editor_open_in_new_window: "Otwórz w nowym oknie",
44698
44888
  editor_bold: "Pogrubienie",
44699
44889
  editor_italic: "Kursywa",