@strapi/content-manager 0.0.0-experimental.33dcb1d961027c44bf6dd839be1e557b39a57133 → 0.0.0-experimental.33e7800dc9389f78c5b00f5962ebc395c1acef77

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 (530) hide show
  1. package/dist/admin/components/ComponentIcon.js +3 -0
  2. package/dist/admin/components/ComponentIcon.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.mjs +3 -0
  4. package/dist/admin/components/ComponentIcon.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +4 -2
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs +4 -2
  8. package/dist/admin/components/ConfigurationForm/EditFieldForm.mjs.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Fields.js +306 -205
  10. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Fields.mjs +311 -211
  12. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  13. package/dist/admin/components/ConfigurationForm/Form.js +2 -2
  14. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  15. package/dist/admin/components/ConfigurationForm/Form.mjs +4 -4
  16. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  22. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  23. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  24. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  25. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  26. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  27. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  28. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  29. package/dist/admin/components/LeftMenu.js +91 -51
  30. package/dist/admin/components/LeftMenu.js.map +1 -1
  31. package/dist/admin/components/LeftMenu.mjs +93 -53
  32. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  33. package/dist/admin/components/RelativeTime.js.map +1 -1
  34. package/dist/admin/components/RelativeTime.mjs.map +1 -1
  35. package/dist/admin/components/Widgets.js +287 -11
  36. package/dist/admin/components/Widgets.js.map +1 -1
  37. package/dist/admin/components/Widgets.mjs +270 -14
  38. package/dist/admin/components/Widgets.mjs.map +1 -1
  39. package/dist/admin/content-manager.js.map +1 -1
  40. package/dist/admin/content-manager.mjs.map +1 -1
  41. package/dist/admin/history/components/HistoryAction.js.map +1 -1
  42. package/dist/admin/history/components/HistoryAction.mjs.map +1 -1
  43. package/dist/admin/history/components/VersionContent.js +24 -6
  44. package/dist/admin/history/components/VersionContent.js.map +1 -1
  45. package/dist/admin/history/components/VersionContent.mjs +25 -7
  46. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  47. package/dist/admin/history/components/VersionHeader.js +7 -0
  48. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  49. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  50. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  51. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  52. package/dist/admin/history/components/VersionInputRenderer.mjs.map +1 -1
  53. package/dist/admin/history/components/VersionsList.js +1 -1
  54. package/dist/admin/history/components/VersionsList.js.map +1 -1
  55. package/dist/admin/history/components/VersionsList.mjs +1 -1
  56. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  57. package/dist/admin/history/pages/History.js +7 -7
  58. package/dist/admin/history/pages/History.js.map +1 -1
  59. package/dist/admin/history/pages/History.mjs +7 -7
  60. package/dist/admin/history/pages/History.mjs.map +1 -1
  61. package/dist/admin/history/services/historyVersion.js.map +1 -1
  62. package/dist/admin/history/services/historyVersion.mjs.map +1 -1
  63. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  64. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  65. package/dist/admin/hooks/useDocumentActions.js +35 -11
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +36 -12
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  70. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
  71. package/dist/admin/index.js +48 -11
  72. package/dist/admin/index.js.map +1 -1
  73. package/dist/admin/index.mjs +47 -9
  74. package/dist/admin/index.mjs.map +1 -1
  75. package/dist/admin/layout.js +28 -33
  76. package/dist/admin/layout.js.map +1 -1
  77. package/dist/admin/layout.mjs +29 -15
  78. package/dist/admin/layout.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/EditViewPage.js +98 -77
  80. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  81. package/dist/admin/pages/EditView/EditViewPage.mjs +100 -79
  82. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  84. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  85. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  86. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  87. package/dist/admin/pages/EditView/components/DocumentActions.js +315 -94
  88. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/DocumentActions.mjs +319 -98
  90. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  92. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  94. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
  116. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  118. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  120. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  122. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  124. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  126. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -3
  128. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -4
  130. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  132. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  134. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +22 -9
  136. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +24 -11
  138. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  140. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +130 -55
  142. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +130 -55
  144. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +126 -34
  146. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +130 -38
  148. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/UID.js +6 -3
  150. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +6 -3
  152. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  154. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  156. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
  158. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
  160. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  162. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  163. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  164. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  165. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  166. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  167. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  168. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  170. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  171. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  172. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  173. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  174. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  175. package/dist/admin/pages/EditView/components/Header.js +92 -27
  176. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  177. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  178. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  179. package/dist/admin/pages/EditView/components/InputRenderer.js +39 -24
  180. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  181. package/dist/admin/pages/EditView/components/InputRenderer.mjs +39 -24
  182. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  183. package/dist/admin/pages/EditView/utils/data.js +211 -0
  184. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  185. package/dist/admin/pages/EditView/utils/data.mjs +211 -1
  186. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  187. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  188. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  189. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  190. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  191. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  192. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  193. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +1 -1
  194. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
  195. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +1 -1
  196. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -1
  197. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  198. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  199. package/dist/admin/pages/ListConfiguration/components/Settings.js +1 -1
  200. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  201. package/dist/admin/pages/ListConfiguration/components/Settings.mjs +1 -1
  202. package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
  203. package/dist/admin/pages/ListView/ListViewPage.js +219 -203
  204. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  205. package/dist/admin/pages/ListView/ListViewPage.mjs +220 -204
  206. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  207. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  208. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +6 -16
  210. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  211. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +6 -16
  212. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
  213. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +20 -32
  214. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  215. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +21 -33
  216. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  217. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +13 -3
  218. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  219. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +13 -3
  220. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  221. package/dist/admin/pages/ListView/components/Filters.js +8 -2
  222. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  223. package/dist/admin/pages/ListView/components/Filters.mjs +8 -2
  224. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  225. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  226. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  227. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  228. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  229. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +1 -1
  230. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  231. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +1 -1
  232. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  233. package/dist/admin/pages/ListView/components/TableCells/Media.js +1 -1
  234. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  235. package/dist/admin/pages/ListView/components/TableCells/Media.mjs +1 -1
  236. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  237. package/dist/admin/pages/ListView/components/TableCells/Relations.js +8 -4
  238. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  239. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +8 -4
  240. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  241. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  242. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  243. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  244. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  245. package/dist/admin/preview/components/InputPopover.js +189 -0
  246. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  247. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  248. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  249. package/dist/admin/preview/components/PreviewHeader.js +0 -1
  250. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  251. package/dist/admin/preview/components/PreviewHeader.mjs +0 -1
  252. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  253. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  254. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  255. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  256. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  257. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  258. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  259. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  260. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  261. package/dist/admin/preview/pages/Preview.js +178 -74
  262. package/dist/admin/preview/pages/Preview.js.map +1 -1
  263. package/dist/admin/preview/pages/Preview.mjs +180 -76
  264. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  265. package/dist/admin/preview/services/preview.js.map +1 -1
  266. package/dist/admin/preview/services/preview.mjs.map +1 -1
  267. package/dist/admin/preview/utils/constants.js +56 -0
  268. package/dist/admin/preview/utils/constants.js.map +1 -0
  269. package/dist/admin/preview/utils/constants.mjs +52 -0
  270. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  271. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  272. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  273. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  274. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  275. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  276. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  277. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  278. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  279. package/dist/admin/preview/utils/previewScript.js +534 -0
  280. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  281. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  282. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  283. package/dist/admin/router.js.map +1 -1
  284. package/dist/admin/router.mjs.map +1 -1
  285. package/dist/admin/services/api.js +5 -1
  286. package/dist/admin/services/api.js.map +1 -1
  287. package/dist/admin/services/api.mjs +5 -1
  288. package/dist/admin/services/api.mjs.map +1 -1
  289. package/dist/admin/services/documents.js +59 -17
  290. package/dist/admin/services/documents.js.map +1 -1
  291. package/dist/admin/services/documents.mjs +59 -17
  292. package/dist/admin/services/documents.mjs.map +1 -1
  293. package/dist/admin/services/homepage.js +9 -5
  294. package/dist/admin/services/homepage.js.map +1 -1
  295. package/dist/admin/services/homepage.mjs +9 -5
  296. package/dist/admin/services/homepage.mjs.map +1 -1
  297. package/dist/admin/services/relations.js.map +1 -1
  298. package/dist/admin/services/relations.mjs.map +1 -1
  299. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  300. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  301. package/dist/admin/src/components/Widgets.d.ts +8 -3
  302. package/dist/admin/src/exports.d.ts +1 -0
  303. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  304. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  305. package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
  306. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  307. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  308. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
  309. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  310. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +1 -1
  311. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  312. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  313. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  314. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  315. package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +0 -3
  316. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  317. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  318. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  319. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  320. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  321. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  322. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  323. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  324. package/dist/admin/src/services/api.d.ts +1 -1
  325. package/dist/admin/src/services/components.d.ts +2 -2
  326. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  327. package/dist/admin/src/services/documents.d.ts +23 -17
  328. package/dist/admin/src/services/homepage.d.ts +1 -1
  329. package/dist/admin/src/services/init.d.ts +1 -1
  330. package/dist/admin/src/services/relations.d.ts +2 -2
  331. package/dist/admin/src/services/uid.d.ts +3 -3
  332. package/dist/admin/src/utils/api.d.ts +1 -1
  333. package/dist/admin/src/utils/validation.d.ts +1 -0
  334. package/dist/admin/translations/en.json.js +15 -1
  335. package/dist/admin/translations/en.json.js.map +1 -1
  336. package/dist/admin/translations/en.json.mjs +15 -1
  337. package/dist/admin/translations/en.json.mjs.map +1 -1
  338. package/dist/admin/translations/es.json.js +6 -2
  339. package/dist/admin/translations/es.json.js.map +1 -1
  340. package/dist/admin/translations/es.json.mjs +6 -2
  341. package/dist/admin/translations/es.json.mjs.map +1 -1
  342. package/dist/admin/translations/fr.json.js +12 -3
  343. package/dist/admin/translations/fr.json.js.map +1 -1
  344. package/dist/admin/translations/fr.json.mjs +12 -3
  345. package/dist/admin/translations/fr.json.mjs.map +1 -1
  346. package/dist/admin/translations/ru.json.js +235 -226
  347. package/dist/admin/translations/ru.json.js.map +1 -1
  348. package/dist/admin/translations/ru.json.mjs +230 -226
  349. package/dist/admin/translations/ru.json.mjs.map +1 -1
  350. package/dist/admin/utils/api.js +1 -1
  351. package/dist/admin/utils/api.js.map +1 -1
  352. package/dist/admin/utils/api.mjs +1 -1
  353. package/dist/admin/utils/api.mjs.map +1 -1
  354. package/dist/admin/utils/translations.js.map +1 -1
  355. package/dist/admin/utils/translations.mjs.map +1 -1
  356. package/dist/admin/utils/urls.js.map +1 -1
  357. package/dist/admin/utils/urls.mjs.map +1 -1
  358. package/dist/admin/utils/users.js.map +1 -1
  359. package/dist/admin/utils/users.mjs.map +1 -1
  360. package/dist/admin/utils/validation.js +19 -7
  361. package/dist/admin/utils/validation.js.map +1 -1
  362. package/dist/admin/utils/validation.mjs +19 -7
  363. package/dist/admin/utils/validation.mjs.map +1 -1
  364. package/dist/server/controllers/collection-types.js +2 -1
  365. package/dist/server/controllers/collection-types.js.map +1 -1
  366. package/dist/server/controllers/collection-types.mjs +2 -1
  367. package/dist/server/controllers/collection-types.mjs.map +1 -1
  368. package/dist/server/controllers/content-types.js +11 -1
  369. package/dist/server/controllers/content-types.js.map +1 -1
  370. package/dist/server/controllers/content-types.mjs +11 -1
  371. package/dist/server/controllers/content-types.mjs.map +1 -1
  372. package/dist/server/controllers/index.js +3 -1
  373. package/dist/server/controllers/index.js.map +1 -1
  374. package/dist/server/controllers/index.mjs +3 -1
  375. package/dist/server/controllers/index.mjs.map +1 -1
  376. package/dist/server/controllers/relations.js +8 -6
  377. package/dist/server/controllers/relations.js.map +1 -1
  378. package/dist/server/controllers/relations.mjs +8 -6
  379. package/dist/server/controllers/relations.mjs.map +1 -1
  380. package/dist/server/controllers/single-types.js +3 -1
  381. package/dist/server/controllers/single-types.js.map +1 -1
  382. package/dist/server/controllers/single-types.mjs +3 -1
  383. package/dist/server/controllers/single-types.mjs.map +1 -1
  384. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  385. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  386. package/dist/server/controllers/validation/index.js +14 -2
  387. package/dist/server/controllers/validation/index.js.map +1 -1
  388. package/dist/server/controllers/validation/index.mjs +14 -2
  389. package/dist/server/controllers/validation/index.mjs.map +1 -1
  390. package/dist/server/controllers/validation/model-configuration.js +2 -2
  391. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  392. package/dist/server/controllers/validation/model-configuration.mjs +2 -2
  393. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  394. package/dist/server/history/services/lifecycles.js +23 -19
  395. package/dist/server/history/services/lifecycles.js.map +1 -1
  396. package/dist/server/history/services/lifecycles.mjs +23 -19
  397. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  398. package/dist/server/history/utils.js.map +1 -1
  399. package/dist/server/history/utils.mjs.map +1 -1
  400. package/dist/server/homepage/controllers/homepage.js +62 -0
  401. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  402. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  403. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  404. package/dist/server/homepage/controllers/index.js +10 -0
  405. package/dist/server/homepage/controllers/index.js.map +1 -0
  406. package/dist/server/homepage/controllers/index.mjs +8 -0
  407. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  408. package/dist/server/homepage/index.js +14 -0
  409. package/dist/server/homepage/index.js.map +1 -0
  410. package/dist/server/homepage/index.mjs +12 -0
  411. package/dist/server/homepage/index.mjs.map +1 -0
  412. package/dist/server/homepage/routes/homepage.js +36 -0
  413. package/dist/server/homepage/routes/homepage.js.map +1 -0
  414. package/dist/server/homepage/routes/homepage.mjs +34 -0
  415. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  416. package/dist/server/homepage/routes/index.js +13 -0
  417. package/dist/server/homepage/routes/index.js.map +1 -0
  418. package/dist/server/homepage/routes/index.mjs +11 -0
  419. package/dist/server/homepage/routes/index.mjs.map +1 -0
  420. package/dist/server/homepage/services/homepage.js +198 -0
  421. package/dist/server/homepage/services/homepage.js.map +1 -0
  422. package/dist/server/homepage/services/homepage.mjs +196 -0
  423. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  424. package/dist/server/homepage/services/index.js +10 -0
  425. package/dist/server/homepage/services/index.js.map +1 -0
  426. package/dist/server/homepage/services/index.mjs +8 -0
  427. package/dist/server/homepage/services/index.mjs.map +1 -0
  428. package/dist/server/middlewares/routing.js.map +1 -1
  429. package/dist/server/middlewares/routing.mjs.map +1 -1
  430. package/dist/server/preview/services/preview-config.js +11 -32
  431. package/dist/server/preview/services/preview-config.js.map +1 -1
  432. package/dist/server/preview/services/preview-config.mjs +12 -33
  433. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  434. package/dist/server/preview/services/preview.js +4 -1
  435. package/dist/server/preview/services/preview.js.map +1 -1
  436. package/dist/server/preview/services/preview.mjs +4 -1
  437. package/dist/server/preview/services/preview.mjs.map +1 -1
  438. package/dist/server/preview/utils.js.map +1 -1
  439. package/dist/server/preview/utils.mjs.map +1 -1
  440. package/dist/server/routes/index.js +3 -1
  441. package/dist/server/routes/index.js.map +1 -1
  442. package/dist/server/routes/index.mjs +3 -1
  443. package/dist/server/routes/index.mjs.map +1 -1
  444. package/dist/server/services/configuration.js.map +1 -1
  445. package/dist/server/services/configuration.mjs.map +1 -1
  446. package/dist/server/services/data-mapper.js +4 -1
  447. package/dist/server/services/data-mapper.js.map +1 -1
  448. package/dist/server/services/data-mapper.mjs +4 -1
  449. package/dist/server/services/data-mapper.mjs.map +1 -1
  450. package/dist/server/services/document-manager.js +8 -1
  451. package/dist/server/services/document-manager.js.map +1 -1
  452. package/dist/server/services/document-manager.mjs +8 -1
  453. package/dist/server/services/document-manager.mjs.map +1 -1
  454. package/dist/server/services/document-metadata.js +26 -2
  455. package/dist/server/services/document-metadata.js.map +1 -1
  456. package/dist/server/services/document-metadata.mjs +26 -2
  457. package/dist/server/services/document-metadata.mjs.map +1 -1
  458. package/dist/server/services/field-sizes.js.map +1 -1
  459. package/dist/server/services/field-sizes.mjs.map +1 -1
  460. package/dist/server/services/index.js +3 -1
  461. package/dist/server/services/index.js.map +1 -1
  462. package/dist/server/services/index.mjs +3 -1
  463. package/dist/server/services/index.mjs.map +1 -1
  464. package/dist/server/services/uid.js.map +1 -1
  465. package/dist/server/services/uid.mjs.map +1 -1
  466. package/dist/server/services/utils/configuration/attributes.js +1 -1
  467. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  468. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  469. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  470. package/dist/server/services/utils/configuration/layouts.js +1 -1
  471. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  472. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  473. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  474. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  475. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  476. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  477. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  478. package/dist/server/services/utils/populate.js +11 -0
  479. package/dist/server/services/utils/populate.js.map +1 -1
  480. package/dist/server/services/utils/populate.mjs +11 -0
  481. package/dist/server/services/utils/populate.mjs.map +1 -1
  482. package/dist/server/services/utils/store.js.map +1 -1
  483. package/dist/server/services/utils/store.mjs.map +1 -1
  484. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  485. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  486. package/dist/server/src/controllers/index.d.ts.map +1 -1
  487. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  488. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  489. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  490. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  491. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  492. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  493. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  494. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  495. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  496. package/dist/server/src/homepage/index.d.ts +23 -0
  497. package/dist/server/src/homepage/index.d.ts.map +1 -0
  498. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  499. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  500. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  501. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  502. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  503. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  504. package/dist/server/src/homepage/services/index.d.ts +16 -0
  505. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  506. package/dist/server/src/index.d.ts +14 -0
  507. package/dist/server/src/index.d.ts.map +1 -1
  508. package/dist/server/src/preview/services/index.d.ts +1 -0
  509. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  510. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  511. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  512. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  513. package/dist/server/src/preview/utils.d.ts +1 -0
  514. package/dist/server/src/preview/utils.d.ts.map +1 -1
  515. package/dist/server/src/routes/index.d.ts +1 -0
  516. package/dist/server/src/routes/index.d.ts.map +1 -1
  517. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  518. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  519. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  520. package/dist/server/src/services/index.d.ts +13 -0
  521. package/dist/server/src/services/index.d.ts.map +1 -1
  522. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  523. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  524. package/dist/shared/contracts/collection-types.d.ts +0 -1
  525. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  526. package/dist/shared/contracts/homepage.d.ts +13 -0
  527. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  528. package/package.json +12 -10
  529. package/dist/server/src/services/homepage.d.ts +0 -11
  530. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -2,16 +2,17 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
