@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
@@ -1,12 +1,12 @@
1
1
  import { E as e } from "./draggable-kbOhCgnk.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 };
11
11
 
12
- //# sourceMappingURL=keys-DQp8x7Nx.js.map
12
+ //# sourceMappingURL=keys-DBFhDFng.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys-DQp8x7Nx.js","names":[],"sources":["../../../src/keys.ts"],"sourcesContent":["import { inject, type InjectionKey, type ComputedRef, type Ref } from \"vue\";\nimport type {\n UseHistoryReturn,\n UseBlockActionsReturn,\n UseConditionPreviewReturn,\n} from \"@templatical/core\";\nimport type {\n BlockDefaults,\n CustomBlockDefinition,\n DisplayCondition,\n LogicPair,\n LogicTag,\n MergeTag,\n ResolvePreview,\n SyntaxPreset,\n} from \"@templatical/types\";\nimport type { Translations, CloudTranslations } from \"./i18n\";\nimport type {\n AuthManager,\n UseAiConfigReturn,\n UseTemplateScoringReturn,\n} from \"@templatical/core/cloud\";\nimport type { UseSavedBlocksReturn } from \"@templatical/core\";\nimport type { BaseEditorReturn } from \"./composables/useEditorCore\";\nimport type { ImageUrlResolver } from \"./composables/useImageUrlResolver\";\nimport type { UseFontsReturn } from \"./composables/useFonts\";\nimport type { UseBlockRegistryReturn } from \"./composables/useBlockRegistry\";\nimport type { UseKeyboardReorderReturn } from \"./composables/useKeyboardReorder\";\nimport type { EditorCapabilities } from \"./types/editor-capabilities\";\nimport type { OnRequestMedia } from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Shared keys (provided by useEditorCore, consumed by all components)\n// ---------------------------------------------------------------------------\n\nexport const TRANSLATIONS_KEY: InjectionKey<Translations> =\n Symbol(\"translations\");\n\nexport const EDITOR_KEY: InjectionKey<BaseEditorReturn> = Symbol(\"editor\");\n\nexport const HISTORY_KEY: InjectionKey<UseHistoryReturn> = Symbol(\"history\");\n\nexport const BLOCK_ACTIONS_KEY: InjectionKey<UseBlockActionsReturn> =\n Symbol(\"blockActions\");\n\nexport const CONDITION_PREVIEW_KEY: InjectionKey<UseConditionPreviewReturn> =\n Symbol(\"conditionPreview\");\n\n/**\n * Whether the hand-toggled display-condition filter applies on this surface —\n * provided per-surface, exactly like `USE_MERGE_TAG_SAMPLES_KEY`, and for the\n * same reason: the rule folds in both `previewMode` and whether a resolver owns\n * the preview, so a component that re-derived it from `CONDITION_PREVIEW_KEY`\n * plus the editor's `previewMode` could get one half wrong on its own.\n *\n * Absent means \"applies\" — a surface with no provider filters as it always has.\n */\nexport const APPLIES_CONDITION_FILTER_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"appliesConditionFilter\");\n\nexport const FONTS_MANAGER_KEY: InjectionKey<UseFontsReturn> =\n Symbol(\"fontsManager\");\n\nexport const THEME_STYLES_KEY: InjectionKey<\n ComputedRef<Record<string, string>>\n> = Symbol(\"themeStyles\");\n\nexport const UI_THEME_KEY: InjectionKey<ComputedRef<string>> =\n Symbol(\"tplUiTheme\");\n\n/**\n * The editor's UI locale, exactly as the consumer passed it to\n * `init({ locale })` — unresolved, so it may be unsupported or malformed.\n *\n * For `Intl` formatting only. Translated *strings* come from\n * `TRANSLATIONS_KEY`, which is already resolved to a supported bundle; this is\n * for the labels `Intl` builds itself (dates), where the browser's own locale\n * would otherwise win and disagree with the surrounding chrome. Always format\n * through `formatAbsoluteDateTime`, which guards the malformed case.\n *\n * Not the template's `settings.locale` — that is the *email's* language and\n * belongs to content, not chrome.\n */\nexport const UI_LOCALE_KEY: InjectionKey<string | undefined> =\n Symbol(\"tplUiLocale\");\n\n// A ref, not a plain object: the recipient-facing half of these defaults\n// (video alt, countdown labels) tracks the template's own `settings.locale`,\n// which the author can change while the editor is open. Read it at insert\n// time — a value destructured at setup goes stale.\nexport const BLOCK_DEFAULTS_KEY: InjectionKey<ComputedRef<BlockDefaults>> =\n Symbol(\"blockDefaults\");\n\nexport const BLOCK_REGISTRY_KEY: InjectionKey<UseBlockRegistryReturn> =\n Symbol(\"blockRegistry\");\n\nexport const CUSTOM_BLOCK_DEFINITIONS_KEY: InjectionKey<\n CustomBlockDefinition[]\n> = Symbol(\"customBlockDefinitions\");\n\n/**\n * Consumer-supplied block-palette allowlist + order (`config.paletteBlocks`).\n * `undefined` means the default full palette. Consumed by `Sidebar.vue`.\n */\nexport const PALETTE_BLOCKS_KEY: InjectionKey<string[] | undefined> =\n Symbol(\"paletteBlocks\");\n\n/**\n * Whether HTML blocks render a live sandboxed-iframe preview in the canvas\n * (`config.htmlBlockPreview`), normalized to a boolean. `false` (the default)\n * keeps the static placeholder card. Consumed by `HtmlBlock.vue`.\n */\nexport const HTML_BLOCK_PREVIEW_KEY: InjectionKey<boolean> =\n Symbol(\"htmlBlockPreview\");\n\n/**\n * Consumer-supplied color-picker palette (`config.colors`), normalized to\n * `{ presets, allowCustom, allowCustomIgnored }` by `resolveColorsConfig`.\n * Provided by `useEditorCore`, consumed by every `ColorPicker`. The inject\n * default (`DEFAULT_RESOLVED_COLORS` = `{ presets: [], allowCustom: true,\n * allowCustomIgnored: false }`) makes an unconfigured picker render exactly\n * as before.\n */\nexport const COLORS_KEY: InjectionKey<\n import(\"./utils/resolveColorsConfig\").ResolvedColors\n> = Symbol(\"colors\");\n\n/**\n * The template settings the panel may render (`config.templateSettings.fields`),\n * resolved to a set of `TemplateSettings` member names by\n * `resolveTemplateSettingsFields`. Provided by `useEditorCore`, consumed by\n * `TemplateSettings.vue` for its cards and by `RightSidebar.vue` for the\n * Settings tab.\n *\n * Consumers inject with `ALL_TEMPLATE_SETTINGS_FIELDS` as the default, never an\n * empty set: the key is absent for anyone who configured nothing, and this\n * config only ever narrows.\n */\nexport const TEMPLATE_SETTINGS_FIELDS_KEY: InjectionKey<\n ReadonlySet<import(\"./utils/templateSettingsFields\").TemplateSettingsField>\n> = Symbol(\"templateSettingsFields\");\n\nexport const CUSTOM_BLOCK_STYLESHEETS_KEY: InjectionKey<ComputedRef<string[]>> =\n Symbol(\"customBlockStylesheets\");\n\nexport const MERGE_TAGS_KEY: InjectionKey<MergeTag[]> = Symbol(\"mergeTags\");\n\nexport const MERGE_TAG_SYNTAX_KEY: InjectionKey<SyntaxPreset> =\n Symbol(\"mergeTagSyntax\");\n\nexport const ON_REQUEST_MERGE_TAG_KEY: InjectionKey<\n (() => Promise<MergeTag | null>) | null\n> = Symbol(\"onRequestMergeTag\");\n\nexport const MERGE_TAG_AUTOCOMPLETE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagAutocomplete\",\n);\n\n/**\n * The user's choice between the previews' two merge-tag views: `true` for\n * Sample (tags replaced by their `MergeTag.sample`, rendered as ordinary text)\n * and `false` for Label (tags shown as their label with the usual cue).\n *\n * Session state owned by `useEditorCore` and driven by a toggle that exists\n * only on preview surfaces. Defaults to Sample.\n */\nexport const MERGE_TAG_SAMPLE_MODE_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagSampleMode\");\n\n/**\n * Whether **the current render surface** substitutes samples.\n *\n * Provided per surface rather than globally, and that is the whole point:\n * substitution must never happen while editing, so `Canvas.vue` folds in its\n * `previewMode` flag and provides `false` whenever the canvas is editable, no\n * matter what the mode ref says. Preview surfaces provide the mode directly.\n *\n * Block components inject **this** key. They must never read\n * `MERGE_TAG_SAMPLE_MODE_KEY`, which would bypass the editing guard.\n */\nexport const USE_MERGE_TAG_SAMPLES_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"useMergeTagSamples\");\n\n/**\n * The `resolvePreview` seam — resolved content plus its loading and failure\n * state. Provided by `useEditorCore` so every preview surface shares one\n * lifecycle; `null` when the consumer configured no hook.\n *\n * Surfaces read `content` from here instead of `editor.content`, and gate the\n * Sample/Label toggle on `supersedesSamples`.\n */\n/**\n * The raw `config.resolvePreview` hook.\n *\n * Provided alongside PREVIEW_RESOLUTION_KEY because the test-email dialog needs\n * its **own** resolution instance — it resolves for the selected recipient,\n * which the editor's canvas has no notion of — and so cannot reuse the shared\n * one. `undefined` when the consumer configured no hook.\n */\nexport const RESOLVE_PREVIEW_KEY: InjectionKey<ResolvePreview | undefined> =\n Symbol(\"resolvePreview\");\n\nexport const PREVIEW_RESOLUTION_KEY: InjectionKey<\n import(\"./composables/usePreviewResolution\").UsePreviewResolutionReturn | null\n> = Symbol(\"previewResolution\");\n\n/**\n * Singleton state for the built-in merge tag picker modal. Provided by\n * `useEditorCore`, consumed by `useMergeTag.requestMergeTag()` (to open\n * the modal as a fall-through when only `mergeTags.tags` is configured)\n * and by `MergeTagPickerModal.vue` (to render and resolve).\n */\nexport const MERGE_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useMergeTagPicker\").UseMergeTagPickerReturn\n> = Symbol(\"mergeTagPicker\");\n\n/**\n * One \"a merge tag request is in flight\" flag per editor, provided by\n * `useEditorCore` and injected by every `useMergeTag()` call.\n *\n * Shared, not per-call: `useRichTextEditor.handleClickOutside` suppresses\n * editor teardown while this is set, because the picker modal mounts in the\n * popover root — outside `.tpl-text-editor-wrapper`. A ref private to one\n * `useMergeTag()` instance leaves that guard blind to a picker opened from\n * any other host (the link dialog's URL field), so the click on a picker row\n * tears the block out of edit mode and the pending insert then no-ops on its\n * own disposal guard. Falls back to a private ref for headless callers.\n */\nexport const MERGE_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagRequesting\");\n\n/** Logic-tag counterpart of {@link MERGE_TAG_REQUESTING_KEY}. */\nexport const LOGIC_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"logicTagRequesting\");\n\n// ---------------------------------------------------------------------------\n// Logic tags — a standalone feature, separate from merge tags. Native\n// highlighting (LogicMergeTagNode) is always on; these drive the dedicated\n// logic picker + insertion.\n// ---------------------------------------------------------------------------\n\nexport const LOGIC_TAGS_KEY: InjectionKey<LogicTag[]> = Symbol(\"logicTags\");\n\nexport const LOGIC_PAIRS_KEY: InjectionKey<LogicPair[]> = Symbol(\"logicPairs\");\n\n/**\n * Singleton state for the built-in logic picker modal. Provided by\n * `useEditorCore`, consumed by `useLogicTag.requestLogicTag()` (to open the modal)\n * and by `LogicTagPickerModal.vue` (to render and resolve).\n */\nexport const LOGIC_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useLogicTagPicker\").UseLogicTagPickerReturn\n> = Symbol(\"logicPicker\");\n\nexport const ON_REQUEST_LOGIC_TAG_KEY: InjectionKey<\n (() => Promise<LogicTag | LogicPair | null>) | null\n> = Symbol(\"onRequestLogic\");\n\nexport const ON_REQUEST_MEDIA_KEY: InjectionKey<OnRequestMedia | null> =\n Symbol(\"onRequestMedia\");\n\n/**\n * Per-editor display-only image URL resolver (`config.resolveImageUrl`),\n * wrapped with a per-src cache by `createImageUrlResolver`. `null` when the\n * host doesn't resolve — the canvas then displays canonical src values\n * verbatim. Consumed via `useResolvedImageSrc` in image-displaying blocks.\n */\nexport const IMAGE_URL_RESOLVER_KEY: InjectionKey<ImageUrlResolver | null> =\n Symbol(\"imageUrlResolver\");\n\nexport const DISPLAY_CONDITIONS_KEY: InjectionKey<DisplayCondition[]> =\n Symbol(\"displayConditions\");\n\nexport const ALLOW_CUSTOM_CONDITIONS_KEY: InjectionKey<boolean> = Symbol(\n \"allowCustomConditions\",\n);\n\nexport const CAPABILITIES_KEY: InjectionKey<EditorCapabilities> =\n Symbol(\"capabilities\");\n\nexport const KEYBOARD_REORDER_KEY: InjectionKey<UseKeyboardReorderReturn> =\n Symbol(\"keyboardReorder\");\n\nexport const TEMPLATE_LINT_KEY: InjectionKey<\n import(\"./composables/useTemplateLint\").UseTemplateLintReturn | null\n> = Symbol(\"templateLint\");\n\n/**\n * The editor's effective DOM root — `Document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true`. Composables that read `document.activeElement`,\n * popup mount targets, etc. should inject this and use the root-aware API\n * (both `Document` and `ShadowRoot` expose `activeElement` etc.).\n */\nexport const EDITOR_ROOT_KEY: InjectionKey<Document | ShadowRoot> =\n Symbol(\"editorRoot\");\n\n/**\n * Mount target for popovers, toolbars, and modal dialogs — never\n * `document.body`. Provided by `useEditorCore` as a ref bound\n * to a `<div class=\"tpl-popover-root\" />` rendered at the top level of the\n * editor template. Teleports use `:to=\"popoverRoot\"` so popups land inside\n * the editor's effective root — `document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true` — instead of escaping the shadow boundary.\n *\n * Null until the editor's template mounts; consumers must guard with\n * `v-if=\"popoverRoot\"` before passing to `<Teleport>`.\n */\nexport const POPOVER_ROOT_KEY: InjectionKey<Ref<HTMLElement | null>> =\n Symbol(\"popoverRoot\");\n\n/**\n * Reactive saved-blocks state, provided by `useSavedBlocksFeature` when a\n * `SavedBlocksProvider` is configured. Shared by OSS and Cloud — the storage\n * transport lives behind the provider, so this key is not cloud-specific.\n */\nexport const SAVED_BLOCKS_KEY: InjectionKey<UseSavedBlocksReturn> =\n Symbol(\"savedBlocks\");\n\n// ---------------------------------------------------------------------------\n// Cloud-only keys (provided by createCloudRuntime, consumed by cloud components)\n// ---------------------------------------------------------------------------\n\nexport const AUTH_MANAGER_KEY: InjectionKey<AuthManager> =\n Symbol(\"authManager\");\n\nexport const AI_CONFIG_KEY: InjectionKey<UseAiConfigReturn> =\n Symbol(\"aiConfig\");\n\n// Comments are deliberately not injected: the panel takes `useCommentsFeature`'s\n// return as a **prop** the way `TestEmailPanel` and `SavedBlocksPanels` do, and the\n// per-block indicators read the comments entry on `CAPABILITIES_KEY`. Nothing\n// injects the composable itself.\n\nexport const SCORING_KEY: InjectionKey<UseTemplateScoringReturn> =\n Symbol(\"scoring\");\n\nexport const CLOUD_TRANSLATIONS_KEY: InjectionKey<CloudTranslations> =\n Symbol(\"cloudTranslations\");\n\n// ---------------------------------------------------------------------------\n// Helper for required injections with explicit null default + throw\n// ---------------------------------------------------------------------------\n\nexport function requireInject<T>(\n key: InjectionKey<T>,\n componentName: string,\n): T {\n const value = inject(key, null) as T | null;\n if (value === null || value === undefined) {\n throw new Error(\n `${componentName} requires a provider for ${key.description ?? \"unknown key\"}. Ensure it renders inside the editor, below Editor.vue.`,\n );\n }\n return value;\n}\n"],"mappings":";;AAmCA,IAAa,IACX,OAAO,cAAc,GAEV,IAA6C,OAAO,QAAQ,GAE5D,IAA8C,OAAO,SAAS,GAE9D,IACX,OAAO,cAAc,GAEV,IACX,OAAO,kBAAkB,GAWd,IACX,OAAO,wBAAwB,GAEpB,IACX,OAAO,cAAc,GAEV,IAET,OAAO,aAAa,GAEX,IACX,OAAO,YAAY,GAeR,IACX,OAAO,aAAa,GAMT,IACX,OAAO,eAAe,GAEX,IACX,OAAO,eAAe,GAEX,IAET,OAAO,wBAAwB,GAMtB,IACX,OAAO,eAAe,GAOX,IACX,OAAO,kBAAkB,GAUd,IAET,OAAO,QAAQ,GAaN,IAET,OAAO,wBAAwB,GAEtB,IACX,OAAO,wBAAwB,GAEpB,IAA2C,OAAO,WAAW,GAE7D,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAEjB,IAAoD,OAC/D,sBACF,GAUa,IACX,OAAO,oBAAoB,GAahB,IACX,OAAO,oBAAoB,GAkBhB,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAQjB,IAET,OAAO,gBAAgB,GAcd,IACX,OAAO,oBAAoB,GAGhB,IACX,OAAO,oBAAoB,GAQhB,IAA2C,OAAO,WAAW,GAE7D,IAA6C,OAAO,YAAY,GAOhE,IAET,OAAO,aAAa,GAEX,IAET,OAAO,gBAAgB,GAEd,IACX,OAAO,gBAAgB,GAQZ,IACX,OAAO,kBAAkB,GAEd,IACX,OAAO,mBAAmB,GAEf,IAAqD,OAChE,uBACF,GAEa,IACX,OAAO,cAAc,GAEV,IACX,OAAO,iBAAiB,GAEb,IAET,OAAO,cAAc,GAQZ,IACX,OAAO,YAAY,GAaR,IACX,OAAO,aAAa,GAOT,IACX,OAAO,aAAa,GAMT,IACX,OAAO,aAAa,GAET,IACX,OAAO,UAAU,GAON,IACX,OAAO,SAAS,GAEL,IACX,OAAO,mBAAmB;AAM5B,SAAgB,EACd,GACA,GACG;CACH,IAAM,IAAQ,EAAO,GAAK,IAAI;CAC9B,IAAI,KAAU,MACZ,MAAU,MACR,GAAG,EAAc,2BAA2B,EAAI,eAAe,cAAc,yDAC/E;CAEF,OAAO;AACT"}
1
+ {"version":3,"file":"keys-DBFhDFng.js","names":[],"sources":["../../../src/keys.ts"],"sourcesContent":["import { inject, type InjectionKey, type ComputedRef, type Ref } from \"vue\";\nimport type {\n UseHistoryReturn,\n UseBlockActionsReturn,\n UseConditionPreviewReturn,\n} from \"@templatical/core\";\nimport type {\n BlockDefaults,\n CustomBlockDefinition,\n DisplayCondition,\n LogicPair,\n LogicTag,\n MergeTag,\n ResolvePreview,\n SyntaxPreset,\n} from \"@templatical/types\";\nimport type { Translations, CloudTranslations } from \"./i18n\";\nimport type {\n AuthManager,\n UseAiConfigReturn,\n UseTemplateScoringReturn,\n} from \"@templatical/core/cloud\";\nimport type { UseSavedBlocksReturn } from \"@templatical/core\";\nimport type { BaseEditorReturn } from \"./composables/useEditorCore\";\nimport type { ImageUrlResolver } from \"./composables/useImageUrlResolver\";\nimport type { UseFontsReturn } from \"./composables/useFonts\";\nimport type { UseBlockRegistryReturn } from \"./composables/useBlockRegistry\";\nimport type { UseKeyboardReorderReturn } from \"./composables/useKeyboardReorder\";\nimport type { EditorCapabilities } from \"./types/editor-capabilities\";\nimport type { OnRequestMedia } from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Shared keys (provided by useEditorCore, consumed by all components)\n// ---------------------------------------------------------------------------\n\nexport const TRANSLATIONS_KEY: InjectionKey<Translations> =\n Symbol(\"translations\");\n\nexport const EDITOR_KEY: InjectionKey<BaseEditorReturn> = Symbol(\"editor\");\n\nexport const HISTORY_KEY: InjectionKey<UseHistoryReturn> = Symbol(\"history\");\n\nexport const BLOCK_ACTIONS_KEY: InjectionKey<UseBlockActionsReturn> =\n Symbol(\"blockActions\");\n\nexport const CONDITION_PREVIEW_KEY: InjectionKey<UseConditionPreviewReturn> =\n Symbol(\"conditionPreview\");\n\n/**\n * Whether the hand-toggled display-condition filter applies on this surface —\n * provided per-surface, exactly like `USE_MERGE_TAG_SAMPLES_KEY`, and for the\n * same reason: the rule folds in both `previewMode` and whether a resolver owns\n * the preview, so a component that re-derived it from `CONDITION_PREVIEW_KEY`\n * plus the editor's `previewMode` could get one half wrong on its own.\n *\n * Absent means \"applies\" — a surface with no provider filters as it always has.\n */\nexport const APPLIES_CONDITION_FILTER_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"appliesConditionFilter\");\n\nexport const FONTS_MANAGER_KEY: InjectionKey<UseFontsReturn> =\n Symbol(\"fontsManager\");\n\nexport const THEME_STYLES_KEY: InjectionKey<\n ComputedRef<Record<string, string>>\n> = Symbol(\"themeStyles\");\n\nexport const UI_THEME_KEY: InjectionKey<ComputedRef<string>> =\n Symbol(\"tplUiTheme\");\n\n/**\n * The editor's UI locale, exactly as the consumer passed it to\n * `init({ locale })` — unresolved, so it may be unsupported or malformed.\n *\n * For `Intl` formatting only. Translated *strings* come from\n * `TRANSLATIONS_KEY`, which is already resolved to a supported bundle; this is\n * for the labels `Intl` builds itself (dates), where the browser's own locale\n * would otherwise win and disagree with the surrounding chrome. Always format\n * through `formatAbsoluteDateTime`, which guards the malformed case.\n *\n * Not the template's `settings.locale` — that is the *email's* language and\n * belongs to content, not chrome.\n */\nexport const UI_LOCALE_KEY: InjectionKey<string | undefined> =\n Symbol(\"tplUiLocale\");\n\n// A ref, not a plain object: the recipient-facing half of these defaults\n// (video alt, countdown labels) tracks the template's own `settings.locale`,\n// which the author can change while the editor is open. Read it at insert\n// time — a value destructured at setup goes stale.\nexport const BLOCK_DEFAULTS_KEY: InjectionKey<ComputedRef<BlockDefaults>> =\n Symbol(\"blockDefaults\");\n\nexport const BLOCK_REGISTRY_KEY: InjectionKey<UseBlockRegistryReturn> =\n Symbol(\"blockRegistry\");\n\nexport const CUSTOM_BLOCK_DEFINITIONS_KEY: InjectionKey<\n CustomBlockDefinition[]\n> = Symbol(\"customBlockDefinitions\");\n\n/**\n * Consumer-supplied block-palette allowlist + order (`config.paletteBlocks`).\n * `undefined` means the default full palette. Consumed by `Sidebar.vue`.\n */\nexport const PALETTE_BLOCKS_KEY: InjectionKey<string[] | undefined> =\n Symbol(\"paletteBlocks\");\n\n/**\n * Whether HTML blocks render a live sandboxed-iframe preview in the canvas\n * (`config.htmlBlockPreview`), normalized to a boolean. `false` (the default)\n * keeps the static placeholder card. Consumed by `HtmlBlock.vue`.\n */\nexport const HTML_BLOCK_PREVIEW_KEY: InjectionKey<boolean> =\n Symbol(\"htmlBlockPreview\");\n\n/**\n * Consumer-supplied color-picker palette (`config.colors`), normalized to\n * `{ presets, allowCustom, allowCustomIgnored }` by `resolveColorsConfig`.\n * Provided by `useEditorCore`, consumed by every `ColorPicker`. The inject\n * default (`DEFAULT_RESOLVED_COLORS` = `{ presets: [], allowCustom: true,\n * allowCustomIgnored: false }`) makes an unconfigured picker render exactly\n * as before.\n */\nexport const COLORS_KEY: InjectionKey<\n import(\"./utils/resolveColorsConfig\").ResolvedColors\n> = Symbol(\"colors\");\n\n/**\n * The template settings the panel may render (`config.templateSettings.fields`),\n * resolved to a set of `TemplateSettings` member names by\n * `resolveTemplateSettingsFields`. Provided by `useEditorCore`, consumed by\n * `TemplateSettings.vue` for its cards and by `RightSidebar.vue` for the\n * Settings tab.\n *\n * Consumers inject with `ALL_TEMPLATE_SETTINGS_FIELDS` as the default, never an\n * empty set: the key is absent for anyone who configured nothing, and this\n * config only ever narrows.\n */\nexport const TEMPLATE_SETTINGS_FIELDS_KEY: InjectionKey<\n ReadonlySet<import(\"./utils/templateSettingsFields\").TemplateSettingsField>\n> = Symbol(\"templateSettingsFields\");\n\nexport const CUSTOM_BLOCK_STYLESHEETS_KEY: InjectionKey<ComputedRef<string[]>> =\n Symbol(\"customBlockStylesheets\");\n\nexport const MERGE_TAGS_KEY: InjectionKey<MergeTag[]> = Symbol(\"mergeTags\");\n\nexport const MERGE_TAG_SYNTAX_KEY: InjectionKey<SyntaxPreset> =\n Symbol(\"mergeTagSyntax\");\n\nexport const ON_REQUEST_MERGE_TAG_KEY: InjectionKey<\n (() => Promise<MergeTag | null>) | null\n> = Symbol(\"onRequestMergeTag\");\n\nexport const MERGE_TAG_AUTOCOMPLETE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagAutocomplete\",\n);\n\n/**\n * The user's choice between the previews' two merge-tag views: `true` for\n * Sample (tags replaced by their `MergeTag.sample`, rendered as ordinary text)\n * and `false` for Label (tags shown as their label with the usual cue).\n *\n * Session state owned by `useEditorCore` and driven by a toggle that exists\n * only on preview surfaces. Defaults to Sample.\n */\nexport const MERGE_TAG_SAMPLE_MODE_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagSampleMode\");\n\n/**\n * Whether **the current render surface** substitutes samples.\n *\n * Provided per surface rather than globally, and that is the whole point:\n * substitution must never happen while editing, so `Canvas.vue` folds in its\n * `previewMode` flag and provides `false` whenever the canvas is editable, no\n * matter what the mode ref says. Preview surfaces provide the mode directly.\n *\n * Block components inject **this** key. They must never read\n * `MERGE_TAG_SAMPLE_MODE_KEY`, which would bypass the editing guard.\n */\nexport const USE_MERGE_TAG_SAMPLES_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"useMergeTagSamples\");\n\n/**\n * The `resolvePreview` seam — resolved content plus its loading and failure\n * state. Provided by `useEditorCore` so every preview surface shares one\n * lifecycle; `null` when the consumer configured no hook.\n *\n * Surfaces read `content` from here instead of `editor.content`, and gate the\n * Sample/Label toggle on `supersedesSamples`.\n */\n/**\n * The raw `config.resolvePreview` hook.\n *\n * Provided alongside PREVIEW_RESOLUTION_KEY because the test-email dialog needs\n * its **own** resolution instance — it resolves for the selected recipient,\n * which the editor's canvas has no notion of — and so cannot reuse the shared\n * one. `undefined` when the consumer configured no hook.\n */\nexport const RESOLVE_PREVIEW_KEY: InjectionKey<ResolvePreview | undefined> =\n Symbol(\"resolvePreview\");\n\nexport const PREVIEW_RESOLUTION_KEY: InjectionKey<\n import(\"./composables/usePreviewResolution\").UsePreviewResolutionReturn | null\n> = Symbol(\"previewResolution\");\n\n/**\n * Singleton state for the built-in merge tag picker modal. Provided by\n * `useEditorCore`, consumed by `useMergeTag.requestMergeTag()` (to open\n * the modal as a fall-through when only `mergeTags.tags` is configured)\n * and by `MergeTagPickerModal.vue` (to render and resolve).\n */\nexport const MERGE_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useMergeTagPicker\").UseMergeTagPickerReturn\n> = Symbol(\"mergeTagPicker\");\n\n/**\n * One \"a merge tag request is in flight\" flag per editor, provided by\n * `useEditorCore` and injected by every `useMergeTag()` call.\n *\n * Shared, not per-call: `useRichTextEditor.handleClickOutside` suppresses\n * editor teardown while this is set, because the picker modal mounts in the\n * popover root — outside `.tpl-text-editor-wrapper`. A ref private to one\n * `useMergeTag()` instance leaves that guard blind to a picker opened from\n * any other host (the link dialog's URL field), so the click on a picker row\n * tears the block out of edit mode and the pending insert then no-ops on its\n * own disposal guard. Falls back to a private ref for headless callers.\n */\nexport const MERGE_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagRequesting\");\n\n/** Logic-tag counterpart of {@link MERGE_TAG_REQUESTING_KEY}. */\nexport const LOGIC_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"logicTagRequesting\");\n\n// ---------------------------------------------------------------------------\n// Logic tags — a standalone feature, separate from merge tags. Native\n// highlighting (LogicMergeTagNode) is always on; these drive the dedicated\n// logic picker + insertion.\n// ---------------------------------------------------------------------------\n\nexport const LOGIC_TAGS_KEY: InjectionKey<LogicTag[]> = Symbol(\"logicTags\");\n\nexport const LOGIC_PAIRS_KEY: InjectionKey<LogicPair[]> = Symbol(\"logicPairs\");\n\n/**\n * Singleton state for the built-in logic picker modal. Provided by\n * `useEditorCore`, consumed by `useLogicTag.requestLogicTag()` (to open the modal)\n * and by `LogicTagPickerModal.vue` (to render and resolve).\n */\nexport const LOGIC_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useLogicTagPicker\").UseLogicTagPickerReturn\n> = Symbol(\"logicPicker\");\n\nexport const ON_REQUEST_LOGIC_TAG_KEY: InjectionKey<\n (() => Promise<LogicTag | LogicPair | null>) | null\n> = Symbol(\"onRequestLogic\");\n\nexport const ON_REQUEST_MEDIA_KEY: InjectionKey<OnRequestMedia | null> =\n Symbol(\"onRequestMedia\");\n\n/**\n * Whether a dropped image file may be uploaded. Distinct from Browse: a\n * read-only provider (`create: false`) still opens the library, but the\n * drop zone must not highlight. True when a host `onRequestMedia` is set\n * (the callback receives `files`) or when `provider.create` is a function.\n *\n * `null` when neither a provider nor a callback is configured — image\n * fields stay URL-only and drop is off. Injected as a computed; consumed\n * by ImageBlock / ImageToolbar / ImageField with a `null` default.\n */\nexport const CAN_DROP_MEDIA_KEY: InjectionKey<ComputedRef<boolean> | null> =\n Symbol(\"canDropMedia\");\n\n/**\n * Per-editor display-only image URL resolver (`config.resolveImageUrl`),\n * wrapped with a per-src cache by `createImageUrlResolver`. `null` when the\n * host doesn't resolve — the canvas then displays canonical src values\n * verbatim. Consumed via `useResolvedImageSrc` in image-displaying blocks.\n */\nexport const IMAGE_URL_RESOLVER_KEY: InjectionKey<ImageUrlResolver | null> =\n Symbol(\"imageUrlResolver\");\n\nexport const DISPLAY_CONDITIONS_KEY: InjectionKey<DisplayCondition[]> =\n Symbol(\"displayConditions\");\n\nexport const ALLOW_CUSTOM_CONDITIONS_KEY: InjectionKey<boolean> = Symbol(\n \"allowCustomConditions\",\n);\n\nexport const CAPABILITIES_KEY: InjectionKey<EditorCapabilities> =\n Symbol(\"capabilities\");\n\nexport const KEYBOARD_REORDER_KEY: InjectionKey<UseKeyboardReorderReturn> =\n Symbol(\"keyboardReorder\");\n\nexport const TEMPLATE_LINT_KEY: InjectionKey<\n import(\"./composables/useTemplateLint\").UseTemplateLintReturn | null\n> = Symbol(\"templateLint\");\n\n/**\n * The editor's effective DOM root — `Document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true`. Composables that read `document.activeElement`,\n * popup mount targets, etc. should inject this and use the root-aware API\n * (both `Document` and `ShadowRoot` expose `activeElement` etc.).\n */\nexport const EDITOR_ROOT_KEY: InjectionKey<Document | ShadowRoot> =\n Symbol(\"editorRoot\");\n\n/**\n * Mount target for popovers, toolbars, and modal dialogs — never\n * `document.body`. Provided by `useEditorCore` as a ref bound\n * to a `<div class=\"tpl-popover-root\" />` rendered at the top level of the\n * editor template. Teleports use `:to=\"popoverRoot\"` so popups land inside\n * the editor's effective root — `document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true` — instead of escaping the shadow boundary.\n *\n * Null until the editor's template mounts; consumers must guard with\n * `v-if=\"popoverRoot\"` before passing to `<Teleport>`.\n */\nexport const POPOVER_ROOT_KEY: InjectionKey<Ref<HTMLElement | null>> =\n Symbol(\"popoverRoot\");\n\n/**\n * Reactive saved-blocks state, provided by `useSavedBlocksFeature` when a\n * `SavedBlocksProvider` is configured. Shared by OSS and Cloud — the storage\n * transport lives behind the provider, so this key is not cloud-specific.\n */\nexport const SAVED_BLOCKS_KEY: InjectionKey<UseSavedBlocksReturn> =\n Symbol(\"savedBlocks\");\n\n// ---------------------------------------------------------------------------\n// Cloud-only keys (provided by createCloudRuntime, consumed by cloud components)\n// ---------------------------------------------------------------------------\n\nexport const AUTH_MANAGER_KEY: InjectionKey<AuthManager> =\n Symbol(\"authManager\");\n\nexport const AI_CONFIG_KEY: InjectionKey<UseAiConfigReturn> =\n Symbol(\"aiConfig\");\n\n// Comments are deliberately not injected: the panel takes `useCommentsFeature`'s\n// return as a **prop** the way `TestEmailPanel` and `SavedBlocksPanels` do, and the\n// per-block indicators read the comments entry on `CAPABILITIES_KEY`. Nothing\n// injects the composable itself.\n\nexport const SCORING_KEY: InjectionKey<UseTemplateScoringReturn> =\n Symbol(\"scoring\");\n\nexport const CLOUD_TRANSLATIONS_KEY: InjectionKey<CloudTranslations> =\n Symbol(\"cloudTranslations\");\n\n// ---------------------------------------------------------------------------\n// Helper for required injections with explicit null default + throw\n// ---------------------------------------------------------------------------\n\nexport function requireInject<T>(\n key: InjectionKey<T>,\n componentName: string,\n): T {\n const value = inject(key, null) as T | null;\n if (value === null || value === undefined) {\n throw new Error(\n `${componentName} requires a provider for ${key.description ?? \"unknown key\"}. Ensure it renders inside the editor, below Editor.vue.`,\n );\n }\n return value;\n}\n"],"mappings":";;AAmCA,IAAa,IACX,OAAO,cAAc,GAEV,IAA6C,OAAO,QAAQ,GAE5D,IAA8C,OAAO,SAAS,GAE9D,IACX,OAAO,cAAc,GAEV,IACX,OAAO,kBAAkB,GAWd,IACX,OAAO,wBAAwB,GAEpB,IACX,OAAO,cAAc,GAEV,IAET,OAAO,aAAa,GAEX,IACX,OAAO,YAAY,GAeR,IACX,OAAO,aAAa,GAMT,IACX,OAAO,eAAe,GAEX,IACX,OAAO,eAAe,GAEX,IAET,OAAO,wBAAwB,GAMtB,IACX,OAAO,eAAe,GAOX,IACX,OAAO,kBAAkB,GAUd,IAET,OAAO,QAAQ,GAaN,IAET,OAAO,wBAAwB,GAEtB,IACX,OAAO,wBAAwB,GAEpB,IAA2C,OAAO,WAAW,GAE7D,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAEjB,IAAoD,OAC/D,sBACF,GAUa,IACX,OAAO,oBAAoB,GAahB,IACX,OAAO,oBAAoB,GAkBhB,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAQjB,IAET,OAAO,gBAAgB,GAcd,IACX,OAAO,oBAAoB,GAGhB,IACX,OAAO,oBAAoB,GAQhB,IAA2C,OAAO,WAAW,GAE7D,IAA6C,OAAO,YAAY,GAOhE,IAET,OAAO,aAAa,GAEX,IAET,OAAO,gBAAgB,GAEd,IACX,OAAO,gBAAgB,GAYZ,IACX,OAAO,cAAc,GAQV,IACX,OAAO,kBAAkB,GAEd,IACX,OAAO,mBAAmB,GAEf,IAAqD,OAChE,uBACF,GAEa,IACX,OAAO,cAAc,GAEV,IACX,OAAO,iBAAiB,GAEb,IAET,OAAO,cAAc,GAQZ,IACX,OAAO,YAAY,GAaR,IACX,OAAO,aAAa,GAOT,IACX,OAAO,aAAa,GAMT,IACX,OAAO,aAAa,GAET,IACX,OAAO,UAAU,GAON,IACX,OAAO,SAAS,GAEL,IACX,OAAO,mBAAmB;AAM5B,SAAgB,EACd,GACA,GACG;CACH,IAAM,IAAQ,EAAO,GAAK,IAAI;CAC9B,IAAI,KAAU,MACZ,MAAU,MACR,GAAG,EAAc,2BAA2B,EAAI,eAAe,cAAc,yDAC/E;CAEF,OAAO;AACT"}
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Nieuwe map",
12
12
  folderName: "Mapnaam",
