@strapi/content-manager 0.0.0-next.e5d4b412da0d932b61b2fa5012d16513fda6de04 → 0.0.0-next.e7ae51b01f78ddeaa09c4aa3e3882f466a5b3188

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 (383) 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 +6 -1
  10. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  11. package/dist/admin/components/ConfigurationForm/Fields.mjs +7 -2
  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 +26 -8
  36. package/dist/admin/components/Widgets.js.map +1 -1
  37. package/dist/admin/components/Widgets.mjs +26 -8
  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 +0 -3
  44. package/dist/admin/history/components/VersionContent.js.map +1 -1
  45. package/dist/admin/history/components/VersionContent.mjs +0 -3
  46. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  47. package/dist/admin/history/components/VersionHeader.js +1 -0
  48. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  49. package/dist/admin/history/components/VersionHeader.mjs +1 -0
  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 +24 -5
  66. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  67. package/dist/admin/hooks/useDocumentActions.mjs +24 -5
  68. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  69. package/dist/admin/index.js.map +1 -1
  70. package/dist/admin/index.mjs.map +1 -1
  71. package/dist/admin/layout.js +27 -6
  72. package/dist/admin/layout.js.map +1 -1
  73. package/dist/admin/layout.mjs +28 -7
  74. package/dist/admin/layout.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/EditViewPage.js +12 -16
  76. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  77. package/dist/admin/pages/EditView/EditViewPage.mjs +13 -17
  78. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  80. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  81. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  82. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  83. package/dist/admin/pages/EditView/components/DocumentActions.js +63 -67
  84. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/DocumentActions.mjs +65 -69
  86. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/DocumentStatus.js.map +1 -1
  88. package/dist/admin/pages/EditView/components/DocumentStatus.mjs.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  90. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +66 -2
  92. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +66 -2
  94. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.js.map +1 -1
  96. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.mjs.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +4 -4
  98. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +4 -4
  100. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +1 -0
  102. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +1 -0
  104. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -2
  108. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
  110. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +7 -3
  112. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +7 -3
  114. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  116. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -1
  118. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +3 -2
  120. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.js.map +1 -1
  122. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  124. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  126. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +4 -4
  128. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +5 -5
  130. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  132. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  133. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
  134. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  135. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
  136. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  137. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +2 -1
  138. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  139. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +3 -2
  140. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  141. package/dist/admin/pages/EditView/components/FormInputs/UID.js +2 -1
  142. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  143. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +2 -1
  144. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  145. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  146. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  147. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +2 -2
  148. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  149. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +2 -2
  150. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  151. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  152. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  153. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.js.map +1 -1
  154. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs.map +1 -1
  155. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.js.map +1 -1
  156. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.mjs.map +1 -1
  157. package/dist/admin/pages/EditView/components/FormLayout.js +13 -8
  158. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  159. package/dist/admin/pages/EditView/components/FormLayout.mjs +14 -8
  160. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  161. package/dist/admin/pages/EditView/components/Header.js +92 -27
  162. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  163. package/dist/admin/pages/EditView/components/Header.mjs +94 -29
  164. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  165. package/dist/admin/pages/EditView/components/InputRenderer.js +42 -25
  166. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  167. package/dist/admin/pages/EditView/components/InputRenderer.mjs +42 -25
  168. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  169. package/dist/admin/pages/EditView/utils/data.js +154 -60
  170. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  171. package/dist/admin/pages/EditView/utils/data.mjs +154 -60
  172. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  173. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  174. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  175. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  176. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  177. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +1 -0
  178. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  179. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs +1 -0
  180. package/dist/admin/pages/ListConfiguration/components/DraggableCard.mjs.map +1 -1
  181. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +1 -1
  182. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
  183. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs +1 -1
  184. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.mjs.map +1 -1
  185. package/dist/admin/pages/ListConfiguration/components/Header.js.map +1 -1
  186. package/dist/admin/pages/ListConfiguration/components/Header.mjs.map +1 -1
  187. package/dist/admin/pages/ListConfiguration/components/Settings.js +1 -1
  188. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  189. package/dist/admin/pages/ListConfiguration/components/Settings.mjs +1 -1
  190. package/dist/admin/pages/ListConfiguration/components/Settings.mjs.map +1 -1
  191. package/dist/admin/pages/ListView/ListViewPage.js +0 -2
  192. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  193. package/dist/admin/pages/ListView/ListViewPage.mjs +0 -2
  194. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  195. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.js.map +1 -1
  196. package/dist/admin/pages/ListView/components/AutoCloneFailureModal.mjs.map +1 -1
  197. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +6 -16
  198. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  199. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs +6 -16
  200. package/dist/admin/pages/ListView/components/BulkActions/Actions.mjs.map +1 -1
  201. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +18 -31
  202. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  203. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +19 -32
  204. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  205. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +1 -1
  206. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  207. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +1 -1
  208. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  210. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  211. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  212. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  213. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  214. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  215. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +1 -1
  216. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  217. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +1 -1
  218. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  219. package/dist/admin/pages/ListView/components/TableCells/Media.js +5 -3
  220. package/dist/admin/pages/ListView/components/TableCells/Media.js.map +1 -1
  221. package/dist/admin/pages/ListView/components/TableCells/Media.mjs +5 -3
  222. package/dist/admin/pages/ListView/components/TableCells/Media.mjs.map +1 -1
  223. package/dist/admin/pages/ListView/components/TableCells/Relations.js +8 -4
  224. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  225. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +8 -4
  226. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  227. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js +5 -2
  228. package/dist/admin/pages/ListView/components/ViewSettingsMenu.js.map +1 -1
  229. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs +5 -2
  230. package/dist/admin/pages/ListView/components/ViewSettingsMenu.mjs.map +1 -1
  231. package/dist/admin/preview/components/InputPopover.js +189 -0
  232. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  233. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  234. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  235. package/dist/admin/preview/components/PreviewHeader.js +0 -2
  236. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  237. package/dist/admin/preview/components/PreviewHeader.mjs +0 -2
  238. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  239. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  240. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  241. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  242. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  243. package/dist/admin/preview/pages/Preview.js +128 -125
  244. package/dist/admin/preview/pages/Preview.js.map +1 -1
  245. package/dist/admin/preview/pages/Preview.mjs +128 -125
  246. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  247. package/dist/admin/preview/services/preview.js.map +1 -1
  248. package/dist/admin/preview/services/preview.mjs.map +1 -1
  249. package/dist/admin/preview/utils/constants.js +36 -1
  250. package/dist/admin/preview/utils/constants.js.map +1 -1
  251. package/dist/admin/preview/utils/constants.mjs +35 -2
  252. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  253. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  254. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  255. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  256. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  257. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  258. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  259. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  260. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  261. package/dist/admin/preview/utils/previewScript.js +423 -92
  262. package/dist/admin/preview/utils/previewScript.js.map +1 -1
  263. package/dist/admin/preview/utils/previewScript.mjs +423 -92
  264. package/dist/admin/preview/utils/previewScript.mjs.map +1 -1
  265. package/dist/admin/router.js.map +1 -1
  266. package/dist/admin/router.mjs.map +1 -1
  267. package/dist/admin/services/api.js +2 -1
  268. package/dist/admin/services/api.js.map +1 -1
  269. package/dist/admin/services/api.mjs +2 -1
  270. package/dist/admin/services/api.mjs.map +1 -1
  271. package/dist/admin/services/documents.js +19 -3
  272. package/dist/admin/services/documents.js.map +1 -1
  273. package/dist/admin/services/documents.mjs +19 -3
  274. package/dist/admin/services/documents.mjs.map +1 -1
  275. package/dist/admin/services/homepage.js.map +1 -1
  276. package/dist/admin/services/homepage.mjs.map +1 -1
  277. package/dist/admin/services/relations.js.map +1 -1
  278. package/dist/admin/services/relations.mjs.map +1 -1
  279. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  280. package/dist/admin/src/components/Widgets.d.ts +6 -2
  281. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  282. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  283. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
  284. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +2 -0
  285. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +1 -1
  286. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +0 -3
  287. package/dist/admin/src/pages/EditView/components/Header.d.ts +15 -0
  288. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  289. package/dist/admin/src/pages/EditView/utils/data.d.ts +4 -4
  290. package/dist/admin/src/pages/ListView/components/TableCells/Relations.d.ts +0 -3
  291. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  292. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  293. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  294. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  295. package/dist/admin/src/preview/utils/constants.d.ts +39 -1
  296. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  297. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  298. package/dist/admin/src/preview/utils/previewScript.d.ts +7 -1
  299. package/dist/admin/src/services/api.d.ts +1 -1
  300. package/dist/admin/src/services/components.d.ts +2 -2
  301. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  302. package/dist/admin/src/services/documents.d.ts +16 -16
  303. package/dist/admin/src/services/homepage.d.ts +1 -1
  304. package/dist/admin/src/services/init.d.ts +1 -1
  305. package/dist/admin/src/services/relations.d.ts +2 -2
  306. package/dist/admin/src/services/uid.d.ts +3 -3
  307. package/dist/admin/translations/en.json.js +7 -0
  308. package/dist/admin/translations/en.json.js.map +1 -1
  309. package/dist/admin/translations/en.json.mjs +7 -0
  310. package/dist/admin/translations/en.json.mjs.map +1 -1
  311. package/dist/admin/translations/es.json.js +2 -0
  312. package/dist/admin/translations/es.json.js.map +1 -1
  313. package/dist/admin/translations/es.json.mjs +2 -0
  314. package/dist/admin/translations/es.json.mjs.map +1 -1
  315. package/dist/admin/translations/fr.json.js +3 -1
  316. package/dist/admin/translations/fr.json.js.map +1 -1
  317. package/dist/admin/translations/fr.json.mjs +3 -1
  318. package/dist/admin/translations/fr.json.mjs.map +1 -1
  319. package/dist/admin/utils/translations.js.map +1 -1
  320. package/dist/admin/utils/translations.mjs.map +1 -1
  321. package/dist/admin/utils/urls.js.map +1 -1
  322. package/dist/admin/utils/urls.mjs.map +1 -1
  323. package/dist/admin/utils/users.js.map +1 -1
  324. package/dist/admin/utils/users.mjs.map +1 -1
  325. package/dist/admin/utils/validation.js +1 -1
  326. package/dist/admin/utils/validation.js.map +1 -1
  327. package/dist/admin/utils/validation.mjs +1 -1
  328. package/dist/admin/utils/validation.mjs.map +1 -1
  329. package/dist/server/controllers/collection-types.js +2 -1
  330. package/dist/server/controllers/collection-types.js.map +1 -1
  331. package/dist/server/controllers/collection-types.mjs +2 -1
  332. package/dist/server/controllers/collection-types.mjs.map +1 -1
  333. package/dist/server/controllers/relations.js +6 -4
  334. package/dist/server/controllers/relations.js.map +1 -1
  335. package/dist/server/controllers/relations.mjs +6 -4
  336. package/dist/server/controllers/relations.mjs.map +1 -1
  337. package/dist/server/controllers/single-types.js +3 -1
  338. package/dist/server/controllers/single-types.js.map +1 -1
  339. package/dist/server/controllers/single-types.mjs +3 -1
  340. package/dist/server/controllers/single-types.mjs.map +1 -1
  341. package/dist/server/controllers/validation/dimensions.js.map +1 -1
  342. package/dist/server/controllers/validation/dimensions.mjs.map +1 -1
  343. package/dist/server/controllers/validation/index.js.map +1 -1
  344. package/dist/server/controllers/validation/index.mjs.map +1 -1
  345. package/dist/server/controllers/validation/model-configuration.js +2 -2
  346. package/dist/server/controllers/validation/model-configuration.js.map +1 -1
  347. package/dist/server/controllers/validation/model-configuration.mjs +2 -2
  348. package/dist/server/controllers/validation/model-configuration.mjs.map +1 -1
  349. package/dist/server/history/utils.js.map +1 -1
  350. package/dist/server/history/utils.mjs.map +1 -1
  351. package/dist/server/homepage/services/homepage.js +3 -2
  352. package/dist/server/homepage/services/homepage.js.map +1 -1
  353. package/dist/server/homepage/services/homepage.mjs +3 -2
  354. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  355. package/dist/server/middlewares/routing.js.map +1 -1
  356. package/dist/server/middlewares/routing.mjs.map +1 -1
  357. package/dist/server/preview/services/preview-config.js +8 -33
  358. package/dist/server/preview/services/preview-config.js.map +1 -1
  359. package/dist/server/preview/services/preview-config.mjs +9 -34
  360. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  361. package/dist/server/preview/services/preview.js.map +1 -1
  362. package/dist/server/preview/services/preview.mjs.map +1 -1
  363. package/dist/server/preview/utils.js.map +1 -1
  364. package/dist/server/preview/utils.mjs.map +1 -1
  365. package/dist/server/services/configuration.js.map +1 -1
  366. package/dist/server/services/configuration.mjs.map +1 -1
  367. package/dist/server/services/document-metadata.js +23 -1
  368. package/dist/server/services/document-metadata.js.map +1 -1
  369. package/dist/server/services/document-metadata.mjs +23 -1
  370. package/dist/server/services/document-metadata.mjs.map +1 -1
  371. package/dist/server/services/field-sizes.js.map +1 -1
  372. package/dist/server/services/field-sizes.mjs.map +1 -1
  373. package/dist/server/services/uid.js.map +1 -1
  374. package/dist/server/services/uid.mjs.map +1 -1
  375. package/dist/server/services/utils/store.js.map +1 -1
  376. package/dist/server/services/utils/store.mjs.map +1 -1
  377. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  378. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  379. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  380. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  381. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  382. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  383. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"previewScript.js","sources":["../../../../admin/src/preview/utils/previewScript.ts"],"sourcesContent":["// NOTE: This override is for the properties on _user's site_, it's not about Strapi Admin.\ndeclare global {\n interface Window {\n __strapi_previewCleanup?: () => void;\n STRAPI_HIGHLIGHT_HOVER_COLOR?: string;\n }\n}\n\n/**\n * previewScript will be injected into the preview iframe after being stringified.\n * Therefore it CANNOT use any imports, or refer to any variables outside of its own scope.\n * It's why many functions are defined within previewScript, it's the only way to avoid going full spaghetti.\n * To get a better overview of everything previewScript does, go to the orchestration part at its end.\n */\nconst previewScript = (shouldRun = true) => {\n /* -----------------------------------------------------------------------------------------------\n * Params\n * ---------------------------------------------------------------------------------------------*/\n const HIGHLIGHT_PADDING = 2; // in pixels\n const HIGHLIGHT_HOVER_COLOR = window.STRAPI_HIGHLIGHT_HOVER_COLOR ?? '#4945ff'; // dark primary500\n const SOURCE_ATTRIBUTE = 'data-strapi-source';\n const OVERLAY_ID = 'strapi-preview-overlay';\n const INTERNAL_EVENTS = {\n DUMMY_EVENT: 'dummyEvent',\n } as const;\n\n /**\n * Calling the function in no-run mode lets us retrieve the constants from other files and keep\n * a single source of truth for them. It's the only way to do this because this script can't\n * refer to any variables outside of its own scope, because it's stringified before it's run.\n */\n if (!shouldRun) {\n return { INTERNAL_EVENTS };\n }\n\n /* -----------------------------------------------------------------------------------------------\n * Functionality pieces\n * ---------------------------------------------------------------------------------------------*/\n\n const createOverlaySystem = () => {\n // Clean up before creating a new overlay so we can safely call previewScript multiple times\n window.__strapi_previewCleanup?.();\n document.getElementById(OVERLAY_ID)?.remove();\n\n const overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n overlay.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 9999;\n `;\n\n window.document.body.appendChild(overlay);\n return overlay;\n };\n\n type EventListenersList = Array<{\n element: HTMLElement;\n type: keyof HTMLElementEventMap;\n handler: EventListener;\n }>;\n\n const createHighlightManager = (overlay: HTMLElement) => {\n const elements = window.document.querySelectorAll(`[${SOURCE_ATTRIBUTE}]`);\n const highlights: HTMLElement[] = [];\n const eventListeners: EventListenersList = [];\n\n const drawHighlight = (target: Element, highlight: HTMLElement) => {\n if (!highlight) return;\n\n const rect = target.getBoundingClientRect();\n highlight.style.width = `${rect.width + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.height = `${rect.height + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.transform = `translate(${rect.left - HIGHLIGHT_PADDING}px, ${rect.top - HIGHLIGHT_PADDING}px)`;\n };\n\n const updateAllHighlights = () => {\n highlights.forEach((highlight, index) => {\n const element = elements[index];\n if (element && highlight) {\n drawHighlight(element, highlight);\n }\n });\n };\n\n elements.forEach((element) => {\n if (element instanceof HTMLElement) {\n const highlight = document.createElement('div');\n highlight.style.cssText = `\n position: absolute;\n outline: 2px solid transparent;\n pointer-events: none;\n border-radius: 2px;\n background-color: transparent;\n will-change: transform;\n transition: outline-color 0.1s ease-in-out;\n `;\n\n // Move hover detection to the underlying element\n const mouseEnterHandler = () => {\n highlight.style.outlineColor = HIGHLIGHT_HOVER_COLOR;\n };\n const mouseLeaveHandler = () => {\n highlight.style.outlineColor = 'transparent';\n };\n const doubleClickHandler = () => {\n // TODO: handle for real\n // eslint-disable-next-line no-console\n console.log('Double click on highlight', element);\n };\n const mouseDownHandler = (event: MouseEvent) => {\n // Prevent default multi click to select behavior\n if (event.detail >= 2) {\n event.preventDefault();\n }\n };\n\n element.addEventListener('mouseenter', mouseEnterHandler);\n element.addEventListener('mouseleave', mouseLeaveHandler);\n element.addEventListener('dblclick', doubleClickHandler);\n element.addEventListener('mousedown', mouseDownHandler);\n\n // Store event listeners for cleanup\n eventListeners.push(\n { element, type: 'mouseenter', handler: mouseEnterHandler },\n { element, type: 'mouseleave', handler: mouseLeaveHandler },\n { element, type: 'dblclick', handler: doubleClickHandler },\n { element, type: 'mousedown', handler: mouseDownHandler as EventListener }\n );\n\n highlights.push(highlight);\n overlay.appendChild(highlight);\n\n drawHighlight(element, highlight);\n }\n });\n\n return {\n elements,\n updateAllHighlights,\n eventListeners,\n };\n };\n\n type HighlightManager = ReturnType<typeof createHighlightManager>;\n\n const setupObservers = (highlightManager: HighlightManager) => {\n const resizeObserver = new ResizeObserver(() => {\n highlightManager.updateAllHighlights();\n });\n\n highlightManager.elements.forEach((element: Element) => {\n resizeObserver.observe(element);\n });\n\n resizeObserver.observe(document.documentElement);\n\n const updateOnScroll = () => {\n highlightManager.updateAllHighlights();\n };\n\n const scrollableElements = new Set<Element | Window>();\n scrollableElements.add(window);\n\n // Find all scrollable ancestors for all tracked elements\n highlightManager.elements.forEach((element) => {\n let parent = element.parentElement;\n while (parent) {\n const computedStyle = window.getComputedStyle(parent);\n const overflow = computedStyle.overflow + computedStyle.overflowX + computedStyle.overflowY;\n\n if (overflow.includes('scroll') || overflow.includes('auto')) {\n scrollableElements.add(parent);\n }\n\n parent = parent.parentElement;\n }\n });\n\n // Add scroll listeners to all scrollable elements\n scrollableElements.forEach((element) => {\n if (element === window) {\n window.addEventListener('scroll', updateOnScroll);\n window.addEventListener('resize', updateOnScroll);\n } else {\n (element as Element).addEventListener('scroll', updateOnScroll);\n }\n });\n\n return {\n resizeObserver,\n updateOnScroll,\n scrollableElements,\n };\n };\n\n const setupEventHandlers = (highlightManager: HighlightManager) => {\n // TODO: The listeners for postMessage events will go here\n return highlightManager.eventListeners;\n };\n\n const createCleanupSystem = (\n overlay: HTMLElement,\n observers: ReturnType<typeof setupObservers>,\n eventHandlers: EventListenersList\n ) => {\n window.__strapi_previewCleanup = () => {\n observers.resizeObserver.disconnect();\n\n // Remove all scroll listeners\n observers.scrollableElements.forEach((element) => {\n if (element === window) {\n window.removeEventListener('scroll', observers.updateOnScroll);\n window.removeEventListener('resize', observers.updateOnScroll);\n } else {\n (element as Element).removeEventListener('scroll', observers.updateOnScroll);\n }\n });\n\n // Remove highlight event listeners\n eventHandlers.forEach(({ element, type, handler }) => {\n element.removeEventListener(type, handler);\n });\n\n overlay.remove();\n };\n };\n\n /* -----------------------------------------------------------------------------------------------\n * Orchestration\n * ---------------------------------------------------------------------------------------------*/\n\n const overlay = createOverlaySystem();\n const highlightManager = createHighlightManager(overlay);\n const observers = setupObservers(highlightManager);\n const eventHandlers = setupEventHandlers(highlightManager);\n createCleanupSystem(overlay, observers, eventHandlers);\n};\n\nexport { previewScript };\n"],"names":["previewScript","shouldRun","HIGHLIGHT_PADDING","HIGHLIGHT_HOVER_COLOR","window","STRAPI_HIGHLIGHT_HOVER_COLOR","SOURCE_ATTRIBUTE","OVERLAY_ID","INTERNAL_EVENTS","DUMMY_EVENT","createOverlaySystem","__strapi_previewCleanup","document","getElementById","remove","overlay","createElement","id","style","cssText","body","appendChild","createHighlightManager","elements","querySelectorAll","highlights","eventListeners","drawHighlight","target","highlight","rect","getBoundingClientRect","width","height","transform","left","top","updateAllHighlights","forEach","index","element","HTMLElement","mouseEnterHandler","outlineColor","mouseLeaveHandler","doubleClickHandler","console","log","mouseDownHandler","event","detail","preventDefault","addEventListener","push","type","handler","setupObservers","highlightManager","resizeObserver","ResizeObserver","observe","documentElement","updateOnScroll","scrollableElements","Set","add","parent","parentElement","computedStyle","getComputedStyle","overflow","overflowX","overflowY","includes","setupEventHandlers","createCleanupSystem","observers","eventHandlers","disconnect","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"previewScript.js","sources":["../../../../admin/src/preview/utils/previewScript.ts"],"sourcesContent":["// NOTE: This override is for the properties on _user's site_, it's not about Strapi Admin.\ndeclare global {\n interface Window {\n __strapi_previewCleanup?: () => void;\n STRAPI_HIGHLIGHT_HOVER_COLOR?: string;\n STRAPI_HIGHLIGHT_ACTIVE_COLOR?: string;\n STRAPI_DISABLE_STEGA_DECODING?: boolean;\n }\n}\n\n/**\n * previewScript will be injected into the preview iframe after being stringified.\n * Therefore it CANNOT use any imports, or refer to any variables outside of its own scope.\n * It's why many functions are defined within previewScript, it's the only way to avoid going full spaghetti.\n * To get a better overview of everything previewScript does, go to the orchestration part at its end.\n */\nconst previewScript = (shouldRun = true) => {\n /* -----------------------------------------------------------------------------------------------\n * Params\n * ---------------------------------------------------------------------------------------------*/\n const HIGHLIGHT_PADDING = 2; // in pixels\n const HIGHLIGHT_HOVER_COLOR = window.STRAPI_HIGHLIGHT_HOVER_COLOR ?? '#4945ff'; // dark primary500\n const HIGHLIGHT_ACTIVE_COLOR = window.STRAPI_HIGHLIGHT_ACTIVE_COLOR ?? '#7b79ff'; // dark primary600\n const HIGHLIGHT_STYLES_ID = 'strapi-preview-highlight-styles';\n const DOUBLE_CLICK_TIMEOUT = 300; // milliseconds to wait for potential double-click\n\n const DISABLE_STEGA_DECODING = window.STRAPI_DISABLE_STEGA_DECODING ?? false;\n const SOURCE_ATTRIBUTE = 'data-strapi-source';\n const OVERLAY_ID = 'strapi-preview-overlay';\n const INTERNAL_EVENTS = {\n STRAPI_FIELD_FOCUS: 'strapiFieldFocus',\n STRAPI_FIELD_BLUR: 'strapiFieldBlur',\n STRAPI_FIELD_CHANGE: 'strapiFieldChange',\n STRAPI_FIELD_FOCUS_INTENT: 'strapiFieldFocusIntent',\n STRAPI_FIELD_SINGLE_CLICK_HINT: 'strapiFieldSingleClickHint',\n } as const;\n\n /**\n * Calling the function in no-run mode lets us retrieve the constants from other files and keep\n * a single source of truth for them. It's the only way to do this because this script can't\n * refer to any variables outside of its own scope, because it's stringified before it's run.\n */\n if (!shouldRun) {\n return { INTERNAL_EVENTS };\n }\n\n /* -----------------------------------------------------------------------------------------------\n * Utils\n * ---------------------------------------------------------------------------------------------*/\n\n const sendMessage = (\n type: (typeof INTERNAL_EVENTS)[keyof typeof INTERNAL_EVENTS],\n payload: unknown\n ) => {\n window.parent.postMessage({ type, payload }, '*');\n };\n\n const getElementsByPath = (path: string) => {\n return document.querySelectorAll(`[${SOURCE_ATTRIBUTE}*=\"path=${path}\"]`);\n };\n\n /* -----------------------------------------------------------------------------------------------\n * Functionality pieces\n * ---------------------------------------------------------------------------------------------*/\n\n const setupStegaDOMObserver = async () => {\n if (DISABLE_STEGA_DECODING) {\n return;\n }\n\n const { vercelStegaDecode: stegaDecode, vercelStegaClean: stegaClean } = await import(\n // @ts-expect-error it's not a local dependency\n // eslint-disable-next-line import/no-unresolved\n 'https://cdn.jsdelivr.net/npm/@vercel/stega@0.1.2/+esm'\n );\n\n const applyStegaToElement = (element: Element) => {\n const directTextNodes = Array.from(element.childNodes).filter(\n (node) => node.nodeType === Node.TEXT_NODE\n );\n\n const directTextContent = directTextNodes.map((node) => node.textContent || '').join('');\n\n if (directTextContent) {\n try {\n // TODO: check if we can call split instead of decode+clean\n const result = stegaDecode(directTextContent);\n if (result && 'strapiSource' in result) {\n element.setAttribute(SOURCE_ATTRIBUTE, result.strapiSource);\n\n // Remove encoded part from DOM text content (to avoid breaking links for example)\n directTextNodes.forEach((node) => {\n if (node.textContent) {\n const cleanedText = stegaClean(node.textContent);\n if (cleanedText !== node.textContent) {\n node.textContent = cleanedText;\n }\n }\n });\n }\n } catch (error) {}\n }\n };\n\n // Process all existing elements\n const allElements = document.querySelectorAll('*');\n Array.from(allElements).forEach(applyStegaToElement);\n\n // Create observer for new elements and text changes\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n // Handle added nodes\n if (mutation.type === 'childList') {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n // Process the added element\n applyStegaToElement(element);\n // Process all child elements\n const childElements = element.querySelectorAll('*');\n Array.from(childElements).forEach(applyStegaToElement);\n }\n });\n }\n\n // Handle text content changes\n if (mutation.type === 'characterData' && mutation.target.parentElement) {\n applyStegaToElement(mutation.target.parentElement);\n }\n });\n });\n\n observer.observe(document, {\n childList: true,\n subtree: true,\n characterData: true,\n });\n\n return observer;\n };\n\n const createHighlightStyles = () => {\n const existingStyles = document.getElementById(HIGHLIGHT_STYLES_ID);\n // Remove existing styles to avoid duplicates\n if (existingStyles) {\n existingStyles.remove();\n }\n\n const styleElement = document.createElement('style');\n styleElement.id = HIGHLIGHT_STYLES_ID;\n styleElement.textContent = `\n .strapi-highlight {\n position: absolute;\n outline: 2px solid transparent;\n pointer-events: auto;\n border-radius: 2px;\n background-color: transparent;\n will-change: transform;\n transition: outline-color 0.1s ease-in-out;\n }\n\n .strapi-highlight:hover {\n outline-color: ${HIGHLIGHT_HOVER_COLOR} !important;\n }\n\n .strapi-highlight.strapi-highlight-focused {\n outline-color: ${HIGHLIGHT_ACTIVE_COLOR} !important;\n outline-width: 3px !important;\n }\n `;\n\n document.head.appendChild(styleElement);\n return styleElement;\n };\n\n const createOverlaySystem = () => {\n // Clean up before creating a new overlay so we can safely call previewScript multiple times\n window.__strapi_previewCleanup?.();\n document.getElementById(OVERLAY_ID)?.remove();\n\n const overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n overlay.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 9999;\n `;\n\n window.document.body.appendChild(overlay);\n return overlay;\n };\n\n type EventListenersList = Array<{\n element: HTMLElement | Window;\n type: keyof HTMLElementEventMap | 'message';\n handler: EventListener;\n }>;\n\n const createHighlightManager = (overlay: HTMLElement) => {\n const elementsToHighlight = new Map<Element, HTMLElement>();\n const eventListeners: EventListenersList = [];\n const focusedHighlights: HTMLElement[] = [];\n const pendingClicks = new Map<Element, number>(); // number is timeout id\n let focusedField: string | null = null;\n\n const drawHighlight = (target: Element, highlight: HTMLElement) => {\n if (!highlight) return;\n\n const rect = target.getBoundingClientRect();\n highlight.style.width = `${rect.width + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.height = `${rect.height + HIGHLIGHT_PADDING * 2}px`;\n highlight.style.transform = `translate(${rect.left - HIGHLIGHT_PADDING}px, ${rect.top - HIGHLIGHT_PADDING}px)`;\n };\n\n const updateAllHighlights = () => {\n elementsToHighlight.forEach((highlight, element) => {\n drawHighlight(element, highlight);\n });\n };\n\n const createHighlightForElement = (element: HTMLElement) => {\n if (elementsToHighlight.has(element)) {\n // Already has a highlight\n return;\n }\n\n const highlight = document.createElement('div');\n highlight.className = 'strapi-highlight';\n const clickHandler = (event: MouseEvent) => {\n // Skip if this is a re-dispatched event from our delayed handler to avoid infinite loops\n if ((event as any).__strapi_redispatched) {\n return;\n }\n\n // Prevent the immediate action for interactive elements\n event.preventDefault();\n event.stopPropagation();\n\n // Clear any existing timeout for this element\n const existingTimeout = pendingClicks.get(element);\n if (existingTimeout) {\n window.clearTimeout(existingTimeout);\n pendingClicks.delete(element);\n }\n\n // Set up a delayed single-click handler\n const timeout = window.setTimeout(() => {\n pendingClicks.delete(element);\n\n // Send single-click hint notification\n sendMessage(INTERNAL_EVENTS.STRAPI_FIELD_SINGLE_CLICK_HINT, null);\n\n // Re-trigger the click on the underlying element after the double-click timeout\n // Create a new event to dispatch with a marker to prevent re-handling\n const newEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n detail: 1,\n button: event.button,\n buttons: event.buttons,\n clientX: event.clientX,\n clientY: event.clientY,\n ctrlKey: event.ctrlKey,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n });\n (newEvent as any).__strapi_redispatched = true;\n element.dispatchEvent(newEvent);\n }, DOUBLE_CLICK_TIMEOUT);\n\n pendingClicks.set(element, timeout);\n };\n\n const doubleClickHandler = (event: MouseEvent) => {\n // Prevent the default behavior on double-click\n event.preventDefault();\n event.stopPropagation();\n\n // Clear any pending single-click action\n const existingTimeout = pendingClicks.get(element);\n if (existingTimeout) {\n clearTimeout(existingTimeout);\n pendingClicks.delete(element);\n }\n\n const sourceAttribute = element.getAttribute(SOURCE_ATTRIBUTE);\n if (sourceAttribute) {\n const rect = element.getBoundingClientRect();\n sendMessage(INTERNAL_EVENTS.STRAPI_FIELD_FOCUS_INTENT, {\n path: sourceAttribute,\n position: {\n top: rect.top,\n left: rect.left,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height,\n },\n });\n }\n };\n\n const mouseDownHandler = (event: MouseEvent) => {\n // Prevent default multi click to select behavior\n if (event.detail >= 2) {\n event.preventDefault();\n }\n };\n\n highlight.addEventListener('click', clickHandler);\n highlight.addEventListener('dblclick', doubleClickHandler);\n highlight.addEventListener('mousedown', mouseDownHandler);\n\n // Store event listeners for cleanup\n eventListeners.push(\n { element: highlight, type: 'click', handler: clickHandler as EventListener },\n { element: highlight, type: 'dblclick', handler: doubleClickHandler as EventListener },\n { element: highlight, type: 'mousedown', handler: mouseDownHandler as EventListener }\n );\n\n elementsToHighlight.set(element, highlight);\n overlay.appendChild(highlight);\n drawHighlight(element, highlight);\n };\n\n const removeHighlightForElement = (element: Element) => {\n const highlight = elementsToHighlight.get(element);\n\n if (!highlight) return;\n\n // Clear any pending click timeout for this element\n const pendingTimeout = pendingClicks.get(element);\n if (pendingTimeout) {\n window.clearTimeout(pendingTimeout);\n pendingClicks.delete(element);\n }\n\n highlight.remove();\n elementsToHighlight.delete(element);\n\n // Remove event listeners for this highlight\n const listenersToRemove = eventListeners.filter((listener) => listener.element === highlight);\n listenersToRemove.forEach(({ element, type, handler }) => {\n element.removeEventListener(type, handler);\n });\n\n // Mutate eventListeners to remove listeners for this highlight\n eventListeners.splice(\n 0,\n eventListeners.length,\n ...eventListeners.filter((listener) => listener.element !== highlight)\n );\n };\n\n // Process all existing elements with source attributes\n const initialElements = window.document.querySelectorAll(`[${SOURCE_ATTRIBUTE}]`);\n Array.from(initialElements).forEach((element) => {\n if (element instanceof HTMLElement) {\n createHighlightForElement(element);\n }\n });\n\n return {\n get elements() {\n return Array.from(elementsToHighlight.keys());\n },\n get highlights() {\n return Array.from(elementsToHighlight.values());\n },\n updateAllHighlights,\n eventListeners,\n focusedHighlights,\n createHighlightForElement,\n removeHighlightForElement,\n setFocusedField: (field: string | null) => {\n focusedField = field;\n },\n getFocusedField: () => focusedField,\n clearAllPendingClicks: () => {\n pendingClicks.forEach((timeout) => clearTimeout(timeout));\n pendingClicks.clear();\n },\n };\n };\n\n type HighlightManager = ReturnType<typeof createHighlightManager>;\n\n /**\n * We need to track scroll in all the element parents in order to keep the highlight position\n * in sync with the element position. Listening to window scroll is not enough because the\n * element can be inside one or more scrollable containers.\n */\n const setupScrollManagement = (highlightManager: HighlightManager) => {\n const updateOnScroll = () => {\n highlightManager.updateAllHighlights();\n };\n\n const scrollableElements = new Set<Element | Window>();\n scrollableElements.add(window);\n\n // Find all scrollable ancestors for all tracked elements and set up scroll listeners\n highlightManager.elements.forEach((element) => {\n let parent = element.parentElement;\n while (parent) {\n const computedStyle = window.getComputedStyle(parent);\n const overflow = computedStyle.overflow + computedStyle.overflowX + computedStyle.overflowY;\n\n if (overflow.includes('scroll') || overflow.includes('auto')) {\n scrollableElements.add(parent);\n }\n\n parent = parent.parentElement;\n }\n });\n\n // Add scroll listeners to all scrollable elements\n scrollableElements.forEach((element) => {\n if (element === window) {\n window.addEventListener('scroll', updateOnScroll);\n window.addEventListener('resize', updateOnScroll);\n } else {\n element.addEventListener('scroll', updateOnScroll);\n }\n });\n\n const cleanup = () => {\n scrollableElements.forEach((element) => {\n if (element === window) {\n window.removeEventListener('scroll', updateOnScroll);\n window.removeEventListener('resize', updateOnScroll);\n } else {\n (element as Element).removeEventListener('scroll', updateOnScroll);\n }\n });\n };\n\n return { cleanup };\n };\n\n const setupObservers = (\n highlightManager: HighlightManager,\n stegaObserver: MutationObserver | undefined\n ) => {\n const resizeObserver = new ResizeObserver(() => {\n highlightManager.updateAllHighlights();\n });\n\n const observeElementForResize = (element: Element) => {\n resizeObserver.observe(element);\n };\n\n // Observe existing elements\n highlightManager.elements.forEach(observeElementForResize);\n resizeObserver.observe(document.documentElement);\n\n // Create highlight observer to watch for new elements with source attributes\n const highlightObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === SOURCE_ATTRIBUTE) {\n const target = mutation.target as HTMLElement;\n if (target.hasAttribute(SOURCE_ATTRIBUTE)) {\n highlightManager.createHighlightForElement(target);\n observeElementForResize(target);\n } else {\n highlightManager.removeHighlightForElement(target);\n }\n }\n\n if (mutation.type === 'childList') {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n // Check if the added element has source attribute\n if (element.hasAttribute(SOURCE_ATTRIBUTE) && element instanceof HTMLElement) {\n highlightManager.createHighlightForElement(element);\n observeElementForResize(element);\n }\n // Check all child elements for source attributes\n const elementsWithSource = element.querySelectorAll(`[${SOURCE_ATTRIBUTE}]`);\n Array.from(elementsWithSource).forEach((childElement) => {\n if (childElement instanceof HTMLElement) {\n highlightManager.createHighlightForElement(childElement);\n observeElementForResize(childElement);\n }\n });\n }\n });\n\n mutation.removedNodes.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n highlightManager.removeHighlightForElement(element);\n }\n });\n }\n });\n });\n\n highlightObserver.observe(document, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [SOURCE_ATTRIBUTE],\n });\n\n return {\n resizeObserver,\n highlightObserver,\n stegaObserver,\n };\n };\n\n const setupEventHandlers = (highlightManager: HighlightManager) => {\n const handleMessage = (event: MessageEvent) => {\n if (!event.data?.type) return;\n\n // The user typed in an input, reflect the change in the preview\n if (event.data.type === INTERNAL_EVENTS.STRAPI_FIELD_CHANGE) {\n const { field, value } = event.data.payload;\n if (!field) return;\n\n getElementsByPath(field).forEach((element) => {\n if (element instanceof HTMLElement) {\n element.textContent = value || '';\n }\n });\n\n // Update highlight dimensions since the new text content may affect them\n highlightManager.updateAllHighlights();\n return;\n }\n\n // The user focused a new input, update the highlights in the preview\n if (event.data.type === INTERNAL_EVENTS.STRAPI_FIELD_FOCUS) {\n const { field } = event.data.payload;\n if (!field) return;\n\n // Clear existing focused highlights\n highlightManager.focusedHighlights.forEach((highlight: HTMLElement) => {\n highlight.classList.remove('strapi-highlight-focused');\n });\n highlightManager.focusedHighlights.length = 0;\n\n // Set new focused field and highlight matching elements\n highlightManager.setFocusedField(field);\n getElementsByPath(field).forEach((element, index) => {\n if (index === 0) {\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n const highlight =\n highlightManager.highlights[Array.from(highlightManager.elements).indexOf(element)];\n if (highlight) {\n highlight.classList.add('strapi-highlight-focused');\n highlightManager.focusedHighlights.push(highlight);\n }\n });\n return;\n }\n\n // The user is no longer focusing an input, remove the highlights\n if (event.data.type === INTERNAL_EVENTS.STRAPI_FIELD_BLUR) {\n const { field } = event.data.payload;\n if (field !== highlightManager.getFocusedField()) return;\n\n highlightManager.focusedHighlights.forEach((highlight: HTMLElement) => {\n highlight.classList.remove('strapi-highlight-focused');\n });\n highlightManager.focusedHighlights.length = 0;\n highlightManager.setFocusedField(null);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n // Add the message handler to the cleanup list\n const messageEventListener = {\n element: window,\n type: 'message' as keyof HTMLElementEventMap,\n handler: handleMessage as EventListener,\n };\n\n return [...highlightManager.eventListeners, messageEventListener];\n };\n\n const createCleanupSystem = (\n overlay: HTMLElement,\n observers: ReturnType<typeof setupObservers>,\n scrollManager: ReturnType<typeof setupScrollManagement>,\n eventHandlers: EventListenersList,\n highlightManager: HighlightManager\n ) => {\n window.__strapi_previewCleanup = () => {\n observers.resizeObserver.disconnect();\n observers.highlightObserver.disconnect();\n observers.stegaObserver?.disconnect();\n\n // Clean up scroll listeners\n scrollManager.cleanup();\n\n // Clear all pending click timeouts\n highlightManager.clearAllPendingClicks();\n\n // Remove highlight event listeners\n eventHandlers.forEach(({ element, type, handler }) => {\n element.removeEventListener(type, handler);\n });\n\n // Clean up CSS styles\n const existingStyles = document.getElementById(HIGHLIGHT_STYLES_ID);\n if (existingStyles) {\n existingStyles.remove();\n }\n\n overlay.remove();\n };\n };\n\n /* -----------------------------------------------------------------------------------------------\n * Orchestration\n * ---------------------------------------------------------------------------------------------*/\n\n setupStegaDOMObserver().then((stegaObserver) => {\n createHighlightStyles();\n const overlay = createOverlaySystem();\n const highlightManager = createHighlightManager(overlay);\n const observers = setupObservers(highlightManager, stegaObserver);\n const scrollManager = setupScrollManagement(highlightManager);\n const eventHandlers = setupEventHandlers(highlightManager);\n createCleanupSystem(overlay, observers, scrollManager, eventHandlers, highlightManager);\n });\n};\n\nexport { previewScript };\n"],"names":["previewScript","shouldRun","HIGHLIGHT_PADDING","HIGHLIGHT_HOVER_COLOR","window","STRAPI_HIGHLIGHT_HOVER_COLOR","HIGHLIGHT_ACTIVE_COLOR","STRAPI_HIGHLIGHT_ACTIVE_COLOR","HIGHLIGHT_STYLES_ID","DOUBLE_CLICK_TIMEOUT","DISABLE_STEGA_DECODING","STRAPI_DISABLE_STEGA_DECODING","SOURCE_ATTRIBUTE","OVERLAY_ID","INTERNAL_EVENTS","STRAPI_FIELD_FOCUS","STRAPI_FIELD_BLUR","STRAPI_FIELD_CHANGE","STRAPI_FIELD_FOCUS_INTENT","STRAPI_FIELD_SINGLE_CLICK_HINT","sendMessage","type","payload","parent","postMessage","getElementsByPath","path","document","querySelectorAll","setupStegaDOMObserver","vercelStegaDecode","stegaDecode","vercelStegaClean","stegaClean","applyStegaToElement","element","directTextNodes","Array","from","childNodes","filter","node","nodeType","Node","TEXT_NODE","directTextContent","map","textContent","join","result","setAttribute","strapiSource","forEach","cleanedText","error","allElements","observer","MutationObserver","mutations","mutation","addedNodes","ELEMENT_NODE","childElements","target","parentElement","observe","childList","subtree","characterData","createHighlightStyles","existingStyles","getElementById","remove","styleElement","createElement","id","head","appendChild","createOverlaySystem","__strapi_previewCleanup","overlay","style","cssText","body","createHighlightManager","elementsToHighlight","Map","eventListeners","focusedHighlights","pendingClicks","focusedField","drawHighlight","highlight","rect","getBoundingClientRect","width","height","transform","left","top","updateAllHighlights","createHighlightForElement","has","className","clickHandler","event","__strapi_redispatched","preventDefault","stopPropagation","existingTimeout","get","clearTimeout","delete","timeout","setTimeout","newEvent","MouseEvent","bubbles","cancelable","view","detail","button","buttons","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","dispatchEvent","set","doubleClickHandler","sourceAttribute","getAttribute","position","right","bottom","mouseDownHandler","addEventListener","push","handler","removeHighlightForElement","pendingTimeout","listenersToRemove","listener","removeEventListener","splice","length","initialElements","HTMLElement","elements","keys","highlights","values","setFocusedField","field","getFocusedField","clearAllPendingClicks","clear","setupScrollManagement","highlightManager","updateOnScroll","scrollableElements","Set","add","computedStyle","getComputedStyle","overflow","overflowX","overflowY","includes","cleanup","setupObservers","stegaObserver","resizeObserver","ResizeObserver","observeElementForResize","documentElement","highlightObserver","attributeName","hasAttribute","elementsWithSource","childElement","removedNodes","attributes","attributeFilter","setupEventHandlers","handleMessage","data","value","classList","index","scrollIntoView","behavior","block","indexOf","messageEventListener","createCleanupSystem","observers","scrollManager","eventHandlers","disconnect","then"],"mappings":"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"}