@strapi/content-manager 0.0.0-experimental.abc → 0.0.0-experimental.af7e4e2471a04cc7f17b8ed3474530810efc02bc

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 (193) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-KXSuLnQD.js → ComponentConfigurationPage-_EzKh4uq.js} +4 -4
  2. package/dist/_chunks/{ComponentConfigurationPage-KXSuLnQD.js.map → ComponentConfigurationPage-_EzKh4uq.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-B3yDbeU1.mjs → ComponentConfigurationPage-aeNlfgi9.mjs} +4 -4
  4. package/dist/_chunks/{ComponentConfigurationPage-B3yDbeU1.mjs.map → ComponentConfigurationPage-aeNlfgi9.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-D7PrLO8j.mjs → EditConfigurationPage-DBVSBjCB.mjs} +4 -4
  6. package/dist/_chunks/{EditConfigurationPage-D7PrLO8j.mjs.map → EditConfigurationPage-DBVSBjCB.mjs.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-BQ17--5R.js → EditConfigurationPage-DaK5-ltL.js} +4 -4
  8. package/dist/_chunks/{EditConfigurationPage-BQ17--5R.js.map → EditConfigurationPage-DaK5-ltL.js.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-B7VgwJaG.mjs → EditViewPage-BeRi9xCR.mjs} +50 -10
  10. package/dist/_chunks/EditViewPage-BeRi9xCR.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-BgjdnGz2.js → EditViewPage-C3qKSunQ.js} +49 -9
  12. package/dist/_chunks/EditViewPage-C3qKSunQ.js.map +1 -0
  13. package/dist/_chunks/{Field-CdK7ZLmv.js → Field-BwLr5b0V.js} +124 -91
  14. package/dist/_chunks/Field-BwLr5b0V.js.map +1 -0
  15. package/dist/_chunks/{Field-tHCw4lGA.mjs → Field-CfbMEZLv.mjs} +121 -88
  16. package/dist/_chunks/Field-CfbMEZLv.mjs.map +1 -0
  17. package/dist/_chunks/{Form-C_0KTVvV.js → Form-BSInvgp4.js} +16 -8
  18. package/dist/_chunks/Form-BSInvgp4.js.map +1 -0
  19. package/dist/_chunks/{Form-BJxdTv3Q.mjs → Form-Br-9I4vG.mjs} +16 -8
  20. package/dist/_chunks/Form-Br-9I4vG.mjs.map +1 -0
  21. package/dist/_chunks/{History-nuEzM5qm.js → History-BHH0axCz.js} +38 -97
  22. package/dist/_chunks/History-BHH0axCz.js.map +1 -0
  23. package/dist/_chunks/{History-DR2txJLE.mjs → History-BQ721fHN.mjs} +39 -98
  24. package/dist/_chunks/History-BQ721fHN.mjs.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-CnB86Psm.js → ListConfigurationPage-B7VtZkjG.js} +5 -4
  26. package/dist/_chunks/ListConfigurationPage-B7VtZkjG.js.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-voFVtXu6.mjs → ListConfigurationPage-BVtVADtP.mjs} +6 -5
  28. package/dist/_chunks/ListConfigurationPage-BVtVADtP.mjs.map +1 -0
  29. package/dist/_chunks/{ListViewPage-SXIXm-RM.js → ListViewPage-C4UCZKeD.js} +68 -42
  30. package/dist/_chunks/ListViewPage-C4UCZKeD.js.map +1 -0
  31. package/dist/_chunks/{ListViewPage-B_GaWgRH.mjs → ListViewPage-Dq7nBEKD.mjs} +65 -39
  32. package/dist/_chunks/ListViewPage-Dq7nBEKD.mjs.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-CYiGpsbj.mjs → NoContentTypePage-CQlgc_9h.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-CYiGpsbj.mjs.map → NoContentTypePage-CQlgc_9h.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-BzsQ3hLZ.js → NoContentTypePage-YNlmMHbx.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-BzsQ3hLZ.js.map → NoContentTypePage-YNlmMHbx.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-IGkId4C5.js → NoPermissionsPage-CERDW9_P.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-IGkId4C5.js.map → NoPermissionsPage-CERDW9_P.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-B5baIHal.mjs → NoPermissionsPage-CT2YbxJK.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-B5baIHal.mjs.map → NoPermissionsPage-CT2YbxJK.mjs.map} +1 -1
  41. package/dist/_chunks/Preview-D9FlX2H8.js +275 -0
  42. package/dist/_chunks/Preview-D9FlX2H8.js.map +1 -0
  43. package/dist/_chunks/Preview-GZFXtAgo.mjs +256 -0
  44. package/dist/_chunks/Preview-GZFXtAgo.mjs.map +1 -0
  45. package/dist/_chunks/{Relations-CIYDdKU-.mjs → Relations-49C4HPsL.mjs} +72 -36
  46. package/dist/_chunks/Relations-49C4HPsL.mjs.map +1 -0
  47. package/dist/_chunks/{Relations-Dhuurpx2.js → Relations-CcJBqH7I.js} +71 -35
  48. package/dist/_chunks/Relations-CcJBqH7I.js.map +1 -0
  49. package/dist/_chunks/{en-BrCTWlZv.mjs → en-CfIXaZf9.mjs} +26 -14
  50. package/dist/_chunks/{en-BrCTWlZv.mjs.map → en-CfIXaZf9.mjs.map} +1 -1
  51. package/dist/_chunks/{en-uOUIxfcQ.js → en-DTWPCdTS.js} +26 -14
  52. package/dist/_chunks/{en-uOUIxfcQ.js.map → en-DTWPCdTS.js.map} +1 -1
  53. package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
  54. package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
  55. package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
  56. package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
  57. package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
  58. package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
  59. package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
  60. package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
  61. package/dist/_chunks/{index-C9TJPyni.mjs → index-CP5EOEiH.mjs} +985 -777
  62. package/dist/_chunks/index-CP5EOEiH.mjs.map +1 -0
  63. package/dist/_chunks/{index-CdT0kHZ8.js → index-DUjGm1xz.js} +966 -757
  64. package/dist/_chunks/index-DUjGm1xz.js.map +1 -0
  65. package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
  66. package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
  67. package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
  68. package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
  69. package/dist/_chunks/{layout-BNqvLR_b.mjs → layout-B3LdnMTA.mjs} +5 -4
  70. package/dist/_chunks/{layout-BNqvLR_b.mjs.map → layout-B3LdnMTA.mjs.map} +1 -1
  71. package/dist/_chunks/{layout-C6dxWYT7.js → layout-zHc8BsKI.js} +5 -4
  72. package/dist/_chunks/{layout-C6dxWYT7.js.map → layout-zHc8BsKI.js.map} +1 -1
  73. package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
  74. package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
  75. package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
  76. package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
  77. package/dist/_chunks/{relations-CkKqKw65.mjs → relations-DnT2jc-S.mjs} +6 -7
  78. package/dist/_chunks/relations-DnT2jc-S.mjs.map +1 -0
  79. package/dist/_chunks/{relations-DtFaDnP1.js → relations-DrsZXRl-.js} +6 -7
  80. package/dist/_chunks/relations-DrsZXRl-.js.map +1 -0
  81. package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
  82. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
  83. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
  84. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
  85. package/dist/admin/index.js +2 -1
  86. package/dist/admin/index.js.map +1 -1
  87. package/dist/admin/index.mjs +5 -4
  88. package/dist/admin/src/exports.d.ts +1 -1
  89. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  90. package/dist/admin/src/hooks/useDocument.d.ts +32 -1
  91. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  92. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
  93. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +0 -32
  94. package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
  95. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
  96. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
  97. package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
  98. package/dist/admin/src/preview/constants.d.ts +1 -0
  99. package/dist/admin/src/preview/index.d.ts +4 -0
  100. package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
  101. package/dist/admin/src/preview/routes.d.ts +3 -0
  102. package/dist/admin/src/preview/services/preview.d.ts +3 -0
  103. package/dist/admin/src/router.d.ts +1 -1
  104. package/dist/admin/src/services/api.d.ts +1 -1
  105. package/dist/admin/src/services/components.d.ts +2 -2
  106. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  107. package/dist/admin/src/services/documents.d.ts +19 -17
  108. package/dist/admin/src/services/init.d.ts +1 -1
  109. package/dist/admin/src/services/relations.d.ts +2 -2
  110. package/dist/admin/src/services/uid.d.ts +3 -3
  111. package/dist/admin/src/utils/validation.d.ts +4 -1
  112. package/dist/server/index.js +421 -183
  113. package/dist/server/index.js.map +1 -1
  114. package/dist/server/index.mjs +421 -183
  115. package/dist/server/index.mjs.map +1 -1
  116. package/dist/server/src/bootstrap.d.ts.map +1 -1
  117. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  118. package/dist/server/src/controllers/index.d.ts.map +1 -1
  119. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  120. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  121. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  122. package/dist/server/src/history/services/history.d.ts.map +1 -1
  123. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  124. package/dist/server/src/history/services/utils.d.ts +3 -3
  125. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  126. package/dist/server/src/index.d.ts +4 -4
  127. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  128. package/dist/server/src/preview/constants.d.ts +2 -0
  129. package/dist/server/src/preview/constants.d.ts.map +1 -0
  130. package/dist/server/src/preview/controllers/index.d.ts +2 -0
  131. package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
  132. package/dist/server/src/preview/controllers/preview.d.ts +13 -0
  133. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
  134. package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
  135. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
  136. package/dist/server/src/preview/index.d.ts +4 -0
  137. package/dist/server/src/preview/index.d.ts.map +1 -0
  138. package/dist/server/src/preview/routes/index.d.ts +8 -0
  139. package/dist/server/src/preview/routes/index.d.ts.map +1 -0
  140. package/dist/server/src/preview/routes/preview.d.ts +4 -0
  141. package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
  142. package/dist/server/src/preview/services/index.d.ts +15 -0
  143. package/dist/server/src/preview/services/index.d.ts.map +1 -0
  144. package/dist/server/src/preview/services/preview-config.d.ts +30 -0
  145. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
  146. package/dist/server/src/preview/services/preview.d.ts +12 -0
  147. package/dist/server/src/preview/services/preview.d.ts.map +1 -0
  148. package/dist/server/src/preview/utils.d.ts +18 -0
  149. package/dist/server/src/preview/utils.d.ts.map +1 -0
  150. package/dist/server/src/routes/index.d.ts.map +1 -1
  151. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  152. package/dist/server/src/services/document-metadata.d.ts +8 -8
  153. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  154. package/dist/server/src/services/index.d.ts +4 -4
  155. package/dist/server/src/services/index.d.ts.map +1 -1
  156. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  157. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  158. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  159. package/dist/server/src/utils/index.d.ts +2 -0
  160. package/dist/server/src/utils/index.d.ts.map +1 -1
  161. package/dist/shared/contracts/collection-types.d.ts +3 -1
  162. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  163. package/dist/shared/contracts/index.d.ts +1 -0
  164. package/dist/shared/contracts/index.d.ts.map +1 -1
  165. package/dist/shared/contracts/preview.d.ts +27 -0
  166. package/dist/shared/contracts/preview.d.ts.map +1 -0
  167. package/dist/shared/index.js +4 -0
  168. package/dist/shared/index.js.map +1 -1
  169. package/dist/shared/index.mjs +4 -0
  170. package/dist/shared/index.mjs.map +1 -1
  171. package/package.json +13 -13
  172. package/dist/_chunks/EditViewPage-B7VgwJaG.mjs.map +0 -1
  173. package/dist/_chunks/EditViewPage-BgjdnGz2.js.map +0 -1
  174. package/dist/_chunks/Field-CdK7ZLmv.js.map +0 -1
  175. package/dist/_chunks/Field-tHCw4lGA.mjs.map +0 -1
  176. package/dist/_chunks/Form-BJxdTv3Q.mjs.map +0 -1
  177. package/dist/_chunks/Form-C_0KTVvV.js.map +0 -1
  178. package/dist/_chunks/History-DR2txJLE.mjs.map +0 -1
  179. package/dist/_chunks/History-nuEzM5qm.js.map +0 -1
  180. package/dist/_chunks/ListConfigurationPage-CnB86Psm.js.map +0 -1
  181. package/dist/_chunks/ListConfigurationPage-voFVtXu6.mjs.map +0 -1
  182. package/dist/_chunks/ListViewPage-B_GaWgRH.mjs.map +0 -1
  183. package/dist/_chunks/ListViewPage-SXIXm-RM.js.map +0 -1
  184. package/dist/_chunks/Relations-CIYDdKU-.mjs.map +0 -1
  185. package/dist/_chunks/Relations-Dhuurpx2.js.map +0 -1
  186. package/dist/_chunks/index-C9TJPyni.mjs.map +0 -1
  187. package/dist/_chunks/index-CdT0kHZ8.js.map +0 -1
  188. package/dist/_chunks/relations-CkKqKw65.mjs.map +0 -1
  189. package/dist/_chunks/relations-DtFaDnP1.js.map +0 -1
  190. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  191. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  192. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
  193. package/strapi-server.js +0 -3
