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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  6. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  8. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  9. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  10. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  11. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  12. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/LeftMenu.js +89 -49
  22. package/dist/admin/components/LeftMenu.js.map +1 -1
  23. package/dist/admin/components/LeftMenu.mjs +91 -51
  24. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  25. package/dist/admin/components/Widgets.js +421 -0
  26. package/dist/admin/components/Widgets.js.map +1 -0
  27. package/dist/admin/components/Widgets.mjs +398 -0
  28. package/dist/admin/components/Widgets.mjs.map +1 -0
  29. package/dist/admin/content-manager.js.map +1 -1
  30. package/dist/admin/content-manager.mjs.map +1 -1
  31. package/dist/admin/history/components/VersionContent.js +24 -3
  32. package/dist/admin/history/components/VersionContent.js.map +1 -1
  33. package/dist/admin/history/components/VersionContent.mjs +25 -4
  34. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  35. package/dist/admin/history/components/VersionHeader.js +7 -0
  36. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  37. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  38. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  39. package/dist/admin/history/components/VersionsList.js +1 -1
  40. package/dist/admin/history/components/VersionsList.js.map +1 -1
  41. package/dist/admin/history/components/VersionsList.mjs +1 -1
  42. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  43. package/dist/admin/history/pages/History.js +8 -16
  44. package/dist/admin/history/pages/History.js.map +1 -1
  45. package/dist/admin/history/pages/History.mjs +8 -16
  46. package/dist/admin/history/pages/History.mjs.map +1 -1
  47. package/dist/admin/hooks/useDocumentActions.js +20 -8
  48. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  49. package/dist/admin/hooks/useDocumentActions.mjs +21 -9
  50. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  51. package/dist/admin/hooks/useDocumentContext.js +57 -0
  52. package/dist/admin/hooks/useDocumentContext.js.map +1 -0
  53. package/dist/admin/hooks/useDocumentContext.mjs +36 -0
  54. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -0
  55. package/dist/admin/index.js +81 -5
  56. package/dist/admin/index.js.map +1 -1
  57. package/dist/admin/index.mjs +80 -3
  58. package/dist/admin/index.mjs.map +1 -1
  59. package/dist/admin/layout.js +28 -33
  60. package/dist/admin/layout.js.map +1 -1
  61. package/dist/admin/layout.mjs +29 -15
  62. package/dist/admin/layout.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/EditViewPage.js +101 -88
  64. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  65. package/dist/admin/pages/EditView/EditViewPage.mjs +103 -90
  66. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  68. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  69. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  70. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  71. package/dist/admin/pages/EditView/components/DocumentActions.js +329 -120
  72. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/DocumentActions.mjs +336 -127
  74. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  78. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  80. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  82. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  84. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  86. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  88. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  90. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +2 -2
  92. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +2 -2
  94. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +14 -3
  96. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +15 -4
  98. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +19 -5
  100. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +20 -6
  102. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  104. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +25 -22
  108. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +27 -24
  110. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +2 -3
  112. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +2 -3
  114. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +507 -345
  116. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +507 -347
  118. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +180 -70
  120. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +184 -74
  122. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/UID.js +11 -9
  124. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +11 -9
  126. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  128. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  130. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  132. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  134. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  136. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  138. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  140. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  142. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  143. package/dist/admin/pages/EditView/components/Header.js +22 -7
  144. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  145. package/dist/admin/pages/EditView/components/Header.mjs +23 -8
  146. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  147. package/dist/admin/pages/EditView/components/InputRenderer.js +23 -17
  148. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  149. package/dist/admin/pages/EditView/components/InputRenderer.mjs +23 -17
  150. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  151. package/dist/admin/pages/EditView/utils/data.js +128 -0
  152. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  153. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  154. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  155. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  156. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  157. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  158. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  159. package/dist/admin/pages/ListView/ListViewPage.js +221 -203
  160. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  161. package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
  162. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  163. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  164. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  165. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  166. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  167. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  168. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  169. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  170. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  171. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  172. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  173. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  174. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  175. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  176. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  177. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  178. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  179. package/dist/admin/preview/components/InputPopover.js +189 -0
  180. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  181. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  182. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  183. package/dist/admin/preview/components/PreviewHeader.js +2 -6
  184. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  185. package/dist/admin/preview/components/PreviewHeader.mjs +2 -6
  186. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  187. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  188. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  189. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  190. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  191. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  192. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  193. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  194. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  195. package/dist/admin/preview/pages/Preview.js +180 -84
  196. package/dist/admin/preview/pages/Preview.js.map +1 -1
  197. package/dist/admin/preview/pages/Preview.mjs +182 -86
  198. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  199. package/dist/admin/preview/utils/constants.js +56 -0
  200. package/dist/admin/preview/utils/constants.js.map +1 -0
  201. package/dist/admin/preview/utils/constants.mjs +52 -0
  202. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  203. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  204. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  205. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  206. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  207. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  208. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  209. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  210. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  211. package/dist/admin/preview/utils/previewScript.js +534 -0
  212. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  213. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  214. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  215. package/dist/admin/services/api.js +4 -1
  216. package/dist/admin/services/api.js.map +1 -1
  217. package/dist/admin/services/api.mjs +4 -1
  218. package/dist/admin/services/api.mjs.map +1 -1
  219. package/dist/admin/services/documents.js +42 -16
  220. package/dist/admin/services/documents.js.map +1 -1
  221. package/dist/admin/services/documents.mjs +42 -16
  222. package/dist/admin/services/documents.mjs.map +1 -1
  223. package/dist/admin/services/homepage.js +30 -0
  224. package/dist/admin/services/homepage.js.map +1 -0
  225. package/dist/admin/services/homepage.mjs +28 -0
  226. package/dist/admin/services/homepage.mjs.map +1 -0
  227. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  228. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  229. package/dist/admin/src/components/Widgets.d.ts +4 -0
  230. package/dist/admin/src/content-manager.d.ts +0 -3
  231. package/dist/admin/src/exports.d.ts +1 -0
  232. package/dist/admin/src/features/DocumentRBAC.d.ts +1 -1
  233. package/dist/admin/src/history/pages/History.d.ts +1 -1
  234. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  235. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  236. package/dist/admin/src/hooks/useDocumentContext.d.ts +30 -0
  237. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  238. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  239. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -1
  240. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  241. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +73 -7
  242. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +1 -0
  243. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  244. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  245. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -2
  246. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  247. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  248. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  249. package/dist/admin/src/preview/pages/Preview.d.ts +14 -1
  250. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  251. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  252. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  253. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  254. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  255. package/dist/admin/src/services/api.d.ts +1 -1
  256. package/dist/admin/src/services/components.d.ts +2 -2
  257. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  258. package/dist/admin/src/services/documents.d.ts +23 -17
  259. package/dist/admin/src/services/homepage.d.ts +5 -0
  260. package/dist/admin/src/services/init.d.ts +1 -1
  261. package/dist/admin/src/services/relations.d.ts +2 -2
  262. package/dist/admin/src/services/uid.d.ts +3 -3
  263. package/dist/admin/src/utils/api.d.ts +1 -1
  264. package/dist/admin/src/utils/validation.d.ts +1 -0
  265. package/dist/admin/translations/en.json.js +15 -1
  266. package/dist/admin/translations/en.json.js.map +1 -1
  267. package/dist/admin/translations/en.json.mjs +15 -1
  268. package/dist/admin/translations/en.json.mjs.map +1 -1
  269. package/dist/admin/translations/es.json.js +6 -2
  270. package/dist/admin/translations/es.json.js.map +1 -1
  271. package/dist/admin/translations/es.json.mjs +6 -2
  272. package/dist/admin/translations/es.json.mjs.map +1 -1
  273. package/dist/admin/translations/fr.json.js +11 -2
  274. package/dist/admin/translations/fr.json.js.map +1 -1
  275. package/dist/admin/translations/fr.json.mjs +11 -2
  276. package/dist/admin/translations/fr.json.mjs.map +1 -1
  277. package/dist/admin/translations/ru.json.js +235 -226
  278. package/dist/admin/translations/ru.json.js.map +1 -1
  279. package/dist/admin/translations/ru.json.mjs +230 -226
  280. package/dist/admin/translations/ru.json.mjs.map +1 -1
  281. package/dist/admin/utils/api.js +1 -1
  282. package/dist/admin/utils/api.js.map +1 -1
  283. package/dist/admin/utils/api.mjs +1 -1
  284. package/dist/admin/utils/api.mjs.map +1 -1
  285. package/dist/admin/utils/validation.js +19 -7
  286. package/dist/admin/utils/validation.js.map +1 -1
  287. package/dist/admin/utils/validation.mjs +19 -7
  288. package/dist/admin/utils/validation.mjs.map +1 -1
  289. package/dist/server/controllers/content-types.js +11 -1
  290. package/dist/server/controllers/content-types.js.map +1 -1
  291. package/dist/server/controllers/content-types.mjs +11 -1
  292. package/dist/server/controllers/content-types.mjs.map +1 -1
  293. package/dist/server/controllers/index.js +3 -1
  294. package/dist/server/controllers/index.js.map +1 -1
  295. package/dist/server/controllers/index.mjs +3 -1
  296. package/dist/server/controllers/index.mjs.map +1 -1
  297. package/dist/server/controllers/relations.js +8 -6
  298. package/dist/server/controllers/relations.js.map +1 -1
  299. package/dist/server/controllers/relations.mjs +8 -6
  300. package/dist/server/controllers/relations.mjs.map +1 -1
  301. package/dist/server/controllers/validation/index.js +14 -2
  302. package/dist/server/controllers/validation/index.js.map +1 -1
  303. package/dist/server/controllers/validation/index.mjs +14 -2
  304. package/dist/server/controllers/validation/index.mjs.map +1 -1
  305. package/dist/server/history/services/lifecycles.js +23 -19
  306. package/dist/server/history/services/lifecycles.js.map +1 -1
  307. package/dist/server/history/services/lifecycles.mjs +23 -19
  308. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  309. package/dist/server/homepage/controllers/homepage.js +62 -0
  310. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  311. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  312. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  313. package/dist/server/homepage/controllers/index.js +10 -0
  314. package/dist/server/homepage/controllers/index.js.map +1 -0
  315. package/dist/server/homepage/controllers/index.mjs +8 -0
  316. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  317. package/dist/server/homepage/index.js +14 -0
  318. package/dist/server/homepage/index.js.map +1 -0
  319. package/dist/server/homepage/index.mjs +12 -0
  320. package/dist/server/homepage/index.mjs.map +1 -0
  321. package/dist/server/homepage/routes/homepage.js +36 -0
  322. package/dist/server/homepage/routes/homepage.js.map +1 -0
  323. package/dist/server/homepage/routes/homepage.mjs +34 -0
  324. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  325. package/dist/server/homepage/routes/index.js +13 -0
  326. package/dist/server/homepage/routes/index.js.map +1 -0
  327. package/dist/server/homepage/routes/index.mjs +11 -0
  328. package/dist/server/homepage/routes/index.mjs.map +1 -0
  329. package/dist/server/homepage/services/homepage.js +197 -0
  330. package/dist/server/homepage/services/homepage.js.map +1 -0
  331. package/dist/server/homepage/services/homepage.mjs +195 -0
  332. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  333. package/dist/server/homepage/services/index.js +10 -0
  334. package/dist/server/homepage/services/index.js.map +1 -0
  335. package/dist/server/homepage/services/index.mjs +8 -0
  336. package/dist/server/homepage/services/index.mjs.map +1 -0
  337. package/dist/server/preview/services/preview-config.js +5 -1
  338. package/dist/server/preview/services/preview-config.js.map +1 -1
  339. package/dist/server/preview/services/preview-config.mjs +5 -1
  340. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  341. package/dist/server/preview/services/preview.js +4 -1
  342. package/dist/server/preview/services/preview.js.map +1 -1
  343. package/dist/server/preview/services/preview.mjs +4 -1
  344. package/dist/server/preview/services/preview.mjs.map +1 -1
  345. package/dist/server/routes/index.js +3 -1
  346. package/dist/server/routes/index.js.map +1 -1
  347. package/dist/server/routes/index.mjs +3 -1
  348. package/dist/server/routes/index.mjs.map +1 -1
  349. package/dist/server/services/data-mapper.js +4 -1
  350. package/dist/server/services/data-mapper.js.map +1 -1
  351. package/dist/server/services/data-mapper.mjs +4 -1
  352. package/dist/server/services/data-mapper.mjs.map +1 -1
  353. package/dist/server/services/document-manager.js +8 -1
  354. package/dist/server/services/document-manager.js.map +1 -1
  355. package/dist/server/services/document-manager.mjs +8 -1
  356. package/dist/server/services/document-manager.mjs.map +1 -1
  357. package/dist/server/services/document-metadata.js +3 -1
  358. package/dist/server/services/document-metadata.js.map +1 -1
  359. package/dist/server/services/document-metadata.mjs +3 -1
  360. package/dist/server/services/document-metadata.mjs.map +1 -1
  361. package/dist/server/services/index.js +3 -1
  362. package/dist/server/services/index.js.map +1 -1
  363. package/dist/server/services/index.mjs +3 -1
  364. package/dist/server/services/index.mjs.map +1 -1
  365. package/dist/server/services/utils/configuration/attributes.js +1 -1
  366. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  367. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  368. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  369. package/dist/server/services/utils/configuration/layouts.js +1 -1
  370. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  371. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  372. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  373. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  374. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  375. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  376. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  377. package/dist/server/services/utils/populate.js +11 -0
  378. package/dist/server/services/utils/populate.js.map +1 -1
  379. package/dist/server/services/utils/populate.mjs +11 -0
  380. package/dist/server/services/utils/populate.mjs.map +1 -1
  381. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  382. package/dist/server/src/controllers/index.d.ts.map +1 -1
  383. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  384. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  385. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  386. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  387. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  388. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  389. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  390. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  391. package/dist/server/src/homepage/index.d.ts +23 -0
  392. package/dist/server/src/homepage/index.d.ts.map +1 -0
  393. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  394. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  395. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  396. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  397. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  398. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  399. package/dist/server/src/homepage/services/index.d.ts +16 -0
  400. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  401. package/dist/server/src/index.d.ts +14 -0
  402. package/dist/server/src/index.d.ts.map +1 -1
  403. package/dist/server/src/preview/services/index.d.ts +1 -0
  404. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  405. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  406. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  407. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  408. package/dist/server/src/preview/utils.d.ts +1 -0
  409. package/dist/server/src/preview/utils.d.ts.map +1 -1
  410. package/dist/server/src/routes/index.d.ts +1 -0
  411. package/dist/server/src/routes/index.d.ts.map +1 -1
  412. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  413. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  414. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  415. package/dist/server/src/services/index.d.ts +13 -0
  416. package/dist/server/src/services/index.d.ts.map +1 -1
  417. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  418. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  419. package/dist/shared/contracts/collection-types.d.ts +0 -1
  420. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  421. package/dist/shared/contracts/homepage.d.ts +38 -0
  422. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  423. package/package.json +12 -10
  424. package/dist/admin/features/DocumentContext.js +0 -71
  425. package/dist/admin/features/DocumentContext.js.map +0 -1
  426. package/dist/admin/features/DocumentContext.mjs +0 -49
  427. package/dist/admin/features/DocumentContext.mjs.map +0 -1
  428. package/dist/admin/src/features/DocumentContext.d.ts +0 -53
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useQueryParams, useForm, useField, useNotification, useFocusInputField } from '@strapi/admin/strapi-admin';
4
- import { Flex, Box, Link, TextButton, Field, Combobox, ComboboxOption, Typography, VisuallyHidden, useComposedRefs, IconButton } from '@strapi/design-system';
5
- import { ArrowClockwise, Drag, Cross } from '@strapi/icons';
3
+ import { useForm, useField, useNotification, useRBAC, useFocusInputField, useIsDesktop } from '@strapi/admin/strapi-admin';
4
+ import { Flex, Box, Link, TextButton, EmptyStateLayout, Field, Combobox, ComboboxOption, Typography, VisuallyHidden, useComposedRefs, IconButton } from '@strapi/design-system';
5
+ import { ArrowClockwise, WarningCircle, Plus, Link as Link$1, Drag, Cross } from '@strapi/icons';
6
6
  import { generateNKeysBetween } from 'fractional-indexing';