+ var core = require('@dnd-kit/core');
6
+ var sortable = require('@dnd-kit/sortable');
7
+ var utilities = require('@dnd-kit/utilities');
5
8
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
9
  var designSystem = require('@strapi/design-system');
7
10
  var Icons = require('@strapi/icons');
8
11
  var fractionalIndexing = require('fractional-indexing');
9
- var reactDndHtml5Backend = require('react-dnd-html5-backend');
12
+ var immer = require('immer');
10
13
  var reactIntl = require('react-intl');
11
14
  var reactRouterDom = require('react-router-dom');
12
15
  var styledComponents = require('styled-components');
13
- var dragAndDrop = require('../../constants/dragAndDrop.js');
14
- var useDragAndDrop = require('../../hooks/useDragAndDrop.js');
15
16
  var translations = require('../../utils/translations.js');
16
17
  var ComponentIcon = require('../ComponentIcon.js');
17
18
  var EditFieldForm = require('./EditFieldForm.js');
@@ -35,6 +36,46 @@ function _interopNamespaceDefault(e) {
35
36
 
36
37
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
37
38
 
39
+ const GRID_COLUMNS = 12;
40
+ /* -------------------------------------------------------------------------------------------------
41
+ * Drag and Drop
42
+ * -----------------------------------------------------------------------------------------------*/ const DroppableContainer = ({ id, children })=>{
43
+ const droppable = core.useDroppable({
44
+ id
45
+ });
46
+ return children(droppable);
47
+ };
48
+ const SortableItem = ({ id, children })=>{
49
+ const { attributes, setNodeRef, transform, transition } = sortable.useSortable({
50
+ id
51
+ });
52
+ const style = {
53
+ transform: utilities.CSS.Transform.toString(transform),
54
+ transition,
55
+ height: '100%'
56
+ };
57
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
58
+ ref: setNodeRef,
59
+ style: style,
60
+ ...attributes,
61
+ children: children
62
+ });
63
+ };
64
+ /**
65
+ * Compute uids and formName for drag and drop items for the incoming layout
66
+ */ const createDragAndDropContainersFromLayout = (layout)=>{
67
+ return layout.map((row, containerIndex)=>({
68
+ ...row,
69
+ // Use unique ids for drag and drop items
70
+ dndId: `container-${containerIndex}`,
71
+ children: row.children.map((child, childIndex)=>({
72
+ ...child,
73
+ dndId: `container-${containerIndex}-child-${childIndex}`,
74
+ // The formName must be recomputed each time an item is moved
75
+ formName: `layout.${containerIndex}.children.${childIndex}`
76
+ }))
77
+ }));
78
+ };
38
79
  const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
