@strapi/content-manager 0.0.0-experimental.afa3b513b8f95459043f33fb94f4bac03af1474f → 0.0.0-experimental.b0240412a007bea5d73c29b17c8ce04802fca919

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 (202) hide show
  1. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -1
  2. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-G4EIirP8.js → ComponentConfigurationPage-BLWQy8ru.js} +5 -6
  4. package/dist/_chunks/{ComponentConfigurationPage-G4EIirP8.js.map → ComponentConfigurationPage-BLWQy8ru.js.map} +1 -1
  5. package/dist/_chunks/{ComponentConfigurationPage-CnL10QYC.mjs → ComponentConfigurationPage-CtIa3aa2.mjs} +4 -4
  6. package/dist/_chunks/{ComponentConfigurationPage-CnL10QYC.mjs.map → ComponentConfigurationPage-CtIa3aa2.mjs.map} +1 -1
  7. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
  8. package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
  9. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
  10. package/dist/_chunks/{EditConfigurationPage-I2kKh9dx.mjs → EditConfigurationPage-DsPR2DVk.mjs} +4 -4
  11. package/dist/_chunks/{EditConfigurationPage-I2kKh9dx.mjs.map → EditConfigurationPage-DsPR2DVk.mjs.map} +1 -1
  12. package/dist/_chunks/{EditConfigurationPage-B2AA1kVF.js → EditConfigurationPage-RQkymxCy.js} +5 -6
  13. package/dist/_chunks/{EditConfigurationPage-B2AA1kVF.js.map → EditConfigurationPage-RQkymxCy.js.map} +1 -1
  14. package/dist/_chunks/{EditViewPage-CHgoNwlc.js → EditViewPage-B-kExt8C.js} +50 -11
  15. package/dist/_chunks/EditViewPage-B-kExt8C.js.map +1 -0
  16. package/dist/_chunks/{EditViewPage-zFjJK0s8.mjs → EditViewPage-BPyVuPfM.mjs} +50 -10
  17. package/dist/_chunks/EditViewPage-BPyVuPfM.mjs.map +1 -0
  18. package/dist/_chunks/{Field-9DePZh-0.js → Field-DPIsQRre.js} +243 -144
  19. package/dist/_chunks/Field-DPIsQRre.js.map +1 -0
  20. package/dist/_chunks/{Field-DPAzUS1M.mjs → Field-Dltnt1km.mjs} +241 -142
  21. package/dist/_chunks/Field-Dltnt1km.mjs.map +1 -0
  22. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
  23. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
  24. package/dist/_chunks/{Form-DPm-KZ1A.js → Form-BFi4MXMT.js} +6 -7
  25. package/dist/_chunks/Form-BFi4MXMT.js.map +1 -0
  26. package/dist/_chunks/{Form-CEkENbkF.mjs → Form-C1IcWm1u.mjs} +4 -4
  27. package/dist/_chunks/Form-C1IcWm1u.mjs.map +1 -0
  28. package/dist/_chunks/{History-utls71em.mjs → History-04ChQ4pl.mjs} +71 -104
  29. package/dist/_chunks/History-04ChQ4pl.mjs.map +1 -0
  30. package/dist/_chunks/{History-DXSbTWez.js → History-wjcK4L0C.js} +70 -104
  31. package/dist/_chunks/History-wjcK4L0C.js.map +1 -0
  32. package/dist/_chunks/{ListConfigurationPage-CuMXWWqb.mjs → ListConfigurationPage-BYqPYLSU.mjs} +7 -6
  33. package/dist/_chunks/ListConfigurationPage-BYqPYLSU.mjs.map +1 -0
  34. package/dist/_chunks/{ListConfigurationPage-D5C7ACZ_.js → ListConfigurationPage-CRbxIC3J.js} +7 -7
  35. package/dist/_chunks/ListConfigurationPage-CRbxIC3J.js.map +1 -0
  36. package/dist/_chunks/{ListViewPage-DfuwH1tt.js → ListViewPage-D5NY9183.js} +64 -42
  37. package/dist/_chunks/ListViewPage-D5NY9183.js.map +1 -0
  38. package/dist/_chunks/{ListViewPage-CdKd-PS_.mjs → ListViewPage-FU2LBuhl.mjs} +63 -40
  39. package/dist/_chunks/ListViewPage-FU2LBuhl.mjs.map +1 -0
  40. package/dist/_chunks/{NoContentTypePage-BIxlkWWi.js → NoContentTypePage-BgQVE_Qb.js} +2 -2
  41. package/dist/_chunks/{NoContentTypePage-BIxlkWWi.js.map → NoContentTypePage-BgQVE_Qb.js.map} +1 -1
  42. package/dist/_chunks/{NoContentTypePage-DkToTT7u.mjs → NoContentTypePage-DCKUkwb8.mjs} +2 -2
  43. package/dist/_chunks/{NoContentTypePage-DkToTT7u.mjs.map → NoContentTypePage-DCKUkwb8.mjs.map} +1 -1
  44. package/dist/_chunks/{NoPermissionsPage-Bu4GWYb-.js → NoPermissionsPage-C5jwn70o.js} +2 -2
  45. package/dist/_chunks/{NoPermissionsPage-Bu4GWYb-.js.map → NoPermissionsPage-C5jwn70o.js.map} +1 -1
  46. package/dist/_chunks/{NoPermissionsPage-DlWi4BAH.mjs → NoPermissionsPage-jqve7C8l.mjs} +2 -2
  47. package/dist/_chunks/{NoPermissionsPage-DlWi4BAH.mjs.map → NoPermissionsPage-jqve7C8l.mjs.map} +1 -1
  48. package/dist/_chunks/Preview-BMYN548c.mjs +294 -0
  49. package/dist/_chunks/Preview-BMYN548c.mjs.map +1 -0
  50. package/dist/_chunks/Preview-DaOihysv.js +312 -0
  51. package/dist/_chunks/Preview-DaOihysv.js.map +1 -0
  52. package/dist/_chunks/{Relations-CFjTESWQ.js → Relations-CTGM7Hv5.js} +75 -42
  53. package/dist/_chunks/Relations-CTGM7Hv5.js.map +1 -0
  54. package/dist/_chunks/{Relations-QP5yn9_z.mjs → Relations-gscPkxjF.mjs} +75 -41
  55. package/dist/_chunks/Relations-gscPkxjF.mjs.map +1 -0
  56. package/dist/_chunks/{en-BVzUkPxZ.js → en-BzQmavmK.js} +28 -11
  57. package/dist/_chunks/{en-BVzUkPxZ.js.map → en-BzQmavmK.js.map} +1 -1
  58. package/dist/_chunks/{en-CPTj6CjC.mjs → en-CSxLmrh1.mjs} +28 -11
  59. package/dist/_chunks/{en-CPTj6CjC.mjs.map → en-CSxLmrh1.mjs.map} +1 -1
  60. package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
  61. package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
  62. package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
  63. package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
  64. package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
  65. package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
  66. package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
  67. package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
  68. package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
  69. package/dist/_chunks/{index-DXiHxy70.js → index-Ca7YWlAA.js} +981 -722
  70. package/dist/_chunks/index-Ca7YWlAA.js.map +1 -0
  71. package/dist/_chunks/{index-BHfS6_D5.mjs → index-DqasUQ6Q.mjs} +983 -724
  72. package/dist/_chunks/index-DqasUQ6Q.mjs.map +1 -0
  73. package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
  74. package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
  75. package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
  76. package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
  77. package/dist/_chunks/{layout-bE-WUnQ0.js → layout-BW80JSCd.js} +5 -6
  78. package/dist/_chunks/{layout-bE-WUnQ0.js.map → layout-BW80JSCd.js.map} +1 -1
  79. package/dist/_chunks/{layout-DX_52HSH.mjs → layout-W3clJSCy.mjs} +4 -4
  80. package/dist/_chunks/{layout-DX_52HSH.mjs.map → layout-W3clJSCy.mjs.map} +1 -1
  81. package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
  82. package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
  83. package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
  84. package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
  85. package/dist/_chunks/{relations-SCVAL_aJ.mjs → relations-BlDkoeWh.mjs} +6 -7
  86. package/dist/_chunks/relations-BlDkoeWh.mjs.map +1 -0
  87. package/dist/_chunks/{relations-D706vblp.js → relations-C9Usz9k5.js} +6 -7
  88. package/dist/_chunks/relations-C9Usz9k5.js.map +1 -0
  89. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -1
  90. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -1
  91. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
  92. package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
  93. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
  94. package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
  95. package/dist/admin/index.js +3 -1
  96. package/dist/admin/index.js.map +1 -1
  97. package/dist/admin/index.mjs +5 -3
  98. package/dist/admin/src/content-manager.d.ts +3 -2
  99. package/dist/admin/src/exports.d.ts +2 -1
  100. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  101. package/dist/admin/src/hooks/useDocument.d.ts +32 -1
  102. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  103. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
  104. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +3 -3
  105. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
  106. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
  107. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  108. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  109. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  110. package/dist/admin/src/pages/EditView/components/Header.d.ts +1 -0
  111. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
  112. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
  113. package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
  114. package/dist/admin/src/preview/index.d.ts +4 -0
  115. package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
  116. package/dist/admin/src/preview/routes.d.ts +3 -0
  117. package/dist/admin/src/preview/services/preview.d.ts +3 -0
  118. package/dist/admin/src/router.d.ts +1 -1
  119. package/dist/admin/src/services/api.d.ts +1 -1
  120. package/dist/admin/src/services/components.d.ts +2 -2
  121. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  122. package/dist/admin/src/services/documents.d.ts +16 -19
  123. package/dist/admin/src/services/init.d.ts +1 -1
  124. package/dist/admin/src/services/relations.d.ts +2 -2
  125. package/dist/admin/src/services/uid.d.ts +3 -3
  126. package/dist/server/index.js +587 -331
  127. package/dist/server/index.js.map +1 -1
  128. package/dist/server/index.mjs +588 -331
  129. package/dist/server/index.mjs.map +1 -1
  130. package/dist/server/src/bootstrap.d.ts.map +1 -1
  131. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  132. package/dist/server/src/controllers/index.d.ts.map +1 -1
  133. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  134. package/dist/server/src/controllers/utils/metadata.d.ts +16 -1
  135. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  136. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  137. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  138. package/dist/server/src/history/services/history.d.ts +3 -3
  139. package/dist/server/src/history/services/history.d.ts.map +1 -1
  140. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  141. package/dist/server/src/history/services/utils.d.ts +6 -11
  142. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  143. package/dist/server/src/index.d.ts +7 -6
  144. package/dist/server/src/index.d.ts.map +1 -1
  145. package/dist/server/src/preview/controllers/index.d.ts +2 -0
  146. package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
  147. package/dist/server/src/preview/controllers/preview.d.ts +13 -0
  148. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
  149. package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
  150. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
  151. package/dist/server/src/preview/index.d.ts +4 -0
  152. package/dist/server/src/preview/index.d.ts.map +1 -0
  153. package/dist/server/src/preview/routes/index.d.ts +8 -0
  154. package/dist/server/src/preview/routes/index.d.ts.map +1 -0
  155. package/dist/server/src/preview/routes/preview.d.ts +4 -0
  156. package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
  157. package/dist/server/src/preview/services/index.d.ts +16 -0
  158. package/dist/server/src/preview/services/index.d.ts.map +1 -0
  159. package/dist/server/src/preview/services/preview-config.d.ts +32 -0
  160. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
  161. package/dist/server/src/preview/services/preview.d.ts +12 -0
  162. package/dist/server/src/preview/services/preview.d.ts.map +1 -0
  163. package/dist/server/src/preview/utils.d.ts +19 -0
  164. package/dist/server/src/preview/utils.d.ts.map +1 -0
  165. package/dist/server/src/register.d.ts.map +1 -1
  166. package/dist/server/src/routes/index.d.ts.map +1 -1
  167. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  168. package/dist/server/src/services/document-metadata.d.ts +12 -10
  169. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  170. package/dist/server/src/services/index.d.ts +7 -6
  171. package/dist/server/src/services/index.d.ts.map +1 -1
  172. package/dist/server/src/services/utils/populate.d.ts +2 -2
  173. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  174. package/dist/server/src/utils/index.d.ts +2 -0
  175. package/dist/server/src/utils/index.d.ts.map +1 -1
  176. package/dist/shared/contracts/index.d.ts +1 -0
  177. package/dist/shared/contracts/index.d.ts.map +1 -1
  178. package/dist/shared/contracts/preview.d.ts +27 -0
  179. package/dist/shared/contracts/preview.d.ts.map +1 -0
  180. package/dist/shared/index.js +4 -0
  181. package/dist/shared/index.js.map +1 -1
  182. package/dist/shared/index.mjs +4 -0
  183. package/dist/shared/index.mjs.map +1 -1
  184. package/package.json +14 -13
  185. package/dist/_chunks/EditViewPage-CHgoNwlc.js.map +0 -1
  186. package/dist/_chunks/EditViewPage-zFjJK0s8.mjs.map +0 -1
  187. package/dist/_chunks/Field-9DePZh-0.js.map +0 -1
  188. package/dist/_chunks/Field-DPAzUS1M.mjs.map +0 -1
  189. package/dist/_chunks/Form-CEkENbkF.mjs.map +0 -1
  190. package/dist/_chunks/Form-DPm-KZ1A.js.map +0 -1
  191. package/dist/_chunks/History-DXSbTWez.js.map +0 -1
  192. package/dist/_chunks/History-utls71em.mjs.map +0 -1
  193. package/dist/_chunks/ListConfigurationPage-CuMXWWqb.mjs.map +0 -1
  194. package/dist/_chunks/ListConfigurationPage-D5C7ACZ_.js.map +0 -1
  195. package/dist/_chunks/ListViewPage-CdKd-PS_.mjs.map +0 -1
  196. package/dist/_chunks/ListViewPage-DfuwH1tt.js.map +0 -1
  197. package/dist/_chunks/Relations-CFjTESWQ.js.map +0 -1
  198. package/dist/_chunks/Relations-QP5yn9_z.mjs.map +0 -1
  199. package/dist/_chunks/index-BHfS6_D5.mjs.map +0 -1
  200. package/dist/_chunks/index-DXiHxy70.js.map +0 -1
  201. package/dist/_chunks/relations-D706vblp.js.map +0 -1
  202. package/dist/_chunks/relations-SCVAL_aJ.mjs.map +0 -1