7
7
  import pipe from 'lodash/fp/pipe';
8
8
  import { getEmptyImage } from 'react-dnd-html5-backend';
@@ -11,16 +11,18 @@ import { FixedSizeList } from 'react-window';
11
11
  import { styled } from 'styled-components';
12
12
  import { COLLECTION_TYPES } from '../../../../../constants/collections.mjs';
13
13
  import { ItemTypes } from '../../../../../constants/dragAndDrop.mjs';
14
- import { useDocumentContext } from '../../../../../features/DocumentContext.mjs';
14
+ import { PERMISSIONS } from '../../../../../constants/plugin.mjs';
15
+ import { DocumentRBAC, useDocumentRBAC } from '../../../../../features/DocumentRBAC.mjs';
15
16
  import { useDebounce } from '../../../../../hooks/useDebounce.mjs';
17
+ import { useDocument } from '../../../../../hooks/useDocument.mjs';
18
+ import { useDocumentContext } from '../../../../../hooks/useDocumentContext.mjs';
16
19
  import { useDragAndDrop, DROP_SENSITIVITY } from '../../../../../hooks/useDragAndDrop.mjs';
17
20
  import { useGetRelationsQuery, useLazySearchRelationsQuery } from '../../../../../services/relations.mjs';
18
- import { buildValidParams } from '../../../../../utils/api.mjs';
19
21
  import { getRelationLabel } from '../../../../../utils/relations.mjs';