39
80
  const { formatMessage } = reactIntl.useIntl();
40
81
  const layout = strapiAdmin.useForm('Fields', (state)=>state.values.layout ?? []);
@@ -50,7 +91,7 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
50
91
  const [name, { visible, ...field }] = current;
51
92
  if (!existingFields.includes(name) && visible === true) {
52
93
  const type = attributes[name]?.type;
53
- const size = type ? fieldSizes[type] : 12;
94
+ const size = type ? fieldSizes[type] : GRID_COLUMNS;
54
95
  acc.push({
55
96
  ...field,
56
97
  label: field.label ?? name,
@@ -60,53 +101,57 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
60
101
  }
61
102
  return acc;
62
103
  }, []);
63
- const handleMoveField = ([newRowIndex, newFieldIndex], [currentRowIndex, currentFieldIndex])=>{
64
- /**
65
- * Because this view has the constraint that the sum of field sizes cannot be greater
66
- * than 12, we don't use the form's method to move field rows, instead, we calculate
67
- * the new layout and set the entire form.
68
- */ const newLayout = structuredClone(layout);
69
- /**
70
- * Remove field from the current layout space using splice so we have the item
71
- */ const [field] = newLayout[currentRowIndex].children.splice(currentFieldIndex, 1);
72
- if (!field || field.name === TEMP_FIELD_NAME) {
73
- return;
74
- }
75
- const newRow = newLayout[newRowIndex].children;
76
- const [newFieldKey] = generateNKeysBetween(newRow, 1, currentFieldIndex, newFieldIndex);
77
- /**
78
- * Next we inject the field into it's new row at it's specified index, we then remove the spaces
79
- * if they exist and recalculate into potentially two arrays ONLY if the sizing is now over 12,
80
- * the row and the rest of the row that couldn't fit.
81
- *
82
- * for example, if i have a row of `[{size: 4}, {size: 6}]` and i add `{size: 8}` a index 0,
83
- * the new array will look like `[{size: 8}, {size: 4}, {size: 6}]` which breaks the limit of 12,
84
- * so instead we make two arrays for the new rows `[[{size: 8}, {size: 4}], [{size: 6}]]` which we
85
- * then inject at the original row point with spacers included.
86
- */ newRow.splice(newFieldIndex, 0, {
87
- ...field,
88
- __temp_key__: newFieldKey
89
- });
90
- if (newLayout[newRowIndex].children.reduce((acc, curr)=>acc + curr.size, 0) > 12) {
91
- const recalculatedRows = chunkArray(newLayout[newRowIndex].children.filter((field)=>field.name !== TEMP_FIELD_NAME));
92
- const rowKeys = generateNKeysBetween(newLayout, recalculatedRows.length, currentRowIndex, newRowIndex);
93
- newLayout.splice(newRowIndex, 1, ...recalculatedRows.map((row, index)=>({
94
- __temp_key__: rowKeys[index],
95
- children: row
96
- })));
104
+ const handleRemoveField = (rowIndex, fieldIndex)=>()=>{
105
+ if (layout[rowIndex].children.length === 1) {
106
+ removeFieldRow(`layout`, rowIndex);
107
+ } else {
108
+ onChange(`layout.${rowIndex}.children`, [
109
+ ...layout[rowIndex].children.slice(0, fieldIndex),
110
+ ...layout[rowIndex].children.slice(fieldIndex + 1)
111
+ ]);
112
+ }
113
+ };
114
+ const handleAddField = (field)=>()=>{
115
+ addFieldRow('layout', {
116
+ children: [
117
+ field
118
+ ]
119
+ });
120
+ };
121
+ const [containers, setContainers] = React__namespace.useState(()=>createDragAndDropContainersFromLayout(layout));
122
+ const [activeDragItem, setActiveDragItem] = React__namespace.useState(null);
123
+ /**
124
+ * Finds either the parent container id or the child id within a container
125
+ */ function findContainer(id, containersAsDictionary) {
126
+ // If the id is a key, then it is the parent container
127
+ if (id in containersAsDictionary) {
128
+ return id;
97
129
  }
98
- /**
99
- * Now we remove our spacers from the rows so we can understand what dead rows exist:
100
- * - if there's only spacers left
101
- * - there's nothing in the row, e.g. a size 12 field left it.
102
- * These rows are then filtered out.
103
- * After that, we recalculate the spacers for the rows that need them.
104
- */ const newLayoutWithSpacers = newLayout.map((row)=>({
130
+ // Otherwise, it is a child inside a container
131
+ return Object.keys(containersAsDictionary).find((key)=>containersAsDictionary[key].children.find((child)=>child.dndId === id));
132
+ }
133
+ /**
134
+ * Gets an item from a container based on its id
135
+ */ const getItemFromContainer = (id, container)=>{
136
+ return container.children.find((item)=>id === item.dndId);
137
+ };
138
+ /**
139
+ * Gets the containers as dictionary for quick lookup
140
+ */ const getContainersAsDictionary = ()=>{
141
+ return Object.fromEntries(containers.map((container)=>[
142
+ container.dndId,
143
+ container
144
+ ]));
145
+ };
146
+ /**
147
+ * Recomputes the empty space in the grid
148
+ */ const createContainersWithSpacers = (layout)=>{
149
+ return layout.map((row)=>({
105
150
  ...row,
106
151
  children: row.children.filter((field)=>field.name !== TEMP_FIELD_NAME)
107
152
  })).filter((row)=>row.children.length > 0).map((row)=>{
108
153
  const totalSpaceTaken = row.children.reduce((acc, curr)=>acc + curr.size, 0);
109
- if (totalSpaceTaken < 12) {
154
+ if (totalSpaceTaken < GRID_COLUMNS) {
110
155
  const [spacerKey] = fractionalIndexing.generateNKeysBetween(row.children.at(-1)?.__temp_key__, undefined, 1);
111
156
  return {
112
157
  ...row,
@@ -114,7 +159,7 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
114
159
  ...row.children,
115
160
  {
116
161
  name: TEMP_FIELD_NAME,
117
- size: 12 - totalSpaceTaken,
162
+ size: GRID_COLUMNS - totalSpaceTaken,
118
163
  __temp_key__: spacerKey
119
164
  }
120
165
  ]
@@ -122,182 +167,235 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
122
167
  }
123
168
  return row;
124
169
  });
125
- onChange('layout', newLayoutWithSpacers);
126
170
  };
127
- const handleRemoveField = (rowIndex, fieldIndex)=>()=>{
128
- if (layout[rowIndex].children.length === 1) {
129
- removeFieldRow(`layout`, rowIndex);
130
- } else {
131
- onChange(`layout.${rowIndex}.children`, [
132
- ...layout[rowIndex].children.slice(0, fieldIndex),
133
- ...layout[rowIndex].children.slice(fieldIndex + 1)
134
- ]);
171
+ /**
172
+ * When layout changes (e.g. when a field size is changed or the containers are reordered)
173
+ * we need to update the ids and form names
174
+ */ React__namespace.useEffect(()=>{
175
+ const containers = createDragAndDropContainersFromLayout(layout);
176
+ setContainers(containers);
177
+ }, [
178
+ layout,
179
+ setContainers
180
+ ]);
181
+ return /*#__PURE__*/ jsxRuntime.jsx(core.DndContext, {
182
+ onDragStart: (event)=>{
183
+ const containersAsDictionary = getContainersAsDictionary();
184
+ const activeContainer = findContainer(event.active.id, containersAsDictionary);
185
+ if (!activeContainer) return;
186
+ const activeItem = getItemFromContainer(event.active.id, containersAsDictionary[activeContainer]);
187
+ if (activeItem) {
188
+ setActiveDragItem(activeItem);
135
189
  }
136
- };
137
- const handleAddField = (field)=>()=>{
138
- addFieldRow('layout', {
139
- children: [
140
- field
141
- ]
190
+ },
191
+ onDragOver: ({ active, over })=>{
192
+ const containersAsDictionary = getContainersAsDictionary();
193
+ const activeContainer = findContainer(active.id, containersAsDictionary);
194
+ const overContainer = findContainer(over?.id ?? '', containersAsDictionary);
195
+ const activeContainerIndex = containers.findIndex((container)=>container.dndId === activeContainer);
196
+ const overContainerIndex = containers.findIndex((container)=>container.dndId === overContainer);
197
+ if (!activeContainer || !overContainer) {
198
+ return;
199
+ }
200
+ const draggedItem = getItemFromContainer(active.id, containersAsDictionary[activeContainer]);
201
+ const overItem = getItemFromContainer(over?.id ?? '', containersAsDictionary[overContainer]);
202
+ const overIndex = containersAsDictionary[overContainer].children.findIndex((item)=>item.dndId === over?.id);
203
+ if (!draggedItem) return;
204
+ // Handle a full width field being dragged
205
+ if (draggedItem?.size === GRID_COLUMNS) {
206
+ // Swap the items in the containers
207
+ const update = immer.produce(containers, (draft)=>{
208
+ draft[activeContainerIndex].children = containers[overContainerIndex].children;
209
+ draft[overContainerIndex].children = containers[activeContainerIndex].children;
210
+ });
211
+ setContainers(update);
212
+ return;
213
+ }
214
+ /**
215
+ * Handle an item being dragged from one container to another,
216
+ * the item is removed from its current container, and then added to its new container
217
+ * An item can only be added in a container if there is enough space.
218
+ */ const update = immer.produce(containers, (draft)=>{
219
+ draft[activeContainerIndex].children = draft[activeContainerIndex].children.filter((item)=>item.dndId !== active.id);
220
+ const spaceTaken = draft[overContainerIndex].children.reduce((acc, curr)=>{
221
+ if (curr.name === TEMP_FIELD_NAME) {
222
+ return acc;
223
+ }
224
+ return acc + curr.size;
225
+ }, 0);
226
+ // Check the sizes of the children, if there is no room, exit
227
+ if (spaceTaken + draggedItem.size > GRID_COLUMNS) {
228
+ // Leave the item where it started
229
+ draft[activeContainerIndex].children = containers[activeContainerIndex].children;
230
+ return;
231
+ }
232
+ if (overItem?.name === TEMP_FIELD_NAME) {
233
+ // We are over an invisible spacer, replace it with the dragged item
234
+ draft[overContainerIndex].children.splice(overIndex, 1, draggedItem);
235
+ return;
236
+ }
237
+ // There is room for the item in the container, drop it
238
+ draft[overContainerIndex].children.splice(overIndex, 0, draggedItem);
142
239
  });
143
- };
144
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
145
- paddingTop: 6,
146
- direction: "column",
147
- alignItems: "stretch",
148
- gap: 4,
149
- children: [
150
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
151
- alignItems: "flex-start",
152
- direction: "column",
153
- justifyContent: "space-between",
154
- children: [
155
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
156
- fontWeight: "bold",
157
- children: formatMessage({
158
- id: translations.getTranslation('containers.list.displayedFields'),
159
- defaultMessage: 'Displayed fields'
160
- })
161
- }),
162
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
163
- variant: "pi",
164
- textColor: "neutral600",
165
- children: formatMessage({
166
- id: 'containers.SettingPage.editSettings.description',
167
- defaultMessage: 'Drag & drop the fields to build the layout'
168
- })
169
- })
170
- ]
171
- }),
172
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
173
- padding: 4,
174
- hasRadius: true,
175
- borderStyle: "dashed",
176
- borderWidth: "1px",
177
- borderColor: "neutral300",
178
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
240
+ setContainers(update);
241
+ },
242
+ onDragEnd: (event)=>{
243
+ const { active, over } = event;
244
+ const { id } = active;
245
+ const overId = over?.id;
246
+ const containersAsDictionary = getContainersAsDictionary();
247
+ const activeContainer = findContainer(id, containersAsDictionary);
248
+ const overContainer = findContainer(overId, containersAsDictionary);
249
+ if (!activeContainer || !overContainer) {
250
+ return;
251
+ }
252
+ const activeIndex = containersAsDictionary[activeContainer].children.findIndex((children)=>children.dndId === id);
253
+ const overIndex = containersAsDictionary[overContainer].children.findIndex((children)=>children.dndId === overId);
254
+ const movedContainerItems = immer.produce(containersAsDictionary, (draft)=>{
255
+ if (activeIndex !== overIndex && activeContainer === overContainer) {
256
+ // Move items around inside their own container
257
+ draft[activeContainer].children = sortable.arrayMove(draft[activeContainer].children, activeIndex, overIndex);
258
+ }
259
+ });
260
+ // Remove properties the server does not expect before updating the form
261
+ const updatedContainers = Object.values(movedContainerItems);
262
+ const updatedContainersWithSpacers = createContainersWithSpacers(updatedContainers);
263
+ const updatedLayout = updatedContainersWithSpacers.map(({ dndId: _dndId, children, ...container })=>({
264
+ ...container,
265
+ children: children.map(({ dndId: _dndId, formName: _formName, ...child })=>child)
266
+ }));
267
+ // Update the layout
268
+ onChange('layout', updatedLayout);
269
+ setActiveDragItem(null);
270
+ },
271
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
272
+ paddingTop: 6,
273
+ direction: "column",
274
+ alignItems: "stretch",
275
+ gap: 4,
276
+ children: [
277
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
278
+ alignItems: "flex-start",
179
279
  direction: "column",
180
- alignItems: "stretch",
181
- gap: 2,
280
+ justifyContent: "space-between",
182
281
  children: [
183
- layout.map((row, rowIndex)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
184
- gap: 2,
185
- children: row.children.map(({ size, ...field }, fieldIndex)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
186
- col: size,
187
- direction: "column",
188
- alignItems: "stretch",
189
- children: /*#__PURE__*/ jsxRuntime.jsx(Field, {
190
- attribute: attributes[field.name],
191
- components: components,
192
- index: [
193
- rowIndex,
194
- fieldIndex
195
- ],
196
- name: `layout.${rowIndex}.children.${fieldIndex}`,
197
- onMoveField: handleMoveField,
198
- onRemoveField: handleRemoveField(rowIndex, fieldIndex)
199
- })
200
- }, field.name))
201
- }, row.__temp_key__)),
202
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Menu.Root, {
203
- children: [
204
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Trigger, {
205
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(Icons.Plus, {}),
206
- endIcon: null,
207
- disabled: remainingFields.length === 0,
208
- fullWidth: true,
209
- variant: "secondary",
210
- children: formatMessage({
211
- id: translations.getTranslation('containers.SettingPage.add.field'),
212
- defaultMessage: 'Insert another field'
213
- })
214
- }),
215
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Content, {
216
- children: remainingFields.map((field)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
217
- onSelect: handleAddField(field),
218
- children: field.label
219
- }, field.name))
220
- })
221
- ]
282
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
283
+ fontWeight: "bold",
284
+ children: formatMessage({
285
+ id: translations.getTranslation('containers.list.displayedFields'),
286
+ defaultMessage: 'Displayed fields'
287
+ })
288
+ }),
289
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
290
+ variant: "pi",
291
+ textColor: "neutral600",
292
+ children: formatMessage({
293
+ id: 'containers.SettingPage.editSettings.description',
294
+ defaultMessage: 'Drag & drop the fields to build the layout'
295
+ })
222
296
  })
