@strapi/content-manager 0.0.0-experimental.b2710a38fa715c2420a41122dc06ffd65f2514ee → 0.0.0-experimental.b28f40a70ba5f4e9c21505c8435c56aaa072febf

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 (428) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  6. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  8. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  9. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  10. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  11. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  12. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/LeftMenu.js +89 -49
  22. package/dist/admin/components/LeftMenu.js.map +1 -1
  23. package/dist/admin/components/LeftMenu.mjs +91 -51
  24. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  25. package/dist/admin/components/Widgets.js +421 -0
  26. package/dist/admin/components/Widgets.js.map +1 -0
  27. package/dist/admin/components/Widgets.mjs +398 -0
  28. package/dist/admin/components/Widgets.mjs.map +1 -0
  29. package/dist/admin/content-manager.js.map +1 -1
  30. package/dist/admin/content-manager.mjs.map +1 -1
  31. package/dist/admin/history/components/VersionContent.js +24 -3
  32. package/dist/admin/history/components/VersionContent.js.map +1 -1
  33. package/dist/admin/history/components/VersionContent.mjs +25 -4
  34. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  35. package/dist/admin/history/components/VersionHeader.js +7 -0
  36. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  37. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  38. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  39. package/dist/admin/history/components/VersionsList.js +1 -1
  40. package/dist/admin/history/components/VersionsList.js.map +1 -1
  41. package/dist/admin/history/components/VersionsList.mjs +1 -1
  42. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  43. package/dist/admin/history/pages/History.js +8 -16
  44. package/dist/admin/history/pages/History.js.map +1 -1
  45. package/dist/admin/history/pages/History.mjs +8 -16
  46. package/dist/admin/history/pages/History.mjs.map +1 -1
  47. package/dist/admin/hooks/useDocumentActions.js +20 -8
  48. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  49. package/dist/admin/hooks/useDocumentActions.mjs +21 -9
  50. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  51. package/dist/admin/hooks/useDocumentContext.js +57 -0
  52. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  53. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  54. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  55. package/dist/admin/index.js +81 -5
  56. package/dist/admin/index.js.map +1 -1
  57. package/dist/admin/index.mjs +80 -3
  58. package/dist/admin/index.mjs.map +1 -1
  59. package/dist/admin/layout.js +28 -33
  60. package/dist/admin/layout.js.map +1 -1
  61. package/dist/admin/layout.mjs +29 -15
  62. package/dist/admin/layout.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/EditViewPage.js +101 -88
  64. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  65. package/dist/admin/pages/EditView/EditViewPage.mjs +103 -90
  66. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  68. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  69. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  70. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  71. package/dist/admin/pages/EditView/components/DocumentActions.js +329 -120
  72. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/DocumentActions.mjs +336 -127
  74. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  78. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  80. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  82. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  84. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  86. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  88. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  90. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  92. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  94. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  96. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  98. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +19 -5
  100. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +20 -6
  102. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  104. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +25 -22
  108. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +27 -24
  110. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  112. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  114. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +507 -345
  116. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +507 -347
  118. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +180 -70
  120. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +184 -74
  122. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/UID.js +11 -9
  124. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +11 -9
  126. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  128. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  130. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  132. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  134. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  136. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  138. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  140. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  142. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  143. package/dist/admin/pages/EditView/components/Header.js +22 -7
  144. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  145. package/dist/admin/pages/EditView/components/Header.mjs +23 -8
  146. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  147. package/dist/admin/pages/EditView/components/InputRenderer.js +23 -17
  148. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  149. package/dist/admin/pages/EditView/components/InputRenderer.mjs +23 -17
  150. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  151. package/dist/admin/pages/EditView/utils/data.js +128 -0
  152. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  153. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  154. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  155. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  156. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  157. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  158. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  159. package/dist/admin/pages/ListView/ListViewPage.js +221 -203
  160. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  161. package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
  162. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  163. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  164. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  165. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  166. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  167. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  168. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  169. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  170. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  171. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  172. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  173. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  174. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  175. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  176. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  177. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  178. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  179. package/dist/admin/preview/components/InputPopover.js +189 -0
  180. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  181. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  182. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  183. package/dist/admin/preview/components/PreviewHeader.js +2 -6
  184. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  185. package/dist/admin/preview/components/PreviewHeader.mjs +2 -6
  186. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  187. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  188. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  189. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  190. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  191. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  192. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  193. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  194. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  195. package/dist/admin/preview/pages/Preview.js +180 -84
  196. package/dist/admin/preview/pages/Preview.js.map +1 -1
  197. package/dist/admin/preview/pages/Preview.mjs +182 -86
  198. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  199. package/dist/admin/preview/utils/constants.js +56 -0
  200. package/dist/admin/preview/utils/constants.js.map +1 -0
  201. package/dist/admin/preview/utils/constants.mjs +52 -0
  202. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  203. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  204. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  205. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  206. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  207. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  208. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  209. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  210. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  211. package/dist/admin/preview/utils/previewScript.js +534 -0
  212. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  213. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  214. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  215. package/dist/admin/services/api.js +4 -1
  216. package/dist/admin/services/api.js.map +1 -1
  217. package/dist/admin/services/api.mjs +4 -1
  218. package/dist/admin/services/api.mjs.map +1 -1
  219. package/dist/admin/services/documents.js +42 -16
  220. package/dist/admin/services/documents.js.map +1 -1
  221. package/dist/admin/services/documents.mjs +42 -16
  222. package/dist/admin/services/documents.mjs.map +1 -1
  223. package/dist/admin/services/homepage.js +30 -0
  224. package/dist/admin/services/homepage.js.map +1 -0
  225. package/dist/admin/services/homepage.mjs +28 -0
  226. package/dist/admin/services/homepage.mjs.map +1 -0
  227. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  228. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  229. package/dist/admin/src/components/Widgets.d.ts +4 -0
  230. package/dist/admin/src/content-manager.d.ts +0 -3
  231. package/dist/admin/src/exports.d.ts +1 -0
  232. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  233. package/dist/admin/src/history/pages/History.d.ts +1 -1
  234. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  235. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  236. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  237. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  238. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  239. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  240. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  241. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  242. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  243. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  244. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  245. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -2
  246. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  247. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  248. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  249. package/dist/admin/src/preview/pages/Preview.d.ts +14 -1
  250. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  251. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  252. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  253. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  254. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  255. package/dist/admin/src/services/api.d.ts +1 -1
  256. package/dist/admin/src/services/components.d.ts +2 -2
  257. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  258. package/dist/admin/src/services/documents.d.ts +23 -17
  259. package/dist/admin/src/services/homepage.d.ts +5 -0
  260. package/dist/admin/src/services/init.d.ts +1 -1
  261. package/dist/admin/src/services/relations.d.ts +2 -2
  262. package/dist/admin/src/services/uid.d.ts +3 -3
  263. package/dist/admin/src/utils/api.d.ts +1 -1
  264. package/dist/admin/src/utils/validation.d.ts +1 -0
  265. package/dist/admin/translations/en.json.js +15 -1
  266. package/dist/admin/translations/en.json.js.map +1 -1
  267. package/dist/admin/translations/en.json.mjs +15 -1
  268. package/dist/admin/translations/en.json.mjs.map +1 -1
  269. package/dist/admin/translations/es.json.js +6 -2
  270. package/dist/admin/translations/es.json.js.map +1 -1
  271. package/dist/admin/translations/es.json.mjs +6 -2
  272. package/dist/admin/translations/es.json.mjs.map +1 -1
  273. package/dist/admin/translations/fr.json.js +11 -2
  274. package/dist/admin/translations/fr.json.js.map +1 -1
  275. package/dist/admin/translations/fr.json.mjs +11 -2
  276. package/dist/admin/translations/fr.json.mjs.map +1 -1
  277. package/dist/admin/translations/ru.json.js +235 -226
  278. package/dist/admin/translations/ru.json.js.map +1 -1
  279. package/dist/admin/translations/ru.json.mjs +230 -226
  280. package/dist/admin/translations/ru.json.mjs.map +1 -1
  281. package/dist/admin/utils/api.js +1 -1
  282. package/dist/admin/utils/api.js.map +1 -1
  283. package/dist/admin/utils/api.mjs +1 -1
  284. package/dist/admin/utils/api.mjs.map +1 -1
  285. package/dist/admin/utils/validation.js +19 -7
  286. package/dist/admin/utils/validation.js.map +1 -1
  287. package/dist/admin/utils/validation.mjs +19 -7
  288. package/dist/admin/utils/validation.mjs.map +1 -1
  289. package/dist/server/controllers/content-types.js +11 -1
  290. package/dist/server/controllers/content-types.js.map +1 -1
  291. package/dist/server/controllers/content-types.mjs +11 -1
  292. package/dist/server/controllers/content-types.mjs.map +1 -1
  293. package/dist/server/controllers/index.js +3 -1
  294. package/dist/server/controllers/index.js.map +1 -1
  295. package/dist/server/controllers/index.mjs +3 -1
  296. package/dist/server/controllers/index.mjs.map +1 -1
  297. package/dist/server/controllers/relations.js +8 -6
  298. package/dist/server/controllers/relations.js.map +1 -1
  299. package/dist/server/controllers/relations.mjs +8 -6
  300. package/dist/server/controllers/relations.mjs.map +1 -1
  301. package/dist/server/controllers/validation/index.js +14 -2
  302. package/dist/server/controllers/validation/index.js.map +1 -1
  303. package/dist/server/controllers/validation/index.mjs +14 -2
  304. package/dist/server/controllers/validation/index.mjs.map +1 -1
  305. package/dist/server/history/services/lifecycles.js +23 -19
  306. package/dist/server/history/services/lifecycles.js.map +1 -1
  307. package/dist/server/history/services/lifecycles.mjs +23 -19
  308. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  309. package/dist/server/homepage/controllers/homepage.js +62 -0
  310. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  311. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  312. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  313. package/dist/server/homepage/controllers/index.js +10 -0
  314. package/dist/server/homepage/controllers/index.js.map +1 -0
  315. package/dist/server/homepage/controllers/index.mjs +8 -0
  316. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  317. package/dist/server/homepage/index.js +14 -0
  318. package/dist/server/homepage/index.js.map +1 -0
  319. package/dist/server/homepage/index.mjs +12 -0
  320. package/dist/server/homepage/index.mjs.map +1 -0
  321. package/dist/server/homepage/routes/homepage.js +36 -0
  322. package/dist/server/homepage/routes/homepage.js.map +1 -0
  323. package/dist/server/homepage/routes/homepage.mjs +34 -0
  324. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  325. package/dist/server/homepage/routes/index.js +13 -0
  326. package/dist/server/homepage/routes/index.js.map +1 -0
  327. package/dist/server/homepage/routes/index.mjs +11 -0
  328. package/dist/server/homepage/routes/index.mjs.map +1 -0
  329. package/dist/server/homepage/services/homepage.js +197 -0
  330. package/dist/server/homepage/services/homepage.js.map +1 -0
  331. package/dist/server/homepage/services/homepage.mjs +195 -0
  332. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  333. package/dist/server/homepage/services/index.js +10 -0
  334. package/dist/server/homepage/services/index.js.map +1 -0
  335. package/dist/server/homepage/services/index.mjs +8 -0
  336. package/dist/server/homepage/services/index.mjs.map +1 -0
  337. package/dist/server/preview/services/preview-config.js +5 -1
  338. package/dist/server/preview/services/preview-config.js.map +1 -1
  339. package/dist/server/preview/services/preview-config.mjs +5 -1
  340. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  341. package/dist/server/preview/services/preview.js +4 -1
  342. package/dist/server/preview/services/preview.js.map +1 -1
  343. package/dist/server/preview/services/preview.mjs +4 -1
  344. package/dist/server/preview/services/preview.mjs.map +1 -1
  345. package/dist/server/routes/index.js +3 -1
  346. package/dist/server/routes/index.js.map +1 -1
  347. package/dist/server/routes/index.mjs +3 -1
  348. package/dist/server/routes/index.mjs.map +1 -1
  349. package/dist/server/services/data-mapper.js +4 -1
  350. package/dist/server/services/data-mapper.js.map +1 -1
  351. package/dist/server/services/data-mapper.mjs +4 -1
  352. package/dist/server/services/data-mapper.mjs.map +1 -1
  353. package/dist/server/services/document-manager.js +8 -1
  354. package/dist/server/services/document-manager.js.map +1 -1
  355. package/dist/server/services/document-manager.mjs +8 -1
  356. package/dist/server/services/document-manager.mjs.map +1 -1
  357. package/dist/server/services/document-metadata.js +3 -1
  358. package/dist/server/services/document-metadata.js.map +1 -1
  359. package/dist/server/services/document-metadata.mjs +3 -1
  360. package/dist/server/services/document-metadata.mjs.map +1 -1
  361. package/dist/server/services/index.js +3 -1
  362. package/dist/server/services/index.js.map +1 -1
  363. package/dist/server/services/index.mjs +3 -1
  364. package/dist/server/services/index.mjs.map +1 -1
  365. package/dist/server/services/utils/configuration/attributes.js +1 -1
  366. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  367. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  368. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  369. package/dist/server/services/utils/configuration/layouts.js +1 -1
  370. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  371. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  372. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  373. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  374. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  375. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  376. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  377. package/dist/server/services/utils/populate.js +11 -0
  378. package/dist/server/services/utils/populate.js.map +1 -1
  379. package/dist/server/services/utils/populate.mjs +11 -0
  380. package/dist/server/services/utils/populate.mjs.map +1 -1
  381. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  382. package/dist/server/src/controllers/index.d.ts.map +1 -1
  383. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  384. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  385. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  386. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  387. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  388. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  389. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  390. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  391. package/dist/server/src/homepage/index.d.ts +23 -0
  392. package/dist/server/src/homepage/index.d.ts.map +1 -0
  393. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  394. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  395. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  396. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  397. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  398. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  399. package/dist/server/src/homepage/services/index.d.ts +16 -0
  400. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  401. package/dist/server/src/index.d.ts +14 -0
  402. package/dist/server/src/index.d.ts.map +1 -1
  403. package/dist/server/src/preview/services/index.d.ts +1 -0
  404. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  405. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  406. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  407. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  408. package/dist/server/src/preview/utils.d.ts +1 -0
  409. package/dist/server/src/preview/utils.d.ts.map +1 -1
  410. package/dist/server/src/routes/index.d.ts +1 -0
  411. package/dist/server/src/routes/index.d.ts.map +1 -1
  412. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  413. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  414. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  415. package/dist/server/src/services/index.d.ts +13 -0
  416. package/dist/server/src/services/index.d.ts.map +1 -1
  417. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  418. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  419. package/dist/shared/contracts/collection-types.d.ts +0 -1
  420. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  421. package/dist/shared/contracts/homepage.d.ts +38 -0
  422. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  423. package/package.json +12 -10
  424. package/dist/admin/features/DocumentContext.js +0 -71
  425. package/dist/admin/features/DocumentContext.js.map +0 -1
  426. package/dist/admin/features/DocumentContext.mjs +0 -49
  427. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  428. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentCategory.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Accordion, Box, Flex, FlexComponent, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\nimport { RESPONSIVE_CONTAINER_BREAKPOINTS } from '../../FormLayout';\n\ninterface ComponentCategoryProps {\n category: string;\n components?: Array<{\n uid: string;\n displayName: string;\n icon?: string;\n }>;\n onAddComponent: (\n componentUid: string\n ) => React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n variant?: Accordion.Variant;\n}\n\nconst ComponentCategory = ({\n category,\n components = [],\n variant = 'primary',\n onAddComponent,\n}: ComponentCategoryProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Accordion.Item value={category}>\n <Accordion.Header variant={variant}>\n <Accordion.Trigger>\n {formatMessage({ id: category, defaultMessage: category })}\n </Accordion.Trigger>\n </Accordion.Header>\n <ResponsiveAccordionContent>\n <Grid paddingTop={4} paddingBottom={4} paddingLeft={3} paddingRight={3}>\n {components.map(({ uid, displayName, icon }) => (\n <ComponentBox\n key={uid}\n tag=\"button\"\n type=\"button\"\n background=\"neutral100\"\n justifyContent=\"center\"\n onClick={onAddComponent(uid)}\n hasRadius\n height=\"8.4rem\"\n shrink={0}\n borderColor=\"neutral200\"\n >\n <Flex direction=\"column\" gap={1} alignItems=\"center\" justifyContent=\"center\">\n <ComponentIcon color=\"currentColor\" background=\"primary200\" icon={icon} />\n\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {displayName}\n </Typography>\n </Flex>\n </ComponentBox>\n ))}\n </Grid>\n </ResponsiveAccordionContent>\n </Accordion.Item>\n );\n};\n\nconst ResponsiveAccordionContent = styled(Accordion.Content)`\n container-type: inline-size;\n`;\n\n/**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\nconst Grid =\n process.env.NODE_ENV !== 'test'\n ? styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n\n @container (min-width: ${() => RESPONSIVE_CONTAINER_BREAKPOINTS.sm}) {\n grid-template-columns: repeat(auto-fill, 14rem);\n }\n `\n : styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n `;\n\nconst ComponentBox = styled<FlexComponent<'button'>>(Flex)`\n color: ${({ theme }) => theme.colors.neutral600};\n cursor: pointer;\n\n @media (prefers-reduced-motion: no-preference) {\n transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};\n }\n\n &:focus,\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ComponentCategory };\nexport type { ComponentCategoryProps };\n"],"names":["ComponentCategory","category","components","variant","onAddComponent","formatMessage","useIntl","_jsxs","Accordion","Item","value","_jsx","Header","Trigger","id","defaultMessage","ResponsiveAccordionContent","Grid","paddingTop","paddingBottom","paddingLeft","paddingRight","map","uid","displayName","icon","ComponentBox","tag","type","background","justifyContent","onClick","hasRadius","height","shrink","borderColor","Flex","direction","gap","alignItems","ComponentIcon","color","Typography","fontWeight","styled","Content","process","env","NODE_ENV","Box","RESPONSIVE_CONTAINER_BREAKPOINTS","sm","theme","colors","neutral600","props","motion","easings","easeOutQuad","primary200","primary100","primary600"],"mappings":"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"}
1
+ {"version":3,"file":"ComponentCategory.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Accordion, Box, Flex, FlexComponent, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\n\ninterface ComponentCategoryProps {\n category: string;\n components?: Array<{\n uid: string;\n displayName: string;\n icon?: string;\n }>;\n onAddComponent: (\n componentUid: string\n ) => React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n variant?: Accordion.Variant;\n}\n\nconst ComponentCategory = ({\n category,\n components = [],\n variant = 'primary',\n onAddComponent,\n}: ComponentCategoryProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Accordion.Item value={category}>\n <Accordion.Header variant={variant}>\n <Accordion.Trigger>\n {formatMessage({ id: category, defaultMessage: category })}\n </Accordion.Trigger>\n </Accordion.Header>\n <ResponsiveAccordionContent>\n <Grid paddingTop={4} paddingBottom={4} paddingLeft={3} paddingRight={3}>\n {components.map(({ uid, displayName, icon }) => (\n <ComponentBox\n key={uid}\n tag=\"button\"\n type=\"button\"\n background=\"neutral100\"\n justifyContent=\"center\"\n onClick={onAddComponent(uid)}\n hasRadius\n height=\"8.4rem\"\n shrink={0}\n borderColor=\"neutral200\"\n >\n <Flex direction=\"column\" gap={1} alignItems=\"center\" justifyContent=\"center\">\n <ComponentIcon color=\"currentColor\" background=\"primary200\" icon={icon} />\n\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {displayName}\n </Typography>\n </Flex>\n </ComponentBox>\n ))}\n </Grid>\n </ResponsiveAccordionContent>\n </Accordion.Item>\n );\n};\n\nconst ResponsiveAccordionContent = styled(Accordion.Content)`\n container-type: inline-size;\n`;\n\n/**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\nconst Grid =\n process.env.NODE_ENV !== 'test'\n ? styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n\n ${({ theme }) => theme.breakpoints.medium} {\n grid-template-columns: repeat(auto-fill, 14rem);\n }\n `\n : styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n `;\n\nconst ComponentBox = styled<FlexComponent<'button'>>(Flex)`\n color: ${({ theme }) => theme.colors.neutral600};\n cursor: pointer;\n\n @media (prefers-reduced-motion: no-preference) {\n transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};\n }\n\n &:focus,\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ComponentCategory };\nexport type { ComponentCategoryProps };\n"],"names":["ComponentCategory","category","components","variant","onAddComponent","formatMessage","useIntl","_jsxs","Accordion","Item","value","_jsx","Header","Trigger","id","defaultMessage","ResponsiveAccordionContent","Grid","paddingTop","paddingBottom","paddingLeft","paddingRight","map","uid","displayName","icon","ComponentBox","tag","type","background","justifyContent","onClick","hasRadius","height","shrink","borderColor","Flex","direction","gap","alignItems","ComponentIcon","color","Typography","fontWeight","styled","Content","process","env","NODE_ENV","Box","theme","breakpoints","medium","colors","neutral600","props","motion","easings","easeOutQuad","primary200","primary100","primary600"],"mappings":"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"}
@@ -4,7 +4,6 @@ import { Accordion, Box, Flex, Typography } from '@strapi/design-system';
4
4
  import { useIntl } from 'react-intl';
5
5
  import { styled } from 'styled-components';
6
6
  import { ComponentIcon } from '../../../../../components/ComponentIcon.mjs';
7
- import { RESPONSIVE_CONTAINER_BREAKPOINTS } from '../../FormLayout.mjs';
8
7
 
9
8
  const ComponentCategory = ({ category, components = [], variant = 'primary', onAddComponent })=>{
10
9
  const { formatMessage } = useIntl();
@@ -73,7 +72,7 @@ const ResponsiveAccordionContent = styled(Accordion.Content)`
73
72
  grid-template-columns: repeat(auto-fill, 100%);
74
73
  grid-gap: 4px;
75
74
 
76
- @container (min-width: ${()=>RESPONSIVE_CONTAINER_BREAKPOINTS.sm}) {
75
+ ${({ theme })=>theme.breakpoints.medium} {
77
76
  grid-template-columns: repeat(auto-fill, 14rem);
78
77
  }
79
78
  ` : styled(Box)`
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentCategory.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Accordion, Box, Flex, FlexComponent, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\nimport { RESPONSIVE_CONTAINER_BREAKPOINTS } from '../../FormLayout';\n\ninterface ComponentCategoryProps {\n category: string;\n components?: Array<{\n uid: string;\n displayName: string;\n icon?: string;\n }>;\n onAddComponent: (\n componentUid: string\n ) => React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n variant?: Accordion.Variant;\n}\n\nconst ComponentCategory = ({\n category,\n components = [],\n variant = 'primary',\n onAddComponent,\n}: ComponentCategoryProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Accordion.Item value={category}>\n <Accordion.Header variant={variant}>\n <Accordion.Trigger>\n {formatMessage({ id: category, defaultMessage: category })}\n </Accordion.Trigger>\n </Accordion.Header>\n <ResponsiveAccordionContent>\n <Grid paddingTop={4} paddingBottom={4} paddingLeft={3} paddingRight={3}>\n {components.map(({ uid, displayName, icon }) => (\n <ComponentBox\n key={uid}\n tag=\"button\"\n type=\"button\"\n background=\"neutral100\"\n justifyContent=\"center\"\n onClick={onAddComponent(uid)}\n hasRadius\n height=\"8.4rem\"\n shrink={0}\n borderColor=\"neutral200\"\n >\n <Flex direction=\"column\" gap={1} alignItems=\"center\" justifyContent=\"center\">\n <ComponentIcon color=\"currentColor\" background=\"primary200\" icon={icon} />\n\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {displayName}\n </Typography>\n </Flex>\n </ComponentBox>\n ))}\n </Grid>\n </ResponsiveAccordionContent>\n </Accordion.Item>\n );\n};\n\nconst ResponsiveAccordionContent = styled(Accordion.Content)`\n container-type: inline-size;\n`;\n\n/**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\nconst Grid =\n process.env.NODE_ENV !== 'test'\n ? styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n\n @container (min-width: ${() => RESPONSIVE_CONTAINER_BREAKPOINTS.sm}) {\n grid-template-columns: repeat(auto-fill, 14rem);\n }\n `\n : styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n `;\n\nconst ComponentBox = styled<FlexComponent<'button'>>(Flex)`\n color: ${({ theme }) => theme.colors.neutral600};\n cursor: pointer;\n\n @media (prefers-reduced-motion: no-preference) {\n transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};\n }\n\n &:focus,\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ComponentCategory };\nexport type { ComponentCategoryProps };\n"],"names":["ComponentCategory","category","components","variant","onAddComponent","formatMessage","useIntl","_jsxs","Accordion","Item","value","_jsx","Header","Trigger","id","defaultMessage","ResponsiveAccordionContent","Grid","paddingTop","paddingBottom","paddingLeft","paddingRight","map","uid","displayName","icon","ComponentBox","tag","type","background","justifyContent","onClick","hasRadius","height","shrink","borderColor","Flex","direction","gap","alignItems","ComponentIcon","color","Typography","fontWeight","styled","Content","process","env","NODE_ENV","Box","RESPONSIVE_CONTAINER_BREAKPOINTS","sm","theme","colors","neutral600","props","motion","easings","easeOutQuad","primary200","primary100","primary600"],"mappings":"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"}
1
+ {"version":3,"file":"ComponentCategory.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Accordion, Box, Flex, FlexComponent, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\n\ninterface ComponentCategoryProps {\n category: string;\n components?: Array<{\n uid: string;\n displayName: string;\n icon?: string;\n }>;\n onAddComponent: (\n componentUid: string\n ) => React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n variant?: Accordion.Variant;\n}\n\nconst ComponentCategory = ({\n category,\n components = [],\n variant = 'primary',\n onAddComponent,\n}: ComponentCategoryProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Accordion.Item value={category}>\n <Accordion.Header variant={variant}>\n <Accordion.Trigger>\n {formatMessage({ id: category, defaultMessage: category })}\n </Accordion.Trigger>\n </Accordion.Header>\n <ResponsiveAccordionContent>\n <Grid paddingTop={4} paddingBottom={4} paddingLeft={3} paddingRight={3}>\n {components.map(({ uid, displayName, icon }) => (\n <ComponentBox\n key={uid}\n tag=\"button\"\n type=\"button\"\n background=\"neutral100\"\n justifyContent=\"center\"\n onClick={onAddComponent(uid)}\n hasRadius\n height=\"8.4rem\"\n shrink={0}\n borderColor=\"neutral200\"\n >\n <Flex direction=\"column\" gap={1} alignItems=\"center\" justifyContent=\"center\">\n <ComponentIcon color=\"currentColor\" background=\"primary200\" icon={icon} />\n\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {displayName}\n </Typography>\n </Flex>\n </ComponentBox>\n ))}\n </Grid>\n </ResponsiveAccordionContent>\n </Accordion.Item>\n );\n};\n\nconst ResponsiveAccordionContent = styled(Accordion.Content)`\n container-type: inline-size;\n`;\n\n/**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\nconst Grid =\n process.env.NODE_ENV !== 'test'\n ? styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n\n ${({ theme }) => theme.breakpoints.medium} {\n grid-template-columns: repeat(auto-fill, 14rem);\n }\n `\n : styled(Box)`\n display: grid;\n grid-template-columns: repeat(auto-fill, 100%);\n grid-gap: 4px;\n `;\n\nconst ComponentBox = styled<FlexComponent<'button'>>(Flex)`\n color: ${({ theme }) => theme.colors.neutral600};\n cursor: pointer;\n\n @media (prefers-reduced-motion: no-preference) {\n transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};\n }\n\n &:focus,\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { ComponentCategory };\nexport type { ComponentCategoryProps };\n"],"names":["ComponentCategory","category","components","variant","onAddComponent","formatMessage","useIntl","_jsxs","Accordion","Item","value","_jsx","Header","Trigger","id","defaultMessage","ResponsiveAccordionContent","Grid","paddingTop","paddingBottom","paddingLeft","paddingRight","map","uid","displayName","icon","ComponentBox","tag","type","background","justifyContent","onClick","hasRadius","height","shrink","borderColor","Flex","direction","gap","alignItems","ComponentIcon","color","Typography","fontWeight","styled","Content","process","env","NODE_ENV","Box","theme","breakpoints","medium","colors","neutral600","props","motion","easings","easeOutQuad","primary200","primary100","primary600"],"mappings":"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"}
@@ -10,7 +10,7 @@ var reactIntl = require('react-intl');
10
10
  var styledComponents = require('styled-components');
