@aswin.dev/editor 0.8.4 → 0.8.7

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 (90) hide show
  1. package/dist/{AccessibilityPanel-COL6Wm7p.js → AccessibilityPanel-B39ct5ON.js} +2 -2
  2. package/dist/{AiChatSidebar-DAJOuHPG.js → AiChatSidebar-CYh7SPHW.js} +2 -2
  3. package/dist/{AiFeatureMenu-CKnEDzme.js → AiFeatureMenu-D9UhqJAa.js} +3 -3
  4. package/dist/{BlockA11yBadge-Qs6HtXid.js → BlockA11yBadge-Dr854uEe.js} +2 -2
  5. package/dist/{CloudEditor-DzdiTmvD.js → CloudEditor-BNEIze18.js} +282 -275
  6. package/dist/{CollaboratorBar-C6TfqpyV.js → CollaboratorBar-DZXuPSfU.js} +2 -2
  7. package/dist/{CommentsSidebar-DE6ZsM4D.js → CommentsSidebar-BVKFtxml.js} +4 -4
  8. package/dist/{CountdownBlock-Ba3T-i2X.js → CountdownBlock-CrpaDWze.js} +1 -1
  9. package/dist/{CountdownToolbar-B9IAZzeV.js → CountdownToolbar-D1tb2T_b.js} +2 -2
  10. package/dist/{DesignReferenceSidebar-C6yDJlD8.js → DesignReferenceSidebar-_QsmFpE_.js} +44 -44
  11. package/dist/{ModuleBrowserModal-DUKuDjS-.js → ModuleBrowserModal-Bth1crh_.js} +7 -7
  12. package/dist/{ModulePreviewCanvas-C9HTjfkN.js → ModulePreviewCanvas-96pndrb9.js} +3 -3
  13. package/dist/{ParagraphEditor-CFuaZKGk.js → ParagraphEditor-C2d9O2P4.js} +123 -123
  14. package/dist/{RichTextEditorContent-CrqPQdnk.js → RichTextEditorContent-Cn0ZU41b.js} +3 -3
  15. package/dist/{SaveModuleDialog-QjgPFEDg.js → SaveModuleDialog-B1EJtMGq.js} +17 -17
  16. package/dist/{SlidingPillSelect-DfcBdJqN.js → SlidingPillSelect-Dt34f5VF.js} +1 -1
  17. package/dist/{SnapshotHistory-Dblt21_W.js → SnapshotHistory-Cd-a_xGv.js} +3 -3
  18. package/dist/{TemplateScoringPanel-CS7o62zS.js → TemplateScoringPanel-C8WixDsv.js} +77 -77
  19. package/dist/{TestEmailModal-D_y3ZksG.js → TestEmailModal-CEj_81cQ.js} +3 -3
  20. package/dist/TitleEditor-C8Qyr_U3.js +172 -0
  21. package/dist/{TplModal-DinL7DhQ.js → TplModal-B_HcUS4S.js} +2 -2
  22. package/dist/{blockTypeIcons-JjmIZ_Vx.js → blockTypeIcons-CeaSm2Xd.js} +1 -1
  23. package/dist/bundle-stats.json +6 -6
  24. package/dist/cdn/chunks/{AccessibilityPanel-BTADkTp2.js → AccessibilityPanel-C8vY7QIF.js} +3 -3
  25. package/dist/cdn/chunks/{AccessibilityPanel-BTADkTp2.js.map → AccessibilityPanel-C8vY7QIF.js.map} +1 -1
  26. package/dist/cdn/chunks/{AiFeatureMenu-D99Pw32q.js → AiFeatureMenu-BaUpnF6T.js} +2 -2
  27. package/dist/cdn/chunks/{AiFeatureMenu-D99Pw32q.js.map → AiFeatureMenu-BaUpnF6T.js.map} +1 -1
  28. package/dist/cdn/chunks/{BlockA11yBadge-dtyeSSvY.js → BlockA11yBadge-BHkh4Otq.js} +2 -2
  29. package/dist/cdn/chunks/{BlockA11yBadge-dtyeSSvY.js.map → BlockA11yBadge-BHkh4Otq.js.map} +1 -1
  30. package/dist/cdn/chunks/{CloudEditor-nQ7qsrkA.js → CloudEditor-DUIjZDAS.js} +265 -258
  31. package/dist/cdn/chunks/{CloudEditor-nQ7qsrkA.js.map → CloudEditor-DUIjZDAS.js.map} +1 -1
  32. package/dist/cdn/chunks/{CollaboratorBar-Cuy1BusU.js → CollaboratorBar-pyuEO5Bm.js} +3 -3
  33. package/dist/cdn/chunks/{CollaboratorBar-Cuy1BusU.js.map → CollaboratorBar-pyuEO5Bm.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-CqFM85Xv.js → CountdownToolbar-CCGHm6Gg.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-CqFM85Xv.js.map → CountdownToolbar-CCGHm6Gg.js.map} +1 -1
  36. package/dist/cdn/chunks/{ModuleBrowserModal-Dcxtq_dC.js → ModuleBrowserModal-DKsMddYS.js} +6 -6
  37. package/dist/cdn/chunks/{ModuleBrowserModal-Dcxtq_dC.js.map → ModuleBrowserModal-DKsMddYS.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModulePreviewCanvas-Didb4ZCU.js → ModulePreviewCanvas-E0mfCUJi.js} +2 -2
  39. package/dist/cdn/chunks/{ModulePreviewCanvas-Didb4ZCU.js.map → ModulePreviewCanvas-E0mfCUJi.js.map} +1 -1
  40. package/dist/cdn/chunks/{ParagraphEditor-BX2L35YF.js → ParagraphEditor-DwmzHg6F.js} +116 -116
  41. package/dist/cdn/chunks/ParagraphEditor-DwmzHg6F.js.map +1 -0
  42. package/dist/cdn/chunks/{RichTextEditorContent-ywrdsvHY.js → RichTextEditorContent-4-cNqB4H.js} +3 -3
  43. package/dist/cdn/chunks/{RichTextEditorContent-ywrdsvHY.js.map → RichTextEditorContent-4-cNqB4H.js.map} +1 -1
  44. package/dist/cdn/chunks/{SaveModuleDialog-Ddp-HCFB.js → SaveModuleDialog-COm3ptOF.js} +3 -3
  45. package/dist/cdn/chunks/{SaveModuleDialog-Ddp-HCFB.js.map → SaveModuleDialog-COm3ptOF.js.map} +1 -1
  46. package/dist/cdn/chunks/{SlidingPillSelect-CS6N3vGq.js → SlidingPillSelect-DlgRynQN.js} +2 -2
  47. package/dist/cdn/chunks/{SlidingPillSelect-CS6N3vGq.js.map → SlidingPillSelect-DlgRynQN.js.map} +1 -1
  48. package/dist/cdn/chunks/TitleEditor-CE8r8txX.js +171 -0
  49. package/dist/cdn/chunks/TitleEditor-CE8r8txX.js.map +1 -0
  50. package/dist/cdn/chunks/{blockTypeIcons-B2x3gJsz.js → blockTypeIcons-BOf7hTFU.js} +3 -3
  51. package/dist/cdn/chunks/{blockTypeIcons-B2x3gJsz.js.map → blockTypeIcons-BOf7hTFU.js.map} +1 -1
  52. package/dist/cdn/chunks/{extensions-CdYSoz4B.js → extensions-B5e8Ov02.js} +17 -17
  53. package/dist/cdn/chunks/{extensions-CdYSoz4B.js.map → extensions-B5e8Ov02.js.map} +1 -1
  54. package/dist/cdn/chunks/{features-BZeMkHMs.js → features-BHTP4oRU.js} +734 -734
  55. package/dist/cdn/chunks/features-BHTP4oRU.js.map +1 -0
  56. package/dist/cdn/chunks/{icons-nP0Wj6Eq.js → icons-DS4IYWzG.js} +2 -2
  57. package/dist/cdn/chunks/{icons-nP0Wj6Eq.js.map → icons-DS4IYWzG.js.map} +1 -1
  58. package/dist/cdn/chunks/{media-library-54Ezt5wL.js → media-library-BLLJsLwk.js} +508 -508
  59. package/dist/cdn/chunks/{media-library-54Ezt5wL.js.map → media-library-BLLJsLwk.js.map} +1 -1
  60. package/dist/cdn/chunks/{quality-Di1pUcCW.js → quality-DfKLOn8j.js} +290 -290
  61. package/dist/cdn/chunks/{quality-Di1pUcCW.js.map → quality-DfKLOn8j.js.map} +1 -1
  62. package/dist/cdn/chunks/{renderer-C4OuJhDG.js → renderer-fG9yLafB.js} +14 -14
  63. package/dist/cdn/chunks/{renderer-C4OuJhDG.js.map → renderer-fG9yLafB.js.map} +1 -1
  64. package/dist/cdn/chunks/{src-DF5NNH7S.js → src-DsfVhQaK.js} +4 -4
  65. package/dist/cdn/chunks/{src-DF5NNH7S.js.map → src-DsfVhQaK.js.map} +1 -1
  66. package/dist/cdn/chunks/{styles-BZJ3yQ0G.js → styles-CPUuKOlD.js} +211 -212
  67. package/dist/cdn/chunks/styles-CPUuKOlD.js.map +1 -0
  68. package/dist/cdn/chunks/{tiptap-CZ52Pj8k.js → tiptap-q69oUYhb.js} +2 -2
  69. package/dist/cdn/chunks/{tiptap-CZ52Pj8k.js.map → tiptap-q69oUYhb.js.map} +1 -1
  70. package/dist/cdn/editor.css +1 -1
  71. package/dist/cdn/editor.js +130 -123
  72. package/dist/cdn/editor.js.map +1 -1
  73. package/dist/{extensions-CNPdJw_8.js → extensions-mwqd2u9M.js} +2 -2
  74. package/dist/index.d.ts +9 -9
  75. package/dist/keys-CqdzeWhT.js +10 -0
  76. package/dist/style.css +1 -1
  77. package/dist/{styles-Czir-MYq.js → styles-BRNubGRJ.js} +288 -289
  78. package/dist/templatical-editor.js +134 -127
  79. package/dist/{useCloudI18n-DOKSZql1.js → useCloudI18n-CDhjmAgB.js} +1 -1
  80. package/dist/{useEditorCore-BHSyoxSK.js → useEditorCore-DB4A_cje.js} +22 -22
  81. package/dist/{useI18n-C2xQZ6K9.js → useI18n-DLZJ6wNn.js} +1 -1
  82. package/dist/{useMergeTag-BfVcyNSv.js → useMergeTag-D-kqWENN.js} +2 -2
  83. package/package.json +7 -7
  84. package/dist/TitleEditor-CHmL3FFR.js +0 -172
  85. package/dist/cdn/chunks/ParagraphEditor-BX2L35YF.js.map +0 -1
  86. package/dist/cdn/chunks/TitleEditor-BTtgZzci.js +0 -171
  87. package/dist/cdn/chunks/TitleEditor-BTtgZzci.js.map +0 -1
  88. package/dist/cdn/chunks/features-BZeMkHMs.js.map +0 -1
  89. package/dist/cdn/chunks/styles-BZJ3yQ0G.js.map +0 -1
  90. package/dist/keys-CvX8D-8C.js +0 -10
