@strapi/content-manager 0.0.0-experimental.6d27139261823fc4b18da9f3c10b271d5010dbf0 → 0.0.0-experimental.702fcf7aec9be82c4485a8bd49e235293c37f022

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 (182) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-DyDkPajU.js → ComponentConfigurationPage-BaGEn2nd.js} +4 -4
  2. package/dist/_chunks/{ComponentConfigurationPage-DyDkPajU.js.map → ComponentConfigurationPage-BaGEn2nd.js.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-9lRmRdIr.mjs → ComponentConfigurationPage-EIYRzIr6.mjs} +4 -4
  4. package/dist/_chunks/{ComponentConfigurationPage-9lRmRdIr.mjs.map → ComponentConfigurationPage-EIYRzIr6.mjs.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-DValmA0m.js → EditConfigurationPage-BQGdJb6Z.js} +4 -4
  6. package/dist/_chunks/{EditConfigurationPage-DValmA0m.js.map → EditConfigurationPage-BQGdJb6Z.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-Bk893vVY.mjs → EditConfigurationPage-ByaNUj_q.mjs} +4 -4
  8. package/dist/_chunks/{EditConfigurationPage-Bk893vVY.mjs.map → EditConfigurationPage-ByaNUj_q.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-DiNFdFqP.mjs → EditViewPage-BgeC8L9X.mjs} +50 -10
  10. package/dist/_chunks/EditViewPage-BgeC8L9X.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-Dk7Eaft4.js → EditViewPage-s_qVLiC6.js} +49 -9
  12. package/dist/_chunks/EditViewPage-s_qVLiC6.js.map +1 -0
  13. package/dist/_chunks/{Field-DH2OaqUP.js → Field-0AdG2t0D.js} +100 -46
  14. package/dist/_chunks/Field-0AdG2t0D.js.map +1 -0
  15. package/dist/_chunks/{Field-Dv_HTFTa.mjs → Field-DbpDop_h.mjs} +96 -42
  16. package/dist/_chunks/Field-DbpDop_h.mjs.map +1 -0
  17. package/dist/_chunks/{Form-B_dUDizM.js → Form-BpC9hWi-.js} +16 -8
  18. package/dist/_chunks/Form-BpC9hWi-.js.map +1 -0
  19. package/dist/_chunks/{Form-Dy6P4HgH.mjs → Form-Xb-u04dn.mjs} +16 -8
  20. package/dist/_chunks/Form-Xb-u04dn.mjs.map +1 -0
  21. package/dist/_chunks/{History-DrwsD1Vc.mjs → History-DLl10NEN.mjs} +42 -99
  22. package/dist/_chunks/History-DLl10NEN.mjs.map +1 -0
  23. package/dist/_chunks/{History-BT4w83Oa.js → History-sJ61vusJ.js} +40 -97
  24. package/dist/_chunks/History-sJ61vusJ.js.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-CuYrMcW3.js → ListConfigurationPage-C00guBjQ.js} +5 -4
  26. package/dist/_chunks/ListConfigurationPage-C00guBjQ.js.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-BxIP0jRy.mjs → ListConfigurationPage-mbZQmEZ3.mjs} +6 -5
  28. package/dist/_chunks/ListConfigurationPage-mbZQmEZ3.mjs.map +1 -0
  29. package/dist/_chunks/{ListViewPage-BvpwNur7.js → ListViewPage-DDVpN1ql.js} +53 -19
  30. package/dist/_chunks/ListViewPage-DDVpN1ql.js.map +1 -0
  31. package/dist/_chunks/{ListViewPage-5a1vw-OK.mjs → ListViewPage-iRJ5AUjS.mjs} +49 -15
  32. package/dist/_chunks/ListViewPage-iRJ5AUjS.mjs.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-UqEiWKkM.js → NoContentTypePage-BvkII4H4.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-UqEiWKkM.js.map → NoContentTypePage-BvkII4H4.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-Bm6tRcd3.mjs → NoContentTypePage-DI8VWkVK.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-Bm6tRcd3.mjs.map → NoContentTypePage-DI8VWkVK.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-C_vGRo8Q.js → NoPermissionsPage-BZjHQTpb.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-C_vGRo8Q.js.map → NoPermissionsPage-BZjHQTpb.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-BHPqn_tQ.mjs → NoPermissionsPage-DckHN3oZ.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-BHPqn_tQ.mjs.map → NoPermissionsPage-DckHN3oZ.mjs.map} +1 -1
  41. package/dist/_chunks/Preview-BDOUHeaW.mjs +267 -0
  42. package/dist/_chunks/Preview-BDOUHeaW.mjs.map +1 -0
  43. package/dist/_chunks/Preview-CS2aV-BU.js +286 -0
  44. package/dist/_chunks/Preview-CS2aV-BU.js.map +1 -0
  45. package/dist/_chunks/{Relations-CznVF6LS.js → Relations-DEIQO39t.js} +71 -35
  46. package/dist/_chunks/Relations-DEIQO39t.js.map +1 -0
  47. package/dist/_chunks/{Relations-C7fPyh5P.mjs → Relations-J-8HC3zX.mjs} +72 -36
  48. package/dist/_chunks/Relations-J-8HC3zX.mjs.map +1 -0
  49. package/dist/_chunks/{en-CbaIuYoB.mjs → en-CfIXaZf9.mjs} +25 -13
  50. package/dist/_chunks/{en-CbaIuYoB.mjs.map → en-CfIXaZf9.mjs.map} +1 -1
  51. package/dist/_chunks/{en-otD_UBJi.js → en-DTWPCdTS.js} +25 -13
  52. package/dist/_chunks/{en-otD_UBJi.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-BJ6uTqLL.mjs → index-DzTs9ga-.mjs} +1122 -911
  62. package/dist/_chunks/index-DzTs9ga-.mjs.map +1 -0
  63. package/dist/_chunks/{index-D9UmmBcM.js → index-uXHSvmlw.js} +1118 -906
  64. package/dist/_chunks/index-uXHSvmlw.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-uomiIGbG.mjs → layout-BhIZkPuB.mjs} +5 -4
  70. package/dist/_chunks/{layout-uomiIGbG.mjs.map → layout-BhIZkPuB.mjs.map} +1 -1
  71. package/dist/_chunks/{layout-kfu5Wtix.js → layout-zA_F2rU4.js} +5 -4
  72. package/dist/_chunks/{layout-kfu5Wtix.js.map → layout-zA_F2rU4.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-DiDufGSA.mjs → relations-BoCufH_z.mjs} +6 -7
  78. package/dist/_chunks/relations-BoCufH_z.mjs.map +1 -0
  79. package/dist/_chunks/{relations-DKENrxko.js → relations-DnUyZQaL.js} +6 -7
  80. package/dist/_chunks/relations-DnUyZQaL.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 +4 -3
  88. package/dist/admin/src/exports.d.ts +1 -1
  89. package/dist/admin/src/hooks/useDocument.d.ts +32 -1
  90. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  91. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
  92. package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
  93. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
  94. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
  95. package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
  96. package/dist/admin/src/preview/constants.d.ts +1 -0
  97. package/dist/admin/src/preview/index.d.ts +4 -0
  98. package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
  99. package/dist/admin/src/preview/routes.d.ts +3 -0
  100. package/dist/admin/src/preview/services/preview.d.ts +3 -0
  101. package/dist/admin/src/router.d.ts +1 -1
  102. package/dist/admin/src/services/documents.d.ts +3 -1
  103. package/dist/server/index.js +378 -162
  104. package/dist/server/index.js.map +1 -1
  105. package/dist/server/index.mjs +378 -162
  106. package/dist/server/index.mjs.map +1 -1
  107. package/dist/server/src/bootstrap.d.ts.map +1 -1
  108. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  109. package/dist/server/src/controllers/index.d.ts.map +1 -1
  110. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  111. package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
  112. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  113. package/dist/server/src/history/services/history.d.ts.map +1 -1
  114. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  115. package/dist/server/src/history/services/utils.d.ts +2 -3
  116. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  117. package/dist/server/src/index.d.ts +4 -4
  118. package/dist/server/src/preview/constants.d.ts +2 -0
  119. package/dist/server/src/preview/constants.d.ts.map +1 -0
  120. package/dist/server/src/preview/controllers/index.d.ts +2 -0
  121. package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
  122. package/dist/server/src/preview/controllers/preview.d.ts +13 -0
  123. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
  124. package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
  125. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
  126. package/dist/server/src/preview/index.d.ts +4 -0
  127. package/dist/server/src/preview/index.d.ts.map +1 -0
  128. package/dist/server/src/preview/routes/index.d.ts +8 -0
  129. package/dist/server/src/preview/routes/index.d.ts.map +1 -0
  130. package/dist/server/src/preview/routes/preview.d.ts +4 -0
  131. package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
  132. package/dist/server/src/preview/services/index.d.ts +15 -0
  133. package/dist/server/src/preview/services/index.d.ts.map +1 -0
  134. package/dist/server/src/preview/services/preview-config.d.ts +30 -0
  135. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
  136. package/dist/server/src/preview/services/preview.d.ts +12 -0
  137. package/dist/server/src/preview/services/preview.d.ts.map +1 -0
  138. package/dist/server/src/preview/utils.d.ts +18 -0
  139. package/dist/server/src/preview/utils.d.ts.map +1 -0
  140. package/dist/server/src/routes/index.d.ts.map +1 -1
  141. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  142. package/dist/server/src/services/document-metadata.d.ts +8 -8
  143. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  144. package/dist/server/src/services/index.d.ts +4 -4
  145. package/dist/server/src/services/index.d.ts.map +1 -1
  146. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  147. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  148. package/dist/server/src/utils/index.d.ts +2 -0
  149. package/dist/server/src/utils/index.d.ts.map +1 -1
  150. package/dist/shared/contracts/collection-types.d.ts +3 -1
  151. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  152. package/dist/shared/contracts/index.d.ts +1 -0
  153. package/dist/shared/contracts/index.d.ts.map +1 -1
  154. package/dist/shared/contracts/preview.d.ts +27 -0
  155. package/dist/shared/contracts/preview.d.ts.map +1 -0
  156. package/dist/shared/index.js +4 -0
  157. package/dist/shared/index.js.map +1 -1
  158. package/dist/shared/index.mjs +4 -0
  159. package/dist/shared/index.mjs.map +1 -1
  160. package/package.json +14 -14
  161. package/dist/_chunks/EditViewPage-DiNFdFqP.mjs.map +0 -1
  162. package/dist/_chunks/EditViewPage-Dk7Eaft4.js.map +0 -1
  163. package/dist/_chunks/Field-DH2OaqUP.js.map +0 -1
  164. package/dist/_chunks/Field-Dv_HTFTa.mjs.map +0 -1
  165. package/dist/_chunks/Form-B_dUDizM.js.map +0 -1
  166. package/dist/_chunks/Form-Dy6P4HgH.mjs.map +0 -1
  167. package/dist/_chunks/History-BT4w83Oa.js.map +0 -1
  168. package/dist/_chunks/History-DrwsD1Vc.mjs.map +0 -1
  169. package/dist/_chunks/ListConfigurationPage-BxIP0jRy.mjs.map +0 -1
  170. package/dist/_chunks/ListConfigurationPage-CuYrMcW3.js.map +0 -1
  171. package/dist/_chunks/ListViewPage-5a1vw-OK.mjs.map +0 -1
  172. package/dist/_chunks/ListViewPage-BvpwNur7.js.map +0 -1
  173. package/dist/_chunks/Relations-C7fPyh5P.mjs.map +0 -1
  174. package/dist/_chunks/Relations-CznVF6LS.js.map +0 -1
  175. package/dist/_chunks/index-BJ6uTqLL.mjs.map +0 -1
  176. package/dist/_chunks/index-D9UmmBcM.js.map +0 -1
  177. package/dist/_chunks/relations-DKENrxko.js.map +0 -1
  178. package/dist/_chunks/relations-DiDufGSA.mjs.map +0 -1
  179. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  180. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  181. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
  182. package/strapi-server.js +0 -3