@@ -5,21 +5,21 @@ import { useStrapiApp, createContext, useField, useNotification, useForm, useAPI
5
5
  import { Box, SingleSelect, SingleSelectOption, Typography, Flex, BaseLink, Button, Popover, Field, Tooltip, IconButton, useComposedRefs, Portal, FocusTrap, Divider, VisuallyHidden, Grid as Grid$1, Accordion, TextButton, TextInput, IconButtonGroup, Menu, MenuItem } from "@strapi/design-system";
6
6
  import pipe$1 from "lodash/fp/pipe";
7
7
  import { useIntl } from "react-intl";
8
- import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, d as buildValidParams, f as useDocumentRBAC, n as useDocLayout } from "./index-C9TJPyni.mjs";
8
+ import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, n as CLONE_PATH, d as buildValidParams, f as useDocumentRBAC, S as SINGLE_TYPES, o as useDocLayout } from "./index-CP5EOEiH.mjs";
9
9
  import { generateNKeysBetween } from "fractional-indexing";
10
- import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-CIYDdKU-.mjs";
10
+ import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-49C4HPsL.mjs";
11
11
  import { Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Image as Image$1, NumberList, BulletList, Paragraph, Quotes, Link as Link$1, Drag, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, PlusCircle, Plus, Trash, EyeStriked, CheckCircle, WarningCircle, Loader, ArrowClockwise, More } from "@strapi/icons";
