@templatical/editor 0.26.3 → 0.27.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 (284) hide show
  1. package/README.md +3 -1
  2. package/dist/{AiChatSidebar-CMBz6Wix.js → AiChatSidebar-iVJDzqjr.js} +60 -60
  3. package/dist/AiFeatureMenu-DvrK-dzj.js +57 -0
  4. package/dist/{BlockIssueBadge-Buk3_6QF.js → BlockIssueBadge-BHysq7XQ.js} +11 -11
  5. package/dist/BlockPreviewCanvas-GZbr0ph5.js +121 -0
  6. package/dist/CloudHeaderExtras-Cx8gFWu2.js +59 -0
  7. package/dist/CloudPanels-D0X449DD.js +227 -0
  8. package/dist/{CollaboratorBar-BGwbg9aN.js → CollaboratorBar-DMSWCrX3.js} +21 -21
  9. package/dist/ColorPicker-DCjFQCAg.js +501 -0
  10. package/dist/CommentsPanel-D5wQB1Kf.js +18 -0
  11. package/dist/CommentsSidebar-BoTIxpLE.js +481 -0
  12. package/dist/{cdn/chunks/CountdownBlock-vLTkTI9e.js → CountdownBlock-BFX8iU90.js} +19 -21
  13. package/dist/{cdn/chunks/CountdownToolbar-DPjcgcVR.js → CountdownToolbar-CSftc9Ma.js} +52 -53
  14. package/dist/{DesignReferenceSidebar-Bx96XFmK.js → DesignReferenceSidebar-DKsx2TiL.js} +72 -71
  15. package/dist/{IssuesPanel-Do7RLXsP.js → IssuesPanel-flKKwKpM.js} +38 -38
  16. package/dist/{LoadingTrack-BexpNuTV.js → LoadingTrack-C2T8ixEL.js} +3 -3
  17. package/dist/{MergeTagModeToggle-P-UguQHc.js → MergeTagModeToggle-PKCoKAoF.js} +43 -43
  18. package/dist/{MergeTagSuggestion-BJ43ihWR.js → MergeTagSuggestion-DGha0WRp.js} +46 -46
  19. package/dist/{cdn/chunks/NumberWithSuffix-BXrRdfq1.js → NumberWithSuffix-DdPCXfKf.js} +42 -44
  20. package/dist/{ParagraphEditor-6WN5jmXr.js → ParagraphEditor-vDU-5y6r.js} +200 -198
  21. package/dist/RestoreVersionDialog-DIn1muFD.js +86 -0
  22. package/dist/{RichTextEditorContent-fbYJXAio.js → RichTextEditorContent-I83k5DtQ.js} +44 -44
  23. package/dist/SaveBlockDialog-C_QvYAeL.js +266 -0
  24. package/dist/{SavedBlocksBrowserModal-GMrajvfV.js → SavedBlocksBrowserModal-CefWWcdT.js} +116 -115
  25. package/dist/{cdn/chunks/SavedBlocksPanels-CUtYoi5Z.js → SavedBlocksPanels-DnQwO-7O.js} +9 -11
  26. package/dist/{SavedBlocksPickBar-Dk_IaMO9.js → SavedBlocksPickBar-BsFubArH.js} +17 -17
  27. package/dist/{TemplateScoringPanel-BZUsb3FD.js → TemplateScoringPanel-Bv_bBsJi.js} +87 -87
  28. package/dist/TestEmailModal-STPWDP79.js +206 -0
  29. package/dist/{cdn/chunks/TestEmailPanel-B8y7JabA.js → TestEmailPanel-HYVjApKZ.js} +4 -6
  30. package/dist/TitleEditor-DnB0EJ_g.js +198 -0
  31. package/dist/TplModal-chvLhXmC.js +49 -0
  32. package/dist/VersionHistoryMenu-Cq4rH56t.js +155 -0
  33. package/dist/VersionHistoryPanels-D7k_F7-9.js +46 -0
  34. package/dist/VersionPreviewBanner-DthyHe6C.js +38 -0
  35. package/dist/{blockTypeIcons-C7wRSaT3.js → blockTypeIcons-B8r4jMBn.js} +6 -6
  36. package/dist/bundle-stats.json +8 -8
  37. package/dist/{ca-D1zgI9fQ.js → ca-Cqg9O8mx.js} +69 -6
  38. package/dist/cdn/chunks/{AiChatSidebar-CQ8KUmNB.js → AiChatSidebar-DTUoBH5a.js} +54 -54
  39. package/dist/cdn/chunks/AiChatSidebar-DTUoBH5a.js.map +1 -0
  40. package/dist/cdn/chunks/AiFeatureMenu-Dyh7mUMB.js +57 -0
  41. package/dist/cdn/chunks/AiFeatureMenu-Dyh7mUMB.js.map +1 -0
  42. package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js → BlockIssueBadge-UzSSOM_2.js} +13 -13
  43. package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js.map → BlockIssueBadge-UzSSOM_2.js.map} +1 -1
  44. package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js → BlockPreviewCanvas-DStQFo9P.js} +42 -42
  45. package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js.map → BlockPreviewCanvas-DStQFo9P.js.map} +1 -1
  46. package/dist/cdn/chunks/CloudHeaderExtras-BZVu7dnO.js +60 -0
  47. package/dist/cdn/chunks/CloudHeaderExtras-BZVu7dnO.js.map +1 -0
  48. package/dist/cdn/chunks/CloudPanels-CXbaBKHQ.js +227 -0
  49. package/dist/cdn/chunks/CloudPanels-CXbaBKHQ.js.map +1 -0
  50. package/dist/cdn/chunks/{CollaboratorBar-G_sZDZXw.js → CollaboratorBar-BH_lZlat.js} +22 -22
  51. package/dist/cdn/chunks/CollaboratorBar-BH_lZlat.js.map +1 -0
  52. package/dist/cdn/chunks/ColorPicker-CStXen0Y.js +502 -0
  53. package/dist/cdn/chunks/ColorPicker-CStXen0Y.js.map +1 -0
  54. package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js +20 -0
  55. package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js.map +1 -0
  56. package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js +460 -0
  57. package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js.map +1 -0
  58. package/dist/{CountdownBlock-DuyvGcr8.js → cdn/chunks/CountdownBlock-BYSrJWxg.js} +25 -23
  59. package/dist/cdn/chunks/{CountdownBlock-vLTkTI9e.js.map → CountdownBlock-BYSrJWxg.js.map} +1 -1
  60. package/dist/{CountdownToolbar-CBE9wRaV.js → cdn/chunks/CountdownToolbar-CZPtQIb8.js} +66 -63
  61. package/dist/cdn/chunks/{CountdownToolbar-DPjcgcVR.js.map → CountdownToolbar-CZPtQIb8.js.map} +1 -1
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-B-HFXV0W.js → DesignReferenceSidebar-sZWciECR.js} +64 -64
  63. package/dist/cdn/chunks/DesignReferenceSidebar-sZWciECR.js.map +1 -0
  64. package/dist/cdn/chunks/{IssuesPanel-DKTS4QVb.js → IssuesPanel-CHtetM9i.js} +36 -36
  65. package/dist/cdn/chunks/IssuesPanel-CHtetM9i.js.map +1 -0
  66. package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js → LoadingTrack-Dp_QZvAK.js} +3 -3
  67. package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js.map → LoadingTrack-Dp_QZvAK.js.map} +1 -1
  68. package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js → MergeTagModeToggle-ZwW-5EeN.js} +39 -39
  69. package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js.map → MergeTagModeToggle-ZwW-5EeN.js.map} +1 -1
  70. package/dist/cdn/chunks/{MergeTagSuggestion-Dn8dExNa.js → MergeTagSuggestion-DhllqTA3.js} +47 -47
  71. package/dist/cdn/chunks/MergeTagSuggestion-DhllqTA3.js.map +1 -0
  72. package/dist/{NumberWithSuffix-D37ZWiZh.js → cdn/chunks/NumberWithSuffix-yeQLcCyH.js} +37 -35
  73. package/dist/cdn/chunks/NumberWithSuffix-yeQLcCyH.js.map +1 -0
  74. package/dist/cdn/chunks/{ParagraphEditor-CZ5Z6AgG.js → ParagraphEditor-BJJ925sx.js} +234 -233
  75. package/dist/cdn/chunks/ParagraphEditor-BJJ925sx.js.map +1 -0
  76. package/dist/cdn/chunks/RestoreVersionDialog-B0Jadu6F.js +87 -0
  77. package/dist/cdn/chunks/RestoreVersionDialog-B0Jadu6F.js.map +1 -0
  78. package/dist/cdn/chunks/{RichTextEditorContent-DtL49Jpo.js → RichTextEditorContent-CfSq2wPR.js} +44 -44
  79. package/dist/cdn/chunks/RichTextEditorContent-CfSq2wPR.js.map +1 -0
  80. package/dist/cdn/chunks/SaveBlockDialog-C1DXh6P9.js +265 -0
  81. package/dist/cdn/chunks/SaveBlockDialog-C1DXh6P9.js.map +1 -0
  82. package/dist/cdn/chunks/{SavedBlocksBrowserModal-BkQXEUE2.js → SavedBlocksBrowserModal-BerMxAUt.js} +114 -113
  83. package/dist/cdn/chunks/SavedBlocksBrowserModal-BerMxAUt.js.map +1 -0
  84. package/dist/{SavedBlocksPanels-DEPmNhi6.js → cdn/chunks/SavedBlocksPanels-BUE4lzVP.js} +11 -9
  85. package/dist/cdn/chunks/{SavedBlocksPanels-CUtYoi5Z.js.map → SavedBlocksPanels-BUE4lzVP.js.map} +1 -1
  86. package/dist/cdn/chunks/{SavedBlocksPickBar-C80qJykl.js → SavedBlocksPickBar-4HrqQfvl.js} +17 -17
  87. package/dist/cdn/chunks/SavedBlocksPickBar-4HrqQfvl.js.map +1 -0
  88. package/dist/cdn/chunks/{TemplateScoringPanel-NucRtAP0.js → TemplateScoringPanel-Xdkp2EMY.js} +81 -81
  89. package/dist/cdn/chunks/TemplateScoringPanel-Xdkp2EMY.js.map +1 -0
  90. package/dist/cdn/chunks/TestEmailModal-yfmFiavR.js +206 -0
  91. package/dist/cdn/chunks/TestEmailModal-yfmFiavR.js.map +1 -0
  92. package/dist/{TestEmailPanel-DubocPxf.js → cdn/chunks/TestEmailPanel-DqTDh5ri.js} +6 -4
  93. package/dist/cdn/chunks/{TestEmailPanel-B8y7JabA.js.map → TestEmailPanel-DqTDh5ri.js.map} +1 -1
  94. package/dist/cdn/chunks/{TitleEditor-C8WDXf4P.js → TitleEditor-nUAF7fKr.js} +83 -83
  95. package/dist/cdn/chunks/TitleEditor-nUAF7fKr.js.map +1 -0
  96. package/dist/cdn/chunks/TplModal-C0IqikoV.js +50 -0
  97. package/dist/cdn/chunks/TplModal-C0IqikoV.js.map +1 -0
  98. package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js +148 -0
  99. package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js.map +1 -0
  100. package/dist/cdn/chunks/VersionHistoryPanels-6Hz9w20W.js +48 -0
  101. package/dist/cdn/chunks/VersionHistoryPanels-6Hz9w20W.js.map +1 -0
  102. package/dist/cdn/chunks/VersionPreviewBanner-D098_6_I.js +40 -0
  103. package/dist/cdn/chunks/VersionPreviewBanner-D098_6_I.js.map +1 -0
  104. package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js → blockTypeIcons-hX_W4dqo.js} +2 -2
  105. package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js.map → blockTypeIcons-hX_W4dqo.js.map} +1 -1
  106. package/dist/cdn/chunks/{ca-D1zgI9fQ.js → ca-Cqg9O8mx.js} +70 -7
  107. package/dist/cdn/chunks/ca-Cqg9O8mx.js.map +1 -0
  108. package/dist/{cloud-qINCmQbn.js → cdn/chunks/cloud-BA0OpRh-.js} +400 -609
  109. package/dist/cdn/chunks/cloud-BA0OpRh-.js.map +1 -0
  110. package/dist/cdn/chunks/createCloudRuntime-DmzV7OnU.js +344 -0
  111. package/dist/cdn/chunks/createCloudRuntime-DmzV7OnU.js.map +1 -0
  112. package/dist/{de-DHra3lvx.js → cdn/chunks/de-BXmeeFbX.js} +71 -6
  113. package/dist/cdn/chunks/de-BXmeeFbX.js.map +1 -0
  114. package/dist/{de-uVoSP1xF.js → cdn/chunks/de-Dbwm2cON.js} +3 -54
  115. package/dist/cdn/chunks/de-Dbwm2cON.js.map +1 -0
  116. package/dist/cdn/chunks/{dist-B2HKGHnc.js → dist-CM8TB0VD.js} +136 -136
  117. package/dist/cdn/chunks/{dist-B2HKGHnc.js.map → dist-CM8TB0VD.js.map} +1 -1
  118. package/dist/cdn/chunks/{dist-C6z8AjBC.js → dist-CYLJiSiH.js} +63 -63
  119. package/dist/cdn/chunks/{dist-C6z8AjBC.js.map → dist-CYLJiSiH.js.map} +1 -1
  120. package/dist/cdn/chunks/{draggable-DCs9qL-b.js → draggable-BfpsXFg7.js} +916 -905
  121. package/dist/cdn/chunks/{draggable-DCs9qL-b.js.map → draggable-BfpsXFg7.js.map} +1 -1
  122. package/dist/{en-DlqX2YWZ.js → cdn/chunks/en-DbBNy67B.js} +71 -6
  123. package/dist/cdn/chunks/en-DbBNy67B.js.map +1 -0
  124. package/dist/{en-CjhsJxb-.js → cdn/chunks/en-Dzw4EqNI.js} +3 -54
  125. package/dist/cdn/chunks/en-Dzw4EqNI.js.map +1 -0
  126. package/dist/cdn/chunks/{es-Cuss2snv.js → es-JUsAjxWu.js} +70 -7
  127. package/dist/cdn/chunks/es-JUsAjxWu.js.map +1 -0
  128. package/dist/cdn/chunks/{extensions-qhcN3RMT.js → extensions-CMcVw2uu.js} +53 -53
  129. package/dist/cdn/chunks/{extensions-qhcN3RMT.js.map → extensions-CMcVw2uu.js.map} +1 -1
  130. package/dist/{fr-Cm85vB2g.js → cdn/chunks/fr-J3qgXH4h.js} +71 -6
  131. package/dist/cdn/chunks/fr-J3qgXH4h.js.map +1 -0
  132. package/dist/cdn/chunks/{icons-CvYN6zrM.js → icons-C36Ha5VU.js} +11 -11
  133. package/dist/cdn/chunks/{icons-CvYN6zrM.js.map → icons-C36Ha5VU.js.map} +1 -1
  134. package/dist/{keys-fwF3qZax.js → cdn/chunks/keys-CbQuRX85.js} +6 -4
  135. package/dist/cdn/chunks/keys-CbQuRX85.js.map +1 -0
  136. package/dist/cdn/chunks/logger-ByvdoAwq.js +23 -0
  137. package/dist/cdn/chunks/logger-ByvdoAwq.js.map +1 -0
  138. package/dist/cdn/chunks/{nl-dmiIX7oT.js → nl-D_4DkqOi.js} +70 -7
  139. package/dist/cdn/chunks/nl-D_4DkqOi.js.map +1 -0
  140. package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js +23 -0
  141. package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js.map +1 -0
  142. package/dist/{pt-BR-CTzHTqJD.js → cdn/chunks/pt-BR-BxzQzWGJ.js} +3 -54
  143. package/dist/cdn/chunks/pt-BR-BxzQzWGJ.js.map +1 -0
  144. package/dist/cdn/chunks/{pt-BR-CaIG-7EM.js → pt-BR-KGURyEEQ.js} +70 -7
  145. package/dist/cdn/chunks/pt-BR-KGURyEEQ.js.map +1 -0
  146. package/dist/cdn/chunks/{src-BwbnXShT.js → src-BOjFLNf7.js} +148 -134
  147. package/dist/cdn/chunks/src-BOjFLNf7.js.map +1 -0
  148. package/dist/cdn/chunks/{src-xkGep9eN.js → src-Dq3fgSIx.js} +1448 -1458
  149. package/dist/cdn/chunks/src-Dq3fgSIx.js.map +1 -0
  150. package/dist/cdn/chunks/styleConstants-ByDqaYj_.js +61 -0
  151. package/dist/cdn/chunks/styleConstants-ByDqaYj_.js.map +1 -0
  152. package/dist/cdn/chunks/timeouts-DHPZQ0G3.js +6 -0
  153. package/dist/cdn/chunks/timeouts-DHPZQ0G3.js.map +1 -0
  154. package/dist/cdn/chunks/{tiptap-C44S1Cmh.js → tiptap-DmpGap5g.js} +40 -40
  155. package/dist/cdn/chunks/{tiptap-C44S1Cmh.js.map → tiptap-DmpGap5g.js.map} +1 -1
  156. package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js → useAliveFlag-Dtm174fG.js} +2 -2
  157. package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js.map → useAliveFlag-Dtm174fG.js.map} +1 -1
  158. package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js → useCloudI18n-NVa1aeY8.js} +5 -5
  159. package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js.map → useCloudI18n-NVa1aeY8.js.map} +1 -1
  160. package/dist/cdn/chunks/{useEditorCore-CcgxY-Gy.js → useEditorCore-CTu_qZ3W.js} +1434 -1147
  161. package/dist/cdn/chunks/useEditorCore-CTu_qZ3W.js.map +1 -0
  162. package/dist/cdn/chunks/{useI18n-UMs0F71x.js → useI18n-DVWCJJFH.js} +5 -5
  163. package/dist/cdn/chunks/{useI18n-UMs0F71x.js.map → useI18n-DVWCJJFH.js.map} +1 -1
  164. package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js → useMergeTag-BfZBRPQp.js} +4 -4
  165. package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js.map → useMergeTag-BfZBRPQp.js.map} +1 -1
  166. package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js → usePopoverPosition-BC-HA7TK.js} +3 -3
  167. package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js.map → usePopoverPosition-BC-HA7TK.js.map} +1 -1
  168. package/dist/cdn/editor.css +1 -1
  169. package/dist/cdn/editor.js +5103 -284
  170. package/dist/cdn/editor.js.map +1 -1
  171. package/dist/{check-On4TSac-.js → check-DZbmkMQe.js} +1 -1
  172. package/dist/{chevron-down-69EiBGoB.js → chevron-down-nYScOLeZ.js} +1 -1
  173. package/dist/{chevron-up-Dh3MG1Dw.js → chevron-up-CpYpDLnc.js} +1 -1
  174. package/dist/{circle-alert-cilwzafX.js → circle-alert-CuuK6thq.js} +1 -1
  175. package/dist/{clock-Dt0APH92.js → clock-DxkrtqOr.js} +1 -1
  176. package/dist/cloud-BAefVBb_.js +1444 -0
  177. package/dist/createCloudRuntime-Bt8W-ajI.js +342 -0
  178. package/dist/{createLucideIcon-C8WzBYCv.js → createLucideIcon-L-wQXW_R.js} +9 -9
  179. package/dist/{cdn/chunks/de-DHra3lvx.js → de-BXmeeFbX.js} +69 -8
  180. package/dist/{cdn/chunks/de-uVoSP1xF.js → de-Dbwm2cON.js} +1 -56
  181. package/dist/dist-B5iReTtK.js +251 -0
  182. package/dist/{dist-Cl8J0IES.js → dist-Ck9roB6K.js} +42 -42
  183. package/dist/{dist-BpKxrUi2.js → dist-CqcGTIiX.js} +46 -46
  184. package/dist/{cdn/chunks/en-DlqX2YWZ.js → en-DbBNy67B.js} +69 -8
  185. package/dist/{cdn/chunks/en-CjhsJxb-.js → en-Dzw4EqNI.js} +1 -56
  186. package/dist/{es-Cuss2snv.js → es-JUsAjxWu.js} +69 -6
  187. package/dist/{extensions-Cwg9S-0f.js → extensions-CX87G4aL.js} +42 -42
  188. package/dist/{cdn/chunks/fr-Cm85vB2g.js → fr-J3qgXH4h.js} +69 -8
  189. package/dist/{image-up-Ceggh_R3.js → image-up-DouZRGVt.js} +1 -1
  190. package/dist/index.d.ts +499 -23
  191. package/dist/{info-DO5odBcZ.js → info-puX5V6Iq.js} +1 -1
  192. package/dist/{cdn/chunks/keys-Cmc2Yl3D.js → keys-BxixS0TN.js} +4 -6
  193. package/dist/{list-checks-BSkPKbuI.js → list-checks-jw-ZlvWY.js} +1 -1
  194. package/dist/{loader-circle-bO7o7_HD.js → loader-circle-DqTxB7Kr.js} +1 -1
  195. package/dist/logger-BBlvSn6q.js +21 -0
  196. package/dist/{message-circle-BEkAk65X.js → message-circle-BZ7YpB22.js} +1 -1
  197. package/dist/{nl-dmiIX7oT.js → nl-D_4DkqOi.js} +69 -6
  198. package/dist/{pencil-t6m0EtKL.js → pencil-DmbRhTJu.js} +1 -1
  199. package/dist/preRenderCustomBlocks-BebjKtmw.js +21 -0
  200. package/dist/{cdn/chunks/pt-BR-CTzHTqJD.js → pt-BR-BxzQzWGJ.js} +1 -56
  201. package/dist/{pt-BR-CaIG-7EM.js → pt-BR-KGURyEEQ.js} +69 -6
  202. package/dist/{refresh-cw-CkOYVzK5.js → refresh-cw-OK_O-cL0.js} +1 -1
  203. package/dist/{runtime-dom.esm-bundler-CepEmvwF.js → runtime-dom.esm-bundler-BgKXIPLV.js} +144 -144
  204. package/dist/{scan-line-DwSVj25O.js → scan-line-DyaSTsJ5.js} +1 -1
  205. package/dist/{send-CWsWN8PQ.js → send-B-wasJJC.js} +1 -1
  206. package/dist/{shield-check-qje8Kufw.js → shield-check-DUIyRrTo.js} +1 -1
  207. package/dist/{sparkles-DumaWRW-.js → sparkles-DYEMATWC.js} +1 -1
  208. package/dist/style.css +1 -1
  209. package/dist/styleConstants-ByDqaYj_.js +59 -0
  210. package/dist/templatical-editor.js +5303 -289
  211. package/dist/{text-align-start-Ir8Ah4mT.js → text-align-start-CzjLeBLe.js} +1 -1
  212. package/dist/timeouts-DHPZQ0G3.js +4 -0
  213. package/dist/{trash-2-CklAFCmO.js → trash-2-C0shEPry.js} +1 -1
  214. package/dist/{triangle-alert-BBi4n93g.js → triangle-alert-Fw0ce8oQ.js} +1 -1
  215. package/dist/{upload-sVqqppuv.js → upload-D69C2CBx.js} +3 -4
  216. package/dist/{useAliveFlag-cvyBxHp7.js → useAliveFlag-BGIAZii_.js} +1 -1
  217. package/dist/{useCloudI18n-DKVm6PCa.js → useCloudI18n-CAZTZ9_a.js} +2 -2
  218. package/dist/{useEditorCore-P4UkhcyS.js → useEditorCore-B-kONNRw.js} +1604 -1320
  219. package/dist/{useI18n-DoVKdCTH.js → useI18n-BfXff_Sy.js} +2 -2
  220. package/dist/{useMergeTag-CYZk7dZD.js → useMergeTag-Dd4I7kge.js} +3 -3
  221. package/dist/usePopoverPosition-CxhCX3SQ.js +59 -0
  222. package/dist/{vue.runtime.esm-bundler-D1diBMsm.js → vue.runtime.esm-bundler-DzEsDRtY.js} +447 -436
  223. package/dist/{x-Mby7KlhS.js → x-BjTlFqRv.js} +1 -1
  224. package/package.json +7 -7
  225. package/dist/AiFeatureMenu-Cy-PVrNT.js +0 -63
  226. package/dist/BlockPreviewCanvas-BZKslwGI.js +0 -121
  227. package/dist/CloudEditor-CPRkQCRa.js +0 -1188
  228. package/dist/ColorPicker-ClETsjA3.js +0 -550
  229. package/dist/CommentsSidebar-CdRCCSDD.js +0 -435
  230. package/dist/SaveBlockDialog-21vDlEBS.js +0 -265
  231. package/dist/SnapshotHistory-Cb4WW2gf.js +0 -128
  232. package/dist/TestEmailModal-BHDKmd6B.js +0 -205
  233. package/dist/TitleEditor-Cy4B3UNe.js +0 -198
  234. package/dist/TplModal-Dv9zgSWI.js +0 -49
  235. package/dist/cdn/chunks/AiChatSidebar-CQ8KUmNB.js.map +0 -1
  236. package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js +0 -63
  237. package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js.map +0 -1
  238. package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js +0 -1166
  239. package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js.map +0 -1
  240. package/dist/cdn/chunks/CollaboratorBar-G_sZDZXw.js.map +0 -1
  241. package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js +0 -552
  242. package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js.map +0 -1
  243. package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js +0 -412
  244. package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js.map +0 -1
  245. package/dist/cdn/chunks/DesignReferenceSidebar-B-HFXV0W.js.map +0 -1
  246. package/dist/cdn/chunks/IssuesPanel-DKTS4QVb.js.map +0 -1
  247. package/dist/cdn/chunks/MergeTagSuggestion-Dn8dExNa.js.map +0 -1
  248. package/dist/cdn/chunks/NumberWithSuffix-BXrRdfq1.js.map +0 -1
  249. package/dist/cdn/chunks/ParagraphEditor-CZ5Z6AgG.js.map +0 -1
  250. package/dist/cdn/chunks/RichTextEditorContent-DtL49Jpo.js.map +0 -1
  251. package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js +0 -264
  252. package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js.map +0 -1
  253. package/dist/cdn/chunks/SavedBlocksBrowserModal-BkQXEUE2.js.map +0 -1
  254. package/dist/cdn/chunks/SavedBlocksPickBar-C80qJykl.js.map +0 -1
  255. package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js +0 -121
  256. package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js.map +0 -1
  257. package/dist/cdn/chunks/TemplateScoringPanel-NucRtAP0.js.map +0 -1
  258. package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js +0 -205
  259. package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js.map +0 -1
  260. package/dist/cdn/chunks/TitleEditor-C8WDXf4P.js.map +0 -1
  261. package/dist/cdn/chunks/TplModal-Ce0QuHyo.js +0 -50
  262. package/dist/cdn/chunks/TplModal-Ce0QuHyo.js.map +0 -1
  263. package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +0 -1
  264. package/dist/cdn/chunks/cloud-DcC8bPwn.js +0 -1787
  265. package/dist/cdn/chunks/cloud-DcC8bPwn.js.map +0 -1
  266. package/dist/cdn/chunks/de-DHra3lvx.js.map +0 -1
  267. package/dist/cdn/chunks/de-uVoSP1xF.js.map +0 -1
  268. package/dist/cdn/chunks/en-CjhsJxb-.js.map +0 -1
  269. package/dist/cdn/chunks/en-DlqX2YWZ.js.map +0 -1
  270. package/dist/cdn/chunks/es-Cuss2snv.js.map +0 -1
  271. package/dist/cdn/chunks/fr-Cm85vB2g.js.map +0 -1
  272. package/dist/cdn/chunks/keys-Cmc2Yl3D.js.map +0 -1
  273. package/dist/cdn/chunks/nl-dmiIX7oT.js.map +0 -1
  274. package/dist/cdn/chunks/pt-BR-CTzHTqJD.js.map +0 -1
  275. package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +0 -1
  276. package/dist/cdn/chunks/src-BwbnXShT.js.map +0 -1
  277. package/dist/cdn/chunks/src-xkGep9eN.js.map +0 -1
  278. package/dist/cdn/chunks/styles-DLAfU4Uf.js +0 -4140
  279. package/dist/cdn/chunks/styles-DLAfU4Uf.js.map +0 -1
  280. package/dist/cdn/chunks/timeouts-SsLMC4a3.js +0 -6
  281. package/dist/cdn/chunks/timeouts-SsLMC4a3.js.map +0 -1
  282. package/dist/cdn/chunks/useEditorCore-CcgxY-Gy.js.map +0 -1
  283. package/dist/styles-Dx__pP9O.js +0 -4318
  284. package/dist/usePopoverPosition-C0dPEF4X.js +0 -308