@@ -5,19 +5,19 @@ 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, n as CLONE_PATH, d as buildValidParams, f as useDocumentRBAC, o as useDocLayout } from "./index-BJ6uTqLL.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-DzTs9ga-.mjs";
9
9
  import { generateNKeysBetween } from "fractional-indexing";
10
- import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-C7fPyh5P.mjs";
10
+ import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-J-8HC3zX.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
22
  import { useLocation, useMatch } from "react-router-dom";
23
23
  import CodeMirror from "codemirror5";
@@ -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({
@@ -4935,15 +4959,19 @@ const Wysiwyg = React.forwardRef(
4935
4959
  );
4936
4960
  const MemoizedWysiwyg = React.memo(Wysiwyg);
4937
4961
  const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4938
- const { id } = useDoc();
4962
+ const { id, document: document2, collectionType } = useDoc();
4939
4963
  const isFormDisabled = useForm("InputRenderer", (state) => state.disabled);
4940
4964
  const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
4941
4965
  const canCreateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
4942
4966
  const canReadFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
4943
4967
  const canUpdateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
4944
4968
  const canUserAction = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
4945
- const editableFields = id ? canUpdateFields : canCreateFields;
4946
- 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;
4947
4975
  const canUserReadField = canUserAction(props.name, readableFields, props.type);
4948
4976
  const canUserEditField = canUserAction(props.name, editableFields, props.type);
4949
4977
  const fields = useStrapiApp("InputRenderer", (app) => app.fields);
@@ -4954,6 +4982,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4954
4982
  const {
4955
4983
  edit: { components }
4956
4984
  } = useDocLayout();
4985
+ const field = useField(props.name);
4957
4986
  if (!visible) {
4958
4987
  return null;
4959
4988
  }
@@ -4964,7 +4993,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4964
4993
  if (attributeHasCustomFieldProperty(props.attribute)) {
4965
4994
  const CustomInput = lazyComponentStore[props.attribute.customField];
4966
4995
  if (CustomInput) {
4967
- return /* @__PURE__ */ jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
4996
+ return /* @__PURE__ */ jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
4968
4997
  }
4969
4998
  return /* @__PURE__ */ jsx(
4970
4999
  InputRenderer$1,
@@ -5125,6 +5154,14 @@ const DynamicComponent = ({
5125
5154
  React.useEffect(() => {
5126
5155
  dragPreviewRef(getEmptyImage(), { captureDraggingState: false });
5127
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]);
5128
5165
  const composedBoxRefs = useComposedRefs(boxRef, dropRef);
5129
5166
  const accordionActions = disabled ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
5130
5167
  /* @__PURE__ */ jsx(
@@ -5190,10 +5227,9 @@ const DynamicComponent = ({
5190
5227
  ] })
5191
5228
  ] });
5192
5229
  const accordionTitle = title ? `${displayName} ${title}` : displayName;
5193
- const accordionValue = React.useId();
5194
5230
  return /* @__PURE__ */ jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
5195
5231
  /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Rectangle, { background: "neutral200" }) }),