12
12
  import { styled, css, keyframes } from "styled-components";
13
13
  import { C as ComponentIcon, a as COMPONENT_ICONS } from "./ComponentIcon-u4bIXTFY.mjs";
14
14
  import { getEmptyImage } from "react-dnd-html5-backend";
15
15
  import { a as DIRECTIONS, u as useDragAndDrop, I as ItemTypes } from "./useDragAndDrop-DdHgKsqq.mjs";
16
- import { g as getIn } from "./objects-mKMAmfec.mjs";
16
+ import { g as getIn } from "./objects-D6yBsdmx.mjs";
17
17
  import { Editor as Editor$1, Transforms, Node, Element, Range, Path, Point, createEditor } from "slate";
18
18
  import { withHistory } from "slate-history";
19
19
  import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
20
- import { p as prefixFileUrlWithBackendUrl, u as usePrev } from "./usePrev-DH6iah0A.mjs";
20
+ import { p as prefixFileUrlWithBackendUrl, u as usePrev, a as useDebounce } from "./useDebounce-DmuSJIF3.mjs";
21
21
  import * as Toolbar from "@radix-ui/react-toolbar";
22
- import { useLocation } from "react-router-dom";
22
+ import { useLocation, useMatch } from "react-router-dom";
23
23
  import CodeMirror from "codemirror5";
