@templatical/editor 0.26.0 → 0.26.2

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 (83) hide show
  1. package/dist/{AiChatSidebar-c-3yyjN1.js → AiChatSidebar-CMBz6Wix.js} +1 -1
  2. package/dist/{AiFeatureMenu-B-COyG7k.js → AiFeatureMenu-BY6mubnR.js} +1 -1
  3. package/dist/{BlockPreviewCanvas-CJPHGI93.js → BlockPreviewCanvas-DbNOqSI1.js} +1 -1
  4. package/dist/{CloudEditor-BdSQ8hfv.js → CloudEditor-DEnMNMbm.js} +8 -8
  5. package/dist/{CollaboratorBar-mGoi6yye.js → CollaboratorBar-zvfvE7f-.js} +1 -1
  6. package/dist/{DesignReferenceSidebar-CgYkySre.js → DesignReferenceSidebar-Bx96XFmK.js} +1 -1
  7. package/dist/{MergeTagModeToggle-hAJgIKhw.js → MergeTagModeToggle-P-UguQHc.js} +1 -1
  8. package/dist/{ParagraphEditor-DBG63S70.js → ParagraphEditor-CLvv5Ija.js} +2 -2
  9. package/dist/{SaveBlockDialog-Dq9UVihi.js → SaveBlockDialog-fVp_PwZi.js} +3 -3
  10. package/dist/{SavedBlocksBrowserModal-CtFG4zeV.js → SavedBlocksBrowserModal-KWlaiLlr.js} +4 -4
  11. package/dist/{SavedBlocksPanels-DNVdso_W.js → SavedBlocksPanels-CQsZvWO_.js} +1 -1
  12. package/dist/{SavedBlocksPickBar-Cv4dIpP-.js → SavedBlocksPickBar-C3h8oL3r.js} +1 -1
  13. package/dist/{SnapshotHistory-DsOtMHOV.js → SnapshotHistory-DjA3Ej_i.js} +1 -1
  14. package/dist/{TestEmailModal-CIwqtGfr.js → TestEmailModal-EM0RP_9L.js} +5 -5
  15. package/dist/{TestEmailPanel-l6LDmBGM.js → TestEmailPanel-B6goIAxT.js} +1 -1
  16. package/dist/{TitleEditor-imoBUynh.js → TitleEditor-JEaP9jVF.js} +2 -2
  17. package/dist/{TplModal-DDDHcoir.js → TplModal-DoneXIj_.js} +1 -1
  18. package/dist/{blockTypeIcons-CfLN4A6t.js → blockTypeIcons-2_85L_CL.js} +1 -1
  19. package/dist/bundle-stats.json +6 -6
  20. package/dist/cdn/chunks/{AiChatSidebar-BHqNxNcX.js → AiChatSidebar-CQ8KUmNB.js} +2 -2
  21. package/dist/cdn/chunks/{AiChatSidebar-BHqNxNcX.js.map → AiChatSidebar-CQ8KUmNB.js.map} +1 -1
  22. package/dist/cdn/chunks/{AiFeatureMenu-D2AIDwEG.js → AiFeatureMenu-Cwj8afsi.js} +2 -2
  23. package/dist/cdn/chunks/{AiFeatureMenu-D2AIDwEG.js.map → AiFeatureMenu-Cwj8afsi.js.map} +1 -1
  24. package/dist/cdn/chunks/{BlockPreviewCanvas-DH5ULGkw.js → BlockPreviewCanvas-DPtiMsVz.js} +2 -2
  25. package/dist/cdn/chunks/{BlockPreviewCanvas-DH5ULGkw.js.map → BlockPreviewCanvas-DPtiMsVz.js.map} +1 -1
  26. package/dist/cdn/chunks/{CloudEditor-C0nB1JfD.js → CloudEditor-CQ830jJt.js} +11 -11
  27. package/dist/cdn/chunks/{CloudEditor-C0nB1JfD.js.map → CloudEditor-CQ830jJt.js.map} +1 -1
  28. package/dist/cdn/chunks/{CollaboratorBar-f6Ni7KNH.js → CollaboratorBar-BF469_AN.js} +2 -2
  29. package/dist/cdn/chunks/{CollaboratorBar-f6Ni7KNH.js.map → CollaboratorBar-BF469_AN.js.map} +1 -1
  30. package/dist/cdn/chunks/{DesignReferenceSidebar-DBoEBKxQ.js → DesignReferenceSidebar-B-HFXV0W.js} +2 -2
  31. package/dist/cdn/chunks/{DesignReferenceSidebar-DBoEBKxQ.js.map → DesignReferenceSidebar-B-HFXV0W.js.map} +1 -1
  32. package/dist/cdn/chunks/{MergeTagModeToggle-D8iKvz7v.js → MergeTagModeToggle-DQ79SqQc.js} +2 -2
  33. package/dist/cdn/chunks/{MergeTagModeToggle-D8iKvz7v.js.map → MergeTagModeToggle-DQ79SqQc.js.map} +1 -1
  34. package/dist/cdn/chunks/{ParagraphEditor-Cuc83Blj.js → ParagraphEditor-Bzcma_Lm.js} +3 -3
  35. package/dist/cdn/chunks/{ParagraphEditor-Cuc83Blj.js.map → ParagraphEditor-Bzcma_Lm.js.map} +1 -1
  36. package/dist/cdn/chunks/{SaveBlockDialog-B8KHhVkI.js → SaveBlockDialog-BfNVeXXV.js} +4 -4
  37. package/dist/cdn/chunks/{SaveBlockDialog-B8KHhVkI.js.map → SaveBlockDialog-BfNVeXXV.js.map} +1 -1
  38. package/dist/cdn/chunks/{SavedBlocksBrowserModal-B-sjsIJv.js → SavedBlocksBrowserModal-C59D4G5C.js} +4 -4
  39. package/dist/cdn/chunks/{SavedBlocksBrowserModal-B-sjsIJv.js.map → SavedBlocksBrowserModal-C59D4G5C.js.map} +1 -1
  40. package/dist/cdn/chunks/{SavedBlocksPanels-Bb-eDMAh.js → SavedBlocksPanels-e4HyTZ8v.js} +2 -2
  41. package/dist/cdn/chunks/{SavedBlocksPanels-Bb-eDMAh.js.map → SavedBlocksPanels-e4HyTZ8v.js.map} +1 -1
  42. package/dist/cdn/chunks/{SavedBlocksPickBar-GudFfXa4.js → SavedBlocksPickBar-DMHxPCM4.js} +2 -2
  43. package/dist/cdn/chunks/{SavedBlocksPickBar-GudFfXa4.js.map → SavedBlocksPickBar-DMHxPCM4.js.map} +1 -1
  44. package/dist/cdn/chunks/{SnapshotHistory-Srpzt2na.js → SnapshotHistory-80tAU_VX.js} +2 -2
  45. package/dist/cdn/chunks/{SnapshotHistory-Srpzt2na.js.map → SnapshotHistory-80tAU_VX.js.map} +1 -1
  46. package/dist/cdn/chunks/{TestEmailModal-DLeoJqaJ.js → TestEmailModal-DdWfAGNe.js} +6 -6
  47. package/dist/cdn/chunks/{TestEmailModal-DLeoJqaJ.js.map → TestEmailModal-DdWfAGNe.js.map} +1 -1
  48. package/dist/cdn/chunks/{TestEmailPanel-Dr7Dkq2P.js → TestEmailPanel-CZAG1gQE.js} +2 -2
  49. package/dist/cdn/chunks/{TestEmailPanel-Dr7Dkq2P.js.map → TestEmailPanel-CZAG1gQE.js.map} +1 -1
  50. package/dist/cdn/chunks/{TitleEditor-DzYRr18C.js → TitleEditor-D0_LY2Ex.js} +3 -3
  51. package/dist/cdn/chunks/{TitleEditor-DzYRr18C.js.map → TitleEditor-D0_LY2Ex.js.map} +1 -1
  52. package/dist/cdn/chunks/{TplModal-byw7-3wg.js → TplModal-iCmoKB2k.js} +2 -2
  53. package/dist/cdn/chunks/{TplModal-byw7-3wg.js.map → TplModal-iCmoKB2k.js.map} +1 -1
  54. package/dist/cdn/chunks/{cloud-CuItCnN_.js → cloud-DcC8bPwn.js} +2 -2
  55. package/dist/cdn/chunks/{cloud-CuItCnN_.js.map → cloud-DcC8bPwn.js.map} +1 -1
  56. package/dist/cdn/chunks/{extensions-B7laxHjs.js → extensions-C7h52yuk.js} +7 -3
  57. package/dist/cdn/chunks/extensions-C7h52yuk.js.map +1 -0
  58. package/dist/cdn/chunks/{src-EKTTBQ0y.js → src-B_QJduQD.js} +237 -166
  59. package/dist/cdn/chunks/src-B_QJduQD.js.map +1 -0
  60. package/dist/cdn/chunks/{src-BYKYmEOD.js → src-CUKUsRzX.js} +120 -121
  61. package/dist/cdn/chunks/src-CUKUsRzX.js.map +1 -0
  62. package/dist/cdn/chunks/{src-Bi-Qhtfs.js → src-Cx70q30o.js} +79 -79
  63. package/dist/cdn/chunks/{src-Bi-Qhtfs.js.map → src-Cx70q30o.js.map} +1 -1
  64. package/dist/cdn/chunks/{src-C0N74uvF.js → src-xkGep9eN.js} +2 -2
  65. package/dist/cdn/chunks/{src-C0N74uvF.js.map → src-xkGep9eN.js.map} +1 -1
  66. package/dist/cdn/chunks/{styles-C7s-VtJi.js → styles-CND3ey2g.js} +452 -452
  67. package/dist/cdn/chunks/{styles-C7s-VtJi.js.map → styles-CND3ey2g.js.map} +1 -1
  68. package/dist/cdn/chunks/{useEditorCore-C_nUXiph.js → useEditorCore-CKQ9gmoo.js} +36 -36
  69. package/dist/cdn/chunks/{useEditorCore-C_nUXiph.js.map → useEditorCore-CKQ9gmoo.js.map} +1 -1
  70. package/dist/cdn/chunks/{useMergeTag-CPa_9VOq.js → useMergeTag-JmXOtpln.js} +2 -2
  71. package/dist/cdn/chunks/{useMergeTag-CPa_9VOq.js.map → useMergeTag-JmXOtpln.js.map} +1 -1
  72. package/dist/cdn/editor.js +7 -7
  73. package/dist/{cloud-C7-FhzMc.js → cloud-qINCmQbn.js} +1 -1
  74. package/dist/{dist-D5zCZFdU.js → dist-B1kLn1rs.js} +120 -51
  75. package/dist/{extensions-CxwhoG8v.js → extensions-DzKNPITR.js} +6 -2
  76. package/dist/{styles-C_slTGwp.js → styles-BK36D1sy.js} +6 -6
  77. package/dist/templatical-editor.js +7 -7
  78. package/dist/{useEditorCore-r4gWzCBA.js → useEditorCore-idmPLUeb.js} +4 -4
  79. package/dist/{useMergeTag-C-_WxrgL.js → useMergeTag-CYZk7dZD.js} +1 -1
  80. package/package.json +8 -8
  81. package/dist/cdn/chunks/extensions-B7laxHjs.js.map +0 -1
  82. package/dist/cdn/chunks/src-BYKYmEOD.js.map +0 -1
  83. package/dist/cdn/chunks/src-EKTTBQ0y.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { T as e, Z as t } from "./draggable-DCs9qL-b.js";