@@ -5,18 +5,69 @@ 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-BHfS6_D5.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-DqasUQ6Q.mjs";
9
9
  import { generateNKeysBetween } from "fractional-indexing";
10
- import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-QP5yn9_z.mjs";
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";
10
+ import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-gscPkxjF.mjs";
11
+ import { CodeBlock as CodeBlock$1, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Image as Image$1, NumberList, BulletList, Paragraph, Quotes, Link as Link$1, Drag, Collapse, Bold, Italic, Underline, StrikeThrough, Code, 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
- import { a as DIRECTIONS, u as useDragAndDrop, I as ItemTypes } from "./useDragAndDrop-DdHgKsqq.mjs";
16
- import { g as getIn } from "./objects-mKMAmfec.mjs";
15
+ import { a as DIRECTIONS, u as useDragAndDrop, I as ItemTypes } from "./useDragAndDrop-DJ6jqvZN.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 * as Prism from "prismjs";
21
+ import "prismjs/themes/prism-solarizedlight.css";
22
+ import "prismjs/components/prism-asmatmel";
23
+ import "prismjs/components/prism-bash";
24
+ import "prismjs/components/prism-basic";
25
+ import "prismjs/components/prism-c";
26
+ import "prismjs/components/prism-clojure";
27
+ import "prismjs/components/prism-cobol";
28
+ import "prismjs/components/prism-cpp";
29
+ import "prismjs/components/prism-csharp";
30
+ import "prismjs/components/prism-dart";
31
+ import "prismjs/components/prism-docker";
32
+ import "prismjs/components/prism-elixir";
33
+ import "prismjs/components/prism-erlang";
34
+ import "prismjs/components/prism-fortran";
35
+ import "prismjs/components/prism-fsharp";
36
+ import "prismjs/components/prism-go";
37
+ import "prismjs/components/prism-graphql";
38
+ import "prismjs/components/prism-groovy";
39
+ import "prismjs/components/prism-haskell";
40
+ import "prismjs/components/prism-haxe";
41
+ import "prismjs/components/prism-ini";
42
+ import "prismjs/components/prism-java";
43
+ import "prismjs/components/prism-javascript";
44
+ import "prismjs/components/prism-jsx";
45
+ import "prismjs/components/prism-json";
46
+ import "prismjs/components/prism-julia";
47
+ import "prismjs/components/prism-kotlin";
48
+ import "prismjs/components/prism-latex";
49
+ import "prismjs/components/prism-lua";
50
+ import "prismjs/components/prism-markdown";
51
+ import "prismjs/components/prism-matlab";
52
+ import "prismjs/components/prism-makefile";
53
+ import "prismjs/components/prism-objectivec";
54
+ import "prismjs/components/prism-perl";
55
+ import "prismjs/components/prism-php";
56
+ import "prismjs/components/prism-powershell";
57
+ import "prismjs/components/prism-python";
58
+ import "prismjs/components/prism-r";
59
+ import "prismjs/components/prism-ruby";
60
+ import "prismjs/components/prism-rust";
61
+ import "prismjs/components/prism-sas";
62
+ import "prismjs/components/prism-scala";
63
+ import "prismjs/components/prism-scheme";
64
+ import "prismjs/components/prism-sql";
65
+ import "prismjs/components/prism-stata";
66
+ import "prismjs/components/prism-swift";
67
+ import "prismjs/components/prism-typescript";
68
+ import "prismjs/components/prism-tsx";
69
+ import "prismjs/components/prism-vbnet";
70
+ import "prismjs/components/prism-yaml";
20
71
  import { p as prefixFileUrlWithBackendUrl, u as usePrev, a as useDebounce } from "./useDebounce-DmuSJIF3.mjs";
21
72
  import * as Toolbar from "@radix-ui/react-toolbar";
22
73
  import { useLocation, useMatch } from "react-router-dom";
@@ -163,7 +214,8 @@ const useLazyComponents = (componentUids = []) => {
163
214
  const codeLanguages = [
164
215
  {
165
216
  value: "asm",
166
- label: "Assembly"
217
+ label: "Assembly",
218
+ decorate: "asmatmel"
167
219
  },
168
220
  {
169
221
  value: "bash",
@@ -199,7 +251,8 @@ const codeLanguages = [
199
251
  },
200
252
  {
201
253
  value: "dockerfile",
202
- label: "Dockerfile"
254
+ label: "Dockerfile",
255
+ decorate: "docker"
203
256
  },
204
257
  {
205
258
  value: "elixir",
@@ -355,7 +408,8 @@ const codeLanguages = [
355
408
  },
356
409
  {
357
410
  value: "typescript",
358
- label: "TypeScript"
411
+ label: "TypeScript",
412
+ decorate: "ts"
359
413
  },
360
414
  {
361
415
  value: "tsx",
@@ -371,7 +425,8 @@ const codeLanguages = [
371
425
  },
372
426
  {
373
427
  value: "yaml",
374
- label: "YAML"
428
+ label: "YAML",
429
+ decorate: "yml"
375
430
  }
376
431
  ];
377
432
  const baseHandleConvert = (editor, attributesToSet) => {
@@ -437,6 +492,29 @@ const pressEnterTwiceToExit = (editor) => {
437
492
  });
438
493
  }
439
494
  };
495
+ const decorateCode = ([node, path]) => {
496
+ const ranges = [];
497
+ if (!Element.isElement(node) || node.type !== "code") return ranges;
498
+ const text = Node.string(node);
499
+ const language = codeLanguages.find((lang) => lang.value === node.language);
500
+ const decorateKey = language?.decorate ?? language?.value;
501
+ const selectedLanguage = Prism.languages[decorateKey || "plaintext"];
502
+ const tokens = Prism.tokenize(text, selectedLanguage);
503
+ let start = 0;
504
+ for (const token of tokens) {
505
+ const length = token.length;
506
+ const end = start + length;
507
+ if (typeof token !== "string") {
508
+ ranges.push({
509
+ anchor: { path, offset: start },
510
+ focus: { path, offset: end },
511
+ className: `token ${token.type}`
512
+ });
513
+ }
514
+ start = end;
515
+ }
516
+ return ranges;
517
+ };
440
518
  const CodeBlock = styled.pre`
441
519
  border-radius: ${({ theme }) => theme.borderRadius};
442
520
  background-color: ${({ theme }) => theme.colors.neutral100};
@@ -508,7 +586,7 @@ const CodeEditor = (props) => {
508
586
  const codeBlocks = {
509
587
  code: {
510
588
  renderElement: (props) => /* @__PURE__ */ jsx(CodeEditor, { ...props }),
511
- icon: Code,
589
+ icon: CodeBlock$1,
512
590
  label: {
513
591
  id: "components.Blocks.blocks.code",
514
592
  defaultMessage: "Code block"
@@ -521,8 +599,7 @@ const codeBlocks = {
521
599
  handleEnterKey(editor) {
522
600
  pressEnterTwiceToExit(editor);
523
601
  },
524
- snippets: ["```"],
525
- dragHandleTopMargin: "10px"
602
+ snippets: ["```"]
526
603
  }
527
604
  };
528
605
  const H1 = styled(Typography).attrs({ tag: "h1" })`
@@ -697,8 +774,7 @@ const ImageDialog = () => {
697
774
  const [isOpen, setIsOpen] = React.useState(true);
698
775
  const { editor } = useBlocksEditorContext("ImageDialog");
699
776
  const components = useStrapiApp("ImageDialog", (state) => state.components);
700
- if (!components || !isOpen)
701
- return null;
777
+ if (!components || !isOpen) return null;
702
778
  const MediaLibraryDialog = components["media-library"];
703
779
  const insertImages = (images) => {
704
780
  Transforms.unwrapNodes(editor, {
@@ -707,14 +783,12 @@ const ImageDialog = () => {
707
783
  });
708
784
  const nodeEntryBeingReplaced = Editor$1.above(editor, {
709
785
  match(node) {
710
- if (Editor$1.isEditor(node))
711
- return false;
786
+ if (Editor$1.isEditor(node)) return false;
712
787
  const isInlineNode = ["text", "link"].includes(node.type);
713
788
  return !isInlineNode;
714
789
  }
715
790
  });
716
- if (!nodeEntryBeingReplaced)
717
- return;
791
+ if (!nodeEntryBeingReplaced) return;
718
792
  const [, pathToInsert] = nodeEntryBeingReplaced;
719
793
  Transforms.removeNodes(editor);
720
794
  const nodesToInsert = images.map((image) => {
@@ -892,8 +966,7 @@ const LinkContent = React.forwardRef(
892
966
  ReactEditor.focus(editor);
893
967
  };
894
968
  React.useEffect(() => {
895
- if (popoverOpen)
896
- linkInputRef.current?.focus();
969
+ if (popoverOpen) linkInputRef.current?.focus();
897
970
  }, [popoverOpen]);
898
971
  const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
899
972
  return /* @__PURE__ */ jsxs(Popover.Root, { open: popoverOpen, children: [
@@ -963,11 +1036,11 @@ const LinkContent = React.forwardRef(
963
1036
  ),
964
1037
  /* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
965
1038
  /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
966
- id: "components.Blocks.popover.cancel",
1039
+ id: "global.cancel",
967
1040
  defaultMessage: "Cancel"
968
1041
  }) }),
969
1042
  /* @__PURE__ */ jsx(Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
970
- id: "components.Blocks.popover.save",
1043
+ id: "global.save",
971
1044
  defaultMessage: "Save"
972
1045
  }) })
973
1046
  ] })
@@ -1048,8 +1121,7 @@ const isText$1 = (node) => {
1048
1121
  return Node.isNode(node) && !Editor$1.isEditor(node) && node.type === "text";
1049
1122
  };
1050
1123
  const handleBackspaceKeyOnList = (editor, event) => {
1051
- if (!editor.selection)
1052
- return;
1124
+ if (!editor.selection) return;
1053
1125
  const [currentListItem, currentListItemPath] = Editor$1.parent(editor, editor.selection.anchor);
1054
1126
  const [currentList, currentListPath] = Editor$1.parent(editor, currentListItemPath);
1055
1127
  const isListEmpty = currentList.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
@@ -1158,8 +1230,7 @@ const handleEnterKeyOnList = (editor) => {
1158
1230
  };
1159
1231
  const handleConvertToList = (editor, format) => {
1160
1232
  const convertedPath = baseHandleConvert(editor, { type: "list-item" });
1161
- if (!convertedPath)
1162
- return;
1233
+ if (!convertedPath) return;
1163
1234
  Transforms.wrapNodes(editor, { type: "list", format, children: [] }, { at: convertedPath });
1164
1235
  };
1165
1236
  const handleTabOnList = (editor) => {
@@ -1171,8 +1242,7 @@ const handleTabOnList = (editor) => {
1171
1242
  }
1172
1243
  const [currentListItem, currentListItemPath] = currentListItemEntry;
1173
1244
  const [currentList] = Editor$1.parent(editor, currentListItemPath);
1174
- if (currentListItem === currentList.children[0])
1175
- return;
1245
+ if (currentListItem === currentList.children[0]) return;
1176
1246
  const currentListItemIndex = currentList.children.findIndex((item) => item === currentListItem);
1177
1247
  const previousNode = currentList.children[currentListItemIndex - 1];
1178
1248
  if (previousNode.type === "list") {
@@ -1308,13 +1378,13 @@ const quoteBlocks = {
1308
1378
  handleEnterKey(editor) {
1309
1379
  pressEnterTwiceToExit(editor);
1310
1380
  },
1311
- snippets: [">"],
1312
- dragHandleTopMargin: "6px"
1381
+ snippets: [">"]
1313
1382
  }
1314
1383
  };
1315
1384
  const ToolbarWrapper = styled(Flex)`
1316
1385
  &[aria-disabled='true'] {
1317
1386
  cursor: not-allowed;
1387
+ background: ${({ theme }) => theme.colors.neutral150};
1318
1388
  }
1319
1389
  `;
1320
1390
  const Separator = styled(Toolbar.Separator)`
@@ -1325,7 +1395,7 @@ const Separator = styled(Toolbar.Separator)`
1325
1395
  const FlexButton = styled(Flex)`
1326
1396
  // Inherit the not-allowed cursor from ToolbarWrapper when disabled
1327
1397
  &[aria-disabled] {
1328
- cursor: inherit;
1398
+ cursor: not-allowed;
1329
1399
  }
1330
1400
 
1331
1401
  &[aria-disabled='false'] {
@@ -1539,8 +1609,7 @@ const isListNode = (node) => {
1539
1609
  const ListButton = ({ block, format }) => {
1540
1610
  const { editor, disabled, blocks } = useBlocksEditorContext("ListButton");
1541
1611
  const isListActive = () => {
1542
- if (!editor.selection)
1543
- return false;
1612
+ if (!editor.selection) return false;
1544
1613
  const currentListEntry = Editor$1.above(editor, {
1545
1614
  match: (node) => !Editor$1.isEditor(node) && node.type === "list",
1546
1615
  at: editor.selection.anchor
@@ -1614,8 +1683,7 @@ const LinkButton = ({ disabled }) => {
1614
1683
  const { editor } = useBlocksEditorContext("LinkButton");
1615
1684
  const isLinkActive = () => {
1616
1685
  const { selection } = editor;
1617
- if (!selection)
1618
- return false;
1686
+ if (!selection) return false;
1619
1687
  const [match] = Array.from(
1620
1688
  Editor$1.nodes(editor, {
1621
1689
  at: Editor$1.unhangRange(editor, selection),
@@ -1679,7 +1747,7 @@ const BlocksToolbar = () => {
1679
1747
  return false;
1680
1748
  };
1681
1749
  const isButtonDisabled = checkButtonDisabled();
1682
- return /* @__PURE__ */ jsx(Toolbar.Root, { "aria-disabled": disabled, asChild: true, children: /* @__PURE__ */ jsxs(ToolbarWrapper, { gap: 2, padding: 2, children: [
1750
+ return /* @__PURE__ */ jsx(Toolbar.Root, { "aria-disabled": disabled, asChild: true, children: /* @__PURE__ */ jsxs(ToolbarWrapper, { gap: 2, padding: 2, width: "100%", children: [
1683
1751
  /* @__PURE__ */ jsx(BlocksDropdown, {}),
1684
1752
  /* @__PURE__ */ jsx(Separator, {}),
1685
1753
  /* @__PURE__ */ jsx(Toolbar.ToggleGroup, { type: "multiple", asChild: true, children: /* @__PURE__ */ jsxs(Flex, { gap: 1, children: [
@@ -1753,30 +1821,32 @@ const DragIconButton = styled(IconButton)`
1753
1821
  display: flex;
1754
1822
  align-items: center;
1755
1823
  justify-content: center;
1824
+ border: none;
1756
1825
  border-radius: ${({ theme }) => theme.borderRadius};
1757
- width: ${({ theme }) => theme.spaces[4]};
1758
- height: ${({ theme }) => theme.spaces[6]};
1826
+ padding-left: ${({ theme }) => theme.spaces[0]};
1827
+ padding-right: ${({ theme }) => theme.spaces[0]};
1828
+ padding-top: ${({ theme }) => theme.spaces[1]};
1829
+ padding-bottom: ${({ theme }) => theme.spaces[1]};
1759
1830
  visibility: hidden;
1760
1831
  cursor: grab;
1761
1832
  opacity: inherit;
1762
1833
  margin-top: ${(props) => props.$dragHandleTopMargin ?? 0};
1763
1834
 
1764
1835
  &:hover {
1765
- background: ${({ theme }) => theme.colors.neutral200};
1836
+ background: ${({ theme }) => theme.colors.neutral100};
1766
1837
  }
1767
1838
  &:active {
1768
1839
  cursor: grabbing;
1840
+ background: ${({ theme }) => theme.colors.neutral150};
1769
1841
  }
1770
1842
  &[aria-disabled='true'] {
1771
- cursor: not-allowed;
1772
- background: transparent;
1843
+ visibility: hidden;
1773
1844
  }
1774
1845
  svg {
1775
- height: auto;
1776
1846
  min-width: ${({ theme }) => theme.spaces[3]};
1777
1847
 
1778
1848
  path {
1779
- fill: ${({ theme }) => theme.colors.neutral700};
1849
+ fill: ${({ theme }) => theme.colors.neutral500};
1780
1850
  }
1781
1851
  }
1782
1852
  `;
@@ -1821,8 +1891,7 @@ const DragAndDropElement = ({
1821
1891
  displayedValue: children
1822
1892
  },
1823
1893
  onDropItem(currentIndex, newIndex) {
1824
- if (newIndex)
1825
- handleMoveBlock(newIndex, currentIndex);
1894
+ if (newIndex) handleMoveBlock(newIndex, currentIndex);
1826
1895
  }
1827
1896
  });
1828
1897
  const composedBoxRefs = useComposedRefs(blockRef, dropRef);
@@ -1928,7 +1997,7 @@ const baseRenderLeaf = (props, modifiers2) => {
1928
1997
  }
1929
1998
  return currentChildren;
1930
1999
  }, props.children);
1931
- return /* @__PURE__ */ jsx("span", { ...props.attributes, children: wrappedChildren });
2000
+ return /* @__PURE__ */ jsx("span", { ...props.attributes, className: props.leaf.className, children: wrappedChildren });
1932
2001
  };
1933
2002
  const baseRenderElement = ({
1934
2003
  props,
@@ -1966,8 +2035,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
1966
2035
  [modifiers2]
1967
2036
  );
1968
2037
  const handleMoveBlocks = (editor2, event) => {
1969
- if (!editor2.selection)
1970
- return;
2038
+ if (!editor2.selection) return;
1971
2039
  const start = Range.start(editor2.selection);
1972
2040
  const currentIndex = [start.path[0]];
1973
2041
  let newIndexPosition = 0;
@@ -2104,8 +2172,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
2104
2172
  }
2105
2173
  };
2106
2174
  const handleScrollSelectionIntoView = () => {
2107
- if (!editor.selection)
2108
- return;
2175
+ if (!editor.selection) return;
2109
2176
  const domRange = ReactEditor.toDOMRange(editor, editor.selection);
2110
2177
  const domRect = domRange.getBoundingClientRect();
2111
2178
  const blocksInput = blocksRef.current;
@@ -2132,7 +2199,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
2132
2199
  background: "neutral0",
2133
2200
  color: "neutral800",
2134
2201
  lineHeight: 6,
2135
- paddingRight: 4,
2202
+ paddingRight: 7,
2136
2203
  paddingTop: 6,
2137
2204
  paddingBottom: 3,
2138
2205
  children: [
@@ -2143,6 +2210,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
2143
2210
  readOnly: disabled,
2144
2211
  placeholder,
2145
2212
  isExpandedMode,
2213
+ decorate: decorateCode,
2146
2214
  renderElement,
2147
2215
  renderLeaf,
2148
2216
  onKeyDown: handleKeyDown,
@@ -2299,8 +2367,7 @@ const InlineCode = styled.code`
2299
2367
  `;
2300
2368
  const baseCheckIsActive = (editor, name2) => {
2301
2369
  const marks = Editor$1.marks(editor);
2302
- if (!marks)
2303
- return false;
2370
+ if (!marks) return false;
2304
2371
  return Boolean(marks[name2]);
2305
2372
  };
2306
2373
  const baseHandleToggle = (editor, name2) => {
@@ -2466,6 +2533,7 @@ const ExpandIconButton = styled(IconButton)`
2466
2533
  position: absolute;
2467
2534
  bottom: 1.2rem;
2468
2535
  right: 1.2rem;
2536
+ box-shadow: ${({ theme }) => theme.shadows.filterShadow};
2469
2537
  `;
2470
2538
  function useResetKey(value) {
2471
2539
  const slateUpdatesCount = React.useRef(0);
@@ -2624,7 +2692,7 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
2624
2692
  Box,
2625
2693
  {
2626
2694
  tag: "button",
2627
- background: "neutral100",
2695
+ background: disabled ? "neutral150" : "neutral100",
2628
2696
  borderColor: field.error ? "danger600" : "neutral200",
2629
2697
  hasRadius: true,
2630
2698
  disabled,
@@ -2632,32 +2700,32 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
2632
2700
  paddingTop: 9,
2633
2701
  paddingBottom: 9,
2634
2702
  type: "button",
2703
+ style: { cursor: disabled ? "not-allowed" : "pointer" },
2635
2704
  children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
2636
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
2637
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2638
- id: getTranslation("components.empty-repeatable"),
2639
- defaultMessage: "No entry yet. Click on the button below to add one."
2640
- }) }) })
2705
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", color: disabled ? "neutral500" : "primary600", children: /* @__PURE__ */ jsx(PlusCircle, { width: "3.2rem", height: "3.2rem" }) }),
2706
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(
2707
+ Typography,
2708
+ {
2709
+ textColor: disabled ? "neutral600" : "primary600",
2710
+ variant: "pi",
2711
+ fontWeight: "bold",
2712
+ children: formatMessage({
2713
+ id: getTranslation("components.empty-repeatable"),
2714
+ defaultMessage: "No entry yet. Click to add one."
2715
+ })
2716
+ }
2717
+ ) })
2641
2718
  ] })
2642
2719
  }
2643
2720
  ) });
2644
2721
  };
2645
- const CircleIcon = styled(PlusCircle)`
2646
- width: 2.4rem;
2647
- height: 2.4rem;
2648
- > circle {
2649
- fill: ${({ theme }) => theme.colors.primary200};
2650
- }
2651
- > path {
2652
- fill: ${({ theme }) => theme.colors.primary600};
2653
- }
2654
- `;
2655
2722
  const NonRepeatableComponent = ({
2656
2723
  attribute,
2657
2724
  name: name2,
2658
2725
  children,
2659
2726
  layout
2660
2727
  }) => {
2728
+ const { formatMessage } = useIntl();
2661
2729
  const { value } = useField(name2);
2662
2730
  const level = useComponent("NonRepeatableComponent", (state) => state.level);
2663
2731
  const isNested = level > 0;
@@ -2674,6 +2742,10 @@ const NonRepeatableComponent = ({
2674
2742
  children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
2675
2743
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2676
2744
  const completeFieldName = `${name2}.${field.name}`;
2745
+ const translatedLabel = formatMessage({
2746
+ id: `content-manager.components.${attribute.component}.${field.name}`,
2747
+ defaultMessage: field.label
2748
+ });
2677
2749
  return /* @__PURE__ */ jsx(
2678
2750
  Grid$1.Item,
2679
2751
  {
@@ -2682,7 +2754,7 @@ const NonRepeatableComponent = ({
2682
2754
  xs: 12,
2683
2755
  direction: "column",
2684
2756
  alignItems: "stretch",
2685
- children: children({ ...field, name: completeFieldName })
2757
+ children: children({ ...field, label: translatedLabel, name: completeFieldName })
2686
2758
  },
2687
2759
  completeFieldName
2688
2760
  );
@@ -2704,13 +2776,34 @@ const RepeatableComponent = ({
2704
2776
  const { search: searchString } = useLocation();
2705
2777
  const search = React.useMemo(() => new URLSearchParams(searchString), [searchString]);
2706
2778
  const { components } = useDoc();
2707
- const { value = [], error } = useField(name2);
2779
+ const {
2780
+ value = [],
2781
+ error,
2782
+ rawError
2783
+ } = useField(name2);
2708
2784
  const addFieldRow = useForm("RepeatableComponent", (state) => state.addFieldRow);
2709
2785
  const moveFieldRow = useForm("RepeatableComponent", (state) => state.moveFieldRow);
2710
2786
  const removeFieldRow = useForm("RepeatableComponent", (state) => state.removeFieldRow);
2711
2787
  const { max = Infinity } = attribute;
2712
2788
  const [collapseToOpen, setCollapseToOpen] = React.useState("");
2713
2789
  const [liveText, setLiveText] = React.useState("");
2790
+ React.useEffect(() => {
2791
+ const hasNestedErrors = rawError && Array.isArray(rawError) && rawError.length > 0;
2792
+ const hasNestedValue = value && Array.isArray(value) && value.length > 0;
2793
+ if (hasNestedErrors && hasNestedValue) {
2794
+ const errorOpenItems = rawError.map((_, idx) => {
2795
+ return value[idx] ? value[idx].__temp_key__ : null;
2796
+ }).filter((value2) => !!value2);
2797
+ if (errorOpenItems && errorOpenItems.length > 0) {
2798
+ setCollapseToOpen((collapseToOpen2) => {
2799
+ if (!errorOpenItems.includes(collapseToOpen2)) {
2800
+ return errorOpenItems[0];
2801
+ }
2802
+ return collapseToOpen2;
2803
+ });
2804
+ }
2805
+ }
2806
+ }, [rawError, value]);
2714
2807
  const componentTmpKeyWithFocussedField = React.useMemo(() => {
2715
2808
  if (search.has("field")) {
2716
2809
  const fieldParam = search.get("field");
@@ -2863,6 +2956,10 @@ const RepeatableComponent = ({
2863
2956
  children: layout.map((row, index2) => {
2864
2957
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2865
2958
  const completeFieldName = `${nameWithIndex}.${field.name}`;
2959
+ const translatedLabel = formatMessage({
2960
+ id: `content-manager.components.${attribute.component}.${field.name}`,
2961
+ defaultMessage: field.label
2962
+ });
2866
2963
  return /* @__PURE__ */ jsx(
2867
2964
  Grid$1.Item,
2868
2965
  {
@@ -2871,7 +2968,11 @@ const RepeatableComponent = ({
2871
2968
  xs: 12,
2872
2969
  direction: "column",
2873
2970
  alignItems: "stretch",
2874
- children: children({ ...field, name: completeFieldName })
2971
+ children: children({
2972
+ ...field,
2973
+ label: translatedLabel,
2974
+ name: completeFieldName
2975
+ })
2875
2976
  },
2876
2977
  completeFieldName
2877
2978
  );
@@ -3086,11 +3187,11 @@ const AddComponentButton = ({
3086
3187
  children: /* @__PURE__ */ jsxs(Flex, { tag: "span", gap: 2, children: [
3087
3188
  /* @__PURE__ */ jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
3088
3189
  /* @__PURE__ */ jsx(
3089
- AddComponentTitle,
3190
+ Typography,
3090
3191
  {
3091
3192
  variant: "pi",
3092
3193
  fontWeight: "bold",
3093
- textColor: hasError && !isOpen ? "danger600" : "neutral500",
3194
+ textColor: hasError && !isOpen ? "danger600" : "neutral600",
3094
3195
  children
3095
3196
  }
3096
3197
  )
@@ -3107,43 +3208,14 @@ const StyledAddIcon = styled(PlusCircle)`
3107
3208
  fill: ${({ theme, $hasError }) => $hasError ? theme.colors.danger200 : theme.colors.neutral150};
3108
3209
  }
3109
3210
  > path {
3110
- fill: ${({ theme, $hasError }) => $hasError ? theme.colors.danger600 : theme.colors.neutral600};
3211
+ fill: ${({ theme, $hasError }) => $hasError ? theme.colors.danger600 : theme.colors.neutral500};
3111
3212
  }
3112
3213
  `;
3113
- const AddComponentTitle = styled(Typography)``;
3114
3214
  const StyledButton = styled(Button)`
3215
+ padding-left: ${({ theme }) => theme.spaces[3]};
3115
3216
  border-radius: 26px;
3116
- border-color: ${({ theme }) => theme.colors.neutral150};
3117
3217
  box-shadow: ${({ theme }) => theme.shadows.filterShadow};
3118
3218
  height: 5rem;
3119
-
3120
- &:hover {
3121
- ${AddComponentTitle} {
3122
- color: ${({ theme }) => theme.colors.primary600};
3123
- }
3124
-
3125
- ${StyledAddIcon} {
3126
- > circle {
3127
- fill: ${({ theme }) => theme.colors.primary600};
3128
- }
3129
- > path {
3130
- fill: ${({ theme }) => theme.colors.primary600};
3131
- }
3132
- }
3133
- }
3134
- &:active {
3135
- ${AddComponentTitle} {
3136
- color: ${({ theme }) => theme.colors.primary600};
3137
- }
3138
- ${StyledAddIcon} {
3139
- > circle {
3140
- fill: ${({ theme }) => theme.colors.primary600};
3141
- }
3142
- > path {
3143
- fill: ${({ theme }) => theme.colors.neutral100};
3144
- }
3145
- }
3146
- }
3147
3219
  `;
3148
3220
  const ComponentCategory = ({
3149
3221
  category,
@@ -3715,8 +3787,7 @@ const Wrapper = styled.div`
3715
3787
  `;
3716
3788
  var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, unorderedListRE = /[*+-]\s/;
3717
3789
  function newlineAndIndentContinueMarkdownList(cm) {
3718
- if (cm.getOption("disableInput"))
3719
- return CodeMirror.Pass;
3790
+ if (cm.getOption("disableInput")) return CodeMirror.Pass;
3720
3791
  var ranges = cm.listSelections(), replacements = [];
3721
3792
  for (var i = 0; i < ranges.length; i++) {
3722
3793
  var pos = ranges[i].head;
@@ -3750,8 +3821,7 @@ function newlineAndIndentContinueMarkdownList(cm) {
3750
3821
  var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0);
3751
3822
  var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace("x", " ");
3752
3823
  replacements[i] = "\n" + indent + bullet + after;
3753
- if (numbered)
3754
- incrementRemainingMarkdownListNumbers(cm, pos);
3824
+ if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);
3755
3825
  }
3756
3826
  }
3757
3827
  cm.replaceSelections(replacements);
@@ -3769,10 +3839,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
3769
3839
  var newNumber = parseInt(startItem[3], 10) + lookAhead - skipCount;
3770
3840
  var nextNumber = parseInt(nextItem[3], 10), itemNumber = nextNumber;
3771
3841
  if (startIndent === nextIndent && !isNaN(nextNumber)) {
3772
- if (newNumber === nextNumber)
3773
- itemNumber = nextNumber + 1;
3774
- if (newNumber > nextNumber)
3775
- itemNumber = newNumber + 1;
3842
+ if (newNumber === nextNumber) itemNumber = nextNumber + 1;
3843
+ if (newNumber > nextNumber) itemNumber = newNumber + 1;
3776
3844
  cm.replaceRange(
3777
3845
  nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),
3778
3846
  {
@@ -3785,10 +3853,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
3785
3853
  }
3786
3854
  );
3787
3855
  } else {
3788
- if (startIndent.length > nextIndent.length)
3789
- return;
3790
- if (startIndent.length < nextIndent.length && lookAhead === 1)
3791
- return;
3856
+ if (startIndent.length > nextIndent.length) return;
3857
+ if (startIndent.length < nextIndent.length && lookAhead === 1) return;
3792
3858
  skipCount += 1;
3793
3859
  }
3794
3860
  }
@@ -4925,15 +4991,19 @@ const Wysiwyg = React.forwardRef(
4925
4991
  );
4926
4992
  const MemoizedWysiwyg = React.memo(Wysiwyg);
4927
4993
  const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4928
- const { id } = useDoc();
4994
+ const { id, document: document2, collectionType } = useDoc();
4929
4995
  const isFormDisabled = useForm("InputRenderer", (state) => state.disabled);
4930
4996
  const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
4931
4997
  const canCreateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
4932
4998
  const canReadFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
4933
4999
  const canUpdateFields = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
4934
5000
  const canUserAction = useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
4935
- const editableFields = id ? canUpdateFields : canCreateFields;
4936
- const readableFields = id ? canReadFields : canCreateFields;
5001
+ let idToCheck = id;
5002
+ if (collectionType === SINGLE_TYPES) {
5003
+ idToCheck = document2?.documentId;
5004
+ }
5005
+ const editableFields = idToCheck ? canUpdateFields : canCreateFields;
5006
+ const readableFields = idToCheck ? canReadFields : canCreateFields;
4937
5007
  const canUserReadField = canUserAction(props.name, readableFields, props.type);
4938
5008
  const canUserEditField = canUserAction(props.name, editableFields, props.type);
4939
5009
  const fields = useStrapiApp("InputRenderer", (app) => app.fields);
@@ -4944,6 +5014,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4944
5014
  const {
4945
5015
  edit: { components }
4946
5016
  } = useDocLayout();
5017
+ const field = useField(props.name);
4947
5018
  if (!visible) {
4948
5019
  return null;
4949
5020
  }
@@ -4954,7 +5025,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4954
5025
  if (attributeHasCustomFieldProperty(props.attribute)) {
4955
5026
  const CustomInput = lazyComponentStore[props.attribute.customField];
4956
5027
  if (CustomInput) {
4957
- return /* @__PURE__ */ jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
5028
+ return /* @__PURE__ */ jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
4958
5029
  }
4959
5030
  return /* @__PURE__ */ jsx(
4960
5031
  InputRenderer$1,
@@ -5078,7 +5149,8 @@ const DynamicComponent = ({
5078
5149
  onDropItem,
5079
5150
  onCancel,
5080
5151
  dynamicComponentsByCategory = {},
5081
- onAddComponent
5152
+ onAddComponent,
5153
+ children
5082
5154
  }) => {
5083
5155
  const { formatMessage } = useIntl();
5084
5156
  const formValues = useForm("DynamicComponent", (state) => state.values);
@@ -5115,6 +5187,14 @@ const DynamicComponent = ({
5115
5187
  React.useEffect(() => {
5116
5188
  dragPreviewRef(getEmptyImage(), { captureDraggingState: false });
5117
5189
  }, [dragPreviewRef, index]);
5190
+ const accordionValue = React.useId();
5191
+ const { value = [], rawError } = useField(`${name2}.${index}`);
5192
+ const [collapseToOpen, setCollapseToOpen] = React.useState("");
5193
+ React.useEffect(() => {
5194
+ if (rawError && value) {
5195
+ setCollapseToOpen(accordionValue);
5196
+ }
5197
+ }, [rawError, value, accordionValue]);
5118
5198
  const composedBoxRefs = useComposedRefs(boxRef, dropRef);
5119
5199
  const accordionActions = disabled ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
5120
5200
  /* @__PURE__ */ jsx(
@@ -5180,10 +5260,9 @@ const DynamicComponent = ({
5180
5260
  ] })
5181
5261
  ] });
5182
5262
  const accordionTitle = title ? `${displayName} ${title}` : displayName;
5183
- const accordionValue = React.useId();
5184
5263
  return /* @__PURE__ */ jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
5185
5264
  /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Rectangle, { background: "neutral200" }) }),
5186
- /* @__PURE__ */ jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsx(Preview, {}) : /* @__PURE__ */ jsx(Accordion.Root, { children: /* @__PURE__ */ jsxs(Accordion.Item, { value: accordionValue, children: [
5265
+ /* @__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: [
5187
5266
  /* @__PURE__ */ jsxs(Accordion.Header, { children: [
5188
5267
  /* @__PURE__ */ jsx(
5189
5268
  Accordion.Trigger,
@@ -5194,21 +5273,39 @@ const DynamicComponent = ({
5194
5273
  ),
5195
5274
  /* @__PURE__ */ jsx(Accordion.Actions, { children: accordionActions })
5196
5275
  ] }),
5197
- /* @__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 }) => {
5198
- const fieldName = `${name2}.${index}.${field.name}`;
5199
- return /* @__PURE__ */ jsx(
5200
- Grid$1.Item,
5201
- {
5202
- col: size,
5203
- s: 12,
5204
- xs: 12,
5205
- direction: "column",
5206
- alignItems: "stretch",
5207
- children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5208
- },
5209
- fieldName
5210
- );
5211
- }) }, rowInd)) }) }) })
5276
+ /* @__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(
5277
+ Grid$1.Item,
5278
+ {
5279
+ col: 12,
5280
+ s: 12,
5281
+ xs: 12,
5282
+ direction: "column",
5283
+ alignItems: "stretch",
5284
+ children: /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5285
+ const fieldName = `${name2}.${index}.${field.name}`;
5286
+ const fieldWithTranslatedLabel = {
5287
+ ...field,
5288
+ label: formatMessage({
5289
+ id: `content-manager.components.${componentUid}.${field.name}`,
5290
+ defaultMessage: field.label
5291
+ })
5292
+ };
5293
+ return /* @__PURE__ */ jsx(
5294
+ Grid$1.Item,
5295
+ {
5296
+ col: size,
5297
+ s: 12,
5298
+ xs: 12,
5299
+ direction: "column",
5300
+ alignItems: "stretch",
5301
+ children: children ? children({ ...fieldWithTranslatedLabel, name: fieldName }) : /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel, name: fieldName })
5302
+ },
5303
+ fieldName
5304
+ );
5305
+ }) })
5306
+ },
5307
+ rowInd
5308
+ )) }) }) }) })
5212
5309
  ] }) }) })
5213
5310
  ] });
5214
5311
  };
@@ -5287,7 +5384,8 @@ const DynamicZone = ({
5287
5384
  label,
5288
5385
  labelAction,
5289
5386
  name: name2,
5290
- required = false
5387
+ required = false,
5388
+ children
5291
5389
  }) => {
5292
5390
  const { max = Infinity, min = -Infinity } = attribute ?? {};
5293
5391
  const [addComponentIsOpen, setAddComponentIsOpen] = React.useState(false);
@@ -5473,7 +5571,8 @@ const DynamicZone = ({
5473
5571
  onDropItem: handleDropItem,
5474
5572
  onGrabItem: handleGrabItem,
5475
5573
  onAddComponent: handleAddComponent,
5476
- dynamicComponentsByCategory
5574
+ dynamicComponentsByCategory,
5575
+ children
5477
5576
  }
5478
5577
  )
5479
5578
  },
@@ -5516,4 +5615,4 @@ export {
5516
5615
  transformDocument as t,
5517
5616
  useLazyComponents as u
5518
5617
  };
5519
- //# sourceMappingURL=Field-DPAzUS1M.mjs.map
5618
+ //# sourceMappingURL=Field-Dltnt1km.mjs.map