223
297
  ]
298
+ }),
299
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
300
+ padding: 4,
301
+ hasRadius: true,
302
+ borderStyle: "dashed",
303
+ borderWidth: "1px",
304
+ borderColor: "neutral300",
305
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
306
+ direction: "column",
307
+ alignItems: "stretch",
308
+ gap: 2,
309
+ children: [
310
+ containers.map((container, containerIndex)=>/*#__PURE__*/ jsxRuntime.jsx(sortable.SortableContext, {
311
+ id: container.dndId,
312
+ items: container.children.map((child)=>({
313
+ id: child.dndId
314
+ })),
315
+ children: /*#__PURE__*/ jsxRuntime.jsx(DroppableContainer, {
316
+ id: container.dndId,
317
+ children: ({ setNodeRef })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
318
+ ref: setNodeRef,
319
+ gap: 2,
320
+ children: container.children.map((child, childIndex)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
321
+ col: child.size,
322
+ xs: 12,
323
+ direction: "column",
324
+ alignItems: "stretch",
325
+ children: /*#__PURE__*/ jsxRuntime.jsx(SortableItem, {
326
+ id: child.dndId,
327
+ children: /*#__PURE__*/ jsxRuntime.jsx(Field, {
328
+ attribute: attributes[child.name],
329
+ components: components,
330
+ name: child.formName,
331
+ onRemoveField: handleRemoveField(containerIndex, childIndex),
332
+ dndId: child.dndId
333
+ })
334
+ })
335
+ }, child.dndId))
336
+ }, container.dndId)
337
+ })
338
+ }, container.dndId)),
339
+ /*#__PURE__*/ jsxRuntime.jsx(core.DragOverlay, {
340
+ children: activeDragItem ? /*#__PURE__*/ jsxRuntime.jsx(Field, {
341
+ attribute: attributes[activeDragItem.name],
342
+ components: components,
343
+ name: activeDragItem.formName,
344
+ dndId: activeDragItem.dndId
345
+ }) : null
346
+ }),
347
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Menu.Root, {
348
+ children: [
349
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Trigger, {
350
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(Icons.Plus, {}),
351
+ endIcon: null,
352
+ disabled: remainingFields.length === 0,
353
+ fullWidth: true,
354
+ variant: "secondary",
355
+ children: formatMessage({
356
+ id: translations.getTranslation('containers.SettingPage.add.field'),
357
+ defaultMessage: 'Insert another field'
358
+ })
359
+ }),
360
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Content, {
361
+ children: remainingFields.map((field)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
362
+ onSelect: handleAddField(field),
363
+ children: field.label
364
+ }, field.name))
365
+ })
366
+ ]
367
+ })
368
+ ]
369
+ })
224
370
  })
