@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
@@ -1,19 +1,60 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useForm, useField } from '@strapi/admin/strapi-admin';
4
- import { IconButton, Typography, Flex, Box, Grid, Menu, useComposedRefs, Modal, Link } from '@strapi/design-system';
3
+ import { DndContext, DragOverlay, useDroppable } from '@dnd-kit/core';
4
+ import { arrayMove, SortableContext, useSortable } from '@dnd-kit/sortable';
5
+ import { CSS } from '@dnd-kit/utilities';
6
+ import { useForm, useIsDesktop, useField } from '@strapi/admin/strapi-admin';
7
+ import { IconButton, Typography, Flex, Box, Grid, Menu, Modal, Link } from '@strapi/design-system';
5
8
  import { Plus, Drag, Pencil, Cross, Cog } from '@strapi/icons';
6
- import { generateNKeysBetween as generateNKeysBetween$1 } from 'fractional-indexing';
7
- import { getEmptyImage } from 'react-dnd-html5-backend';
9
+ import { generateNKeysBetween } from 'fractional-indexing';
10
+ import { produce } from 'immer';
8
11
  import { useIntl } from 'react-intl';
9
12
  import { NavLink } from 'react-router-dom';
10
13
  import { styled } from 'styled-components';
11
- import { ItemTypes } from '../../constants/dragAndDrop.mjs';
12
- import { useDragAndDrop } from '../../hooks/useDragAndDrop.mjs';
13
14
  import { getTranslation } from '../../utils/translations.mjs';
14
15
  import { ComponentIcon } from '../ComponentIcon.mjs';
15
16
  import { EditFieldForm } from './EditFieldForm.mjs';
16
17
 
18
+ const GRID_COLUMNS = 12;
19
+ /* -------------------------------------------------------------------------------------------------
20
+ * Drag and Drop
21
+ * -----------------------------------------------------------------------------------------------*/ const DroppableContainer = ({ id, children })=>{
22
+ const droppable = useDroppable({
23
+ id
24
+ });
25
+ return children(droppable);
26
+ };
27
+ const SortableItem = ({ id, children })=>{
28
+ const { attributes, setNodeRef, transform, transition } = useSortable({
29
+ id
30
+ });
31
+ const style = {
32
+ transform: CSS.Transform.toString(transform),
33
+ transition,
34
+ height: '100%'
35
+ };
36
+ return /*#__PURE__*/ jsx("div", {
37
+ ref: setNodeRef,
38
+ style: style,
39
+ ...attributes,
40
+ children: children
41
+ });
42
+ };
43
+ /**
44
+ * Compute uids and formName for drag and drop items for the incoming layout
45
+ */ const createDragAndDropContainersFromLayout = (layout)=>{
46
+ return layout.map((row, containerIndex)=>({
47
+ ...row,
48
+ // Use unique ids for drag and drop items
49
+ dndId: `container-${containerIndex}`,
50
+ children: row.children.map((child, childIndex)=>({
51
+ ...child,
52
+ dndId: `container-${containerIndex}-child-${childIndex}`,
53
+ // The formName must be recomputed each time an item is moved
54
+ formName: `layout.${containerIndex}.children.${childIndex}`
55
+ }))
56
+ }));
57
+ };
17
58
  const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
18
59
  const { formatMessage } = useIntl();
19
60
  const layout = useForm('Fields', (state)=>state.values.layout ?? []);
@@ -29,7 +70,7 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
29
70
  const [name, { visible, ...field }] = current;
30
71
  if (!existingFields.includes(name) && visible === true) {
31
72
  const type = attributes[name]?.type;
32
- const size = type ? fieldSizes[type] : 12;
73
+ const size = type ? fieldSizes[type] : GRID_COLUMNS;
33
74
  acc.push({
34
75
  ...field,
35
76
  label: field.label ?? name,
@@ -39,61 +80,65 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
39
80
  }
40
81
  return acc;
41
82
  }, []);
