@templatical/editor 0.35.0 → 0.37.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 (223) hide show
  1. package/dist/{AiChatSidebar-DPHbCGu4.js → AiChatSidebar-tu4eLcf_.js} +57 -57
  2. package/dist/{AiFeatureMenu--8z7qvg1.js → AiFeatureMenu-BF0i0vA4.js} +17 -17
  3. package/dist/{BlockIssueBadge-BGCsJqqM.js → BlockIssueBadge-DT-FqKeC.js} +9 -9
  4. package/dist/{BlockPreviewCanvas-DKspIy8V.js → BlockPreviewCanvas-DDCmMram.js} +28 -28
  5. package/dist/CloudHeaderExtras-NPhudovT.js +59 -0
  6. package/dist/{CloudPanels-Bp5gFtaL.js → CloudPanels-Iwnky0iA.js} +78 -108
  7. package/dist/{CollaboratorBar-DvwZm5u7.js → CollaboratorBar-DAITu0hz.js} +17 -17
  8. package/dist/{ColorPicker-DtozuN75.js → ColorPicker-BqlZ_TqG.js} +193 -193
  9. package/dist/{CommentsPanel-3C-DsEjy.js → CommentsPanel-CDvgmWP1.js} +3 -3
  10. package/dist/{CommentsSidebar-go1FnjDW.js → CommentsSidebar-X_xqM3dR.js} +158 -158
  11. package/dist/{CountdownBlock-D1fsNsyS.js → CountdownBlock-ZFJIdbP6.js} +12 -12
  12. package/dist/{CountdownToolbar-SLBuij7Q.js → CountdownToolbar-DBFoG3a6.js} +67 -67
  13. package/dist/{DesignReferenceSidebar-rcE_BvUd.js → DesignReferenceSidebar--QtXjLrw.js} +57 -57
  14. package/dist/{FieldRow-BWt7ECqo.js → FieldRow-C8nOknr_.js} +39 -39
  15. package/dist/{IssuesPanel-Cig46N1i.js → IssuesPanel-BLbNFMSX.js} +38 -38
  16. package/dist/{LoadingTrack-SQXoZVf2.js → LoadingTrack-BlTL4zFv.js} +2 -2
  17. package/dist/MediaPanels-CMTAhDXB.js +43 -0
  18. package/dist/{MergeTagInput-D1hzsn2b.js → MergeTagInput-BEjzj4Iu.js} +115 -115
  19. package/dist/{MergeTagModeToggle-CH9wR5YF.js → MergeTagModeToggle-DKN6ihI5.js} +40 -40
  20. package/dist/{MergeTagSuggestion-CoCuzEmW.js → MergeTagSuggestion-DKoLEeoj.js} +21 -21
  21. package/dist/{ParagraphEditor-CT2AdMdZ.js → ParagraphEditor-1E9yzOfk.js} +231 -258
  22. package/dist/{RestoreVersionDialog-mdqgQxFR.js → RestoreVersionDialog-BMGUkcd8.js} +28 -28
  23. package/dist/{RichTextEditorContent-riOB-rKD.js → RichTextEditorContent-BnxbQUV9.js} +49 -59
  24. package/dist/{SaveBlockDialog-Cn2v4Lpj.js → SaveBlockDialog-WKASpCCT.js} +78 -78
  25. package/dist/SavedBlocksBrowserModal-AYEXTMtQ.js +323 -0
  26. package/dist/{SavedBlocksPanels-ffBnWuVU.js → SavedBlocksPanels-D_CpacTl.js} +6 -6
  27. package/dist/{SavedBlocksPickBar-BmQC2tWN.js → SavedBlocksPickBar-BHMwg-1G.js} +11 -11
  28. package/dist/{TemplateScoringPanel-CxAtdreR.js → TemplateScoringPanel-CSin43YM.js} +99 -98
  29. package/dist/{TestEmailModal-Cjn1padY.js → TestEmailModal-BxizsRCd.js} +59 -59
  30. package/dist/{TestEmailPanel-Bf3XZ1jn.js → TestEmailPanel-vd2e5HzT.js} +3 -3
  31. package/dist/TitleEditor-CLJ68Ty4.js +199 -0
  32. package/dist/TplModal-Q9fDgS1M.js +51 -0
  33. package/dist/{VersionHistoryMenu-CrNrGsaa.js → VersionHistoryMenu-eGYVhM4H.js} +41 -47
  34. package/dist/{VersionHistoryPanels-CsuQk6W3.js → VersionHistoryPanels-C7Ntrrfq.js} +4 -4
  35. package/dist/{VersionPreviewBanner-BqbO0Zss.js → VersionPreviewBanner-BbQXnR0M.js} +9 -9
  36. package/dist/{blockTypeIcons-D_4HdaY9.js → blockTypeIcons-5qD4bB76.js} +5 -17
  37. package/dist/bundle-stats.json +8 -8
  38. package/dist/ca-Jx2CDwtn.js +83 -0
  39. package/dist/cdn/chunks/{AiChatSidebar-D0f74_nS.js → AiChatSidebar-dyqqHAcI.js} +4 -4
  40. package/dist/cdn/chunks/{AiChatSidebar-D0f74_nS.js.map → AiChatSidebar-dyqqHAcI.js.map} +1 -1
  41. package/dist/cdn/chunks/{AiFeatureMenu-DwGb3eF9.js → AiFeatureMenu-BjVMwhW8.js} +5 -5
  42. package/dist/cdn/chunks/{AiFeatureMenu-DwGb3eF9.js.map → AiFeatureMenu-BjVMwhW8.js.map} +1 -1
  43. package/dist/cdn/chunks/{BlockIssueBadge-CosQgeJ-.js → BlockIssueBadge-BJ__oEtm.js} +4 -4
  44. package/dist/cdn/chunks/{BlockIssueBadge-CosQgeJ-.js.map → BlockIssueBadge-BJ__oEtm.js.map} +1 -1
  45. package/dist/cdn/chunks/{BlockPreviewCanvas-CIpZ2a6g.js → BlockPreviewCanvas-B5f26eLE.js} +5 -5
  46. package/dist/cdn/chunks/{BlockPreviewCanvas-CIpZ2a6g.js.map → BlockPreviewCanvas-B5f26eLE.js.map} +1 -1
  47. package/dist/cdn/chunks/{CloudHeaderExtras-CQzQwKFB.js → CloudHeaderExtras-D5P5IEKA.js} +4 -4
  48. package/dist/cdn/chunks/{CloudHeaderExtras-CQzQwKFB.js.map → CloudHeaderExtras-D5P5IEKA.js.map} +1 -1
  49. package/dist/cdn/chunks/{CloudPanels-BmexuLOU.js → CloudPanels-DkmR05nB.js} +15 -45
  50. package/dist/cdn/chunks/{CloudPanels-BmexuLOU.js.map → CloudPanels-DkmR05nB.js.map} +1 -1
  51. package/dist/cdn/chunks/{CollaboratorBar-DEICobpp.js → CollaboratorBar-Yn7KSpt4.js} +4 -4
  52. package/dist/cdn/chunks/{CollaboratorBar-DEICobpp.js.map → CollaboratorBar-Yn7KSpt4.js.map} +1 -1
  53. package/dist/cdn/chunks/{ColorPicker-C7yC58FK.js → ColorPicker-LcrzgMoW.js} +7 -7
  54. package/dist/cdn/chunks/{ColorPicker-C7yC58FK.js.map → ColorPicker-LcrzgMoW.js.map} +1 -1
  55. package/dist/cdn/chunks/{CommentsPanel-OjmKxLL7.js → CommentsPanel-CntwwocI.js} +2 -2
  56. package/dist/cdn/chunks/{CommentsPanel-OjmKxLL7.js.map → CommentsPanel-CntwwocI.js.map} +1 -1
  57. package/dist/cdn/chunks/{CommentsSidebar-C4pWZGpy.js → CommentsSidebar-BLDKnKy7.js} +4 -4
  58. package/dist/cdn/chunks/{CommentsSidebar-C4pWZGpy.js.map → CommentsSidebar-BLDKnKy7.js.map} +1 -1
  59. package/dist/cdn/chunks/{CountdownBlock-rK055jpy.js → CountdownBlock-B4AfqJwb.js} +2 -2
  60. package/dist/cdn/chunks/{CountdownBlock-rK055jpy.js.map → CountdownBlock-B4AfqJwb.js.map} +1 -1
  61. package/dist/cdn/chunks/{CountdownToolbar-wlJOxyAl.js → CountdownToolbar-CA1dpuOI.js} +3 -3
  62. package/dist/cdn/chunks/{CountdownToolbar-wlJOxyAl.js.map → CountdownToolbar-CA1dpuOI.js.map} +1 -1
  63. package/dist/cdn/chunks/{DesignReferenceSidebar-DELhnh8h.js → DesignReferenceSidebar-D1Y9Hswe.js} +5 -5
  64. package/dist/cdn/chunks/{DesignReferenceSidebar-DELhnh8h.js.map → DesignReferenceSidebar-D1Y9Hswe.js.map} +1 -1
  65. package/dist/cdn/chunks/{IssuesPanel-C9i3o8aE.js → IssuesPanel-Q62LTqvd.js} +5 -5
  66. package/dist/cdn/chunks/{IssuesPanel-C9i3o8aE.js.map → IssuesPanel-Q62LTqvd.js.map} +1 -1
  67. package/dist/cdn/chunks/MediaPanels-D21M6shx.js +45 -0
  68. package/dist/cdn/chunks/MediaPanels-D21M6shx.js.map +1 -0
  69. package/dist/cdn/chunks/{MergeTagInput-D76Kyvgu.js → MergeTagInput-l7paaAml.js} +7 -7
  70. package/dist/cdn/chunks/{MergeTagInput-D76Kyvgu.js.map → MergeTagInput-l7paaAml.js.map} +1 -1
  71. package/dist/cdn/chunks/{MergeTagModeToggle-Dz3gxN2y.js → MergeTagModeToggle-DYxkAGtA.js} +4 -4
  72. package/dist/cdn/chunks/{MergeTagModeToggle-Dz3gxN2y.js.map → MergeTagModeToggle-DYxkAGtA.js.map} +1 -1
  73. package/dist/cdn/chunks/{ParagraphEditor-DQn0HMfV.js → ParagraphEditor-Bd-GQXee.js} +15 -15
  74. package/dist/cdn/chunks/{ParagraphEditor-DQn0HMfV.js.map → ParagraphEditor-Bd-GQXee.js.map} +1 -1
  75. package/dist/cdn/chunks/{RestoreVersionDialog-BdjOL8Oy.js → RestoreVersionDialog-2X9RpM9A.js} +4 -4
  76. package/dist/cdn/chunks/{RestoreVersionDialog-BdjOL8Oy.js.map → RestoreVersionDialog-2X9RpM9A.js.map} +1 -1
  77. package/dist/cdn/chunks/{RichTextEditorContent-Drzwgh0J.js → RichTextEditorContent-D_rb0rmU.js} +8 -8
  78. package/dist/cdn/chunks/{RichTextEditorContent-Drzwgh0J.js.map → RichTextEditorContent-D_rb0rmU.js.map} +1 -1
  79. package/dist/cdn/chunks/{SaveBlockDialog-B3rbmXSM.js → SaveBlockDialog-CufdTomT.js} +15 -15
  80. package/dist/cdn/chunks/{SaveBlockDialog-B3rbmXSM.js.map → SaveBlockDialog-CufdTomT.js.map} +1 -1
  81. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CkUXlnd2.js → SavedBlocksBrowserModal-CqpaNsk7.js} +8 -8
  82. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CkUXlnd2.js.map → SavedBlocksBrowserModal-CqpaNsk7.js.map} +1 -1
  83. package/dist/cdn/chunks/{SavedBlocksPanels-BPi3PZKP.js → SavedBlocksPanels-DpxYxddo.js} +2 -2
  84. package/dist/cdn/chunks/{SavedBlocksPanels-BPi3PZKP.js.map → SavedBlocksPanels-DpxYxddo.js.map} +1 -1
  85. package/dist/cdn/chunks/{SavedBlocksPickBar-BvB9A5W2.js → SavedBlocksPickBar-Drpoav1B.js} +4 -4
  86. package/dist/cdn/chunks/{SavedBlocksPickBar-BvB9A5W2.js.map → SavedBlocksPickBar-Drpoav1B.js.map} +1 -1
  87. package/dist/cdn/chunks/{TemplateScoringPanel-BBCyLnOi.js → TemplateScoringPanel-DBjUNULq.js} +5 -5
  88. package/dist/cdn/chunks/{TemplateScoringPanel-BBCyLnOi.js.map → TemplateScoringPanel-DBjUNULq.js.map} +1 -1
  89. package/dist/cdn/chunks/{TestEmailModal-DAGTsBqi.js → TestEmailModal-BTNlSW6f.js} +10 -10
  90. package/dist/cdn/chunks/{TestEmailModal-DAGTsBqi.js.map → TestEmailModal-BTNlSW6f.js.map} +1 -1
  91. package/dist/cdn/chunks/{TestEmailPanel-BfenVvfx.js → TestEmailPanel-D0A9Zgxr.js} +2 -2
  92. package/dist/cdn/chunks/{TestEmailPanel-BfenVvfx.js.map → TestEmailPanel-D0A9Zgxr.js.map} +1 -1
  93. package/dist/cdn/chunks/{TitleEditor-oQ4gr6wS.js → TitleEditor-CrnuIq62.js} +9 -9
  94. package/dist/cdn/chunks/{TitleEditor-oQ4gr6wS.js.map → TitleEditor-CrnuIq62.js.map} +1 -1
  95. package/dist/cdn/chunks/{TplModal-DxOMcVwp.js → TplModal-DYXrTz42.js} +5 -5
  96. package/dist/cdn/chunks/{TplModal-DxOMcVwp.js.map → TplModal-DYXrTz42.js.map} +1 -1
  97. package/dist/cdn/chunks/{VersionHistoryMenu-BfVUvWHT.js → VersionHistoryMenu-bDGnE4hb.js} +4 -4
  98. package/dist/cdn/chunks/VersionHistoryMenu-bDGnE4hb.js.map +1 -0
  99. package/dist/cdn/chunks/{VersionHistoryPanels-NpDb641L.js → VersionHistoryPanels-82P0Q0HM.js} +2 -2
  100. package/dist/cdn/chunks/{VersionHistoryPanels-NpDb641L.js.map → VersionHistoryPanels-82P0Q0HM.js.map} +1 -1
  101. package/dist/cdn/chunks/{VersionPreviewBanner-Cpgt4xHc.js → VersionPreviewBanner-BJiwKkVC.js} +3 -3
  102. package/dist/cdn/chunks/{VersionPreviewBanner-Cpgt4xHc.js.map → VersionPreviewBanner-BJiwKkVC.js.map} +1 -1
  103. package/dist/cdn/chunks/{blockTypeIcons-t9vvaiuH.js → blockTypeIcons-CNjJSFun.js} +2 -2
  104. package/dist/cdn/chunks/{blockTypeIcons-t9vvaiuH.js.map → blockTypeIcons-CNjJSFun.js.map} +1 -1
  105. package/dist/cdn/chunks/{ca-CNRWAMHI.js → ca-Jx2CDwtn.js} +2 -6
  106. package/dist/cdn/chunks/ca-Jx2CDwtn.js.map +1 -0
  107. package/dist/cdn/chunks/{cloud-CullB76F.js → cloud-BLgCKP7Z.js} +452 -227
  108. package/dist/cdn/chunks/cloud-BLgCKP7Z.js.map +1 -0
  109. package/dist/cdn/chunks/createCloudRuntime-U-qCH-dq.js +385 -0
  110. package/dist/cdn/chunks/createCloudRuntime-U-qCH-dq.js.map +1 -0
  111. package/dist/cdn/chunks/{de-DFYCT4QU.js → de-Ck0pBGHu.js} +2 -6
  112. package/dist/cdn/chunks/de-Ck0pBGHu.js.map +1 -0
  113. package/dist/cdn/chunks/{src-CaXeO-gG.js → editor-modal-MXgtarMl.js} +1474 -1935
  114. package/dist/cdn/chunks/editor-modal-MXgtarMl.js.map +1 -0
  115. package/dist/cdn/chunks/en-C9U7N77n.js +2 -0
  116. package/dist/cdn/chunks/{es-OgkdMZGX.js → es-lagTvUfX.js} +2 -6
  117. package/dist/cdn/chunks/es-lagTvUfX.js.map +1 -0
  118. package/dist/cdn/chunks/{extensions-BpXY7jO5.js → extensions-B8_jnIkD.js} +3 -3
  119. package/dist/cdn/chunks/{extensions-BpXY7jO5.js.map → extensions-B8_jnIkD.js.map} +1 -1
  120. package/dist/cdn/chunks/{fr-Dswns199.js → fr-C4hVl5Lk.js} +2 -6
  121. package/dist/cdn/chunks/fr-C4hVl5Lk.js.map +1 -0
  122. package/dist/cdn/chunks/{icons-BLxcQUck.js → icons-BUlqGSgd.js} +24 -24
  123. package/dist/cdn/chunks/{icons-BLxcQUck.js.map → icons-BUlqGSgd.js.map} +1 -1
  124. package/dist/cdn/chunks/{keys-DQp8x7Nx.js → keys-DBFhDFng.js} +4 -4
  125. package/dist/cdn/chunks/{keys-DQp8x7Nx.js.map → keys-DBFhDFng.js.map} +1 -1
  126. package/dist/cdn/chunks/{nl-CbcPJlrL.js → nl-CReD7Apd.js} +2 -6
  127. package/dist/cdn/chunks/nl-CReD7Apd.js.map +1 -0
  128. package/dist/cdn/chunks/{pt-BR-BibOQm-o.js → pt-BR-BRA0-vGP.js} +2 -6
  129. package/dist/cdn/chunks/pt-BR-BRA0-vGP.js.map +1 -0
  130. package/dist/cdn/chunks/{src-BC-eolWY.js → src-Ozknnj-v.js} +2 -2
  131. package/dist/cdn/chunks/{src-BC-eolWY.js.map → src-Ozknnj-v.js.map} +1 -1
  132. package/dist/cdn/chunks/{useCloudI18n-MxgHWrV6.js → useCloudI18n-DSWSGj-A.js} +2 -2
  133. package/dist/cdn/chunks/{useCloudI18n-MxgHWrV6.js.map → useCloudI18n-DSWSGj-A.js.map} +1 -1
  134. package/dist/cdn/chunks/{useEditorCore-D4MytYB9.js → useEditorCore-Cs7rYVBo.js} +488 -406
  135. package/dist/cdn/chunks/useEditorCore-Cs7rYVBo.js.map +1 -0
  136. package/dist/cdn/chunks/{useEditorRoot-CteADR3y.js → useEditorRoot-B0zW2nT4.js} +2 -2
  137. package/dist/cdn/chunks/{useEditorRoot-CteADR3y.js.map → useEditorRoot-B0zW2nT4.js.map} +1 -1
  138. package/dist/cdn/chunks/{useI18n-Ct1VIFcf.js → useI18n-Dlo7R9RA.js} +2 -2
  139. package/dist/cdn/chunks/{useI18n-Ct1VIFcf.js.map → useI18n-Dlo7R9RA.js.map} +1 -1
  140. package/dist/cdn/chunks/{useMergeTag-CSocWpxV.js → useMergeTag-BYAifvh8.js} +3 -3
  141. package/dist/cdn/chunks/{useMergeTag-CSocWpxV.js.map → useMergeTag-BYAifvh8.js.map} +1 -1
  142. package/dist/cdn/chunks/{usePopoverPosition-BxVWE5_0.js → usePopoverPosition-ElP3ABaV.js} +2 -2
  143. package/dist/cdn/chunks/{usePopoverPosition-BxVWE5_0.js.map → usePopoverPosition-ElP3ABaV.js.map} +1 -1
  144. package/dist/cdn/chunks/{useScrollToBlock-Cz3fpgTK.js → useScrollToBlock-nTbWkgaU.js} +2 -2
  145. package/dist/cdn/chunks/{useScrollToBlock-Cz3fpgTK.js.map → useScrollToBlock-nTbWkgaU.js.map} +1 -1
  146. package/dist/cdn/editor.css +1 -1
  147. package/dist/cdn/editor.js +1094 -1005
  148. package/dist/cdn/editor.js.map +1 -1
  149. package/dist/{check-CY-Ec6FV.js → check-DWtkBzBU.js} +1 -1
  150. package/dist/{chevron-down-BghbWA9p.js → chevron-down-C-Fjxcqj.js} +1 -1
  151. package/dist/chevron-right-SOkn2d4P.js +11 -0
  152. package/dist/{chevron-up-n3qFAPS3.js → chevron-up-lntU1ypp.js} +1 -1
  153. package/dist/{circle-alert-L5uGGFRP.js → circle-alert-CjzUTwy3.js} +1 -1
  154. package/dist/{clock-Dgnwp18n.js → clock-pB2QKPsJ.js} +1 -1
  155. package/dist/{cloud-B1c4XIsn.js → cloud-DdidMW6f.js} +445 -200
  156. package/dist/copy-CId1E038.js +19 -0
  157. package/dist/createCloudRuntime-x5WZm3p8.js +383 -0
  158. package/dist/{createLucideIcon-05lB8iWe.js → createLucideIcon-Cwf_nTzE.js} +6 -6
  159. package/dist/de-Ck0pBGHu.js +83 -0
  160. package/dist/{dist-BxFbxpgW.js → dist-BVqAYoRB.js} +125 -125
  161. package/dist/dist-D8i1ixHK.js +177 -0
  162. package/dist/dist-DBirAJIs.js +410 -0
  163. package/dist/editor-modal-B_LaQf0s.js +5998 -0
  164. package/dist/en-DcmpWV53.js +2 -0
  165. package/dist/es-lagTvUfX.js +83 -0
  166. package/dist/{extensions-Bawm4BOM.js → extensions-CHOBZRab.js} +42 -42
  167. package/dist/eye-BuGtFUoJ.js +16 -0
  168. package/dist/fr-C4hVl5Lk.js +83 -0
  169. package/dist/{image-up-ovhjl9u9.js → image-up-gH4JEpU5.js} +1 -1
  170. package/dist/index.d.ts +90 -11
  171. package/dist/{info-c3KI927I.js → info-BQ60P82u.js} +1 -1
  172. package/dist/{keys-C3P1yxnr.js → keys-DQA2i1k1.js} +4 -4
  173. package/dist/link-3R8it3J7.js +14 -0
  174. package/dist/list-Ccdgj46T.js +33 -0
  175. package/dist/{loader-circle-B2Y8xZQb.js → loader-circle-B_tAD4k6.js} +1 -1
  176. package/dist/{message-circle-B7K-naUa.js → message-circle-P-KSc6V0.js} +1 -1
  177. package/dist/nl-CReD7Apd.js +83 -0
  178. package/dist/{pencil-BhWTFcp4.js → pencil-9ZiwqS4r.js} +1 -1
  179. package/dist/plus-BwJEzCaO.js +14 -0
  180. package/dist/pt-BR-BRA0-vGP.js +83 -0
  181. package/dist/{refresh-cw-BqUR5vgO.js → refresh-cw-DEgfb2FK.js} +2 -14
  182. package/dist/{runtime-dom.esm-bundler-BuG03jBM.js → runtime-dom.esm-bundler-PnoZU512.js} +106 -106
  183. package/dist/search-DqQ8Li5E.js +16 -0
  184. package/dist/{send-D1vvuW79.js → send-CE6uvqop.js} +1 -1
  185. package/dist/{shield-check-DjK54PnW.js → shield-check-DhD1Z3rd.js} +1 -1
  186. package/dist/{sparkles-DNdS9V_3.js → sparkles-R0ZQHa6F.js} +1 -1
  187. package/dist/style.css +1 -1
  188. package/dist/templatical-editor.js +2491 -2408
  189. package/dist/{text-align-start-Bcmo_VUY.js → text-align-start-DSux2UNn.js} +1 -1
  190. package/dist/{trash-C9bMXvw4.js → trash-Cf_SqsER.js} +1 -1
  191. package/dist/{triangle-alert-Bn8Bd2Yv.js → triangle-alert-C6tGa6jw.js} +1 -1
  192. package/dist/{upload-DKgg1gno.js → upload-DusKjpVr.js} +1 -1
  193. package/dist/{useAliveFlag-PVmp95MT.js → useAliveFlag-oyByIcjy.js} +1 -1
  194. package/dist/{useCloudI18n-BKoiYsWZ.js → useCloudI18n-BLyh_e2T.js} +2 -2
  195. package/dist/{useEditorCore-CYGvurZa.js → useEditorCore-DhlKOYwe.js} +1552 -1486
  196. package/dist/{useEditorRoot-DkRGTQRs.js → useEditorRoot-ds57-l6F.js} +2 -2
  197. package/dist/{useI18n-CL6RfPzK.js → useI18n-BbdxxpOE.js} +2 -2
  198. package/dist/{useMergeTag-C9GEpljB.js → useMergeTag-DlvOBW_B.js} +3 -3
  199. package/dist/{usePopoverPosition-CWxaIWd3.js → usePopoverPosition-CprM5p-c.js} +2 -2
  200. package/dist/{useScrollToBlock-oUx1HIZ2.js → useScrollToBlock-BTFw0b9O.js} +3 -3
  201. package/dist/{vue.runtime.esm-bundler-D9JUcKrV.js → vue.runtime.esm-bundler-DShF3P6k.js} +1192 -1181
  202. package/dist/{x-BPKoRPTG.js → x-D_-42Ukq.js} +1 -1
  203. package/package.json +9 -12
  204. package/dist/CloudHeaderExtras-CRUQvgSV.js +0 -59
  205. package/dist/SavedBlocksBrowserModal-BORqqASb.js +0 -322
  206. package/dist/TitleEditor-pYEUX6lR.js +0 -198
  207. package/dist/TplModal-DRx4ytx8.js +0 -51
  208. package/dist/cdn/chunks/VersionHistoryMenu-BfVUvWHT.js.map +0 -1
  209. package/dist/cdn/chunks/ca-CNRWAMHI.js.map +0 -1
  210. package/dist/cdn/chunks/cloud-CullB76F.js.map +0 -1
  211. package/dist/cdn/chunks/createCloudRuntime-Cx2JpUYU.js +0 -443
  212. package/dist/cdn/chunks/createCloudRuntime-Cx2JpUYU.js.map +0 -1
  213. package/dist/cdn/chunks/de-DFYCT4QU.js.map +0 -1
  214. package/dist/cdn/chunks/en-rGHphLWo.js +0 -2
  215. package/dist/cdn/chunks/es-OgkdMZGX.js.map +0 -1
  216. package/dist/cdn/chunks/fr-Dswns199.js.map +0 -1
  217. package/dist/cdn/chunks/nl-CbcPJlrL.js.map +0 -1
  218. package/dist/cdn/chunks/pt-BR-BibOQm-o.js.map +0 -1
  219. package/dist/cdn/chunks/src-CaXeO-gG.js.map +0 -1
  220. package/dist/cdn/chunks/useEditorCore-D4MytYB9.js.map +0 -1
  221. package/dist/createCloudRuntime-PevFSH74.js +0 -441
  222. package/dist/dist-dNiknO7j.js +0 -251
  223. package/dist/dist-heatwAdo.js +0 -150
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./editor-modal-B_LaQf0s.js";
2
+ export { e as default };
@@ -0,0 +1,83 @@
1
+ //#region ../media-library/src/i18n/locales/es.ts
2
+ var e = { mediaLibrary: {
3
+ title: "Biblioteca multimedia",
4
+ searchPlaceholder: "Buscar archivos...",
5
+ allFiles: "Todos los archivos",
6
+ filterAll: "Todos los tipos",
7
+ filterImages: "Imágenes",
8
+ filterDocuments: "Documentos",
9
+ filterVideos: "Vídeos",
10
+ filterAudio: "Audio",
11
+ newFolder: "Nueva carpeta",
12
+ folderName: "Nombre de la carpeta",
13
+ noFiles: "No se han encontrado archivos",
14
+ noSearchResults: "Ningún archivo coincide con tu búsqueda",
15
+ dropOrClick: "Suelta los archivos aquí o haz clic para subirlos",
16
+ acceptedFormats: "Imágenes, PDF, vídeo, audio y documentos (máx. 10 MB)",
17
+ uploading: "Subiendo...",
18
+ uploadingProgress: "Subiendo {current} de {total}...",
19
+ selectImage: "Seleccionar imagen",
20
+ selectFile: "Seleccionar archivo",
21
+ deleteSelected: "Eliminar",
22
+ copyUrl: "Copiar URL",
23
+ copied: "¡Copiada!",
24
+ browseMedia: "Explorar la biblioteca multimedia",
25
+ renameFolder: "Cambiar nombre de la carpeta",
26
+ addSubfolder: "Añadir subcarpeta",
27
+ subfolderName: "Nombre de la subcarpeta",
28
+ sortNewest: "Más recientes primero",
29
+ sortOldest: "Más antiguos primero",
30
+ sortNameAsc: "Nombre de A a Z",
31
+ sortNameDesc: "Nombre de Z a A",
32
+ sortSizeAsc: "Más pequeños primero",
33
+ sortSizeDesc: "Más grandes primero",
34
+ moveSelected: "Mover",
35
+ moveToRoot: "Todos los archivos",
36
+ currentFolder: "(actual)",
37
+ confirmDelete: "¿Confirmar?",
38
+ renameFile: "Cambiar nombre",
39
+ editFile: "Editar archivo",
40
+ fileName: "Nombre del archivo",
41
+ altText: "Texto alternativo",
42
+ altTextPlaceholder: "Describe esta imagen para mejorar la accesibilidad",
43
+ saveChanges: "Guardar",
44
+ cancel: "Cancelar",
45
+ frequentlyUsed: "Usados frecuentemente",
46
+ deleteWarningTitle: "Eliminar archivo",
47
+ deleteWarningMessage: "¿Estás seguro? Esta acción es irreversible.",
48
+ deleteWarningUsageNote: "Los siguientes archivos se utilizan en plantillas. Si los eliminas, es posible que esas plantillas dejen de funcionar correctamente.",
49
+ deleteAnyway: "Eliminar",
50
+ usedInTemplates: "Usado en {count} plantilla(s)",
51
+ viewGrid: "Vista de cuadrícula",
52
+ viewList: "Vista de lista",
53
+ showFolders: "Mostrar carpetas",
54
+ hideFolders: "Ocultar carpetas",
55
+ importFromUrl: "Importar desde URL",
56
+ importUrlPlaceholder: "https://example.com/image.jpg",
57
+ import: "Importar",
58
+ importing: "Importando...",
59
+ importError: "No se ha podido importar desde la URL",
60
+ replaceFile: "Reemplazar archivo",
61
+ replaceWarningTitle: "Reemplazar archivo",
62
+ replaceWarningMessage: "Estás a punto de reemplazar este archivo. El archivo de reemplazo debe tener la misma extensión ({extension}).",
63
+ replaceWarningUsageNote: "Este archivo se utiliza en {count} plantilla(s). Al reemplazarlo, se actualizarán todas las referencias.",
64
+ replaceSelectFile: "Seleccionar archivo de reemplazo",
65
+ replace: "Reemplazar",
66
+ replacing: "Reemplazando...",
67
+ replaceError: "No se ha podido reemplazar el archivo",
68
+ saving: "Guardando...",
69
+ cropAspectRatio: "Relación de aspecto",
70
+ cropFree: "Libre",
71
+ cropSquare: "1:1",
72
+ cropLandscape43: "4:3",
73
+ cropLandscape169: "16:9",
74
+ cropOriginal: "Original",
75
+ cropMaxWidth: "Anchura máxima",
76
+ cropMaxHeight: "Altura máxima",
77
+ cropOutputSize: "Tamaño de salida",
78
+ cropPixels: "px",
79
+ cropOptional: "(opcional)",
80
+ storageTooltip: "{used} de {total} usados ({remaining} restantes)"
81
+ } };
82
+ //#endregion
83
+ export { e as default };
@@ -1,11 +1,11 @@
1
- import { B as e, Dt as t, Ot as n, T as r, X as i, c as a, d as o, k as s, kt as c, l, rt as u, s as d, u as f, v as p, z as m } from "./vue.runtime.esm-bundler-D9JUcKrV.js";
2
- import { a as h, c as g, s as _ } from "./runtime-dom.esm-bundler-BuG03jBM.js";
1
+ import { A as e, At as t, B as n, E as r, V as i, Z as a, at as o, c as s, d as c, jt as l, kt as u, l as d, s as f, u as p, v as m } from "./vue.runtime.esm-bundler-DShF3P6k.js";
2
+ import { a as h, c as g, s as _ } from "./runtime-dom.esm-bundler-PnoZU512.js";
3
3
  import { F as v, O as y, k as b, o as x } from "./dist-tGkjkX-v.js";