24
24
  import sanitizeHtml from "sanitize-html";
25
25
  import { getLanguage, highlight, highlightAuto } from "highlight.js";
@@ -1407,7 +1407,7 @@ const ToolbarButton = ({
1407
1407
  width: 7,
1408
1408
  height: 7,
1409
1409
  hasRadius: true,
1410
- children: /* @__PURE__ */ jsx(Icon, { width: "1.2rem", height: "1.2rem", fill: disabled ? "neutral300" : enabledColor })
1410
+ children: /* @__PURE__ */ jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
1411
1411
  }
1412
1412
  )
1413
1413
  }
@@ -1749,6 +1749,7 @@ const DragItem = styled(Flex)`
1749
1749
  }
1750
1750
  `;
1751
1751
  const DragIconButton = styled(IconButton)`
1752
+ user-select: none;
1752
1753
  display: flex;
1753
1754
  align-items: center;
1754
1755
  justify-content: center;
@@ -1877,6 +1878,7 @@ const DragAndDropElement = ({
1877
1878
  DragIconButton,
1878
1879
  {
1879
1880
  tag: "div",
1881
+ contentEditable: false,
1880
1882
  role: "button",
1881
1883
  tabIndex: 0,
1882
1884
  withTooltip: false,
@@ -2634,7 +2636,7 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
2634
2636
  /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
2635
2637
  /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2636
2638
  id: getTranslation("components.empty-repeatable"),
2637
- defaultMessage: "No entry yet. Click on the button below to add one."
2639
+ defaultMessage: "No entry yet. Click to add one."
2638
2640
  }) }) })
2639
2641
  ] })
2640
2642
  }
@@ -2656,6 +2658,7 @@ const NonRepeatableComponent = ({
2656
2658
  children,
2657
2659
  layout
2658
2660
  }) => {
2661
+ const { formatMessage } = useIntl();
2659
2662
  const { value } = useField(name2);
2660
2663
  const level = useComponent("NonRepeatableComponent", (state) => state.level);
2661
2664
  const isNested = level > 0;
@@ -2672,6 +2675,10 @@ const NonRepeatableComponent = ({
2672
2675
  children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
2673
2676
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2674
2677
  const completeFieldName = `${name2}.${field.name}`;
2678
+ const translatedLabel = formatMessage({
2679
+ id: `content-manager.components.${attribute.component}.${field.name}`,
2680
+ defaultMessage: field.label
2681
+ });
2675
2682
  return /* @__PURE__ */ jsx(
2676
2683
  Grid$1.Item,
2677
2684
  {
@@ -2680,7 +2687,7 @@ const NonRepeatableComponent = ({
2680
2687
  xs: 12,
2681
2688
  direction: "column",
2682
2689
  alignItems: "stretch",
2683
- children: children({ ...field, name: completeFieldName })
2690
+ children: children({ ...field, label: translatedLabel, name: completeFieldName })
2684
2691
  },
2685
2692
  completeFieldName
2686
2693
  );
@@ -2702,13 +2709,34 @@ const RepeatableComponent = ({
2702
2709
  const { search: searchString } = useLocation();
2703
2710
  const search = React.useMemo(() => new URLSearchParams(searchString), [searchString]);
2704
2711
  const { components } = useDoc();
2705
- const { value = [], error } = useField(name2);
2712
+ const {
2713
+ value = [],
2714
+ error,
2715
+ rawError
2716
+ } = useField(name2);
2706
2717
  const addFieldRow = useForm("RepeatableComponent", (state) => state.addFieldRow);
2707
2718
  const moveFieldRow = useForm("RepeatableComponent", (state) => state.moveFieldRow);
2708
2719
  const removeFieldRow = useForm("RepeatableComponent", (state) => state.removeFieldRow);
2709
2720
  const { max = Infinity } = attribute;
2710
2721
  const [collapseToOpen, setCollapseToOpen] = React.useState("");
2711
2722
  const [liveText, setLiveText] = React.useState("");
2723
+ React.useEffect(() => {
2724
+ const hasNestedErrors = rawError && Array.isArray(rawError) && rawError.length > 0;
2725
+ const hasNestedValue = value && Array.isArray(value) && value.length > 0;
2726
+ if (hasNestedErrors && hasNestedValue) {
2727
+ const errorOpenItems = rawError.map((_, idx) => {
2728
+ return value[idx] ? value[idx].__temp_key__ : null;
2729
+ }).filter((value2) => !!value2);
2730
+ if (errorOpenItems && errorOpenItems.length > 0) {
2731
+ setCollapseToOpen((collapseToOpen2) => {
2732
+ if (!errorOpenItems.includes(collapseToOpen2)) {
2733
+ return errorOpenItems[0];
2734
+ }
2735
+ return collapseToOpen2;
2736
+ });
2737
+ }
2738
+ }
2739
+ }, [rawError, value]);
2712
2740
  const componentTmpKeyWithFocussedField = React.useMemo(() => {
2713
2741
  if (search.has("field")) {
2714
2742
  const fieldParam = search.get("field");
@@ -2861,6 +2889,10 @@ const RepeatableComponent = ({
2861
2889
  children: layout.map((row, index2) => {
2862
2890
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2863
2891
  const completeFieldName = `${nameWithIndex}.${field.name}`;
2892
+ const translatedLabel = formatMessage({
2893
+ id: `content-manager.components.${attribute.component}.${field.name}`,
2894
+ defaultMessage: field.label
2895
+ });
2864
2896
  return /* @__PURE__ */ jsx(
2865
2897
  Grid$1.Item,
2866
2898
  {
@@ -2869,7 +2901,11 @@ const RepeatableComponent = ({
2869
2901
  xs: 12,
2870
2902
  direction: "column",
2871
2903
  alignItems: "stretch",
2872
- children: children({ ...field, name: completeFieldName })
2904
+ children: children({
2905
+ ...field,
2906
+ label: translatedLabel,
2907
+ name: completeFieldName
2908
+ })
2873
2909
  },
2874
2910
  completeFieldName
2875
2911
  );
@@ -3256,18 +3292,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
3256
3292
  /* @__PURE__ */ jsx(Field.Hint, {})
3257
3293
  ] });
3258
3294
  };
3259
- function useDebounce(value, delay) {
3260
- const [debouncedValue, setDebouncedValue] = useState(value);
3261
- useEffect(() => {
3262
- const handler = setTimeout(() => {
3263
- setDebouncedValue(value);
3264
- }, delay);
3265
- return () => {
3266
- clearTimeout(handler);
3267
- };
3268
- }, [value, delay]);
3269
- return debouncedValue;
3270
- }
3271
3295
  const uidApi = contentManagerApi.injectEndpoints({
3272
3296
  endpoints: (builder) => ({
3273
3297
  getDefaultUID: builder.query({
@@ -3302,7 +3326,10 @@ const uidApi = contentManagerApi.injectEndpoints({
3302
3326
  config: {
3303
3327
  params
3304
3328
  }
3305
- })
3329
+ }),
3330
+ providesTags: (_res, _error, params) => [
3331
+ { type: "UidAvailability", id: params.contentTypeUID }
3332
+ ]
3306
3333
  })
3307
3334
  })
3308
3335
  });
@@ -3314,8 +3341,10 @@ const UIDInput = React.forwardRef(
3314
3341
  const allFormValues = useForm("InputUID", (form) => form.values);
3315
3342
  const [availability, setAvailability] = React.useState();
3316
3343
  const [showRegenerate, setShowRegenerate] = React.useState(false);
3344
+ const isCloning = useMatch(CLONE_PATH) !== null;
3317
3345
  const field = useField(name2);
3318
3346
  const debouncedValue = useDebounce(field.value, 300);
3347
+ const hasChanged = debouncedValue !== field.initialValue;
3319
3348
  const { toggleNotification } = useNotification();
3320
3349
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
3321
3350
  const { formatMessage } = useIntl();
@@ -3391,8 +3420,9 @@ const UIDInput = React.forwardRef(
3391
3420
  params
3392
3421
  },
3393
3422
  {
3423
+ // Don't check availability if the value is empty or wasn't changed
3394
3424
  skip: !Boolean(
3395
- debouncedValue !== field.initialValue && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3425
+ (hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3396
3426
  )
3397
3427
  }
3398
3428
  );
@@ -3421,6 +3451,7 @@ const UIDInput = React.forwardRef(
3421
3451
  const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
3422
3452
  const fieldRef = useFocusInputField(name2);
3423
3453
  const composedRefs = useComposedRefs(ref, fieldRef);
3454
+ const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
3424
3455
  return /* @__PURE__ */ jsxs(Field.Root, { hint, name: name2, error: field.error, required, children: [
3425
3456
  /* @__PURE__ */ jsx(Field.Label, { action: labelAction, children: label }),
3426
3457
  /* @__PURE__ */ jsx(
@@ -3429,7 +3460,7 @@ const UIDInput = React.forwardRef(
3429
3460
  ref: composedRefs,
3430
3461
  disabled: props.disabled,
3431
3462
  endAction: /* @__PURE__ */ jsxs(Flex, { position: "relative", gap: 1, children: [
3432
- availability && !showRegenerate && /* @__PURE__ */ jsxs(
3463
+ shouldShowAvailability && /* @__PURE__ */ jsxs(
3433
3464
  TextValidation,
3434
3465
  {
3435
3466
  alignItems: "center",
@@ -4578,31 +4609,11 @@ const quoteAndCodeHandler = (editor, markdownType) => {
4578
4609
  insertWithoutTextToEdit(editor, markdownType, line, contentLength);
4579
4610
  }
4580
4611
  };
4581
- const CustomIconButton = styled(IconButton)`
4582
- padding: ${({ theme }) => theme.spaces[2]};
4583
-
4584
- svg {
4585
- width: 1.8rem;
4586
- height: 1.8rem;
4587
- }
4588
- `;
4589
- const CustomLinkIconButton = styled(CustomIconButton)`
4590
- svg {
4591
- width: 0.8rem;
4592
- height: 0.8rem;
4593
- }
4594
- `;
4595
4612
  const MainButtons = styled(IconButtonGroup)`
