@strapi/content-manager 5.48.1 → 5.50.0

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 (458) hide show
  1. package/dist/admin/components/ActionsDrawer.js +3 -2
  2. package/dist/admin/components/ActionsDrawer.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.js +4 -3
  4. package/dist/admin/components/ComponentIcon.js.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Fields.js +3 -2
  8. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Form.js +7 -3
  10. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  11. package/dist/admin/components/LeftMenu.js +3 -2
  12. package/dist/admin/components/LeftMenu.js.map +1 -1
  13. package/dist/admin/components/RelativeTime.js +3 -2
  14. package/dist/admin/components/RelativeTime.js.map +1 -1
  15. package/dist/admin/components/Widgets.js +3 -2
  16. package/dist/admin/components/Widgets.js.map +1 -1
  17. package/dist/admin/features/DocumentRBAC.js +3 -2
  18. package/dist/admin/features/DocumentRBAC.js.map +1 -1
  19. package/dist/admin/history/components/VersionContent.js +7 -3
  20. package/dist/admin/history/components/VersionContent.js.map +1 -1
  21. package/dist/admin/history/components/VersionHeader.js +3 -2
  22. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  23. package/dist/admin/history/components/VersionInputRenderer.js +3 -2
  24. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  25. package/dist/admin/history/pages/History.js +3 -2
  26. package/dist/admin/history/pages/History.js.map +1 -1
  27. package/dist/admin/history/routes.js +3 -2
  28. package/dist/admin/history/routes.js.map +1 -1
  29. package/dist/admin/hooks/useContentTypeSchema.js +3 -2
  30. package/dist/admin/hooks/useContentTypeSchema.js.map +1 -1
  31. package/dist/admin/hooks/useDocument.js +3 -2
  32. package/dist/admin/hooks/useDocument.js.map +1 -1
  33. package/dist/admin/hooks/useDocumentActions.js +3 -2
  34. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  35. package/dist/admin/hooks/useDocumentContext.js +3 -2
  36. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  37. package/dist/admin/hooks/useDocumentLayout.js +3 -2
  38. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  39. package/dist/admin/hooks/useDragAndDrop.js +3 -2
  40. package/dist/admin/hooks/useDragAndDrop.js.map +1 -1
  41. package/dist/admin/hooks/useKeyboardDragAndDrop.js +3 -2
  42. package/dist/admin/hooks/useKeyboardDragAndDrop.js.map +1 -1
  43. package/dist/admin/hooks/useOnce.js +3 -2
  44. package/dist/admin/hooks/useOnce.js.map +1 -1
  45. package/dist/admin/hooks/usePersistentQueryParams.js +7 -2
  46. package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
  47. package/dist/admin/layout.js +3 -1
  48. package/dist/admin/layout.js.map +1 -1
  49. package/dist/admin/layout.mjs +5 -3
  50. package/dist/admin/layout.mjs.map +1 -1
  51. package/dist/admin/pages/ComponentConfigurationPage.js +3 -2
  52. package/dist/admin/pages/ComponentConfigurationPage.js.map +1 -1
  53. package/dist/admin/pages/EditConfigurationPage.js +3 -2
  54. package/dist/admin/pages/EditConfigurationPage.js.map +1 -1
  55. package/dist/admin/pages/EditView/EditViewPage.js +3 -2
  56. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/DocumentActions.js +238 -108
  58. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/DocumentActions.mjs +225 -103
  60. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +3 -2
  62. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +4 -3
  64. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +3 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +3 -2
  68. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +3 -2
  70. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +3 -2
  72. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +3 -2
  74. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -3
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +3 -2
  78. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +3 -2
  80. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +3 -2
  82. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +6 -1
  84. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +2 -1
  86. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +9 -4
  88. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +3 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +13 -4
  92. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +6 -1
  94. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +3 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +7 -3
  98. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/UID.js +3 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +8 -4
  102. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +3 -2
  104. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +3 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js +5 -1
  108. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js +15 -2
  110. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js +5 -1
  112. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormLayout.js +3 -2
  114. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  115. package/dist/admin/pages/EditView/components/Header.js +3 -2
  116. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -2
  118. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  119. package/dist/admin/pages/EditView/components/Panels.js +3 -2
  120. package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
  121. package/dist/admin/pages/EditView/utils/data.js +5 -1
  122. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  123. package/dist/admin/pages/EditView/utils/draftRelationCounts.js +117 -0
  124. package/dist/admin/pages/EditView/utils/draftRelationCounts.js.map +1 -0
  125. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs +109 -0
  126. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs.map +1 -0
  127. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js +35 -0
  128. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js.map +1 -0
  129. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs +33 -0
  130. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs.map +1 -0
  131. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +3 -2
  132. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  133. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +3 -2
  134. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  135. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +3 -2
  136. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
  137. package/dist/admin/pages/ListConfiguration/components/Settings.js +3 -2
  138. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  139. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +3 -2
  140. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -1
  141. package/dist/admin/pages/ListView/ListViewPage.js +3 -2
  142. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  143. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +3 -2
  144. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  145. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +4 -3
  146. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  147. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +1 -1
  148. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  149. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +3 -2
  150. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  151. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  152. package/dist/admin/pages/ListView/components/Filters.js +3 -2
  153. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  154. package/dist/admin/pages/ListView/components/TableActions.js +3 -2
  155. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  156. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +9 -5
  157. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  158. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +2 -2
  159. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  160. package/dist/admin/pages/ListView/components/TableCells/CellValue.js +7 -2
  161. package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
  162. package/dist/admin/pages/ListView/components/TableCells/Relations.js +4 -3
  163. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  164. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +1 -1
  165. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  166. package/dist/admin/preview/components/InputPopover.js +3 -2
  167. package/dist/admin/preview/components/InputPopover.js.map +1 -1
  168. package/dist/admin/preview/hooks/usePreviewInputManager.js +3 -2
  169. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
  170. package/dist/admin/preview/pages/Preview.js +41 -13
  171. package/dist/admin/preview/pages/Preview.js.map +1 -1
  172. package/dist/admin/preview/pages/Preview.mjs +39 -12
  173. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  174. package/dist/admin/preview/routes.js +3 -2
  175. package/dist/admin/preview/routes.js.map +1 -1
  176. package/dist/admin/preview/utils/constants.js +9 -15
  177. package/dist/admin/preview/utils/constants.js.map +1 -1
  178. package/dist/admin/preview/utils/constants.mjs +10 -15
  179. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  180. package/dist/admin/src/components/InjectionZone.d.ts +1 -2
  181. package/dist/admin/src/content-manager.d.ts +15 -15
  182. package/dist/admin/src/history/services/historyVersion.d.ts +2 -2
  183. package/dist/admin/src/hooks/useContentTypeSchema.d.ts +1 -1
  184. package/dist/admin/src/hooks/useDocument.d.ts +8 -9
  185. package/dist/admin/src/hooks/useDocumentLayout.d.ts +3 -3
  186. package/dist/admin/src/hooks/useDragAndDrop.d.ts +4 -4
  187. package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  188. package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +0 -1
  189. package/dist/admin/src/modules/app.d.ts +5 -5
  190. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +1 -1
  191. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +12 -1
  192. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +1 -1
  193. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +1 -1
  194. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +2 -2
  195. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -2
  196. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +4 -4
  197. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  198. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +19 -20
  199. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +12 -12
  200. package/dist/admin/src/pages/EditView/utils/draftRelationCounts.d.ts +26 -0
  201. package/dist/admin/src/pages/EditView/utils/keyboardShortcuts.d.ts +18 -0
  202. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +1 -1
  203. package/dist/admin/src/pages/ListView/components/Filters.d.ts +1 -1
  204. package/dist/admin/src/pages/formatComponentConfigurationEditLayout.d.ts +1 -1
  205. package/dist/admin/src/preview/utils/constants.d.ts +1 -7
  206. package/dist/admin/src/preview/utils/getSendMessage.d.ts +0 -1
  207. package/dist/admin/src/services/documents.d.ts +30 -70
  208. package/dist/admin/src/services/relations.d.ts +6 -20
  209. package/dist/admin/src/services/uid.d.ts +5 -5
  210. package/dist/admin/src/utils/layouts/normalizeContentManagerLayout.d.ts +4 -4
  211. package/dist/admin/src/utils/users.d.ts +1 -1
  212. package/dist/admin/src/utils/validation.d.ts +1 -1
  213. package/dist/admin/translations/cs.json.js +2 -1
  214. package/dist/admin/translations/cs.json.js.map +1 -1
  215. package/dist/admin/translations/cs.json.mjs +2 -1
  216. package/dist/admin/translations/cs.json.mjs.map +1 -1
  217. package/dist/admin/translations/de.json.js +2 -1
  218. package/dist/admin/translations/de.json.js.map +1 -1
  219. package/dist/admin/translations/de.json.mjs +2 -1
  220. package/dist/admin/translations/de.json.mjs.map +1 -1
  221. package/dist/admin/translations/en.json.js +7 -3
  222. package/dist/admin/translations/en.json.js.map +1 -1
  223. package/dist/admin/translations/en.json.mjs +7 -3
  224. package/dist/admin/translations/en.json.mjs.map +1 -1
  225. package/dist/admin/translations/es.json.js +2 -1
  226. package/dist/admin/translations/es.json.js.map +1 -1
  227. package/dist/admin/translations/es.json.mjs +2 -1
  228. package/dist/admin/translations/es.json.mjs.map +1 -1
  229. package/dist/admin/translations/fr.json.js +2 -1
  230. package/dist/admin/translations/fr.json.js.map +1 -1
  231. package/dist/admin/translations/fr.json.mjs +2 -1
  232. package/dist/admin/translations/fr.json.mjs.map +1 -1
  233. package/dist/admin/translations/ja.json.js +262 -87
  234. package/dist/admin/translations/ja.json.js.map +1 -1
  235. package/dist/admin/translations/ja.json.mjs +262 -87
  236. package/dist/admin/translations/ja.json.mjs.map +1 -1
  237. package/dist/admin/translations/nl.json.js +2 -1
  238. package/dist/admin/translations/nl.json.js.map +1 -1
  239. package/dist/admin/translations/nl.json.mjs +2 -1
  240. package/dist/admin/translations/nl.json.mjs.map +1 -1
  241. package/dist/admin/translations/pl.json.js +2 -1
  242. package/dist/admin/translations/pl.json.js.map +1 -1
  243. package/dist/admin/translations/pl.json.mjs +2 -1
  244. package/dist/admin/translations/pl.json.mjs.map +1 -1
  245. package/dist/admin/translations/sk.json.js +2 -1
  246. package/dist/admin/translations/sk.json.js.map +1 -1
  247. package/dist/admin/translations/sk.json.mjs +2 -1
  248. package/dist/admin/translations/sk.json.mjs.map +1 -1
  249. package/dist/admin/utils/objects.js +9 -4
  250. package/dist/admin/utils/objects.js.map +1 -1
  251. package/dist/admin/utils/validation.js +7 -3
  252. package/dist/admin/utils/validation.js.map +1 -1
  253. package/dist/server/controllers/collection-types.js +2 -2
  254. package/dist/server/controllers/collection-types.js.map +1 -1
  255. package/dist/server/controllers/collection-types.mjs +2 -2
  256. package/dist/server/controllers/collection-types.mjs.map +1 -1
  257. package/dist/server/controllers/single-types.js +2 -2
  258. package/dist/server/controllers/single-types.js.map +1 -1
  259. package/dist/server/controllers/single-types.mjs +2 -2
  260. package/dist/server/controllers/single-types.mjs.map +1 -1
  261. package/dist/server/controllers/utils/clone.js +5 -1
  262. package/dist/server/controllers/utils/clone.js.map +1 -1
  263. package/dist/server/controllers/utils/clone.mjs.map +1 -1
  264. package/dist/server/controllers/validation/index.js +6 -2
  265. package/dist/server/controllers/validation/index.js.map +1 -1
  266. package/dist/server/homepage/services/homepage.js +6 -1
  267. package/dist/server/homepage/services/homepage.js.map +1 -1
  268. package/dist/server/homepage/services/homepage.mjs +6 -1
  269. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  270. package/dist/server/mcp/handlers/collection-handlers.js +15 -18
  271. package/dist/server/mcp/handlers/collection-handlers.js.map +1 -1
  272. package/dist/server/mcp/handlers/collection-handlers.mjs +16 -19
  273. package/dist/server/mcp/handlers/collection-handlers.mjs.map +1 -1
  274. package/dist/server/mcp/handlers/single-type-handlers.js +12 -12
  275. package/dist/server/mcp/handlers/single-type-handlers.js.map +1 -1
  276. package/dist/server/mcp/handlers/single-type-handlers.mjs +13 -13
  277. package/dist/server/mcp/handlers/single-type-handlers.mjs.map +1 -1
  278. package/dist/server/mcp/register-content-manager-mcp-tools.js +4 -1
  279. package/dist/server/mcp/register-content-manager-mcp-tools.js.map +1 -1
  280. package/dist/server/mcp/register-content-manager-mcp-tools.mjs +4 -1
  281. package/dist/server/mcp/register-content-manager-mcp-tools.mjs.map +1 -1
  282. package/dist/server/mcp/sanitizers/shape-relations.js +108 -0
  283. package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -0
  284. package/dist/server/mcp/sanitizers/shape-relations.mjs +103 -0
  285. package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -0
  286. package/dist/server/mcp/schemas/data-schema.js +0 -3
  287. package/dist/server/mcp/schemas/data-schema.js.map +1 -1
  288. package/dist/server/mcp/schemas/data-schema.mjs +0 -3
  289. package/dist/server/mcp/schemas/data-schema.mjs.map +1 -1
  290. package/dist/server/mcp/schemas/output-schemas.js +30 -4
  291. package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
  292. package/dist/server/mcp/schemas/output-schemas.mjs +30 -4
  293. package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
  294. package/dist/server/mcp/utils.js +30 -3
  295. package/dist/server/mcp/utils.js.map +1 -1
  296. package/dist/server/mcp/utils.mjs +30 -4
  297. package/dist/server/mcp/utils.mjs.map +1 -1
  298. package/dist/server/middlewares/routing.js +5 -1
  299. package/dist/server/middlewares/routing.js.map +1 -1
  300. package/dist/server/preview/controllers/preview.js +9 -0
  301. package/dist/server/preview/controllers/preview.js.map +1 -1
  302. package/dist/server/preview/controllers/preview.mjs +9 -0
  303. package/dist/server/preview/controllers/preview.mjs.map +1 -1
  304. package/dist/server/preview/controllers/previewScript.js +1450 -0
  305. package/dist/server/preview/routes/preview.js +11 -0
  306. package/dist/server/preview/routes/preview.js.map +1 -1
  307. package/dist/server/preview/routes/preview.mjs +11 -0
  308. package/dist/server/preview/routes/preview.mjs.map +1 -1
  309. package/dist/server/services/document-manager.js +13 -19
  310. package/dist/server/services/document-manager.js.map +1 -1
  311. package/dist/server/services/document-manager.mjs +13 -19
  312. package/dist/server/services/document-manager.mjs.map +1 -1
  313. package/dist/server/services/populate-builder.js.map +1 -1
  314. package/dist/server/services/populate-builder.mjs.map +1 -1
  315. package/dist/server/services/uid.js +9 -4
  316. package/dist/server/services/uid.js.map +1 -1
  317. package/dist/server/services/utils/configuration/attributes.js +14 -10
  318. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  319. package/dist/server/services/utils/configuration/layouts.js +8 -4
  320. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  321. package/dist/server/services/utils/configuration/metadatas.js +19 -15
  322. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  323. package/dist/server/services/utils/configuration/settings.js +5 -1
  324. package/dist/server/services/utils/configuration/settings.js.map +1 -1
  325. package/dist/server/services/utils/draft-relations.js +9 -0
  326. package/dist/server/services/utils/draft-relations.js.map +1 -0
  327. package/dist/server/services/utils/draft-relations.mjs +7 -0
  328. package/dist/server/services/utils/draft-relations.mjs.map +1 -0
  329. package/dist/server/services/utils/draft.js +123 -26
  330. package/dist/server/services/utils/draft.js.map +1 -1
  331. package/dist/server/services/utils/draft.mjs +118 -25
  332. package/dist/server/services/utils/draft.mjs.map +1 -1
  333. package/dist/server/services/utils/populate.js +23 -5
  334. package/dist/server/services/utils/populate.js.map +1 -1
  335. package/dist/server/services/utils/populate.mjs +15 -1
  336. package/dist/server/services/utils/populate.mjs.map +1 -1
  337. package/dist/server/services/utils/store.js +9 -5
  338. package/dist/server/services/utils/store.js.map +1 -1
  339. package/dist/server/src/controllers/index.d.ts +1 -1
  340. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  341. package/dist/server/src/controllers/utils/clone.d.ts +1 -1
  342. package/dist/server/src/controllers/utils/clone.d.ts.map +1 -1
  343. package/dist/server/src/controllers/utils/document-status.d.ts +1 -1
  344. package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -1
  345. package/dist/server/src/controllers/utils/metadata.d.ts +5 -5
  346. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  347. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  348. package/dist/server/src/controllers/validation/index.d.ts +3 -3
  349. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  350. package/dist/server/src/controllers/validation/model-configuration.d.ts.map +1 -1
  351. package/dist/server/src/controllers/validation/relations.d.ts +2 -2
  352. package/dist/server/src/history/controllers/history-version.d.ts +1 -7
  353. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  354. package/dist/server/src/history/controllers/index.d.ts +2 -1
  355. package/dist/server/src/history/controllers/index.d.ts.map +1 -1
  356. package/dist/server/src/history/controllers/validation/history-version.d.ts +1 -1
  357. package/dist/server/src/history/services/history.d.ts +0 -2
  358. package/dist/server/src/history/services/history.d.ts.map +1 -1
  359. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  360. package/dist/server/src/history/services/utils.d.ts +3 -3
  361. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  362. package/dist/server/src/history/utils.d.ts +1 -18
  363. package/dist/server/src/history/utils.d.ts.map +1 -1
  364. package/dist/server/src/homepage/controllers/homepage.d.ts +0 -1
  365. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  366. package/dist/server/src/homepage/controllers/index.d.ts +2 -1
  367. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -1
  368. package/dist/server/src/homepage/index.d.ts +4 -8
  369. package/dist/server/src/homepage/index.d.ts.map +1 -1
  370. package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
  371. package/dist/server/src/homepage/services/homepage.d.ts +3 -4
  372. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  373. package/dist/server/src/homepage/services/index.d.ts +4 -8
  374. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  375. package/dist/server/src/index.d.ts +82 -86
  376. package/dist/server/src/index.d.ts.map +1 -1
  377. package/dist/server/src/mcp/derive-content-type-mcp-tools.d.ts.map +1 -1
  378. package/dist/server/src/mcp/handlers/collection-handlers.d.ts.map +1 -1
  379. package/dist/server/src/mcp/handlers/single-type-handlers.d.ts.map +1 -1
  380. package/dist/server/src/mcp/permissions.d.ts +1 -1
  381. package/dist/server/src/mcp/permissions.d.ts.map +1 -1
  382. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts +2 -1
  383. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts.map +1 -1
  384. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts +38 -0
  385. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -0
  386. package/dist/server/src/mcp/schemas/blocks-schema.d.ts.map +1 -1
  387. package/dist/server/src/mcp/schemas/data-schema.d.ts +0 -3
  388. package/dist/server/src/mcp/schemas/data-schema.d.ts.map +1 -1
  389. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  390. package/dist/server/src/mcp/schemas/output-schemas.d.ts +2 -2
  391. package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
  392. package/dist/server/src/mcp/schemas/sort-schema.d.ts.map +1 -1
  393. package/dist/server/src/mcp/types.d.ts +2 -2
  394. package/dist/server/src/mcp/types.d.ts.map +1 -1
  395. package/dist/server/src/mcp/utils.d.ts +19 -1
  396. package/dist/server/src/mcp/utils.d.ts.map +1 -1
  397. package/dist/server/src/middlewares/routing.d.ts.map +1 -1
  398. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  399. package/dist/server/src/policies/index.d.ts.map +1 -1
  400. package/dist/server/src/preview/controllers/index.d.ts +2 -1
  401. package/dist/server/src/preview/controllers/index.d.ts.map +1 -1
  402. package/dist/server/src/preview/controllers/preview.d.ts +5 -0
  403. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
  404. package/dist/server/src/preview/controllers/validation/preview.d.ts +1 -2
  405. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  406. package/dist/server/src/preview/routes/preview.d.ts.map +1 -1
  407. package/dist/server/src/preview/services/index.d.ts +1 -1
  408. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  409. package/dist/server/src/preview/services/preview-config.d.ts +1 -1
  410. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  411. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  412. package/dist/server/src/preview/utils.d.ts +1 -16
  413. package/dist/server/src/preview/utils.d.ts.map +1 -1
  414. package/dist/server/src/services/components.d.ts +2 -2
  415. package/dist/server/src/services/components.d.ts.map +1 -1
  416. package/dist/server/src/services/configuration.d.ts.map +1 -1
  417. package/dist/server/src/services/content-types.d.ts.map +1 -1
  418. package/dist/server/src/services/data-mapper.d.ts +5 -5
  419. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  420. package/dist/server/src/services/document-manager.d.ts +14 -14
  421. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  422. package/dist/server/src/services/document-metadata.d.ts +6 -6
  423. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  424. package/dist/server/src/services/field-sizes.d.ts +2 -2
  425. package/dist/server/src/services/field-sizes.d.ts.map +1 -1
  426. package/dist/server/src/services/index.d.ts +81 -85
  427. package/dist/server/src/services/index.d.ts.map +1 -1
  428. package/dist/server/src/services/metrics.d.ts.map +1 -1
  429. package/dist/server/src/services/permission-checker.d.ts +12 -31
  430. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  431. package/dist/server/src/services/permission.d.ts.map +1 -1
  432. package/dist/server/src/services/populate-builder.d.ts +7 -5
  433. package/dist/server/src/services/populate-builder.d.ts.map +1 -1
  434. package/dist/server/src/services/uid.d.ts.map +1 -1
  435. package/dist/server/src/services/utils/configuration/attributes.d.ts.map +1 -1
  436. package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
  437. package/dist/server/src/services/utils/count.d.ts.map +1 -1
  438. package/dist/server/src/services/utils/draft-relations.d.ts +19 -0
  439. package/dist/server/src/services/utils/draft-relations.d.ts.map +1 -0
  440. package/dist/server/src/services/utils/draft.d.ts +8 -7
  441. package/dist/server/src/services/utils/draft.d.ts.map +1 -1
  442. package/dist/server/src/services/utils/populate.d.ts +3 -1
  443. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  444. package/dist/server/src/services/utils/store.d.ts.map +1 -1
  445. package/dist/server/src/utils/index.d.ts.map +1 -1
  446. package/dist/server/src/validation/policies/hasPermissions.d.ts +1 -1
  447. package/dist/server/src/validation/zod.d.ts +1 -1
  448. package/dist/server/src/validation/zod.d.ts.map +1 -1
  449. package/dist/shared/contracts/collection-types.d.ts +4 -1
  450. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  451. package/dist/shared/contracts/single-types.d.ts +4 -1
  452. package/dist/shared/contracts/single-types.d.ts.map +1 -1
  453. package/package.json +10 -10
  454. package/dist/admin/preview/utils/previewScript.js +0 -1068
  455. package/dist/admin/preview/utils/previewScript.js.map +0 -1
  456. package/dist/admin/preview/utils/previewScript.mjs +0 -1066
  457. package/dist/admin/preview/utils/previewScript.mjs.map +0 -1
  458. package/dist/admin/src/preview/utils/previewScript.d.ts +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/Editor.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport CodeMirror, { EditorFromTextArea } from 'codemirror5';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\nimport { newlineAndIndentContinueMarkdownList } from './utils/continueList';\n\nimport type { FieldValue, InputProps } from '@strapi/admin/strapi-admin';\n\nimport 'codemirror5/addon/display/placeholder';\n\ninterface EditorApi {\n focus: () => void;\n scrollIntoView: (args?: Parameters<HTMLElement['scrollIntoView']>[0]) => void;\n}\n\ninterface EditorProps extends Omit<FieldValue, 'initialValue'>, Omit<InputProps, 'type' | 'label'> {\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isPreviewMode?: boolean;\n isExpandMode?: boolean;\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n}\n\nconst Editor = React.forwardRef<EditorApi, EditorProps>(\n (\n {\n disabled,\n editorRef,\n error,\n isPreviewMode,\n isExpandMode,\n name,\n onChange,\n placeholder,\n textareaRef,\n value,\n },\n forwardedRef\n ) => {\n const onChangeRef = React.useRef(onChange);\n\n React.useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n React.useEffect(() => {\n if (editorRef.current) {\n // Ensure the editor and its wrapper are cleaned up whenever this view is re-rendered\n // e.g. in case of re-ordering wysiwyg components in a DynamicZone\n editorRef.current.toTextArea();\n }\n editorRef.current = CodeMirror.fromTextArea(textareaRef.current!, {\n lineWrapping: true,\n extraKeys: {\n Enter: 'newlineAndIndentContinueMarkdownList',\n Tab: false,\n 'Shift-Tab': false,\n },\n readOnly: false,\n smartIndent: false,\n placeholder,\n spellcheck: true,\n inputStyle: 'contenteditable',\n });\n\n // @ts-expect-error – doesn't think command exists?\n CodeMirror.commands.newlineAndIndentContinueMarkdownList =\n newlineAndIndentContinueMarkdownList;\n editorRef.current.on('change', (cm, change) => {\n // setValue (prop sync) must not notify the form — parent already has the value.\n if (change.origin === 'setValue') {\n return;\n }\n onChangeRef.current(name, cm.getValue());\n });\n }, [editorRef, textareaRef, name, placeholder]);\n\n React.useEffect(() => {\n if (editorRef.current.hasFocus()) {\n return;\n }\n const nextValue = value ?? '';\n if (editorRef.current.getValue() !== nextValue) {\n editorRef.current.setValue(nextValue);\n }\n }, [editorRef, value]);\n\n React.useEffect(() => {\n if (isPreviewMode || disabled) {\n editorRef.current.setOption('readOnly', 'nocursor');\n } else {\n editorRef.current.setOption('readOnly', false);\n }\n }, [disabled, isPreviewMode, editorRef]);\n\n React.useEffect(() => {\n if (error) {\n editorRef.current.setOption('screenReaderLabel', error);\n } else {\n // to replace with translation\n editorRef.current.setOption('screenReaderLabel', 'Editor');\n }\n }, [editorRef, error]);\n\n React.useImperativeHandle(\n forwardedRef,\n () => ({\n focus() {\n editorRef.current.getInputField().focus();\n },\n scrollIntoView(args?: Parameters<HTMLElement['scrollIntoView']>[0]) {\n editorRef.current.getInputField().scrollIntoView(args);\n },\n }),\n [editorRef]\n );\n\n return (\n <EditorAndPreviewWrapper>\n <EditorStylesContainer $isExpandMode={isExpandMode} $disabled={disabled || isPreviewMode}>\n <textarea ref={textareaRef} />\n </EditorStylesContainer>\n {isPreviewMode && <PreviewWysiwyg data={value} />}\n </EditorAndPreviewWrapper>\n );\n }\n);\n\nconst EditorAndPreviewWrapper = styled.div`\n position: relative;\n height: calc(100%);\n\n ${({ theme }) => theme.breakpoints.medium} {\n height: calc(100% - 48px);\n }\n`;\n\nconst EditorStylesContainer = styled.div<{ $disabled?: boolean; $isExpandMode?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed !important' : 'auto')};\n height: 100%;\n /* BASICS */\n .CodeMirror-placeholder {\n color: ${({ theme }) => theme.colors.neutral600} !important;\n }\n\n .CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-size: 1.6rem;\n height: ${({ $isExpandMode }) =>\n $isExpandMode\n ? '100%'\n : '410px'}; // 512px(total height) - 48px (header) - 52px(footer) - 2px border\n color: ${({ theme }) => theme.colors.neutral800};\n direction: ltr;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,\n 'Open Sans', 'Helvetica Neue', sans-serif;\n\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 1.4rem;\n }\n }\n\n /* PADDING */\n\n .CodeMirror-lines {\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n /* Vertical padding around content */\n }\n\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n /* The little square between H and V scrollbars */\n background-color: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n /* GUTTER */\n\n .CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n }\n .CodeMirror-linenumbers {\n }\n .CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n }\n\n .CodeMirror-guttermarker {\n color: black;\n }\n .CodeMirror-guttermarker-subtle {\n color: #999;\n }\n\n /* CURSOR */\n\n .CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n }\n /* Shown when moving in bi-directional text */\n .CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n }\n .cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n }\n .cm-fat-cursor div.CodeMirror-cursors {\n /* z-index: 1; */\n }\n\n .cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n }\n .cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n }\n\n /* Can style cursor different in overwrite (non-insert) mode */\n .CodeMirror-overwrite .CodeMirror-cursor {\n }\n\n .cm-tab {\n display: inline-block;\n text-decoration: inherit;\n }\n\n .CodeMirror-rulers {\n position: absolute;\n left: 0;\n right: 0;\n top: -50px;\n bottom: 0;\n overflow: hidden;\n }\n .CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0;\n bottom: 0;\n position: absolute;\n }\n\n /* DEFAULT THEME */\n\n .cm-header,\n .cm-strong {\n font-weight: bold;\n }\n .cm-em {\n font-style: italic;\n }\n .cm-link {\n text-decoration: underline;\n }\n .cm-strikethrough {\n text-decoration: line-through;\n }\n\n .CodeMirror-composing {\n border-bottom: 2px solid;\n }\n\n /* Default styles for common addons */\n\n div.CodeMirror span.CodeMirror-matchingbracket {\n color: #0b0;\n }\n div.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: #a22;\n }\n .CodeMirror-matchingtag {\n background: rgba(255, 150, 0, 0.3);\n }\n .CodeMirror-activeline-background {\n background: #e8f2ff;\n }\n\n /* STOP */\n\n /* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n .CodeMirror {\n position: relative;\n overflow: hidden;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n .CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px;\n margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n }\n .CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n }\n\n /* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n .CodeMirror-vscrollbar,\n .CodeMirror-hscrollbar,\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 1;\n display: none;\n outline: none;\n }\n\n .CodeMirror-vscrollbar {\n right: 0;\n top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n }\n .CodeMirror-hscrollbar {\n bottom: 0;\n left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n }\n .CodeMirror-scrollbar-filler {\n right: 0;\n bottom: 0;\n }\n\n .CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n }\n /* Reset some styles that the rest of the page might have set */\n .CodeMirror pre.CodeMirror-line,\n .CodeMirror pre.CodeMirror-line-like {\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: 1.5;\n color: inherit;\n /* z-index: 2; */\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n }\n\n .CodeMirror pre.CodeMirror-line-like {\n z-index: 2;\n }\n\n .CodeMirror-wrap pre.CodeMirror-line,\n .CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .CodeMirror-linebackground {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 0;\n }\n\n .CodeMirror-linewidget {\n position: relative;\n /* z-index: 2; */\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n }\n\n .CodeMirror-widget {\n }\n\n .CodeMirror-rtl pre {\n direction: rtl;\n }\n\n .CodeMirror-code {\n outline: none;\n }\n\n /* Force content-box sizing for the elements where we expect it */\n .CodeMirror-scroll,\n .CodeMirror-sizer,\n .CodeMirror-gutter,\n .CodeMirror-gutters,\n .CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n }\n\n .CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n }\n\n .CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n border-color: ${({ theme }) => `${theme.colors.neutral800}`};\n }\n .CodeMirror-measure pre {\n position: static;\n }\n\n div.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n + div {\n z-index: 0 !important;\n }\n }\n\n div.CodeMirror-dragcursors {\n visibility: visible;\n }\n\n .CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n }\n\n .CodeMirror-selected {\n background: ${({ theme }) => theme.colors.neutral200};\n /* z-index: -10; */\n }\n .CodeMirror-crosshair {\n cursor: crosshair;\n }\n\n /* Used to force a border model for a node */\n .cm-force-border {\n padding-right: 0.1px;\n }\n\n /* See issue #2901 */\n .cm-tab-wrap-hack:after {\n content: '';\n }\n\n /* Help users use markselection to safely style text background */\n span.CodeMirror-selectedtext {\n background: none;\n }\n\n span {\n color: ${({ theme }) => theme.colors.neutral800} !important;\n }\n`;\n\nexport { Editor };\nexport type { EditorProps, EditorApi };\n"],"names":["Editor","React","forwardRef","disabled","editorRef","error","isPreviewMode","isExpandMode","name","onChange","placeholder","textareaRef","value","forwardedRef","onChangeRef","useRef","useEffect","current","toTextArea","CodeMirror","fromTextArea","lineWrapping","extraKeys","Enter","Tab","readOnly","smartIndent","spellcheck","inputStyle","commands","newlineAndIndentContinueMarkdownList","on","cm","change","origin","getValue","hasFocus","nextValue","setValue","setOption","useImperativeHandle","focus","getInputField","scrollIntoView","args","_jsxs","EditorAndPreviewWrapper","_jsx","EditorStylesContainer","$isExpandMode","$disabled","textarea","ref","PreviewWysiwyg","data","styled","div","theme","breakpoints","medium","colors","neutral600","neutral800","spaces","neutral0","borderRadius","neutral200"],"mappings":"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"}
1
+ {"version":3,"file":"Editor.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/Editor.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport CodeMirror, { EditorFromTextArea } from 'codemirror5';\nimport { styled } from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\nimport { newlineAndIndentContinueMarkdownList } from './utils/continueList';\n\nimport type { FieldValue, InputProps } from '@strapi/admin/strapi-admin';\n\nimport 'codemirror5/addon/display/placeholder';\n\ninterface EditorApi {\n focus: () => void;\n scrollIntoView: (args?: Parameters<HTMLElement['scrollIntoView']>[0]) => void;\n}\n\ninterface EditorProps extends Omit<FieldValue, 'initialValue'>, Omit<InputProps, 'type' | 'label'> {\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isPreviewMode?: boolean;\n isExpandMode?: boolean;\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n}\n\nconst Editor = React.forwardRef<EditorApi, EditorProps>(\n (\n {\n disabled,\n editorRef,\n error,\n isPreviewMode,\n isExpandMode,\n name,\n onChange,\n placeholder,\n textareaRef,\n value,\n },\n forwardedRef\n ) => {\n const onChangeRef = React.useRef(onChange);\n\n React.useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n React.useEffect(() => {\n if (editorRef.current) {\n // Ensure the editor and its wrapper are cleaned up whenever this view is re-rendered\n // e.g. in case of re-ordering wysiwyg components in a DynamicZone\n editorRef.current.toTextArea();\n }\n editorRef.current = CodeMirror.fromTextArea(textareaRef.current!, {\n lineWrapping: true,\n extraKeys: {\n Enter: 'newlineAndIndentContinueMarkdownList',\n Tab: false,\n 'Shift-Tab': false,\n },\n readOnly: false,\n smartIndent: false,\n placeholder,\n spellcheck: true,\n inputStyle: 'contenteditable',\n });\n\n // @ts-expect-error – doesn't think command exists?\n CodeMirror.commands.newlineAndIndentContinueMarkdownList =\n newlineAndIndentContinueMarkdownList;\n editorRef.current.on('change', (cm, change) => {\n // setValue (prop sync) must not notify the form — parent already has the value.\n if (change.origin === 'setValue') {\n return;\n }\n onChangeRef.current(name, cm.getValue());\n });\n }, [editorRef, textareaRef, name, placeholder]);\n\n React.useEffect(() => {\n if (editorRef.current.hasFocus()) {\n return;\n }\n const nextValue = value ?? '';\n if (editorRef.current.getValue() !== nextValue) {\n editorRef.current.setValue(nextValue);\n }\n }, [editorRef, value]);\n\n React.useEffect(() => {\n if (isPreviewMode || disabled) {\n editorRef.current.setOption('readOnly', 'nocursor');\n } else {\n editorRef.current.setOption('readOnly', false);\n }\n }, [disabled, isPreviewMode, editorRef]);\n\n React.useEffect(() => {\n if (error) {\n editorRef.current.setOption('screenReaderLabel', error);\n } else {\n // to replace with translation\n editorRef.current.setOption('screenReaderLabel', 'Editor');\n }\n }, [editorRef, error]);\n\n React.useImperativeHandle(\n forwardedRef,\n () => ({\n focus() {\n editorRef.current.getInputField().focus();\n },\n scrollIntoView(args?: Parameters<HTMLElement['scrollIntoView']>[0]) {\n editorRef.current.getInputField().scrollIntoView(args);\n },\n }),\n [editorRef]\n );\n\n return (\n <EditorAndPreviewWrapper>\n <EditorStylesContainer $isExpandMode={isExpandMode} $disabled={disabled || isPreviewMode}>\n <textarea ref={textareaRef} />\n </EditorStylesContainer>\n {isPreviewMode && <PreviewWysiwyg data={value} />}\n </EditorAndPreviewWrapper>\n );\n }\n);\n\nconst EditorAndPreviewWrapper = styled.div`\n position: relative;\n height: calc(100%);\n\n ${({ theme }) => theme.breakpoints.medium} {\n height: calc(100% - 48px);\n }\n`;\n\nconst EditorStylesContainer = styled.div<{ $disabled?: boolean; $isExpandMode?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed !important' : 'auto')};\n height: 100%;\n /* BASICS */\n .CodeMirror-placeholder {\n color: ${({ theme }) => theme.colors.neutral600} !important;\n }\n\n .CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-size: 1.6rem;\n height: ${({ $isExpandMode }) =>\n $isExpandMode\n ? '100%'\n : '410px'}; // 512px(total height) - 48px (header) - 52px(footer) - 2px border\n color: ${({ theme }) => theme.colors.neutral800};\n direction: ltr;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,\n 'Open Sans', 'Helvetica Neue', sans-serif;\n\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 1.4rem;\n }\n }\n\n /* PADDING */\n\n .CodeMirror-lines {\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n /* Vertical padding around content */\n }\n\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n /* The little square between H and V scrollbars */\n background-color: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n /* GUTTER */\n\n .CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n }\n .CodeMirror-linenumbers {\n }\n .CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n }\n\n .CodeMirror-guttermarker {\n color: black;\n }\n .CodeMirror-guttermarker-subtle {\n color: #999;\n }\n\n /* CURSOR */\n\n .CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n }\n /* Shown when moving in bi-directional text */\n .CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n }\n .cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n }\n .cm-fat-cursor div.CodeMirror-cursors {\n /* z-index: 1; */\n }\n\n .cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n }\n .cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n }\n\n /* Can style cursor different in overwrite (non-insert) mode */\n .CodeMirror-overwrite .CodeMirror-cursor {\n }\n\n .cm-tab {\n display: inline-block;\n text-decoration: inherit;\n }\n\n .CodeMirror-rulers {\n position: absolute;\n left: 0;\n right: 0;\n top: -50px;\n bottom: 0;\n overflow: hidden;\n }\n .CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0;\n bottom: 0;\n position: absolute;\n }\n\n /* DEFAULT THEME */\n\n .cm-header,\n .cm-strong {\n font-weight: bold;\n }\n .cm-em {\n font-style: italic;\n }\n .cm-link {\n text-decoration: underline;\n }\n .cm-strikethrough {\n text-decoration: line-through;\n }\n\n .CodeMirror-composing {\n border-bottom: 2px solid;\n }\n\n /* Default styles for common addons */\n\n div.CodeMirror span.CodeMirror-matchingbracket {\n color: #0b0;\n }\n div.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: #a22;\n }\n .CodeMirror-matchingtag {\n background: rgba(255, 150, 0, 0.3);\n }\n .CodeMirror-activeline-background {\n background: #e8f2ff;\n }\n\n /* STOP */\n\n /* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n .CodeMirror {\n position: relative;\n overflow: hidden;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n .CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px;\n margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n }\n .CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n }\n\n /* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n .CodeMirror-vscrollbar,\n .CodeMirror-hscrollbar,\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 1;\n display: none;\n outline: none;\n }\n\n .CodeMirror-vscrollbar {\n right: 0;\n top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n }\n .CodeMirror-hscrollbar {\n bottom: 0;\n left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n }\n .CodeMirror-scrollbar-filler {\n right: 0;\n bottom: 0;\n }\n\n .CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n }\n /* Reset some styles that the rest of the page might have set */\n .CodeMirror pre.CodeMirror-line,\n .CodeMirror pre.CodeMirror-line-like {\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: 1.5;\n color: inherit;\n /* z-index: 2; */\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n }\n\n .CodeMirror pre.CodeMirror-line-like {\n z-index: 2;\n }\n\n .CodeMirror-wrap pre.CodeMirror-line,\n .CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .CodeMirror-linebackground {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 0;\n }\n\n .CodeMirror-linewidget {\n position: relative;\n /* z-index: 2; */\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n }\n\n .CodeMirror-widget {\n }\n\n .CodeMirror-rtl pre {\n direction: rtl;\n }\n\n .CodeMirror-code {\n outline: none;\n }\n\n /* Force content-box sizing for the elements where we expect it */\n .CodeMirror-scroll,\n .CodeMirror-sizer,\n .CodeMirror-gutter,\n .CodeMirror-gutters,\n .CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n }\n\n .CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n }\n\n .CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n border-color: ${({ theme }) => `${theme.colors.neutral800}`};\n }\n .CodeMirror-measure pre {\n position: static;\n }\n\n div.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n + div {\n z-index: 0 !important;\n }\n }\n\n div.CodeMirror-dragcursors {\n visibility: visible;\n }\n\n .CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n }\n\n .CodeMirror-selected {\n background: ${({ theme }) => theme.colors.neutral200};\n /* z-index: -10; */\n }\n .CodeMirror-crosshair {\n cursor: crosshair;\n }\n\n /* Used to force a border model for a node */\n .cm-force-border {\n padding-right: 0.1px;\n }\n\n /* See issue #2901 */\n .cm-tab-wrap-hack:after {\n content: '';\n }\n\n /* Help users use markselection to safely style text background */\n span.CodeMirror-selectedtext {\n background: none;\n }\n\n span {\n color: ${({ theme }) => theme.colors.neutral800} !important;\n }\n`;\n\nexport { Editor };\nexport type { EditorProps, EditorApi };\n"],"names":["Editor","React","forwardRef","disabled","editorRef","error","isPreviewMode","isExpandMode","name","onChange","placeholder","textareaRef","value","forwardedRef","onChangeRef","useRef","useEffect","current","toTextArea","CodeMirror","fromTextArea","lineWrapping","extraKeys","Enter","Tab","readOnly","smartIndent","spellcheck","inputStyle","commands","newlineAndIndentContinueMarkdownList","on","cm","change","origin","getValue","hasFocus","nextValue","setValue","setOption","useImperativeHandle","focus","getInputField","scrollIntoView","args","_jsxs","EditorAndPreviewWrapper","_jsx","EditorStylesContainer","$isExpandMode","$disabled","textarea","ref","PreviewWysiwyg","data","styled","div","theme","breakpoints","medium","colors","neutral600","neutral800","spaces","neutral0","borderRadius","neutral200"],"mappings":"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"}
@@ -11,7 +11,8 @@ var utils = require('./utils/utils.js');
11
11
  var WysiwygFooter = require('./WysiwygFooter.js');
12
12
  var WysiwygNav = require('./WysiwygNav.js');
13
13
 
14
- function _interopNamespaceDefault(e) {
14
+ function _interopNamespace(e) {
15
+ if (e && e.__esModule) return e;
15
16
  var n = Object.create(null);
16
17
  if (e) {
17
18
  Object.keys(e).forEach(function (k) {
@@ -28,7 +29,7 @@ function _interopNamespaceDefault(e) {
28
29
  return Object.freeze(n);
29
30
  }
30
31
 
31
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
32
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
33
 
33
34
  const Wysiwyg = /*#__PURE__*/ React__namespace.forwardRef(({ hint, disabled, label, name, placeholder, required, labelAction }, forwardedRef)=>{
34
35
  const field = strapiAdmin.useField(name);
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/Field.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useField, useStrapiApp, useIsMobile, type InputProps } from '@strapi/admin/strapi-admin';\nimport { Box, Field, Flex } from '@strapi/design-system';\nimport { EditorFromTextArea } from 'codemirror5';\n\nimport { prefixFileUrlWithBackendUrl } from '../../../../../utils/urls';\n\nimport { Editor, EditorApi } from './Editor';\nimport { EditorLayout } from './EditorLayout';\nimport { insertFile } from './utils/utils';\nimport { WysiwygFooter } from './WysiwygFooter';\nimport { WysiwygNav, WysiwygPreviewToggleButton } from './WysiwygNav';\n\nimport type { Schema } from '@strapi/types';\n\ninterface WysiwygProps extends Omit<InputProps, 'type'> {\n labelAction?: React.ReactNode;\n type: Schema.Attribute.RichText['type'];\n}\n\nconst Wysiwyg = React.forwardRef<EditorApi, WysiwygProps>(\n ({ hint, disabled, label, name, placeholder, required, labelAction }, forwardedRef) => {\n const field = useField(name);\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const editorRef = React.useRef<EditorFromTextArea>(\n null\n ) as React.MutableRefObject<EditorFromTextArea>;\n const [isPreviewMode, setIsPreviewMode] = React.useState(false);\n const [mediaLibVisible, setMediaLibVisible] = React.useState(false);\n const [isExpandMode, setIsExpandMode] = React.useState(false);\n const isMobile = useIsMobile();\n const components = useStrapiApp('ImageDialog', (state) => state.components);\n\n const MediaLibraryDialog = components['media-library'];\n\n const handleToggleMediaLib = () => setMediaLibVisible((prev) => !prev);\n const handleTogglePreviewMode = () => setIsPreviewMode((prev) => !prev);\n const handleToggleExpand = () => {\n setIsPreviewMode(false);\n setIsExpandMode((prev) => !prev);\n };\n\n const handleSelectAssets = (files: any[]) => {\n const formattedFiles = files.map((f) => ({\n alt: f.alternativeText || f.name,\n url: prefixFileUrlWithBackendUrl(f.url),\n mime: f.mime,\n }));\n\n insertFile(editorRef, formattedFiles);\n setMediaLibVisible(false);\n };\n\n return (\n <Field.Root name={name} hint={hint} error={field.error} required={required}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <EditorLayout\n isExpandMode={isExpandMode}\n error={field.error}\n previewContent={field.value}\n onCollapse={handleToggleExpand}\n >\n <WysiwygNav\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n isPreviewMode={isPreviewMode}\n onToggleMediaLib={handleToggleMediaLib}\n onTogglePreviewMode={isExpandMode ? undefined : handleTogglePreviewMode}\n disabled={disabled}\n />\n <Editor\n disabled={disabled}\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n error={field.error}\n isPreviewMode={isPreviewMode}\n name={name}\n onChange={field.onChange}\n placeholder={placeholder}\n textareaRef={textareaRef}\n value={field.value}\n ref={forwardedRef}\n />\n {!isExpandMode && !isMobile && <WysiwygFooter onToggleExpand={handleToggleExpand} />}\n {isMobile && (\n <Box position=\"absolute\" bottom={0} right={0} left={0} pointerEvents=\"none\">\n <Flex justifyContent=\"flex-end\" padding={4}>\n <Box pointerEvents=\"auto\" display=\"inline-flex\">\n <WysiwygPreviewToggleButton\n isPreviewMode={isPreviewMode}\n onTogglePreviewMode={handleTogglePreviewMode}\n />\n </Box>\n </Flex>\n </Box>\n )}\n </EditorLayout>\n <Field.Hint />\n <Field.Error />\n </Flex>\n {mediaLibVisible && (\n // @ts-expect-error – TODO: fix this way of injecting because it's not really typeable without a registry.\n <MediaLibraryDialog onClose={handleToggleMediaLib} onSelectAssets={handleSelectAssets} />\n )}\n </Field.Root>\n );\n }\n);\n\nconst MemoizedWysiwyg = React.memo(Wysiwyg);\n\nexport { MemoizedWysiwyg as Wysiwyg };\nexport type { WysiwygProps };\n"],"names":["Wysiwyg","React","forwardRef","hint","disabled","label","name","placeholder","required","labelAction","forwardedRef","field","useField","textareaRef","useRef","editorRef","isPreviewMode","setIsPreviewMode","useState","mediaLibVisible","setMediaLibVisible","isExpandMode","setIsExpandMode","isMobile","useIsMobile","components","useStrapiApp","state","MediaLibraryDialog","handleToggleMediaLib","prev","handleTogglePreviewMode","handleToggleExpand","handleSelectAssets","files","formattedFiles","map","f","alt","alternativeText","url","prefixFileUrlWithBackendUrl","mime","insertFile","_jsxs","Field","Root","error","Flex","direction","alignItems","gap","_jsx","Label","action","EditorLayout","previewContent","value","onCollapse","WysiwygNav","onToggleMediaLib","onTogglePreviewMode","undefined","Editor","onChange","ref","WysiwygFooter","onToggleExpand","Box","position","bottom","right","left","pointerEvents","justifyContent","padding","display","WysiwygPreviewToggleButton","Hint","Error","onClose","onSelectAssets","MemoizedWysiwyg","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,OAAAA,iBAAUC,iBAAMC,UAAU,CAC9B,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAE,EAAEC,YAAAA,GAAAA;AACpE,IAAA,MAAMC,QAAQC,oBAAAA,CAASN,IAAAA,CAAAA;IACvB,MAAMO,WAAAA,GAAcZ,gBAAAA,CAAMa,MAAM,CAAsB,IAAA,CAAA;IACtD,MAAMC,SAAAA,GAAYd,gBAAAA,CAAMa,MAAM,CAC5B,IAAA,CAAA;AAEF,IAAA,MAAM,CAACE,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGhB,gBAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AACzD,IAAA,MAAM,CAACC,eAAAA,EAAiBC,kBAAAA,CAAmB,GAAGnB,gBAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AAC7D,IAAA,MAAM,CAACG,YAAAA,EAAcC,eAAAA,CAAgB,GAAGrB,gBAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAMK,QAAAA,GAAWC,uBAAAA,EAAAA;AACjB,IAAA,MAAMC,aAAaC,wBAAAA,CAAa,aAAA,EAAe,CAACC,KAAAA,GAAUA,MAAMF,UAAU,CAAA;IAE1E,MAAMG,kBAAAA,GAAqBH,UAAU,CAAC,eAAA,CAAgB;AAEtD,IAAA,MAAMI,oBAAAA,GAAuB,IAAMT,kBAAAA,CAAmB,CAACU,OAAS,CAACA,IAAAA,CAAAA;AACjE,IAAA,MAAMC,uBAAAA,GAA0B,IAAMd,gBAAAA,CAAiB,CAACa,OAAS,CAACA,IAAAA,CAAAA;AAClE,IAAA,MAAME,kBAAAA,GAAqB,IAAA;QACzBf,gBAAAA,CAAiB,KAAA,CAAA;QACjBK,eAAAA,CAAgB,CAACQ,OAAS,CAACA,IAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,MAAMG,qBAAqB,CAACC,KAAAA,GAAAA;AAC1B,QAAA,MAAMC,iBAAiBD,KAAAA,CAAME,GAAG,CAAC,CAACC,KAAO;AACvCC,gBAAAA,GAAAA,EAAKD,CAAAA,CAAEE,eAAe,IAAIF,CAAAA,CAAE/B,IAAI;gBAChCkC,GAAAA,EAAKC,gCAAAA,CAA4BJ,EAAEG,GAAG,CAAA;AACtCE,gBAAAA,IAAAA,EAAML,EAAEK;aACV,CAAA,CAAA;AAEAC,QAAAA,gBAAAA,CAAW5B,SAAAA,EAAWoB,cAAAA,CAAAA;QACtBf,kBAAAA,CAAmB,KAAA,CAAA;AACrB,IAAA,CAAA;IAEA,qBACEwB,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAACxC,IAAAA,EAAMA,IAAAA;QAAMH,IAAAA,EAAMA,IAAAA;AAAM4C,QAAAA,KAAAA,EAAOpC,MAAMoC,KAAK;QAAEvC,QAAAA,EAAUA,QAAAA;;0BAChEoC,eAAA,CAACI,iBAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;;AACjD,kCAAAC,cAAA,CAACP,mBAAMQ,KAAK,EAAA;wBAACC,MAAAA,EAAQ7C,WAAAA;AAAcJ,wBAAAA,QAAAA,EAAAA;;kCACnCuC,eAAA,CAACW,yBAAAA,EAAAA;wBACClC,YAAAA,EAAcA,YAAAA;AACd0B,wBAAAA,KAAAA,EAAOpC,MAAMoC,KAAK;AAClBS,wBAAAA,cAAAA,EAAgB7C,MAAM8C,KAAK;wBAC3BC,UAAAA,EAAY1B,kBAAAA;;0CAEZoB,cAAA,CAACO,qBAAAA,EAAAA;gCACCtC,YAAAA,EAAcA,YAAAA;gCACdN,SAAAA,EAAWA,SAAAA;gCACXC,aAAAA,EAAeA,aAAAA;gCACf4C,gBAAAA,EAAkB/B,oBAAAA;AAClBgC,gCAAAA,mBAAAA,EAAqBxC,eAAeyC,SAAAA,GAAY/B,uBAAAA;gCAChD3B,QAAAA,EAAUA;;0CAEZgD,cAAA,CAACW,aAAAA,EAAAA;gCACC3D,QAAAA,EAAUA,QAAAA;gCACViB,YAAAA,EAAcA,YAAAA;gCACdN,SAAAA,EAAWA,SAAAA;AACXgC,gCAAAA,KAAAA,EAAOpC,MAAMoC,KAAK;gCAClB/B,aAAAA,EAAeA,aAAAA;gCACfV,IAAAA,EAAMA,IAAAA;AACN0D,gCAAAA,QAAAA,EAAUrD,MAAMqD,QAAQ;gCACxBzD,WAAAA,EAAaA,WAAAA;gCACbM,WAAAA,EAAaA,WAAAA;AACb4C,gCAAAA,KAAAA,EAAO9C,MAAM8C,KAAK;gCAClBQ,GAAAA,EAAKvD;;4BAEN,CAACW,YAAAA,IAAgB,CAACE,QAAAA,kBAAY6B,cAAA,CAACc,2BAAAA,EAAAA;gCAAcC,cAAAA,EAAgBnC;;AAC7DT,4BAAAA,QAAAA,kBACC6B,cAAA,CAACgB,gBAAAA,EAAAA;gCAAIC,QAAAA,EAAS,UAAA;gCAAWC,MAAAA,EAAQ,CAAA;gCAAGC,KAAAA,EAAO,CAAA;gCAAGC,IAAAA,EAAM,CAAA;gCAAGC,aAAAA,EAAc,MAAA;AACnE,gCAAA,QAAA,gBAAArB,cAAA,CAACJ,iBAAAA,EAAAA;oCAAK0B,cAAAA,EAAe,UAAA;oCAAWC,OAAAA,EAAS,CAAA;AACvC,oCAAA,QAAA,gBAAAvB,cAAA,CAACgB,gBAAAA,EAAAA;wCAAIK,aAAAA,EAAc,MAAA;wCAAOG,OAAAA,EAAQ,aAAA;AAChC,wCAAA,QAAA,gBAAAxB,cAAA,CAACyB,qCAAAA,EAAAA;4CACC7D,aAAAA,EAAeA,aAAAA;4CACf6C,mBAAAA,EAAqB9B;;;;;;;AAOjC,kCAAAqB,cAAA,CAACP,mBAAMiC,IAAI,EAAA,EAAA,CAAA;AACX,kCAAA1B,cAAA,CAACP,mBAAMkC,KAAK,EAAA,EAAA;;;AAEb5D,YAAAA,eAAAA;0BAECiC,cAAA,CAACxB,kBAAAA,EAAAA;gBAAmBoD,OAAAA,EAASnD,oBAAAA;gBAAsBoD,cAAAA,EAAgBhD;;;;AAI3E,CAAA,CAAA;AAGF,MAAMiD,eAAAA,iBAAkBjF,gBAAAA,CAAMkF,IAAI,CAACnF,OAAAA;;;;"}
1
+ {"version":3,"file":"Field.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/Field.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useField, useStrapiApp, useIsMobile, type InputProps } from '@strapi/admin/strapi-admin';\nimport { Box, Field, Flex } from '@strapi/design-system';\nimport { EditorFromTextArea } from 'codemirror5';\n\nimport { prefixFileUrlWithBackendUrl } from '../../../../../utils/urls';\n\nimport { Editor, EditorApi } from './Editor';\nimport { EditorLayout } from './EditorLayout';\nimport { insertFile } from './utils/utils';\nimport { WysiwygFooter } from './WysiwygFooter';\nimport { WysiwygNav, WysiwygPreviewToggleButton } from './WysiwygNav';\n\nimport type { Schema } from '@strapi/types';\n\ninterface WysiwygProps extends Omit<InputProps, 'type'> {\n labelAction?: React.ReactNode;\n type: Schema.Attribute.RichText['type'];\n}\n\nconst Wysiwyg = React.forwardRef<EditorApi, WysiwygProps>(\n ({ hint, disabled, label, name, placeholder, required, labelAction }, forwardedRef) => {\n const field = useField(name);\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const editorRef = React.useRef<EditorFromTextArea>(\n null\n ) as React.MutableRefObject<EditorFromTextArea>;\n const [isPreviewMode, setIsPreviewMode] = React.useState(false);\n const [mediaLibVisible, setMediaLibVisible] = React.useState(false);\n const [isExpandMode, setIsExpandMode] = React.useState(false);\n const isMobile = useIsMobile();\n const components = useStrapiApp('ImageDialog', (state) => state.components);\n\n const MediaLibraryDialog = components['media-library'];\n\n const handleToggleMediaLib = () => setMediaLibVisible((prev) => !prev);\n const handleTogglePreviewMode = () => setIsPreviewMode((prev) => !prev);\n const handleToggleExpand = () => {\n setIsPreviewMode(false);\n setIsExpandMode((prev) => !prev);\n };\n\n const handleSelectAssets = (files: any[]) => {\n const formattedFiles = files.map((f) => ({\n alt: f.alternativeText || f.name,\n url: prefixFileUrlWithBackendUrl(f.url),\n mime: f.mime,\n }));\n\n insertFile(editorRef, formattedFiles);\n setMediaLibVisible(false);\n };\n\n return (\n <Field.Root name={name} hint={hint} error={field.error} required={required}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <EditorLayout\n isExpandMode={isExpandMode}\n error={field.error}\n previewContent={field.value}\n onCollapse={handleToggleExpand}\n >\n <WysiwygNav\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n isPreviewMode={isPreviewMode}\n onToggleMediaLib={handleToggleMediaLib}\n onTogglePreviewMode={isExpandMode ? undefined : handleTogglePreviewMode}\n disabled={disabled}\n />\n <Editor\n disabled={disabled}\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n error={field.error}\n isPreviewMode={isPreviewMode}\n name={name}\n onChange={field.onChange}\n placeholder={placeholder}\n textareaRef={textareaRef}\n value={field.value}\n ref={forwardedRef}\n />\n {!isExpandMode && !isMobile && <WysiwygFooter onToggleExpand={handleToggleExpand} />}\n {isMobile && (\n <Box position=\"absolute\" bottom={0} right={0} left={0} pointerEvents=\"none\">\n <Flex justifyContent=\"flex-end\" padding={4}>\n <Box pointerEvents=\"auto\" display=\"inline-flex\">\n <WysiwygPreviewToggleButton\n isPreviewMode={isPreviewMode}\n onTogglePreviewMode={handleTogglePreviewMode}\n />\n </Box>\n </Flex>\n </Box>\n )}\n </EditorLayout>\n <Field.Hint />\n <Field.Error />\n </Flex>\n {mediaLibVisible && (\n // @ts-expect-error – TODO: fix this way of injecting because it's not really typeable without a registry.\n <MediaLibraryDialog onClose={handleToggleMediaLib} onSelectAssets={handleSelectAssets} />\n )}\n </Field.Root>\n );\n }\n);\n\nconst MemoizedWysiwyg = React.memo(Wysiwyg);\n\nexport { MemoizedWysiwyg as Wysiwyg };\nexport type { WysiwygProps };\n"],"names":["Wysiwyg","React","forwardRef","hint","disabled","label","name","placeholder","required","labelAction","forwardedRef","field","useField","textareaRef","useRef","editorRef","isPreviewMode","setIsPreviewMode","useState","mediaLibVisible","setMediaLibVisible","isExpandMode","setIsExpandMode","isMobile","useIsMobile","components","useStrapiApp","state","MediaLibraryDialog","handleToggleMediaLib","prev","handleTogglePreviewMode","handleToggleExpand","handleSelectAssets","files","formattedFiles","map","f","alt","alternativeText","url","prefixFileUrlWithBackendUrl","mime","insertFile","_jsxs","Field","Root","error","Flex","direction","alignItems","gap","_jsx","Label","action","EditorLayout","previewContent","value","onCollapse","WysiwygNav","onToggleMediaLib","onTogglePreviewMode","undefined","Editor","onChange","ref","WysiwygFooter","onToggleExpand","Box","position","bottom","right","left","pointerEvents","justifyContent","padding","display","WysiwygPreviewToggleButton","Hint","Error","onClose","onSelectAssets","MemoizedWysiwyg","memo"],"mappings":"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"}
@@ -6,7 +6,8 @@ var styledComponents = require('styled-components');
6
6
  var mdRenderer = require('./utils/mdRenderer.js');
7
7
  var sanitizer = require('./utils/sanitizer.js');
8
8
 
9
- function _interopNamespaceDefault(e) {
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
10
11
  var n = Object.create(null);
11
12
  if (e) {
12
13
  Object.keys(e).forEach(function (k) {
@@ -23,7 +24,7 @@ function _interopNamespaceDefault(e) {
23
24
  return Object.freeze(n);
24
25
  }
25
26
 
26
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
28
 
28
29
  const PreviewWysiwyg = ({ data })=>{
29
30
  const html = React__namespace.useMemo(()=>sanitizer.sanitize(mdRenderer.md.render((data ?? '').replaceAll('\\n', '\n'))), [
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewWysiwyg.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { styled } from 'styled-components';\n\nimport { md } from './utils/mdRenderer';\nimport { sanitize } from './utils/sanitizer';\n\ninterface PreviewWysiwygProps {\n data?: string;\n}\n\nconst PreviewWysiwyg = ({ data }: PreviewWysiwygProps) => {\n const html = React.useMemo(\n () => sanitize(md.render((data ?? '').replaceAll('\\\\n', '\\n'))),\n [data]\n );\n\n return (\n <Wrapper>\n <div dangerouslySetInnerHTML={{ __html: html }} />\n </Wrapper>\n );\n};\n\nconst Wrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n font-size: 1.4rem;\n background-color: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral800};\n line-height: ${({ theme }) => theme.lineHeights[6]};\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-block-start: ${({ theme }) => theme.spaces[2]};\n margin-block-end: ${({ theme }) => theme.spaces[2]};\n }\n\n p {\n margin-bottom: ${({ theme }) => theme.spaces[2]};\n }\n\n h1 {\n font-size: 2.8rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 3.6rem;\n }\n font-weight: 600;\n }\n\n h2 {\n font-size: 2.2rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 3rem;\n }\n font-weight: 600;\n }\n\n h3 {\n font-size: 2rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 2.4rem;\n }\n font-weight: 600;\n }\n\n h4 {\n font-size: 1.8rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 2.4rem;\n }\n font-weight: 600;\n }\n\n strong {\n font-weight: 800;\n }\n\n em {\n font-style: italic;\n }\n\n blockquote {\n margin-top: ${({ theme }) => theme.spaces[8]};\n margin-bottom: ${({ theme }) => theme.spaces[7]};\n font-size: 1.4rem;\n font-weight: 400;\n border-left: 4px solid ${({ theme }) => theme.colors.neutral150};\n font-style: italic;\n padding: ${({ theme }) => theme.spaces[2]} ${({ theme }) => theme.spaces[5]};\n }\n\n img {\n max-width: 100%;\n }\n\n table {\n thead {\n background: ${({ theme }) => theme.colors.neutral150};\n\n th {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n }\n tr {\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n }\n th,\n td {\n padding: ${({ theme }) => theme.spaces[4]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-bottom: 0;\n border-top: 0;\n }\n }\n\n pre,\n code {\n font-size: 1.4rem;\n border-radius: 4px;\n /* \n Hard coded since the color is the same between themes,\n theme.colors.neutral800 changes between themes.\n\n Matches the color of the JSON Input component.\n */\n background-color: #32324d;\n max-width: 100%;\n overflow: auto;\n padding: ${({ theme }) => theme.spaces[2]};\n }\n\n /* Inline code */\n p,\n pre,\n td {\n > code {\n color: #839496;\n }\n }\n\n ol {\n list-style-type: decimal;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ol,\n ul {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n\n ul {\n list-style-type: disc;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ul,\n ol {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n`;\n\nexport { PreviewWysiwyg };\n"],"names":["PreviewWysiwyg","data","html","React","useMemo","sanitize","md","render","replaceAll","_jsx","Wrapper","div","dangerouslySetInnerHTML","__html","styled","theme","spaces","colors","neutral0","neutral800","lineHeights","breakpoints","medium","neutral150","neutral200"],"mappings":"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"}
1
+ {"version":3,"file":"PreviewWysiwyg.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { styled } from 'styled-components';\n\nimport { md } from './utils/mdRenderer';\nimport { sanitize } from './utils/sanitizer';\n\ninterface PreviewWysiwygProps {\n data?: string;\n}\n\nconst PreviewWysiwyg = ({ data }: PreviewWysiwygProps) => {\n const html = React.useMemo(\n () => sanitize(md.render((data ?? '').replaceAll('\\\\n', '\\n'))),\n [data]\n );\n\n return (\n <Wrapper>\n <div dangerouslySetInnerHTML={{ __html: html }} />\n </Wrapper>\n );\n};\n\nconst Wrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n font-size: 1.4rem;\n background-color: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral800};\n line-height: ${({ theme }) => theme.lineHeights[6]};\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-block-start: ${({ theme }) => theme.spaces[2]};\n margin-block-end: ${({ theme }) => theme.spaces[2]};\n }\n\n p {\n margin-bottom: ${({ theme }) => theme.spaces[2]};\n }\n\n h1 {\n font-size: 2.8rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 3.6rem;\n }\n font-weight: 600;\n }\n\n h2 {\n font-size: 2.2rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 3rem;\n }\n font-weight: 600;\n }\n\n h3 {\n font-size: 2rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 2.4rem;\n }\n font-weight: 600;\n }\n\n h4 {\n font-size: 1.8rem;\n ${({ theme }) => theme.breakpoints.medium} {\n font-size: 2.4rem;\n }\n font-weight: 600;\n }\n\n strong {\n font-weight: 800;\n }\n\n em {\n font-style: italic;\n }\n\n blockquote {\n margin-top: ${({ theme }) => theme.spaces[8]};\n margin-bottom: ${({ theme }) => theme.spaces[7]};\n font-size: 1.4rem;\n font-weight: 400;\n border-left: 4px solid ${({ theme }) => theme.colors.neutral150};\n font-style: italic;\n padding: ${({ theme }) => theme.spaces[2]} ${({ theme }) => theme.spaces[5]};\n }\n\n img {\n max-width: 100%;\n }\n\n table {\n thead {\n background: ${({ theme }) => theme.colors.neutral150};\n\n th {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n }\n tr {\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n }\n th,\n td {\n padding: ${({ theme }) => theme.spaces[4]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-bottom: 0;\n border-top: 0;\n }\n }\n\n pre,\n code {\n font-size: 1.4rem;\n border-radius: 4px;\n /* \n Hard coded since the color is the same between themes,\n theme.colors.neutral800 changes between themes.\n\n Matches the color of the JSON Input component.\n */\n background-color: #32324d;\n max-width: 100%;\n overflow: auto;\n padding: ${({ theme }) => theme.spaces[2]};\n }\n\n /* Inline code */\n p,\n pre,\n td {\n > code {\n color: #839496;\n }\n }\n\n ol {\n list-style-type: decimal;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ol,\n ul {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n\n ul {\n list-style-type: disc;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ul,\n ol {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n`;\n\nexport { PreviewWysiwyg };\n"],"names":["PreviewWysiwyg","data","html","React","useMemo","sanitize","md","render","replaceAll","_jsx","Wrapper","div","dangerouslySetInnerHTML","__html","styled","theme","spaces","colors","neutral0","neutral800","lineHeights","breakpoints","medium","neutral150","neutral200"],"mappings":"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"}
@@ -2,6 +2,10 @@
2
2
 
3
3
  var CodeMirror = require('codemirror5');
4
4
 
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var CodeMirror__default = /*#__PURE__*/_interopDefault(CodeMirror);
8
+
5
9
  // Disabling eslint on purpose
6
10
  /* eslint-disable */ var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, unorderedListRE = /[*+-]\s/;
7
11
  /*
@@ -13,7 +17,7 @@ var CodeMirror = require('codemirror5');
13
17
  only thing we changed is removing the part that enabled addon only with markdown mode
14
18
  */ function newlineAndIndentContinueMarkdownList(cm) {
15
19
  // @ts-expect-error - cm does not recognize disableInput.
16
- if (cm.getOption('disableInput')) return CodeMirror.Pass;
20
+ if (cm.getOption('disableInput')) return CodeMirror__default.default.Pass;
17
21
  var ranges = cm.listSelections(), replacements = [];
18
22
  for(var i = 0; i < ranges.length; i++){
19
23
  var pos = ranges[i].head;
@@ -1 +1 @@
1
- {"version":3,"file":"continueList.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.ts"],"sourcesContent":["import CodeMirror from 'codemirror5';\n\n// Disabling eslint on purpose\n/* eslint-disable */\n\nvar listRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]\\s|[*+-]\\s|(\\d+)([.)]))(\\s*)/,\n emptyListRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]|[*+-]|(\\d+)[.)])(\\s*)$/,\n unorderedListRE = /[*+-]\\s/;\n\n/*\n functions coming from CodeMirror addons continuelist.js\n ===> https://github.com/codemirror/CodeMirror/blob/master/addon/edit/continuelist.js\n\n we imported it because the way the addon ask to use markdown mode\n since we have our own markdown preview system we couldn't use it directly\n only thing we changed is removing the part that enabled addon only with markdown mode\n*/\n\nfunction newlineAndIndentContinueMarkdownList(cm: CodeMirror.Editor) {\n // @ts-expect-error - cm does not recognize disableInput.\n if (cm.getOption('disableInput')) return CodeMirror.Pass;\n var ranges = cm.listSelections(),\n replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].head;\n\n var eolState = cm.getStateAfter(pos.line);\n var inList = eolState.list !== false;\n var inQuote = eolState.quote !== 0;\n\n var line = cm.getLine(pos.line),\n match = listRE.exec(line);\n var cursorBeforeBullet = /^\\s*$/.test(line.slice(0, pos.ch));\n if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) {\n cm.execCommand('newlineAndIndent');\n return;\n }\n if (emptyListRE.test(line)) {\n var endOfQuote = inQuote && />\\s*$/.test(line);\n var endOfList = !/>\\s*$/.test(line);\n if (endOfQuote || endOfList)\n cm.replaceRange(\n '',\n {\n line: pos.line,\n ch: 0,\n },\n {\n line: pos.line,\n ch: pos.ch + 1,\n }\n );\n replacements[i] = '\\n';\n } else {\n var indent = match[1],\n after = match[5];\n var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf('>') >= 0);\n var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace('x', ' ');\n replacements[i] = '\\n' + indent + bullet + after;\n\n if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);\n }\n }\n\n cm.replaceSelections(replacements);\n}\n\nfunction incrementRemainingMarkdownListNumbers(cm: CodeMirror.Editor, pos: CodeMirror.Position) {\n var startLine = pos.line,\n lookAhead = 0,\n skipCount = 0;\n var startItem = listRE.exec(cm.getLine(startLine)),\n startIndent = startItem![1];\n\n do {\n lookAhead += 1;\n var nextLineNumber = startLine + lookAhead;\n var nextLine = cm.getLine(nextLineNumber);\n var nextItem = listRE.exec(nextLine);\n\n if (nextItem) {\n var nextIndent = nextItem[1];\n var newNumber = parseInt(startItem![3], 10) + lookAhead - skipCount;\n var nextNumber = parseInt(nextItem[3], 10),\n itemNumber = nextNumber;\n\n if (startIndent === nextIndent && !isNaN(nextNumber)) {\n if (newNumber === nextNumber) itemNumber = nextNumber + 1;\n if (newNumber > nextNumber) itemNumber = newNumber + 1;\n cm.replaceRange(\n nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),\n {\n line: nextLineNumber,\n ch: 0,\n },\n {\n line: nextLineNumber,\n ch: nextLine.length,\n }\n );\n } else {\n if (startIndent.length > nextIndent.length) return;\n // This doesn't run if the next line immediately indents, as it is\n // not clear of the users intention (new indented item or same level)\n if (startIndent.length < nextIndent.length && lookAhead === 1) return;\n skipCount += 1;\n }\n }\n } while (nextItem);\n}\n\nexport { newlineAndIndentContinueMarkdownList };\n"],"names":["listRE","emptyListRE","unorderedListRE","newlineAndIndentContinueMarkdownList","cm","getOption","CodeMirror","Pass","ranges","listSelections","replacements","i","length","pos","head","eolState","getStateAfter","line","inList","list","inQuote","quote","getLine","match","exec","cursorBeforeBullet","test","slice","ch","empty","execCommand","endOfQuote","endOfList","replaceRange","indent","after","numbered","indexOf","bullet","parseInt","replace","incrementRemainingMarkdownListNumbers","replaceSelections","startLine","lookAhead","skipCount","startItem","startIndent","nextLineNumber","nextLine","nextItem","nextIndent","newNumber","nextNumber","itemNumber","isNaN"],"mappings":"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"}
1
+ {"version":3,"file":"continueList.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.ts"],"sourcesContent":["import CodeMirror from 'codemirror5';\n\n// Disabling eslint on purpose\n/* eslint-disable */\n\nvar listRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]\\s|[*+-]\\s|(\\d+)([.)]))(\\s*)/,\n emptyListRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]|[*+-]|(\\d+)[.)])(\\s*)$/,\n unorderedListRE = /[*+-]\\s/;\n\n/*\n functions coming from CodeMirror addons continuelist.js\n ===> https://github.com/codemirror/CodeMirror/blob/master/addon/edit/continuelist.js\n\n we imported it because the way the addon ask to use markdown mode\n since we have our own markdown preview system we couldn't use it directly\n only thing we changed is removing the part that enabled addon only with markdown mode\n*/\n\nfunction newlineAndIndentContinueMarkdownList(cm: CodeMirror.Editor) {\n // @ts-expect-error - cm does not recognize disableInput.\n if (cm.getOption('disableInput')) return CodeMirror.Pass;\n var ranges = cm.listSelections(),\n replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].head;\n\n var eolState = cm.getStateAfter(pos.line);\n var inList = eolState.list !== false;\n var inQuote = eolState.quote !== 0;\n\n var line = cm.getLine(pos.line),\n match = listRE.exec(line);\n var cursorBeforeBullet = /^\\s*$/.test(line.slice(0, pos.ch));\n if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) {\n cm.execCommand('newlineAndIndent');\n return;\n }\n if (emptyListRE.test(line)) {\n var endOfQuote = inQuote && />\\s*$/.test(line);\n var endOfList = !/>\\s*$/.test(line);\n if (endOfQuote || endOfList)\n cm.replaceRange(\n '',\n {\n line: pos.line,\n ch: 0,\n },\n {\n line: pos.line,\n ch: pos.ch + 1,\n }\n );\n replacements[i] = '\\n';\n } else {\n var indent = match[1],\n after = match[5];\n var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf('>') >= 0);\n var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace('x', ' ');\n replacements[i] = '\\n' + indent + bullet + after;\n\n if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);\n }\n }\n\n cm.replaceSelections(replacements);\n}\n\nfunction incrementRemainingMarkdownListNumbers(cm: CodeMirror.Editor, pos: CodeMirror.Position) {\n var startLine = pos.line,\n lookAhead = 0,\n skipCount = 0;\n var startItem = listRE.exec(cm.getLine(startLine)),\n startIndent = startItem![1];\n\n do {\n lookAhead += 1;\n var nextLineNumber = startLine + lookAhead;\n var nextLine = cm.getLine(nextLineNumber);\n var nextItem = listRE.exec(nextLine);\n\n if (nextItem) {\n var nextIndent = nextItem[1];\n var newNumber = parseInt(startItem![3], 10) + lookAhead - skipCount;\n var nextNumber = parseInt(nextItem[3], 10),\n itemNumber = nextNumber;\n\n if (startIndent === nextIndent && !isNaN(nextNumber)) {\n if (newNumber === nextNumber) itemNumber = nextNumber + 1;\n if (newNumber > nextNumber) itemNumber = newNumber + 1;\n cm.replaceRange(\n nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),\n {\n line: nextLineNumber,\n ch: 0,\n },\n {\n line: nextLineNumber,\n ch: nextLine.length,\n }\n );\n } else {\n if (startIndent.length > nextIndent.length) return;\n // This doesn't run if the next line immediately indents, as it is\n // not clear of the users intention (new indented item or same level)\n if (startIndent.length < nextIndent.length && lookAhead === 1) return;\n skipCount += 1;\n }\n }\n } while (nextItem);\n}\n\nexport { newlineAndIndentContinueMarkdownList };\n"],"names":["listRE","emptyListRE","unorderedListRE","newlineAndIndentContinueMarkdownList","cm","getOption","CodeMirror","Pass","ranges","listSelections","replacements","i","length","pos","head","eolState","getStateAfter","line","inList","list","inQuote","quote","getLine","match","exec","cursorBeforeBullet","test","slice","ch","empty","execCommand","endOfQuote","endOfList","replaceRange","indent","after","numbered","indexOf","bullet","parseInt","replace","incrementRemainingMarkdownListNumbers","replaceSelections","startLine","lookAhead","skipCount","startItem","startIndent","nextLineNumber","nextLine","nextItem","nextIndent","newNumber","nextNumber","itemNumber","isNaN"],"mappings":";;;;;;;;AAEA;AACA,qBAEA,IAAIA,MAAAA,GAAS,0DAAA,EACXC,WAAAA,GAAc,uDACdC,eAAAA,GAAkB,SAAA;AAEpB;;;;;;;AAOA,GAEA,SAASC,qCAAqCC,EAAqB,EAAA;;AAEjE,IAAA,IAAIA,GAAGC,SAAS,CAAC,cAAA,CAAA,EAAiB,OAAOC,4BAAWC,IAAI;AACxD,IAAA,IAAIC,MAAAA,GAASJ,EAAAA,CAAGK,cAAc,EAAA,EAC5BC,eAAe,EAAE;AACnB,IAAA,IAAK,IAAIC,CAAAA,GAAI,CAAA,EAAGA,IAAIH,MAAAA,CAAOI,MAAM,EAAED,CAAAA,EAAAA,CAAK;AACtC,QAAA,IAAIE,GAAAA,GAAML,MAAM,CAACG,CAAAA,CAAE,CAACG,IAAI;AAExB,QAAA,IAAIC,QAAAA,GAAWX,EAAAA,CAAGY,aAAa,CAACH,IAAII,IAAI,CAAA;QACxC,IAAIC,MAAAA,GAASH,QAAAA,CAASI,IAAI,KAAK,KAAA;QAC/B,IAAIC,OAAAA,GAAUL,QAAAA,CAASM,KAAK,KAAK,CAAA;QAEjC,IAAIJ,IAAAA,GAAOb,EAAAA,CAAGkB,OAAO,CAACT,GAAAA,CAAII,IAAI,CAAA,EAC5BM,KAAAA,GAAQvB,MAAAA,CAAOwB,IAAI,CAACP,IAAAA,CAAAA;QACtB,IAAIQ,kBAAAA,GAAqB,QAAQC,IAAI,CAACT,KAAKU,KAAK,CAAC,CAAA,EAAGd,GAAAA,CAAIe,EAAE,CAAA,CAAA;AAC1D,QAAA,IAAI,CAACpB,MAAM,CAACG,CAAAA,CAAE,CAACkB,KAAK,EAAA,IAAO,CAACX,MAAAA,IAAU,CAACE,OAAAA,IAAY,CAACG,SAASE,kBAAAA,EAAoB;AAC/ErB,YAAAA,EAAAA,CAAG0B,WAAW,CAAC,kBAAA,CAAA;AACf,YAAA;AACF,QAAA;QACA,IAAI7B,WAAAA,CAAYyB,IAAI,CAACT,IAAAA,CAAAA,EAAO;AAC1B,YAAA,IAAIc,UAAAA,GAAaX,OAAAA,IAAW,OAAA,CAAQM,IAAI,CAACT,IAAAA,CAAAA;AACzC,YAAA,IAAIe,SAAAA,GAAY,CAAC,OAAA,CAAQN,IAAI,CAACT,IAAAA,CAAAA;AAC9B,YAAA,IAAIc,UAAAA,IAAcC,SAAAA,EAChB5B,EAAAA,CAAG6B,YAAY,CACb,EAAA,EACA;AACEhB,gBAAAA,IAAAA,EAAMJ,IAAII,IAAI;gBACdW,EAAAA,EAAI;aACN,EACA;AACEX,gBAAAA,IAAAA,EAAMJ,IAAII,IAAI;gBACdW,EAAAA,EAAIf,GAAAA,CAAIe,EAAE,GAAG;AACf,aAAA,CAAA;YAEJlB,YAAY,CAACC,EAAE,GAAG,IAAA;QACpB,CAAA,MAAO;YACL,IAAIuB,MAAAA,GAASX,KAAK,CAAC,CAAA,CAAE,EACnBY,KAAAA,GAAQZ,KAAK,CAAC,CAAA,CAAE;AAClB,YAAA,IAAIa,WAAW,EAAElC,eAAAA,CAAgBwB,IAAI,CAACH,KAAK,CAAC,CAAA,CAAE,CAAA,IAAKA,KAAK,CAAC,CAAA,CAAE,CAACc,OAAO,CAAC,QAAQ,CAAA,CAAA;AAC5E,YAAA,IAAIC,SAASF,QAAAA,GAAWG,QAAAA,CAAShB,KAAK,CAAC,CAAA,CAAE,EAAE,EAAA,CAAA,GAAM,CAAA,GAAIA,KAAK,CAAC,CAAA,CAAE,GAAGA,KAAK,CAAC,EAAE,CAACiB,OAAO,CAAC,GAAA,EAAK,GAAA,CAAA;AACtF9B,YAAAA,YAAY,CAACC,CAAAA,CAAE,GAAG,IAAA,GAAOuB,SAASI,MAAAA,GAASH,KAAAA;YAE3C,IAAIC,QAAAA,EAAUK,sCAAsCrC,EAAAA,EAAIS,GAAAA,CAAAA;AAC1D,QAAA;AACF,IAAA;AAEAT,IAAAA,EAAAA,CAAGsC,iBAAiB,CAAChC,YAAAA,CAAAA;AACvB;AAEA,SAAS+B,qCAAAA,CAAsCrC,EAAqB,EAAES,GAAwB,EAAA;AAC5F,IAAA,IAAI8B,YAAY9B,GAAAA,CAAII,IAAI,EACtB2B,SAAAA,GAAY,GACZC,SAAAA,GAAY,CAAA;IACd,IAAIC,SAAAA,GAAY9C,MAAAA,CAAOwB,IAAI,CAACpB,EAAAA,CAAGkB,OAAO,CAACqB,SAAAA,CAAAA,CAAAA,EACrCI,WAAAA,GAAcD,SAAU,CAAC,CAAA,CAAE;IAE7B,GAAG;QACDF,SAAAA,IAAa,CAAA;AACb,QAAA,IAAII,iBAAiBL,SAAAA,GAAYC,SAAAA;QACjC,IAAIK,QAAAA,GAAW7C,EAAAA,CAAGkB,OAAO,CAAC0B,cAAAA,CAAAA;QAC1B,IAAIE,QAAAA,GAAWlD,MAAAA,CAAOwB,IAAI,CAACyB,QAAAA,CAAAA;AAE3B,QAAA,IAAIC,QAAAA,EAAU;YACZ,IAAIC,UAAAA,GAAaD,QAAQ,CAAC,CAAA,CAAE;AAC5B,YAAA,IAAIE,YAAYb,QAAAA,CAASO,SAAU,CAAC,CAAA,CAAE,EAAE,MAAMF,SAAAA,GAAYC,SAAAA;AAC1D,YAAA,IAAIQ,aAAad,QAAAA,CAASW,QAAQ,CAAC,CAAA,CAAE,EAAE,KACrCI,UAAAA,GAAaD,UAAAA;AAEf,YAAA,IAAIN,WAAAA,KAAgBI,UAAAA,IAAc,CAACI,KAAAA,CAAMF,UAAAA,CAAAA,EAAa;gBACpD,IAAID,SAAAA,KAAcC,UAAAA,EAAYC,UAAAA,GAAaD,UAAAA,GAAa,CAAA;gBACxD,IAAID,SAAAA,GAAYC,UAAAA,EAAYC,UAAAA,GAAaF,SAAAA,GAAY,CAAA;AACrDhD,gBAAAA,EAAAA,CAAG6B,YAAY,CACbgB,QAAAA,CAAST,OAAO,CAACxC,MAAAA,EAAQmD,UAAAA,GAAaG,UAAAA,GAAaJ,QAAQ,CAAC,CAAA,CAAE,GAAGA,QAAQ,CAAC,EAAE,CAAA,EAC5E;oBACEjC,IAAAA,EAAM+B,cAAAA;oBACNpB,EAAAA,EAAI;iBACN,EACA;oBACEX,IAAAA,EAAM+B,cAAAA;AACNpB,oBAAAA,EAAAA,EAAIqB,SAASrC;AACf,iBAAA,CAAA;YAEJ,CAAA,MAAO;AACL,gBAAA,IAAImC,WAAAA,CAAYnC,MAAM,GAAGuC,UAAAA,CAAWvC,MAAM,EAAE;;;AAG5C,gBAAA,IAAImC,YAAYnC,MAAM,GAAGuC,WAAWvC,MAAM,IAAIgC,cAAc,CAAA,EAAG;gBAC/DC,SAAAA,IAAa,CAAA;AACf,YAAA;AACF,QAAA;AACF,IAAA,CAAA,OAASK,QAAAA;AACX;;;;"}
@@ -13,7 +13,20 @@ var sub = require('markdown-it-sub');
13
13
  var sup = require('markdown-it-sup');
14
14
  require('highlight.js/styles/solarized-dark.css');
15
15
 
16
- const md = new Markdown({
16
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
+
18
+ var Markdown__default = /*#__PURE__*/_interopDefault(Markdown);
19
+ var abbr__default = /*#__PURE__*/_interopDefault(abbr);
20
+ var container__default = /*#__PURE__*/_interopDefault(container);
21
+ var deflist__default = /*#__PURE__*/_interopDefault(deflist);
22
+ var emoji__default = /*#__PURE__*/_interopDefault(emoji);
23
+ var footnote__default = /*#__PURE__*/_interopDefault(footnote);
24
+ var ins__default = /*#__PURE__*/_interopDefault(ins);
25
+ var mark__default = /*#__PURE__*/_interopDefault(mark);
26
+ var sub__default = /*#__PURE__*/_interopDefault(sub);
27
+ var sup__default = /*#__PURE__*/_interopDefault(sup);
28
+
29
+ const md = new Markdown__default.default({
17
30
  html: true,
18
31
  xhtmlOut: false,
19
32
  breaks: true,
@@ -31,7 +44,7 @@ const md = new Markdown({
31
44
  }
32
45
  return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
33
46
  }
34
- }).use(abbr).use(container, 'warning').use(container, 'tip').use(deflist).use(emoji).use(footnote).use(ins).use(mark).use(sub).use(sup);
47
+ }).use(abbr__default.default).use(container__default.default, 'warning').use(container__default.default, 'tip').use(deflist__default.default).use(emoji__default.default).use(footnote__default.default).use(ins__default.default).use(mark__default.default).use(sub__default.default).use(sup__default.default);
35
48
  // Code from: https://github.com/markdown-it/markdown-it-footnote/blob/master/index.js#L29
36
49
  md.renderer.rules.footnote_ref = (tokens, idx, options, env, slf)=>{
37
50
  const caption = slf.rules.footnote_caption?.(tokens, idx, options, env, slf);
@@ -1 +1 @@
1
- {"version":3,"file":"mdRenderer.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.ts"],"sourcesContent":["import { getLanguage, highlight, highlightAuto } from 'highlight.js';\nimport Markdown from 'markdown-it';\n// @ts-expect-error - library does not export types\nimport abbr from 'markdown-it-abbr';\nimport container from 'markdown-it-container';\n// @ts-expect-error - library does not export types\nimport deflist from 'markdown-it-deflist';\nimport emoji from 'markdown-it-emoji';\nimport footnote from 'markdown-it-footnote';\n// @ts-expect-error - library does not export types\nimport ins from 'markdown-it-ins';\n// @ts-expect-error - library does not export types\nimport mark from 'markdown-it-mark';\n// @ts-expect-error - library does not export types\nimport sub from 'markdown-it-sub';\n// @ts-expect-error - library does not export types\nimport sup from 'markdown-it-sup';\n\nimport 'highlight.js/styles/solarized-dark.css';\n\nconst md: Markdown = new Markdown({\n html: true, // Enable HTML tags in source\n xhtmlOut: false,\n breaks: true,\n langPrefix: 'language-',\n linkify: true,\n typographer: true,\n // Code from: https://github.com/markdown-it/markdown-it/blob/master/support/demo_template/index.js#L83\n highlight(str, lang) {\n if (lang && lang !== 'auto' && getLanguage(lang)) {\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(lang.toLowerCase()) +\n '\"><code>' +\n highlight(lang, str, true).value +\n '</code></pre>'\n );\n }\n\n if (lang === 'auto') {\n const result = highlightAuto(str);\n\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(result.language!) +\n '\"><code>' +\n result.value +\n '</code></pre>'\n );\n }\n\n return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n },\n})\n .use(abbr)\n .use(container, 'warning')\n .use(container, 'tip')\n .use(deflist)\n .use(emoji)\n .use(footnote)\n .use(ins)\n .use(mark)\n .use(sub)\n .use(sup);\n\n// Code from: https://github.com/markdown-it/markdown-it-footnote/blob/master/index.js#L29\nmd.renderer.rules.footnote_ref = (tokens, idx, options, env, slf) => {\n const caption = slf.rules.footnote_caption?.(tokens, idx, options, env, slf);\n\n return '<sup class=\"footnote-ref\"><span>' + caption + '</span></sup>';\n};\n\nmd.renderer.rules.footnote_anchor = () => {\n /* ↩ with escape code to prevent display as Apple Emoji on iOS */\n return ' <span class=\"footnote-backref\">\\u21a9\\uFE0E</span>';\n};\n\nexport { md };\n"],"names":["md","Markdown","html","xhtmlOut","breaks","langPrefix","linkify","typographer","highlight","str","lang","getLanguage","utils","escapeHtml","toLowerCase","value","result","highlightAuto","language","use","abbr","container","deflist","emoji","footnote","ins","mark","sub","sup","renderer","rules","footnote_ref","tokens","idx","options","env","slf","caption","footnote_caption","footnote_anchor"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAMA,EAAAA,GAAe,IAAIC,QAAAA,CAAS;IAChCC,IAAAA,EAAM,IAAA;IACNC,QAAAA,EAAU,KAAA;IACVC,MAAAA,EAAQ,IAAA;IACRC,UAAAA,EAAY,WAAA;IACZC,OAAAA,EAAS,IAAA;IACTC,WAAAA,EAAa,IAAA;;IAEbC,SAAAA,CAAAA,CAAUC,GAAG,EAAEC,IAAI,EAAA;AACjB,QAAA,IAAIA,IAAAA,IAAQA,IAAAA,KAAS,MAAA,IAAUC,wBAAAA,CAAYD,IAAAA,CAAAA,EAAO;AAChD,YAAA,OACE,4BAAA,GACAV,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACH,IAAAA,CAAKI,WAAW,EAAA,CAAA,GACpC,aACAN,sBAAAA,CAAUE,IAAAA,EAAMD,GAAAA,EAAK,IAAA,CAAA,CAAMM,KAAK,GAChC,eAAA;AAEJ,QAAA;AAEA,QAAA,IAAIL,SAAS,MAAA,EAAQ;AACnB,YAAA,MAAMM,SAASC,0BAAAA,CAAcR,GAAAA,CAAAA;AAE7B,YAAA,OACE,4BAAA,GACAT,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACG,MAAAA,CAAOE,QAAQ,CAAA,GACnC,UAAA,GACAF,MAAAA,CAAOD,KAAK,GACZ,eAAA;AAEJ,QAAA;AAEA,QAAA,OAAO,6BAA6Bf,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACJ,GAAAA,CAAAA,GAAO,eAAA;AACjE,IAAA;AACF,CAAA,CAAA,CACGU,GAAG,CAACC,IAAAA,CAAAA,CACJD,GAAG,CAACE,SAAAA,EAAW,SAAA,CAAA,CACfF,GAAG,CAACE,SAAAA,EAAW,KAAA,CAAA,CACfF,GAAG,CAACG,OAAAA,CAAAA,CACJH,GAAG,CAACI,KAAAA,CAAAA,CACJJ,GAAG,CAACK,QAAAA,CAAAA,CACJL,GAAG,CAACM,GAAAA,CAAAA,CACJN,GAAG,CAACO,IAAAA,CAAAA,CACJP,GAAG,CAACQ,GAAAA,CAAAA,CACJR,GAAG,CAACS,GAAAA;AAEP;AACA5B,EAAAA,CAAG6B,QAAQ,CAACC,KAAK,CAACC,YAAY,GAAG,CAACC,MAAAA,EAAQC,GAAAA,EAAKC,OAAAA,EAASC,GAAAA,EAAKC,GAAAA,GAAAA;IAC3D,MAAMC,OAAAA,GAAUD,IAAIN,KAAK,CAACQ,gBAAgB,GAAGN,MAAAA,EAAQC,GAAAA,EAAKC,OAAAA,EAASC,GAAAA,EAAKC,GAAAA,CAAAA;AAExE,IAAA,OAAO,qCAAqCC,OAAAA,GAAU,eAAA;AACxD,CAAA;AAEArC,EAAAA,CAAG6B,QAAQ,CAACC,KAAK,CAACS,eAAe,GAAG,IAAA;AAClC,sEACA,OAAO,qDAAA;AACT,CAAA;;;;"}
1
+ {"version":3,"file":"mdRenderer.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.ts"],"sourcesContent":["import { getLanguage, highlight, highlightAuto } from 'highlight.js';\nimport Markdown from 'markdown-it';\n// @ts-expect-error - library does not export types\nimport abbr from 'markdown-it-abbr';\nimport container from 'markdown-it-container';\n// @ts-expect-error - library does not export types\nimport deflist from 'markdown-it-deflist';\nimport emoji from 'markdown-it-emoji';\nimport footnote from 'markdown-it-footnote';\n// @ts-expect-error - library does not export types\nimport ins from 'markdown-it-ins';\n// @ts-expect-error - library does not export types\nimport mark from 'markdown-it-mark';\n// @ts-expect-error - library does not export types\nimport sub from 'markdown-it-sub';\n// @ts-expect-error - library does not export types\nimport sup from 'markdown-it-sup';\n\nimport 'highlight.js/styles/solarized-dark.css';\n\nconst md: Markdown = new Markdown({\n html: true, // Enable HTML tags in source\n xhtmlOut: false,\n breaks: true,\n langPrefix: 'language-',\n linkify: true,\n typographer: true,\n // Code from: https://github.com/markdown-it/markdown-it/blob/master/support/demo_template/index.js#L83\n highlight(str, lang) {\n if (lang && lang !== 'auto' && getLanguage(lang)) {\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(lang.toLowerCase()) +\n '\"><code>' +\n highlight(lang, str, true).value +\n '</code></pre>'\n );\n }\n\n if (lang === 'auto') {\n const result = highlightAuto(str);\n\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(result.language!) +\n '\"><code>' +\n result.value +\n '</code></pre>'\n );\n }\n\n return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n },\n})\n .use(abbr)\n .use(container, 'warning')\n .use(container, 'tip')\n .use(deflist)\n .use(emoji)\n .use(footnote)\n .use(ins)\n .use(mark)\n .use(sub)\n .use(sup);\n\n// Code from: https://github.com/markdown-it/markdown-it-footnote/blob/master/index.js#L29\nmd.renderer.rules.footnote_ref = (tokens, idx, options, env, slf) => {\n const caption = slf.rules.footnote_caption?.(tokens, idx, options, env, slf);\n\n return '<sup class=\"footnote-ref\"><span>' + caption + '</span></sup>';\n};\n\nmd.renderer.rules.footnote_anchor = () => {\n /* ↩ with escape code to prevent display as Apple Emoji on iOS */\n return ' <span class=\"footnote-backref\">\\u21a9\\uFE0E</span>';\n};\n\nexport { md };\n"],"names":["md","Markdown","html","xhtmlOut","breaks","langPrefix","linkify","typographer","highlight","str","lang","getLanguage","utils","escapeHtml","toLowerCase","value","result","highlightAuto","language","use","abbr","container","deflist","emoji","footnote","ins","mark","sub","sup","renderer","rules","footnote_ref","tokens","idx","options","env","slf","caption","footnote_caption","footnote_anchor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAMA,EAAAA,GAAe,IAAIC,yBAAAA,CAAS;IAChCC,IAAAA,EAAM,IAAA;IACNC,QAAAA,EAAU,KAAA;IACVC,MAAAA,EAAQ,IAAA;IACRC,UAAAA,EAAY,WAAA;IACZC,OAAAA,EAAS,IAAA;IACTC,WAAAA,EAAa,IAAA;;IAEbC,SAAAA,CAAAA,CAAUC,GAAG,EAAEC,IAAI,EAAA;AACjB,QAAA,IAAIA,IAAAA,IAAQA,IAAAA,KAAS,MAAA,IAAUC,wBAAAA,CAAYD,IAAAA,CAAAA,EAAO;AAChD,YAAA,OACE,4BAAA,GACAV,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACH,IAAAA,CAAKI,WAAW,EAAA,CAAA,GACpC,aACAN,sBAAAA,CAAUE,IAAAA,EAAMD,GAAAA,EAAK,IAAA,CAAA,CAAMM,KAAK,GAChC,eAAA;AAEJ,QAAA;AAEA,QAAA,IAAIL,SAAS,MAAA,EAAQ;AACnB,YAAA,MAAMM,SAASC,0BAAAA,CAAcR,GAAAA,CAAAA;AAE7B,YAAA,OACE,4BAAA,GACAT,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACG,MAAAA,CAAOE,QAAQ,CAAA,GACnC,UAAA,GACAF,MAAAA,CAAOD,KAAK,GACZ,eAAA;AAEJ,QAAA;AAEA,QAAA,OAAO,6BAA6Bf,EAAAA,CAAGY,KAAK,CAACC,UAAU,CAACJ,GAAAA,CAAAA,GAAO,eAAA;AACjE,IAAA;AACF,CAAA,CAAA,CACGU,GAAG,CAACC,qBAAAA,CAAAA,CACJD,GAAG,CAACE,0BAAAA,EAAW,SAAA,CAAA,CACfF,GAAG,CAACE,0BAAAA,EAAW,KAAA,CAAA,CACfF,GAAG,CAACG,wBAAAA,CAAAA,CACJH,GAAG,CAACI,sBAAAA,CAAAA,CACJJ,GAAG,CAACK,yBAAAA,CAAAA,CACJL,GAAG,CAACM,oBAAAA,CAAAA,CACJN,GAAG,CAACO,qBAAAA,CAAAA,CACJP,GAAG,CAACQ,oBAAAA,CAAAA,CACJR,GAAG,CAACS,oBAAAA;AAEP;AACA5B,EAAAA,CAAG6B,QAAQ,CAACC,KAAK,CAACC,YAAY,GAAG,CAACC,MAAAA,EAAQC,GAAAA,EAAKC,OAAAA,EAASC,GAAAA,EAAKC,GAAAA,GAAAA;IAC3D,MAAMC,OAAAA,GAAUD,IAAIN,KAAK,CAACQ,gBAAgB,GAAGN,MAAAA,EAAQC,GAAAA,EAAKC,OAAAA,EAASC,GAAAA,EAAKC,GAAAA,CAAAA;AAExE,IAAA,OAAO,qCAAqCC,OAAAA,GAAU,eAAA;AACxD,CAAA;AAEArC,EAAAA,CAAG6B,QAAQ,CAACC,KAAK,CAACS,eAAe,GAAG,IAAA;AAClC,sEACA,OAAO,qDAAA;AACT,CAAA;;;;"}
@@ -2,9 +2,13 @@
2
2
 
3
3
  var createDOMPurify = require('dompurify');
4
4
 
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var createDOMPurify__default = /*#__PURE__*/_interopDefault(createDOMPurify);
8
+
5
9
  // Own instance, so the data: hook below stays scoped to this module instead of
6
10
  // mutating the library-wide singleton shared with any other DOMPurify consumer.
7
- const DOMPurify = createDOMPurify(window);
11
+ const DOMPurify = createDOMPurify__default.default(window);
8
12
  /**
9
13
  * Attribute allowlist. Starts from the prior sanitize-html configuration:
10
14
  * '*': href, align, alt, center, width, height, type, controls, target
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizer.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.ts"],"sourcesContent":["import createDOMPurify from 'dompurify';\n\n// Own instance, so the data: hook below stays scoped to this module instead of\n// mutating the library-wide singleton shared with any other DOMPurify consumer.\nconst DOMPurify = createDOMPurify(window);\n\n/**\n * Attribute allowlist. Starts from the prior sanitize-html configuration:\n * '*': href, align, alt, center, width, height, type, controls, target\n * img: src, alt\n * source: src, type\n *\n * DOMPurify's ALLOWED_ATTR is a flat list (no per-tag scoping), so the union\n * of the original allowlist is used. Tags that the prior config never reached\n * (script, iframe, etc.) are stripped wholesale by DOMPurify's default tag\n * allowlist, so per-tag attribute scoping is not security-relevant here.\n *\n * `class` and `title` are additions over the old config (which stripped both):\n * - class: mdRenderer.ts emits `hljs`/`language-*` on code blocks (so the\n * highlight.js solarized-dark stylesheet applies) and `footnote-ref`/\n * `footnote-backref` on footnotes. Stripping it left those styles dead.\n * - title: link/image tooltips and the markdown-it abbr plugin (`<abbr title>`).\n * Both are inert in admin-authored content behind the tag allowlist; neither\n * can escalate.\n */\nconst ALLOWED_ATTR = [\n 'href',\n 'src',\n 'alt',\n 'align',\n 'center',\n 'width',\n 'height',\n 'type',\n 'controls',\n 'target',\n 'class',\n 'title',\n];\n\n/**\n * URL scheme allowlist: http(s), ftp, mailto, tel, plus protocol-relative,\n * fragment, and relative URLs. Mirrors sanitize-html's prior allowedSchemes.\n */\nconst ALLOWED_URI_REGEXP = /^(?:(?:https?|ftp|mailto|tel):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i;\n\n/**\n * DOMPurify permits `data:` URIs on media tags (img/source/video/audio)\n * through its internal DATA_URI_TAGS allowlist, *bypassing* ALLOWED_URI_REGEXP.\n * The prior sanitize-html config stripped every `data:` URI, so strip them here\n * too for parity.\n */\nconst URL_ATTRIBUTES = ['src', 'href', 'xlink:href'];\nDOMPurify.addHook('afterSanitizeAttributes', (node) => {\n if (typeof node.getAttribute !== 'function') {\n return;\n }\n for (const attr of URL_ATTRIBUTES) {\n const value = node.getAttribute(attr);\n if (value && /^\\s*data:/i.test(value)) {\n node.removeAttribute(attr);\n }\n }\n});\n\nconst sanitize = (html: string): string =>\n DOMPurify.sanitize(html, {\n ALLOWED_ATTR,\n ALLOWED_URI_REGEXP,\n ALLOW_DATA_ATTR: false,\n });\n\nexport { sanitize };\n"],"names":["DOMPurify","createDOMPurify","window","ALLOWED_ATTR","ALLOWED_URI_REGEXP","URL_ATTRIBUTES","addHook","node","getAttribute","attr","value","test","removeAttribute","sanitize","html","ALLOW_DATA_ATTR"],"mappings":";;;;AAEA;AACA;AACA,MAAMA,YAAYC,eAAAA,CAAgBC,MAAAA,CAAAA;AAElC;;;;;;;;;;;;;;;;;;AAkBC,IACD,MAAMC,YAAAA,GAAe;AACnB,IAAA,MAAA;AACA,IAAA,KAAA;AACA,IAAA,KAAA;AACA,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;AACA,IAAA;AACD,CAAA;AAED;;;AAGC,IACD,MAAMC,kBAAAA,GAAqB,qEAAA;AAE3B;;;;;AAKC,IACD,MAAMC,cAAAA,GAAiB;AAAC,IAAA,KAAA;AAAO,IAAA,MAAA;AAAQ,IAAA;AAAa,CAAA;AACpDL,SAAAA,CAAUM,OAAO,CAAC,yBAAA,EAA2B,CAACC,IAAAA,GAAAA;AAC5C,IAAA,IAAI,OAAOA,IAAAA,CAAKC,YAAY,KAAK,UAAA,EAAY;AAC3C,QAAA;AACF,IAAA;IACA,KAAK,MAAMC,QAAQJ,cAAAA,CAAgB;QACjC,MAAMK,KAAAA,GAAQH,IAAAA,CAAKC,YAAY,CAACC,IAAAA,CAAAA;AAChC,QAAA,IAAIC,KAAAA,IAAS,YAAA,CAAaC,IAAI,CAACD,KAAAA,CAAAA,EAAQ;AACrCH,YAAAA,IAAAA,CAAKK,eAAe,CAACH,IAAAA,CAAAA;AACvB,QAAA;AACF,IAAA;AACF,CAAA,CAAA;AAEA,MAAMI,WAAW,CAACC,IAAAA,GAChBd,SAAAA,CAAUa,QAAQ,CAACC,IAAAA,EAAM;AACvBX,QAAAA,YAAAA;AACAC,QAAAA,kBAAAA;QACAW,eAAAA,EAAiB;AACnB,KAAA;;;;"}
1
+ {"version":3,"file":"sanitizer.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.ts"],"sourcesContent":["import createDOMPurify from 'dompurify';\n\n// Own instance, so the data: hook below stays scoped to this module instead of\n// mutating the library-wide singleton shared with any other DOMPurify consumer.\nconst DOMPurify = createDOMPurify(window);\n\n/**\n * Attribute allowlist. Starts from the prior sanitize-html configuration:\n * '*': href, align, alt, center, width, height, type, controls, target\n * img: src, alt\n * source: src, type\n *\n * DOMPurify's ALLOWED_ATTR is a flat list (no per-tag scoping), so the union\n * of the original allowlist is used. Tags that the prior config never reached\n * (script, iframe, etc.) are stripped wholesale by DOMPurify's default tag\n * allowlist, so per-tag attribute scoping is not security-relevant here.\n *\n * `class` and `title` are additions over the old config (which stripped both):\n * - class: mdRenderer.ts emits `hljs`/`language-*` on code blocks (so the\n * highlight.js solarized-dark stylesheet applies) and `footnote-ref`/\n * `footnote-backref` on footnotes. Stripping it left those styles dead.\n * - title: link/image tooltips and the markdown-it abbr plugin (`<abbr title>`).\n * Both are inert in admin-authored content behind the tag allowlist; neither\n * can escalate.\n */\nconst ALLOWED_ATTR = [\n 'href',\n 'src',\n 'alt',\n 'align',\n 'center',\n 'width',\n 'height',\n 'type',\n 'controls',\n 'target',\n 'class',\n 'title',\n];\n\n/**\n * URL scheme allowlist: http(s), ftp, mailto, tel, plus protocol-relative,\n * fragment, and relative URLs. Mirrors sanitize-html's prior allowedSchemes.\n */\nconst ALLOWED_URI_REGEXP = /^(?:(?:https?|ftp|mailto|tel):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i;\n\n/**\n * DOMPurify permits `data:` URIs on media tags (img/source/video/audio)\n * through its internal DATA_URI_TAGS allowlist, *bypassing* ALLOWED_URI_REGEXP.\n * The prior sanitize-html config stripped every `data:` URI, so strip them here\n * too for parity.\n */\nconst URL_ATTRIBUTES = ['src', 'href', 'xlink:href'];\nDOMPurify.addHook('afterSanitizeAttributes', (node) => {\n if (typeof node.getAttribute !== 'function') {\n return;\n }\n for (const attr of URL_ATTRIBUTES) {\n const value = node.getAttribute(attr);\n if (value && /^\\s*data:/i.test(value)) {\n node.removeAttribute(attr);\n }\n }\n});\n\nconst sanitize = (html: string): string =>\n DOMPurify.sanitize(html, {\n ALLOWED_ATTR,\n ALLOWED_URI_REGEXP,\n ALLOW_DATA_ATTR: false,\n });\n\nexport { sanitize };\n"],"names":["DOMPurify","createDOMPurify","window","ALLOWED_ATTR","ALLOWED_URI_REGEXP","URL_ATTRIBUTES","addHook","node","getAttribute","attr","value","test","removeAttribute","sanitize","html","ALLOW_DATA_ATTR"],"mappings":";;;;;;;;AAEA;AACA;AACA,MAAMA,YAAYC,gCAAAA,CAAgBC,MAAAA,CAAAA;AAElC;;;;;;;;;;;;;;;;;;AAkBC,IACD,MAAMC,YAAAA,GAAe;AACnB,IAAA,MAAA;AACA,IAAA,KAAA;AACA,IAAA,KAAA;AACA,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;AACA,IAAA;AACD,CAAA;AAED;;;AAGC,IACD,MAAMC,kBAAAA,GAAqB,qEAAA;AAE3B;;;;;AAKC,IACD,MAAMC,cAAAA,GAAiB;AAAC,IAAA,KAAA;AAAO,IAAA,MAAA;AAAQ,IAAA;AAAa,CAAA;AACpDL,SAAAA,CAAUM,OAAO,CAAC,yBAAA,EAA2B,CAACC,IAAAA,GAAAA;AAC5C,IAAA,IAAI,OAAOA,IAAAA,CAAKC,YAAY,KAAK,UAAA,EAAY;AAC3C,QAAA;AACF,IAAA;IACA,KAAK,MAAMC,QAAQJ,cAAAA,CAAgB;QACjC,MAAMK,KAAAA,GAAQH,IAAAA,CAAKC,YAAY,CAACC,IAAAA,CAAAA;AAChC,QAAA,IAAIC,KAAAA,IAAS,YAAA,CAAaC,IAAI,CAACD,KAAAA,CAAAA,EAAQ;AACrCH,YAAAA,IAAAA,CAAKK,eAAe,CAACH,IAAAA,CAAAA;AACvB,QAAA;AACF,IAAA;AACF,CAAA,CAAA;AAEA,MAAMI,WAAW,CAACC,IAAAA,GAChBd,SAAAA,CAAUa,QAAQ,CAACC,IAAAA,EAAM;AACvBX,QAAAA,YAAAA;AACAC,QAAAA,kBAAAA;QACAW,eAAAA,EAAiB;AACnB,KAAA;;;;"}
@@ -7,7 +7,8 @@ var reactIntl = require('react-intl');
7
7
  var styledComponents = require('styled-components');
8
8
  var InputRenderer = require('./InputRenderer.js');
9
9
 
10
- function _interopNamespaceDefault(e) {
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
11
12
  var n = Object.create(null);
12
13
  if (e) {
13
14
  Object.keys(e).forEach(function (k) {
@@ -24,7 +25,7 @@ function _interopNamespaceDefault(e) {
24
25
  return Object.freeze(n);
25
26
  }
26
27
 
27
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
29
 
29
30
  const ResponsiveGridRoot = styledComponents.styled(designSystem.Grid.Root)`
30
31
  container-type: inline-size;
@@ -1 +1 @@
1
- {"version":3,"file":"FormLayout.js","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const ResponsiveGridRoot = styled(Grid.Root)`\n container-type: inline-size;\n`;\n\nexport const ResponsiveGridItem =\n /**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\n process.env.NODE_ENV !== 'test'\n ? styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n ${({ theme }) => theme.breakpoints.medium} {\n ${({ col }) => col && `grid-column: span ${col};`}\n }\n `\n : styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n `;\n\nconst panelStyles = {\n padding: {\n initial: 4,\n medium: 6,\n },\n borderColor: 'neutral150',\n background: 'neutral0',\n hasRadius: true,\n shadow: 'tableShadow',\n} satisfies BoxProps;\n\ninterface FormLayoutProps extends Pick<EditLayout, 'layout'> {\n hasBackground?: boolean;\n document: ReturnType<UseDocument>;\n}\n\nconst FormLayout = React.memo(({ layout, document, hasBackground = true }: FormLayoutProps) => {\n const { formatMessage } = useIntl();\n const modelUid = document.schema?.uid;\n\n const getLabel = (name: string, label: string) => {\n return formatMessage({\n id: `content-manager.content-types.${modelUid}.${name}`,\n defaultMessage: label,\n });\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((panel, index) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box key={index} {...(hasBackground && panelStyles)}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => {\n return (\n <ResponsiveGridRoot key={gridRowIndex} gap={{ initial: 6, medium: 4 }}>\n {row.map(({ size, ...field }) => {\n return (\n <ResponsiveGridItem\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n );\n })}\n </Flex>\n );\n});\n\nFormLayout.displayName = 'FormLayout';\n\nexport { FormLayout, FormLayoutProps };\n"],"names":["ResponsiveGridRoot","styled","Grid","Root","ResponsiveGridItem","process","env","NODE_ENV","Item","theme","breakpoints","medium","col","panelStyles","padding","initial","borderColor","background","hasRadius","shadow","FormLayout","React","memo","layout","document","hasBackground","formatMessage","useIntl","modelUid","schema","uid","getLabel","name","label","id","defaultMessage","_jsx","Flex","direction","alignItems","gap","map","panel","index","some","row","field","type","s","xs","InputRenderer","Box","gridRowIndex","size","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"FormLayout.js","sources":["../../../../../admin/src/pages/EditView/components/FormLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, BoxProps, Flex, Grid } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { EditLayout } from '../../../hooks/useDocumentLayout';\n\nimport { InputRenderer } from './InputRenderer';\n\nimport type { UseDocument } from '../../../hooks/useDocument';\n\nexport const ResponsiveGridRoot = styled(Grid.Root)`\n container-type: inline-size;\n`;\n\nexport const ResponsiveGridItem =\n /**\n * TODO:\n * JSDOM cannot handle container queries.\n * This is a temporary workaround so that tests do not fail in the CI when jestdom throws an error\n * for failing to parse the stylesheet.\n */\n process.env.NODE_ENV !== 'test'\n ? styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n ${({ theme }) => theme.breakpoints.medium} {\n ${({ col }) => col && `grid-column: span ${col};`}\n }\n `\n : styled(Grid.Item)<{ col: number }>`\n grid-column: span 12;\n `;\n\nconst panelStyles = {\n padding: {\n initial: 4,\n medium: 6,\n },\n borderColor: 'neutral150',\n background: 'neutral0',\n hasRadius: true,\n shadow: 'tableShadow',\n} satisfies BoxProps;\n\ninterface FormLayoutProps extends Pick<EditLayout, 'layout'> {\n hasBackground?: boolean;\n document: ReturnType<UseDocument>;\n}\n\nconst FormLayout = React.memo(({ layout, document, hasBackground = true }: FormLayoutProps) => {\n const { formatMessage } = useIntl();\n const modelUid = document.schema?.uid;\n\n const getLabel = (name: string, label: string) => {\n return formatMessage({\n id: `content-manager.content-types.${modelUid}.${name}`,\n defaultMessage: label,\n });\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((panel, index) => {\n if (panel.some((row) => row.some((field) => field.type === 'dynamiczone'))) {\n const [row] = panel;\n const [field] = row;\n\n return (\n <Grid.Root key={field.name} gap={4}>\n <Grid.Item col={12} s={12} xs={12} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </Grid.Item>\n </Grid.Root>\n );\n }\n\n return (\n <Box key={index} {...(hasBackground && panelStyles)}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {panel.map((row, gridRowIndex) => {\n return (\n <ResponsiveGridRoot key={gridRowIndex} gap={{ initial: 6, medium: 4 }}>\n {row.map(({ size, ...field }) => {\n return (\n <ResponsiveGridItem\n col={size}\n key={field.name}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n label={getLabel(field.name, field.label)}\n document={document}\n />\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n );\n })}\n </Flex>\n );\n});\n\nFormLayout.displayName = 'FormLayout';\n\nexport { FormLayout, FormLayoutProps };\n"],"names":["ResponsiveGridRoot","styled","Grid","Root","ResponsiveGridItem","process","env","NODE_ENV","Item","theme","breakpoints","medium","col","panelStyles","padding","initial","borderColor","background","hasRadius","shadow","FormLayout","React","memo","layout","document","hasBackground","formatMessage","useIntl","modelUid","schema","uid","getLabel","name","label","id","defaultMessage","_jsx","Flex","direction","alignItems","gap","map","panel","index","some","row","field","type","s","xs","InputRenderer","Box","gridRowIndex","size","displayName"],"mappings":"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"}
@@ -18,7 +18,8 @@ var users = require('../../../utils/users.js');
18
18
  var DocumentActions = require('./DocumentActions.js');
19
19
  var DocumentStatus = require('./DocumentStatus.js');
20
20
 
21
- function _interopNamespaceDefault(e) {
21
+ function _interopNamespace(e) {
22
+ if (e && e.__esModule) return e;
22
23
  var n = Object.create(null);
23
24
  if (e) {
24
25
  Object.keys(e).forEach(function (k) {
@@ -35,7 +36,7 @@ function _interopNamespaceDefault(e) {
35
36
  return Object.freeze(n);
36
37
  }
37
38
 
38
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
39
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
40
 
40
41
  const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
41
42
  const { formatMessage } = reactIntl.useIntl();