4
- import { t as S } from "./useI18n-CL6RfPzK.js";
5
- import { t as C } from "./useMergeTag-C9GEpljB.js";
4
+ import { t as S } from "./useI18n-BbdxxpOE.js";
5
+ import { t as C } from "./useMergeTag-DlvOBW_B.js";
6
6
  import { gn as w, m as T, s as E, u as D, v as O } from "./dist-DL9334yz.js";
7
- import { i as k, r as A, t as j } from "./MergeTagSuggestion-CoCuzEmW.js";
8
- import { n as M, t as N } from "./dist-BxFbxpgW.js";
7
+ import { i as k, r as A, t as j } from "./MergeTagSuggestion-DKoLEeoj.js";
8
+ import { n as M, t as N } from "./dist-BVqAYoRB.js";
9
9
  //#region src/extensions/FontSize.ts
10
10
  var P = E.create({
11
11
  name: "fontSize",
@@ -91,7 +91,7 @@ var P = E.create({
91
91
  "aria-label",
92
92
  "data-tooltip",
93
93
  "onKeydown"
94
- ], z = ["aria-label", "onKeydown"], B = ["aria-label"], V = /* @__PURE__ */ p({
94
+ ], z = ["aria-label", "onKeydown"], B = ["aria-label"], V = /* @__PURE__ */ m({
95
95
  __name: "LogicMergeTagNodeView",
96
96
  props: {
97
97
  node: {},
@@ -100,8 +100,8 @@ var P = E.create({
100
100
  deleteNode: { type: Function },
101
101
  updateAttributes: { type: Function }
102
102
  },
103
- setup(p) {
104
- let b = p, { syntax: x } = C(), { t: w } = S(), T = d(() => v(b.node.attrs.value, x)), E = d(() => y(b.node.attrs.value, x)), D = i(!1), O = i(""), k = i(null), A = !1;
103
+ setup(m) {
104
+ let b = m, { syntax: x } = C(), { t: w } = S(), T = f(() => v(b.node.attrs.value, x)), E = f(() => y(b.node.attrs.value, x)), D = a(!1), O = a(""), k = a(null), A = !1;
105
105
  function j() {
106
106
  O.value = b.node.attrs.value, A = !1, D.value = !0, r(() => {
107
107
  k.value?.focus(), k.value?.select();
@@ -123,45 +123,45 @@ var P = E.create({
123
123
  function P(e) {
124
124
  e.key === "Enter" ? (e.preventDefault(), M()) : e.key === "Escape" && (D.value = !1);
125
125
  }
126
- return (r, i) => (s(), l(u(N), {
126
+ return (r, a) => (e(), d(o(N), {
127
127
  as: "span",
128
- class: t(T.value ? "tpl-logic-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.8em] tpl:font-bold tpl:tracking-wide tpl:uppercase tpl:select-none" : ""),
129
- style: n(T.value ? "background-color: transparent; border: 1.5px solid color-mix(in srgb, var(--tpl-primary) 50%, transparent); color: var(--tpl-primary);" : ""),
128
+ class: u(T.value ? "tpl-logic-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.8em] tpl:font-bold tpl:tracking-wide tpl:uppercase tpl:select-none" : ""),
129
+ style: t(T.value ? "background-color: transparent; border: 1.5px solid color-mix(in srgb, var(--tpl-primary) 50%, transparent); color: var(--tpl-primary);" : ""),
130
130
  contenteditable: "false"
131
131
  }, {
132
- default: m(() => [D.value ? e((s(), o("input", {
132
+ default: n(() => [D.value ? i((e(), c("input", {
133
133
  key: 0,
134
134
  ref_key: "inputRef",
135
135
  ref: k,
136
- "onUpdate:modelValue": i[0] ||= (e) => O.value = e,
136
+ "onUpdate:modelValue": a[0] ||= (e) => O.value = e,
137
137
  type: "text",
138
138
  class: "tpl:w-40 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:normal-case tpl:outline-none tpl:text-[var(--tpl-primary)]",
139
139
  onBlur: M,
140
140
  onKeydown: P
141
- }, null, 544)), [[h, O.value]]) : T.value ? (s(), o("span", {
141
+ }, null, 544)), [[h, O.value]]) : T.value ? (e(), c("span", {
142
142
  key: 1,
143
143
  role: "button",
144
144
  tabindex: "0",
145
- "aria-label": u(w).mergeTag.editValue,
145
+ "aria-label": o(w).mergeTag.editValue,
146
146
  class: "tpl-tooltip tpl:cursor-pointer",
147
- "data-tooltip": p.node.attrs.value,
147
+ "data-tooltip": m.node.attrs.value,
148
148
  onClick: g(j, ["stop"]),
149
149
  onKeydown: [_(g(j, ["stop"]), ["enter"]), _(g(j, ["prevent", "stop"]), ["space"])]
150
- }, c(E.value), 41, R)) : (s(), o("span", {
150
+ }, l(E.value), 41, R)) : (e(), c("span", {
151
151
  key: 2,
152
152
  role: "button",
153
153
  tabindex: "0",
154
- "aria-label": u(w).mergeTag.editValue,
154
+ "aria-label": o(w).mergeTag.editValue,
155
155
  onClick: g(j, ["stop"]),
156
156
  onKeydown: [_(g(j, ["stop"]), ["enter"]), _(g(j, ["prevent", "stop"]), ["space"])]
157
- }, c(p.node.attrs.value), 41, z)), T.value ? (s(), o("button", {
157
+ }, l(m.node.attrs.value), 41, z)), T.value ? (e(), c("button", {
158
158
  key: 3,
159
159
  type: "button",
160
- "aria-label": u(w).mergeTag.deleteMergeTag,
160
+ "aria-label": o(w).mergeTag.deleteMergeTag,
161
161
  class: "tpl-merge-tag-delete tpl:flex tpl:size-5 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-full tpl:border-none tpl:bg-transparent tpl:p-0 tpl:opacity-60 tpl:transition-all tpl:hover:opacity-100 tpl:text-[var(--tpl-primary)]",
162
162
  contenteditable: "false",
163
- onClick: i[1] ||= g((...e) => p.deleteNode && p.deleteNode(...e), ["stop", "prevent"])
164
- }, [...i[2] ||= [a("svg", {
163
+ onClick: a[1] ||= g((...e) => m.deleteNode && m.deleteNode(...e), ["stop", "prevent"])
164
+ }, [...a[2] ||= [s("svg", {
165
165
  width: "10",
166
166
  height: "10",
167
167
  viewBox: "0 0 24 24",
@@ -169,17 +169,17 @@ var P = E.create({
169
169
  stroke: "currentColor",
170
170
  "stroke-width": "3",
171
171
  "aria-hidden": "true"
172
- }, [a("line", {
172
+ }, [s("line", {
173
173
  x1: "18",
174
174
  y1: "6",
175
175
  x2: "6",
176
176
  y2: "18"
177
- }), a("line", {
177
+ }), s("line", {
178
178
  x1: "6",
179
179
  y1: "6",
180
180
  x2: "18",
181
181
  y2: "18"
182
- })], -1)]], 8, B)) : f("", !0)]),
182
+ })], -1)]], 8, B)) : p("", !0)]),
183
183
  _: 1
184
184
  }, 8, ["class", "style"]));
185
185
  }
@@ -281,7 +281,7 @@ var W = T.create({
281
281
  "aria-label",
282
282
  "data-tooltip",
283
283
  "onKeydown"
284
- ], K = ["aria-label"], q = /* @__PURE__ */ p({
284
+ ], K = ["aria-label"], q = /* @__PURE__ */ m({
285
285
  __name: "MergeTagNodeView",
286
286
  props: {
287
287
  node: {},
@@ -289,53 +289,53 @@ var W = T.create({
289
289
  updateAttributes: { type: Function }
290
290
  },
291
291
  setup(t) {
292
- let n = t, { getMergeTagLabel: f } = C(), { t: p } = S(), v = d(() => f(n.node.attrs.value)), y = i(!1), b = i(""), x = i(null);
292
+ let u = t, { getMergeTagLabel: p } = C(), { t: m } = S(), v = f(() => p(u.node.attrs.value)), y = a(!1), b = a(""), x = a(null);
293
293
  function w() {
294
- b.value = n.node.attrs.value, y.value = !0, r(() => {
294
+ b.value = u.node.attrs.value, y.value = !0, r(() => {
295
295
  x.value?.focus(), x.value?.select();
296
296
  });
297
297
  }
298
298
  function T() {
299
299
  let e = b.value.trim();
300
- e && e !== n.node.attrs.value && n.updateAttributes({
300
+ e && e !== u.node.attrs.value && u.updateAttributes({
301
301
  value: e,
302
- label: f(e)
302
+ label: p(e)
303
303
  }), y.value = !1;
304
304
  }
305
305
  function E(e) {
306
306
  e.key === "Enter" ? (e.preventDefault(), T()) : e.key === "Escape" && (y.value = !1);
307
307
  }
308
- return (n, r) => (s(), l(u(N), {
308
+ return (r, a) => (e(), d(o(N), {
309
309
  as: "span",
310
310
  class: "tpl-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.9em] tpl:font-medium tpl:select-none tpl:text-[var(--tpl-primary)]",
311
311
  style: { "background-color": "color-mix(in srgb, var(--tpl-primary) 20%, transparent)" },
312
312
  contenteditable: "false"
313
313
  }, {
314
- default: m(() => [y.value ? e((s(), o("input", {
314
+ default: n(() => [y.value ? i((e(), c("input", {
315
315
  key: 0,
316
316
  ref_key: "inputRef",
317
317
  ref: x,
318
- "onUpdate:modelValue": r[0] ||= (e) => b.value = e,
318
+ "onUpdate:modelValue": a[0] ||= (e) => b.value = e,
319
319
  type: "text",
320
320
  class: "tpl:w-32 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:outline-none tpl:text-[var(--tpl-primary)]",
321
321
  onBlur: T,
322
322
  onKeydown: E
323
- }, null, 544)), [[h, b.value]]) : (s(), o("span", {
323
+ }, null, 544)), [[h, b.value]]) : (e(), c("span", {
324
324
  key: 1,
325
325
  role: "button",
326
326
  tabindex: "0",
327
- "aria-label": u(p).mergeTag.editValue,
327
+ "aria-label": o(m).mergeTag.editValue,
328
328
  class: "tpl-tooltip tpl:cursor-pointer",
329
329
  "data-tooltip": t.node.attrs.value,
330
330
  onClick: g(w, ["stop"]),
331
331
  onKeydown: [_(g(w, ["stop"]), ["enter"]), _(g(w, ["prevent", "stop"]), ["space"])]
332
- }, c(v.value), 41, G)), a("button", {
332
+ }, l(v.value), 41, G)), s("button", {
333
333
  type: "button",
334
- "aria-label": u(p).mergeTag.deleteMergeTag,
334
+ "aria-label": o(m).mergeTag.deleteMergeTag,
335
335
  class: "tpl-merge-tag-delete tpl:flex tpl:size-5 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-full tpl:border-none tpl:bg-transparent tpl:p-0 tpl:opacity-60 tpl:transition-all tpl:hover:opacity-100 tpl:text-[var(--tpl-primary)]",
336
336
  contenteditable: "false",
337
- onClick: r[1] ||= g((...e) => t.deleteNode && t.deleteNode(...e), ["stop", "prevent"])
338
- }, [...r[2] ||= [a("svg", {
337
+ onClick: a[1] ||= g((...e) => t.deleteNode && t.deleteNode(...e), ["stop", "prevent"])
338
+ }, [...a[2] ||= [s("svg", {
339
339
  width: "10",
340
340
  height: "10",
341
341
  viewBox: "0 0 24 24",
@@ -343,12 +343,12 @@ var W = T.create({
343
343
  stroke: "currentColor",
344
344
  "stroke-width": "3",
345
345
  "aria-hidden": "true"
346
- }, [a("line", {
346
+ }, [s("line", {
347
347
  x1: "18",
348
348
  y1: "6",
349
349
  x2: "6",
350
350
  y2: "18"
351
- }), a("line", {
351
+ }), s("line", {
352
352
  x1: "6",
353
353
  y1: "6",
354
354
  x2: "18",
@@ -0,0 +1,16 @@
1
+ import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
2
+ var t = e({
3
+ name: "eye",
4
+ size: 24,
5
+ node: [["path", {
6
+ d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
7
+ key: "1nclc0"
8
+ }], ["circle", {
9
+ cx: "12",
10
+ cy: "12",
11
+ r: "3",
12
+ key: "1v7zrd"
13
+ }]]
14
+ });
15
+ //#endregion
16
+ export { t };
@@ -0,0 +1,83 @@
1
+ //#region ../media-library/src/i18n/locales/fr.ts
2
+ var e = { mediaLibrary: {
3
+ title: "Médiathèque",
4
+ searchPlaceholder: "Rechercher des fichiers...",
5
+ allFiles: "Tous les fichiers",
6
+ filterAll: "Tous les types",
7
+ filterImages: "Images",
8
+ filterDocuments: "Documents",
9
+ filterVideos: "Vidéos",
10
+ filterAudio: "Audio",
11
+ newFolder: "Nouveau dossier",
12
+ folderName: "Nom du dossier",
13
+ noFiles: "Aucun fichier trouvé",
14
+ noSearchResults: "Aucun fichier ne correspond à votre recherche",
15
+ dropOrClick: "Déposez des fichiers ici ou cliquez pour téléverser",
16
+ acceptedFormats: "Images, PDF, vidéo, audio, documents (max 10 Mo)",
17
+ uploading: "Téléversement...",
18
+ uploadingProgress: "Téléversement de {current} sur {total}...",
19
+ selectImage: "Sélectionner l'image",
20
+ selectFile: "Sélectionner le fichier",
21
+ deleteSelected: "Supprimer",
22
+ copyUrl: "Copier l'URL",
23
+ copied: "Copié !",
24
+ browseMedia: "Parcourir la médiathèque",
25
+ renameFolder: "Renommer le dossier",
26
+ addSubfolder: "Ajouter un sous-dossier",
27
+ subfolderName: "Nom du sous-dossier",
28
+ sortNewest: "Plus récents d'abord",
29
+ sortOldest: "Plus anciens d'abord",
30
+ sortNameAsc: "Nom A-Z",
31
+ sortNameDesc: "Nom Z-A",
32
+ sortSizeAsc: "Plus petits d'abord",
33
+ sortSizeDesc: "Plus grands d'abord",
34
+ moveSelected: "Déplacer",
35
+ moveToRoot: "Tous les fichiers",
36
+ currentFolder: "(actuel)",
37
+ confirmDelete: "Confirmer ?",
38
+ renameFile: "Renommer",
39
+ editFile: "Modifier le fichier",
40
+ fileName: "Nom de fichier",
41
+ altText: "Texte alternatif",
42
+ altTextPlaceholder: "Décrivez cette image pour l'accessibilité",
43
+ saveChanges: "Enregistrer",
44
+ cancel: "Annuler",
45
+ frequentlyUsed: "Fréquemment utilisés",
46
+ deleteWarningTitle: "Supprimer le fichier",
47
+ deleteWarningMessage: "Êtes-vous sûr ? Cette action est irréversible.",
48
+ deleteWarningUsageNote: "Les fichiers suivants sont utilisés dans des modèles. Les supprimer peut casser ces modèles.",
49
+ deleteAnyway: "Supprimer",
50
+ usedInTemplates: "Utilisé dans {count} modèle(s)",
51
+ viewGrid: "Vue en grille",
52
+ viewList: "Vue en liste",
53
+ showFolders: "Afficher les dossiers",
54
+ hideFolders: "Masquer les dossiers",
55
+ importFromUrl: "Importer depuis une URL",
56
+ importUrlPlaceholder: "https://example.com/image.jpg",
57
+ import: "Importer",
58
+ importing: "Importation...",
59
+ importError: "Échec de l'importation depuis l'URL",
60
+ replaceFile: "Remplacer le fichier",
61
+ replaceWarningTitle: "Remplacer le fichier",
62
+ replaceWarningMessage: "Vous êtes sur le point de remplacer ce fichier. Le remplacement doit avoir la même extension ({extension}).",
63
+ replaceWarningUsageNote: "Ce fichier est utilisé dans {count} modèle(s). Le remplacer mettra à jour toutes les références.",
64
+ replaceSelectFile: "Sélectionner le fichier de remplacement",
65
+ replace: "Remplacer",
66
+ replacing: "Remplacement...",
67
+ replaceError: "Échec du remplacement du fichier",
68
+ saving: "Enregistrement...",
69
+ cropAspectRatio: "Proportions",
70
+ cropFree: "Libre",
71
+ cropSquare: "1:1",
72
+ cropLandscape43: "4:3",
73
+ cropLandscape169: "16:9",
74
+ cropOriginal: "Originales",
75
+ cropMaxWidth: "Largeur max",
76
+ cropMaxHeight: "Hauteur max",
77
+ cropOutputSize: "Taille de sortie",
78
+ cropPixels: "px",
79
+ cropOptional: "(facultatif)",
80
+ storageTooltip: "{used} sur {total} utilisés ({remaining} restants)"
81
+ } };
82
+ //#endregion
83
+ export { e as default };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-05lB8iWe.js";
1
+ import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
2
2
  var t = e({
3
3
  name: "image-up",
4
4
  size: 24,
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ import { CommentEventMeta } from '@templatical/types';
6
6
  import { CommentsOptions } from '@templatical/types';
7
7
  import type { CommentsProvider } from '@templatical/types';
8
8
  import { ComputedRef } from 'vue';
9
+ import { createLocalStorageMediaProvider } from '@templatical/core';
9
10
  import { createLocalStorageSavedBlocksProvider } from '@templatical/core';
10
11
  import type { CustomBlock } from '@templatical/types';
11
12
  import { CustomBlockDefinition } from '@templatical/types';
@@ -14,13 +15,16 @@ import { DisplayConditionsConfig } from '@templatical/types';
14
15
  import type { EditorUser } from '@templatical/types';
15
16
  import { FontsConfig } from '@templatical/types';
16
17
  import { LintOptions } from '@templatical/quality';
18
+ import { LocalStorageMediaProviderOptions } from '@templatical/core';
17
19
  import { LocalStorageSavedBlocksOptions } from '@templatical/core';
18
20
  import { LogicPair } from '@templatical/types';
19
21
  import { LogicTag } from '@templatical/types';
20
22
  import { LogicTagsConfig } from '@templatical/types';
21
23
  import type { McpConfig } from '@templatical/types';
22
- import type { MediaItem } from '@templatical/media-library';
23
- import type { MediaRequestContext } from '@templatical/media-library';
24
+ import { MediaAsset } from '@templatical/types';
25
+ import { MediaOptions } from '@templatical/types';
26
+ import { MediaProvider as MediaProvider_2 } from '@templatical/types';
27
+ import { MediaRequestContext } from '@templatical/types';
24
28
  import type { MediaResult } from '@templatical/types';
25
29
  import { MergeTagsConfig } from '@templatical/types';
26
30
  import { Ref } from 'vue';
@@ -56,6 +60,8 @@ export { CommentEventMeta }
56
60
 
57
61
  export { CommentsOptions }
58
62
 
63
+ export { createLocalStorageMediaProvider }
64
+
59
65
  export { createLocalStorageSavedBlocksProvider }
60
66
 
61
67
  export { CustomBlockDefinition }
@@ -320,13 +326,14 @@ export declare function init(config: TemplaticalEditorConfig): Promise<Templatic
320
326
  * server-side for test email, sends and exports, so a supplied renderer
321
327
  * would change only what you preview and export, never what Cloud delivers.
322
328
  * `resolvePreview` is the same key with the same type on both entry points,
323
- * so upgrading an OSS integration is a deletion. `savedBlocks` and
324
- * `testEmail` are the same key on both entry points too, but Cloud widens
329
+ * so upgrading an OSS integration is a deletion. `savedBlocks`, `testEmail`
330
+ * and `media` are the same key on both entry points too, but Cloud widens
325
331
  * each type to also accept an events-only shape — `boolean |
326
- * SavedBlocksOptions | SavedBlocksProvider` and `Pick<TestEmailOptions,
327
- * "onSent" | "defaultRecipient"> | TestEmailProvider` — so upgrading is
328
- * still a deletion: drop the key to adopt Cloud's store or sender, or leave
329
- * it exactly as it is to keep your own.
332
+ * SavedBlocksOptions | SavedBlocksProvider`, `Pick<TestEmailOptions,
333
+ * "onSent" | "defaultRecipient"> | TestEmailProvider`, and
334
+ * `false | MediaOptions | MediaProvider` so upgrading is still a
335
+ * deletion: drop the key to adopt Cloud's store or sender, or leave it
336
+ * exactly as it is to keep your own.
330
337
  *
331
338
  * `user` is not a key either: Cloud signs comment writes against the auth token's
332
339
  * `user` claim, so it fills `init({ user })` from there rather than letting a
@@ -340,6 +347,8 @@ export declare function isCloudLocaleSupported(locale: string): boolean;
340
347
  /** Check if a locale has OSS translations (matched by exact locale, then base). */
341
348
  export declare function isLocaleSupported(locale: string): boolean;
342
349
 
350
+ export { LocalStorageMediaProviderOptions }
351
+
343
352
  export { LocalStorageSavedBlocksOptions }
344
353
 
345
354
  export { LogicPair }
@@ -348,6 +357,14 @@ export { LogicTag }
348
357
 
349
358
  export { LogicTagsConfig }
350
359
 
360
+ export { MediaAsset }
361
+
362
+ export { MediaOptions }
363
+
364
+ export { MediaProvider_2 as MediaProvider }
365
+
366
+ export { MediaRequestContext }
367
+
351
368
  export { MergeTagsConfig }
352
369
 
353
370
  /** Function type for media browser requests, used by both OSS and Cloud editors. */
@@ -475,7 +492,7 @@ export declare interface TemplaticalCloudEditorConfig {
475
492
  * Reusable saved blocks.
476
493
  *
477
494
  * - **omitted / `true`** — backed by Templatical Cloud, gated on the
478
- * `saved_modules` plan feature;
495
+ * `savedModules` plan feature;
479
496
  * - **`false`** — off entirely; no UI renders;
480
497
  * - **a {@link SavedBlocksOptions}** — still backed by Cloud's store, plus
481
498
  * your `onCreated`, `onUpdated` and `onDeleted` handlers;
@@ -488,6 +505,29 @@ export declare interface TemplaticalCloudEditorConfig {
488
505
  * leaving it exactly as-is (to keep your own) — never rewriting it.
489
506
  */
490
507
  savedBlocks?: boolean | SavedBlocksOptions | SavedBlocksProvider;
508
+ /**
509
+ * Storage backend for the **media library** — the picker behind Browse on
510
+ * image fields, video thumbnails, and custom-block image fields.
511
+ *
512
+ * - **omitted** — backed by Templatical Cloud. Not plan-gated;
513
+ * - **`false`** — off; image fields stay URL-only unless `onRequestMedia`
514
+ * is set;
515
+ * - **a {@link MediaOptions}** — still backed by Cloud's store, plus your
516
+ * `onCreated`, `onUpdated` and `onDeleted` handlers. `maxFileSize` and
517
+ * `mimeTypes` are not honoured on this form — Cloud's plan owns those
518
+ * limits. TypeScript does not flag passing them here (both are valid
519
+ * members of the sibling {@link MediaProvider} arm, so the union
520
+ * accepts them structurally); passing either logs a runtime warning
521
+ * naming it instead;
522
+ * - **a {@link MediaProvider}** — backed by *your* store instead of
523
+ * Cloud's, and **not plan-gated**, because the plan licenses Cloud's
524
+ * storage rather than the editor's UI.
525
+ *
526
+ * The provider form is the same type `init()` takes, so moving an OSS
527
+ * integration to Cloud means deleting this key (to adopt Cloud's store) or
528
+ * leaving it exactly as-is (to keep your own) — never rewriting it.
529
+ */
530
+ media?: false | MediaOptions | MediaProvider_2;
491
531
  /**
492
532
  * Configuration and events for the template lifecycle. **The same key and
493
533
  * the same type as `init()`'s `templates`** — minus the storage methods,
@@ -592,7 +632,12 @@ export declare interface TemplaticalCloudEditorConfig {
592
632
  onDirtyChange?: (isDirty: boolean) => void;
593
633
  onError?: (error: Error) => void;
594
634
  onUnmount?: () => void;
595
- onRequestMedia?: (context: MediaRequestContext) => Promise<MediaItem | null>;
635
+ /**
636
+ * UI override for Browse / drop. Same key and type as `init()`. Wins over
637
+ * `media` when both are set. Cloud still supplies its store as `media`
638
+ * unless you pass `media: false` or your own provider.
639
+ */
640
+ onRequestMedia?: (context?: MediaRequestContext) => Promise<MediaResult | null>;
596
641
  /**
597
642
  * Transform the rendered HTML just before Cloud sends a test email.
598
643
  *
@@ -604,7 +649,7 @@ export declare interface TemplaticalCloudEditorConfig {
604
649
  /**
605
650
  * Sending backend for test emails.
606
651
  *
607
- * - **omitted** — sent by Templatical Cloud, gated on the `test_email` plan
652
+ * - **omitted** — sent by Templatical Cloud, gated on the `testEmail` plan
608
653
  * feature and its signed allowed-recipient list;
609
654
  * - **`{ onSent?, defaultRecipient? }`** — still sent by Cloud, plus your
610
655
  * `onSent` handler and/or a pre-filled recipient (ignored unless it's
@@ -894,6 +939,27 @@ export declare interface TemplaticalEditorConfig {
894
939
  * @default 2000
895
940
  */
896
941
  changeDebounce?: number;
942
+ /**
943
+ * Storage backend for the **media library** — the picker behind Browse on
944
+ * image fields, video thumbnails, and custom-block image fields.
945
+ *
946
+ * The editor owns the modal, grid, crop and insertion; you own persistence.
947
+ * `list` is required; every other method is `false | fn`. All mutations
948
+ * `false` is a read-only library: browse, search and pick still work.
949
+ *
950
+ * Implement the methods of `MediaProvider` against your own API, or use
951
+ * the bundled browser-local provider for demos and prototypes:
952
+ *
953
+ * ```ts
954
+ * import { init, createLocalStorageMediaProvider } from "@templatical/editor";
955
+ *
956
+ * init({ container, media: createLocalStorageMediaProvider() });
957
+ * ```
958
+ *
959
+ * **Omitted by default.** Image fields stay URL-only. `onRequestMedia` is
960
+ * the UI override (a host widget) and wins when both are set.
961
+ */
962
+ media?: MediaProvider_2;
897
963
  onRequestMedia?: OnRequestMedia;
898
964
  /**
899
965
  * Resolves the template for preview surfaces — typically evaluating logic
@@ -985,6 +1051,19 @@ export declare interface TemplaticalEditorConfig {
985
1051
  */
986
1052
  htmlBlockPreview?: HtmlBlockPreviewConfig;
987
1053
  fonts?: FontsConfig;
1054
+ /**
1055
+ * Base URL for the social-icon PNGs the renderer references in exported MJML
1056
+ * (the `<mj-image>` src for each Social block icon). Forwarded to
1057
+ * `@templatical/renderer`’s `socialIconsBaseUrl`; when omitted the renderer
1058
+ * uses its version-pinned jsDelivr default. Set it to self-host the icons
1059
+ * from your own origin. Trailing slash optional.
1060
+ *
1061
+ * Applies to the local `toMjml()` / `toHtml()` (via `compileMjml`) path only.
1062
+ * A `render.toMjml` provider wins over the bundled renderer and never sees
1063
+ * this — pass the URL to your own `renderToMjml` there. The editing canvas is
1064
+ * unaffected either way (it draws icons as inline SVG).
1065
+ */
1066
+ socialIconsBaseUrl?: string;
988
1067
  /**
989
1068
  * Editor-wide color-picker palette. `presets` appear as a clickable grid in
990
1069
  * every color picker popover (block toolbars, template settings, rich-text
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-05lB8iWe.js";
1
+ import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
2
2
  var t = e({
3
3
  name: "info",
4
4
  size: 24,
@@ -1,10 +1,10 @@
1
- import { S as e } from "./vue.runtime.esm-bundler-D9JUcKrV.js";
1
+ import { S as e } from "./vue.runtime.esm-bundler-DShF3P6k.js";
2
2
  //#region src/keys.ts
3
- var t = Symbol("translations"), n = Symbol("editor"), r = Symbol("history"), i = Symbol("blockActions"), a = Symbol("conditionPreview"), o = Symbol("appliesConditionFilter"), s = Symbol("fontsManager"), c = Symbol("themeStyles"), l = Symbol("tplUiTheme"), u = Symbol("tplUiLocale"), d = Symbol("blockDefaults"), f = Symbol("blockRegistry"), p = Symbol("customBlockDefinitions"), m = Symbol("paletteBlocks"), h = Symbol("htmlBlockPreview"), g = Symbol("colors"), _ = Symbol("templateSettingsFields"), v = Symbol("customBlockStylesheets"), y = Symbol("mergeTags"), b = Symbol("mergeTagSyntax"), x = Symbol("onRequestMergeTag"), S = Symbol("mergeTagAutocomplete"), C = Symbol("mergeTagSampleMode"), w = Symbol("useMergeTagSamples"), T = Symbol("resolvePreview"), E = Symbol("previewResolution"), D = Symbol("mergeTagPicker"), O = Symbol("mergeTagRequesting"), k = Symbol("logicTagRequesting"), A = Symbol("logicTags"), j = Symbol("logicPairs"), M = Symbol("logicPicker"), N = Symbol("onRequestLogic"), P = Symbol("onRequestMedia"), F = Symbol("imageUrlResolver"), I = Symbol("displayConditions"), L = Symbol("allowCustomConditions"), R = Symbol("capabilities"), z = Symbol("keyboardReorder"), B = Symbol("templateLint"), V = Symbol("editorRoot"), H = Symbol("popoverRoot"), U = Symbol("savedBlocks"), W = Symbol("authManager"), G = Symbol("aiConfig"), K = Symbol("scoring"), q = Symbol("cloudTranslations");
4
- function J(t, n) {
3
+ var t = Symbol("translations"), n = Symbol("editor"), r = Symbol("history"), i = Symbol("blockActions"), a = Symbol("conditionPreview"), o = Symbol("appliesConditionFilter"), s = Symbol("fontsManager"), c = Symbol("themeStyles"), l = Symbol("tplUiTheme"), u = Symbol("tplUiLocale"), d = Symbol("blockDefaults"), f = Symbol("blockRegistry"), p = Symbol("customBlockDefinitions"), m = Symbol("paletteBlocks"), h = Symbol("htmlBlockPreview"), g = Symbol("colors"), _ = Symbol("templateSettingsFields"), v = Symbol("customBlockStylesheets"), y = Symbol("mergeTags"), b = Symbol("mergeTagSyntax"), x = Symbol("onRequestMergeTag"), S = Symbol("mergeTagAutocomplete"), C = Symbol("mergeTagSampleMode"), w = Symbol("useMergeTagSamples"), T = Symbol("resolvePreview"), E = Symbol("previewResolution"), D = Symbol("mergeTagPicker"), O = Symbol("mergeTagRequesting"), k = Symbol("logicTagRequesting"), A = Symbol("logicTags"), j = Symbol("logicPairs"), M = Symbol("logicPicker"), N = Symbol("onRequestLogic"), P = Symbol("onRequestMedia"), F = Symbol("canDropMedia"), I = Symbol("imageUrlResolver"), L = Symbol("displayConditions"), R = Symbol("allowCustomConditions"), z = Symbol("capabilities"), B = Symbol("keyboardReorder"), V = Symbol("templateLint"), H = Symbol("editorRoot"), U = Symbol("popoverRoot"), W = Symbol("savedBlocks"), G = Symbol("authManager"), K = Symbol("aiConfig"), q = Symbol("scoring"), J = Symbol("cloudTranslations");
4
+ function Y(t, n) {
5
5
  let r = e(t, null);
6
6
  if (r == null) throw Error(`${n} requires a provider for ${t.description ?? "unknown key"}. Ensure it renders inside the editor, below Editor.vue.`);
7
7
  return r;
8
8
  }
9
9
  //#endregion
10
- export { C as A, K as B, A as C, S as D, y as E, m as F, u as G, _ as H, H as I, J, l as K, E as L, N as M, P as N, D as O, x as P, T as R, j as S, k as T, c as U, B as V, t as W, s as _, i as a, F as b, R as c, a as d, p as f, V as g, n as h, W as i, b as j, O as k, q as l, I as m, L as n, d as o, v as p, w as q, o as r, f as s, G as t, g as u, r as v, M as w, z as x, h as y, U as z };
10
+ export { O as A, W as B, j as C, y as D, k as E, x as F, t as G, V as H, m as I, w as J, u as K, U as L, b as M, N, S as O, P, E as R, B as S, M as T, _ as U, q as V, c as W, Y, H as _, i as a, h as b, F as c, g as d, a as f, n as g, L as h, G as i, C as j, D as k, z as l, v as m, R as n, d as o, p, l as q, o as r, f as s, K as t, J as u, s as v, A as w, I as x, r as y, T as z };
@@ -0,0 +1,14 @@
1
+ import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
2
+ var t = e({
3
+ name: "link",
4
+ size: 24,
5
+ node: [["path", {
6
+ d: "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",
7
+ key: "1cjeqo"
8
+ }], ["path", {
9
+ d: "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",
10
+ key: "19qd67"
11
+ }]]
12
+ });
13
+ //#endregion
14
+ export { t };