225
- })
226
- ]
371
+ ]
372
+ })
227
373
  });
228
374
  };
229
- /**
230
- * @internal
231
- * @description Small abstraction to solve within an array of fields where you can
232
- * add a field to the beginning or start, move back and forth what it's index range
233
- * should be when calculating it's new temp key
234
- */ const generateNKeysBetween = (field, count, currInd, newInd)=>{
235
- const startKey = currInd > newInd ? field[newInd - 1]?.__temp_key__ : field[newInd]?.__temp_key__;
236
- const endKey = currInd > newInd ? field[newInd]?.__temp_key__ : field[newInd + 1]?.__temp_key__;
237
- return fractionalIndexing.generateNKeysBetween(startKey, endKey, count);
238
- };
239
- /**
240
- * @internal
241
- * @description chunks a row of layouts by the max size we allow, 12. It does not add the
242
- * spacers again, that should be added separately.
243
- */ const chunkArray = (array)=>{
244
- const result = [];
245
- let temp = [];
246
- array.reduce((acc, field)=>{
247
- if (acc + field.size > 12) {
248
- result.push(temp);
249
- temp = [
250
- field
251
- ];
252
- return field.size;
253
- } else {
254
- temp.push(field);
255
- return acc + field.size;
256
- }
257
- }, 0);
258
- if (temp.length > 0) {
259
- result.push(temp);
260
- }
261
- return result;
262
- };
263
375
  const TEMP_FIELD_NAME = '_TEMP_';