@@ -0,0 +1,86 @@
1
+ import { Dt as e, c as t, d as n, g as r, h as i, k as a, kt as o, l as s, rt as c, u as l, v as u, z as d } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
2
+ import { t as f } from "./useI18n-BfXff_Sy.js";
3
+ import { t as p } from "./loader-circle-DqTxB7Kr.js";
4
+ import { t as m } from "./triangle-alert-Fw0ce8oQ.js";
5
+ import { d as h, v as g, x as _ } from "./styleConstants-ByDqaYj_.js";
6
+ import { t as v } from "./TplModal-chvLhXmC.js";
7
+ //#region src/components/RestoreVersionDialog.vue?vue&type=script&setup=true&lang.ts
8
+ var y = ["aria-busy"], b = { class: "tpl:flex tpl:items-center tpl:gap-2" }, x = {
9
+ id: "tpl-restore-version-title",
10
+ class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
11
+ }, S = {
12
+ id: "tpl-restore-version-body",
13
+ class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
14
+ }, C = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, w = ["disabled"], T = ["disabled"], E = ["disabled"], D = /* @__PURE__ */ u({
15
+ __name: "RestoreVersionDialog",
16
+ props: {
17
+ visible: { type: Boolean },
18
+ canSave: { type: Boolean },
19
+ isBusy: { type: Boolean }
20
+ },
21
+ emits: [
22
+ "cancel",
23
+ "save-and-restore",
24
+ "discard-and-restore"
25
+ ],
26
+ setup(u, { emit: D }) {
27
+ let O = D, { t: k } = f();
28
+ return (f, D) => (a(), s(v, {
29
+ visible: u.visible,
30
+ onClose: D[3] ||= (e) => O("cancel")
31
+ }, {
32
+ default: d(() => [t("div", {
33
+ role: "alertdialog",
34
+ "aria-modal": "true",
35
+ "aria-busy": u.isBusy,
36
+ "aria-labelledby": "tpl-restore-version-title",
37
+ "aria-describedby": "tpl-restore-version-body",
38
+ "data-testid": "restore-version-dialog",
39
+ class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:w-full tpl:max-w-md tpl:flex-col tpl:gap-4 tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
40
+ style: {
41
+ "background-color": "var(--tpl-bg-elevated)",
42
+ "box-shadow": "var(--tpl-shadow-xl)"
43
+ }
44
+ }, [
45
+ t("div", b, [r(c(m), {
46
+ size: 18,
47
+ "stroke-width": 2,
48
+ class: "tpl:text-[var(--tpl-warning)]"
49
+ }), t("h3", x, o(c(k).versionPreview.restoreConfirm.title), 1)]),
50
+ t("p", S, o(u.canSave ? c(k).versionPreview.restoreConfirm.unsavedWithSave : c(k).versionPreview.restoreConfirm.unsavedNoSave), 1),
51
+ t("div", C, [
52
+ t("button", {
53
+ type: "button",
54
+ "data-testid": "restore-version-cancel",
55
+ class: e(c(_)),
56
+ disabled: u.isBusy,
57
+ onClick: D[0] ||= (e) => O("cancel")
58
+ }, o(c(k).versionPreview.restoreConfirm.cancel), 11, w),
59
+ t("button", {
60
+ type: "button",
61
+ "data-testid": "restore-version-discard",
62
+ class: e(c(h)),
63
+ disabled: u.isBusy,
64
+ onClick: D[1] ||= (e) => O("discard-and-restore")
65
+ }, o(c(k).versionPreview.restoreConfirm.restoreAnyway), 11, T),
66
+ u.canSave ? (a(), n("button", {
67
+ key: 0,
68
+ type: "button",
69
+ "data-testid": "restore-version-save-first",
70
+ class: e(c(g)),
71
+ disabled: u.isBusy,
72
+ onClick: D[2] ||= (e) => O("save-and-restore")
73
+ }, [u.isBusy ? (a(), s(c(p), {
74
+ key: 0,
75
+ class: "tpl:animate-spin",
76
+ size: 12,
77
+ "stroke-width": 2
78
+ })) : l("", !0), i(" " + o(c(k).versionPreview.restoreConfirm.saveAndRestore), 1)], 10, E)) : l("", !0)
79
+ ])
80
+ ], 8, y)]),
81
+ _: 1
82
+ }, 8, ["visible"]));
83
+ }
84
+ });
85
+ //#endregion
86
+ export { D as default };
@@ -1,11 +1,11 @@
1
- import { C as e, Dt as t, N as n, O as r, Ot as i, P as a, _ as o, c as s, d as c, h as l, i as u, l as d, m as f, nt as p, s as m, u as h, x as g, z as _ } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
- import { a as v, c as y } from "./runtime-dom.esm-bundler-CepEmvwF.js";
3
- import { n as b } from "./usePopoverPosition-C0dPEF4X.js";
4
- import { U as x, V as S, g as C } from "./keys-fwF3qZax.js";
5
- import { t as w } from "./useI18n-DoVKdCTH.js";
6
- import { t as T } from "./createLucideIcon-C8WzBYCv.js";
7
- import { t as E } from "./x-Mby7KlhS.js";
8
- import { t as D } from "./ColorPicker-ClETsjA3.js";
1
+ import { B as e, F as t, Ot as n, P as r, S as i, c as a, d as o, g as s, h as c, i as l, k as u, kt as d, l as f, rt as p, s as m, u as h, v as g, w as _ } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
2
+ import { a as v, c as y } from "./runtime-dom.esm-bundler-BgKXIPLV.js";
3
+ import { B as b, H as x, h as S } from "./keys-BxixS0TN.js";
4
+ import { t as C } from "./useI18n-BfXff_Sy.js";
5
+ import { n as w } from "./usePopoverPosition-CxhCX3SQ.js";
6
+ import { t as T } from "./createLucideIcon-L-wQXW_R.js";
7
+ import { t as E } from "./x-BjTlFqRv.js";
8
+ import { t as D } from "./ColorPicker-DCjFQCAg.js";
9
9
  var O = T("bold", [["path", {
10
10
  d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",
11
11
  key: "mg9rjx"
@@ -43,9 +43,9 @@ var O = T("bold", [["path", {
43
43
  }, P = ["aria-label"], F = { class: "tpl:p-5" }, I = { class: "tpl:mb-4 tpl:last:mb-0" }, L = {
44
44
  for: "tpl-link-dialog-url",
45
45
  class: "tpl:mb-1.5 tpl:block tpl:text-xs tpl:font-medium tpl:tracking-wide tpl:text-[var(--tpl-text-muted)] tpl:uppercase"
46
- }, R = ["placeholder"], z = { class: "tpl:mb-4 tpl:last:mb-0" }, B = { class: "tpl:mb-1.5 tpl:block tpl:text-xs tpl:font-medium tpl:tracking-wide tpl:text-[var(--tpl-text-muted)] tpl:uppercase" }, V = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-t tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:px-5 tpl:py-4" }, H = { class: "tpl:ml-auto tpl:flex tpl:gap-2" }, U = /* @__PURE__ */ o({
46
+ }, R = ["placeholder"], z = { class: "tpl:mb-4 tpl:last:mb-0" }, B = { class: "tpl:mb-1.5 tpl:block tpl:text-xs tpl:font-medium tpl:tracking-wide tpl:text-[var(--tpl-text-muted)] tpl:uppercase" }, V = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-t tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:px-5 tpl:py-4" }, H = { class: "tpl:ml-auto tpl:flex tpl:gap-2" }, U = /* @__PURE__ */ g({
47
47
  __name: "RichTextLinkDialog",
48
- props: /*@__PURE__*/ e({
48
+ props: /*@__PURE__*/ _({
49
49
  visible: { type: Boolean },
50
50
  isEditingLink: { type: Boolean }
51
51
  }, {
@@ -56,7 +56,7 @@ var O = T("bold", [["path", {
56
56
  dialogRef: { required: !0 },
57
57
  dialogRefModifiers: {}
58
58
  }),
59
- emits: /*@__PURE__*/ e([
59
+ emits: /*@__PURE__*/ _([
60
60
  "close",
61
61
  "insert",
62
62
  "remove",
@@ -66,60 +66,60 @@ var O = T("bold", [["path", {
66
66
  "update:linkColor",
67
67
  "update:dialogRef"
68
68
  ]),
69
- setup(e, { emit: n }) {
70
- let o = a(e, "linkUrl"), f = a(e, "linkColor"), T = a(e, "dialogRef"), O = n, k = g(S, null), A = g(x, null), U = b(), W = g(C, null), G = m(() => W?.content.value.settings.linkColor || "#2c85de"), { t: K } = w();
71
- return (n, a) => p(U) ? (r(), d(u, {
69
+ setup(r, { emit: c }) {
70
+ let g = t(r, "linkUrl"), _ = t(r, "linkColor"), T = t(r, "dialogRef"), O = c, k = i(b, null), A = i(x, null), U = w(), W = i(S, null), G = m(() => W?.content.value.settings.linkColor || "#2c85de"), { t: K } = C();
71
+ return (t, i) => p(U) ? (u(), f(l, {
72
72
  key: 0,
73
73
  to: p(U)
74
- }, [e.visible ? (r(), c("div", {
74
+ }, [r.visible ? (u(), o("div", {
75
75
  key: 0,
76
76
  "data-tpl-theme": p(A),
77
77
  class: "tpl tpl-link-dialog tpl:fixed tpl:inset-0 tpl:z-modal tpl:flex tpl:items-center tpl:justify-center",
78
- style: t(p(k)),
79
- onClick: a[7] ||= y((e) => O("close"), ["self"])
80
- }, [s("div", {
78
+ style: n(p(k)),
79
+ onClick: i[7] ||= y((e) => O("close"), ["self"])
80
+ }, [a("div", {
81
81
  ref: (e) => T.value = e,
82
82
  role: "dialog",
83
83
  "aria-modal": "true",
84
84
  "aria-labelledby": "tpl-link-dialog-title",
85
- class: "tpl:w-[400px] tpl:overflow-hidden tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:shadow-lg"
85
+ class: "tpl:w-[400px] tpl:overflow-hidden tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-lg)]"
86
86
  }, [
87
- s("div", M, [s("h4", N, i(e.isEditingLink ? p(K).linkDialog.editLink : p(K).linkDialog.insertLink), 1), s("button", {
87
+ a("div", M, [a("h4", N, d(r.isEditingLink ? p(K).linkDialog.editLink : p(K).linkDialog.insertLink), 1), a("button", {
88
88
  type: "button",
89
89
  "aria-label": p(K).linkDialog.cancel,
90
90
  class: "tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded tpl:border-none tpl:bg-transparent tpl:p-0 tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]",
91
- onClick: a[0] ||= (e) => O("close")
92
- }, [l(p(E), {
91
+ onClick: i[0] ||= (e) => O("close")
92
+ }, [s(p(E), {
93
93
  size: 16,
94
94
  "stroke-width": 2
95
95
  })], 8, P)]),
96
- s("div", F, [s("div", I, [s("label", L, i(p(K).linkDialog.urlLabel), 1), _(s("input", {
96
+ a("div", F, [a("div", I, [a("label", L, d(p(K).linkDialog.urlLabel), 1), e(a("input", {
97
97
  id: "tpl-link-dialog-url",
98
- "onUpdate:modelValue": a[1] ||= (e) => o.value = e,
98
+ "onUpdate:modelValue": i[1] ||= (e) => g.value = e,
99
99
  type: "url",
100
- class: "tpl:w-full tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2.5 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:outline-none tpl:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]",
100
+ class: "tpl:w-full tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2.5 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:transition-all tpl:outline-none tpl:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]",
101
101
  placeholder: p(K).linkDialog.urlPlaceholder,
102
102
  autofocus: "",
103
- onKeydown: a[2] ||= (e) => O("keydown", e)
104
- }, null, 40, R), [[v, o.value]])]), s("div", z, [s("label", B, i(p(K).linkDialog.colorLabel), 1), l(D, {
105
- "model-value": f.value,
103
+ onKeydown: i[2] ||= (e) => O("keydown", e)
104
+ }, null, 40, R), [[v, g.value]])]), a("div", z, [a("label", B, d(p(K).linkDialog.colorLabel), 1), s(D, {
105
+ "model-value": _.value,
106
106
  "seed-color": G.value,
107
- "onUpdate:modelValue": a[3] ||= (e) => f.value = e
107
+ "onUpdate:modelValue": i[3] ||= (e) => _.value = e
108
108
  }, null, 8, ["model-value", "seed-color"])])]),
109
- s("div", V, [e.isEditingLink ? (r(), c("button", {
109
+ a("div", V, [r.isEditingLink ? (u(), o("button", {
110
110
  key: 0,
111
111
  type: "button",
112
- class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-danger)] tpl:bg-transparent tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:text-[var(--tpl-danger)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-danger-light)]",
113
- onClick: a[4] ||= (e) => O("remove")
114
- }, i(p(K).linkDialog.removeLink), 1)) : h("", !0), s("div", H, [s("button", {
112
+ class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-danger)] tpl:bg-transparent tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:text-[var(--tpl-danger)] tpl:transition-all tpl:hover:bg-[var(--tpl-danger-light)]",
113
+ onClick: i[4] ||= (e) => O("remove")
114
+ }, d(p(K).linkDialog.removeLink), 1)) : h("", !0), a("div", H, [a("button", {
115
115
  type: "button",
116
- class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-transparent tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]",
117
- onClick: a[5] ||= (e) => O("close")
118
- }, i(p(K).linkDialog.cancel), 1), s("button", {
116
+ class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-transparent tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]",
117
+ onClick: i[5] ||= (e) => O("close")
118
+ }, d(p(K).linkDialog.cancel), 1), a("button", {
119
119
  type: "button",
120
- class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border-none tpl:bg-[var(--tpl-primary)] tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-primary-hover)] tpl:text-[var(--tpl-bg)]",
121
- onClick: a[6] ||= (e) => O("insert")
122
- }, i(e.isEditingLink ? p(K).linkDialog.updateLink : p(K).linkDialog.insertLink), 1)])])
120
+ class: "tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:rounded-md tpl:border-none tpl:bg-[var(--tpl-primary)] tpl:px-4 tpl:py-2 tpl:text-[13px] tpl:font-medium tpl:transition-all tpl:hover:bg-[var(--tpl-primary-hover)] tpl:text-[var(--tpl-on-primary)]",
121
+ onClick: i[6] ||= (e) => O("insert")
122
+ }, d(r.isEditingLink ? p(K).linkDialog.updateLink : p(K).linkDialog.insertLink), 1)])])
123
123
  ], 512)], 12, j)) : h("", !0)], 8, ["to"])) : h("", !0);
124
124
  }
125
125
  }), W = {
@@ -128,7 +128,7 @@ var O = T("bold", [["path", {
128
128
  }, G = { class: "tpl:animate-pulse tpl:text-[var(--tpl-text-dim)]" }, K = {
129
129
  key: 1,
130
130
  class: "tpl-text-editable tpl:min-h-[1.5em] tpl:rounded tpl:border tpl:border-dashed tpl:p-2 tpl:text-center tpl:text-xs tpl:border-[var(--tpl-danger)] tpl:text-[var(--tpl-text-muted)]"
131
- }, q = /* @__PURE__ */ o({
131
+ }, q = /* @__PURE__ */ g({
132
132
  __name: "RichTextEditorContent",
133
133
  props: {
134
134
  editor: {},
@@ -138,11 +138,11 @@ var O = T("bold", [["path", {
138
138
  },
139
139
  emits: ["retry"],
140
140
  setup(e, { emit: t }) {
141
- let a = t, { t: o } = w();
142
- return (t, l) => e.isLoading ? (r(), c("div", W, [s("div", G, i(p(o).errors.editorLoading), 1)])) : e.initError ? (r(), c("div", K, [f(i(p(o).errors.editorLoadFailed) + " ", 1), s("button", {
141
+ let n = t, { t: i } = C();
142
+ return (t, s) => e.isLoading ? (u(), o("div", W, [a("div", G, d(p(i).errors.editorLoading), 1)])) : e.initError ? (u(), o("div", K, [c(d(p(i).errors.editorLoadFailed) + " ", 1), a("button", {
143
143
  class: "tpl:ml-1 tpl:cursor-pointer tpl:border-none tpl:bg-transparent tpl:p-0 tpl:underline tpl:text-[var(--tpl-primary)]",
144
- onClick: l[0] ||= (e) => a("retry")
145
- }, i(p(o).errors.retry), 1)])) : e.editorContent && e.editor ? (r(), d(n(e.editorContent), {
144
+ onClick: s[0] ||= (e) => n("retry")
145
+ }, d(p(i).errors.retry), 1)])) : e.editorContent && e.editor ? (u(), f(r(e.editorContent), {
146
146
  key: 2,
147
147
  editor: e.editor,
148
148
  class: "tpl-text-editable tpl:min-h-[1.5em] tpl:rounded tpl:border tpl:border-dashed tpl:border-[var(--tpl-primary)] tpl:p-2"
@@ -0,0 +1,266 @@
1
+ import { B as e, D as t, Dt as n, E as r, L as i, Ot as a, P as o, S as s, X as c, c as l, d as u, g as d, h as f, j as p, k as m, kt as h, l as g, r as _, rt as v, s as y, u as b, v as x, z as S } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
2
+ import { a as C, c as w, s as T } from "./runtime-dom.esm-bundler-BgKXIPLV.js";
3
+ import { B as E, N as D, c as O } from "./useEditorCore-B-kONNRw.js";
4
+ import { L as k, W as A, f as j, h as ee } from "./keys-BxixS0TN.js";
5
+ import { t as te } from "./useI18n-BfXff_Sy.js";
6
+ import { t as M } from "./chevron-down-nYScOLeZ.js";
7
+ import { t as N } from "./chevron-up-CpYpDLnc.js";
8
+ import { t as P } from "./loader-circle-DqTxB7Kr.js";
9
+ import { n as F } from "./emailFrameWidth-BmFCN2dp.js";
10
+ import { v as I } from "./styleConstants-ByDqaYj_.js";
11
+ import { t as L } from "./TplModal-chvLhXmC.js";
12
+ import { t as R } from "./BlockPreviewCanvas-GZbr0ph5.js";
13
+ //#region src/components/SavedBlockPreviewRow.vue?vue&type=script&setup=true&lang.ts
14
+ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, H = {
15
+ key: 0,
16
+ "data-testid": "saved-blocks-preview-fade",
17
+ "aria-hidden": "true",
18
+ class: "tpl:pointer-events-none tpl:absolute tpl:inset-x-0 tpl:bottom-0 tpl:h-10",
19
+ style: { background: "linear-gradient(\n to bottom,\n transparent,\n var(--tpl-bg) 90%\n )" }
20
+ }, U = ["aria-label", "aria-expanded"], W = 240, G = /* @__PURE__ */ x({
21
+ __name: "SavedBlockPreviewRow",
22
+ props: {
23
+ block: {},
24
+ position: {},
25
+ total: {}
26
+ },
27
+ emits: ["move"],
28
+ setup(e, { emit: n }) {
29
+ let i = e, p = n, { t: _, format: x } = te(), S = s(j, []), C = s(ee, null), O = y(() => F(C?.content.value.settings)), k = c(null), A = c(null), P = c(1), I = c(null), L = c(!1), G = null, K = y(() => I.value !== null && I.value > W), q = y(() => I.value === null ? null : L.value || !K.value ? I.value : W);
30
+ function J() {
31
+ let e = k.value, t = A.value;
32
+ if (!e || !t) return;
33
+ let n = e.clientWidth;
34
+ if (n <= 0) return;
35
+ let r = Math.min(1, n / O.value);
36
+ P.value = r, I.value = t.offsetHeight * r;
37
+ }
38
+ t(() => {
39
+ J(), !(typeof ResizeObserver > "u") && (G = new ResizeObserver(() => J()), k.value && G.observe(k.value), A.value && G.observe(A.value));
40
+ }), r(() => {
41
+ G?.disconnect(), G = null;
42
+ });
43
+ let Y = y(() => E(i.block, _, S)), X = y(() => x(_.savedBlocks.reorderHandle, {
44
+ block: Y.value,
45
+ position: i.position,
46
+ total: i.total
47
+ })), Z = y(() => x(L.value ? _.savedBlocks.collapsePreview : _.savedBlocks.expandPreview, { block: Y.value }));
48
+ return (t, n) => (m(), u("div", {
49
+ "data-testid": "saved-blocks-reorder-row",
50
+ "data-block-id": e.block.id,
51
+ class: "tpl:flex tpl:items-start tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-md)] tpl:border tpl:p-1.5 tpl:border-[var(--tpl-border)]",
52
+ style: { "background-color": "var(--tpl-bg)" }
53
+ }, [l("button", {
54
+ type: "button",
55
+ "data-testid": "saved-blocks-reorder-handle",
56
+ class: "tpl-saved-block-reorder-handle tpl:mt-0.5 tpl:shrink-0 tpl:cursor-grab tpl:rounded tpl:border-none tpl:bg-transparent tpl:p-0.5 tpl:text-[var(--tpl-text-dim)]",
57
+ "aria-label": X.value,
58
+ title: v(_).savedBlocks.reorderHint,
59
+ onKeydown: [n[0] ||= T(w((e) => p("move", -1), ["prevent"]), ["up"]), n[1] ||= T(w((e) => p("move", 1), ["prevent"]), ["down"])]
60
+ }, [d(v(D), {
61
+ size: 14,
62
+ "stroke-width": 1.5
63
+ })], 40, B), l("div", V, [
64
+ l("div", {
65
+ ref_key: "frameEl",
66
+ ref: k,
67
+ class: "tpl:overflow-hidden",
68
+ style: a({ height: q.value === null ? void 0 : `${q.value}px` })
69
+ }, [l("div", {
70
+ ref_key: "contentEl",
71
+ ref: A,
72
+ style: a({
73
+ width: `${O.value}px`,
74
+ transform: `scale(${P.value})`,
75
+ transformOrigin: "top left"
76
+ })
77
+ }, [d(R, { blocks: [e.block] }, null, 8, ["blocks"])], 4)], 4),
78
+ K.value && !L.value ? (m(), u("div", H)) : b("", !0),
79
+ K.value ? (m(), u("button", {
80
+ key: 1,
81
+ type: "button",
82
+ "data-testid": "saved-blocks-preview-toggle",
83
+ class: "tpl:absolute tpl:bottom-1 tpl:right-1 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-0.5 tpl:rounded tpl:border tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)]",
84
+ "aria-label": Z.value,
85
+ "aria-expanded": L.value,
86
+ onClick: n[2] ||= (e) => L.value = !L.value
87
+ }, [(m(), g(o(L.value ? v(N) : v(M)), {
88
+ size: 11,
89
+ "stroke-width": 2
90
+ })), f(" " + h(L.value ? v(_).savedBlocks.collapse : v(_).savedBlocks.expand), 1)], 8, U)) : b("", !0)
91
+ ])], 8, z));
92
+ }
93
+ }), K = ["aria-busy"], q = {
94
+ id: "tpl-save-block-title",
95
+ class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
96
+ }, J = { class: "tpl:mb-3 tpl:shrink-0" }, Y = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, X = ["placeholder", "disabled"], Z = { class: "tpl:mb-3 tpl:shrink-0" }, ne = {
97
+ for: "tpl-save-block-category",
98
+ class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]"
99
+ }, re = ["placeholder", "disabled"], ie = { id: "tpl-saved-block-categories" }, ae = ["value"], oe = {
100
+ "data-testid": "saved-blocks-save-summary",
101
+ class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
102
+ }, se = { class: "tpl:text-[var(--tpl-text-dim)]" }, ce = {
103
+ key: 0,
104
+ class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]"
105
+ }, le = {
106
+ class: "tpl-sr-only",
107
+ role: "status",
108
+ "aria-live": "polite",
109
+ "aria-atomic": "true"
110
+ }, ue = {
111
+ key: 1,
112
+ role: "alert",
113
+ class: "tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]"
114
+ }, de = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, fe = ["disabled"], pe = ["disabled"], me = {
115
+ key: 0,
116
+ class: "tpl:flex tpl:items-center tpl:gap-1.5"
117
+ }, he = { key: 1 }, Q = /* @__PURE__ */ x({
118
+ __name: "SaveBlockDialog",
119
+ props: {
120
+ visible: { type: Boolean },
121
+ pickedIds: {}
122
+ },
123
+ emits: ["close", "saved"],
124
+ setup(t, { emit: r }) {
125
+ let a = t, o = r, { t: x, format: w } = te(), T = A(ee, "SaveBlockDialog"), D = A(k, "SaveBlockDialog"), M = s(j, []), N = c(""), F = c(""), R = c(!1), z = c(null), B = c(""), V = c([]), H = y(() => {
126
+ let e = new Map(T.content.value.blocks.map((e) => [e.id, e]));
127
+ return V.value.map((t) => e.get(t)).filter((e) => e !== void 0);
128
+ }), U = y({
129
+ get: () => H.value,
130
+ set: (e) => {
131
+ V.value = e.map((e) => e.id);
132
+ }
133
+ });
134
+ function W(e, t) {
135
+ let n = H.value.map((e) => e.id), r = n.indexOf(e), i = r + t;
136
+ if (r === -1 || i < 0 || i >= n.length) return;
137
+ [n[r], n[i]] = [n[i], n[r]], V.value = n;
138
+ let a = H.value[i];
139
+ B.value = a ? w(x.savedBlocks.reorderAnnouncement, {
140
+ block: Q(a),
141
+ position: i + 1,
142
+ total: n.length
143
+ }) : "";
144
+ }
145
+ function Q(e) {
146
+ return E(e, x, M);
147
+ }
148
+ let ge = y(() => H.value.map(Q).join(", "));
149
+ i(() => a.visible, (e) => {
150
+ e && (N.value = "", F.value = "", z.value = null, B.value = "", V.value = [...a.pickedIds]);
151
+ }, { immediate: !0 });
152
+ let _e = y(() => N.value.trim().length > 0 && H.value.length > 0 && !R.value);
153
+ async function ve() {
154
+ if (!_e.value) return;
155
+ let e = H.value;
156
+ if (e.length !== 0) {
157
+ R.value = !0, z.value = null;
158
+ try {
159
+ await D.create(N.value.trim(), e, F.value.trim() || void 0), o("saved"), o("close");
160
+ } catch (e) {
161
+ z.value = e.message;
162
+ } finally {
163
+ R.value = !1;
164
+ }
165
+ }
166
+ }
167
+ function $() {
168
+ R.value || o("close");
169
+ }
170
+ function ye(e) {
171
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), ve()), e.key === "Escape" && $();
172
+ }
173
+ return (r, i) => (m(), g(L, {
174
+ visible: t.visible,
175
+ onClose: $,
176
+ onKeydown: ye
177
+ }, {
178
+ default: S(() => [l("div", {
179
+ role: "dialog",
180
+ "aria-modal": "true",
181
+ "aria-busy": R.value,
182
+ "aria-labelledby": "tpl-save-block-title",
183
+ class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
184
+ style: {
185
+ "background-color": "var(--tpl-bg-elevated)",
186
+ "box-shadow": "var(--tpl-shadow-xl)",
187
+ "max-height": "90vh"
188
+ }
189
+ }, [
190
+ l("h3", q, h(v(x).savedBlocks.saveAsBlock), 1),
191
+ l("div", J, [l("label", Y, h(v(x).savedBlocks.name), 1), e(l("input", {
192
+ "onUpdate:modelValue": i[0] ||= (e) => N.value = e,
193
+ type: "text",
194
+ "data-testid": "saved-blocks-name-input",
195
+ placeholder: v(x).savedBlocks.namePlaceholder,
196
+ class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
197
+ disabled: R.value
198
+ }, null, 8, X), [[C, N.value]])]),
199
+ l("div", Z, [
200
+ l("label", ne, h(v(x).savedBlocks.category), 1),
201
+ e(l("input", {
202
+ id: "tpl-save-block-category",
203
+ "onUpdate:modelValue": i[1] ||= (e) => F.value = e,
204
+ type: "text",
205
+ "data-testid": "saved-blocks-category-input",
206
+ list: "tpl-saved-block-categories",
207
+ placeholder: v(x).savedBlocks.categoryPlaceholder,
208
+ class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
209
+ disabled: R.value
210
+ }, null, 8, re), [[C, F.value]]),
211
+ l("datalist", ie, [(m(!0), u(_, null, p(v(D).categories.value, (e) => (m(), u("option", {
212
+ key: e,
213
+ value: e
214
+ }, null, 8, ae))), 128))])
215
+ ]),
216
+ l("p", oe, [f(h(v(w)(v(x).savedBlocks.savingCount, { count: H.value.length })) + " ", 1), l("span", se, h(ge.value), 1)]),
217
+ H.value.length > 1 ? (m(), u("p", ce, h(v(x).savedBlocks.reorderHint), 1)) : b("", !0),
218
+ d(v(O), {
219
+ modelValue: U.value,
220
+ "onUpdate:modelValue": i[2] ||= (e) => U.value = e,
221
+ "data-testid": "saved-blocks-reorder-list",
222
+ animation: 150,
223
+ "ghost-class": "tpl-ghost",
224
+ "drag-class": "tpl-dragging",
225
+ handle: ".tpl-saved-block-reorder-handle",
226
+ "force-fallback": !0,
227
+ class: "tpl:mb-4 tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto"
228
+ }, {
229
+ default: S(() => [(m(!0), u(_, null, p(U.value, (e, t) => (m(), g(G, {
230
+ key: e.id,
231
+ block: e,
232
+ position: t + 1,
233
+ total: U.value.length,
234
+ onMove: (t) => W(e.id, t)
235
+ }, null, 8, [
236
+ "block",
237
+ "position",
238
+ "total",
239
+ "onMove"
240
+ ]))), 128))]),
241
+ _: 1
242
+ }, 8, ["modelValue"]),
243
+ l("div", le, h(B.value), 1),
244
+ z.value ? (m(), u("p", ue, h(z.value), 1)) : b("", !0),
245
+ l("div", de, [l("button", {
246
+ type: "button",
247
+ class: n(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-[var(--tpl-shadow-sm)] tpl:transition-all tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50": R.value }]),
248
+ disabled: R.value,
249
+ onClick: $
250
+ }, h(v(x).savedBlocks.cancel), 11, fe), l("button", {
251
+ type: "button",
252
+ class: n(v(I)),
253
+ disabled: !_e.value,
254
+ onClick: ve
255
+ }, [R.value ? (m(), u("span", me, [d(v(P), {
256
+ class: "tpl:animate-spin",
257
+ size: 12,
258
+ "stroke-width": 2
259
+ }), f(" " + h(v(x).savedBlocks.saving), 1)])) : (m(), u("span", he, h(v(x).savedBlocks.save), 1))], 10, pe)])
260
+ ], 8, K)]),
261
+ _: 1
262
+ }, 8, ["visible"]));
263
+ }
264
+ });
265
+ //#endregion
266
+ export { Q as default };