@strapi/content-manager 0.0.0-experimental.145e7d7ddefd1aef71aaf3d9bb86440d013035bf → 0.0.0-experimental.1610404a03d98b65f497f9adda35815021b8fd76

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 (125) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DJEJ49QD.mjs → ComponentConfigurationPage-C5xJlht8.mjs} +4 -4
  2. package/dist/_chunks/{ComponentConfigurationPage-DJEJ49QD.mjs.map → ComponentConfigurationPage-C5xJlht8.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-D_g11bYV.js → ComponentConfigurationPage-CyzIs3Wp.js} +5 -6
  4. package/dist/_chunks/{ComponentConfigurationPage-D_g11bYV.js.map → ComponentConfigurationPage-CyzIs3Wp.js.map} +1 -1
  5. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
  6. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-QBZdUYyG.mjs → EditConfigurationPage-B1JTGbDa.mjs} +4 -4
  8. package/dist/_chunks/{EditConfigurationPage-QBZdUYyG.mjs.map → EditConfigurationPage-B1JTGbDa.mjs.map} +1 -1
  9. package/dist/_chunks/{EditConfigurationPage-CeL712KW.js → EditConfigurationPage-BoY4_TQp.js} +5 -6
  10. package/dist/_chunks/{EditConfigurationPage-CeL712KW.js.map → EditConfigurationPage-BoY4_TQp.js.map} +1 -1
  11. package/dist/_chunks/{EditViewPage-CvRUUpVh.mjs → EditViewPage-B8Uz26ZK.mjs} +15 -5
  12. package/dist/_chunks/EditViewPage-B8Uz26ZK.mjs.map +1 -0
  13. package/dist/_chunks/{EditViewPage-g5TwrgRY.js → EditViewPage-DxszpwJd.js} +16 -7
  14. package/dist/_chunks/EditViewPage-DxszpwJd.js.map +1 -0
  15. package/dist/_chunks/{Field-reyvfnop.mjs → Field-CquZadQb.mjs} +93 -78
  16. package/dist/_chunks/Field-CquZadQb.mjs.map +1 -0
  17. package/dist/_chunks/{Field-ncdInvxS.js → Field-DzgX4ael.js} +99 -85
  18. package/dist/_chunks/Field-DzgX4ael.js.map +1 -0
  19. package/dist/_chunks/{Form-BJ7bYiUx.js → Form-C8a2ftQg.js} +17 -12
  20. package/dist/_chunks/Form-C8a2ftQg.js.map +1 -0
  21. package/dist/_chunks/{Form-DoMGsYxH.mjs → Form-DuJm__5A.mjs} +15 -9
  22. package/dist/_chunks/Form-DuJm__5A.mjs.map +1 -0
  23. package/dist/_chunks/{History-pbhkxIrf.js → History-B1sa22d-.js} +25 -13
  24. package/dist/_chunks/History-B1sa22d-.js.map +1 -0
  25. package/dist/_chunks/{History-BseDJOrj.mjs → History-C7xPTX16.mjs} +25 -12
  26. package/dist/_chunks/History-C7xPTX16.mjs.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-DWE_fr5B.mjs → ListConfigurationPage-C6zgYhFZ.mjs} +4 -4
  28. package/dist/_chunks/{ListConfigurationPage-DWE_fr5B.mjs.map → ListConfigurationPage-C6zgYhFZ.mjs.map} +1 -1
  29. package/dist/_chunks/{ListConfigurationPage-Bna8zfjr.js → ListConfigurationPage-CYWB9ZNc.js} +5 -6
  30. package/dist/_chunks/{ListConfigurationPage-Bna8zfjr.js.map → ListConfigurationPage-CYWB9ZNc.js.map} +1 -1
  31. package/dist/_chunks/{ListViewPage-lQ-VLV2G.mjs → ListViewPage-BkzGZ8pS.mjs} +36 -13
  32. package/dist/_chunks/ListViewPage-BkzGZ8pS.mjs.map +1 -0
  33. package/dist/_chunks/{ListViewPage-Dymsvnv6.js → ListViewPage-D7jZkQ1q.js} +41 -19
  34. package/dist/_chunks/ListViewPage-D7jZkQ1q.js.map +1 -0
  35. package/dist/_chunks/{NoContentTypePage-B4t_OsDR.js → NoContentTypePage-C-eluJ5b.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-B4t_OsDR.js.map → NoContentTypePage-C-eluJ5b.js.map} +1 -1
  37. package/dist/_chunks/{NoContentTypePage-VCQOMwlf.mjs → NoContentTypePage-CNTp9Je-.mjs} +2 -2
  38. package/dist/_chunks/{NoContentTypePage-VCQOMwlf.mjs.map → NoContentTypePage-CNTp9Je-.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-BOwB6hki.js → NoPermissionsPage-5BRSh_ql.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-BOwB6hki.js.map → NoPermissionsPage-5BRSh_ql.js.map} +1 -1
  41. package/dist/_chunks/{NoPermissionsPage-TV830k4P.mjs → NoPermissionsPage-B1-Nl_T8.mjs} +2 -2
  42. package/dist/_chunks/{NoPermissionsPage-TV830k4P.mjs.map → NoPermissionsPage-B1-Nl_T8.mjs.map} +1 -1
  43. package/dist/_chunks/{Relations-DdlstXTu.js → Relations-CXy88hPa.js} +72 -42
  44. package/dist/_chunks/Relations-CXy88hPa.js.map +1 -0
  45. package/dist/_chunks/{Relations-D6NAlnsl.mjs → Relations-DqHS7-Cx.mjs} +72 -41
  46. package/dist/_chunks/Relations-DqHS7-Cx.mjs.map +1 -0
  47. package/dist/_chunks/{en-Cf41pH5f.js → en-Bm0D0IWz.js} +9 -9
  48. package/dist/_chunks/{en-Cf41pH5f.js.map → en-Bm0D0IWz.js.map} +1 -1
  49. package/dist/_chunks/{en-DCszE74t.mjs → en-DKV44jRb.mjs} +9 -9
  50. package/dist/_chunks/{en-DCszE74t.mjs.map → en-DKV44jRb.mjs.map} +1 -1
  51. package/dist/_chunks/{index-CQos-KS0.js → index-BwWfprNi.js} +1905 -1763
  52. package/dist/_chunks/index-BwWfprNi.js.map +1 -0
  53. package/dist/_chunks/{index-BYSWwHBJ.mjs → index-LwSbWlvf.mjs} +1906 -1764
  54. package/dist/_chunks/index-LwSbWlvf.mjs.map +1 -0
  55. package/dist/_chunks/{layout-0TY7UtKO.mjs → layout-BS7u3JUZ.mjs} +6 -5
  56. package/dist/_chunks/{layout-0TY7UtKO.mjs.map → layout-BS7u3JUZ.mjs.map} +1 -1
  57. package/dist/_chunks/{layout-B4XAqu1v.js → layout-a7hNwceU.js} +7 -7
  58. package/dist/_chunks/{layout-B4XAqu1v.js.map → layout-a7hNwceU.js.map} +1 -1
  59. package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
  60. package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
  61. package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
  62. package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
  63. package/dist/_chunks/{relations-xZ2tMj1G.js → relations-DedckVWc.js} +3 -7
  64. package/dist/_chunks/relations-DedckVWc.js.map +1 -0
  65. package/dist/_chunks/{relations-DFDWfa0s.mjs → relations-L9TlNEnv.mjs} +3 -7
  66. package/dist/_chunks/relations-L9TlNEnv.mjs.map +1 -0
  67. package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
  68. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
  69. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
  70. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
  71. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
  72. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
  73. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
  74. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
  75. package/dist/admin/index.js +2 -1
  76. package/dist/admin/index.js.map +1 -1
  77. package/dist/admin/index.mjs +3 -2
  78. package/dist/admin/src/exports.d.ts +1 -1
  79. package/dist/admin/src/hooks/useDocument.d.ts +32 -1
  80. package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
  81. package/dist/admin/src/preview/constants.d.ts +1 -0
  82. package/dist/admin/src/preview/index.d.ts +4 -0
  83. package/dist/server/index.js +104 -69
  84. package/dist/server/index.js.map +1 -1
  85. package/dist/server/index.mjs +103 -67
  86. package/dist/server/index.mjs.map +1 -1
  87. package/dist/server/src/bootstrap.d.ts.map +1 -1
  88. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  89. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  90. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  91. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  92. package/dist/server/src/history/services/history.d.ts.map +1 -1
  93. package/dist/server/src/index.d.ts +4 -4
  94. package/dist/server/src/preview/constants.d.ts +2 -0
  95. package/dist/server/src/preview/constants.d.ts.map +1 -0
  96. package/dist/server/src/preview/index.d.ts +4 -0
  97. package/dist/server/src/preview/index.d.ts.map +1 -0
  98. package/dist/server/src/services/document-metadata.d.ts +8 -8
  99. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  100. package/dist/server/src/services/index.d.ts +4 -4
  101. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  102. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  103. package/dist/server/src/utils/index.d.ts +2 -0
  104. package/dist/server/src/utils/index.d.ts.map +1 -1
  105. package/package.json +13 -13
  106. package/dist/_chunks/EditViewPage-CvRUUpVh.mjs.map +0 -1
  107. package/dist/_chunks/EditViewPage-g5TwrgRY.js.map +0 -1
  108. package/dist/_chunks/Field-ncdInvxS.js.map +0 -1
  109. package/dist/_chunks/Field-reyvfnop.mjs.map +0 -1
  110. package/dist/_chunks/Form-BJ7bYiUx.js.map +0 -1
  111. package/dist/_chunks/Form-DoMGsYxH.mjs.map +0 -1
  112. package/dist/_chunks/History-BseDJOrj.mjs.map +0 -1
  113. package/dist/_chunks/History-pbhkxIrf.js.map +0 -1
  114. package/dist/_chunks/ListViewPage-Dymsvnv6.js.map +0 -1
  115. package/dist/_chunks/ListViewPage-lQ-VLV2G.mjs.map +0 -1
  116. package/dist/_chunks/Relations-D6NAlnsl.mjs.map +0 -1
  117. package/dist/_chunks/Relations-DdlstXTu.js.map +0 -1
  118. package/dist/_chunks/index-BYSWwHBJ.mjs.map +0 -1
  119. package/dist/_chunks/index-CQos-KS0.js.map +0 -1
  120. package/dist/_chunks/relations-DFDWfa0s.mjs.map +0 -1
  121. package/dist/_chunks/relations-xZ2tMj1G.js.map +0 -1
  122. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  123. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  124. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
  125. package/strapi-server.js +0 -3