20
22
  import { getTranslation } from '../../../../../utils/translations.mjs';
21
23
  import { DocumentStatus } from '../../DocumentStatus.mjs';
22
24
  import { useComponent } from '../ComponentContext.mjs';
23
- import { RelationModalForm, getCollectionType } from './RelationModal.mjs';
25
+ import { RelationModalRenderer, getCollectionType } from './RelationModal.mjs';
24
26
 
25
27
  /**
26
28
  * Remove a relation, whether it's been already saved or not.
@@ -75,17 +77,11 @@ const ONE_WAY_RELATIONS = [
75
77
  * At present we do not expose this to plugin developers, however, they are able to overwrite it themselves should
76
78
  * they wish to do so.
77
79
  */ const RelationsField = /*#__PURE__*/ React.forwardRef(({ disabled, label, ...props }, ref)=>{
78
- const currentDocumentMeta = useDocumentContext('RelationsField', (state)=>state.meta);
79
- const currentDocument = useDocumentContext('RelationsField', (state)=>state.document);
80
- const rootDocumentMeta = useDocumentContext('RelationsField', (state)=>state.rootDocumentMeta);
80
+ const { currentDocument, currentDocumentMeta } = useDocumentContext('RelationsField');
81
81
  const [currentPage, setCurrentPage] = React.useState(1);
82
- const isRootDocument = rootDocumentMeta.documentId === currentDocumentMeta.documentId;
83
- const documentMeta = isRootDocument ? rootDocumentMeta : currentDocumentMeta;
84
82
  // Use the documentId from the actual document, not the params (meta)
85
83
  const documentId = currentDocument.document?.documentId;
86
84
  const { formatMessage } = useIntl();
87
- const [{ query }] = useQueryParams();
88
- const params = documentMeta.params ?? buildValidParams(query);
89
85
  const isMorph = props.attribute.relation.toLowerCase().includes('morph');
90
86
  const isDisabled = isMorph || disabled;
91
87
  const { componentId, componentUID } = useComponent('RelationsField', ({ uid, id })=>({
@@ -102,8 +98,9 @@ const ONE_WAY_RELATIONS = [
102
98
  /**
103
99
  * We'll always have a documentId in a created entry, so we look for a componentId first.
104
100
  * Same with `uid` and `documentModel`.
105
- */ const model = component ? component.uid : documentMeta.model;
106
- const id = component && componentId ? componentId.toString() : documentId;
101
+ * The componentId is empty when adding a new component in a repeatable. Let it be null to skip isRelatedToCurrentDocument
102
+ */ const model = component ? component.uid : currentDocumentMeta.model;
103
+ const id = component ? componentId?.toString() : documentId;
107
104
  /**
108
105
  * The `name` prop is a complete path to the field, e.g. `field1.field2.field3`.
109
106
  * Where the above example would a nested field within two components, however
@@ -122,7 +119,7 @@ const ONE_WAY_RELATIONS = [
122
119
  // below we don't run the query if there is no id.
123
120
  id,
124
121
  params: {
125
- ...params,
122
+ ...currentDocumentMeta.params,
126
123
  pageSize: RELATIONS_TO_DISPLAY,
127
124
  page: currentPage
128
125
  }
@@ -194,7 +191,8 @@ const ONE_WAY_RELATIONS = [
194
191
  apiData: {
195
192
  id: relation.id,
196
193
  documentId: relation.documentId,
197
- locale: relation.locale
194
+ locale: relation.locale,
195
+ isTemporary: true
198
196
  },
199
197
  status: relation.status,
200
198
  /**
@@ -266,7 +264,8 @@ const ONE_WAY_RELATIONS = [
266
264
  isLoading: isFetchingMoreRelations,
267
265
  relationType: props.attribute.relation,
268
266
  // @ts-expect-error – targetModel does exist on the attribute. But it's not typed.
269
- targetModel: props.attribute.targetModel
267
+ targetModel: props.attribute.targetModel,
268
+ mainField: props.mainField
270
269
  })
271
270
  ]
272
271
  });
@@ -310,19 +309,13 @@ const ONE_WAY_RELATIONS = [
310
309
  * @description Contains all the logic for the combobox that can search
311
310
  * for relations and then add them to the field's connect array.
312
311
  */ const RelationsInput = ({ hint, id, model, label, labelAction, name, mainField, placeholder, required, unique: _unique, 'aria-label': _ariaLabel, onChange, isRelatedToCurrentDocument, ...props })=>{
313
- const [textValue, setTextValue] = React.useState('');
314
312
  const [searchParams, setSearchParams] = React.useState({
315
313
  _q: '',
316
314
  page: 1
317
315
  });
318
316
  const { toggleNotification } = useNotification();
319
- const [{ query }] = useQueryParams();
320
- const currentDocumentMeta = useDocumentContext('RelationsInput', (state)=>state.meta);
321
- const rootDocumentMeta = useDocumentContext('RelationsInput', (state)=>state.rootDocumentMeta);
322
- const isRootDocument = rootDocumentMeta.documentId === currentDocumentMeta.documentId;
323
- const documentMeta = isRootDocument ? rootDocumentMeta : currentDocumentMeta;
317
+ const { currentDocumentMeta } = useDocumentContext('RelationsInput');
324
318
  const { formatMessage } = useIntl();
325
- const fieldRef = useFocusInputField(name);
326
319
  const field = useField(name);
327
320
  const searchParamsDebounced = useDebounce(searchParams, 300);
328
321
  const [searchForTrigger, { data, isLoading }] = useLazySearchRelationsQuery();
@@ -340,12 +333,11 @@ const ONE_WAY_RELATIONS = [
340
333
  */ const [targetField] = name.split('.').slice(-1);
341
334
  // Return early if there is no relation to the document
342
335
  if (!isRelatedToCurrentDocument) return;
343
- const params = documentMeta.params ?? buildValidParams(query);
344
336
  searchForTrigger({
345
337
  model,
346
338
  targetField,
347
339
  params: {
348
- ...params,
340
+ ...currentDocumentMeta.params,
349
341
  id: id ?? '',
350
342
  pageSize: 10,
351
343
  idsToInclude: field.value?.disconnect?.map((rel)=>rel.id.toString()) ?? [],
@@ -359,19 +351,11 @@ const ONE_WAY_RELATIONS = [
359
351
  id,
360
352
  model,
361
353
  name,
362
- query,
363
354
  searchForTrigger,
364
355
  searchParamsDebounced,
365
356
  isRelatedToCurrentDocument,
366
- documentMeta
357
+ currentDocumentMeta.params
367
358
  ]);
368
- const handleSearch = async (search)=>{
369
- setSearchParams((s)=>({
370
- ...s,
371
- _q: search,
372
- page: 1
373
- }));
374
- };
375
359
  const hasNextPage = data?.pagination ? data.pagination.page < data.pagination.pageCount : false;
376
360
  const options = data?.results ?? [];
377
361
  const handleChange = (relationId)=>{
@@ -399,6 +383,74 @@ const ONE_WAY_RELATIONS = [
399
383
  *
400
384
  */ onChange(relation);
401
385
  };
386
+ const relation = {
387
+ collectionType: COLLECTION_TYPES,
388
+ // @ts-expect-error – targetModel does exist on the attribute. But it's not typed.
389
+ model: props.attribute.targetModel,
390
+ documentId: '',
391
+ params: currentDocumentMeta.params
392
+ };
393
+ const { permissions = [], isLoading: isLoadingPermissions, error } = useRBAC(PERMISSIONS.map((action)=>({
394
+ action,
395
+ subject: relation.model
396
+ })));
397
+ if (error) {
398
+ return /*#__PURE__*/ jsx(Flex, {
399
+ alignItems: "center",
400
+ height: "100%",
401
+ justifyContent: "center",
402
+ children: /*#__PURE__*/ jsx(EmptyStateLayout, {
403
+ icon: /*#__PURE__*/ jsx(WarningCircle, {
404
+ width: "16rem"
405
+ }),
406
+ content: formatMessage({
407
+ id: 'anErrorOccurred',
408
+ defaultMessage: 'Whoops! Something went wrong. Please, try again.'
409
+ })
410
+ })
411
+ });
412
+ }
413
+ return /*#__PURE__*/ jsxs(Field.Root, {
414
+ error: field.error,
415
+ hint: hint,
416
+ name: name,
417
+ required: required,
418
+ children: [
419
+ /*#__PURE__*/ jsx(Field.Label, {
420
+ action: labelAction,
421
+ children: label
422
+ }),
423
+ /*#__PURE__*/ jsx(DocumentRBAC, {
424
+ permissions: permissions,
425
+ model: relation.model,
426
+ children: /*#__PURE__*/ jsx(RelationModalWithContext, {
427
+ relation: relation,
428
+ name: name,
429
+ placeholder: placeholder,
430
+ hasNextPage: hasNextPage,
431
+ isLoadingPermissions: isLoadingPermissions,
432
+ isLoadingSearchRelations: isLoading,
433
+ handleChange: handleChange,
434
+ setSearchParams: setSearchParams,
435
+ data: data,
436
+ mainField: mainField,
437
+ fieldValue: field.value,
438
+ ...props
439
+ })
440
+ }),
441
+ /*#__PURE__*/ jsx(Field.Error, {}),
442
+ /*#__PURE__*/ jsx(Field.Hint, {})
443
+ ]
444
+ });
445
+ };
446
+ const RelationModalWithContext = ({ relation, name, placeholder, hasNextPage, isLoadingSearchRelations, isLoadingPermissions, handleChange, mainField, setSearchParams, fieldValue, data, ...props })=>{
447
+ const [textValue, setTextValue] = React.useState('');
448
+ const { formatMessage } = useIntl();
449
+ const canCreate = useDocumentRBAC('RelationModalWrapper', (state)=>state.canCreate);
450
+ const fieldRef = useFocusInputField(name);
451
+ const { componentUID } = useComponent('RelationsField', ({ uid })=>({
452
+ componentUID: uid
453
+ }));
402
454
  const handleLoadMore = ()=>{
403
455
  if (!data || !data.pagination) {
404
456
  return;
@@ -409,31 +461,55 @@ const ONE_WAY_RELATIONS = [
409
461
  }));
410
462
  }
411
463
  };
464
+ const options = data?.results ?? [];
412
465
  React.useLayoutEffect(()=>{
413
466
  setTextValue('');
414
467
  }, [
415
- field.value
468
+ fieldValue
416
469
  ]);
417
- return /*#__PURE__*/ jsxs(Field.Root, {
418
- error: field.error,
419
- hint: hint,
420
- name: name,
421
- required: required,
422
- children: [
423
- /*#__PURE__*/ jsx(Field.Label, {
424
- action: labelAction,
425
- children: label
426
- }),
427
- /*#__PURE__*/ jsx(Combobox, {
470
+ const handleSearch = async (search)=>{
471
+ setSearchParams((s)=>({
472
+ ...s,
473
+ _q: search,
474
+ page: 1
475
+ }));
476
+ };
477
+ return /*#__PURE__*/ jsx(RelationModalRenderer, {
478
+ children: ({ dispatch })=>/*#__PURE__*/ jsx(Combobox, {
428
479
  ref: fieldRef,
480
+ creatable: "visible",
481
+ creatableDisabled: !canCreate,
482
+ createMessage: ()=>formatMessage({
483
+ id: getTranslation('relation.create'),
484
+ defaultMessage: 'Create a relation'
485
+ }),
486
+ onCreateOption: ()=>{
487
+ if (canCreate) {
488
+ dispatch({
489
+ type: 'GO_TO_RELATION',
490
+ payload: {
491
+ document: relation,
492
+ shouldBypassConfirmation: false,
493
+ fieldToConnect: name,
494
+ fieldToConnectUID: componentUID
495
+ }
496
+ });
497
+ }
498
+ },
499
+ creatableStartIcon: /*#__PURE__*/ jsx(Plus, {
500
+ fill: "neutral500"
501
+ }),
429
502
  name: name,
430
- autocomplete: "list",
503
+ autocomplete: {
504
+ type: 'list',
505
+ filter: 'contains'
506
+ },
431
507
  placeholder: placeholder || formatMessage({
432
508
  id: getTranslation('relation.add'),
433
509
  defaultMessage: 'Add relation'
434
510
  }),
435
511
  hasMoreItems: hasNextPage,
436
- loading: isLoading,
512
+ loading: isLoadingSearchRelations || isLoadingPermissions,
437
513
  onOpenChange: ()=>{
438
514
  handleSearch(textValue ?? '');
439
515
  },
@@ -455,7 +531,7 @@ const ONE_WAY_RELATIONS = [
455
531
  handleSearch(event.currentTarget.value);
456
532
  },
457
533
  ...props,
458
- children: options.map((opt)=>{
534
+ children: options?.map((opt)=>{
459
535
  const textValue = getRelationLabel(opt, mainField);
460
536
  return /*#__PURE__*/ jsx(ComboboxOption, {
461
537
  value: opt.id.toString(),
@@ -464,9 +540,17 @@ const ONE_WAY_RELATIONS = [
464
540
  gap: 2,
465
541
  justifyContent: "space-between",
466
542
  children: [
467
- /*#__PURE__*/ jsx(Typography, {
468
- ellipsis: true,
469
- children: textValue
543
+ /*#__PURE__*/ jsxs(Flex, {
544
+ gap: 2,
545
+ children: [
546
+ /*#__PURE__*/ jsx(Link$1, {
547
+ fill: "neutral500"
548
+ }),
549
+ /*#__PURE__*/ jsx(Typography, {
550
+ ellipsis: true,
551
+ children: textValue
552
+ })
553
+ ]
470
554
  }),
471
555
  opt.status ? /*#__PURE__*/ jsx(DocumentStatus, {
472
556
  status: opt.status
@@ -475,17 +559,14 @@ const ONE_WAY_RELATIONS = [
475
559
  })
476
560
  }, opt.id);
477
561
  })
478
- }),
479
- /*#__PURE__*/ jsx(Field.Error, {}),
480
- /*#__PURE__*/ jsx(Field.Hint, {})
481
- ]
562
+ })
482
563
  });
483
564
  };
484
565
  /* -------------------------------------------------------------------------------------------------
485
566
  * RelationsList
486
567
  * -----------------------------------------------------------------------------------------------*/ const RELATION_ITEM_HEIGHT = 50;
487
568
  const RELATION_GUTTER = 4;
488
- const RelationsList = ({ data, serverData, disabled, name, isLoading, relationType, targetModel })=>{
569
+ const RelationsList = ({ data, serverData, disabled, name, isLoading, relationType, targetModel, mainField })=>{
489
570
  const ariaDescriptionId = React.useId();
490
571
  const { formatMessage } = useIntl();
491
572
  const listRef = React.useRef(null);
@@ -571,6 +652,7 @@ const RelationsList = ({ data, serverData, disabled, name, isLoading, relationTy
571
652
  id: relation.id,
572
653
  documentId: relation.documentId ?? relation.apiData?.documentId ?? '',
573
654
  locale: relation.locale || relation.apiData?.locale,
655
+ isTemporary: relation.apiData?.isTemporary,
574
656
  position
575
657
  }
576
658
  }
@@ -650,7 +732,8 @@ const RelationsList = ({ data, serverData, disabled, name, isLoading, relationTy
650
732
  name,
651
733
  handleDisconnect,
652
734
  relations: data,
653
- targetModel
735
+ targetModel,
736
+ mainField
654
737
  },
655
738
  itemKey: (index)=>data[index].id,
656
739
  innerElementType: "ol",
@@ -691,9 +774,27 @@ const ShadowBox = styled(Box)`
691
774
  }
692
775
  `;
693
776
  const ListItem = ({ data, index, style })=>{
694
- const { ariaDescribedBy, canDrag = false, disabled = false, handleCancel, handleDisconnect, handleDropItem, handleGrabItem, handleMoveItem, name, relations, targetModel } = data;
777
+ const { ariaDescribedBy, canDrag = false, disabled = false, handleCancel, handleDisconnect, handleDropItem, handleGrabItem, handleMoveItem, name, relations, targetModel, mainField } = data;
778
+ const isDesktop = useIsDesktop();
779
+ const { currentDocumentMeta } = useDocumentContext('RelationsField');
695
780
  const { formatMessage } = useIntl();
696
- const { href, id, label, status, documentId, apiData, locale } = relations[index];
781
+ const { href, id, label: originalLabel, status: originalStatus, documentId, apiData, locale } = relations[index];
782
+ /**
783
+ * The code above attempts to retrieve the updated value of a relation that has not yet been saved.
784
+ * This is necessary when a relation modal is opened, and the mainField or its status is updated.
785
+ * These changes need to be reflected in the initial relation field.
786
+ */ const collectionType = getCollectionType(href);
787
+ const isTemporary = apiData?.isTemporary ?? false;
788
+ const { document } = useDocument({
789
+ collectionType,
790
+ model: targetModel,
791
+ documentId: documentId ?? apiData?.documentId,
792
+ params: currentDocumentMeta.params
793
+ }, {
794
+ skip: !isTemporary
795
+ });
796
+ const label = isTemporary && document ? getRelationLabel(document, mainField) : originalLabel;
797
+ const status = isTemporary && document ? document?.status : originalStatus;
697
798
  const [{ handlerId, isDragging, handleKeyDown }, relationRef, dropRef, dragRef, dragPreviewRef] = useDragAndDrop(canDrag && !disabled, {
698
799
  type: `${ItemTypes.RELATION}_${name}`,
699
800
  index,
@@ -715,6 +816,21 @@ const ListItem = ({ data, index, style })=>{
715
816
  }, [
716
817
  dragPreviewRef
717
818
  ]);
819
+ const safeDocumentId = documentId ?? apiData?.documentId;
820
+ const safeLocale = locale ?? apiData?.locale ?? null;
821
+ const documentMeta = React.useMemo(()=>({
822
+ documentId: safeDocumentId,
823
+ model: targetModel,
824
+ collectionType: getCollectionType(href),
825
+ params: {
826
+ locale: safeLocale
827
+ }
828
+ }), [
829
+ safeDocumentId,
830
+ href,
831
+ safeLocale,
832
+ targetModel
833
+ ]);
718
834
  return /*#__PURE__*/ jsx(Box, {
719
835
  style: style,
720
836
  tag: "li",
@@ -736,7 +852,7 @@ const ListItem = ({ data, index, style })=>{
736
852
  /*#__PURE__*/ jsxs(FlexWrapper, {
737
853
  gap: 1,
738
854
  children: [
739
- canDrag ? /*#__PURE__*/ jsx(IconButton, {
855
+ canDrag && isDesktop ? /*#__PURE__*/ jsx(IconButton, {
740
856
  tag: "div",
741
857
  role: "button",
742
858
  tabIndex: 0,
@@ -753,23 +869,17 @@ const ListItem = ({ data, index, style })=>{
753
869
  /*#__PURE__*/ jsxs(Flex, {
754
870
  width: "100%",
755
871
  minWidth: 0,
872
+ gap: 4,
756
873
  justifyContent: "space-between",
757
874
  children: [
758
875
  /*#__PURE__*/ jsx(Box, {
876
+ flex: 1,
759
877
  minWidth: 0,
760
878
  paddingTop: 1,
761
879
  paddingBottom: 1,
762
- paddingRight: 4,
763
- children: /*#__PURE__*/ jsx(RelationModalForm, {
764
- triggerButtonLabel: label,
765
- relation: {
766
- documentId: documentId ?? apiData?.documentId,
767
- model: targetModel,
768
- collectionType: getCollectionType(href),
769
- params: {
770
- locale: locale || apiData?.locale || null
771
- }
772
- }
880
+ children: /*#__PURE__*/ jsx(RelationModalRenderer, {
881
+ relation: documentMeta,
882
+ children: label
773
883
  })
774
884
  }),
775
885
  status ? /*#__PURE__*/ jsx(DocumentStatus, {