@templatical/editor 0.15.1 → 0.16.1

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 (176) hide show
  1. package/README.md +1 -1
  2. package/dist/{AiChatSidebar-BIKvYREk.js → AiChatSidebar-EaPCeDXr.js} +14 -14
  3. package/dist/{AiFeatureMenu-CU6kTMTf.js → AiFeatureMenu-Rb8G3EBo.js} +7 -7
  4. package/dist/{BlockIssueBadge-B3xVgMTh.js → BlockIssueBadge-CZYgn-qg.js} +5 -5
  5. package/dist/{CloudEditor-DRPxvUEj.js → CloudEditor-D88gLBXp.js} +25 -25
  6. package/dist/{CollaboratorBar-DMSjd3HZ.js → CollaboratorBar-dxCD8jSi.js} +4 -4
  7. package/dist/ColorPicker-CAgMCX3A.js +442 -0
  8. package/dist/{CommentsSidebar-D_tSGvTX.js → CommentsSidebar-DDKiFsSq.js} +13 -13
  9. package/dist/{CountdownBlock-apiYUhkQ.js → CountdownBlock-173fiO5Z.js} +3 -3
  10. package/dist/{CountdownToolbar-CS0axcjz.js → CountdownToolbar-8XVTOuGX.js} +4 -4
  11. package/dist/{DesignReferenceSidebar-DWYK9nTk.js → DesignReferenceSidebar-D6TfC176.js} +11 -11
  12. package/dist/{IssuesPanel-CR1MPaDE.js → IssuesPanel-CQQipLQP.js} +8 -8
  13. package/dist/{LoadingTrack-DsecR8Rw.js → LoadingTrack-KIcREPlS.js} +1 -1
  14. package/dist/{MergeTagSuggestion-CH2SUxBo.js → MergeTagSuggestion-DrT3LiZ4.js} +4 -4
  15. package/dist/{ModuleBrowserModal-BOzleijA.js → ModuleBrowserModal-l4_RCC8m.js} +11 -11
  16. package/dist/{ModulePreviewCanvas-Cg99Pbde.js → ModulePreviewCanvas-BqYAr4fz.js} +3 -3
  17. package/dist/NumberWithSuffix-Di-cDy_m.js +89 -0
  18. package/dist/{ParagraphEditor-8jnzoL0A.js → ParagraphEditor-DIQ1jmSP.js} +230 -195
  19. package/dist/{RichTextEditorContent-BqLHIZY7.js → RichTextEditorContent-DkTJ6KK8.js} +56 -45
  20. package/dist/{SaveModuleDialog-Cy2XyjYT.js → SaveModuleDialog-DPo3Raon.js} +8 -8
  21. package/dist/{SnapshotHistory-cfxmOsJu.js → SnapshotHistory-m7brKV7C.js} +10 -10
  22. package/dist/{TemplateScoringPanel-CZ62rGHz.js → TemplateScoringPanel-C8VOC6gn.js} +15 -15
  23. package/dist/{TestEmailModal-sr1MaMVX.js → TestEmailModal-BE9sFEIl.js} +6 -6
  24. package/dist/{TitleEditor-CvGTprIg.js → TitleEditor-BATN-k-Q.js} +38 -35
  25. package/dist/{TplModal-BtKB-0Bx.js → TplModal-DHBcZ1gq.js} +5 -5
  26. package/dist/{blockTypeIcons-BxEbbev5.js → blockTypeIcons-wRchKKx0.js} +7 -7
  27. package/dist/bundle-stats.json +7 -7
  28. package/dist/ca-B3eR47lE.js +559 -0
  29. package/dist/cdn/chunks/{AiFeatureMenu-fDUpv_-s.js → AiFeatureMenu-W7VQFAwq.js} +6 -6
  30. package/dist/cdn/chunks/{AiFeatureMenu-fDUpv_-s.js.map → AiFeatureMenu-W7VQFAwq.js.map} +1 -1
  31. package/dist/cdn/chunks/{BlockIssueBadge-Byce0j0W.js → BlockIssueBadge-ww2vNIfJ.js} +5 -5
  32. package/dist/cdn/chunks/{BlockIssueBadge-Byce0j0W.js.map → BlockIssueBadge-ww2vNIfJ.js.map} +1 -1
  33. package/dist/cdn/chunks/{CloudEditor-B4m8ldiE.js → CloudEditor-BVSJ1kvB.js} +161 -161
  34. package/dist/cdn/chunks/{CloudEditor-B4m8ldiE.js.map → CloudEditor-BVSJ1kvB.js.map} +1 -1
  35. package/dist/cdn/chunks/{CollaboratorBar-LnLmjxw_.js → CollaboratorBar-BFrAua9a.js} +4 -4
  36. package/dist/cdn/chunks/{CollaboratorBar-LnLmjxw_.js.map → CollaboratorBar-BFrAua9a.js.map} +1 -1
  37. package/dist/cdn/chunks/ColorPicker-DmxMDn-t.js +439 -0
  38. package/dist/cdn/chunks/ColorPicker-DmxMDn-t.js.map +1 -0
  39. package/dist/cdn/chunks/{CountdownBlock-DxTuMRBM.js → CountdownBlock-MC-mhtQD.js} +3 -3
  40. package/dist/cdn/chunks/{CountdownBlock-DxTuMRBM.js.map → CountdownBlock-MC-mhtQD.js.map} +1 -1
  41. package/dist/cdn/chunks/{CountdownToolbar-DUrVfQZH.js → CountdownToolbar-dXyr7tz-.js} +5 -5
  42. package/dist/cdn/chunks/{CountdownToolbar-DUrVfQZH.js.map → CountdownToolbar-dXyr7tz-.js.map} +1 -1
  43. package/dist/cdn/chunks/{IssuesPanel-CHl90k4h.js → IssuesPanel-CTxSgViL.js} +8 -8
  44. package/dist/cdn/chunks/{IssuesPanel-CHl90k4h.js.map → IssuesPanel-CTxSgViL.js.map} +1 -1
  45. package/dist/cdn/chunks/{MergeTagSuggestion-BsCAo4Co.js → MergeTagSuggestion-jesxS7An.js} +3 -3
  46. package/dist/cdn/chunks/{MergeTagSuggestion-BsCAo4Co.js.map → MergeTagSuggestion-jesxS7An.js.map} +1 -1
  47. package/dist/cdn/chunks/{ModuleBrowserModal-DW0iQW0J.js → ModuleBrowserModal-B5sCsrud.js} +9 -9
  48. package/dist/cdn/chunks/{ModuleBrowserModal-DW0iQW0J.js.map → ModuleBrowserModal-B5sCsrud.js.map} +1 -1
  49. package/dist/cdn/chunks/{ModulePreviewCanvas-Cxo8v8t1.js → ModulePreviewCanvas-DGTGo8kg.js} +11 -11
  50. package/dist/cdn/chunks/{ModulePreviewCanvas-Cxo8v8t1.js.map → ModulePreviewCanvas-DGTGo8kg.js.map} +1 -1
  51. package/dist/cdn/chunks/NumberWithSuffix-tAHfui6k.js +91 -0
  52. package/dist/cdn/chunks/NumberWithSuffix-tAHfui6k.js.map +1 -0
  53. package/dist/cdn/chunks/{ParagraphEditor-iG5cDjH0.js → ParagraphEditor-CB5FGRs3.js} +213 -179
  54. package/dist/cdn/chunks/ParagraphEditor-CB5FGRs3.js.map +1 -0
  55. package/dist/cdn/chunks/{RichTextEditorContent-DQpgeGMj.js → RichTextEditorContent-CPelbtck.js} +53 -42
  56. package/dist/cdn/chunks/RichTextEditorContent-CPelbtck.js.map +1 -0
  57. package/dist/cdn/chunks/{SaveModuleDialog-sJQXg2Mh.js → SaveModuleDialog-7f9uUUEC.js} +6 -6
  58. package/dist/cdn/chunks/{SaveModuleDialog-sJQXg2Mh.js.map → SaveModuleDialog-7f9uUUEC.js.map} +1 -1
  59. package/dist/cdn/chunks/{TitleEditor-C8qIn9Oi.js → TitleEditor-C0mYpgs4.js} +46 -43
  60. package/dist/cdn/chunks/TitleEditor-C0mYpgs4.js.map +1 -0
  61. package/dist/cdn/chunks/{blockTypeIcons-DySnOpPo.js → blockTypeIcons-BtxaUtlx.js} +5 -5
  62. package/dist/cdn/chunks/{blockTypeIcons-DySnOpPo.js.map → blockTypeIcons-BtxaUtlx.js.map} +1 -1
  63. package/dist/cdn/chunks/ca-B3eR47lE.js +561 -0
  64. package/dist/cdn/chunks/ca-B3eR47lE.js.map +1 -0
  65. package/dist/cdn/chunks/ca-CNRWAMHI.js +89 -0
  66. package/dist/cdn/chunks/ca-CNRWAMHI.js.map +1 -0
  67. package/dist/{de-LsV0u1tP.js → cdn/chunks/de-Cy8FB-Ii.js} +7 -1
  68. package/dist/cdn/chunks/de-Cy8FB-Ii.js.map +1 -0
  69. package/dist/cdn/chunks/{draggable-kG-D5Xsm.js → draggable-D840DIZB.js} +52 -39
  70. package/dist/cdn/chunks/draggable-D840DIZB.js.map +1 -0
  71. package/dist/{en-Bb8X1bOs.js → cdn/chunks/en-Bu-zS_5o.js} +7 -1
  72. package/dist/cdn/chunks/en-Bu-zS_5o.js.map +1 -0
  73. package/dist/cdn/chunks/es-CD3ZD6hK.js +561 -0
  74. package/dist/cdn/chunks/es-CD3ZD6hK.js.map +1 -0
  75. package/dist/cdn/chunks/es-OgkdMZGX.js +89 -0
  76. package/dist/cdn/chunks/es-OgkdMZGX.js.map +1 -0
  77. package/dist/cdn/chunks/{extensions-C2pTX899.js → extensions-BJ7vaBol.js} +28 -28
  78. package/dist/cdn/chunks/{extensions-C2pTX899.js.map → extensions-BJ7vaBol.js.map} +1 -1
  79. package/dist/cdn/chunks/{features-CHE3YjQE.js → features-CgbSSCgv.js} +602 -566
  80. package/dist/cdn/chunks/features-CgbSSCgv.js.map +1 -0
  81. package/dist/cdn/chunks/{icons-M4uqBV-_.js → icons-Dlx5MT1V.js} +2 -2
  82. package/dist/cdn/chunks/{icons-M4uqBV-_.js.map → icons-Dlx5MT1V.js.map} +1 -1
  83. package/dist/cdn/chunks/{media-library-Bqr15VN2.js → media-library-BMlykZGq.js} +104 -104
  84. package/dist/cdn/chunks/{media-library-Bqr15VN2.js.map → media-library-BMlykZGq.js.map} +1 -1
  85. package/dist/{pt-BR-BwJY_cvb.js → cdn/chunks/pt-BR-CgICL-CQ.js} +7 -1
  86. package/dist/cdn/chunks/pt-BR-CgICL-CQ.js.map +1 -0
  87. package/dist/cdn/chunks/quality-DsVgXk_j.js +2180 -0
  88. package/dist/cdn/chunks/quality-DsVgXk_j.js.map +1 -0
  89. package/dist/cdn/chunks/{renderer-CyzTR1Vq.js → renderer-DPvEtVGO.js} +35 -38
  90. package/dist/cdn/chunks/renderer-DPvEtVGO.js.map +1 -0
  91. package/dist/cdn/chunks/{src-q-SBgWx7.js → src-CAdirukY.js} +109 -112
  92. package/dist/cdn/chunks/{src-q-SBgWx7.js.map → src-CAdirukY.js.map} +1 -1
  93. package/dist/cdn/chunks/{styles-PWISdaws.js → styles-D7u4vCpH.js} +877 -856
  94. package/dist/cdn/chunks/styles-D7u4vCpH.js.map +1 -0
  95. package/dist/cdn/chunks/{tiptap-DF9PEiqH.js → tiptap-zpXk5mN4.js} +3278 -4992
  96. package/dist/cdn/chunks/tiptap-zpXk5mN4.js.map +1 -0
  97. package/dist/cdn/editor.css +1 -1
  98. package/dist/cdn/editor.js +75 -73
  99. package/dist/cdn/editor.js.map +1 -1
  100. package/dist/{check-rl7ok6uJ.js → check-D1zYtCPK.js} +1 -1
  101. package/dist/{chevron-down-BKe__NOD.js → chevron-down-ByXpufZD.js} +1 -1
  102. package/dist/{circle-alert-C8xmpMsK.js → circle-alert-CjcAORUw.js} +1 -1
  103. package/dist/{clock-BW4JuDCN.js → clock-5lWLadUn.js} +1 -1
  104. package/dist/{cloud-BQusL53H.js → cloud-BogxOeZu.js} +2 -2
  105. package/dist/{createLucideIcon-Dx-EjR9r.js → createLucideIcon-Bh9xOmlW.js} +3 -3
  106. package/dist/{cdn/chunks/de-LsV0u1tP.js → de-Cy8FB-Ii.js} +5 -3
  107. package/dist/dist-BE9m_i60.js +5 -0
  108. package/dist/{dist-BFmE-7hB.js → dist-BPPeDw62.js} +2 -2
  109. package/dist/{dist-BsCGIDSt.js → dist-BReUTadj.js} +4 -4
  110. package/dist/dist-BXR1aBJV.js +5 -0
  111. package/dist/{dist-CRsjOQM-.js → dist-Bm07Z3Es.js} +2 -2
  112. package/dist/{dist-BEWiuOMi.js → dist-CFOQvhSC.js} +3 -3
  113. package/dist/{dist-B5Sov3sS.js → dist-CHLoeloJ.js} +2 -2
  114. package/dist/{dist-COG3IdPK.js → dist-D1WmF8BF.js} +2 -2
  115. package/dist/{dist-itdjZraK.js → dist-D9g4CSnm.js} +1 -1
  116. package/dist/{dist-BMoa33wT.js → dist-DGEaAAIb.js} +2 -2
  117. package/dist/{dist-CTT6WYJ6.js → dist-DYv_Pttj.js} +2 -2
  118. package/dist/{dist-CQZxDvFw.js → dist-DcKlLQ8d.js} +2 -2
  119. package/dist/{dist-SXJJ2v41.js → dist-DhY2di4U.js} +2 -2
  120. package/dist/{dist-BibU4HNl.js → dist-DoRIUsfz.js} +2 -3
  121. package/dist/dist-i_Z7t67A.js +2594 -0
  122. package/dist/{cdn/chunks/en-Bb8X1bOs.js → en-Bu-zS_5o.js} +5 -3
  123. package/dist/es-CD3ZD6hK.js +559 -0
  124. package/dist/{extensions-DwaZAqm6.js → extensions-B2poxDIo.js} +8 -8
  125. package/dist/{image-up-BwBCmQ4P.js → image-up-Bj_nes3f.js} +1 -1
  126. package/dist/{info-TCn7uWR5.js → info-BhSQCxBV.js} +1 -1
  127. package/dist/{keys-Cv8-8GsD.js → keys-BbDgCU6K.js} +1 -1
  128. package/dist/{list-checks-CSrOWNgq.js → list-checks-CgxyUg7i.js} +1 -1
  129. package/dist/{loader-circle-BLmicnPG.js → loader-circle-DFU0HPAa.js} +1 -1
  130. package/dist/{message-circle-C9hHMQCI.js → message-circle-BEBsCHnk.js} +1 -1
  131. package/dist/{cdn/chunks/pt-BR-BwJY_cvb.js → pt-BR-CgICL-CQ.js} +5 -3
  132. package/dist/{refresh-cw-D1JQ1LNa.js → refresh-cw--lvWGy0_.js} +1 -1
  133. package/dist/{runtime-dom.esm-bundler-BzuoCyNp.js → runtime-dom.esm-bundler-GdMI8WqG.js} +6 -7
  134. package/dist/{scan-line-DgijVq9y.js → scan-line-QgyDIgn_.js} +1 -1
  135. package/dist/{send-DjPdq69F.js → send-BMyisUim.js} +1 -1
  136. package/dist/{shield-check-Bqluu8FS.js → shield-check-C49M20le.js} +1 -1
  137. package/dist/{sparkles-M4azPVSP.js → sparkles-DV7Dman6.js} +1 -1
  138. package/dist/style.css +1 -1
  139. package/dist/{styles-B2OrgEnn.js → styles-B-yhoJnH.js} +537 -516
  140. package/dist/templatical-editor.js +62 -60
  141. package/dist/{text-align-start-CMya5pCQ.js → text-align-start-BMU70uAm.js} +1 -1
  142. package/dist/{trash-2-C-81rkLS.js → trash-2-B6M659Ey.js} +1 -1
  143. package/dist/{triangle-alert-BuRWnynk.js → triangle-alert-D1lzx6ds.js} +1 -1
  144. package/dist/{upload-CWBIoLd4.js → upload-3A1oZtOR.js} +1 -1
  145. package/dist/{useAliveFlag-CECL_OUb.js → useAliveFlag-C43EhZFY.js} +1 -1
  146. package/dist/{useCloudI18n-AKCy98qD.js → useCloudI18n-WbfVWq5k.js} +2 -2
  147. package/dist/{useEditorCore-DJeOXVxQ.js → useEditorCore-CV1ct_17.js} +628 -591
  148. package/dist/{useI18n-C-TDeJBt.js → useI18n-eR1yVW0v.js} +2 -2
  149. package/dist/{useMergeTag-DSrBY0-2.js → useMergeTag-C3GfSktg.js} +3 -3
  150. package/dist/usePopoverRoot-C1j0D7cc.js +8 -0
  151. package/dist/{vue.runtime.esm-bundler-l0XAqiyv.js → vue.runtime.esm-bundler-B0xoGkDv.js} +84 -70
  152. package/dist/{x-CQSvXnGR.js → x-CG_NV3nP.js} +1 -1
  153. package/package.json +23 -23
  154. package/dist/NumberWithSuffix-CrA6quxx.js +0 -445
  155. package/dist/cdn/chunks/NumberWithSuffix-CnSRmUMK.js +0 -444
  156. package/dist/cdn/chunks/NumberWithSuffix-CnSRmUMK.js.map +0 -1
  157. package/dist/cdn/chunks/ParagraphEditor-iG5cDjH0.js.map +0 -1
  158. package/dist/cdn/chunks/RichTextEditorContent-DQpgeGMj.js.map +0 -1
  159. package/dist/cdn/chunks/TitleEditor-C8qIn9Oi.js.map +0 -1
  160. package/dist/cdn/chunks/de-LsV0u1tP.js.map +0 -1
  161. package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +0 -1
  162. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +0 -1
  163. package/dist/cdn/chunks/features-CHE3YjQE.js.map +0 -1
  164. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +0 -1
  165. package/dist/cdn/chunks/quality-DJZ_fqc2.js +0 -2176
  166. package/dist/cdn/chunks/quality-DJZ_fqc2.js.map +0 -1
  167. package/dist/cdn/chunks/renderer-CyzTR1Vq.js.map +0 -1
  168. package/dist/cdn/chunks/styleConstants-lGobwiLH.js +0 -57
  169. package/dist/cdn/chunks/styleConstants-lGobwiLH.js.map +0 -1
  170. package/dist/cdn/chunks/styles-PWISdaws.js.map +0 -1
  171. package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +0 -1
  172. package/dist/dist-CNLKj9wa.js +0 -5
  173. package/dist/dist-CNXDNYQn.js +0 -4311
  174. package/dist/dist-Cqa6aeAJ.js +0 -5
  175. package/dist/styleConstants-lGobwiLH.js +0 -55
  176. package/dist/usePopoverRoot-DKUDnr55.js +0 -8