5196
- /* @__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: [
5197
5233
  /* @__PURE__ */ jsxs(Accordion.Header, { children: [
5198
5234
  /* @__PURE__ */ jsx(
5199
5235
  Accordion.Trigger,
@@ -5204,21 +5240,39 @@ const DynamicComponent = ({
5204
5240
  ),
5205
5241
  /* @__PURE__ */ jsx(Accordion.Actions, { children: accordionActions })
5206
5242
  ] }),
5207
- /* @__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 }) => {
5208
- const fieldName = `${name2}.${index}.${field.name}`;
5209
- return /* @__PURE__ */ jsx(
5210
- Grid$1.Item,
5211
- {
5212
- col: size,
5213
- s: 12,
5214
- xs: 12,
5215
- direction: "column",
5216
- alignItems: "stretch",
5217
- children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5218
- },
5219
- fieldName
5220
- );
5221
- }) }, 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
+ )) }) }) }) })
5222
5276
  ] }) }) })
5223
5277
  ] });
5224
5278
  };
@@ -5526,4 +5580,4 @@ export {
5526
5580
  transformDocument as t,
5527
5581
  useLazyComponents as u
5528
5582
  };
5529
- //# sourceMappingURL=Field-Dv_HTFTa.mjs.map
5583
+ //# sourceMappingURL=Field-DbpDop_h.mjs.map