11
11
  var ComponentIcon = require('../../../../../components/ComponentIcon.js');
12
12
  var dragAndDrop = require('../../../../../constants/dragAndDrop.js');
13
- var DocumentContext = require('../../../../../features/DocumentContext.js');
13
+ var useDocumentContext = require('../../../../../hooks/useDocumentContext.js');
14
14
  var useDocumentLayout = require('../../../../../hooks/useDocumentLayout.js');
15
15
  var useDragAndDrop = require('../../../../../hooks/useDragAndDrop.js');
16
16
  var objects = require('../../../../../utils/objects.js');
@@ -40,19 +40,10 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
40
40
  const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveComponentClick, onMoveComponent, onGrabItem, onDropItem, onCancel, dynamicComponentsByCategory = {}, onAddComponent, children })=>{
41
41
  const { formatMessage } = reactIntl.useIntl();
42
42
  const formValues = strapiAdmin.useForm('DynamicComponent', (state)=>state.values);
43
- const documentMeta = DocumentContext.useDocumentContext('DynamicComponent', (state)=>state.meta);
44
- const rootDocumentMeta = DocumentContext.useDocumentContext('DynamicComponent', (state)=>state.rootDocumentMeta);
45
- const { edit: { components: rootComponents } } = useDocumentLayout.useDocumentLayout(rootDocumentMeta.model);
46
- const { edit: { components: relatedComponents } } = useDocumentLayout.useDocumentLayout(documentMeta.model);
47
- // Merge the root level components and related components
48
- const components = React__namespace.useMemo(()=>({
49
- ...rootComponents,
50
- ...relatedComponents
51
- }), [
52
- rootComponents,
53
- relatedComponents
54
- ]);
55
- const document = DocumentContext.useDocumentContext('DynamicComponent', (state)=>state.document);
43
+ const { currentDocument, currentDocumentMeta } = useDocumentContext.useDocumentContext('DynamicComponent');
44
+ const rulesEngine = strapiAdmin.createRulesEngine();
45
+ const isDesktop = strapiAdmin.useIsDesktop();
46
+ const { edit: { components } } = useDocumentLayout.useDocumentLayout(currentDocumentMeta.model);
56
47
  const title = React__namespace.useMemo(()=>{
57
48
  const { mainField } = components[componentUid]?.settings ?? {
58
49
  mainField: 'id'
@@ -132,7 +123,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
132
123
  onClick: onRemoveComponentClick,
133
124
  children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Trash, {})
134
125
  }),
135
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
126
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
136
127
  variant: "ghost",
137
128
  onClick: (e)=>e.stopPropagation(),
138
129
  "data-handler-id": handlerId,
@@ -180,7 +171,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
180
171
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Label, {
181
172
  children: category
182
173
  }),