@@ -1,25 +1,25 @@
1
- import { At as e, C as t, Ft as n, M as r, N as i, P as a, T as o, U as s, W as c, _ as l, b as ee, et as u, f as te, g as d, h as f, j as ne, jt as p, l as m, m as h, n as g, st as _, t as re, v, x as y, y as ie } from "./vue.runtime.esm-bundler-CjauPXjj.js";
2
- import { r as b } from "./timeouts-BSGxjuUF.js";
3
- import { f as ae, r as x } from "./dist-Bcqepqv3.js";
4
- import { V as oe, t as se, w as S, z as C } from "./useEditorCore-BHSyoxSK.js";
5
- import { w } from "./keys-CvX8D-8C.js";
6
- import { _ as T, a as ce, c as le, d as ue, f as de, g as fe, h as E, i as pe, l as me, m as D, n as he, o as O, p as k, r as A, s as j, t as M, u as N } from "./styles-Czir-MYq.js";
7
- import { t as P } from "./_plugin-vue_export-helper-BVAJ4lgT.js";
1
+ import { At as e, C as t, Ft as n, M as r, N as i, P as a, T as o, U as s, W as c, _ as l, b as ee, et as u, f as te, g as d, h as f, j as p, jt as m, l as h, m as g, n as _, st as v, t as ne, v as y, x as b, y as re } from "./vue.runtime.esm-bundler-CjauPXjj.js";
2
+ import { r as x } from "./timeouts-BSGxjuUF.js";
3
+ import { f as S, r as ie } from "./dist-Bcqepqv3.js";
4
+ import { V as ae, t as oe, w as C, z as w } from "./useEditorCore-DB4A_cje.js";
5
+ import { T, m as se } from "./keys-CqdzeWhT.js";
6
+ import { _ as ce, a as le, c as ue, d as de, f as fe, g as pe, h as E, i as me, l as he, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P } from "./styles-BRNubGRJ.js";
7
+ import { t as F } from "./_plugin-vue_export-helper-BVAJ4lgT.js";
8
8
  //#region src/Editor.vue?vue&type=script&setup=true&lang.ts
9
- var F = ["data-tpl-theme"], I = {
9
+ var I = ["data-tpl-theme"], L = {
10
10
  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)]",
11
11
  style: {
12
12
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
13
13
  "backdrop-filter": "blur(12px)",
14
14
  "-webkit-backdrop-filter": "blur(12px)"
15
15
  }