@@ -1,7 +1,7 @@
1
- import { K as e, M as t, T as n, ct as r, d as i, f as a, g as o, h as s, it as c, m as l, ot as u, p as d, st as f, u as p, v as m, x as h, y as g } from "./draggable-kG-D5Xsm.js";
2
- import { $t as _, Lt as v, Qt as y, X as b, bt as ee, cn as te, k as ne, on as re } from "./features-CHE3YjQE.js";
3
- import { B as ie, H as ae, X as oe, Z as se, b as x } from "./icons-M4uqBV-_.js";
4
- import { n as S, t as C } from "./RichTextEditorContent-DQpgeGMj.js";
1
+ import { K as e, M as t, T as n, ct as r, d as i, f as a, g as o, h as s, it as c, m as l, ot as u, p as d, st as ee, u as f, v as p, x as m, y as h } from "./draggable-D840DIZB.js";
2
+ import { $t as te, Rt as ne, X as re, Z as g, en as _, k as v, ln as y, sn as b, xt as ie } from "./features-CgbSSCgv.js";
3
+ import { B as ae, H as oe, X as se, Z as ce, b as x } from "./icons-Dlx5MT1V.js";
4
+ import { n as S, t as C } from "./RichTextEditorContent-CPelbtck.js";
5
5
  //#region src/components/blocks/TitleEditor.vue?vue&type=script&setup=true&lang.ts