183
- components.map(({ displayName, uid })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
174
+ components.map(({ displayName, uid })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
184
175
  onSelect: ()=>onAddComponent(uid, index),
185
176
  children: displayName
186
177
  }, componentUid))
@@ -203,7 +194,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
203
194
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Label, {
204
195
  children: category
205
196
  }),
206
- components.map(({ displayName, uid })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
197
+ components.map(({ displayName, uid })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
207
198
  onSelect: ()=>onAddComponent(uid, index + 1),
208
199
  children: displayName
209
200
  }, componentUid))
@@ -259,7 +250,18 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
259
250
  paddingBottom: 6,
260
251
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
261
252
  gap: 4,
262
- children: components[componentUid]?.layout?.map((row, rowInd)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
253
+ children: components[componentUid]?.layout?.map((row, rowInd)=>{
254
+ const visibleFields = row.filter(({ ...field })=>{
255
+ const condition = field.attribute.conditions?.visible;
256
+ if (condition) {
257
+ return rulesEngine.evaluate(condition, value);
258
+ }
259
+ return true;
260
+ });
261
+ if (visibleFields.length === 0) {
262
+ return null; // Skip rendering the entire grid row
263
+ }
264
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
263
265
  col: 12,
264
266
  s: 12,
265
267
  xs: 12,
@@ -267,7 +269,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
267
269
  alignItems: "stretch",
268
270
  children: /*#__PURE__*/ jsxRuntime.jsx(FormLayout.ResponsiveGridRoot, {
269
271
  gap: 4,
270
- children: row.map(({ size, ...field })=>{
272
+ children: visibleFields.map(({ size, ...field })=>{
271
273
  const fieldName = `${name}.${index}.${field.name}`;
272
274
  const fieldWithTranslatedLabel = {
273
275
  ...field,
@@ -284,17 +286,18 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
284
286
  alignItems: "stretch",
285
287
  children: children ? children({
286
288
  ...fieldWithTranslatedLabel,
287
- document,
289
+ document: currentDocument,
288
290
  name: fieldName
289
291
  }) : /*#__PURE__*/ jsxRuntime.jsx(InputRenderer.InputRenderer, {
290
292
  ...fieldWithTranslatedLabel,
291
- document: document,
293
+ document: currentDocument,
292
294
  name: fieldName
293
295
  })
294
296
  }, fieldName);
295
297
  })
296
298
  })
297
- }, rowInd))
299
+ }, rowInd);
300
+ })
298
301
  })