42
- const handleMoveField = ([newRowIndex, newFieldIndex], [currentRowIndex, currentFieldIndex])=>{
43
- /**
44
- * Because this view has the constraint that the sum of field sizes cannot be greater
45
- * than 12, we don't use the form's method to move field rows, instead, we calculate
46
- * the new layout and set the entire form.
47
- */ const newLayout = structuredClone(layout);
48
- /**
49
- * Remove field from the current layout space using splice so we have the item
50
- */ const [field] = newLayout[currentRowIndex].children.splice(currentFieldIndex, 1);
51
- if (!field || field.name === TEMP_FIELD_NAME) {
52
- return;
53
- }
54
- const newRow = newLayout[newRowIndex].children;
55
- const [newFieldKey] = generateNKeysBetween(newRow, 1, currentFieldIndex, newFieldIndex);
56
- /**
57
- * Next we inject the field into it's new row at it's specified index, we then remove the spaces
58
- * if they exist and recalculate into potentially two arrays ONLY if the sizing is now over 12,
59
- * the row and the rest of the row that couldn't fit.
60
- *
61
- * for example, if i have a row of `[{size: 4}, {size: 6}]` and i add `{size: 8}` a index 0,
62
- * the new array will look like `[{size: 8}, {size: 4}, {size: 6}]` which breaks the limit of 12,
63
- * so instead we make two arrays for the new rows `[[{size: 8}, {size: 4}], [{size: 6}]]` which we
64
- * then inject at the original row point with spacers included.
65
- */ newRow.splice(newFieldIndex, 0, {
66
- ...field,
67
- __temp_key__: newFieldKey
68
- });
69
- if (newLayout[newRowIndex].children.reduce((acc, curr)=>acc + curr.size, 0) > 12) {
70
- const recalculatedRows = chunkArray(newLayout[newRowIndex].children.filter((field)=>field.name !== TEMP_FIELD_NAME));
71
- const rowKeys = generateNKeysBetween(newLayout, recalculatedRows.length, currentRowIndex, newRowIndex);
72
- newLayout.splice(newRowIndex, 1, ...recalculatedRows.map((row, index)=>({
73
- __temp_key__: rowKeys[index],
74
- children: row
75
- })));
83
+ const handleRemoveField = (rowIndex, fieldIndex)=>()=>{
84
+ if (layout[rowIndex].children.length === 1) {
85
+ removeFieldRow(`layout`, rowIndex);
86
+ } else {
87
+ onChange(`layout.${rowIndex}.children`, [
88
+ ...layout[rowIndex].children.slice(0, fieldIndex),
89
+ ...layout[rowIndex].children.slice(fieldIndex + 1)
90
+ ]);
91
+ }
92
+ };
93
+ const handleAddField = (field)=>()=>{
94
+ addFieldRow('layout', {
95
+ children: [
96
+ field
97
+ ]
98
+ });
99
+ };
100
+ const [containers, setContainers] = React.useState(()=>createDragAndDropContainersFromLayout(layout));
101
+ const [activeDragItem, setActiveDragItem] = React.useState(null);
102
+ /**
103
+ * Finds either the parent container id or the child id within a container
104
+ */ function findContainer(id, containersAsDictionary) {
105
+ // If the id is a key, then it is the parent container
106
+ if (id in containersAsDictionary) {
107
+ return id;
76
108
  }
77
- /**
78
- * Now we remove our spacers from the rows so we can understand what dead rows exist:
79
- * - if there's only spacers left
80
- * - there's nothing in the row, e.g. a size 12 field left it.
81
- * These rows are then filtered out.
82
- * After that, we recalculate the spacers for the rows that need them.
83
- */ const newLayoutWithSpacers = newLayout.map((row)=>({
109
+ // Otherwise, it is a child inside a container
110
+ return Object.keys(containersAsDictionary).find((key)=>containersAsDictionary[key].children.find((child)=>child.dndId === id));
111
+ }
112
+ /**
113
+ * Gets an item from a container based on its id
114
+ */ const getItemFromContainer = (id, container)=>{
115
+ return container.children.find((item)=>id === item.dndId);
116
+ };
117
+ /**
118
+ * Gets the containers as dictionary for quick lookup
119
+ */ const getContainersAsDictionary = ()=>{
120
+ return Object.fromEntries(containers.map((container)=>[
121
+ container.dndId,
122
+ container
123
+ ]));
124
+ };
125
+ /**
126
+ * Recomputes the empty space in the grid
127
+ */ const createContainersWithSpacers = (layout)=>{
128
+ return layout.map((row)=>({
84
129
  ...row,
85
130
  children: row.children.filter((field)=>field.name !== TEMP_FIELD_NAME)
86
131
  })).filter((row)=>row.children.length > 0).map((row)=>{
87
132
  const totalSpaceTaken = row.children.reduce((acc, curr)=>acc + curr.size, 0);
88
- if (totalSpaceTaken < 12) {
89
- const [spacerKey] = generateNKeysBetween$1(row.children.at(-1)?.__temp_key__, undefined, 1);
133
+ if (totalSpaceTaken < GRID_COLUMNS) {
134
+ const [spacerKey] = generateNKeysBetween(row.children.at(-1)?.__temp_key__, undefined, 1);
90
135
  return {
91
136
  ...row,
92
137
  children: [
93
138
  ...row.children,
94
139
  {
95
140
  name: TEMP_FIELD_NAME,
96
- size: 12 - totalSpaceTaken,
141
+ size: GRID_COLUMNS - totalSpaceTaken,
97
142
  __temp_key__: spacerKey
98
143
  }
99
144
  ]
@@ -101,182 +146,235 @@ const Fields = ({ attributes, fieldSizes, components, metadatas = {} })=>{
101
146
  }
102
147
  return row;
103
148
  });
104
- onChange('layout', newLayoutWithSpacers);
105
149
  };
106
- const handleRemoveField = (rowIndex, fieldIndex)=>()=>{
107
- if (layout[rowIndex].children.length === 1) {
108
- removeFieldRow(`layout`, rowIndex);
109
- } else {
110
- onChange(`layout.${rowIndex}.children`, [
111
- ...layout[rowIndex].children.slice(0, fieldIndex),
112
- ...layout[rowIndex].children.slice(fieldIndex + 1)
113
- ]);
150
+ /**
151
+ * When layout changes (e.g. when a field size is changed or the containers are reordered)
152
+ * we need to update the ids and form names
153
+ */ React.useEffect(()=>{
154
+ const containers = createDragAndDropContainersFromLayout(layout);
155
+ setContainers(containers);
156
+ }, [
157
+ layout,
158
+ setContainers
159
+ ]);
160
+ return /*#__PURE__*/ jsx(DndContext, {
161
+ onDragStart: (event)=>{
162
+ const containersAsDictionary = getContainersAsDictionary();
163
+ const activeContainer = findContainer(event.active.id, containersAsDictionary);
164
+ if (!activeContainer) return;
165
+ const activeItem = getItemFromContainer(event.active.id, containersAsDictionary[activeContainer]);
166
+ if (activeItem) {
167
+ setActiveDragItem(activeItem);
114
168
  }
115
- };
116
- const handleAddField = (field)=>()=>{
117
- addFieldRow('layout', {
118
- children: [
119
- field
120
- ]
169
+ },
170
+ onDragOver: ({ active, over })=>{
171
+ const containersAsDictionary = getContainersAsDictionary();
172
+ const activeContainer = findContainer(active.id, containersAsDictionary);
173
+ const overContainer = findContainer(over?.id ?? '', containersAsDictionary);
174
+ const activeContainerIndex = containers.findIndex((container)=>container.dndId === activeContainer);
175
+ const overContainerIndex = containers.findIndex((container)=>container.dndId === overContainer);
176
+ if (!activeContainer || !overContainer) {
177
+ return;
178
+ }
179
+ const draggedItem = getItemFromContainer(active.id, containersAsDictionary[activeContainer]);
180
+ const overItem = getItemFromContainer(over?.id ?? '', containersAsDictionary[overContainer]);
181
+ const overIndex = containersAsDictionary[overContainer].children.findIndex((item)=>item.dndId === over?.id);
182
+ if (!draggedItem) return;
183
+ // Handle a full width field being dragged
184
+ if (draggedItem?.size === GRID_COLUMNS) {
185
+ // Swap the items in the containers
186
+ const update = produce(containers, (draft)=>{
187
+ draft[activeContainerIndex].children = containers[overContainerIndex].children;
188
+ draft[overContainerIndex].children = containers[activeContainerIndex].children;
189
+ });
190
+ setContainers(update);
191
+ return;
192
+ }
193
+ /**
194
+ * Handle an item being dragged from one container to another,
195
+ * the item is removed from its current container, and then added to its new container
196
+ * An item can only be added in a container if there is enough space.
197
+ */ const update = produce(containers, (draft)=>{
198
+ draft[activeContainerIndex].children = draft[activeContainerIndex].children.filter((item)=>item.dndId !== active.id);
199
+ const spaceTaken = draft[overContainerIndex].children.reduce((acc, curr)=>{
200
+ if (curr.name === TEMP_FIELD_NAME) {
201
+ return acc;
202
+ }
203
+ return acc + curr.size;
204
+ }, 0);
205
+ // Check the sizes of the children, if there is no room, exit
206
+ if (spaceTaken + draggedItem.size > GRID_COLUMNS) {
207
+ // Leave the item where it started
208
+ draft[activeContainerIndex].children = containers[activeContainerIndex].children;
209
+ return;
210
+ }
211
+ if (overItem?.name === TEMP_FIELD_NAME) {
212
+ // We are over an invisible spacer, replace it with the dragged item
213
+ draft[overContainerIndex].children.splice(overIndex, 1, draggedItem);
214
+ return;
215
+ }
216
+ // There is room for the item in the container, drop it
217
+ draft[overContainerIndex].children.splice(overIndex, 0, draggedItem);
121
218
  });
122
- };
123
- return /*#__PURE__*/ jsxs(Flex, {
124
- paddingTop: 6,
125
- direction: "column",
126
- alignItems: "stretch",
127
- gap: 4,
128
- children: [
129
- /*#__PURE__*/ jsxs(Flex, {
130
- alignItems: "flex-start",
131
- direction: "column",
132
- justifyContent: "space-between",
133
- children: [
134
- /*#__PURE__*/ jsx(Typography, {
135
- fontWeight: "bold",
136
- children: formatMessage({
137
- id: getTranslation('containers.list.displayedFields'),
138
- defaultMessage: 'Displayed fields'
139
- })
140
- }),
141
- /*#__PURE__*/ jsx(Typography, {
142
- variant: "pi",
143
- textColor: "neutral600",
144
- children: formatMessage({
145
- id: 'containers.SettingPage.editSettings.description',
146
- defaultMessage: 'Drag & drop the fields to build the layout'
147
- })
148
- })
149
- ]
150
- }),
151
- /*#__PURE__*/ jsx(Box, {
152
- padding: 4,
153
- hasRadius: true,
154
- borderStyle: "dashed",
155
- borderWidth: "1px",
156
- borderColor: "neutral300",
157
- children: /*#__PURE__*/ jsxs(Flex, {
219
+ setContainers(update);
220
+ },
221
+ onDragEnd: (event)=>{
222
+ const { active, over } = event;
223
+ const { id } = active;
224
+ const overId = over?.id;
225
+ const containersAsDictionary = getContainersAsDictionary();
226
+ const activeContainer = findContainer(id, containersAsDictionary);
227
+ const overContainer = findContainer(overId, containersAsDictionary);
228
+ if (!activeContainer || !overContainer) {
229
+ return;
230
+ }
231
+ const activeIndex = containersAsDictionary[activeContainer].children.findIndex((children)=>children.dndId === id);
232
+ const overIndex = containersAsDictionary[overContainer].children.findIndex((children)=>children.dndId === overId);
233
+ const movedContainerItems = produce(containersAsDictionary, (draft)=>{
234
+ if (activeIndex !== overIndex && activeContainer === overContainer) {
235
+ // Move items around inside their own container
236
+ draft[activeContainer].children = arrayMove(draft[activeContainer].children, activeIndex, overIndex);
237
+ }
238
+ });
239
+ // Remove properties the server does not expect before updating the form
240
+ const updatedContainers = Object.values(movedContainerItems);
241
+ const updatedContainersWithSpacers = createContainersWithSpacers(updatedContainers);
242
+ const updatedLayout = updatedContainersWithSpacers.map(({ dndId: _dndId, children, ...container })=>({
243
+ ...container,
244
+ children: children.map(({ dndId: _dndId, formName: _formName, ...child })=>child)
245
+ }));
246
+ // Update the layout
247
+ onChange('layout', updatedLayout);
248
+ setActiveDragItem(null);
249
+ },
250
+ children: /*#__PURE__*/ jsxs(Flex, {
251
+ paddingTop: 6,
252
+ direction: "column",
253
+ alignItems: "stretch",
254
+ gap: 4,
255
+ children: [
256
+ /*#__PURE__*/ jsxs(Flex, {
257
+ alignItems: "flex-start",
158
258
  direction: "column",
159
- alignItems: "stretch",
160
- gap: 2,
259
+ justifyContent: "space-between",
161
260
  children: [
162
- layout.map((row, rowIndex)=>/*#__PURE__*/ jsx(Grid.Root, {
163
- gap: 2,
164
- children: row.children.map(({ size, ...field }, fieldIndex)=>/*#__PURE__*/ jsx(Grid.Item, {
165
- col: size,
166
- direction: "column",
167
- alignItems: "stretch",
168
- children: /*#__PURE__*/ jsx(Field, {
169
- attribute: attributes[field.name],
170
- components: components,
171
- index: [
172
- rowIndex,
173
- fieldIndex
174
- ],
175
- name: `layout.${rowIndex}.children.${fieldIndex}`,
176
- onMoveField: handleMoveField,
177
- onRemoveField: handleRemoveField(rowIndex, fieldIndex)
178
- })
179
- }, field.name))
180
- }, row.__temp_key__)),
181
- /*#__PURE__*/ jsxs(Menu.Root, {
182
- children: [
183
- /*#__PURE__*/ jsx(Menu.Trigger, {
184
- startIcon: /*#__PURE__*/ jsx(Plus, {}),
185
- endIcon: null,
186
- disabled: remainingFields.length === 0,
187
- fullWidth: true,
188
- variant: "secondary",
189
- children: formatMessage({
190
- id: getTranslation('containers.SettingPage.add.field'),
191
- defaultMessage: 'Insert another field'
192
- })
193
- }),
194
- /*#__PURE__*/ jsx(Menu.Content, {
195
- children: remainingFields.map((field)=>/*#__PURE__*/ jsx(Menu.Item, {
196
- onSelect: handleAddField(field),
197
- children: field.label
198
- }, field.name))
199
- })
200
- ]
261
+ /*#__PURE__*/ jsx(Typography, {
262
+ fontWeight: "bold",
263
+ children: formatMessage({
264
+ id: getTranslation('containers.list.displayedFields'),
265
+ defaultMessage: 'Displayed fields'
266
+ })
267
+ }),
268
+ /*#__PURE__*/ jsx(Typography, {
269
+ variant: "pi",
270
+ textColor: "neutral600",
271
+ children: formatMessage({
272
+ id: 'containers.SettingPage.editSettings.description',
273
+ defaultMessage: 'Drag & drop the fields to build the layout'
274
+ })
201
275
  })
202
276
  ]
277
+ }),
278
+ /*#__PURE__*/ jsx(Box, {
279
+ padding: 4,
280
+ hasRadius: true,
281
+ borderStyle: "dashed",
282
+ borderWidth: "1px",
283
+ borderColor: "neutral300",
284
+ children: /*#__PURE__*/ jsxs(Flex, {
285
+ direction: "column",
286
+ alignItems: "stretch",
287
+ gap: 2,
288
+ children: [
289
+ containers.map((container, containerIndex)=>/*#__PURE__*/ jsx(SortableContext, {
290
+ id: container.dndId,
291
+ items: container.children.map((child)=>({
292
+ id: child.dndId
293
+ })),
294
+ children: /*#__PURE__*/ jsx(DroppableContainer, {
295
+ id: container.dndId,
296
+ children: ({ setNodeRef })=>/*#__PURE__*/ jsx(Grid.Root, {
297
+ ref: setNodeRef,
298
+ gap: 2,
299
+ children: container.children.map((child, childIndex)=>/*#__PURE__*/ jsx(Grid.Item, {
300
+ col: child.size,
301
+ xs: 12,
302
+ direction: "column",
303
+ alignItems: "stretch",
304
+ children: /*#__PURE__*/ jsx(SortableItem, {
305
+ id: child.dndId,
306
+ children: /*#__PURE__*/ jsx(Field, {
307
+ attribute: attributes[child.name],
308
+ components: components,
309
+ name: child.formName,
310
+ onRemoveField: handleRemoveField(containerIndex, childIndex),
311
+ dndId: child.dndId
312
+ })
313
+ })
314
+ }, child.dndId))
315
+ }, container.dndId)
316
+ })
317
+ }, container.dndId)),
318
+ /*#__PURE__*/ jsx(DragOverlay, {
319
+ children: activeDragItem ? /*#__PURE__*/ jsx(Field, {
320
+ attribute: attributes[activeDragItem.name],
321
+ components: components,
322
+ name: activeDragItem.formName,
323
+ dndId: activeDragItem.dndId
324
+ }) : null
325
+ }),
326
+ /*#__PURE__*/ jsxs(Menu.Root, {
327
+ children: [
328
+ /*#__PURE__*/ jsx(Menu.Trigger, {
329
+ startIcon: /*#__PURE__*/ jsx(Plus, {}),
330
+ endIcon: null,
331
+ disabled: remainingFields.length === 0,
332
+ fullWidth: true,
333
+ variant: "secondary",
334
+ children: formatMessage({
335
+ id: getTranslation('containers.SettingPage.add.field'),
336
+ defaultMessage: 'Insert another field'
337
+ })
338
+ }),
339
+ /*#__PURE__*/ jsx(Menu.Content, {
340
+ children: remainingFields.map((field)=>/*#__PURE__*/ jsx(Menu.Item, {
341
+ onSelect: handleAddField(field),
342
+ children: field.label
343
+ }, field.name))
344
+ })
345
+ ]
346
+ })
347
+ ]
348
+ })
203
349
  })
204
- })
205
- ]
350
+ ]
351
+ })
206
352
  });
207
353
  };
208
- /**
209
- * @internal
210
- * @description Small abstraction to solve within an array of fields where you can
211
- * add a field to the beginning or start, move back and forth what it's index range
212
- * should be when calculating it's new temp key
213
- */ const generateNKeysBetween = (field, count, currInd, newInd)=>{
214
- const startKey = currInd > newInd ? field[newInd - 1]?.__temp_key__ : field[newInd]?.__temp_key__;
215
- const endKey = currInd > newInd ? field[newInd]?.__temp_key__ : field[newInd + 1]?.__temp_key__;
216
- return generateNKeysBetween$1(startKey, endKey, count);
217
- };
218
- /**
219
- * @internal
220
- * @description chunks a row of layouts by the max size we allow, 12. It does not add the
221
- * spacers again, that should be added separately.
222
- */ const chunkArray = (array)=>{
223
- const result = [];
224
- let temp = [];
225
- array.reduce((acc, field)=>{
226
- if (acc + field.size > 12) {
227
- result.push(temp);
228
- temp = [
229
- field
230
- ];
231
- return field.size;
232
- } else {
233
- temp.push(field);
234
- return acc + field.size;
235
- }
236
- }, 0);
237
- if (temp.length > 0) {
238
- result.push(temp);
239
- }
240
- return result;
241
- };
242
354
  const TEMP_FIELD_NAME = '_TEMP_';
243
355
  /**
244
356
  * Displays a field in the layout with drag options, also
245
357
  * opens a modal to edit the details of said field.
246
- */ const Field = ({ attribute, components, name, index, onMoveField, onRemoveField })=>{
358
+ */ const Field = ({ attribute, components, name, onRemoveField, dndId })=>{
359
+ const isDesktop = useIsDesktop();
247
360
  const [isModalOpen, setIsModalOpen] = React.useState(false);
248
361
  const { formatMessage } = useIntl();
249
362
  const { value } = useField(name);
250
- const [{ isDragging }, objectRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(true, {
251
- dropSensitivity: 'immediate',
252
- type: ItemTypes.EDIT_FIELD,
253
- item: {
254
- index,
255
- label: value?.label,
256
- name
257
- },
258
- index,
259
- onMoveItem: onMoveField
363
+ const { listeners, setActivatorNodeRef } = useSortable({
364
+ id: dndId
260
365
  });
261
- React.useEffect(()=>{
262
- dragPreviewRef(getEmptyImage(), {
263
- captureDraggingState: false
264
- });
265
- }, [
266
- dragPreviewRef
267
- ]);
268
- const composedRefs = useComposedRefs(dragRef, objectRef);
269
366
  const handleRemoveField = (e)=>{
270
367
  e.preventDefault();
271
368
  e.stopPropagation();
272
- onRemoveField(e);
369
+ if (onRemoveField) {
370
+ onRemoveField?.(e);
371
+ }
273
372
  };
274
373
  const onEditFieldMeta = (e)=>{
275
374
  e.preventDefault();
276
375
  e.stopPropagation();
277
376
  setIsModalOpen(true);
278
377
  };
279
- const tempRefs = useComposedRefs(dropRef, objectRef);
280
378
  if (!value) {
281
379
  return null;
282
380
  }
@@ -286,10 +384,12 @@ const TEMP_FIELD_NAME = '_TEMP_';
286
384
  height: "100%",
287
385
  style: {
288
386
  opacity: 0
289
- },
290
- ref: tempRefs
387
+ }
291
388
  });
292
389
  }
390
+ if (!attribute) {
391
+ return null;
392
+ }
293
393
  return /*#__PURE__*/ jsxs(Modal.Root, {
294
394
  open: isModalOpen,
295
395
  onOpenChange: setIsModalOpen,
@@ -298,17 +398,15 @@ const TEMP_FIELD_NAME = '_TEMP_';
298
398
  borderColor: "neutral150",
299
399
  background: "neutral100",
300
400
  hasRadius: true,
301
- style: {
302
- opacity: isDragging ? 0.5 : 1
303
- },
304
- ref: dropRef,
305
401
  gap: 3,
306
402
  cursor: "pointer",
307
403
  onClick: ()=>{
308
404
  setIsModalOpen(true);
309
405
  },
406
+ position: "relative",
310
407
  children: [
311
- /*#__PURE__*/ jsx(DragButton, {
408
+ isDesktop && /*#__PURE__*/ jsx(DragButton, {
409
+ ref: setActivatorNodeRef,
312
410
  tag: "span",
313
411
  withTooltip: false,
314
412
  label: formatMessage({
@@ -317,8 +415,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
317
415
  }, {
318
416
  item: value.label
319
417
  }),
320
- onClick: (e)=>e.stopPropagation(),
321
- ref: composedRefs,
418
+ ...listeners,
322
419
  children: /*#__PURE__*/ jsx(Drag, {})
323
420
  }),
324
421
  /*#__PURE__*/ jsxs(Flex, {
@@ -338,6 +435,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
338
435
  children: value.label
339
436
  }),
340
437
  /*#__PURE__*/ jsxs(Flex, {
438
+ position: "relative",
341
439
  children: [
342
440
  /*#__PURE__*/ jsx(IconButton, {
343
441
  type: "button",
@@ -386,6 +484,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
386
484
  width: "100%",
387
485
  children: components[attribute.component].layout.map((row)=>row.map(({ size, ...field })=>/*#__PURE__*/ jsx(Grid.Item, {
388
486
  col: size,
487
+ xs: 12,
389
488
  direction: "column",
390
489
  alignItems: "stretch",
391
490
  children: /*#__PURE__*/ jsx(Flex, {
@@ -425,6 +524,7 @@ const TEMP_FIELD_NAME = '_TEMP_';
425
524
  alignItems: "flex-start",
426
525
  gap: 2,
427
526
  width: "100%",
527
+ wrap: "wrap",
428
528
  children: attribute?.components.map((uid)=>/*#__PURE__*/ jsxs(ComponentLink, {
429
529
  // used to stop the edit form from appearing when we click here.
430
530
  onClick: (e)=>e.stopPropagation(),
@@ -508,5 +608,5 @@ const ComponentLink = styled(NavLink)`
508
608
  }
509
609
  `;
510
610
 
511
- export { Fields, TEMP_FIELD_NAME };
611
+ export { Fields, SortableItem, TEMP_FIELD_NAME };
512
612
  //# sourceMappingURL=Fields.mjs.map