@@ -5,19 +5,19 @@ const strapiAdmin = require("@strapi/admin/strapi-admin");
5
5
  const designSystem = require("@strapi/design-system");
6
6
  const pipe$1 = require("lodash/fp/pipe");
7
7
  const reactIntl = require("react-intl");
8
- const index = require("./index-CQos-KS0.js");
8
+ const index = require("./index-BwWfprNi.js");
9
9
  const fractionalIndexing = require("fractional-indexing");
10
- const Relations = require("./Relations-DdlstXTu.js");
10
+ const Relations = require("./Relations-CXy88hPa.js");
11
11
  const Icons = require("@strapi/icons");
12
12
  const styledComponents = require("styled-components");
13
- const ComponentIcon = require("./ComponentIcon-BXdiCGQp.js");
13
+ const ComponentIcon = require("./ComponentIcon-CRbtQEUV.js");
14
14
  const reactDndHtml5Backend = require("react-dnd-html5-backend");
15
- const useDragAndDrop = require("./useDragAndDrop-J0TUUbR6.js");
16
- const objects = require("./objects-gigeqt7s.js");
15
+ const useDragAndDrop = require("./useDragAndDrop-BMtgCYzL.js");
16
+ const objects = require("./objects-BcXOv6_9.js");
17
17
  const slate = require("slate");