299
302
  })
300
303
  })
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicComponent.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useField } from '@strapi/admin/strapi-admin';\nimport {\n Accordion,\n Box,\n Flex,\n Grid,\n IconButton,\n useComposedRefs,\n Menu,\n MenuItem,\n BoxComponent,\n} from '@strapi/design-system';\nimport { Drag, More, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { COMPONENT_ICONS } from '../../../../../components/ComponentIcon';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDocumentContext } from '../../../../../features/DocumentContext';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../../../../hooks/useDragAndDrop';\nimport { getIn } from '../../../../../utils/objects';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { InputRenderer, type InputRendererProps } from '../../InputRenderer';\n\nimport type { ComponentPickerProps } from './ComponentPicker';\n\ninterface DynamicComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel'>,\n Pick<ComponentPickerProps, 'dynamicComponentsByCategory'> {\n componentUid: string;\n disabled?: boolean;\n index: number;\n name: string;\n onAddComponent: (componentUid: string, index: number) => void;\n onRemoveComponentClick: () => void;\n onMoveComponent: (dragIndex: number, hoverIndex: number) => void;\n children?: (props: InputRendererProps) => React.ReactNode;\n}\n\nconst DynamicComponent = ({\n componentUid,\n disabled,\n index,\n name,\n onRemoveComponentClick,\n onMoveComponent,\n onGrabItem,\n onDropItem,\n onCancel,\n dynamicComponentsByCategory = {},\n onAddComponent,\n children,\n}: DynamicComponentProps) => {\n const { formatMessage } = useIntl();\n const formValues = useForm('DynamicComponent', (state) => state.values);\n const documentMeta = useDocumentContext('DynamicComponent', (state) => state.meta);\n const rootDocumentMeta = useDocumentContext(\n 'DynamicComponent',\n (state) => state.rootDocumentMeta\n );\n\n const {\n edit: { components: rootComponents },\n } = useDocumentLayout(rootDocumentMeta.model);\n const {\n edit: { components: relatedComponents },\n } = useDocumentLayout(documentMeta.model);\n\n // Merge the root level components and related components\n const components = React.useMemo(\n () => ({ ...rootComponents, ...relatedComponents }),\n [rootComponents, relatedComponents]\n );\n\n const document = useDocumentContext('DynamicComponent', (state) => state.document);\n\n const title = React.useMemo(() => {\n const { mainField } = components[componentUid]?.settings ?? { mainField: 'id' };\n\n const mainFieldValue = getIn(formValues, `${name}.${index}.${mainField}`);\n\n const displayedValue =\n mainField === 'id' || !mainFieldValue ? '' : String(mainFieldValue).trim();\n\n const mainValue = displayedValue.length > 0 ? `- ${displayedValue}` : displayedValue;\n\n return mainValue;\n }, [componentUid, components, formValues, name, index]);\n\n const { icon, displayName } = React.useMemo(() => {\n const [category] = componentUid.split('.');\n const { icon, displayName } = (dynamicComponentsByCategory[category] ?? []).find(\n (component) => component.uid === componentUid\n ) ?? { icon: null, displayName: null };\n\n return { icon, displayName };\n }, [componentUid, dynamicComponentsByCategory]);\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.DYNAMIC_ZONE}_${name}`,\n index,\n item: {\n index,\n displayedValue: `${displayName} ${title}`,\n icon,\n },\n onMoveItem: onMoveComponent,\n onDropItem,\n onGrabItem,\n onCancel,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n /**\n * We don't need the accordion's to communicate with each other,\n * so a unique value for their state is enough.\n */\n const accordionValue = React.useId();\n\n const { value = [], rawError } = useField(`${name}.${index}`);\n\n const [collapseToOpen, setCollapseToOpen] = React.useState<string>('');\n\n React.useEffect(() => {\n if (rawError && value) {\n setCollapseToOpen(accordionValue);\n }\n }, [rawError, value, accordionValue]);\n\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n const accordionActions = disabled ? null : (\n <>\n <IconButton\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTranslation('components.DynamicZone.delete-label'),\n defaultMessage: 'Delete {name}',\n },\n { name: title }\n )}\n onClick={onRemoveComponentClick}\n >\n <Trash />\n </IconButton>\n <IconButton\n variant=\"ghost\"\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n <Menu.Root>\n <Menu.Trigger size=\"S\" endIcon={null} paddingLeft={0} paddingRight={0}>\n <IconButton\n variant=\"ghost\"\n label={formatMessage({\n id: getTranslation('components.DynamicZone.more-actions'),\n defaultMessage: 'More actions',\n })}\n tag=\"span\"\n >\n <More aria-hidden focusable={false} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-above'),\n defaultMessage: 'Add component above',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-below'),\n defaultMessage: 'Add component below',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index + 1)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n </>\n );\n\n const accordionTitle = title ? `${displayName} ${title}` : displayName;\n\n return (\n <ComponentContainer tag=\"li\" width=\"100%\">\n <Flex justifyContent=\"center\">\n <Rectangle background=\"neutral200\" />\n </Flex>\n <StyledBox ref={composedBoxRefs} hasRadius>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion.Root value={collapseToOpen} onValueChange={setCollapseToOpen}>\n <Accordion.Item value={accordionValue}>\n <Accordion.Header>\n <Accordion.Trigger\n icon={\n icon && COMPONENT_ICONS[icon]\n ? COMPONENT_ICONS[icon]\n : COMPONENT_ICONS.dashboard\n }\n >\n {accordionTitle}\n </Accordion.Trigger>\n <Accordion.Actions>{accordionActions}</Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <AccordionContentRadius background=\"neutral0\">\n <Box paddingLeft={6} paddingRight={6} paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={4}>\n {components[componentUid]?.layout?.map((row, rowInd) => (\n <Grid.Item\n col={12}\n key={rowInd}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <ResponsiveGridRoot gap={4}>\n {row.map(({ size, ...field }) => {\n const fieldName = `${name}.${index}.${field.name}`;\n\n const fieldWithTranslatedLabel = {\n ...field,\n label: formatMessage({\n id: `content-manager.components.${componentUid}.${field.name}`,\n defaultMessage: field.label,\n }),\n };\n\n return (\n <ResponsiveGridItem\n col={size}\n key={fieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children ? (\n children({\n ...fieldWithTranslatedLabel,\n document,\n name: fieldName,\n })\n ) : (\n <InputRenderer\n {...fieldWithTranslatedLabel}\n document={document}\n name={fieldName}\n />\n )}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n </Grid.Item>\n ))}\n </Grid.Root>\n </Box>\n </AccordionContentRadius>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )}\n </StyledBox>\n </ComponentContainer>\n );\n};\n\n// TODO: Delete once https://github.com/strapi/design-system/pull/858\n// is merged and released.\nconst StyledBox = styled<BoxComponent>(Box)`\n > div:first-child {\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n }\n`;\n\nconst AccordionContentRadius = styled<BoxComponent>(Box)`\n border-radius: 0 0 ${({ theme }) => theme.spaces[1]} ${({ theme }) => theme.spaces[1]};\n`;\n\nconst Rectangle = styled<BoxComponent>(Box)`\n width: ${({ theme }) => theme.spaces[2]};\n height: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst Preview = styled.span`\n display: block;\n background-color: ${({ theme }) => theme.colors.primary100};\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n padding: ${({ theme }) => theme.spaces[6]};\n`;\n\nconst ComponentContainer = styled<BoxComponent<'li'>>(Box)`\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport { DynamicComponent };\nexport type { DynamicComponentProps };\n"],"names":["DynamicComponent","componentUid","disabled","index","name","onRemoveComponentClick","onMoveComponent","onGrabItem","onDropItem","onCancel","dynamicComponentsByCategory","onAddComponent","children","formatMessage","useIntl","formValues","useForm","state","values","documentMeta","useDocumentContext","meta","rootDocumentMeta","edit","components","rootComponents","useDocumentLayout","model","relatedComponents","React","useMemo","document","title","mainField","settings","mainFieldValue","getIn","displayedValue","String","trim","mainValue","length","icon","displayName","category","split","find","component","uid","handlerId","isDragging","handleKeyDown","boxRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","type","ItemTypes","DYNAMIC_ZONE","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","accordionValue","useId","value","rawError","useField","collapseToOpen","setCollapseToOpen","useState","composedBoxRefs","useComposedRefs","accordionActions","_jsxs","_Fragment","_jsx","IconButton","variant","label","id","getTranslation","defaultMessage","onClick","Trash","e","stopPropagation","data-handler-id","ref","onKeyDown","Drag","Menu","Root","Trigger","size","endIcon","paddingLeft","paddingRight","tag","More","aria-hidden","focusable","Content","SubRoot","SubTrigger","SubContent","Object","entries","map","Fragment","Label","MenuItem","onSelect","accordionTitle","ComponentContainer","width","Flex","justifyContent","Rectangle","background","StyledBox","hasRadius","Preview","Accordion","onValueChange","Item","Header","COMPONENT_ICONS","dashboard","Actions","AccordionContentRadius","Box","paddingTop","paddingBottom","Grid","gap","layout","row","rowInd","col","s","xs","direction","alignItems","ResponsiveGridRoot","field","fieldName","fieldWithTranslatedLabel","ResponsiveGridItem","InputRenderer","styled","theme","shadows","tableShadow","spaces","span","colors","primary100","primary500"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicComponent.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useField, createRulesEngine, useIsDesktop } from '@strapi/admin/strapi-admin';\nimport {\n Accordion,\n Box,\n Flex,\n Grid,\n IconButton,\n useComposedRefs,\n Menu,\n BoxComponent,\n} from '@strapi/design-system';\nimport { Drag, More, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { COMPONENT_ICONS } from '../../../../../components/ComponentIcon';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDocumentContext } from '../../../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../../../../hooks/useDragAndDrop';\nimport { getIn } from '../../../../../utils/objects';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { InputRenderer, type InputRendererProps } from '../../InputRenderer';\n\nimport type { ComponentPickerProps } from './ComponentPicker';\n\ninterface DynamicComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel'>,\n Pick<ComponentPickerProps, 'dynamicComponentsByCategory'> {\n componentUid: string;\n disabled?: boolean;\n index: number;\n name: string;\n onAddComponent: (componentUid: string, index: number) => void;\n onRemoveComponentClick: () => void;\n onMoveComponent: (dragIndex: number, hoverIndex: number) => void;\n children?: (props: InputRendererProps) => React.ReactNode;\n}\n\nconst DynamicComponent = ({\n componentUid,\n disabled,\n index,\n name,\n onRemoveComponentClick,\n onMoveComponent,\n onGrabItem,\n onDropItem,\n onCancel,\n dynamicComponentsByCategory = {},\n onAddComponent,\n children,\n}: DynamicComponentProps) => {\n const { formatMessage } = useIntl();\n const formValues = useForm('DynamicComponent', (state) => state.values);\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n const rulesEngine = createRulesEngine();\n const isDesktop = useIsDesktop();\n\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const title = React.useMemo(() => {\n const { mainField } = components[componentUid]?.settings ?? { mainField: 'id' };\n\n const mainFieldValue = getIn(formValues, `${name}.${index}.${mainField}`);\n\n const displayedValue =\n mainField === 'id' || !mainFieldValue ? '' : String(mainFieldValue).trim();\n\n const mainValue = displayedValue.length > 0 ? `- ${displayedValue}` : displayedValue;\n\n return mainValue;\n }, [componentUid, components, formValues, name, index]);\n\n const { icon, displayName } = React.useMemo(() => {\n const [category] = componentUid.split('.');\n const { icon, displayName } = (dynamicComponentsByCategory[category] ?? []).find(\n (component) => component.uid === componentUid\n ) ?? { icon: null, displayName: null };\n\n return { icon, displayName };\n }, [componentUid, dynamicComponentsByCategory]);\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.DYNAMIC_ZONE}_${name}`,\n index,\n item: {\n index,\n displayedValue: `${displayName} ${title}`,\n icon,\n },\n onMoveItem: onMoveComponent,\n onDropItem,\n onGrabItem,\n onCancel,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n /**\n * We don't need the accordion's to communicate with each other,\n * so a unique value for their state is enough.\n */\n const accordionValue = React.useId();\n\n const { value = [], rawError } = useField(`${name}.${index}`);\n\n const [collapseToOpen, setCollapseToOpen] = React.useState<string>('');\n\n React.useEffect(() => {\n if (rawError && value) {\n setCollapseToOpen(accordionValue);\n }\n }, [rawError, value, accordionValue]);\n\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n const accordionActions = disabled ? null : (\n <>\n <IconButton\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTranslation('components.DynamicZone.delete-label'),\n defaultMessage: 'Delete {name}',\n },\n { name: title }\n )}\n onClick={onRemoveComponentClick}\n >\n <Trash />\n </IconButton>\n {isDesktop && (\n <IconButton\n variant=\"ghost\"\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n <Menu.Root>\n <Menu.Trigger size=\"S\" endIcon={null} paddingLeft={0} paddingRight={0}>\n <IconButton\n variant=\"ghost\"\n label={formatMessage({\n id: getTranslation('components.DynamicZone.more-actions'),\n defaultMessage: 'More actions',\n })}\n tag=\"span\"\n >\n <More aria-hidden focusable={false} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-above'),\n defaultMessage: 'Add component above',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <Menu.Item key={componentUid} onSelect={() => onAddComponent(uid, index)}>\n {displayName}\n </Menu.Item>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-below'),\n defaultMessage: 'Add component below',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <Menu.Item key={componentUid} onSelect={() => onAddComponent(uid, index + 1)}>\n {displayName}\n </Menu.Item>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n </>\n );\n\n const accordionTitle = title ? `${displayName} ${title}` : displayName;\n\n return (\n <ComponentContainer tag=\"li\" width=\"100%\">\n <Flex justifyContent=\"center\">\n <Rectangle background=\"neutral200\" />\n </Flex>\n <StyledBox ref={composedBoxRefs} hasRadius>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion.Root value={collapseToOpen} onValueChange={setCollapseToOpen}>\n <Accordion.Item value={accordionValue}>\n <Accordion.Header>\n <Accordion.Trigger\n icon={\n icon && COMPONENT_ICONS[icon]\n ? COMPONENT_ICONS[icon]\n : COMPONENT_ICONS.dashboard\n }\n >\n {accordionTitle}\n </Accordion.Trigger>\n <Accordion.Actions>{accordionActions}</Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <AccordionContentRadius background=\"neutral0\">\n <Box paddingLeft={6} paddingRight={6} paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={4}>\n {components[componentUid]?.layout?.map((row, rowInd) => {\n const visibleFields = row.filter(({ ...field }) => {\n const condition = field.attribute.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, value);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n return (\n <Grid.Item\n col={12}\n key={rowInd}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <ResponsiveGridRoot gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n const fieldName = `${name}.${index}.${field.name}`;\n\n const fieldWithTranslatedLabel = {\n ...field,\n label: formatMessage({\n id: `content-manager.components.${componentUid}.${field.name}`,\n defaultMessage: field.label,\n }),\n };\n\n return (\n <ResponsiveGridItem\n col={size}\n key={fieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children ? (\n children({\n ...fieldWithTranslatedLabel,\n document: currentDocument,\n name: fieldName,\n })\n ) : (\n <InputRenderer\n {...fieldWithTranslatedLabel}\n document={currentDocument}\n name={fieldName}\n />\n )}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n </AccordionContentRadius>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )}\n </StyledBox>\n </ComponentContainer>\n );\n};\n\n// TODO: Delete once https://github.com/strapi/design-system/pull/858\n// is merged and released.\nconst StyledBox = styled<BoxComponent>(Box)`\n > div:first-child {\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n }\n`;\n\nconst AccordionContentRadius = styled<BoxComponent>(Box)`\n border-radius: 0 0 ${({ theme }) => theme.spaces[1]} ${({ theme }) => theme.spaces[1]};\n`;\n\nconst Rectangle = styled<BoxComponent>(Box)`\n width: ${({ theme }) => theme.spaces[2]};\n height: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst Preview = styled.span`\n display: block;\n background-color: ${({ theme }) => theme.colors.primary100};\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n padding: ${({ theme }) => theme.spaces[6]};\n`;\n\nconst ComponentContainer = styled<BoxComponent<'li'>>(Box)`\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport { DynamicComponent };\nexport type { DynamicComponentProps };\n"],"names":["DynamicComponent","componentUid","disabled","index","name","onRemoveComponentClick","onMoveComponent","onGrabItem","onDropItem","onCancel","dynamicComponentsByCategory","onAddComponent","children","formatMessage","useIntl","formValues","useForm","state","values","currentDocument","currentDocumentMeta","useDocumentContext","rulesEngine","createRulesEngine","isDesktop","useIsDesktop","edit","components","useDocumentLayout","model","title","React","useMemo","mainField","settings","mainFieldValue","getIn","displayedValue","String","trim","mainValue","length","icon","displayName","category","split","find","component","uid","handlerId","isDragging","handleKeyDown","boxRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","type","ItemTypes","DYNAMIC_ZONE","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","accordionValue","useId","value","rawError","useField","collapseToOpen","setCollapseToOpen","useState","composedBoxRefs","useComposedRefs","accordionActions","_jsxs","_Fragment","_jsx","IconButton","variant","label","id","getTranslation","defaultMessage","onClick","Trash","e","stopPropagation","data-handler-id","ref","onKeyDown","Drag","Menu","Root","Trigger","size","endIcon","paddingLeft","paddingRight","tag","More","aria-hidden","focusable","Content","SubRoot","SubTrigger","SubContent","Object","entries","map","Fragment","Label","Item","onSelect","accordionTitle","ComponentContainer","width","Flex","justifyContent","Rectangle","background","StyledBox","hasRadius","Preview","Accordion","onValueChange","Header","COMPONENT_ICONS","dashboard","Actions","AccordionContentRadius","Box","paddingTop","paddingBottom","Grid","gap","layout","row","rowInd","visibleFields","filter","field","condition","attribute","conditions","visible","evaluate","col","s","xs","direction","alignItems","ResponsiveGridRoot","fieldName","fieldWithTranslatedLabel","ResponsiveGridItem","document","InputRenderer","styled","theme","shadows","tableShadow","spaces","span","colors","primary100","primary500"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useForm, useField } from '@strapi/admin/strapi-admin';
4
- import { Box, useComposedRefs, IconButton, Menu, MenuItem, Flex, Accordion, Grid } from '@strapi/design-system';
3
+ import { useForm, createRulesEngine, useIsDesktop, useField } from '@strapi/admin/strapi-admin';
4
+ import { Box, useComposedRefs, IconButton, Menu, Flex, Accordion, Grid } from '@strapi/design-system';
5
5
  import { Trash, Drag, More } from '@strapi/icons';
6
6
  import { getEmptyImage } from 'react-dnd-html5-backend';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { styled } from 'styled-components';
9
9
  import { COMPONENT_ICONS } from '../../../../../components/ComponentIcon.mjs';
10
10
  import { ItemTypes } from '../../../../../constants/dragAndDrop.mjs';
11
- import { useDocumentContext } from '../../../../../features/DocumentContext.mjs';
11
+ import { useDocumentContext } from '../../../../../hooks/useDocumentContext.mjs';
12
12
  import { useDocumentLayout } from '../../../../../hooks/useDocumentLayout.mjs';
13
13
  import { useDragAndDrop } from '../../../../../hooks/useDragAndDrop.mjs';
14
14
  import { getIn } from '../../../../../utils/objects.mjs';
@@ -19,19 +19,10 @@ import { InputRenderer as MemoizedInputRenderer } from '../../InputRenderer.mjs'
19
19
  const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveComponentClick, onMoveComponent, onGrabItem, onDropItem, onCancel, dynamicComponentsByCategory = {}, onAddComponent, children })=>{
20
20
  const { formatMessage } = useIntl();
21
21
  const formValues = useForm('DynamicComponent', (state)=>state.values);
22
- const documentMeta = useDocumentContext('DynamicComponent', (state)=>state.meta);
23
- const rootDocumentMeta = useDocumentContext('DynamicComponent', (state)=>state.rootDocumentMeta);
24
- const { edit: { components: rootComponents } } = useDocumentLayout(rootDocumentMeta.model);
25
- const { edit: { components: relatedComponents } } = useDocumentLayout(documentMeta.model);
26
- // Merge the root level components and related components
27
- const components = React.useMemo(()=>({
28
- ...rootComponents,
29
- ...relatedComponents
30
- }), [
31
- rootComponents,
32
- relatedComponents
33
- ]);
34
- const document = useDocumentContext('DynamicComponent', (state)=>state.document);
22
+ const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');
23
+ const rulesEngine = createRulesEngine();
24
+ const isDesktop = useIsDesktop();
25
+ const { edit: { components } } = useDocumentLayout(currentDocumentMeta.model);
35
26
  const title = React.useMemo(()=>{
36
27
  const { mainField } = components[componentUid]?.settings ?? {
37
28
  mainField: 'id'
@@ -111,7 +102,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
111
102
  onClick: onRemoveComponentClick,
112
103
  children: /*#__PURE__*/ jsx(Trash, {})
113
104
  }),
114
- /*#__PURE__*/ jsx(IconButton, {
105
+ isDesktop && /*#__PURE__*/ jsx(IconButton, {
115
106
  variant: "ghost",
116
107
  onClick: (e)=>e.stopPropagation(),
117
108
  "data-handler-id": handlerId,
@@ -159,7 +150,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
159
150
  /*#__PURE__*/ jsx(Menu.Label, {
160
151
  children: category
161
152
  }),
162
- components.map(({ displayName, uid })=>/*#__PURE__*/ jsx(MenuItem, {
153
+ components.map(({ displayName, uid })=>/*#__PURE__*/ jsx(Menu.Item, {
163
154
  onSelect: ()=>onAddComponent(uid, index),
164
155
  children: displayName
165
156
  }, componentUid))
@@ -182,7 +173,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
182
173
  /*#__PURE__*/ jsx(Menu.Label, {
183
174
  children: category
184
175
  }),
185
- components.map(({ displayName, uid })=>/*#__PURE__*/ jsx(MenuItem, {
176
+ components.map(({ displayName, uid })=>/*#__PURE__*/ jsx(Menu.Item, {
186
177
  onSelect: ()=>onAddComponent(uid, index + 1),
187
178
  children: displayName
188
179
  }, componentUid))
@@ -238,7 +229,18 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
238
229
  paddingBottom: 6,
239
230
  children: /*#__PURE__*/ jsx(Grid.Root, {
240
231
  gap: 4,
241
- children: components[componentUid]?.layout?.map((row, rowInd)=>/*#__PURE__*/ jsx(Grid.Item, {
232
+ children: components[componentUid]?.layout?.map((row, rowInd)=>{
233
+ const visibleFields = row.filter(({ ...field })=>{
234
+ const condition = field.attribute.conditions?.visible;
235
+ if (condition) {
236
+ return rulesEngine.evaluate(condition, value);
237
+ }
238
+ return true;
239
+ });
240
+ if (visibleFields.length === 0) {
241
+ return null; // Skip rendering the entire grid row
242
+ }
243
+ return /*#__PURE__*/ jsx(Grid.Item, {
242
244
  col: 12,
243
245
  s: 12,
244
246
  xs: 12,
@@ -246,7 +248,7 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
246
248
  alignItems: "stretch",
247
249
  children: /*#__PURE__*/ jsx(ResponsiveGridRoot, {
248
250
  gap: 4,
249
- children: row.map(({ size, ...field })=>{
251
+ children: visibleFields.map(({ size, ...field })=>{
250
252
  const fieldName = `${name}.${index}.${field.name}`;
251
253
  const fieldWithTranslatedLabel = {
252
254
  ...field,
@@ -263,17 +265,18 @@ const DynamicComponent = ({ componentUid, disabled, index, name, onRemoveCompone
263
265
  alignItems: "stretch",
264
266
  children: children ? children({
265
267
  ...fieldWithTranslatedLabel,
266
- document,
268
+ document: currentDocument,
267
269
  name: fieldName
268
270
  }) : /*#__PURE__*/ jsx(MemoizedInputRenderer, {
269
271
  ...fieldWithTranslatedLabel,
270
- document: document,
272
+ document: currentDocument,
271
273
  name: fieldName
272
274
  })
273
275
  }, fieldName);
274
276
  })
275
277
  })
276
- }, rowInd))
278
+ }, rowInd);
279
+ })
277
280
  })
278
281
  })
279
282
  })
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicComponent.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useField } from '@strapi/admin/strapi-admin';\nimport {\n Accordion,\n Box,\n Flex,\n Grid,\n IconButton,\n useComposedRefs,\n Menu,\n MenuItem,\n BoxComponent,\n} from '@strapi/design-system';\nimport { Drag, More, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { COMPONENT_ICONS } from '../../../../../components/ComponentIcon';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDocumentContext } from '../../../../../features/DocumentContext';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../../../../hooks/useDragAndDrop';\nimport { getIn } from '../../../../../utils/objects';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { InputRenderer, type InputRendererProps } from '../../InputRenderer';\n\nimport type { ComponentPickerProps } from './ComponentPicker';\n\ninterface DynamicComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel'>,\n Pick<ComponentPickerProps, 'dynamicComponentsByCategory'> {\n componentUid: string;\n disabled?: boolean;\n index: number;\n name: string;\n onAddComponent: (componentUid: string, index: number) => void;\n onRemoveComponentClick: () => void;\n onMoveComponent: (dragIndex: number, hoverIndex: number) => void;\n children?: (props: InputRendererProps) => React.ReactNode;\n}\n\nconst DynamicComponent = ({\n componentUid,\n disabled,\n index,\n name,\n onRemoveComponentClick,\n onMoveComponent,\n onGrabItem,\n onDropItem,\n onCancel,\n dynamicComponentsByCategory = {},\n onAddComponent,\n children,\n}: DynamicComponentProps) => {\n const { formatMessage } = useIntl();\n const formValues = useForm('DynamicComponent', (state) => state.values);\n const documentMeta = useDocumentContext('DynamicComponent', (state) => state.meta);\n const rootDocumentMeta = useDocumentContext(\n 'DynamicComponent',\n (state) => state.rootDocumentMeta\n );\n\n const {\n edit: { components: rootComponents },\n } = useDocumentLayout(rootDocumentMeta.model);\n const {\n edit: { components: relatedComponents },\n } = useDocumentLayout(documentMeta.model);\n\n // Merge the root level components and related components\n const components = React.useMemo(\n () => ({ ...rootComponents, ...relatedComponents }),\n [rootComponents, relatedComponents]\n );\n\n const document = useDocumentContext('DynamicComponent', (state) => state.document);\n\n const title = React.useMemo(() => {\n const { mainField } = components[componentUid]?.settings ?? { mainField: 'id' };\n\n const mainFieldValue = getIn(formValues, `${name}.${index}.${mainField}`);\n\n const displayedValue =\n mainField === 'id' || !mainFieldValue ? '' : String(mainFieldValue).trim();\n\n const mainValue = displayedValue.length > 0 ? `- ${displayedValue}` : displayedValue;\n\n return mainValue;\n }, [componentUid, components, formValues, name, index]);\n\n const { icon, displayName } = React.useMemo(() => {\n const [category] = componentUid.split('.');\n const { icon, displayName } = (dynamicComponentsByCategory[category] ?? []).find(\n (component) => component.uid === componentUid\n ) ?? { icon: null, displayName: null };\n\n return { icon, displayName };\n }, [componentUid, dynamicComponentsByCategory]);\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.DYNAMIC_ZONE}_${name}`,\n index,\n item: {\n index,\n displayedValue: `${displayName} ${title}`,\n icon,\n },\n onMoveItem: onMoveComponent,\n onDropItem,\n onGrabItem,\n onCancel,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n /**\n * We don't need the accordion's to communicate with each other,\n * so a unique value for their state is enough.\n */\n const accordionValue = React.useId();\n\n const { value = [], rawError } = useField(`${name}.${index}`);\n\n const [collapseToOpen, setCollapseToOpen] = React.useState<string>('');\n\n React.useEffect(() => {\n if (rawError && value) {\n setCollapseToOpen(accordionValue);\n }\n }, [rawError, value, accordionValue]);\n\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n const accordionActions = disabled ? null : (\n <>\n <IconButton\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTranslation('components.DynamicZone.delete-label'),\n defaultMessage: 'Delete {name}',\n },\n { name: title }\n )}\n onClick={onRemoveComponentClick}\n >\n <Trash />\n </IconButton>\n <IconButton\n variant=\"ghost\"\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n <Menu.Root>\n <Menu.Trigger size=\"S\" endIcon={null} paddingLeft={0} paddingRight={0}>\n <IconButton\n variant=\"ghost\"\n label={formatMessage({\n id: getTranslation('components.DynamicZone.more-actions'),\n defaultMessage: 'More actions',\n })}\n tag=\"span\"\n >\n <More aria-hidden focusable={false} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-above'),\n defaultMessage: 'Add component above',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-below'),\n defaultMessage: 'Add component below',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index + 1)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n </>\n );\n\n const accordionTitle = title ? `${displayName} ${title}` : displayName;\n\n return (\n <ComponentContainer tag=\"li\" width=\"100%\">\n <Flex justifyContent=\"center\">\n <Rectangle background=\"neutral200\" />\n </Flex>\n <StyledBox ref={composedBoxRefs} hasRadius>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion.Root value={collapseToOpen} onValueChange={setCollapseToOpen}>\n <Accordion.Item value={accordionValue}>\n <Accordion.Header>\n <Accordion.Trigger\n icon={\n icon && COMPONENT_ICONS[icon]\n ? COMPONENT_ICONS[icon]\n : COMPONENT_ICONS.dashboard\n }\n >\n {accordionTitle}\n </Accordion.Trigger>\n <Accordion.Actions>{accordionActions}</Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <AccordionContentRadius background=\"neutral0\">\n <Box paddingLeft={6} paddingRight={6} paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={4}>\n {components[componentUid]?.layout?.map((row, rowInd) => (\n <Grid.Item\n col={12}\n key={rowInd}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <ResponsiveGridRoot gap={4}>\n {row.map(({ size, ...field }) => {\n const fieldName = `${name}.${index}.${field.name}`;\n\n const fieldWithTranslatedLabel = {\n ...field,\n label: formatMessage({\n id: `content-manager.components.${componentUid}.${field.name}`,\n defaultMessage: field.label,\n }),\n };\n\n return (\n <ResponsiveGridItem\n col={size}\n key={fieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children ? (\n children({\n ...fieldWithTranslatedLabel,\n document,\n name: fieldName,\n })\n ) : (\n <InputRenderer\n {...fieldWithTranslatedLabel}\n document={document}\n name={fieldName}\n />\n )}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n </Grid.Item>\n ))}\n </Grid.Root>\n </Box>\n </AccordionContentRadius>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )}\n </StyledBox>\n </ComponentContainer>\n );\n};\n\n// TODO: Delete once https://github.com/strapi/design-system/pull/858\n// is merged and released.\nconst StyledBox = styled<BoxComponent>(Box)`\n > div:first-child {\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n }\n`;\n\nconst AccordionContentRadius = styled<BoxComponent>(Box)`\n border-radius: 0 0 ${({ theme }) => theme.spaces[1]} ${({ theme }) => theme.spaces[1]};\n`;\n\nconst Rectangle = styled<BoxComponent>(Box)`\n width: ${({ theme }) => theme.spaces[2]};\n height: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst Preview = styled.span`\n display: block;\n background-color: ${({ theme }) => theme.colors.primary100};\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n padding: ${({ theme }) => theme.spaces[6]};\n`;\n\nconst ComponentContainer = styled<BoxComponent<'li'>>(Box)`\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport { DynamicComponent };\nexport type { DynamicComponentProps };\n"],"names":["DynamicComponent","componentUid","disabled","index","name","onRemoveComponentClick","onMoveComponent","onGrabItem","onDropItem","onCancel","dynamicComponentsByCategory","onAddComponent","children","formatMessage","useIntl","formValues","useForm","state","values","documentMeta","useDocumentContext","meta","rootDocumentMeta","edit","components","rootComponents","useDocumentLayout","model","relatedComponents","React","useMemo","document","title","mainField","settings","mainFieldValue","getIn","displayedValue","String","trim","mainValue","length","icon","displayName","category","split","find","component","uid","handlerId","isDragging","handleKeyDown","boxRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","type","ItemTypes","DYNAMIC_ZONE","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","accordionValue","useId","value","rawError","useField","collapseToOpen","setCollapseToOpen","useState","composedBoxRefs","useComposedRefs","accordionActions","_jsxs","_Fragment","_jsx","IconButton","variant","label","id","getTranslation","defaultMessage","onClick","Trash","e","stopPropagation","data-handler-id","ref","onKeyDown","Drag","Menu","Root","Trigger","size","endIcon","paddingLeft","paddingRight","tag","More","aria-hidden","focusable","Content","SubRoot","SubTrigger","SubContent","Object","entries","map","Fragment","Label","MenuItem","onSelect","accordionTitle","ComponentContainer","width","Flex","justifyContent","Rectangle","background","StyledBox","hasRadius","Preview","Accordion","onValueChange","Item","Header","COMPONENT_ICONS","dashboard","Actions","AccordionContentRadius","Box","paddingTop","paddingBottom","Grid","gap","layout","row","rowInd","col","s","xs","direction","alignItems","ResponsiveGridRoot","field","fieldName","fieldWithTranslatedLabel","ResponsiveGridItem","InputRenderer","styled","theme","shadows","tableShadow","spaces","span","colors","primary100","primary500"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicComponent.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useField, createRulesEngine, useIsDesktop } from '@strapi/admin/strapi-admin';\nimport {\n Accordion,\n Box,\n Flex,\n Grid,\n IconButton,\n useComposedRefs,\n Menu,\n BoxComponent,\n} from '@strapi/design-system';\nimport { Drag, More, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { COMPONENT_ICONS } from '../../../../../components/ComponentIcon';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDocumentContext } from '../../../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../../../hooks/useDocumentLayout';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../../../../hooks/useDragAndDrop';\nimport { getIn } from '../../../../../utils/objects';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { InputRenderer, type InputRendererProps } from '../../InputRenderer';\n\nimport type { ComponentPickerProps } from './ComponentPicker';\n\ninterface DynamicComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel'>,\n Pick<ComponentPickerProps, 'dynamicComponentsByCategory'> {\n componentUid: string;\n disabled?: boolean;\n index: number;\n name: string;\n onAddComponent: (componentUid: string, index: number) => void;\n onRemoveComponentClick: () => void;\n onMoveComponent: (dragIndex: number, hoverIndex: number) => void;\n children?: (props: InputRendererProps) => React.ReactNode;\n}\n\nconst DynamicComponent = ({\n componentUid,\n disabled,\n index,\n name,\n onRemoveComponentClick,\n onMoveComponent,\n onGrabItem,\n onDropItem,\n onCancel,\n dynamicComponentsByCategory = {},\n onAddComponent,\n children,\n}: DynamicComponentProps) => {\n const { formatMessage } = useIntl();\n const formValues = useForm('DynamicComponent', (state) => state.values);\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n const rulesEngine = createRulesEngine();\n const isDesktop = useIsDesktop();\n\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const title = React.useMemo(() => {\n const { mainField } = components[componentUid]?.settings ?? { mainField: 'id' };\n\n const mainFieldValue = getIn(formValues, `${name}.${index}.${mainField}`);\n\n const displayedValue =\n mainField === 'id' || !mainFieldValue ? '' : String(mainFieldValue).trim();\n\n const mainValue = displayedValue.length > 0 ? `- ${displayedValue}` : displayedValue;\n\n return mainValue;\n }, [componentUid, components, formValues, name, index]);\n\n const { icon, displayName } = React.useMemo(() => {\n const [category] = componentUid.split('.');\n const { icon, displayName } = (dynamicComponentsByCategory[category] ?? []).find(\n (component) => component.uid === componentUid\n ) ?? { icon: null, displayName: null };\n\n return { icon, displayName };\n }, [componentUid, dynamicComponentsByCategory]);\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.DYNAMIC_ZONE}_${name}`,\n index,\n item: {\n index,\n displayedValue: `${displayName} ${title}`,\n icon,\n },\n onMoveItem: onMoveComponent,\n onDropItem,\n onGrabItem,\n onCancel,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n /**\n * We don't need the accordion's to communicate with each other,\n * so a unique value for their state is enough.\n */\n const accordionValue = React.useId();\n\n const { value = [], rawError } = useField(`${name}.${index}`);\n\n const [collapseToOpen, setCollapseToOpen] = React.useState<string>('');\n\n React.useEffect(() => {\n if (rawError && value) {\n setCollapseToOpen(accordionValue);\n }\n }, [rawError, value, accordionValue]);\n\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n const accordionActions = disabled ? null : (\n <>\n <IconButton\n variant=\"ghost\"\n label={formatMessage(\n {\n id: getTranslation('components.DynamicZone.delete-label'),\n defaultMessage: 'Delete {name}',\n },\n { name: title }\n )}\n onClick={onRemoveComponentClick}\n >\n <Trash />\n </IconButton>\n {isDesktop && (\n <IconButton\n variant=\"ghost\"\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n )}\n <Menu.Root>\n <Menu.Trigger size=\"S\" endIcon={null} paddingLeft={0} paddingRight={0}>\n <IconButton\n variant=\"ghost\"\n label={formatMessage({\n id: getTranslation('components.DynamicZone.more-actions'),\n defaultMessage: 'More actions',\n })}\n tag=\"span\"\n >\n <More aria-hidden focusable={false} />\n </IconButton>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-above'),\n defaultMessage: 'Add component above',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <Menu.Item key={componentUid} onSelect={() => onAddComponent(uid, index)}>\n {displayName}\n </Menu.Item>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-below'),\n defaultMessage: 'Add component below',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <Menu.Item key={componentUid} onSelect={() => onAddComponent(uid, index + 1)}>\n {displayName}\n </Menu.Item>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n </>\n );\n\n const accordionTitle = title ? `${displayName} ${title}` : displayName;\n\n return (\n <ComponentContainer tag=\"li\" width=\"100%\">\n <Flex justifyContent=\"center\">\n <Rectangle background=\"neutral200\" />\n </Flex>\n <StyledBox ref={composedBoxRefs} hasRadius>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion.Root value={collapseToOpen} onValueChange={setCollapseToOpen}>\n <Accordion.Item value={accordionValue}>\n <Accordion.Header>\n <Accordion.Trigger\n icon={\n icon && COMPONENT_ICONS[icon]\n ? COMPONENT_ICONS[icon]\n : COMPONENT_ICONS.dashboard\n }\n >\n {accordionTitle}\n </Accordion.Trigger>\n <Accordion.Actions>{accordionActions}</Accordion.Actions>\n </Accordion.Header>\n <Accordion.Content>\n <AccordionContentRadius background=\"neutral0\">\n <Box paddingLeft={6} paddingRight={6} paddingTop={6} paddingBottom={6}>\n <Grid.Root gap={4}>\n {components[componentUid]?.layout?.map((row, rowInd) => {\n const visibleFields = row.filter(({ ...field }) => {\n const condition = field.attribute.conditions?.visible;\n\n if (condition) {\n return rulesEngine.evaluate(condition, value);\n }\n\n return true;\n });\n\n if (visibleFields.length === 0) {\n return null; // Skip rendering the entire grid row\n }\n return (\n <Grid.Item\n col={12}\n key={rowInd}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <ResponsiveGridRoot gap={4}>\n {visibleFields.map(({ size, ...field }) => {\n const fieldName = `${name}.${index}.${field.name}`;\n\n const fieldWithTranslatedLabel = {\n ...field,\n label: formatMessage({\n id: `content-manager.components.${componentUid}.${field.name}`,\n defaultMessage: field.label,\n }),\n };\n\n return (\n <ResponsiveGridItem\n col={size}\n key={fieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children ? (\n children({\n ...fieldWithTranslatedLabel,\n document: currentDocument,\n name: fieldName,\n })\n ) : (\n <InputRenderer\n {...fieldWithTranslatedLabel}\n document={currentDocument}\n name={fieldName}\n />\n )}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n </AccordionContentRadius>\n </Accordion.Content>\n </Accordion.Item>\n </Accordion.Root>\n )}\n </StyledBox>\n </ComponentContainer>\n );\n};\n\n// TODO: Delete once https://github.com/strapi/design-system/pull/858\n// is merged and released.\nconst StyledBox = styled<BoxComponent>(Box)`\n > div:first-child {\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n }\n`;\n\nconst AccordionContentRadius = styled<BoxComponent>(Box)`\n border-radius: 0 0 ${({ theme }) => theme.spaces[1]} ${({ theme }) => theme.spaces[1]};\n`;\n\nconst Rectangle = styled<BoxComponent>(Box)`\n width: ${({ theme }) => theme.spaces[2]};\n height: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst Preview = styled.span`\n display: block;\n background-color: ${({ theme }) => theme.colors.primary100};\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n padding: ${({ theme }) => theme.spaces[6]};\n`;\n\nconst ComponentContainer = styled<BoxComponent<'li'>>(Box)`\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport { DynamicComponent };\nexport type { DynamicComponentProps };\n"],"names":["DynamicComponent","componentUid","disabled","index","name","onRemoveComponentClick","onMoveComponent","onGrabItem","onDropItem","onCancel","dynamicComponentsByCategory","onAddComponent","children","formatMessage","useIntl","formValues","useForm","state","values","currentDocument","currentDocumentMeta","useDocumentContext","rulesEngine","createRulesEngine","isDesktop","useIsDesktop","edit","components","useDocumentLayout","model","title","React","useMemo","mainField","settings","mainFieldValue","getIn","displayedValue","String","trim","mainValue","length","icon","displayName","category","split","find","component","uid","handlerId","isDragging","handleKeyDown","boxRef","dropRef","dragRef","dragPreviewRef","useDragAndDrop","type","ItemTypes","DYNAMIC_ZONE","item","onMoveItem","useEffect","getEmptyImage","captureDraggingState","accordionValue","useId","value","rawError","useField","collapseToOpen","setCollapseToOpen","useState","composedBoxRefs","useComposedRefs","accordionActions","_jsxs","_Fragment","_jsx","IconButton","variant","label","id","getTranslation","defaultMessage","onClick","Trash","e","stopPropagation","data-handler-id","ref","onKeyDown","Drag","Menu","Root","Trigger","size","endIcon","paddingLeft","paddingRight","tag","More","aria-hidden","focusable","Content","SubRoot","SubTrigger","SubContent","Object","entries","map","Fragment","Label","Item","onSelect","accordionTitle","ComponentContainer","width","Flex","justifyContent","Rectangle","background","StyledBox","hasRadius","Preview","Accordion","onValueChange","Header","COMPONENT_ICONS","dashboard","Actions","AccordionContentRadius","Box","paddingTop","paddingBottom","Grid","gap","layout","row","rowInd","visibleFields","filter","field","condition","attribute","conditions","visible","evaluate","col","s","xs","direction","alignItems","ResponsiveGridRoot","fieldName","fieldWithTranslatedLabel","ResponsiveGridItem","document","InputRenderer","styled","theme","shadows","tableShadow","spaces","span","colors","primary100","primary500"],"mappings":"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"}