16
- }, L = { class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, R = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, ge = {
16
+ }, R = { class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, ge = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, _e = {
17
17
  key: 0,
18
18
  class: "tpl:flex tpl:w-full tpl:flex-col tpl:gap-3 tpl:px-4 tpl:pt-4 tpl:pb-6"
19
- }, _e = { class: "tpl-popup-browser-frame tpl:flex tpl:min-h-[calc(100vh-11rem)] tpl:w-full tpl:flex-col tpl:overflow-hidden tpl:rounded-xl tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-canvas-bg)] tpl:shadow-[var(--tpl-shadow-xl)]" }, ve = {
19
+ }, ve = { class: "tpl-popup-browser-frame tpl:flex tpl:min-h-[calc(100vh-11rem)] tpl:w-full tpl:flex-col tpl:overflow-hidden tpl:rounded-xl tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-xl)]" }, ye = {
20
20
  key: 1,
21
21
  class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3 tpl:p-8"
22
- }, ye = ["aria-label"], z = /* @__PURE__ */ P(/* @__PURE__ */ t({
22
+ }, be = ["aria-label"], z = /* @__PURE__ */ F(/* @__PURE__ */ t({
23
23
  __name: "Editor",
24
24
  props: {
25
25
  config: {},
@@ -27,118 +27,120 @@ var F = ["data-tpl-theme"], I = {
27
27
  fontsManager: {}
28
28
  },
29
29
  setup(t, { expose: o }) {
30
- let g = u(null), b = t, S = oe({
31
- content: b.config.content,
32
- templateDefaults: b.config.templateDefaults
33
- }), O = se({
34
- editor: S,
30
+ let _ = u(null), x = u(null);
31
+ a(se, x);
32
+ let C = t, k = ae({
33
+ content: C.config.content,
34
+ templateDefaults: C.config.templateDefaults
35
+ }), F = oe({
36
+ editor: k,
35
37
  config: {
36
- uiTheme: b.config.uiTheme,
37
- theme: b.config.theme,
38
- blockDefaults: b.config.blockDefaults,
39
- customBlocks: b.config.customBlocks,
40
- mergeTags: b.config.mergeTags,
41
- displayConditions: b.config.displayConditions,
42
- onRequestMedia: b.config.onRequestMedia,
43
- editorType: b.config.editorType,
44
- accessibility: fe(b.config),
45
- onSave: b.config.onSave ? () => b.config.onSave(JSON.parse(JSON.stringify(S.state.content))) : void 0
38
+ uiTheme: C.config.uiTheme,
39
+ theme: C.config.theme,
40
+ blockDefaults: C.config.blockDefaults,
41
+ customBlocks: C.config.customBlocks,
42
+ mergeTags: C.config.mergeTags,
43
+ displayConditions: C.config.displayConditions,
44
+ onRequestMedia: C.config.onRequestMedia,
45
+ editorType: C.config.editorType,
46
+ accessibility: pe(C.config),
47
+ onSave: C.config.onSave ? () => C.config.onSave(JSON.parse(JSON.stringify(k.state.content))) : void 0
46
48
  },
47
- translations: b.translations,
48
- fontsManager: b.fontsManager,
49
- autoSaveOptions: b.config.onChange ? { onChange: () => b.config.onChange(JSON.parse(JSON.stringify(S.state.content))) } : null
49
+ translations: C.translations,
50
+ fontsManager: C.fontsManager,
51
+ autoSaveOptions: C.config.onChange ? { onChange: () => C.config.onChange(JSON.parse(JSON.stringify(k.state.content))) } : null
50
52
  });
51
- ne(async () => {
52
- if (await b.fontsManager.loadCustomFonts(), C(b.config.editorType) === "popup" && !S.content.value.settings.popup) {
53
- let e = ae();
54
- S.updateSettings({
53
+ p(async () => {
54
+ if (await C.fontsManager.loadCustomFonts(), w(C.config.editorType) === "popup" && !k.content.value.settings.popup) {
55
+ let e = S();
56
+ k.updateSettings({
55
57
  popup: e,
56
- width: x[e.design.sizePreset]
58
+ width: ie[e.design.sizePreset]
57
59
  });
58
60
  }
59
61
  }), r(() => {
60
- b.fontsManager.cleanupFontLinks(), O.destroy();
62
+ C.fontsManager.cleanupFontLinks(), F.destroy();
61
63
  });
62
- let P = u("blocks");
63
- a(w, P);
64
- let z = h(() => C(b.config.editorType) === "popup"), B = h(() => z.value && P.value === "displayRules"), V = h(() => z.value && P.value === "schedule"), H = h(() => P.value === "design"), U = h(() => z.value && (B.value || V.value || H.value)), W = h(() => {
65
- if (S.state.previewMode) return ["tpl:left-0", "tpl:right-0"];
66
- if (!z.value) return ["tpl:left-12", "tpl:right-[320px]"];
64
+ let z = u("blocks");
65
+ a(T, z);
66
+ let B = g(() => w(C.config.editorType) === "popup"), V = g(() => B.value && z.value === "displayRules"), H = g(() => B.value && z.value === "schedule"), U = g(() => z.value === "design"), W = g(() => B.value && (V.value || H.value || U.value)), G = g(() => {
67
+ if (k.state.previewMode) return ["tpl:left-0", "tpl:right-0"];
68
+ if (!B.value) return ["tpl:left-12", "tpl:right-[320px]"];
67
69
  let e;
68
- e = P.value === "blocks" ? "tpl:left-[272px]" : H.value ? "tpl:left-[392px]" : "tpl:left-[72px]";
69
- let t = U.value ? "tpl:right-0" : "tpl:right-[320px]";
70
+ e = z.value === "blocks" ? "tpl:left-[272px]" : U.value ? "tpl:left-[392px]" : "tpl:left-[72px]";
71
+ let t = W.value ? "tpl:right-0" : "tpl:right-[320px]";
70
72
  return [e, t];
71
- }), G = h(() => B.value || V.value);
73
+ }), K = g(() => V.value || H.value);
72
74
  return o({
73
- getContent: () => S.content.value,
74
- setContent: (e) => S.setContent(e),
75
- setTheme: (e) => S.setUiTheme(e),
76
- undo: () => O.history.undo(),
77
- redo: () => O.history.redo(),
78
- canUndo: () => O.history.canUndo.value,
79
- canRedo: () => O.history.canRedo.value,
80
- renderCustomBlock: O.registry.renderCustomBlock,
81
- startTour: (e) => g.value?.start(e),
82
- dismissTour: () => g.value?.dismiss(),
83
- resetTourDismissed: () => pe(b.config.tour),
84
- isTourDismissed: () => b.config.tour ? ce(b.config.tour) : !0
85
- }), (r, a) => (i(), v("div", {
86
- class: e(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": _(S).state.darkMode }]),
87
- "data-tpl-theme": _(O).resolvedTheme.value,
88
- style: p(_(O).themeStyles.value)
75
+ getContent: () => k.content.value,
76
+ setContent: (e) => k.setContent(e),
77
+ setTheme: (e) => k.setUiTheme(e),
78
+ undo: () => F.history.undo(),
79
+ redo: () => F.history.redo(),
80
+ canUndo: () => F.history.canUndo.value,
81
+ canRedo: () => F.history.canRedo.value,
82
+ renderCustomBlock: F.registry.renderCustomBlock,
83
+ startTour: (e) => _.value?.start(e),
84
+ dismissTour: () => _.value?.dismiss(),
85
+ resetTourDismissed: () => me(C.config.tour),
86
+ isTourDismissed: () => C.config.tour ? le(C.config.tour) : !0
87
+ }), (r, a) => (i(), y("div", {
88
+ class: e(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": v(k).state.darkMode }]),
89
+ "data-tpl-theme": v(F).resolvedTheme.value,
90
+ style: m(v(F).themeStyles.value)
89
91
  }, [
90
- f("header", I, [
92
+ f("header", L, [
91
93
  a[5] ||= f("div", { class: "tpl:flex tpl:items-center tpl:gap-2.5" }, null, -1),
92
- f("div", L, [
93
- y(ue),
94
- y(N, {
95
- viewport: _(S).state.viewport,
96
- onChange: _(S).setViewport
94
+ f("div", R, [
95
+ b(de),
96
+ b(P, {
97
+ viewport: v(k).state.viewport,
98
+ onChange: v(k).setViewport
97
99
  }, null, 8, ["viewport", "onChange"]),
98
- y(le, {
99
- "dark-mode": _(S).state.darkMode,
100
- onChange: _(S).setDarkMode
100
+ b(ue, {
101
+ "dark-mode": v(k).state.darkMode,
102
+ onChange: v(k).setDarkMode
101
103
  }, null, 8, ["dark-mode", "onChange"]),
102
- y(me, {
103
- "preview-mode": _(S).state.previewMode,
104
- onChange: _(S).setPreviewMode
104
+ b(he, {
105
+ "preview-mode": v(k).state.previewMode,
106
+ onChange: v(k).setPreviewMode
105
107
  }, null, 8, ["preview-mode", "onChange"])
106
108
  ]),
107
109
  a[6] ||= f("div", { class: "tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, null, -1)
108
110
  ]),
109
- c(y(k, null, null, 512), [[m, !_(S).state.previewMode]]),
111
+ c(b(A, null, null, 512), [[h, !v(k).state.previewMode]]),
110
112
  f("div", {
111
- class: e(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [...W.value, "tpl:top-14"]]),
112
- style: p({
113
+ class: e(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [...G.value, "tpl:top-14"]]),
114
+ style: m({
113
115
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
114
- backgroundColor: G.value ? "var(--tpl-bg)" : "var(--tpl-canvas-bg)"
116
+ backgroundColor: K.value ? "var(--tpl-bg)" : "var(--tpl-canvas-bg)"
115
117
  })
116
- }, [z.value && P.value === "displayRules" ? (i(), d(he, { key: 0 })) : z.value && P.value === "schedule" ? (i(), d(M, {
118
+ }, [B.value && z.value === "displayRules" ? (i(), d(O, { key: 0 })) : B.value && z.value === "schedule" ? (i(), d(N, {
117
119
  key: 1,
118
120
  layout: "standalone"
119
- })) : (i(), v(te, { key: 2 }, [f("div", R, [y(re, { name: "tpl-restore-btn" }, {
120
- default: s(() => [_(O).conditionPreview.hasHiddenBlocks.value ? (i(), v("button", {
121
+ })) : (i(), y(te, { key: 2 }, [f("div", ge, [b(ne, { name: "tpl-restore-btn" }, {
122
+ default: s(() => [v(F).conditionPreview.hasHiddenBlocks.value ? (i(), y("button", {
121
123
  key: 0,
122
124
  class: "tpl:absolute tpl:left-1/2 tpl:top-2 tpl:-translate-x-1/2 tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-full tpl:border tpl:px-3.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:whitespace-nowrap tpl:shadow-md tpl:hover:opacity-80 tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)] tpl:border-[var(--tpl-warning)]",
123
125
  style: { "backdrop-filter": "blur(8px)" },
124
- onClick: a[0] ||= (e) => _(O).conditionPreview.reset()
125
- }, [y(_(T), {
126
+ onClick: a[0] ||= (e) => v(F).conditionPreview.reset()
127
+ }, [b(v(ce), {
126
128
  size: 13,
127
129
  "stroke-width": 2
128
- }), ee(" " + n(_(O).t.blockSettings.restoreHiddenBlocks), 1)])) : l("", !0)]),
130
+ }), ee(" " + n(v(F).t.blockSettings.restoreHiddenBlocks), 1)])) : l("", !0)]),
129
131
  _: 1
130
- })]), z.value ? (i(), v("div", ge, [y(D, {
131
- "preview-mode": _(S).state.previewMode,
132
+ })]), B.value ? (i(), y("div", _e, [b(D, {
133
+ "preview-mode": v(k).state.previewMode,
132
134
  "multi-page-canvas": t.config.multiPageCanvas ?? !1
133
- }, null, 8, ["preview-mode", "multi-page-canvas"]), f("div", _e, [a[7] ||= ie("<div class=\"tpl-popup-browser-bar tpl:relative tpl:flex tpl:h-9 tpl:items-center tpl:gap-1.5 tpl:border-b tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:px-3\" aria-hidden=\"true\" data-v-d6660368><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#ff5f57;\" data-v-d6660368></span><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#febc2e;\" data-v-d6660368></span><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#28c840;\" data-v-d6660368></span><div class=\"tpl:pointer-events-none tpl:absolute tpl:left-1/2 tpl:top-1/2 tpl:-translate-x-1/2 tpl:-translate-y-1/2 tpl:rounded-md tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-0.5 tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:tracking-tight\" data-v-d6660368> yourstore.com </div></div>", 1), y(E, {
135
+ }, null, 8, ["preview-mode", "multi-page-canvas"]), f("div", ve, [a[7] ||= re("<div class=\"tpl-popup-browser-bar tpl:relative tpl:flex tpl:h-9 tpl:items-center tpl:gap-1.5 tpl:border-b tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:px-3\" aria-hidden=\"true\" data-v-1fdbd0b6><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#ff5f57;\" data-v-1fdbd0b6></span><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#febc2e;\" data-v-1fdbd0b6></span><span class=\"tpl:block tpl:size-3 tpl:rounded-full\" style=\"background-color:#28c840;\" data-v-1fdbd0b6></span><div class=\"tpl:pointer-events-none tpl:absolute tpl:left-1/2 tpl:top-1/2 tpl:-translate-x-1/2 tpl:-translate-y-1/2 tpl:rounded-md tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-0.5 tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:tracking-tight\" data-v-1fdbd0b6> yourstore.com </div></div>", 1), b(E, {
134
136
  class: "tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col",
135
- viewport: _(S).state.viewport,
136
- content: _(S).content.value,
137
- "selected-block-id": _(S).state.selectedBlockId,
138
- "dark-mode": _(S).state.darkMode,
139
- "preview-mode": _(S).state.previewMode,
137
+ viewport: v(k).state.viewport,
138
+ content: v(k).content.value,
139
+ "selected-block-id": v(k).state.selectedBlockId,
140
+ "dark-mode": v(k).state.darkMode,
141
+ "preview-mode": v(k).state.previewMode,
140
142
  "multi-page-canvas": t.config.multiPageCanvas ?? !1,
141
- onSelectBlock: _(S).selectBlock
143
+ onSelectBlock: v(k).selectBlock
142
144
  }, null, 8, [
143
145
  "viewport",
144
146
  "content",
@@ -147,17 +149,17 @@ var F = ["data-tpl-theme"], I = {
147
149
  "preview-mode",
148
150
  "multi-page-canvas",
149
151
  "onSelectBlock"
150
- ])])])) : (i(), v("div", ve, [y(D, {
151
- "preview-mode": _(S).state.previewMode,
152
+ ])])])) : (i(), y("div", ye, [b(D, {
153
+ "preview-mode": v(k).state.previewMode,
152
154
  "multi-page-canvas": t.config.multiPageCanvas ?? !1
153
- }, null, 8, ["preview-mode", "multi-page-canvas"]), y(E, {
154
- viewport: _(S).state.viewport,
155
- content: _(S).content.value,
156
- "selected-block-id": _(S).state.selectedBlockId,
157
- "dark-mode": _(S).state.darkMode,
158
- "preview-mode": _(S).state.previewMode,
155
+ }, null, 8, ["preview-mode", "multi-page-canvas"]), b(E, {
156
+ viewport: v(k).state.viewport,
157
+ content: v(k).content.value,
158
+ "selected-block-id": v(k).state.selectedBlockId,
159
+ "dark-mode": v(k).state.darkMode,
160
+ "preview-mode": v(k).state.previewMode,
159
161
  "multi-page-canvas": t.config.multiPageCanvas ?? !1,
160
- onSelectBlock: _(S).selectBlock
162
+ onSelectBlock: v(k).selectBlock
161
163
  }, null, 8, [
162
164
  "viewport",
163
165
  "content",
@@ -167,39 +169,44 @@ var F = ["data-tpl-theme"], I = {
167
169
  "multi-page-canvas",
168
170
  "onSelectBlock"
169
171
  ])]))], 64))], 6),
170
- t.config.branding === !1 ? l("", !0) : (i(), d(j, {
172
+ t.config.branding === !1 ? l("", !0) : (i(), d(M, {
171
173
  key: 0,
172
- "position-class": W.value
174
+ "position-class": G.value
173
175
  }, null, 8, ["position-class"])),
174
176
  f("div", {
175
177
  class: "tpl-sr-only",
176
178
  role: "status",
177
179
  "aria-live": "polite",
178
180
  "aria-atomic": "true",
179
- "aria-label": _(O).t.landmarks.reorderAnnouncements
180
- }, n(_(O).keyboardReorder.announcement.value), 9, ye),
181
- c(y(de, {
182
- "selected-block": _(S).selectedBlock.value,
183
- settings: _(S).content.value.settings,
184
- onUpdateBlock: a[1] ||= (e) => _(S).updateBlock(_(S).state.selectedBlockId, e),
181
+ "aria-label": v(F).t.landmarks.reorderAnnouncements
182
+ }, n(v(F).keyboardReorder.announcement.value), 9, be),
183
+ c(b(fe, {
184
+ "selected-block": v(k).selectedBlock.value,
185
+ settings: v(k).content.value.settings,
186
+ onUpdateBlock: a[1] ||= (e) => v(k).updateBlock(v(k).state.selectedBlockId, e),
185
187
  onDeleteBlock: a[2] ||= () => {
186
- _(S).state.selectedBlockId && _(O).blockActions.deleteBlock(_(S).state.selectedBlockId);
188
+ v(k).state.selectedBlockId && v(F).blockActions.deleteBlock(v(k).state.selectedBlockId);
187
189
  },
188
190
  onDuplicateBlock: a[3] ||= () => {
189
- _(S).selectedBlock.value && _(O).blockActions.duplicateBlock(_(S).selectedBlock.value);
191
+ v(k).selectedBlock.value && v(F).blockActions.duplicateBlock(v(k).selectedBlock.value);
190
192
  },
191
- onUpdateSettings: a[4] ||= (e) => _(S).updateSettings(e)
192
- }, null, 8, ["selected-block", "settings"]), [[m, !_(S).state.previewMode && !U.value]]),
193
- t.config.tour ? (i(), d(A, {
193
+ onUpdateSettings: a[4] ||= (e) => v(k).updateSettings(e)
194
+ }, null, 8, ["selected-block", "settings"]), [[h, !v(k).state.previewMode && !W.value]]),
195
+ f("div", {
196
+ ref_key: "floatingUiTeleportEl",
197
+ ref: x,
198
+ class: "tpl-editor-floating-ui tpl:pointer-events-none tpl:fixed tpl:inset-0 tpl:z-[9999] tpl:overflow-visible"
199
+ }, null, 512),
200
+ t.config.tour ? (i(), d(j, {
194
201
  key: 1,
195
202
  ref_key: "editorTourRef",
196
- ref: g,
203
+ ref: _,
197
204
  "tour-config": t.config.tour,
198
- "dark-mode": _(S).state.darkMode
205
+ "dark-mode": v(k).state.darkMode
199
206
  }, null, 8, ["tour-config", "dark-mode"])) : l("", !0)
200
- ], 14, F));
207
+ ], 14, I));
201
208
  }
202
- }), [["__scopeId", "data-v-d6660368"]]), B = /* @__PURE__ */ Object.assign({
209
+ }), [["__scopeId", "data-v-1fdbd0b6"]]), B = /* @__PURE__ */ Object.assign({
203
210
  "./locales/de.ts": () => import("./de-DP4gn3tf.js"),
204
211
  "./locales/en.ts": () => import("./en-CyZxmGTU.js")
205
212
  }), V = /* @__PURE__ */ Object.assign({
@@ -221,13 +228,13 @@ async function q(e) {
221
228
  let t = B[`./locales/${K(e, U)}.ts`];
222
229
  return (await t()).default;
223
230
  }
224
- async function be(e) {
231
+ async function xe(e) {
225
232
  let t = V[`./locales/cloud/${K(e, W)}.ts`];
226
233
  return (await t()).default;
227
234
  }
228
235
  //#endregion
229
236
  //#region src/utils/toMjml.ts
230
- async function xe(e) {
237
+ async function Se(e) {
231
238
  let t;
232
239
  try {
233
240
  t = await import("@aswin.dev/renderer");
@@ -239,11 +246,11 @@ async function xe(e) {
239
246
  //#endregion
240
247
  //#region src/index.ts
241
248
  var J = null, Y = u(null);
242
- async function Se(e) {
249
+ async function Ce(e) {
243
250
  let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
244
251
  if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
245
- let n = await q(e.locale ?? "en"), r = S(e.fonts);
246
- J && Q(), J = g({ setup() {
252
+ let n = await q(e.locale ?? "en"), r = C(e.fonts);
253
+ J && Q(), J = _({ setup() {
247
254
  return () => o(z, {
248
255
  config: e,
249
256
  translations: n,
@@ -289,20 +296,20 @@ async function Se(e) {
289
296
  renderCustomBlock(e) {
290
297
  return Y.value ? Y.value.renderCustomBlock(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Editor not ready"));
291
298
  },
292
- toMjml: () => xe(i)
299
+ toMjml: () => Se(i)
293
300
  };
294
301
  return i;
295
302
  }
296
303
  var X = null, Z = u(null);
297
- async function Ce(e) {
304
+ async function we(e) {
298
305
  let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
299
306
  if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
300
- let { default: n } = await import("./CloudEditor-DzdiTmvD.js"), [r, i] = await Promise.all([q(e.locale ?? "en"), be(e.locale ?? "en")]), a = S(e.fonts);
307
+ let { default: n } = await import("./CloudEditor-BNEIze18.js"), [r, i] = await Promise.all([q(e.locale ?? "en"), xe(e.locale ?? "en")]), a = C(e.fonts);
301
308
  return X && $(), await new Promise((s, c) => {
302
309
  let l = setTimeout(() => {
303
310
  c(/* @__PURE__ */ Error("[Templatical] Cloud editor initialization timed out"));
304
- }, b);
305
- X = g({ setup() {
311
+ }, x);
312
+ X = _({ setup() {
306
313
  return () => o(n, {
307
314
  config: e,
308
315
  translations: r,
@@ -367,4 +374,4 @@ function $() {
367
374
  X && (X.unmount(), X = null, Z.value = null);
368
375
  }
369
376
  //#endregion
370
- export { O as DEFAULT_EDITOR_TOUR_STORAGE_KEY, Se as init, Ce as initCloud, Q as unmount, S as useFonts };
377
+ export { k as DEFAULT_EDITOR_TOUR_STORAGE_KEY, Ce as init, we as initCloud, Q as unmount, C as useFonts };
@@ -1,5 +1,5 @@
1
1
  import { D as e, Y as t } from "./vue.runtime.esm-bundler-CjauPXjj.js";
2
- import { l as n } from "./keys-CvX8D-8C.js";
2
+ import { l as n } from "./keys-CqdzeWhT.js";
3
3
  //#region src/composables/useCloudI18n.ts
4
4
  function r(e, t) {
5
5
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
@@ -2,17 +2,17 @@ import { a as e, i as t, n, r, t as i } from "./rolldown-runtime-BZGGJVDF.js";
2
2
  import { $ as a, A as o, At as s, C as c, Ct as l, D as u, Dt as d, Et as f, F as p, Ft as m, G as h, I as g, It as _, J as v, Mt as y, N as b, Nt as x, Ot as S, P as C, Pt as w, Q as T, R as E, S as D, St as O, Tt as ee, U as te, V as k, W as ne, Y as re, Z as ie, _ as ae, _t as oe, a as se, b as ce, bt as le, ct as ue, d as A, dt as de, et as j, f as fe, ft as pe, g as me, gt as he, h as M, ht as ge, j as _e, jt as N, k as ve, kt as ye, l as be, lt as xe, m as P, mt as Se, nt as Ce, o as we, ot as Te, pt as Ee, q as De, r as Oe, st as F, u as ke, ut as Ae, v as I, vt as je, wt as Me, x as L, xt as Ne, yt as Pe } from "./vue.runtime.esm-bundler-CjauPXjj.js";
3
3
  import { C as Fe, D as Ie, E as Le, H as Re, M as ze, O as Be, S as Ve, T as He, U as Ue, V as We, b as Ge, c as Ke, d as qe, g as Je, h as Ye, k as Xe, l as Ze, p as Qe, s as $e, t as et, u as tt, v as nt, w as rt, x as it, y as at, z as ot } from "./dist-Bcqepqv3.js";
4
4
  import { c as st, d as ct, f as lt, i as ut, n as dt, r as ft, u as pt } from "./dist-Djgi0A6k.js";
5
- import { A as mt, C as ht, D as gt, O as _t, S as vt, _ as yt, a as bt, b as xt, c as St, d as Ct, f as wt, g as Tt, h as Et, k as Dt, m as Ot, o as kt, p as At, r as jt, s as Mt, t as Nt, v as Pt, x as Ft, y as It } from "./keys-CvX8D-8C.js";
6
- import { t as Lt } from "./useI18n-C2xQZ6K9.js";
5
+ import { A as mt, C as ht, O as gt, S as _t, _ as vt, a as yt, b as bt, c as xt, d as St, f as Ct, g as wt, h as Tt, j as Et, k as Dt, o as Ot, p as kt, r as At, s as jt, t as Mt, v as Nt, w as Pt, x as Ft, y as It } from "./keys-CqdzeWhT.js";
6
+ import { t as Lt } from "./useI18n-DLZJ6wNn.js";
7
7
  import { t as Rt } from "./createLucideIcon-ClREiSx3.js";
8
8
  import { t as zt } from "./message-circle-B39qAHxs.js";
9
9
  import { t as Bt } from "./trash-2-CtK2apEH.js";
10
10
  import { t as Vt } from "./triangle-alert-KpDVNbpn.js";
11
11
  import { t as Ht } from "./LoadingTrack-Ba2pfF57.js";
12
12
  import { t as Ut } from "./_plugin-vue_export-helper-BVAJ4lgT.js";
13
- import "./useCloudI18n-DOKSZql1.js";
14
- import { t as Wt } from "./useMergeTag-BfVcyNSv.js";
15
- import { t as Gt } from "./CountdownBlock-Ba3T-i2X.js";
13
+ import "./useCloudI18n-CDhjmAgB.js";
14
+ import { t as Wt } from "./useMergeTag-D-kqWENN.js";
15
+ import { t as Gt } from "./CountdownBlock-CrpaDWze.js";
16
16
  //#region ../core/dist/index.js
17
17
  v();
18
18
  function Kt(e) {
@@ -797,7 +797,7 @@ var vn = { class: "tpl:text-center" }, yn = ["href"], bn = /* @__PURE__ */ c({
797
797
  viewport: {}
798
798
  },
799
799
  setup(e) {
800
- let t = e, n = u(Ot, null), r = P(() => t.block.clickAction ?? "none"), i = P(() => {
800
+ let t = e, n = u(Tt, null), r = P(() => t.block.clickAction ?? "none"), i = P(() => {
801
801
  if (r.value === "scroll_anchor") {
802
802
  let e = t.block.clickActionAnchorId?.trim().replace(/^#/, "") ?? "";
803
803
  return e ? `#${e}` : t.block.url || "#";
@@ -1336,7 +1336,7 @@ function Gn(e) {
1336
1336
  //#endregion
1337
1337
  //#region src/composables/useRichTextEditor.ts
1338
1338
  function Kn(e) {
1339
- let t = u(Ot, null), { mergeTags: n, canRequestMergeTag: r, isRequesting: i, requestMergeTag: a, syntax: s, autocomplete: c } = Wt(), l = u(_t, null), d = (re(l) ? l.value : l)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", f = ze(s), p = Ce(null), { showLinkDialog: m, linkUrl: h, linkDialogRef: g, openLinkDialog: _, insertLink: v, removeLink: y, closeLinkDialog: b, handleLinkKeydown: x } = Gn(p), { start: S, stop: C } = pt(() => p.value?.commands.focus("end"), 0, { immediate: !1 }), w = Ce(null), T = j(!0), E = j(null), D = !1;
1339
+ let t = u(Tt, null), { mergeTags: n, canRequestMergeTag: r, isRequesting: i, requestMergeTag: a, syntax: s, autocomplete: c } = Wt(), l = u(Dt, null), d = (re(l) ? l.value : l)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", f = ze(s), p = Ce(null), { showLinkDialog: m, linkUrl: h, linkDialogRef: g, openLinkDialog: _, insertLink: v, removeLink: y, closeLinkDialog: b, handleLinkKeydown: x } = Gn(p), { start: S, stop: C } = pt(() => p.value?.commands.focus("end"), 0, { immediate: !1 }), w = Ce(null), T = j(!0), E = j(null), D = !1;
1340
1340
  async function O() {
1341
1341
  E.value = null, T.value = !0;
1342
1342
  try {
@@ -1435,7 +1435,7 @@ var qn = { class: "tpl:w-full" }, Jn = {
1435
1435
  },
1436
1436
  emits: ["fetchData"],
1437
1437
  setup(e, { emit: t }) {
1438
- let n = e, r = t, { t: i } = Lt(), a = u(Mt, null), o = j(""), s = j(!1), c = P(() => a?.getDefinition(n.block.customType)), l = P(() => !!c.value), { isFetching: d, fetch: f, needsFetch: p, hasDataSource: h } = en({
1438
+ let n = e, r = t, { t: i } = Lt(), a = u(jt, null), o = j(""), s = j(!1), c = P(() => a?.getDefinition(n.block.customType)), l = P(() => !!c.value), { isFetching: d, fetch: f, needsFetch: p, hasDataSource: h } = en({
1439
1439
  definition: c,
1440
1440
  block: P(() => n.block),
1441
1441
  onUpdate: (e, t) => {
@@ -1505,7 +1505,7 @@ var qn = { class: "tpl:w-full" }, Jn = {
1505
1505
  setup(e) {
1506
1506
  let t = e, { t: n } = Lt();
1507
1507
  t.viewport;
1508
- let r = u(Ot, null), i = P(() => {
1508
+ let r = u(Tt, null), i = P(() => {
1509
1509
  let e = t.block;
1510
1510
  return e.discountMode === "none" ? "" : e.discountMode === "manual_shopify" && e.manualDiscountCode.trim() || n.discountCoupon.previewSampleCode;
1511
1511
  }), a = P(() => t.block.discountMode !== "none"), s = P(() => t.block.copyConfirmationText?.trim() || n.discountCoupon.copyCodeFlash), c = j(!1), l = null;
@@ -1619,7 +1619,7 @@ var qn = { class: "tpl:w-full" }, Jn = {
1619
1619
  },
1620
1620
  emits: ["update"],
1621
1621
  setup(e, { emit: t }) {
1622
- let n = e, r = t, { t: i } = Lt(), { syntax: a } = Wt(), o = u(vt, null), s = P(() => !!o);
1622
+ let n = e, r = t, { t: i } = Lt(), { syntax: a } = Wt(), o = u(ht, null), s = P(() => !!o);
1623
1623
  async function c() {
1624
1624
  let e = await o?.({ accept: ["images"] });
1625
1625
  if (e) {
@@ -1806,7 +1806,7 @@ var qn = { class: "tpl:w-full" }, Jn = {
1806
1806
  //#endregion
1807
1807
  //#region src/composables/useEditableTextBlock.ts
1808
1808
  function Rr(e) {
1809
- let t = u(It, []), { syntax: n } = Wt(), r = P(() => We(Re(e(), t), n)), i = j(!1), a = j(null), { top: o, left: s } = dt(a), c = P(() => ({
1809
+ let t = u(bt, []), { syntax: n } = Wt(), r = P(() => We(Re(e(), t), n)), i = j(!1), a = j(null), { top: o, left: s } = dt(a), c = P(() => ({
1810
1810
  top: o.value - 8,
1811
1811
  left: s.value
1812
1812
  }));
@@ -1834,7 +1834,7 @@ var zr = ["innerHTML"], Br = /* @__PURE__ */ c({
1834
1834
  viewport: {}
1835
1835
  },
1836
1836
  setup(e) {
1837
- let t = e, n = D(() => import("./ParagraphEditor-CFuaZKGk.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Rr(() => t.block.content);
1837
+ let t = e, n = D(() => import("./ParagraphEditor-C2d9O2P4.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Rr(() => t.block.content);
1838
1838
  return (t, l) => (b(), I("div", {
1839
1839
  ref_key: "blockRef",
1840
1840
  ref: i,
@@ -1898,7 +1898,7 @@ var Ur = ["data-block-id", "data-block-type"], Wr = ["aria-label"], Gr = [
1898
1898
  },
1899
1899
  emits: ["select"],
1900
1900
  setup(e, { emit: t }) {
1901
- let n = D(() => import("./BlockA11yBadge-Qs6HtXid.js")), r = e, i = t, { t: a, format: o } = Lt(), c = u(Pt, null), l = j(null), d = P(() => c?.liftedBlockId.value === r.block.id), f = P(() => d.value ? o(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
1901
+ let n = D(() => import("./BlockA11yBadge-Dr854uEe.js")), r = e, i = t, { t: a, format: o } = Lt(), c = u(It, null), l = j(null), d = P(() => c?.liftedBlockId.value === r.block.id), f = P(() => d.value ? o(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
1902
1902
  async function p() {
1903
1903
  await ve(), l.value?.focus();
1904
1904
  }
@@ -1925,7 +1925,7 @@ var Ur = ["data-block-id", "data-block-type"], Wr = ["aria-label"], Gr = [
1925
1925
  desktop: a.viewport.desktop,
1926
1926
  tablet: a.viewport.tablet,
1927
1927
  mobile: a.viewport.mobile
1928
- }[r.viewport] ?? r.viewport : ""), y = P(() => !!r.block.displayCondition), x = u(bt, null), S = u(Ct, null), C = u(St, {}), w = P(() => !!C.savedModules), T = P(() => C.comments?.getBlockCount(r.block.id) ?? 0), E = P(() => Hr(r.block));
1928
+ }[r.viewport] ?? r.viewport : ""), y = P(() => !!r.block.displayCondition), x = u(yt, null), S = u(St, null), C = u(xt, {}), w = P(() => !!C.savedModules), T = P(() => C.comments?.getBlockCount(r.block.id) ?? 0), E = P(() => Hr(r.block));
1929
1929
  function O(e) {
1930
1930
  r.previewMode || (e.stopPropagation(), i("select"));
1931
1931
  }
@@ -2351,7 +2351,7 @@ var Ur = ["data-block-id", "data-block-type"], Wr = ["aria-label"], Gr = [
2351
2351
  viewport: {}
2352
2352
  },
2353
2353
  setup(e) {
2354
- let t = e, n = mt(Ot, "SpacerBlock"), r = P(() => ({
2354
+ let t = e, n = Et(Tt, "SpacerBlock"), r = P(() => ({
2355
2355
  height: `${t.block.height}px`,
2356
2356
  minHeight: `${t.block.height}px`,
2357
2357
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
@@ -2386,7 +2386,7 @@ var Ur = ["data-block-id", "data-block-type"], Wr = ["aria-label"], Gr = [
2386
2386
  updated(e, t) {
2387
2387
  t.value !== t.oldValue && e.ownerDocument.activeElement !== e && (e.textContent = t.value ?? "");
2388
2388
  }
2389
- }, n = e, { t: r } = Lt(), i = mt(Ot, "TableBlock"), a = P(() => n.block.rows.length > 0), o = P(() => ({
2389
+ }, n = e, { t: r } = Lt(), i = Et(Tt, "TableBlock"), a = P(() => n.block.rows.length > 0), o = P(() => ({
2390
2390
  width: "100%",
2391
2391
  borderCollapse: "collapse",
2392
2392
  fontSize: `${n.block.fontSize}px`,
@@ -2446,7 +2446,7 @@ var Ur = ["data-block-id", "data-block-type"], Wr = ["aria-label"], Gr = [
2446
2446
  viewport: {}
2447
2447
  },
2448
2448
  setup(e) {
2449
- let t = e, n = D(() => import("./TitleEditor-CHmL3FFR.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Rr(() => t.block.content), l = P(() => {
2449
+ let t = e, n = D(() => import("./TitleEditor-C8Qyr_U3.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Rr(() => t.block.content), l = P(() => {
2450
2450
  let e = {
2451
2451
  fontSize: `${et[t.block.level]}px`,
2452
2452
  color: t.block.color,
@@ -9562,7 +9562,7 @@ var Kd, qd, Jd, Yd, Xd, Zd, Qd, $d, ef, tf, nf, rf, af, of, sf, cf, Y, lf, X, Z,
9562
9562
  form: ci,
9563
9563
  discountCoupon: dr,
9564
9564
  custom: tr
9565
- }, n = e, { t: r } = Lt(), i = mt(Ot, "SectionBlock"), a = u(Ct, null), o = u(Mt, null), c = P(() => {
9565
+ }, n = e, { t: r } = Lt(), i = Et(Tt, "SectionBlock"), a = u(St, null), o = u(jt, null), c = P(() => {
9566
9566
  switch (n.block.columns) {
9567
9567
  case "2": return ["50%", "50%"];
9568
9568
  case "3": return [
@@ -9659,7 +9659,7 @@ var Kd, qd, Jd, Yd, Xd, Zd, Qd, $d, ef, tf, nf, rf, af, of, sf, cf, Y, lf, X, Z,
9659
9659
  table: Di,
9660
9660
  spacer: xi,
9661
9661
  html: vr,
9662
- countdown: D(() => import("./CountdownBlock-Ba3T-i2X.js").then((e) => e.n)),
9662
+ countdown: D(() => import("./CountdownBlock-CrpaDWze.js").then((e) => e.n)),
9663
9663
  discountCoupon: dr
9664
9664
  };
9665
9665
  function Tp(e) {
@@ -9707,16 +9707,16 @@ function Tp(e) {
9707
9707
  onBeforeUndo: e.keyboardOptions?.onBeforeUndo
9708
9708
  });
9709
9709
  }
9710
- ft(document, "keydown", v), C(_t, r), C(Ot, t), C(Et, nn(n.editorType)), C(yt, u), C(bt, d), C(Ct, f), C(Tt, i), C(gt, l), C(Dt, s), C(kt, n.blockDefaults), C(Mt, g), C(wt, n.customBlocks ?? []);
9710
+ ft(document, "keydown", v), C(Dt, r), C(Tt, t), C(wt, nn(n.editorType)), C(Nt, u), C(yt, d), C(St, f), C(vt, i), C(gt, l), C(mt, s), C(Ot, n.blockDefaults), C(jt, g), C(Ct, n.customBlocks ?? []);
9711
9711
  let y = Ue(n.mergeTags?.syntax);
9712
- C(It, n.mergeTags?.tags ?? []), C(Ft, y), C(ht, n.mergeTags?.onRequest ?? null), C(xt, n.mergeTags?.autocomplete !== !1), C(vt, n.onRequestMedia ?? null), C(At, n.displayConditions?.conditions ?? []), C(jt, n.displayConditions?.allowCustom ?? !1), C(St, e.capabilities ?? {}), C(Pt, h);
9712
+ C(bt, n.mergeTags?.tags ?? []), C(_t, y), C(Pt, n.mergeTags?.onRequest ?? null), C(Ft, n.mergeTags?.autocomplete !== !1), C(ht, n.onRequestMedia ?? null), C(kt, n.displayConditions?.conditions ?? []), C(At, n.displayConditions?.allowCustom ?? !1), C(xt, e.capabilities ?? {}), C(It, h);
9713
9713
  let b = n.accessibility?.disabled === !0 ? null : rn({
9714
9714
  content: t.content,
9715
9715
  options: n.accessibility ?? {},
9716
9716
  updateBlock: t.updateBlock,
9717
9717
  updateSettings: t.updateSettings
9718
9718
  });
9719
- C(Nt, b);
9719
+ C(Mt, b);
9720
9720
  function x() {
9721
9721
  m?.(), b?.destroy(), p?.destroy(), u.destroy();
9722
9722
  }
@@ -1,5 +1,5 @@
1
1
  import { D as e, Y as t } from "./vue.runtime.esm-bundler-CjauPXjj.js";
2
- import { O as n } from "./keys-CvX8D-8C.js";
2
+ import { k as n } from "./keys-CqdzeWhT.js";
3
3
  //#region src/composables/useI18n.ts
4
4
  function r(r) {
5
5
  let i = r ?? e(n, null);
@@ -1,9 +1,9 @@
1
1
  import { D as e, et as t } from "./vue.runtime.esm-bundler-CjauPXjj.js";
2
2
  import { F as n, i as r, j as i } from "./dist-Bcqepqv3.js";
3
- import { C as a, b as o, h as s, x as c, y as l } from "./keys-CvX8D-8C.js";
3
+ import { S as a, b as o, g as s, w as c, x as l } from "./keys-CqdzeWhT.js";
4
4
  //#region src/composables/useMergeTag.ts
5
5
  function u() {
6
- let u = e(s, "email") === "popup", d = u ? [] : e(l, []), f = e(c, r.liquid), p = u ? null : e(a, null), m = u ? !1 : e(o, !0), h = t(!1);
6
+ let u = e(s, "email") === "popup", d = u ? [] : e(o, []), f = e(a, r.liquid), p = u ? null : e(c, null), m = u ? !1 : e(l, !0), h = t(!1);
7
7
  function g(e) {
8
8
  return n(e, f);
9
9
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aswin.dev/editor",
3
3
  "description": "Vue 3 visual drag-and-drop email editor powered by Templatical",
4
- "version": "0.8.4",
4
+ "version": "0.8.7",
5
5
  "bugs": "https://github.com/templatical/sdk/issues",
6
6
  "devDependencies": {
7
7
  "@lucide/vue": "^1.11.0",
@@ -33,9 +33,9 @@
33
33
  "vue": "^3.5.33",
34
34
  "vue-tsc": "^3.2.7",
35
35
  "vuedraggable": "^4.1.0",
36
- "@aswin.dev/core": "0.8.4",
37
- "@aswin.dev/quality": "0.8.4",
38
- "@aswin.dev/types": "0.8.4"
36
+ "@aswin.dev/core": "0.8.7",
37
+ "@aswin.dev/types": "0.8.7",
38
+ "@aswin.dev/quality": "0.8.7"
39
39
  },
40
40
  "exports": {
41
41
  ".": {
@@ -63,9 +63,9 @@
63
63
  "license": "SEE LICENSE IN LICENSE",
64
64
  "module": "./dist/templatical-editor.js",
65
65
  "peerDependencies": {
66
- "@aswin.dev/media-library": "0.8.4",
67
- "@aswin.dev/quality": "0.8.4",
68
- "@aswin.dev/renderer": "0.8.4"
66
+ "@aswin.dev/media-library": "0.8.7",
67
+ "@aswin.dev/quality": "0.8.7",
68
+ "@aswin.dev/renderer": "0.8.7"
69
69
  },
70
70
  "peerDependenciesMeta": {
71
71
  "@aswin.dev/renderer": {