4596
4613
  margin-left: ${({ theme }) => theme.spaces[4]};
4597
4614
  `;
4598
4615
  const MoreButton = styled(IconButton)`
4599
4616
  margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
4600
- padding: ${({ theme }) => theme.spaces[2]};
4601
-
4602
- svg {
4603
- width: 1.8rem;
4604
- height: 1.8rem;
4605
- }
4606
4617
  `;
4607
4618
  const IconButtonGroupMargin = styled(IconButtonGroup)`
4608
4619
  margin-right: ${({ theme }) => `${theme.spaces[2]}`};
@@ -4686,9 +4697,9 @@ const WysiwygNav = ({
4686
4697
  }
4687
4698
  ) }),
4688
4699
  /* @__PURE__ */ jsxs(MainButtons, { children: [
4689
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4690
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
4691
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
4700
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4701
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
4702
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
4692
4703
  ] }),
4693
4704
  /* @__PURE__ */ jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsx(More, {}) })
4694
4705
  ] }),
@@ -4727,17 +4738,9 @@ const WysiwygNav = ({
4727
4738
  }
4728
4739
  ) }),
4729
4740
  /* @__PURE__ */ jsxs(MainButtons, { children: [
4741
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4730
4742
  /* @__PURE__ */ jsx(
4731
- CustomIconButton,
4732
- {
4733
- onClick: () => onActionClick("Bold", editorRef),
4734
- label: "Bold",
4735
- name: "Bold",
4736
- children: /* @__PURE__ */ jsx(Bold, {})
4737
- }
4738
- ),
4739
- /* @__PURE__ */ jsx(
4740
- CustomIconButton,
4743
+ IconButton,
4741
4744
  {
4742
4745
  onClick: () => onActionClick("Italic", editorRef),
4743
4746
  label: "Italic",
@@ -4746,7 +4749,7 @@ const WysiwygNav = ({
4746
4749
  }
4747
4750
  ),
4748
4751
  /* @__PURE__ */ jsx(
4749
- CustomIconButton,
4752
+ IconButton,
4750
4753
  {
4751
4754
  onClick: () => onActionClick("Underline", editorRef),
4752
4755
  label: "Underline",
@@ -4760,7 +4763,7 @@ const WysiwygNav = ({
4760
4763
  /* @__PURE__ */ jsx(Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxs(Flex, { padding: 2, children: [
4761
4764
  /* @__PURE__ */ jsxs(IconButtonGroupMargin, { children: [
4762
4765
  /* @__PURE__ */ jsx(
4763
- CustomIconButton,
4766
+ IconButton,
4764
4767
  {
4765
4768
  onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
4766
4769
  label: "Strikethrough",
@@ -4769,7 +4772,7 @@ const WysiwygNav = ({
4769
4772
  }
4770
4773
  ),
4771
4774
  /* @__PURE__ */ jsx(
4772
- CustomIconButton,
4775
+ IconButton,
4773
4776
  {
4774
4777
  onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
4775
4778
  label: "BulletList",
@@ -4778,7 +4781,7 @@ const WysiwygNav = ({
4778
4781
  }
4779
4782
  ),
4780
4783
  /* @__PURE__ */ jsx(
4781
- CustomIconButton,
4784
+ IconButton,
4782
4785
  {
4783
4786
  onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
4784
4787
  label: "NumberList",
@@ -4789,7 +4792,7 @@ const WysiwygNav = ({
4789
4792
  ] }),
4790
4793
  /* @__PURE__ */ jsxs(IconButtonGroup, { children: [
4791
4794
  /* @__PURE__ */ jsx(
4792
- CustomIconButton,
4795
+ IconButton,
4793
4796
  {
4794
4797
  onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
4795
4798
  label: "Code",
@@ -4798,7 +4801,7 @@ const WysiwygNav = ({
4798
4801
  }
4799
4802
  ),
4800
4803
  /* @__PURE__ */ jsx(
4801
- CustomIconButton,
4804
+ IconButton,
4802
4805
  {
4803
4806
  onClick: () => {
4804
4807
  handleTogglePopover();
@@ -4810,7 +4813,7 @@ const WysiwygNav = ({
4810
4813
  }
4811
4814
  ),
4812
4815
  /* @__PURE__ */ jsx(
4813
- CustomLinkIconButton,
4816
+ IconButton,
4814
4817
  {
4815
4818
  onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
4816
4819
  label: "Link",
@@ -4819,7 +4822,7 @@ const WysiwygNav = ({
4819
4822
  }
4820
4823
  ),
4821
4824
  /* @__PURE__ */ jsx(
4822
- CustomIconButton,
4825
+ IconButton,
4823
4826
  {
4824
4827
  onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
4825
4828
  label: "Quote",
@@ -4956,15 +4959,19 @@ const Wysiwyg = React.forwardRef(
4956
4959
  );
4957
4960
  const MemoizedWysiwyg = React.memo(Wysiwyg);
4958
4961
  const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4959
- const { id } = useDoc();
4962
+ const { id, document: document2, collectionType } = useDoc();
4960
4963
  const isFormDisabled = useForm("InputRenderer", (state) => state.disabled);
4961
4964
  const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
4962
4965
  const canCreateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
4963
4966
  const canReadFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
4964
4967
  const canUpdateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
4965
4968
  const canUserAction = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
4966
- const editableFields = id ? canUpdateFields : canCreateFields;
4967
- const readableFields = id ? canReadFields : canCreateFields;
4969
+ let idToCheck = id;
4970
+ if (collectionType === SINGLE_TYPES) {
4971
+ idToCheck = document2?.documentId;
4972
+ }
4973
+ const editableFields = idToCheck ? canUpdateFields : canCreateFields;
4974
+ const readableFields = idToCheck ? canReadFields : canCreateFields;
4968
4975
  const canUserReadField = canUserAction(props.name, readableFields, props.type);
4969
4976
  const canUserEditField = canUserAction(props.name, editableFields, props.type);
4970
4977
  const fields = useStrapiApp("InputRenderer", (app) => app.fields);
@@ -4975,6 +4982,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4975
4982
  const {
4976
4983
  edit: { components }
4977
4984
  } = useDocLayout();
4985
+ const field = useField(props.name);
4978
4986
  if (!visible) {
4979
4987
  return null;
4980
4988
  }
@@ -4985,7 +4993,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4985
4993
  if (attributeHasCustomFieldProperty(props.attribute)) {
4986
4994
  const CustomInput = lazyComponentStore[props.attribute.customField];
4987
4995
  if (CustomInput) {
4988
- return /* @__PURE__ */ jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
4996
+ return /* @__PURE__ */ jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
4989
4997
  }
4990
4998
  return /* @__PURE__ */ jsx(
4991
4999
  InputRenderer$1,
@@ -5146,6 +5154,14 @@ const DynamicComponent = ({
5146
5154
  React.useEffect(() => {
5147
5155
  dragPreviewRef(getEmptyImage(), { captureDraggingState: false });
5148
5156
  }, [dragPreviewRef, index]);
5157
+ const accordionValue = React.useId();
5158
+ const { value = [], rawError } = useField(`${name2}.${index}`);
5159
+ const [collapseToOpen, setCollapseToOpen] = React.useState("");
5160
+ React.useEffect(() => {
5161
+ if (rawError && value) {
5162
+ setCollapseToOpen(accordionValue);
5163
+ }
5164
+ }, [rawError, value, accordionValue]);
5149
5165
  const composedBoxRefs = useComposedRefs(boxRef, dropRef);
5150
5166
  const accordionActions = disabled ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
5151
5167
  /* @__PURE__ */ jsx(
@@ -5211,10 +5227,9 @@ const DynamicComponent = ({
5211
5227
  ] })
5212
5228
  ] });
5213
5229
  const accordionTitle = title ? `${displayName} ${title}` : displayName;
5214
- const accordionValue = React.useId();
5215
5230
  return /* @__PURE__ */ jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
5216
5231
  /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Rectangle, { background: "neutral200" }) }),
5217
- /* @__PURE__ */ jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsx(Preview, {}) : /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsxs(Accordion.Item, { value: accordionValue, children: [
5232
+ /* @__PURE__ */ jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsx(Preview, {}) : /* @__PURE__ */ jsx(Accordion.Root, { value: collapseToOpen, onValueChange: setCollapseToOpen, children: /* @__PURE__ */ jsxs(Accordion.Item, { value: accordionValue, children: [
5218
5233
  /* @__PURE__ */ jsxs(Accordion.Header, { children: [
5219
5234
  /* @__PURE__ */ jsx(
5220
5235
  Accordion.Trigger,
@@ -5225,21 +5240,39 @@ const DynamicComponent = ({
5225
5240
  ),
5226
5241
  /* @__PURE__ */ jsx(Accordion.Actions, { children: accordionActions })
5227
5242
  ] }),
5228
- /* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5229
- const fieldName = `${name2}.${index}.${field.name}`;
5230
- return /* @__PURE__ */ jsx(
5231
- Grid$1.Item,
5232
- {
5233
- col: size,
5234
- s: 12,
5235
- xs: 12,
5236
- direction: "column",
5237
- alignItems: "stretch",
5238
- children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5239
- },
5240
- fieldName
5241
- );
5242
- }) }, rowInd)) }) }) })
5243
+ /* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(
5244
+ Grid$1.Item,
5245
+ {
5246
+ col: 12,
5247
+ s: 12,
5248
+ xs: 12,
5249
+ direction: "column",
5250
+ alignItems: "stretch",
5251
+ children: /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5252
+ const fieldName = `${name2}.${index}.${field.name}`;
5253
+ const fieldWithTranslatedLabel = {
5254
+ ...field,
5255
+ label: formatMessage({
5256
+ id: `content-manager.components.${componentUid}.${field.name}`,
5257
+ defaultMessage: field.label
5258
+ })
5259
+ };
5260
+ return /* @__PURE__ */ jsx(
5261
+ Grid$1.Item,
5262
+ {
5263
+ col: size,
5264
+ s: 12,
5265
+ xs: 12,
5266
+ direction: "column",
5267
+ alignItems: "stretch",
5268
+ children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel, name: fieldName })
5269
+ },
5270
+ fieldName
5271
+ );
5272
+ }) })
5273
+ },
5274
+ rowInd
5275
+ )) }) }) }) })
5243
5276
  ] }) }) })
5244
5277
  ] });
5245
5278
  };
@@ -5547,4 +5580,4 @@ export {
5547
5580
  transformDocument as t,
5548
5581
  useLazyComponents as u
5549
5582
  };
5550
- //# sourceMappingURL=Field-tHCw4lGA.mjs.map
5583
+ //# sourceMappingURL=Field-CfbMEZLv.mjs.map