13
13
  noFiles: "Geen bestanden gevonden",
14
+ noSearchResults: "Geen bestanden komen overeen met uw zoekopdracht",
14
15
  dropOrClick: "Sleep bestanden hierheen of klik om te uploaden",
15
16
  acceptedFormats: "Afbeeldingen, PDF, video, audio, documenten (max. 10 MB)",
16
17
  uploading: "Uploaden...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importeren",
57
58
  importing: "Importeren...",
58
59
  importError: "Importeren vanaf URL mislukt",
59
- conversionLabel: "Grootte",
60
- conversionOriginal: "Origineel",
61
- conversionSmall: "Klein (150px)",
62
- conversionMedium: "Middel (600px)",
63
- conversionLarge: "Groot (1200px)",
64
60
  replaceFile: "Bestand vervangen",
65
61
  replaceWarningTitle: "Bestand vervangen",
66
62
  replaceWarningMessage: "U staat op het punt dit bestand te vervangen. De vervanging moet dezelfde bestandsextensie hebben ({extension}).",
@@ -86,4 +82,4 @@ var e = { mediaLibrary: {
86
82
  //#endregion
87
83
  export { e as default };
88
84
 
89
- //# sourceMappingURL=nl-CbcPJlrL.js.map
85
+ //# sourceMappingURL=nl-CReD7Apd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nl-CReD7Apd.js","names":[],"sources":["../../../../media-library/src/i18n/locales/nl.ts"],"sourcesContent":["const nl = {\n mediaLibrary: {\n title: \"Mediabibliotheek\",\n searchPlaceholder: \"Bestanden zoeken...\",\n allFiles: \"Alle bestanden\",\n filterAll: \"Alle types\",\n filterImages: \"Afbeeldingen\",\n filterDocuments: \"Documenten\",\n filterVideos: \"Video's\",\n filterAudio: \"Audio\",\n newFolder: \"Nieuwe map\",\n folderName: \"Mapnaam\",\n noFiles: \"Geen bestanden gevonden\",\n noSearchResults: \"Geen bestanden komen overeen met uw zoekopdracht\",\n dropOrClick: \"Sleep bestanden hierheen of klik om te uploaden\",\n acceptedFormats: \"Afbeeldingen, PDF, video, audio, documenten (max. 10 MB)\",\n uploading: \"Uploaden...\",\n uploadingProgress: \"Uploaden van {current} van {total}...\",\n selectImage: \"Afbeelding selecteren\",\n selectFile: \"Bestand selecteren\",\n deleteSelected: \"Verwijderen\",\n copyUrl: \"URL kopiëren\",\n copied: \"Gekopieerd!\",\n browseMedia: \"Mediabibliotheek openen\",\n renameFolder: \"Map hernoemen\",\n addSubfolder: \"Submap toevoegen\",\n subfolderName: \"Naam van de submap\",\n sortNewest: \"Nieuwste eerst\",\n sortOldest: \"Oudste eerst\",\n sortNameAsc: \"Naam A-Z\",\n sortNameDesc: \"Naam Z-A\",\n sortSizeAsc: \"Kleinste eerst\",\n sortSizeDesc: \"Grootste eerst\",\n moveSelected: \"Verplaatsen\",\n moveToRoot: \"Alle bestanden\",\n currentFolder: \"(huidige)\",\n confirmDelete: \"Bevestigen?\",\n renameFile: \"Hernoemen\",\n editFile: \"Bestand bewerken\",\n fileName: \"Bestandsnaam\",\n altText: \"Alt-tekst\",\n altTextPlaceholder: \"Beschrijf deze afbeelding voor toegankelijkheid\",\n saveChanges: \"Opslaan\",\n cancel: \"Annuleren\",\n frequentlyUsed: \"Vaak gebruikt\",\n deleteWarningTitle: \"Bestand verwijderen\",\n deleteWarningMessage:\n \"Weet u het zeker? Deze actie kan niet worden teruggedraaid.\",\n deleteWarningUsageNote:\n \"De volgende bestanden worden gebruikt in sjablonen. Verwijderen kan die sjablonen breken.\",\n deleteAnyway: \"Verwijderen\",\n usedInTemplates: \"Gebruikt in {count} sjabloon(en)\",\n viewGrid: \"Rasterweergave\",\n viewList: \"Lijstweergave\",\n showFolders: \"Mappen tonen\",\n hideFolders: \"Mappen verbergen\",\n importFromUrl: \"Importeren vanaf URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importeren\",\n importing: \"Importeren...\",\n importError: \"Importeren vanaf URL mislukt\",\n replaceFile: \"Bestand vervangen\",\n replaceWarningTitle: \"Bestand vervangen\",\n replaceWarningMessage:\n \"U staat op het punt dit bestand te vervangen. De vervanging moet dezelfde bestandsextensie hebben ({extension}).\",\n replaceWarningUsageNote:\n \"Dit bestand wordt gebruikt in {count} sjabloon(en). Vervangen werkt alle verwijzingen bij.\",\n replaceSelectFile: \"Vervangend bestand selecteren\",\n replace: \"Vervangen\",\n replacing: \"Vervangen...\",\n replaceError: \"Bestand vervangen mislukt\",\n saving: \"Opslaan...\",\n cropAspectRatio: \"Beeldverhouding\",\n cropFree: \"Vrij\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Origineel\",\n cropMaxWidth: \"Max. breedte\",\n cropMaxHeight: \"Max. hoogte\",\n cropOutputSize: \"Uitvoergrootte\",\n cropPixels: \"px\",\n cropOptional: \"(optioneel)\",\n storageTooltip: \"{used} van {total} gebruikt ({remaining} resterend)\",\n },\n};\n\nexport default nl;\n"],"mappings":";AAAA,IAAM,IAAK,EACT,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBACE;CACF,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Nova Pasta",
12
12
  folderName: "Nome da pasta",
13
13
  noFiles: "Nenhum arquivo encontrado",
14
+ noSearchResults: "Nenhum arquivo corresponde à sua busca",
14
15
  dropOrClick: "Solte arquivos aqui ou clique para enviar",
15
16
  acceptedFormats: "Imagens, PDF, Vídeo, Áudio, Documentos (máx. 10MB)",
16
17
  uploading: "Enviando...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importar",
57
58
  importing: "Importando...",
58
59
  importError: "Falha ao importar da URL",
59
- conversionLabel: "Tamanho",
60
- conversionOriginal: "Original",
61
- conversionSmall: "Pequeno (150px)",
62
- conversionMedium: "Médio (600px)",
63
- conversionLarge: "Grande (1200px)",
64
60
  replaceFile: "Substituir Arquivo",
65
61
  replaceWarningTitle: "Substituir Arquivo",
66
62
  replaceWarningMessage: "Você está prestes a substituir este arquivo. O substituto deve ter a mesma extensão ({extension}).",
@@ -86,4 +82,4 @@ var e = { mediaLibrary: {
86
82
  //#endregion
87
83
  export { e as default };
88
84
 
89
- //# sourceMappingURL=pt-BR-BibOQm-o.js.map
85
+ //# sourceMappingURL=pt-BR-BRA0-vGP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-BR-BRA0-vGP.js","names":[],"sources":["../../../../media-library/src/i18n/locales/pt-BR.ts"],"sourcesContent":["const ptBR = {\n mediaLibrary: {\n title: \"Biblioteca de Mídia\",\n searchPlaceholder: \"Buscar arquivos...\",\n allFiles: \"Todos os Arquivos\",\n filterAll: \"Todos os Tipos\",\n filterImages: \"Imagens\",\n filterDocuments: \"Documentos\",\n filterVideos: \"Vídeos\",\n filterAudio: \"Áudio\",\n newFolder: \"Nova Pasta\",\n folderName: \"Nome da pasta\",\n noFiles: \"Nenhum arquivo encontrado\",\n noSearchResults: \"Nenhum arquivo corresponde à sua busca\",\n dropOrClick: \"Solte arquivos aqui ou clique para enviar\",\n acceptedFormats: \"Imagens, PDF, Vídeo, Áudio, Documentos (máx. 10MB)\",\n uploading: \"Enviando...\",\n uploadingProgress: \"Enviando {current} de {total}...\",\n selectImage: \"Selecionar Imagem\",\n selectFile: \"Selecionar Arquivo\",\n deleteSelected: \"Excluir\",\n copyUrl: \"Copiar URL\",\n copied: \"Copiado!\",\n browseMedia: \"Explorar Biblioteca de Mídia\",\n renameFolder: \"Renomear pasta\",\n addSubfolder: \"Adicionar subpasta\",\n subfolderName: \"Nome da subpasta\",\n sortNewest: \"Mais Recentes\",\n sortOldest: \"Mais Antigos\",\n sortNameAsc: \"Nome A-Z\",\n sortNameDesc: \"Nome Z-A\",\n sortSizeAsc: \"Menores Primeiro\",\n sortSizeDesc: \"Maiores Primeiro\",\n moveSelected: \"Mover\",\n moveToRoot: \"Todos os Arquivos\",\n currentFolder: \"(atual)\",\n confirmDelete: \"Confirmar?\",\n renameFile: \"Renomear\",\n editFile: \"Editar Arquivo\",\n fileName: \"Nome do arquivo\",\n altText: \"Texto Alternativo\",\n altTextPlaceholder: \"Descreva esta imagem para acessibilidade\",\n saveChanges: \"Salvar\",\n cancel: \"Cancelar\",\n frequentlyUsed: \"Usados Frequentemente\",\n deleteWarningTitle: \"Excluir Arquivo\",\n deleteWarningMessage: \"Tem certeza? Esta ação é irreversível.\",\n deleteWarningUsageNote:\n \"Os arquivos a seguir estão sendo usados em templates. Excluí-los pode quebrar esses templates.\",\n deleteAnyway: \"Excluir\",\n usedInTemplates: \"Usado em {count} template(s)\",\n viewGrid: \"Visualização em grade\",\n viewList: \"Visualização em lista\",\n showFolders: \"Mostrar pastas\",\n hideFolders: \"Ocultar pastas\",\n importFromUrl: \"Importar de URL\",\n importUrlPlaceholder: \"https://exemplo.com/imagem.jpg\",\n import: \"Importar\",\n importing: \"Importando...\",\n importError: \"Falha ao importar da URL\",\n replaceFile: \"Substituir Arquivo\",\n replaceWarningTitle: \"Substituir Arquivo\",\n replaceWarningMessage:\n \"Você está prestes a substituir este arquivo. O substituto deve ter a mesma extensão ({extension}).\",\n replaceWarningUsageNote:\n \"Este arquivo é usado em {count} template(s). Substituí-lo atualizará todas as referências.\",\n replaceSelectFile: \"Selecionar arquivo substituto\",\n replace: \"Substituir\",\n replacing: \"Substituindo...\",\n replaceError: \"Falha ao substituir arquivo\",\n saving: \"Salvando...\",\n cropAspectRatio: \"Proporção\",\n cropFree: \"Livre\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Original\",\n cropMaxWidth: \"Largura Máxima\",\n cropMaxHeight: \"Altura Máxima\",\n cropOutputSize: \"Tamanho de Saída\",\n cropPixels: \"px\",\n cropOptional: \"(opcional)\",\n storageTooltip: \"{used} de {total} usados ({remaining} restantes)\",\n },\n};\n\nexport default ptBR;\n"],"mappings":";AAAA,IAAM,IAAO,EACX,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBAAsB;CACtB,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}
@@ -4,7 +4,7 @@ import { $ as e, G as t, J as n, K as r, Q as i, R as a, U as o, W as s, X as c,
4
4
  var v = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
5
5
  name: "@templatical/renderer",
6
6
  description: "Render Templatical email templates to MJML",
7
- version: "0.35.0",
7
+ version: "0.37.0",
8
8
  bugs: "https://github.com/templatical/sdk/issues",
9
9
  dependencies: { "@templatical/types": "workspace:*" },
10
10
  devDependencies: {
@@ -596,4 +596,4 @@ function Ae(e) {
596
596
  //#endregion
597
597
  export { v as DEFAULT_SOCIAL_ICONS_BASE_URL, L as RICH_TEXT_CSS_CLASS, b as RenderContext, w as UNRENDERABLE_MARKER_PREFIX, M as convertMergeTagsToValues, A as escapeAttr, k as escapeHtml, S as getCssClassAttr, C as getCssClasses, J as getWidthPercentages, Y as getWidthPixels, x as isHiddenOnAll, Z as renderBlock, xe as renderToMjml, E as renderUnrenderableBlock, z as resolveParagraphGap, R as richTextGapClass, P as toPaddingString };
598
598
 
599
- //# sourceMappingURL=src-BC-eolWY.js.map
599
+ //# sourceMappingURL=src-Ozknnj-v.js.map