264
376
  /**
265
377
  * Displays a field in the layout with drag options, also
266
378
  * opens a modal to edit the details of said field.
267
- */ const Field = ({ attribute, components, name, index, onMoveField, onRemoveField })=>{
379
+ */ const Field = ({ attribute, components, name, onRemoveField, dndId })=>{
380
+ const isDesktop = strapiAdmin.useIsDesktop();
268
381
  const [isModalOpen, setIsModalOpen] = React__namespace.useState(false);
269
382
  const { formatMessage } = reactIntl.useIntl();
270
383
  const { value } = strapiAdmin.useField(name);
271
- const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop.useDragAndDrop(true, {
272
- dropSensitivity: 'immediate',
273
- type: dragAndDrop.ItemTypes.EDIT_FIELD,
274
- item: {
275
- index,
276
- label: value?.label,
277
- name
278
- },
279
- index,
280
- onMoveItem: onMoveField
384
+ const { listeners, setActivatorNodeRef } = sortable.useSortable({
385
+ id: dndId
281
386
  });
282
- React__namespace.useEffect(()=>{
283
- dragPreviewRef(reactDndHtml5Backend.getEmptyImage(), {
284
- captureDraggingState: false
285
- });
286
- }, [
287
- dragPreviewRef
288
- ]);
289
- const composedRefs = designSystem.useComposedRefs(dragRef, objectRef);
290
387
  const handleRemoveField = (e)=>{
291
388
  e.preventDefault();
292
389
  e.stopPropagation();
293
- onRemoveField(e);
390
+ if (onRemoveField) {
391
+ onRemoveField?.(e);
392
+ }
294
393
  };
295
394
  const onEditFieldMeta = (e)=>{
296
395
  e.preventDefault();
297
396
  e.stopPropagation();
298
397
  setIsModalOpen(true);
299
398
  };
300
- const tempRefs = designSystem.useComposedRefs(dropRef, objectRef);
301
399
  if (!value) {
302
400
  return null;
303
401
  }
@@ -307,10 +405,12 @@ const TEMP_FIELD_NAME = '_TEMP_';
307
405
  height: "100%",
308
406
  style: {
309
407
  opacity: 0
310
- },
311
- ref: tempRefs
408
+ }
312
409
  });
313
410
  }