2
- import { f as n, o as r, r as i } from "./src-EKTTBQ0y.js";
2
+ import { f as n, o as r, r as i } from "./src-B_QJduQD.js";
3
3
  import { A as a, D as o, E as s, N as c, O as l } from "./keys-Cmc2Yl3D.js";
4
4
  //#region src/composables/useMergeTag.ts
5
5
  function u() {
@@ -43,4 +43,4 @@ function u() {
43
43
  //#endregion
44
44
  export { u as t };
45
45
 
46
- //# sourceMappingURL=useMergeTag-CPa_9VOq.js.map
46
+ //# sourceMappingURL=useMergeTag-JmXOtpln.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMergeTag-CPa_9VOq.js","names":[],"sources":["../../../src/composables/useMergeTag.ts"],"sourcesContent":["import type { MergeTag, SyntaxPreset } from \"@templatical/types\";\nimport {\n isMergeTagValue as checkIsMergeTagValue,\n getMergeTagLabel as resolveMergeTagLabel,\n SYNTAX_PRESETS,\n} from \"@templatical/types\";\nimport { inject, ref, type Ref } from \"vue\";\nimport {\n MERGE_TAGS_KEY,\n MERGE_TAG_SYNTAX_KEY,\n MERGE_TAG_AUTOCOMPLETE_KEY,\n MERGE_TAG_PICKER_KEY,\n ON_REQUEST_MERGE_TAG_KEY,\n} from \"../keys\";\n\nexport interface UseMergeTagReturn {\n /** Available merge tags from config */\n mergeTags: MergeTag[];\n /** Whether a merge tag request is in progress */\n isRequesting: Ref<boolean>;\n /**\n * Whether the \"Insert merge tag\" button should be shown. True when\n * either `onRequestMergeTag` is provided or `mergeTags.tags` is\n * non-empty (the built-in picker then handles the click).\n */\n canRequestMergeTag: boolean;\n /** Whether typing-based autocomplete is enabled by configuration */\n autocomplete: boolean;\n /** The resolved syntax preset for merge tags */\n syntax: SyntaxPreset;\n /** Check if a value matches the configured merge tag syntax */\n isMergeTagValue: (value: string) => boolean;\n /** Get the human-readable label for a merge tag value */\n getMergeTagLabel: (value: string) => string;\n /**\n * Request a merge tag from the user. Precedence: when\n * `onRequestMergeTag` is set it owns the UX; otherwise the built-in\n * picker opens with the configured `mergeTags.tags`; otherwise null.\n */\n requestMergeTag: () => Promise<MergeTag | null>;\n}\n\n/**\n * Composable for merge tag functionality.\n * Provides utilities for detecting, displaying, and requesting merge tags.\n */\nexport function useMergeTag(): UseMergeTagReturn {\n const mergeTags = inject(MERGE_TAGS_KEY, []);\n const syntax = inject(MERGE_TAG_SYNTAX_KEY, SYNTAX_PRESETS.liquid);\n const onRequestMergeTag = inject(ON_REQUEST_MERGE_TAG_KEY, null);\n const autocomplete = inject(MERGE_TAG_AUTOCOMPLETE_KEY, true);\n // Picker may be null in headless contexts (tests, non-editor consumers).\n // requestMergeTag() returns null in that case rather than throwing.\n const picker = inject(MERGE_TAG_PICKER_KEY, null);\n\n const isRequesting = ref(false);\n\n function isMergeTagValue(value: string): boolean {\n return checkIsMergeTagValue(value, syntax);\n }\n\n function getMergeTagLabel(value: string): string {\n return resolveMergeTagLabel(value, mergeTags);\n }\n\n /**\n * Request a merge tag from the user. Precedence:\n * 1. `onRequestMergeTag` callback (consumer-owned UX)\n * 2. Built-in picker over `mergeTags.tags`\n * 3. null (nothing configured)\n */\n async function requestMergeTag(): Promise<MergeTag | null> {\n if (onRequestMergeTag) {\n isRequesting.value = true;\n try {\n return await onRequestMergeTag();\n } finally {\n isRequesting.value = false;\n }\n }\n if (mergeTags.length > 0 && picker) {\n isRequesting.value = true;\n try {\n return await picker.open(mergeTags);\n } finally {\n isRequesting.value = false;\n }\n }\n return null;\n }\n\n const canRequestMergeTag = !!onRequestMergeTag || mergeTags.length > 0;\n\n return {\n mergeTags,\n isRequesting,\n canRequestMergeTag,\n autocomplete,\n syntax,\n isMergeTagValue,\n getMergeTagLabel,\n requestMergeTag,\n };\n}\n"],"mappings":";;;;AA8CA,SAAgB,IAAiC;CAC/C,IAAM,IAAY,EAAO,GAAgB,CAAC,CAAC,GACrC,IAAS,EAAO,GAAsB,EAAe,MAAM,GAC3D,IAAoB,EAAO,GAA0B,IAAI,GACzD,IAAe,EAAO,GAA4B,EAAI,GAGtD,IAAS,EAAO,GAAsB,IAAI,GAE1C,IAAe,EAAI,EAAK;CAE9B,SAAS,EAAgB,GAAwB;EAC/C,OAAO,EAAqB,GAAO,CAAM;CAC3C;CAEA,SAAS,EAAiB,GAAuB;EAC/C,OAAO,EAAqB,GAAO,CAAS;CAC9C;CAQA,eAAe,IAA4C;EACzD,IAAI,GAAmB;GACrB,EAAa,QAAQ;GACrB,IAAI;IACF,OAAO,MAAM,EAAkB;GACjC,UAAU;IACR,EAAa,QAAQ;GACvB;EACF;EACA,IAAI,EAAU,SAAS,KAAK,GAAQ;GAClC,EAAa,QAAQ;GACrB,IAAI;IACF,OAAO,MAAM,EAAO,KAAK,CAAS;GACpC,UAAU;IACR,EAAa,QAAQ;GACvB;EACF;EACA,OAAO;CACT;CAIA,OAAO;EACL;EACA;EACA,oBALyB,CAAC,CAAC,KAAqB,EAAU,SAAS;EAMnE;EACA;EACA,iBAAA;EACA,kBAAA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"useMergeTag-JmXOtpln.js","names":[],"sources":["../../../src/composables/useMergeTag.ts"],"sourcesContent":["import type { MergeTag, SyntaxPreset } from \"@templatical/types\";\nimport {\n isMergeTagValue as checkIsMergeTagValue,\n getMergeTagLabel as resolveMergeTagLabel,\n SYNTAX_PRESETS,\n} from \"@templatical/types\";\nimport { inject, ref, type Ref } from \"vue\";\nimport {\n MERGE_TAGS_KEY,\n MERGE_TAG_SYNTAX_KEY,\n MERGE_TAG_AUTOCOMPLETE_KEY,\n MERGE_TAG_PICKER_KEY,\n ON_REQUEST_MERGE_TAG_KEY,\n} from \"../keys\";\n\nexport interface UseMergeTagReturn {\n /** Available merge tags from config */\n mergeTags: MergeTag[];\n /** Whether a merge tag request is in progress */\n isRequesting: Ref<boolean>;\n /**\n * Whether the \"Insert merge tag\" button should be shown. True when\n * either `onRequestMergeTag` is provided or `mergeTags.tags` is\n * non-empty (the built-in picker then handles the click).\n */\n canRequestMergeTag: boolean;\n /** Whether typing-based autocomplete is enabled by configuration */\n autocomplete: boolean;\n /** The resolved syntax preset for merge tags */\n syntax: SyntaxPreset;\n /** Check if a value matches the configured merge tag syntax */\n isMergeTagValue: (value: string) => boolean;\n /** Get the human-readable label for a merge tag value */\n getMergeTagLabel: (value: string) => string;\n /**\n * Request a merge tag from the user. Precedence: when\n * `onRequestMergeTag` is set it owns the UX; otherwise the built-in\n * picker opens with the configured `mergeTags.tags`; otherwise null.\n */\n requestMergeTag: () => Promise<MergeTag | null>;\n}\n\n/**\n * Composable for merge tag functionality.\n * Provides utilities for detecting, displaying, and requesting merge tags.\n */\nexport function useMergeTag(): UseMergeTagReturn {\n const mergeTags = inject(MERGE_TAGS_KEY, []);\n const syntax = inject(MERGE_TAG_SYNTAX_KEY, SYNTAX_PRESETS.liquid);\n const onRequestMergeTag = inject(ON_REQUEST_MERGE_TAG_KEY, null);\n const autocomplete = inject(MERGE_TAG_AUTOCOMPLETE_KEY, true);\n // Picker may be null in headless contexts (tests, non-editor consumers).\n // requestMergeTag() returns null in that case rather than throwing.\n const picker = inject(MERGE_TAG_PICKER_KEY, null);\n\n const isRequesting = ref(false);\n\n function isMergeTagValue(value: string): boolean {\n return checkIsMergeTagValue(value, syntax);\n }\n\n function getMergeTagLabel(value: string): string {\n return resolveMergeTagLabel(value, mergeTags);\n }\n\n /**\n * Request a merge tag from the user. Precedence:\n * 1. `onRequestMergeTag` callback (consumer-owned UX)\n * 2. Built-in picker over `mergeTags.tags`\n * 3. null (nothing configured)\n */\n async function requestMergeTag(): Promise<MergeTag | null> {\n if (onRequestMergeTag) {\n isRequesting.value = true;\n try {\n return await onRequestMergeTag();\n } finally {\n isRequesting.value = false;\n }\n }\n if (mergeTags.length > 0 && picker) {\n isRequesting.value = true;\n try {\n return await picker.open(mergeTags);\n } finally {\n isRequesting.value = false;\n }\n }\n return null;\n }\n\n const canRequestMergeTag = !!onRequestMergeTag || mergeTags.length > 0;\n\n return {\n mergeTags,\n isRequesting,\n canRequestMergeTag,\n autocomplete,\n syntax,\n isMergeTagValue,\n getMergeTagLabel,\n requestMergeTag,\n };\n}\n"],"mappings":";;;;AA8CA,SAAgB,IAAiC;CAC/C,IAAM,IAAY,EAAO,GAAgB,CAAC,CAAC,GACrC,IAAS,EAAO,GAAsB,EAAe,MAAM,GAC3D,IAAoB,EAAO,GAA0B,IAAI,GACzD,IAAe,EAAO,GAA4B,EAAI,GAGtD,IAAS,EAAO,GAAsB,IAAI,GAE1C,IAAe,EAAI,EAAK;CAE9B,SAAS,EAAgB,GAAwB;EAC/C,OAAO,EAAqB,GAAO,CAAM;CAC3C;CAEA,SAAS,EAAiB,GAAuB;EAC/C,OAAO,EAAqB,GAAO,CAAS;CAC9C;CAQA,eAAe,IAA4C;EACzD,IAAI,GAAmB;GACrB,EAAa,QAAQ;GACrB,IAAI;IACF,OAAO,MAAM,EAAkB;GACjC,UAAU;IACR,EAAa,QAAQ;GACvB;EACF;EACA,IAAI,EAAU,SAAS,KAAK,GAAQ;GAClC,EAAa,QAAQ;GACrB,IAAI;IACF,OAAO,MAAM,EAAO,KAAK,CAAS;GACpC,UAAU;IACR,EAAa,QAAQ;GACvB;EACF;EACA,OAAO;CACT;CAIA,OAAO;EACL;EACA;EACA,oBALyB,CAAC,CAAC,KAAqB,EAAU,SAAS;EAMnE;EACA;EACA,iBAAA;EACA,kBAAA;EACA;CACF;AACF"}
@@ -1,11 +1,11 @@
1
1
  import { A as e, C as t, H as n, M as r, V as i, Z as a, b as o, ct as s, g as c, h as l, it as u, j as d, l as f, lt as p, m, n as ee, p as h, r as g, s as _, st as v, v as y, x as b, y as x } from "./chunks/draggable-DCs9qL-b.js";
2
2
  import { r as S } from "./chunks/timeouts-SsLMC4a3.js";
3
- import { I as C, v as w } from "./chunks/src-EKTTBQ0y.js";
4
- import { F as T, R as E, b as te, t as ne, w as D } from "./chunks/useEditorCore-C_nUXiph.js";
3
+ import { R as C, b as w } from "./chunks/src-B_QJduQD.js";
4
+ import { F as T, R as E, b as te, t as ne, w as D } from "./chunks/useEditorCore-CKQ9gmoo.js";
5
5
  import { I as re, M as ie } from "./chunks/icons-CvYN6zrM.js";
6
6
  import { t as O } from "./chunks/_plugin-vue_export-helper-B3ysoDQm.js";
7
- import { a as ae, c as oe, d as se, f as ce, i as le, l as ue, m as de, n as fe, o as pe, p as k, r as me, s as he, t as ge, u as _e } from "./chunks/styles-C7s-VtJi.js";
8
- import { n as ve, t as ye } from "./chunks/MergeTagModeToggle-D8iKvz7v.js";
7
+ import { a as ae, c as oe, d as se, f as ce, i as le, l as ue, m as de, n as fe, o as pe, p as k, r as me, s as he, t as ge, u as _e } from "./chunks/styles-CND3ey2g.js";
8
+ import { n as ve, t as ye } from "./chunks/MergeTagModeToggle-DQ79SqQc.js";
9
9
  //#region src/Editor.vue?vue&type=script&setup=true&lang.ts
10
10
  var be = ["data-tpl-theme"], A = {
11
11
  class: "tpl-header tpl:absolute tpl:top-0 tpl:right-0 tpl:left-0 tpl:z-50 tpl:grid tpl:h-14 tpl:grid-cols-[1fr_auto_1fr] tpl:items-center tpl:px-4 tpl:shadow-[var(--tpl-shadow-md)] tpl:border-b tpl:border-[var(--tpl-border)]",
@@ -30,12 +30,12 @@ var be = ["data-tpl-theme"], A = {
30
30
  provider: b.config.savedBlocks,
31
31
  editor: S,
32
32
  onError: b.config.onError
33
- }) : null, T = o(() => import("./chunks/SavedBlocksPanels-Bb-eDMAh.js")), D = b.config.testEmail ? ce({
33
+ }) : null, T = o(() => import("./chunks/SavedBlocksPanels-e4HyTZ8v.js")), D = b.config.testEmail ? ce({
34
34
  provider: b.config.testEmail,
35
35
  getContent: () => S.content.value,
36
36
  renderMjml: F,
37
37
  onError: b.config.onError
38
- }) : null, O = o(() => import("./chunks/TestEmailPanel-Dr7Dkq2P.js")), P = ne({
38
+ }) : null, O = o(() => import("./chunks/TestEmailPanel-CZAG1gQE.js")), P = ne({
39
39
  editor: S,
40
40
  containerEl: C,
41
41
  config: {
@@ -332,7 +332,7 @@ function $(e) {
332
332
  async function Ne(e) {
333
333
  let n = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
334
334
  if (!n) throw Error(`[Templatical] Container element not found: ${e.container}`);
335
- let { default: r } = await import("./chunks/CloudEditor-C0nB1JfD.js"), [i, o] = await Promise.all([G(e.locale ?? "en"), we(e.locale ?? "en")]), s = D(e.fonts);
335
+ let { default: r } = await import("./chunks/CloudEditor-CQ830jJt.js"), [i, o] = await Promise.all([G(e.locale ?? "en"), we(e.locale ?? "en")]), s = D(e.fonts);
336
336
  $(n);
337
337
  let c = q(n, e.shadowDom ?? !0), l = a(null);
338
338
  return await new Promise((a, u) => {
@@ -1,5 +1,5 @@
1
1
  import { I as e, J as t, K as n, Y as r, q as i, s as a } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
- import { o, p as s } from "./dist-D5zCZFdU.js";
2
+ import { o, p as s } from "./dist-B1kLn1rs.js";
3
3
  //#region ../core/dist/cloud/index.js
4
4
  var c = class e {
5
5
  static DEFAULT_BASE_URL = "https://templatical.com";
@@ -300,7 +300,7 @@ function P(e = {}) {
300
300
  styles: C()
301
301
  }, e);
302
302
  }
303
- function F(e, t) {
303
+ function te(e, t) {
304
304
  return Array.from({ length: t }, () => ({
305
305
  id: S(),
306
306
  cells: Array.from({ length: e }, () => ({
@@ -309,16 +309,16 @@ function F(e, t) {
309
309
  }))
310
310
  }));
311
311
  }
312
- function I(e = {}) {
312
+ function F(e = {}) {
313
313
  return x({
314
314
  id: S(),
315
315
  type: "table",
316
- rows: F(3, 3),
316
+ rows: te(3, 3),
317
317
  ...m,
318
318
  styles: C()
319
319
  }, e);
320
320
  }
321
- function L(e = {}) {
321
+ function I(e = {}) {
322
322
  return x({
323
323
  id: S(),
324
324
  type: "countdown",
@@ -326,12 +326,12 @@ function L(e = {}) {
326
326
  styles: C()
327
327
  }, e);
328
328
  }
329
- function te(e) {
329
+ function L(e) {
330
330
  return e.type === "repeatable" ? e.default ?? [] : e.type === "boolean" ? e.default ?? !1 : e.type === "number" ? e.default ?? 0 : e.default ?? "";
331
331
  }
332
332
  function ne(e) {
333
333
  let t = {};
334
- for (let n of e.fields) t[n.key] = te(n);
334
+ for (let n of e.fields) t[n.key] = L(n);
335
335
  let n = x(C(), e.defaultStyles);
336
336
  return {
337
337
  id: S(),
@@ -355,8 +355,8 @@ function re(e, t) {
355
355
  case "spacer": return M(t?.spacer);
356
356
  case "html": return N(t?.html);
357
357
  case "menu": return P(t?.menu);
358
- case "table": return I(t?.table);
359
- case "countdown": return L(t?.countdown);
358
+ case "table": return F(t?.table);
359
+ case "countdown": return I(t?.countdown);
360
360
  default: throw Error(`Unknown block type: ${e}`);
361
361
  }
362
362
  }
@@ -364,7 +364,7 @@ function R(e) {
364
364
  let t = JSON.parse(JSON.stringify(e));
365
365
  return t.id = S(), t.type === "section" && (t.children = t.children.map((e) => e.map((e) => R(e)))), t;
366
366
  }
367
- function z(e) {
367
+ function ie(e) {
368
368
  let t = /* @__PURE__ */ new WeakSet();
369
369
  return JSON.parse(JSON.stringify(e, (e, n) => {
370
370
  if (typeof n == "object" && n) {
@@ -374,7 +374,76 @@ function z(e) {
374
374
  return n;
375
375
  }));
376
376
  }
377
- var B = {
377
+ var z = /* @__PURE__ */ new Set(["\"", "'"]);
378
+ function ae(e, t) {
379
+ let n = null;
380
+ for (let r = t; r < e.length; r++) {
381
+ let t = e[r];
382
+ if (n !== null) {
383
+ t === n && (n = null);
384
+ continue;
385
+ }
386
+ if (z.has(t)) {
387
+ n = t;
388
+ continue;
389
+ }
390
+ if (t === ">") return r;
391
+ }
392
+ return -1;
393
+ }
394
+ function B(e) {
395
+ return e !== " " && e !== " " && e !== "\n" && e !== "\r" && e !== "\f" && e !== "=" && e !== ">" && e !== "/";
396
+ }
397
+ function V(e) {
398
+ return e === " " || e === " " || e === "\n" || e === "\r" || e === "\f";
399
+ }
400
+ var H = {
401
+ amp: "&",
402
+ lt: "<",
403
+ gt: ">",
404
+ quot: "\"",
405
+ apos: "'",
406
+ nbsp: "\xA0"
407
+ };
408
+ function U(e) {
409
+ return e.includes("&") ? e.replace(/&(#[0-9]+|#[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/g, (e, t) => {
410
+ if (t[0] === "#") {
411
+ let n = t[1] === "x" || t[1] === "X" ? Number.parseInt(t.slice(2), 16) : Number.parseInt(t.slice(1), 10);
412
+ return !Number.isFinite(n) || n < 1 || n > 1114111 || n >= 55296 && n <= 57343 ? e : String.fromCodePoint(n);
413
+ }
414
+ return H[t.toLowerCase()] ?? e;
415
+ }) : e;
416
+ }
417
+ function W(e, t) {
418
+ let n = t.toLowerCase(), r = 0;
419
+ for (; r < e.length;) {
420
+ for (; r < e.length && (V(e[r]) || e[r] === "/");) r++;
421
+ if (r >= e.length) break;
422
+ let t = r;
423
+ for (; r < e.length && B(e[r]);) r++;
424
+ let i = e.substring(t, r).toLowerCase();
425
+ if (i === "") {
426
+ r++;
427
+ continue;
428
+ }
429
+ for (; r < e.length && V(e[r]);) r++;
430
+ if (e[r] !== "=") continue;
431
+ for (r++; r < e.length && V(e[r]);) r++;
432
+ let a = e[r];
433
+ if (z.has(a)) {
434
+ let t = r + 1, o = e.indexOf(a, t);
435
+ if (o === -1) return null;
436
+ if (i === n) return U(e.substring(t, o));
437
+ r = o + 1;
438
+ continue;
439
+ }
440
+ let o = r;
441
+ for (; r < e.length && !V(e[r]) && e[r] !== ">";) r++;
442
+ if (i === n) return U(e.substring(o, r));
443
+ }
444
+ return null;
445
+ }
446
+ var G = {
378
447
  liquid: {
379
448
  value: /\{\{.+?\}\}/g,
380
449
  logic: /\{%-?\s*(\w+).*?-?%\}/g
@@ -391,115 +460,115 @@ var B = {
391
460
  value: /%%=.+?=%%/g,
392
461
  logic: /%%\[\s*(\w+).*?\]%%/g
393
462
  }
394
- }, V = {
463
+ }, K = {
395
464
  liquid: "{{",
396
465
  handlebars: "{{",
397
466
  mailchimp: "*|",
398
467
  ampscript: "%%="
399
- }, H = {
468
+ }, q = {
400
469
  liquid: "}}",
401
470
  handlebars: "}}",
402
471
  mailchimp: "|*",
403
472
  ampscript: "=%%"
404
473
  };
405
- function U(e) {
406
- for (let t of Object.keys(B)) if (B[t].value.source === e.value.source) return V[t];
474
+ function oe(e) {
475
+ for (let t of Object.keys(G)) if (G[t].value.source === e.value.source) return K[t];
407
476
  return null;
408
477
  }
409
- function W(e) {
410
- for (let t of Object.keys(B)) if (B[t].value.source === e.value.source) return H[t];
478
+ function se(e) {
479
+ for (let t of Object.keys(G)) if (G[t].value.source === e.value.source) return q[t];
411
480
  return null;
412
481
  }
413
- function G(e) {
414
- return e ? typeof e == "string" ? B[e] ?? B.liquid : e : B.liquid;
482
+ function ce(e) {
483
+ return e ? typeof e == "string" ? G[e] ?? G.liquid : e : G.liquid;
415
484
  }
416
- function K(e) {
485
+ function J(e) {
417
486
  let t = e.source, n = e.flags.replace("g", "");
418
487
  return RegExp(`^${t}$`, n);
419
488
  }
420
- function q(e, t) {
489
+ function le(e, t) {
421
490
  let n = e?.trim() || "";
422
- return !K(t.logic).test(n) && K(t.value).test(n);
491
+ return !J(t.logic).test(n) && J(t.value).test(n);
423
492
  }
424
- function J(e, t) {
493
+ function Y(e, t) {
425
494
  let n = t.find((t) => t.value === e);
426
495
  return n ? n.label : e;
427
496
  }
428
- function Y(e, t) {
429
- return $(e, "data-merge-tag", (e) => J(e, t));
497
+ function ue(e, t) {
498
+ return $(e, "data-merge-tag", (e) => Y(e, t));
430
499
  }
431
500
  function X(e, t) {
432
501
  return t.find((t) => t.value === e)?.sample;
433
502
  }
434
- function ie(e, t) {
435
- return $(e, "data-merge-tag", (e) => se(X(e, t) ?? J(e, t)), { unwrap: (e) => X(e, t) !== void 0 });
503
+ function de(e, t) {
504
+ return $(e, "data-merge-tag", (e) => me(X(e, t) ?? Y(e, t)), { unwrap: (e) => X(e, t) !== void 0 });
436
505
  }
437
- function ae(e) {
506
+ function fe(e) {
438
507
  return e.some((e) => e.sample !== void 0);
439
508
  }
440
- function oe(e, t) {
509
+ function pe(e, t) {
441
510
  if (!e) return e;
442
511
  let n = e;
443
512
  for (let e of t) e.sample !== void 0 && (n = n.split(e.value).join(e.sample));
444
513
  return n;
445
514
  }
446
- function se(e) {
515
+ function me(e) {
447
516
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
448
517
  }
449
- function ce(e, t) {
518
+ function he(e, t) {
450
519
  if (!e) return !1;
451
520
  let n = new RegExp(t.value.source, t.value.flags), r = new RegExp(t.logic.source, t.logic.flags);
452
521
  return n.test(e) || r.test(e);
453
522
  }
454
523
  function Z(e, t) {
455
- return K(t.logic).test(e?.trim() || "");
524
+ return J(t.logic).test(e?.trim() || "");
456
525
  }
457
526
  function Q(e, t) {
458
527
  let n = new RegExp(t.logic.source, t.logic.flags.replace("g", "")), r = e.match(n);
459
528
  return r && r[1] ? r[1].toUpperCase() : e;
460
529
  }
461
- function le(e, t) {
530
+ function ge(e, t) {
462
531
  return $(e, "data-logic-merge-tag", (e) => Q(e, t));
463
532
  }
464
533
  function $(e, t, n, r) {
465
- let i = RegExp(`(?:^|\\s)${t}="([^"<>]*)"`), a = "", o = 0;
466
- for (; o < e.length;) {
467
- let t = e.indexOf("<span", o);
468
- if (t === -1) {
469
- a += e.substring(o);
534
+ let i = "", a = 0;
535
+ for (; a < e.length;) {
536
+ let o = e.indexOf("<span", a);
537
+ if (o === -1) {
538
+ i += e.substring(a);
470
539
  break;
471
540
  }
472
- let s = e[t + 5];
541
+ let s = e[o + 5];
473
542
  if (s !== ">" && s !== " " && s !== " " && s !== "\n" && s !== "\r" && s !== "/") {
474
- a += e.substring(o, t + 5), o = t + 5;
543
+ i += e.substring(a, o + 5), a = o + 5;
475
544
  continue;
476
545
  }
477
- let c = e.indexOf(">", t + 5);
546
+ let c = ae(e, o + 5);
478
547
  if (c === -1) {
479
- a += e.substring(o);
548
+ i += e.substring(a);
480
549
  break;
481
550
  }
482
551
  let l = e.indexOf("</span>", c + 1);
483
552
  if (l === -1) {
484
- a += e.substring(o);
553
+ i += e.substring(a);
485
554
  break;
486
555
  }
487
- let u = e.substring(t + 5, c), d = i.exec(u);
488
- if (!d) {
489
- a += e.substring(o, t + 5), o = t + 5;
556
+ let u = W(e.substring(o + 5, c), t);
557
+ if (u === null) {
558
+ i += e.substring(a, o + 5), a = o + 5;
490
559
  continue;
491
560
  }
492
- let f = d[1], p = n(f);
493
- r?.unwrap?.(f) ? (a += e.substring(o, t), a += p) : (a += e.substring(o, c + 1), a += p, a += "</span>"), o = l + 7;
561
+ let d = n(u);
562
+ r?.unwrap?.(u) ? (i += e.substring(a, o), i += d) : (i += e.substring(a, c + 1), i += d, i += "</span>"), a = l + 7;
494
563
  }
495
- return a;
564
+ return i;
496
565
  }
497
- function ue(e) {
566
+ function _e(e) {
498
567
  if (typeof e != "object" || !e) return !1;
499
568
  let t = e;
500
569
  return Array.isArray(t.blocks);
501
570
  }
502
- var de = class extends Error {
571
+ var ve = class extends Error {
503
572
  statusCode;
504
573
  constructor(e, t) {
505
574
  super(e), this.statusCode = t, this.name = "SdkError";
@@ -515,4 +584,4 @@ var de = class extends Error {
515
584
  }
516
585
  };
517
586
  //#endregion
518
- export { U as A, ie as B, w as C, J as D, Q as E, ue as F, le as I, Y as L, n as M, Z as N, X as O, q as P, G as R, I as S, S as T, oe as V, P as _, B as a, j as b, ce as c, L as d, ne as f, E as g, N as h, t as i, ae as j, W as k, re as l, O as m, _ as n, de as o, b as p, e as r, R as s, g as t, D as u, T as v, A as w, M as x, k as y, z };
587
+ export { oe as A, de as B, w as C, Y as D, Q as E, _e as F, ge as I, ue as L, n as M, Z as N, X as O, le as P, ce as R, F as S, S as T, pe as V, P as _, G as a, j as b, he as c, I as d, ne as f, E as g, N as h, t as i, fe as j, se as k, re as l, O as m, _ as n, ve as o, b as p, e as r, R as s, g as t, D as u, T as v, A as w, M as x, k as y, ie as z };
@@ -1,8 +1,8 @@
1
1
  import { Dt as e, Et as t, O as n, Ot as r, R as i, Y as a, _ as o, c as s, d as c, l, nt as u, s as d, u as f, w as p, z as m } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
2
  import { a as h, c as g, s as _ } from "./runtime-dom.esm-bundler-CepEmvwF.js";
3
- import { D as v, E as y, N as b, a as x } from "./dist-D5zCZFdU.js";
3
+ import { D as v, E as y, N as b, a as x } from "./dist-B1kLn1rs.js";
4
4
  import { t as S } from "./useI18n-DoVKdCTH.js";
5
- import { t as C } from "./useMergeTag-C-_WxrgL.js";
5
+ import { t as C } from "./useMergeTag-CYZk7dZD.js";
6
6
  import { gn as w, m as T, s as E, u as D, v as O } from "./dist-ChYLhoJ4.js";
7
7
  import { i as k, r as A, t as j } from "./MergeTagSuggestion-BJ43ihWR.js";
8
8
  import { n as M, t as N } from "./dist-Cl8J0IES.js";
@@ -195,10 +195,12 @@ var U = T.create({
195
195
  return {
196
196
  value: {
197
197
  default: "",
198
+ rendered: !1,
198
199
  parseHTML: (e) => e.getAttribute("data-logic-merge-tag") || ""
199
200
  },
200
201
  keyword: {
201
202
  default: "",
203
+ rendered: !1,
202
204
  parseHTML: (e) => e.getAttribute("data-keyword") || e.textContent || ""
203
205
  }
204
206
  };
@@ -356,10 +358,12 @@ var U = T.create({
356
358
  return {
357
359
  label: {
358
360
  default: "",
361
+ rendered: !1,
359
362
  parseHTML: (e) => e.getAttribute("data-label") || e.textContent || ""
360
363
  },
361
364
  value: {
362
365
  default: "",
366
+ rendered: !1,
363
367
  parseHTML: (e) => e.getAttribute("data-merge-tag") || ""
364
368
  }
365
369
  };
@@ -1,8 +1,8 @@
1
1
  import { A as e, Dt as t, Et as n, H as r, I as i, K as a, N as o, O as s, Ot as c, R as l, W as u, Y as d, _ as f, c as p, d as m, g as h, h as g, j as _, k as v, l as y, m as b, nt as x, q as S, r as C, s as w, u as T, w as E, x as D, y as O, z as k } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
2
  import { a as A, c as j, o as M, s as N, t as P } from "./runtime-dom.esm-bundler-CepEmvwF.js";
3
3
  import { t as F } from "./upload-sVqqppuv.js";
4
- import { A as ee, E as I, M as L, N as R, T as z, a as B, c as V, f as te, k as ne, l as re, s as ie } from "./dist-D5zCZFdU.js";
5
- import { B as ae, F as oe, I as H, J as se, K as ce, L as le, N as ue, U as de, V as fe, _ as pe, a as me, b as he, c as ge, f as _e, g as ve, h as ye, i as be, k as xe, l as Se, m as Ce, n as we, o as Te, p as Ee, r as De, s as Oe, u as ke, v as Ae, w as je, y as Me, z as Ne } from "./useEditorCore-r4gWzCBA.js";
4
+ import { A as ee, E as I, M as L, N as R, T as z, a as B, c as V, f as te, k as ne, l as re, s as ie } from "./dist-B1kLn1rs.js";
5
+ import { B as ae, F as oe, I as H, J as se, K as ce, L as le, N as ue, U as de, V as fe, _ as pe, a as me, b as he, c as ge, f as _e, g as ve, h as ye, i as be, k as xe, l as Se, m as Ce, n as we, o as Te, p as Ee, r as De, s as Oe, u as ke, v as Ae, w as je, y as Me, z as Ne } from "./useEditorCore-idmPLUeb.js";
6
6
  import { c as Pe, m as Fe } from "./dist-BpKxrUi2.js";
7
7
  import { a as Ie, n as Le } from "./usePopoverPosition-C0dPEF4X.js";
8
8
  import { A as Re, B as ze, G as Be, H as Ve, I as He, M as Ue, O as We, P as Ge, R as Ke, T as qe, U as Je, V as Ye, W as Xe, c as Ze, f as Qe, g as $e, h as et, k as tt, m as nt, n as rt, o as it, p as at, r as ot, s as st, u as ct, v as lt } from "./keys-fwF3qZax.js";
@@ -11,27 +11,27 @@ import { t as W } from "./createLucideIcon-C8WzBYCv.js";
11
11
  import { n as ut, t as dt } from "./scan-line-DwSVj25O.js";
12
12
  import { t as ft } from "./chevron-down-69EiBGoB.js";
13
13
  import { t as pt } from "./circle-alert-cilwzafX.js";
14
- import { i as mt, n as ht, r as gt, t as _t } from "./blockTypeIcons-CfLN4A6t.js";
14
+ import { i as mt, n as ht, r as gt, t as _t } from "./blockTypeIcons-2_85L_CL.js";
15
15
  import { n as vt, t as yt } from "./refresh-cw-CkOYVzK5.js";
16
16
  import { t as bt } from "./image-up-Ceggh_R3.js";
17
17
  import { t as xt } from "./info-DO5odBcZ.js";
18
18
  import { t as St } from "./list-checks-BSkPKbuI.js";
19
19
  import { t as Ct } from "./loader-circle-bO7o7_HD.js";
20
- import { i as wt, r as Tt } from "./MergeTagModeToggle-hAJgIKhw.js";
20
+ import { i as wt, r as Tt } from "./MergeTagModeToggle-P-UguQHc.js";
21
21
  import { t as Et } from "./sparkles-DumaWRW-.js";
22
22
  import { n as Dt, r as Ot, t as kt } from "./text-align-start-Ir8Ah4mT.js";
23
23
  import { t as At } from "./trash-2-CklAFCmO.js";
24
24
  import { t as jt } from "./x-Mby7KlhS.js";
25
25
  import { t as Mt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
26
26
  import { t as Nt } from "./useCloudI18n-DKVm6PCa.js";
27
- import { t as Pt } from "./useMergeTag-C-_WxrgL.js";
27
+ import { t as Pt } from "./useMergeTag-CYZk7dZD.js";
28
28
  import { t as Ft } from "./useAliveFlag-cvyBxHp7.js";
29
29
  import { n as It, t as Lt } from "./emailFrameWidth-BmFCN2dp.js";
30
30
  import { t as Rt } from "./readableTextColor-f8Kykfnh.js";
31
31
  import { _ as zt, f as G, g as Bt, h as K, i as Vt, l as Ht, m as q, n as Ut, p as J, t as Y, u as Wt } from "./ColorPicker-ClETsjA3.js";
32
32
  import { n as Gt, r as Kt } from "./MergeTagSuggestion-BJ43ihWR.js";
33
33
  import { i as X, n as Z, r as Q, t as qt } from "./NumberWithSuffix-D37ZWiZh.js";
34
- import { t as Jt } from "./TplModal-DDDHcoir.js";
34
+ import { t as Jt } from "./TplModal-DoneXIj_.js";
35
35
  var Yt = W("circle", [["circle", {
36
36
  cx: "12",
37
37
  cy: "12",
@@ -1,10 +1,10 @@
1
1
  import { D as e, Dt as t, E as n, Et as r, O as i, Ot as a, R as o, Y as s, _ as c, c as l, d as u, g as d, h as f, l as p, m, nt as h, u as g, y as _, z as v } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
2
  import { c as y, n as b, o as x, t as ee } from "./runtime-dom.esm-bundler-CepEmvwF.js";
3
3
  import { i as S } from "./upload-sVqqppuv.js";
4
- import { p as C, z as w } from "./dist-D5zCZFdU.js";
5
- import { G as T, T as E, q as te, t as ne, x as re } from "./useEditorCore-r4gWzCBA.js";
6
- import { a as ie, c as ae, d as oe, f as se, h as ce, i as le, l as ue, m as de, n as fe, o as pe, p as D, r as me, s as he, t as ge, u as _e } from "./styles-C_slTGwp.js";
7
- import { n as ve, t as ye } from "./MergeTagModeToggle-hAJgIKhw.js";
4
+ import { p as C, z as w } from "./dist-B1kLn1rs.js";
5
+ import { G as T, T as E, q as te, t as ne, x as re } from "./useEditorCore-idmPLUeb.js";
6
+ import { a as ie, c as ae, d as oe, f as se, h as ce, i as le, l as ue, m as de, n as fe, o as pe, p as D, r as me, s as he, t as ge, u as _e } from "./styles-BK36D1sy.js";
7
+ import { n as ve, t as ye } from "./MergeTagModeToggle-P-UguQHc.js";
8
8
  import { t as be } from "./send-CWsWN8PQ.js";
9
9
  import { t as O } from "./_plugin-vue_export-helper-B3ysoDQm.js";
10
10
  //#region src/Editor.vue?vue&type=script&setup=true&lang.ts
@@ -31,12 +31,12 @@ var xe = ["data-tpl-theme"], k = {
31
31
  provider: b.config.savedBlocks,
32
32
  editor: S,
33
33
  onError: b.config.onError
34
- }) : null, T = d(() => import("./SavedBlocksPanels-DNVdso_W.js")), E = b.config.testEmail ? se({
34
+ }) : null, T = d(() => import("./SavedBlocksPanels-CQsZvWO_.js")), E = b.config.testEmail ? se({
35
35
  provider: b.config.testEmail,
36
36
  getContent: () => S.content.value,
37
37
  renderMjml: P,
38
38
  onError: b.config.onError
39
- }) : null, O = d(() => import("./TestEmailPanel-l6LDmBGM.js")), N = ne({
39
+ }) : null, O = d(() => import("./TestEmailPanel-B6goIAxT.js")), N = ne({
40
40
  editor: S,
41
41
  containerEl: C,
42
42
  config: {
@@ -333,7 +333,7 @@ function $(e) {
333
333
  async function Ne(e) {
334
334
  let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
335
335
  if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
336
- let { default: n } = await import("./CloudEditor-BdSQ8hfv.js"), [r, i] = await Promise.all([W(e.locale ?? "en"), Te(e.locale ?? "en")]), a = E(e.fonts);
336
+ let { default: n } = await import("./CloudEditor-DEnMNMbm.js"), [r, i] = await Promise.all([W(e.locale ?? "en"), Te(e.locale ?? "en")]), a = E(e.fonts);
337
337
  $(t);
338
338
  let o = q(t, e.shadowDom ?? !0), c = s(null);
339
339
  return await new Promise((s, l) => {
@@ -1,7 +1,7 @@
1
1
  import { $ as e, A as t, B as n, D as r, Dt as i, E as a, Et as o, H as s, I as c, J as l, K as u, N as d, O as f, Ot as p, R as m, T as h, W as g, Y as _, Z as v, _ as y, c as b, d as x, et as S, g as C, h as w, j as T, k as E, l as D, m as O, nt as k, q as A, r as j, rt as ee, s as M, tt as N, u as P, v as te, w as ne, x as F, y as re, z as ie } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
2
  import { c as I, o as ae, s as oe } from "./runtime-dom.esm-bundler-CepEmvwF.js";
3
3
  import { t as se } from "./upload-sVqqppuv.js";
4
- import { A as ce, B as le, C as ue, D as de, E as fe, F as pe, I as me, L as he, M as ge, N as _e, O as ve, P as ye, R as be, S as xe, T as Se, V as Ce, _ as we, a as Te, b as Ee, c as De, d as Oe, f as ke, g as Ae, h as je, i as Me, j as Ne, l as Pe, m as Fe, n as Ie, o as Le, p as Re, r as ze, t as Be, u as Ve, v as He, w as Ue, x as We, y as Ge, z as Ke } from "./dist-D5zCZFdU.js";
4
+ import { A as ce, B as le, C as ue, D as de, E as fe, F as pe, I as me, L as he, M as ge, N as _e, O as ve, P as ye, R as be, S as xe, T as Se, V as Ce, _ as we, a as Te, b as Ee, c as De, d as Oe, f as ke, g as Ae, h as je, i as Me, j as Ne, l as Pe, m as Fe, n as Ie, o as Le, p as Re, r as ze, t as Be, u as Ve, v as He, w as Ue, x as We, y as Ge, z as Ke } from "./dist-B1kLn1rs.js";
5
5
  import { f as qe, g as Je, h as Ye, m as Xe } from "./dist-BpKxrUi2.js";
6
6
  import { a as Ze, c as Qe, d as $e, i as et, l as tt, o as nt, r as rt, t as it, u as at } from "./usePopoverPosition-C0dPEF4X.js";
7
7
  import { A as ot, B as st, C as ct, D as lt, E as ut, F as dt, G as ft, H as pt, I as mt, L as ht, M as gt, N as _t, O as vt, P as yt, S as bt, T as xt, U as St, V as Ct, W as wt, _ as Tt, a as Et, b as Dt, c as Ot, f as kt, g as At, h as jt, j as Mt, k as Nt, m as Pt, n as Ft, o as It, p as Lt, r as Rt, s as zt, u as Bt, v as Vt, w as Ht, x as Ut, y as Wt } from "./keys-fwF3qZax.js";
@@ -14,7 +14,7 @@ import { t as Yt } from "./triangle-alert-BBi4n93g.js";
14
14
  import { t as Xt } from "./LoadingTrack-BexpNuTV.js";
15
15
  import { t as Zt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
16
  import "./useCloudI18n-DKVm6PCa.js";
17
- import { t as Qt } from "./useMergeTag-C-_WxrgL.js";
17
+ import { t as Qt } from "./useMergeTag-CYZk7dZD.js";
18
18
  import { t as $t } from "./useAliveFlag-cvyBxHp7.js";
19
19
  //#region ../core/dist/index.js
20
20
  function en(e) {
@@ -2411,7 +2411,7 @@ var wi = ["innerHTML"], Ti = /* @__PURE__ */ y({
2411
2411
  viewport: {}
2412
2412
  },
2413
2413
  setup(e) {
2414
- let t = e, n = C(() => import("./ParagraphEditor-DBG63S70.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ci(() => t.block.content);
2414
+ let t = e, n = C(() => import("./ParagraphEditor-CLvv5Ija.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ci(() => t.block.content);
2415
2415
  return (t, l) => (f(), x("div", {
2416
2416
  ref_key: "blockRef",
2417
2417
  ref: i,
@@ -2651,7 +2651,7 @@ var Wi = /* @__PURE__ */ y({
2651
2651
  viewport: {}
2652
2652
  },
2653
2653
  setup(e) {
2654
- let t = e, n = C(() => import("./TitleEditor-imoBUynh.js")), { isEditing: r, blockRef: a, toolbarPosition: o, resolvedContent: s, handleDoubleClick: c, handleEditorDone: l } = Ci(() => t.block.content), u = M(() => {
2654
+ let t = e, n = C(() => import("./TitleEditor-JEaP9jVF.js")), { isEditing: r, blockRef: a, toolbarPosition: o, resolvedContent: s, handleDoubleClick: c, handleEditorDone: l } = Ci(() => t.block.content), u = M(() => {
2655
2655
  let e = {
2656
2656
  fontSize: `${ze[t.block.level]}px`,
2657
2657
  textAlign: t.block.textAlign
@@ -1,5 +1,5 @@
1
1
  import { Y as e, x as t } from "./vue.runtime.esm-bundler-D1diBMsm.js";
2
- import { D as n, P as r, a as i } from "./dist-D5zCZFdU.js";
2
+ import { D as n, P as r, a as i } from "./dist-B1kLn1rs.js";
3
3
  import { A as a, D as o, E as s, N as c, O as l } from "./keys-fwF3qZax.js";
4
4
  //#region src/composables/useMergeTag.ts
5
5
  function u() {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@templatical/editor",
3
3
  "description": "Vue 3 visual drag-and-drop email editor powered by Templatical",
4
- "version": "0.26.0",
4
+ "version": "0.26.2",
5
5
  "bugs": "https://github.com/templatical/sdk/issues",
6
6
  "devDependencies": {
7
7
  "@lucide/vue": "^1.31.0",
@@ -31,10 +31,10 @@
31
31
  "vitest": "^4.1.10",
32
32
  "vue": "^3.5.41",
33
33
  "vue-draggable-plus": "^0.6.1",
34
- "vue-tsc": "^3.3.9",
35
- "@templatical/core": "0.26.0",
36
- "@templatical/quality": "0.26.0",
37
- "@templatical/types": "0.26.0"
34
+ "vue-tsc": "^3.3.10",
35
+ "@templatical/core": "0.26.2",
36
+ "@templatical/quality": "0.26.2",
37
+ "@templatical/types": "0.26.2"
38
38
  },
39
39
  "exports": {
40
40
  ".": {
@@ -62,9 +62,9 @@
62
62
  "license": "SEE LICENSE IN LICENSE",
63
63
  "module": "./dist/templatical-editor.js",
64
64
  "peerDependencies": {
65
- "@templatical/media-library": "0.26.0",
66
- "@templatical/quality": "0.26.0",
67
- "@templatical/renderer": "0.26.0"
65
+ "@templatical/media-library": "0.26.2",
66
+ "@templatical/quality": "0.26.2",
67
+ "@templatical/renderer": "0.26.2"
68
68
  },
69
69
  "peerDependenciesMeta": {
70
70
  "@templatical/renderer": {