18
18
  const slateHistory = require("slate-history");
19
19
  const slateReact = require("slate-react");
20
- const usePrev = require("./usePrev-B9w_-eYc.js");
20
+ const useDebounce = require("./useDebounce-CtcjDB3L.js");
21
21
  const Toolbar = require("@radix-ui/react-toolbar");
22
22
  const reactRouterDom = require("react-router-dom");
23
23
  const CodeMirror = require("codemirror5");
@@ -37,8 +37,7 @@ require("highlight.js/styles/solarized-dark.css");
37
37
  require("codemirror5/addon/display/placeholder");
38
38
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
39
39
  function _interopNamespace(e) {
40
- if (e && e.__esModule)
41
- return e;
40
+ if (e && e.__esModule) return e;
42
41
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
43
42
  if (e) {
44
43
  for (const k in e) {
@@ -731,8 +730,7 @@ const ImageDialog = () => {
731
730
  const [isOpen, setIsOpen] = React__namespace.useState(true);
732
731
  const { editor } = useBlocksEditorContext("ImageDialog");
733
732
  const components = strapiAdmin.useStrapiApp("ImageDialog", (state) => state.components);
734
- if (!components || !isOpen)
735
- return null;
733
+ if (!components || !isOpen) return null;
736
734
  const MediaLibraryDialog = components["media-library"];
737
735
  const insertImages = (images) => {
738
736
  slate.Transforms.unwrapNodes(editor, {
@@ -741,14 +739,12 @@ const ImageDialog = () => {
741
739
  });
742
740
  const nodeEntryBeingReplaced = slate.Editor.above(editor, {
743
741
  match(node) {
744
- if (slate.Editor.isEditor(node))
745
- return false;
742
+ if (slate.Editor.isEditor(node)) return false;
746
743
  const isInlineNode = ["text", "link"].includes(node.type);
747
744
  return !isInlineNode;
748
745
  }
749
746
  });
750
- if (!nodeEntryBeingReplaced)
751
- return;
747
+ if (!nodeEntryBeingReplaced) return;
752
748
  const [, pathToInsert] = nodeEntryBeingReplaced;
753
749
  slate.Transforms.removeNodes(editor);
754
750
  const nodesToInsert = images.map((image) => {
@@ -768,7 +764,7 @@ const ImageDialog = () => {
768
764
  const nodeImage = {
769
765
  ...expectedImage,
770
766
  alternativeText: expectedImage.alternativeText || expectedImage.name,
771
- url: usePrev.prefixFileUrlWithBackendUrl(image.url)
767
+ url: useDebounce.prefixFileUrlWithBackendUrl(image.url)
772
768
  };
773
769
  return nodeImage;
774
770
  });
@@ -926,8 +922,7 @@ const LinkContent = React__namespace.forwardRef(
926
922
  slateReact.ReactEditor.focus(editor);
927
923
  };
928
924
  React__namespace.useEffect(() => {
929
- if (popoverOpen)
930
- linkInputRef.current?.focus();
925
+ if (popoverOpen) linkInputRef.current?.focus();
931
926
  }, [popoverOpen]);
932
927
  const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
933
928
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { open: popoverOpen, children: [
@@ -1082,8 +1077,7 @@ const isText$1 = (node) => {
1082
1077
  return slate.Node.isNode(node) && !slate.Editor.isEditor(node) && node.type === "text";
1083
1078
  };
1084
1079
  const handleBackspaceKeyOnList = (editor, event) => {
1085
- if (!editor.selection)
1086
- return;
1080
+ if (!editor.selection) return;
1087
1081
  const [currentListItem, currentListItemPath] = slate.Editor.parent(editor, editor.selection.anchor);
1088
1082
  const [currentList, currentListPath] = slate.Editor.parent(editor, currentListItemPath);
1089
1083
  const isListEmpty = currentList.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
@@ -1192,8 +1186,7 @@ const handleEnterKeyOnList = (editor) => {
1192
1186
  };
1193
1187
  const handleConvertToList = (editor, format) => {
1194
1188
  const convertedPath = baseHandleConvert(editor, { type: "list-item" });
1195
- if (!convertedPath)
1196
- return;
1189
+ if (!convertedPath) return;
1197
1190
  slate.Transforms.wrapNodes(editor, { type: "list", format, children: [] }, { at: convertedPath });
1198
1191
  };
1199
1192
  const handleTabOnList = (editor) => {
@@ -1205,8 +1198,7 @@ const handleTabOnList = (editor) => {
1205
1198
  }
1206
1199
  const [currentListItem, currentListItemPath] = currentListItemEntry;
1207
1200
  const [currentList] = slate.Editor.parent(editor, currentListItemPath);
1208
- if (currentListItem === currentList.children[0])
1209
- return;
1201
+ if (currentListItem === currentList.children[0]) return;
1210
1202
  const currentListItemIndex = currentList.children.findIndex((item) => item === currentListItem);
1211
1203
  const previousNode = currentList.children[currentListItemIndex - 1];
1212
1204
  if (previousNode.type === "list") {
@@ -1573,8 +1565,7 @@ const isListNode = (node) => {
1573
1565
  const ListButton = ({ block, format }) => {
1574
1566
  const { editor, disabled, blocks } = useBlocksEditorContext("ListButton");
1575
1567
  const isListActive = () => {
1576
- if (!editor.selection)
1577
- return false;
1568
+ if (!editor.selection) return false;
1578
1569
  const currentListEntry = slate.Editor.above(editor, {
1579
1570
  match: (node) => !slate.Editor.isEditor(node) && node.type === "list",
1580
1571
  at: editor.selection.anchor
@@ -1648,8 +1639,7 @@ const LinkButton = ({ disabled }) => {
1648
1639
  const { editor } = useBlocksEditorContext("LinkButton");
1649
1640
  const isLinkActive = () => {
1650
1641
  const { selection } = editor;
1651
- if (!selection)
1652
- return false;
1642
+ if (!selection) return false;
1653
1643
  const [match] = Array.from(
1654
1644
  slate.Editor.nodes(editor, {
1655
1645
  at: slate.Editor.unhangRange(editor, selection),
@@ -1783,6 +1773,7 @@ const DragItem = styledComponents.styled(designSystem.Flex)`
1783
1773
  }
1784
1774
  `;
1785
1775
  const DragIconButton = styledComponents.styled(designSystem.IconButton)`
1776
+ user-select: none;
1786
1777
  display: flex;
1787
1778
  align-items: center;
1788
1779
  justify-content: center;
@@ -1854,8 +1845,7 @@ const DragAndDropElement = ({
1854
1845
  displayedValue: children
1855
1846
  },
1856
1847
  onDropItem(currentIndex, newIndex) {
1857
- if (newIndex)
1858
- handleMoveBlock(newIndex, currentIndex);
1848
+ if (newIndex) handleMoveBlock(newIndex, currentIndex);
1859
1849
  }
1860
1850
  });
1861
1851
  const composedBoxRefs = designSystem.useComposedRefs(blockRef, dropRef);
@@ -1911,6 +1901,7 @@ const DragAndDropElement = ({
1911
1901
  DragIconButton,
1912
1902
  {
1913
1903
  tag: "div",
1904
+ contentEditable: false,
1914
1905
  role: "button",
1915
1906
  tabIndex: 0,
1916
1907
  withTooltip: false,
@@ -1998,8 +1989,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
1998
1989
  [modifiers2]
1999
1990
  );
2000
1991
  const handleMoveBlocks = (editor2, event) => {
2001
- if (!editor2.selection)
2002
- return;
1992
+ if (!editor2.selection) return;
2003
1993
  const start = slate.Range.start(editor2.selection);
2004
1994
  const currentIndex = [start.path[0]];
2005
1995
  let newIndexPosition = 0;
@@ -2136,8 +2126,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
2136
2126
  }
2137
2127
  };
2138
2128
  const handleScrollSelectionIntoView = () => {
2139
- if (!editor.selection)
2140
- return;
2129
+ if (!editor.selection) return;
2141
2130
  const domRange = slateReact.ReactEditor.toDOMRange(editor, editor.selection);
2142
2131
  const domRect = domRange.getBoundingClientRect();
2143
2132
  const blocksInput = blocksRef.current;
@@ -2331,8 +2320,7 @@ const InlineCode = styledComponents.styled.code`
2331
2320
  `;
2332
2321
  const baseCheckIsActive = (editor, name2) => {
2333
2322
  const marks = slate.Editor.marks(editor);
2334
- if (!marks)
2335
- return false;
2323
+ if (!marks) return false;
2336
2324
  return Boolean(marks[name2]);
2337
2325
  };
2338
2326
  const baseHandleToggle = (editor, name2) => {
@@ -2736,13 +2724,34 @@ const RepeatableComponent = ({
2736
2724
  const { search: searchString } = reactRouterDom.useLocation();
2737
2725
  const search = React__namespace.useMemo(() => new URLSearchParams(searchString), [searchString]);
2738
2726
  const { components } = index.useDoc();
2739
- const { value = [], error } = strapiAdmin.useField(name2);
2727
+ const {
2728
+ value = [],
2729
+ error,
2730
+ rawError
2731
+ } = strapiAdmin.useField(name2);
2740
2732
  const addFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.addFieldRow);
2741
2733
  const moveFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.moveFieldRow);
2742
2734
  const removeFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.removeFieldRow);
2743
2735
  const { max = Infinity } = attribute;
2744
2736
  const [collapseToOpen, setCollapseToOpen] = React__namespace.useState("");
2745
2737
  const [liveText, setLiveText] = React__namespace.useState("");
2738
+ React__namespace.useEffect(() => {
2739
+ const hasNestedErrors = rawError && Array.isArray(rawError) && rawError.length > 0;
2740
+ const hasNestedValue = value && Array.isArray(value) && value.length > 0;
2741
+ if (hasNestedErrors && hasNestedValue) {
2742
+ const errorOpenItems = rawError.map((_, idx) => {
2743
+ return value[idx] ? value[idx].__temp_key__ : null;
2744
+ }).filter((value2) => !!value2);
2745
+ if (errorOpenItems && errorOpenItems.length > 0) {
2746
+ setCollapseToOpen((collapseToOpen2) => {
2747
+ if (!errorOpenItems.includes(collapseToOpen2)) {
2748
+ return errorOpenItems[0];
2749
+ }
2750
+ return collapseToOpen2;
2751
+ });
2752
+ }
2753
+ }
2754
+ }, [rawError, value]);
2746
2755
  const componentTmpKeyWithFocussedField = React__namespace.useMemo(() => {
2747
2756
  if (search.has("field")) {
2748
2757
  const fieldParam = search.get("field");
@@ -2757,7 +2766,7 @@ const RepeatableComponent = ({
2757
2766
  }
2758
2767
  return void 0;
2759
2768
  }, [search, name2, value]);
2760
- const prevValue = usePrev.usePrev(value);
2769
+ const prevValue = useDebounce.usePrev(value);
2761
2770
  React__namespace.useEffect(() => {
2762
2771
  if (prevValue && prevValue.length < value.length) {
2763
2772
  setCollapseToOpen(value[value.length - 1].__temp_key__);
@@ -3290,18 +3299,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
3290
3299
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
3291
3300
  ] });
3292
3301
  };
3293
- function useDebounce(value, delay) {
3294
- const [debouncedValue, setDebouncedValue] = React.useState(value);
3295
- React.useEffect(() => {
3296
- const handler = setTimeout(() => {
3297
- setDebouncedValue(value);
3298
- }, delay);
3299
- return () => {
3300
- clearTimeout(handler);
3301
- };
3302
- }, [value, delay]);
3303
- return debouncedValue;
3304
- }
3305
3302
  const uidApi = index.contentManagerApi.injectEndpoints({
3306
3303
  endpoints: (builder) => ({
3307
3304
  getDefaultUID: builder.query({
@@ -3353,7 +3350,7 @@ const UIDInput = React__namespace.forwardRef(
3353
3350
  const [showRegenerate, setShowRegenerate] = React__namespace.useState(false);
3354
3351
  const isCloning = reactRouterDom.useMatch(index.CLONE_PATH) !== null;
3355
3352
  const field = strapiAdmin.useField(name2);
3356
- const debouncedValue = useDebounce(field.value, 300);
3353
+ const debouncedValue = useDebounce.useDebounce(field.value, 300);
3357
3354
  const hasChanged = debouncedValue !== field.initialValue;
3358
3355
  const { toggleNotification } = strapiAdmin.useNotification();
3359
3356
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
@@ -3759,8 +3756,7 @@ const Wrapper = styledComponents.styled.div`
3759
3756
  `;
3760
3757
  var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, unorderedListRE = /[*+-]\s/;
3761
3758
  function newlineAndIndentContinueMarkdownList(cm) {
3762
- if (cm.getOption("disableInput"))
3763
- return CodeMirror__default.default.Pass;
3759
+ if (cm.getOption("disableInput")) return CodeMirror__default.default.Pass;
3764
3760
  var ranges = cm.listSelections(), replacements = [];
3765
3761
  for (var i = 0; i < ranges.length; i++) {
3766
3762
  var pos = ranges[i].head;
@@ -3794,8 +3790,7 @@ function newlineAndIndentContinueMarkdownList(cm) {
3794
3790
  var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0);
3795
3791
  var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace("x", " ");
3796
3792
  replacements[i] = "\n" + indent + bullet + after;
3797
- if (numbered)
3798
- incrementRemainingMarkdownListNumbers(cm, pos);
3793
+ if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);
3799
3794
  }
3800
3795
  }
3801
3796
  cm.replaceSelections(replacements);
@@ -3813,10 +3808,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
3813
3808
  var newNumber = parseInt(startItem[3], 10) + lookAhead - skipCount;
3814
3809
  var nextNumber = parseInt(nextItem[3], 10), itemNumber = nextNumber;
3815
3810
  if (startIndent === nextIndent && !isNaN(nextNumber)) {
3816
- if (newNumber === nextNumber)
3817
- itemNumber = nextNumber + 1;
3818
- if (newNumber > nextNumber)
3819
- itemNumber = newNumber + 1;
3811
+ if (newNumber === nextNumber) itemNumber = nextNumber + 1;
3812
+ if (newNumber > nextNumber) itemNumber = newNumber + 1;
3820
3813
  cm.replaceRange(
3821
3814
  nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),
3822
3815
  {
@@ -3829,10 +3822,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
3829
3822
  }
3830
3823
  );
3831
3824
  } else {
3832
- if (startIndent.length > nextIndent.length)
3833
- return;
3834
- if (startIndent.length < nextIndent.length && lookAhead === 1)
3835
- return;
3825
+ if (startIndent.length > nextIndent.length) return;
3826
+ if (startIndent.length < nextIndent.length && lookAhead === 1) return;
3836
3827
  skipCount += 1;
3837
3828
  }
3838
3829
  }
@@ -4910,7 +4901,7 @@ const Wysiwyg = React__namespace.forwardRef(
4910
4901
  const handleSelectAssets = (files) => {
4911
4902
  const formattedFiles = files.map((f) => ({
4912
4903
  alt: f.alternativeText || f.name,
4913
- url: usePrev.prefixFileUrlWithBackendUrl(f.url),
4904
+ url: useDebounce.prefixFileUrlWithBackendUrl(f.url),
4914
4905
  mime: f.mime
4915
4906
  }));
4916
4907
  insertFile(editorRef, formattedFiles);
@@ -4969,15 +4960,19 @@ const Wysiwyg = React__namespace.forwardRef(
4969
4960
  );
4970
4961
  const MemoizedWysiwyg = React__namespace.memo(Wysiwyg);
4971
4962
  const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4972
- const { id } = index.useDoc();
4963
+ const { id, document: document2, collectionType } = index.useDoc();
4973
4964
  const isFormDisabled = strapiAdmin.useForm("InputRenderer", (state) => state.disabled);
4974
4965
  const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
4975
4966
  const canCreateFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
4976
4967
  const canReadFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
4977
4968
  const canUpdateFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
4978
4969
  const canUserAction = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
4979
- const editableFields = id ? canUpdateFields : canCreateFields;
4980
- const readableFields = id ? canReadFields : canCreateFields;
4970
+ let idToCheck = id;
4971
+ if (collectionType === index.SINGLE_TYPES) {
4972
+ idToCheck = document2?.documentId;
4973
+ }
4974
+ const editableFields = idToCheck ? canUpdateFields : canCreateFields;
4975
+ const readableFields = idToCheck ? canReadFields : canCreateFields;
4981
4976
  const canUserReadField = canUserAction(props.name, readableFields, props.type);
4982
4977
  const canUserEditField = canUserAction(props.name, editableFields, props.type);
4983
4978
  const fields = strapiAdmin.useStrapiApp("InputRenderer", (app) => app.fields);
@@ -4988,6 +4983,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4988
4983
  const {
4989
4984
  edit: { components }
4990
4985
  } = index.useDocLayout();
4986
+ const field = strapiAdmin.useField(props.name);
4991
4987
  if (!visible) {
4992
4988
  return null;
4993
4989
  }
@@ -4998,7 +4994,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4998
4994
  if (attributeHasCustomFieldProperty(props.attribute)) {
4999
4995
  const CustomInput = lazyComponentStore[props.attribute.customField];
5000
4996
  if (CustomInput) {
5001
- return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
4997
+ return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
5002
4998
  }
5003
4999
  return /* @__PURE__ */ jsxRuntime.jsx(
5004
5000
  strapiAdmin.InputRenderer,
@@ -5159,6 +5155,14 @@ const DynamicComponent = ({
5159
5155
  React__namespace.useEffect(() => {
5160
5156
  dragPreviewRef(reactDndHtml5Backend.getEmptyImage(), { captureDraggingState: false });
5161
5157
  }, [dragPreviewRef, index$1]);
5158
+ const accordionValue = React__namespace.useId();
5159
+ const { value = [], rawError } = strapiAdmin.useField(`${name2}.${index$1}`);
5160
+ const [collapseToOpen, setCollapseToOpen] = React__namespace.useState("");
5161
+ React__namespace.useEffect(() => {
5162
+ if (rawError && value) {
5163
+ setCollapseToOpen(accordionValue);
5164
+ }
5165
+ }, [rawError, value, accordionValue]);
5162
5166
  const composedBoxRefs = designSystem.useComposedRefs(boxRef, dropRef);
5163
5167
  const accordionActions = disabled ? null : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5164
5168
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5224,10 +5228,9 @@ const DynamicComponent = ({
5224
5228
  ] })
5225
5229
  ] });
5226
5230
  const accordionTitle = title ? `${displayName} ${title}` : displayName;
5227
- const accordionValue = React__namespace.useId();
5228
5231
  return /* @__PURE__ */ jsxRuntime.jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
5229
5232
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Rectangle, { background: "neutral200" }) }),
5230
- /* @__PURE__ */ jsxRuntime.jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsxRuntime.jsx(Preview, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: accordionValue, children: [
5233
+ /* @__PURE__ */ jsxRuntime.jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsxRuntime.jsx(Preview, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Root, { value: collapseToOpen, onValueChange: setCollapseToOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: accordionValue, children: [
5231
5234
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Header, { children: [
5232
5235
  /* @__PURE__ */ jsxRuntime.jsx(
5233
5236
  designSystem.Accordion.Trigger,
@@ -5238,21 +5241,32 @@ const DynamicComponent = ({
5238
5241
  ),
5239
5242
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: accordionActions })
5240
5243
  ] }),
5241
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5242
- const fieldName = `${name2}.${index$1}.${field.name}`;
5243
- return /* @__PURE__ */ jsxRuntime.jsx(
5244
- designSystem.Grid.Item,
5245
- {
5246
- col: size,
5247
- s: 12,
5248
- xs: 12,
5249
- direction: "column",
5250
- alignItems: "stretch",
5251
- children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5252
- },
5253
- fieldName
5254
- );
5255
- }) }, rowInd)) }) }) })
5244
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(
5245
+ designSystem.Grid.Item,
5246
+ {
5247
+ col: 12,
5248
+ s: 12,
5249
+ xs: 12,
5250
+ direction: "column",
5251
+ alignItems: "stretch",
5252
+ children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5253
+ const fieldName = `${name2}.${index$1}.${field.name}`;
5254
+ return /* @__PURE__ */ jsxRuntime.jsx(
5255
+ designSystem.Grid.Item,
5256
+ {
5257
+ col: size,
5258
+ s: 12,
5259
+ xs: 12,
5260
+ direction: "column",
5261
+ alignItems: "stretch",
5262
+ children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5263
+ },
5264
+ fieldName
5265
+ );
5266
+ }) })
5267
+ },
5268
+ rowInd
5269
+ )) }) }) }) })
5256
5270
  ] }) }) })
5257
5271
  ] });
5258
5272
  };
@@ -5558,4 +5572,4 @@ exports.transformDocument = transformDocument;
5558
5572
  exports.useDynamicZone = useDynamicZone;
5559
5573
  exports.useFieldHint = useFieldHint;
5560
5574
  exports.useLazyComponents = useLazyComponents;
5561
- //# sourceMappingURL=Field-ncdInvxS.js.map
5575
+ //# sourceMappingURL=Field-DzgX4ael.js.map