6
6
  var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme", "aria-label"], E = ["aria-label", "title"], D = ["aria-label", "title"], O = ["aria-label", "title"], k = {
7
7
  key: 0,
@@ -12,25 +12,25 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
12
12
  }, M = ["aria-label", "title"], N = {
13
13
  key: 1,
14
14
  class: "tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
15
- }, P = /* @__PURE__ */ h({
15
+ }, P = /* @__PURE__ */ m({
16
16
  __name: "TitleEditor",
17
17
  props: {
18
18
  block: {},
19
19
  toolbarPosition: {}
20
20
  },
21
21
  emits: ["done"],
22
- setup(h, { emit: P }) {
23
- let F = h, I = P, L = n(re, null), R = n(te, null), z = ne(), B = n(_, null), ce = n(y, null), V = a(() => (B?.isOpen.value ?? !1) || (ce?.isOpen.value ?? !1)), { t: H } = v(), { editor: U, EditorContent: W, isLoading: G, initError: le, retry: ue, showLinkDialog: de, linkUrl: K, linkDialogRef: q, canRequestMergeTag: J, canInsertLogicTag: Y, openLinkDialog: X, insertLink: Z, removeLink: fe, closeLinkDialog: pe, handleLinkKeydown: me, handleAddMergeTag: Q, handleAddLogicTag: $ } = b({
22
+ setup(m, { emit: P }) {
23
+ let F = m, I = P, L = n(b, null), R = n(y, null), z = v(), B = n(_, null), le = n(te, null), V = a(() => (B?.isOpen.value ?? !1) || (le?.isOpen.value ?? !1)), { t: H } = ne(), { editor: U, EditorContent: W, isLoading: G, initError: ue, retry: de, showLinkDialog: fe, linkUrl: K, linkColor: q, linkDialogRef: J, canRequestMergeTag: Y, canInsertLogicTag: X, openLinkDialog: Z, insertLink: pe, removeLink: me, closeLinkDialog: he, handleLinkKeydown: ge, handleAddMergeTag: Q, handleAddLogicTag: $ } = re({
24
24
  blockId: () => F.block.id,
25
25
  blockContent: () => F.block.content,
26
26
  onDone: () => I("done"),
27
27
  editorName: "TitleEditor",
28
28
  async loadExtensions({ mergeTags: e, syntax: t, triggerChar: n, autocompleteEnabled: r, suggestionEmptyText: i }) {
29
29
  let [{ Editor: a, EditorContent: o }, { default: s }, { default: c }, { MergeTagNode: l, MergeTagSuggestion: u, LogicMergeTagNode: d }] = await Promise.all([
30
- import("./tiptap-DF9PEiqH.js").then((e) => e.r),
31
- import("./tiptap-DF9PEiqH.js").then((e) => e.i),
32
- import("./tiptap-DF9PEiqH.js").then((e) => e.l),
33
- import("./extensions-C2pTX899.js")
30
+ import("./tiptap-zpXk5mN4.js").then((e) => e.r),
31
+ import("./tiptap-zpXk5mN4.js").then((e) => e.i),
32
+ import("./tiptap-zpXk5mN4.js").then((e) => e.l),
33
+ import("./extensions-BJ7vaBol.js")
34
34
  ]);
35
35
  return {
36
36
  TiptapEditor: a,
@@ -47,7 +47,7 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
47
47
  strike: !1,
48
48
  link: !1
49
49
  }),
50
- c.configure({
50
+ g(c).configure({
51
51
  openOnClick: !1,
52
52
  HTMLAttributes: {
53
53
  target: "_blank",
@@ -78,20 +78,20 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
78
78
  role: "toolbar",
79
79
  "aria-label": c(H).titleEditor.toolbar,
80
80
  class: "tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg",
81
- style: f({
81
+ style: ee({
82
82
  ...c(L),
83
- top: `${h.toolbarPosition.top}px`,
84
- left: `${h.toolbarPosition.left}px`,
83
+ top: `${m.toolbarPosition.top}px`,
84
+ left: `${m.toolbarPosition.left}px`,
85
85
  transform: "translateY(-100%)"
86
86
  })
87
- }, [!c(G) && c(U) ? (t(), o(p, { key: 0 }, [
87
+ }, [!c(G) && c(U) ? (t(), o(f, { key: 0 }, [
88
88
  d("button", {
89
89
  type: "button",
90
90
  class: u(["tpl-text-toolbar-btn", { "tpl-text-toolbar-btn--active": c(U)?.isActive("bold") }]),
91
91
  "aria-label": c(H).titleEditor.bold,
92
92
  title: c(H).titleEditor.bold,
93
93
  onClick: a[0] ||= (e) => c(U)?.chain().focus().toggleBold().run()
94
- }, [g(c(se), {
94
+ }, [h(c(ce), {
95
95
  size: 16,
96
96
  "stroke-width": 2.5
97
97
  })], 10, E),
@@ -101,11 +101,11 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
101
101
  "aria-label": c(H).titleEditor.italic,
102
102
  title: c(H).titleEditor.italic,
103
103
  onClick: a[1] ||= (e) => c(U)?.chain().focus().toggleItalic().run()
104
- }, [g(c(ae), {
104
+ }, [h(c(oe), {
105
105
  size: 16,
106
106
  "stroke-width": 2
107
107
  })], 10, D),
108
- a[7] ||= d("span", {
108
+ a[8] ||= d("span", {
109
109
  class: "tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]",
110
110
  "aria-hidden": "true"
111
111
  }, null, -1),
@@ -114,25 +114,25 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
114
114
  class: u(["tpl-text-toolbar-btn", { "tpl-text-toolbar-btn--active": c(U)?.isActive("link") }]),
115
115
  "aria-label": c(H).titleEditor.addLink,
116
116
  title: c(H).titleEditor.addLink,
117
- onClick: a[2] ||= (...e) => c(X) && c(X)(...e)
118
- }, [g(c(ie), {
117
+ onClick: a[2] ||= (...e) => c(Z) && c(Z)(...e)
118
+ }, [h(c(ae), {
119
119
  size: 16,
120
120
  "stroke-width": 2
121
121
  })], 10, O),
122
- c(J) ? (t(), o("span", k)) : s("", !0),
123
- c(J) ? (t(), o("button", {
122
+ c(Y) ? (t(), o("span", k)) : s("", !0),
123
+ c(Y) ? (t(), o("button", {
124
124
  key: 1,
125
125
  type: "button",
126
126
  class: "tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]",
127
127
  "aria-label": c(H).mergeTag.insert,
128
128
  title: c(H).mergeTag.insert,
129
129
  onClick: a[3] ||= (...e) => c(Q) && c(Q)(...e)
130
- }, [g(c(x), {
130
+ }, [h(c(x), {
131
131
  size: 16,
132
132
  "stroke-width": 2
133
- }), m(" " + r(c(H).mergeTag.insertShort), 1)], 8, A)) : s("", !0),
134
- c(Y) ? (t(), o("span", j)) : s("", !0),
135
- c(Y) ? (t(), o("button", {
133
+ }), p(" " + r(c(H).mergeTag.insertShort), 1)], 8, A)) : s("", !0),
134
+ c(X) ? (t(), o("span", j)) : s("", !0),
135
+ c(X) ? (t(), o("button", {
136
136
  key: 3,
137
137
  type: "button",
138
138
  class: "tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]",
@@ -140,21 +140,21 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
140
140
  title: c(H).logicTag.insert,
141
141
  "data-testid": "insert-logic-button",
142
142
  onClick: a[4] ||= (...e) => c($) && c($)(...e)
143
- }, [g(c(oe), {
143
+ }, [h(c(se), {
144
144
  size: 16,
145
145
  "stroke-width": 2
146
- }), m(" " + r(c(H).logicTag.insertShort), 1)], 8, M)) : s("", !0)
147
- ], 64)) : (t(), o("div", N, [g(c(ee), {
146
+ }), p(" " + r(c(H).logicTag.insertShort), 1)], 8, M)) : s("", !0)
147
+ ], 64)) : (t(), o("div", N, [h(c(ie), {
148
148
  class: "tpl-spinner",
149
149
  size: 14,
150
150
  "stroke-width": 2
151
- }), m(" " + r(c(H).errors.editorLoading), 1)]))], 12, T)], 8, ["to"])) : s("", !0),
152
- g(C, {
151
+ }), p(" " + r(c(H).errors.editorLoading), 1)]))], 12, T)], 8, ["to"])) : s("", !0),
152
+ h(C, {
153
153
  editor: c(U),
154
154
  "editor-content": c(W),
155
155
  "is-loading": c(G),
156
- "init-error": c(le),
157
- onRetry: c(ue)
156
+ "init-error": c(ue),
157
+ onRetry: c(de)
158
158
  }, null, 8, [
159
159
  "editor",
160
160
  "editor-content",
@@ -162,22 +162,25 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
162
162
  "init-error",
163
163
  "onRetry"
164
164
  ]),
165
- g(S, {
166
- visible: c(de),
165
+ h(S, {
166
+ visible: c(fe),
167
167
  "is-editing-link": c(U)?.isActive("link") ?? !1,
168
- "dialog-ref": c(q),
169
- "onUpdate:dialogRef": a[5] ||= (t) => e(q) ? q.value = t : null,
168
+ "dialog-ref": c(J),
169
+ "onUpdate:dialogRef": a[5] ||= (t) => e(J) ? J.value = t : null,
170
170
  "link-url": c(K),
171
171
  "onUpdate:linkUrl": a[6] ||= (t) => e(K) ? K.value = t : null,
172
- onClose: c(pe),
173
- onInsert: c(Z),
174
- onRemove: c(fe),
175
- onKeydown: c(me)
172
+ "link-color": c(q),
173
+ "onUpdate:linkColor": a[7] ||= (t) => e(q) ? q.value = t : null,
174
+ onClose: c(he),
175
+ onInsert: c(pe),
176
+ onRemove: c(me),
177
+ onKeydown: c(ge)
176
178
  }, null, 8, [
177
179
  "visible",
178
180
  "is-editing-link",
179
181
  "dialog-ref",
180
182
  "link-url",
183
+ "link-color",
181
184
  "onClose",
182
185
  "onInsert",
183
186
  "onRemove",
@@ -189,4 +192,4 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
189
192
  //#endregion
190
193
  export { P as default };
191
194
 
192
- //# sourceMappingURL=TitleEditor-C8qIn9Oi.js.map
195
+ //# sourceMappingURL=TitleEditor-C0mYpgs4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleEditor-C0mYpgs4.js","names":[],"sources":["../../../src/components/blocks/TitleEditor.vue","../../../src/components/blocks/TitleEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport {\n Bold,\n Braces,\n Italic,\n Link,\n LoaderCircle,\n ScanLine,\n} from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n LOGIC_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\nimport { withLinkColor } from \"../../utils/linkColorExtension\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while either built-in picker modal is open — see\n// ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst logicPicker = inject(LOGIC_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(\n () => (picker?.isOpen.value ?? false) || (logicPicker?.isOpen.value ?? false),\n);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkColor,\n linkDialogRef,\n canRequestMergeTag,\n canInsertLogicTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n handleAddLogicTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n // StarterKit bundles @tiptap/extension-link (openOnClick: true).\n // Disable it so the LinkExt below (openOnClick: false) is the only\n // link extension — otherwise clicking a link while editing opens it.\n link: false,\n }),\n withLinkColor(LinkExt).configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insertShort }}\n </button>\n <!-- Insert Logic -->\n <span\n v-if=\"canInsertLogicTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canInsertLogicTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.logicTag.insert\"\n :title=\"t.logicTag.insert\"\n data-testid=\"insert-logic-button\"\n @click=\"handleAddLogicTag\"\n >\n <Braces :size=\"16\" :stroke-width=\"2\" />\n {{ t.logicTag.insertShort }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n v-model:link-color=\"linkColor\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport {\n Bold,\n Braces,\n Italic,\n Link,\n LoaderCircle,\n ScanLine,\n} from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n LOGIC_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\nimport { withLinkColor } from \"../../utils/linkColorExtension\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while either built-in picker modal is open — see\n// ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst logicPicker = inject(LOGIC_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(\n () => (picker?.isOpen.value ?? false) || (logicPicker?.isOpen.value ?? false),\n);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkColor,\n linkDialogRef,\n canRequestMergeTag,\n canInsertLogicTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n handleAddLogicTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n // StarterKit bundles @tiptap/extension-link (openOnClick: true).\n // Disable it so the LinkExt below (openOnClick: false) is the only\n // link extension — otherwise clicking a link while editing opens it.\n link: false,\n }),\n withLinkColor(LinkExt).configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insertShort }}\n </button>\n <!-- Insert Logic -->\n <span\n v-if=\"canInsertLogicTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canInsertLogicTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.logicTag.insert\"\n :title=\"t.logicTag.insert\"\n data-testid=\"insert-logic-button\"\n @click=\"handleAddLogicTag\"\n >\n <Braces :size=\"16\" :stroke-width=\"2\" />\n {{ t.logicTag.insertShort }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n v-model:link-color=\"linkColor\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { Dt as e, St as t, dt as n, mt as r, vt as i } from "./features-CHE3YjQE.js";
2
- import { D as a, E as o, J as s, P as c, U as l, a as u, j as d, w as f } from "./icons-M4uqBV-_.js";
1
+ import { Ct as e, Ot as t, ft as n, ht as r, yt as i } from "./features-CgbSSCgv.js";
2
+ import { D as a, E as o, J as s, P as c, U as l, a as u, j as d, w as f } from "./icons-Dlx5MT1V.js";
3
3
  //#region src/utils/blockTypeIcons.ts
4
4
  var p = {
5
5
  section: s,
6
6
  title: l,
7
7
  paragraph: a,
8
- image: t,
8
+ image: e,
9
9
  button: f,
10
10
  divider: c,
11
11
  video: o,
@@ -14,9 +14,9 @@ var p = {
14
14
  table: n,
15
15
  spacer: d,
16
16
  countdown: u,
17
- html: e
17
+ html: t
18
18
  };
19
19
  //#endregion
20
20
  export { p as t };
21
21
 
22
- //# sourceMappingURL=blockTypeIcons-DySnOpPo.js.map
22
+ //# sourceMappingURL=blockTypeIcons-BtxaUtlx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockTypeIcons-DySnOpPo.js","names":[],"sources":["../../../src/utils/blockTypeIcons.ts"],"sourcesContent":["import {\n Code,\n Columns3,\n Heading,\n Image,\n Minus,\n MoveVertical,\n Navigation,\n Pilcrow,\n Play,\n RectangleHorizontal,\n Share2,\n Table,\n Timer,\n} from \"@lucide/vue\";\nimport type { Component } from \"vue\";\n\nexport const blockTypeIcons: Record<string, Component> = {\n section: Columns3,\n title: Heading,\n paragraph: Pilcrow,\n image: Image,\n button: RectangleHorizontal,\n divider: Minus,\n video: Play,\n social: Share2,\n menu: Navigation,\n table: Table,\n spacer: MoveVertical,\n countdown: Timer,\n html: Code,\n};\n"],"mappings":";;;AAiBA,IAAa,IAA4C;CACvD,SAAS;CACT,OAAO;CACP,WAAW;CACX,OAAO;CACP,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,MAAM;AACR"}
1
+ {"version":3,"file":"blockTypeIcons-BtxaUtlx.js","names":[],"sources":["../../../src/utils/blockTypeIcons.ts"],"sourcesContent":["import {\n Code,\n Columns3,\n Heading,\n Image,\n Minus,\n MoveVertical,\n Navigation,\n Pilcrow,\n Play,\n RectangleHorizontal,\n Share2,\n Table,\n Timer,\n} from \"@lucide/vue\";\nimport type { Component } from \"vue\";\n\nexport const blockTypeIcons: Record<string, Component> = {\n section: Columns3,\n title: Heading,\n paragraph: Pilcrow,\n image: Image,\n button: RectangleHorizontal,\n divider: Minus,\n video: Play,\n social: Share2,\n menu: Navigation,\n table: Table,\n spacer: MoveVertical,\n countdown: Timer,\n html: Code,\n};\n"],"mappings":";;;AAiBA,IAAa,IAA4C;CACvD,SAAS;CACT,OAAO;CACP,WAAW;CACX,OAAO;CACP,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,MAAM;AACR"}