411
+ if (!attribute) {
412
+ return null;
413
+ }
314
414
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Root, {
315
415
  open: isModalOpen,
316
416
  onOpenChange: setIsModalOpen,
@@ -319,17 +419,15 @@ const TEMP_FIELD_NAME = '_TEMP_';
319
419
  borderColor: "neutral150",
320
420
  background: "neutral100",
321
421
  hasRadius: true,
322
- style: {
323
- opacity: isDragging ? 0.5 : 1
324
- },
325
- ref: dropRef,
326
422
  gap: 3,
327
423
  cursor: "pointer",
328
424
  onClick: ()=>{
329
425
  setIsModalOpen(true);
330
426
  },
427
+ position: "relative",
331
428
  children: [
332
- /*#__PURE__*/ jsxRuntime.jsx(DragButton, {
429
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(DragButton, {
430
+ ref: setActivatorNodeRef,
333
431
  tag: "span",
334
432
  withTooltip: false,
335
433
  label: formatMessage({
@@ -338,8 +436,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
338
436
  }, {
339
437
  item: value.label
340
438
  }),
341
- onClick: (e)=>e.stopPropagation(),
342
- ref: composedRefs,
439
+ ...listeners,
343
440
  children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Drag, {})
344
441
  }),
345
442
  /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
@@ -359,6 +456,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
359
456
  children: value.label
360
457
  }),
361
458
  /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
459
+ position: "relative",
362
460
  children: [
363
461
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
364
462
  type: "button",
@@ -407,6 +505,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
407
505
  width: "100%",
408
506
  children: components[attribute.component].layout.map((row)=>row.map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
409
507
  col: size,
508
+ xs: 12,
410
509
  direction: "column",
411
510
  alignItems: "stretch",
412
511
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
@@ -446,6 +545,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
446
545
  alignItems: "flex-start",
447
546
  gap: 2,
448
547
  width: "100%",
548
+ wrap: "wrap",
449
549
  children: attribute?.components.map((uid)=>/*#__PURE__*/ jsxRuntime.jsxs(ComponentLink, {
450
550
  // used to stop the edit form from appearing when we click here.
451
551
  onClick: (e)=>e.stopPropagation(),
@@ -530,5 +630,6 @@ const ComponentLink = styledComponents.styled(reactRouterDom.NavLink)`
530
630
  `;
531
631
 
532
632
  exports.Fields = Fields;
633
+ exports.SortableItem = SortableItem;
533
634
  exports.TEMP_FIELD_NAME = TEMP_FIELD_NAME;
534
635
  //# sourceMappingURL=Fields.js.map