@templatical/editor 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/{AiChatSidebar-uhkhnXQd.js → AiChatSidebar-BUKj9n02.js} +4 -4
  2. package/dist/{AiFeatureMenu-DXNKvXP5.js → AiFeatureMenu-Co14YVJt.js} +3 -3
  3. package/dist/{BlockIssueBadge-DM-vXeD6.js → BlockIssueBadge-DThKKeub.js} +2 -2
  4. package/dist/{CloudEditor-BSkPQjwo.js → CloudEditor-CAtw_sFC.js} +217 -216
  5. package/dist/{CollaboratorBar-CP76Sh6c.js → CollaboratorBar-Bc6q0gB9.js} +2 -2
  6. package/dist/{CommentsSidebar-_llWQ4VT.js → CommentsSidebar-DiH4R4F0.js} +3 -3
  7. package/dist/{CountdownBlock-I99sC0C5.js → CountdownBlock-BTPefclD.js} +2 -2
  8. package/dist/{CountdownToolbar-BUhOUiQ9.js → CountdownToolbar-Dvr2icg-.js} +2 -2
  9. package/dist/{DesignReferenceSidebar-CfJqJ7l6.js → DesignReferenceSidebar-BP32MgpS.js} +2 -2
  10. package/dist/{IssuesPanel-4MKZe8yP.js → IssuesPanel-B1LT91IX.js} +2 -2
  11. package/dist/{ModuleBrowserModal-BFQTm6uY.js → ModuleBrowserModal-CWegFoOA.js} +77 -85
  12. package/dist/{ModulePreviewCanvas-DeqMpo73.js → ModulePreviewCanvas-D9WUSSRT.js} +2 -2
  13. package/dist/{NumberWithSuffix-CxMFy_j3.js → NumberWithSuffix-CxUBW_V2.js} +2 -2
  14. package/dist/{ParagraphEditor-DqomSbW3.js → ParagraphEditor-DrAz2yot.js} +115 -115
  15. package/dist/{RichTextEditorContent-B_KCY6T1.js → RichTextEditorContent-gR169m1-.js} +4 -4
  16. package/dist/{SaveModuleDialog-DKcpPeWd.js → SaveModuleDialog-DWidA0c9.js} +6 -6
  17. package/dist/{SnapshotHistory-Z9RQj53S.js → SnapshotHistory-CIo2Jaw-.js} +4 -4
  18. package/dist/{TemplateScoringPanel-BIwEwFxD.js → TemplateScoringPanel-seBvvn8O.js} +2 -2
  19. package/dist/{TestEmailModal-C8DhylO1.js → TestEmailModal-BuCuWp3N.js} +3 -3
  20. package/dist/{TitleEditor-CgLrn6R3.js → TitleEditor-BmW0uMl7.js} +64 -64
  21. package/dist/{TplModal-CbwRwmR3.js → TplModal-YFpBaiLj.js} +4 -4
  22. package/dist/{blockTypeIcons-CccKujXP.js → blockTypeIcons-DCkHXPhx.js} +19 -11
  23. package/dist/bundle-stats.json +8 -8
  24. package/dist/cdn/chunks/{AiFeatureMenu-ChNv7XXj.js → AiFeatureMenu-Dayzk2H7.js} +2 -2
  25. package/dist/cdn/chunks/{AiFeatureMenu-ChNv7XXj.js.map → AiFeatureMenu-Dayzk2H7.js.map} +1 -1
  26. package/dist/cdn/chunks/{BlockIssueBadge-BovmWgok.js → BlockIssueBadge-D_US2wqo.js} +4 -4
  27. package/dist/cdn/chunks/{BlockIssueBadge-BovmWgok.js.map → BlockIssueBadge-D_US2wqo.js.map} +1 -1
  28. package/dist/cdn/chunks/{CloudEditor-CHF_P5OL.js → CloudEditor-CyJItWsK.js} +186 -185
  29. package/dist/cdn/chunks/{CloudEditor-CHF_P5OL.js.map → CloudEditor-CyJItWsK.js.map} +1 -1
  30. package/dist/cdn/chunks/{CollaboratorBar-Bjr5YSh0.js → CollaboratorBar-C4CFs5EJ.js} +3 -3
  31. package/dist/cdn/chunks/{CollaboratorBar-Bjr5YSh0.js.map → CollaboratorBar-C4CFs5EJ.js.map} +1 -1
  32. package/dist/cdn/chunks/{CountdownBlock-KyzvhjMF.js → CountdownBlock-D6lCXhZA.js} +2 -2
  33. package/dist/cdn/chunks/{CountdownBlock-KyzvhjMF.js.map → CountdownBlock-D6lCXhZA.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-bJtMHGYz.js → CountdownToolbar-BsGUxoRv.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-bJtMHGYz.js.map → CountdownToolbar-BsGUxoRv.js.map} +1 -1
  36. package/dist/cdn/chunks/{IssuesPanel-DFSYTQXy.js → IssuesPanel-DeHTmRDz.js} +5 -5
  37. package/dist/cdn/chunks/{IssuesPanel-DFSYTQXy.js.map → IssuesPanel-DeHTmRDz.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModuleBrowserModal-DS0BGRhZ.js → ModuleBrowserModal-Cgjz4xAz.js} +8 -8
  39. package/dist/cdn/chunks/ModuleBrowserModal-Cgjz4xAz.js.map +1 -0
  40. package/dist/cdn/chunks/{ModulePreviewCanvas-Dwn2cA5a.js → ModulePreviewCanvas-CeS9PsAA.js} +2 -2
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-Dwn2cA5a.js.map → ModulePreviewCanvas-CeS9PsAA.js.map} +1 -1
  42. package/dist/cdn/chunks/{NumberWithSuffix-BNBeHv0P.js → NumberWithSuffix-Bp-idLCc.js} +2 -2
  43. package/dist/cdn/chunks/{NumberWithSuffix-BNBeHv0P.js.map → NumberWithSuffix-Bp-idLCc.js.map} +1 -1
  44. package/dist/cdn/chunks/{ParagraphEditor-C4TrTIOm.js → ParagraphEditor-fM9aFu8T.js} +105 -105
  45. package/dist/cdn/chunks/ParagraphEditor-fM9aFu8T.js.map +1 -0
  46. package/dist/cdn/chunks/{RichTextEditorContent-HNFFL4aK.js → RichTextEditorContent-DwNPE5H5.js} +4 -4
  47. package/dist/cdn/chunks/{RichTextEditorContent-HNFFL4aK.js.map → RichTextEditorContent-DwNPE5H5.js.map} +1 -1
  48. package/dist/cdn/chunks/{SaveModuleDialog-CbHqqeID.js → SaveModuleDialog-BrtDXzIz.js} +4 -4
  49. package/dist/cdn/chunks/SaveModuleDialog-BrtDXzIz.js.map +1 -0
  50. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js +175 -0
  51. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js.map +1 -0
  52. package/dist/cdn/chunks/{blockTypeIcons-BUlgu9JL.js → blockTypeIcons-YOEe5mDE.js} +3 -3
  53. package/dist/cdn/chunks/{blockTypeIcons-BUlgu9JL.js.map → blockTypeIcons-YOEe5mDE.js.map} +1 -1
  54. package/dist/{de-ED7c5RpG.js → cdn/chunks/de-CATfXDKV.js} +14 -1
  55. package/dist/cdn/chunks/{de-ED7c5RpG.js.map → de-CATfXDKV.js.map} +1 -1
  56. package/dist/cdn/chunks/{en-ivilDUn0.js → en-CwCAgYL5.js} +13 -2
  57. package/dist/cdn/chunks/{en-ivilDUn0.js.map → en-CwCAgYL5.js.map} +1 -1
  58. package/dist/cdn/chunks/{extensions-DK_lVs7A.js → extensions-GYsbQFPr.js} +25 -22
  59. package/dist/cdn/chunks/extensions-GYsbQFPr.js.map +1 -0
  60. package/dist/cdn/chunks/{features-LiilsBqW.js → features-D-2kVhHY.js} +1232 -1189
  61. package/dist/cdn/chunks/features-D-2kVhHY.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-Bn2SIR30.js → icons-fZoyKV_s.js} +2 -2
  63. package/dist/cdn/chunks/{icons-Bn2SIR30.js.map → icons-fZoyKV_s.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-Bb2PavAd.js → media-library-CO2WOETY.js} +240 -240
  65. package/dist/cdn/chunks/{media-library-Bb2PavAd.js.map → media-library-CO2WOETY.js.map} +1 -1
  66. package/dist/{pt-BR-B5tm2iBl.js → cdn/chunks/pt-BR-D3Mg7AKe.js} +14 -1
  67. package/dist/cdn/chunks/{pt-BR-B5tm2iBl.js.map → pt-BR-D3Mg7AKe.js.map} +1 -1
  68. package/dist/cdn/chunks/{quality-Bpj6kNxR.js → quality-BxPiS-wv.js} +464 -464
  69. package/dist/cdn/chunks/{quality-Bpj6kNxR.js.map → quality-BxPiS-wv.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-CYYyu-Di.js → renderer-7z2t_bYQ.js} +68 -68
  71. package/dist/cdn/chunks/{renderer-CYYyu-Di.js.map → renderer-7z2t_bYQ.js.map} +1 -1
  72. package/dist/cdn/chunks/{src-CQjZnxvw.js → src-ftxPuuQh.js} +4 -4
  73. package/dist/cdn/chunks/{src-CQjZnxvw.js.map → src-ftxPuuQh.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-5g8XOS68.js → styles-o0HIrw9F.js} +877 -622
  75. package/dist/cdn/chunks/styles-o0HIrw9F.js.map +1 -0
  76. package/dist/cdn/editor.css +1 -1
  77. package/dist/cdn/editor.js +102 -101
  78. package/dist/cdn/editor.js.map +1 -1
  79. package/dist/{cdn/chunks/de-ED7c5RpG.js → de-CATfXDKV.js} +12 -3
  80. package/dist/{dist-HO0vjY5Z.js → dist-CNLAS2v2.js} +130 -124
  81. package/dist/{en-ivilDUn0.js → en-CwCAgYL5.js} +12 -1
  82. package/dist/{extensions-DeNHyWwh.js → extensions-Mj2-D8uK.js} +6 -3
  83. package/dist/{keys-B8K7Z7Ef.js → keys-BiQlvx51.js} +3 -3
  84. package/dist/{cdn/chunks/pt-BR-B5tm2iBl.js → pt-BR-D3Mg7AKe.js} +12 -3
  85. package/dist/style.css +1 -1
  86. package/dist/{styles-Bgqv7rLA.js → styles-CJtcKmsx.js} +857 -601
  87. package/dist/templatical-editor.js +104 -103
  88. package/dist/{useCloudI18n-DFzVgYhJ.js → useCloudI18n-DKWJg6rJ.js} +1 -1
  89. package/dist/{useEditorCore-CaOVDL_m.js → useEditorCore-CEkf_VWX.js} +662 -632
  90. package/dist/{useI18n-CBbStVlD.js → useI18n-Besvmtxy.js} +1 -1
  91. package/dist/useMergeTag-WNzaCpXR.js +44 -0
  92. package/dist/{usePopoverRoot-62PlZQQ3.js → usePopoverRoot-CKt956u-.js} +1 -1
  93. package/package.json +7 -7
  94. package/dist/cdn/chunks/ModuleBrowserModal-DS0BGRhZ.js.map +0 -1
  95. package/dist/cdn/chunks/ParagraphEditor-C4TrTIOm.js.map +0 -1
  96. package/dist/cdn/chunks/SaveModuleDialog-CbHqqeID.js.map +0 -1
  97. package/dist/cdn/chunks/TitleEditor-gr-eBUq_.js +0 -175
  98. package/dist/cdn/chunks/TitleEditor-gr-eBUq_.js.map +0 -1
  99. package/dist/cdn/chunks/extensions-DK_lVs7A.js.map +0 -1
  100. package/dist/cdn/chunks/features-LiilsBqW.js.map +0 -1
  101. package/dist/cdn/chunks/styles-5g8XOS68.js.map +0 -1
  102. package/dist/useMergeTag-RWsgUcSh.js +0 -34
@@ -1,13 +1,13 @@
1
1
  import { F as e, G as t, H as n, J as r, L as i, M as a, O as o, P as s, T as c, V as l, Y as u, Z as d, b as f, c as p, ct as m, f as h, g, h as _, it as v, l as y, m as b, n as x, o as S, ot as C, p as w, s as T, st as E, t as D, u as O, v as k, x as A, y as j, z as M } from "./draggable-BwWMFq33.js";
2
- import { $ as N, $t as P, Bt as F, Ct as ee, Dt as te, F as I, Ft as L, G as R, Gt as z, H as ne, I as re, J as ie, Jt as ae, K as oe, Kt as se, L as ce, Lt as le, M as ue, Mt as de, N as fe, P as pe, Pt as me, R as he, Sn as B, St as ge, Tt as _e, U as ve, V as ye, Vt as be, W as xe, Wt as Se, Xt as Ce, Yt as we, at as Te, bn as Ee, bt as De, ct as Oe, dn as ke, et as Ae, fn as je, gn as Me, hn as Ne, it as Pe, j as Fe, kt as Ie, mn as Le, mt as Re, nn as ze, q as Be, qt as Ve, rt as V, ut as He, vn as Ue, wn as We, wt as Ge, xn as Ke, xt as qe, yt as Je, z as Ye, zt as Xe } from "./features-LiilsBqW.js";
3
- import { B as Ze, E as H, F as U, H as Qe, I as $e, K as et, L as tt, N as nt, P as rt, X as it, c as at, d as ot, g as st, h as ct, j as lt, k as ut, l as dt, o as ft, s as pt, v as mt, x as ht, y as gt } from "./icons-Bn2SIR30.js";
4
- import { t as _t } from "./readableTextColor-f8Kykfnh.js";
5
- import { t as vt } from "./CountdownBlock-KyzvhjMF.js";
6
- import { t as yt } from "./blockTypeIcons-BUlgu9JL.js";
7
- import { _ as bt, c as xt, f as W, g as St, h as G, l as Ct, m as K, p as q, t as wt } from "./styleConstants-lGobwiLH.js";
8
- import { i as J, n as Y, r as X, t as Tt } from "./NumberWithSuffix-BNBeHv0P.js";
2
+ import { $ as N, Bt as ee, Cn as P, Ct as F, Dt as I, En as L, F as R, Ft as z, G as B, Gt as te, H as ne, I as re, J as ie, Jt as ae, K as oe, Kt as se, L as ce, Lt as le, M as ue, Mt as de, N as fe, O as V, P as pe, Pt as me, R as he, Sn as ge, St as _e, Tt as ve, U as ye, V as be, Vt as xe, W as Se, Wt as Ce, Xt as we, Yt as Te, Zt as Ee, _n as De, at as Oe, bn as ke, bt as Ae, ct as je, en as Me, et as Ne, gn as Pe, it as Fe, j as Ie, kt as Le, mn as Re, mt as ze, pn as Be, q as Ve, qt as He, rn as Ue, rt as We, un as Ge, ut as Ke, vn as qe, wn as Je, wt as Ye, xt as Xe, yt as Ze, z as Qe, zt as $e } from "./features-D-2kVhHY.js";
3
+ import { B as et, E as H, F as tt, H as nt, I as rt, K as it, L as at, N as ot, P as st, X as ct, b as lt, c as ut, d as dt, g as ft, h as pt, j as mt, k as ht, l as gt, o as _t, s as vt, v as yt, x as bt, y as xt } from "./icons-fZoyKV_s.js";
4
+ import { t as St } from "./readableTextColor-f8Kykfnh.js";
5
+ import { t as Ct } from "./CountdownBlock-D6lCXhZA.js";
6
+ import { t as wt } from "./blockTypeIcons-YOEe5mDE.js";
7
+ import { _ as Tt, c as Et, f as U, g as Dt, h as W, l as Ot, m as G, p as K, t as kt } from "./styleConstants-lGobwiLH.js";
8
+ import { i as q, n as J, r as Y, t as At } from "./NumberWithSuffix-Bp-idLCc.js";
9
9
  //#region src/utils/resolveLintOptions.ts
10
- function Et(e) {
10
+ function jt(e) {
11
11
  return {
12
12
  ...e.lint,
13
13
  locale: e.locale
@@ -15,19 +15,19 @@ function Et(e) {
15
15
  }
16
16
  //#endregion
17
17
  //#region src/components/Canvas.vue?vue&type=script&setup=true&lang.ts
18
- var Dt = ["aria-label"], Ot = {
18
+ var Mt = ["aria-label"], Nt = {
19
19
  key: 0,
20
20
  class: "tpl-canvas-empty-content tpl:flex tpl:flex-col tpl:items-center"
21
- }, kt = { class: "tpl-canvas-empty-icon tpl:mb-4 tpl:text-[var(--tpl-primary)]" }, At = { class: "tpl-canvas-empty-title tpl:m-0 tpl:mb-2 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-primary)]" }, jt = { class: "tpl-canvas-empty-text tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-dim)]" }, Mt = {
21
+ }, Pt = { class: "tpl-canvas-empty-icon tpl:mb-4 tpl:text-[var(--tpl-primary)]" }, Ft = { class: "tpl-canvas-empty-title tpl:m-0 tpl:mb-2 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-primary)]" }, It = { class: "tpl-canvas-empty-text tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-dim)]" }, Lt = {
22
22
  key: 0,
23
23
  class: "tpl:m-0 tpl:mt-2 tpl:flex tpl:flex-wrap tpl:items-center tpl:justify-center tpl:gap-x-1 tpl:gap-y-0.5 tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
24
- }, Nt = {
24
+ }, Rt = {
25
25
  key: 1,
26
26
  class: "tpl:m-0 tpl:mt-4 tpl:flex tpl:flex-wrap tpl:items-center tpl:justify-center tpl:gap-x-1 tpl:gap-y-0.5 tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
27
- }, Pt = { class: "tpl:relative" }, Ft = {
27
+ }, zt = { class: "tpl:relative" }, Bt = {
28
28
  class: "tpl:inline-flex tpl:size-3 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[8px] tpl:font-bold",
29
29
  style: { "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 30%,\n transparent\n )" }
30
- }, It = /* @__PURE__ */ V(/* @__PURE__ */ A({
30
+ }, Vt = /* @__PURE__ */ We(/* @__PURE__ */ A({
31
31
  __name: "Canvas",
32
32
  props: {
33
33
  viewport: {},
@@ -47,18 +47,18 @@ var Dt = ["aria-label"], Ot = {
47
47
  section: ce,
48
48
  title: he,
49
49
  paragraph: ne,
50
- image: xe,
50
+ image: Se,
51
51
  button: de,
52
- divider: Be,
52
+ divider: Ve,
53
53
  spacer: fe,
54
54
  html: oe,
55
55
  social: pe,
56
- menu: ve,
56
+ menu: ye,
57
57
  table: ue,
58
- video: Fe,
59
- countdown: vt,
58
+ video: Ie,
59
+ countdown: Ct,
60
60
  custom: ie
61
- }, o = e, u = t, { t: f } = L(), { t: p } = Ae(), y = ze(Ve, "Canvas"), x = c(Se, null), S = c(F, null), A = c(be, {}), M = h(() => (A.plan?.hasFeature("ai_generation") ?? !1) && (A.ai?.isFeatureEnabled("chat") ?? !1)), N = h(() => (A.plan?.hasFeature("ai_generation") ?? !1) && (A.ai?.isFeatureEnabled("designToTemplate") ?? !1)), P = h({
61
+ }, o = e, u = t, { t: f } = z(), { t: p } = Ne(), y = Ue(He, "Canvas"), x = c(Ce, null), S = c(ee, null), A = c(xe, {}), M = h(() => (A.plan?.hasFeature("ai_generation") ?? !1) && (A.ai?.isFeatureEnabled("chat") ?? !1)), N = h(() => (A.plan?.hasFeature("ai_generation") ?? !1) && (A.ai?.isFeatureEnabled("designToTemplate") ?? !1)), P = h({
62
62
  get: () => o.content.blocks,
63
63
  set: (e) => {
64
64
  y.setContent({
@@ -66,32 +66,32 @@ var Dt = ["aria-label"], Ot = {
66
66
  blocks: e
67
67
  });
68
68
  }
69
- }), ee = h(() => {
69
+ }), F = h(() => {
70
70
  switch (o.viewport) {
71
71
  case "mobile": return 375;
72
72
  case "tablet": return 768;
73
73
  default: return o.content.settings.width;
74
74
  }
75
- }), te = h(() => ({ fontFamily: o.content.settings.fontFamily })), I = h(() => P.value.length === 0 && !o.previewMode), R = d(0), z = h(() => I.value && R.value > 0);
75
+ }), I = h(() => ({ fontFamily: o.content.settings.fontFamily })), L = h(() => P.value.length === 0 && !o.previewMode), R = d(0), B = h(() => L.value && R.value > 0);
76
+ function te() {
77
+ L.value && (R.value += 1);
78
+ }
76
79
  function re() {
77
- I.value && (R.value += 1);
80
+ L.value && (R.value = Math.max(0, R.value - 1));
78
81
  }
79
82
  function ae() {
80
- I.value && (R.value = Math.max(0, R.value - 1));
81
- }
82
- function se() {
83
83
  R.value = 0;
84
84
  }
85
- function le(e) {
85
+ function se(e) {
86
86
  o.previewMode || e.target === e.currentTarget && u("select-block", null);
87
87
  }
88
- function me(e) {
89
- return ye(e, S, r);
88
+ function le(e) {
89
+ return be(e, S, r);
90
90
  }
91
- function B(e) {
91
+ function V(e) {
92
92
  return o.lockedBlocks?.get(e) ?? null;
93
93
  }
94
- function ge(e, t) {
94
+ function me(e, t) {
95
95
  e.type === "custom" && y.updateBlock(e.id, {
96
96
  fieldValues: t.fieldValues,
97
97
  dataSourceFetched: t.dataSourceFetched
@@ -103,7 +103,7 @@ var Dt = ["aria-label"], Ot = {
103
103
  "aria-label": v(f).landmarks.canvas,
104
104
  class: "tpl-canvas-wrapper tpl:relative tpl:rounded-lg",
105
105
  style: E({
106
- width: `${ee.value}px`,
106
+ width: `${F.value}px`,
107
107
  boxShadow: e.darkMode ? "none" : "var(--tpl-shadow-xl)",
108
108
  transition: "width 300ms cubic-bezier(0.34, 1.56, 0.64, 1)"
109
109
  })
@@ -119,8 +119,8 @@ var Dt = ["aria-label"], Ot = {
119
119
  "tpl-canvas--dark-mode": e.darkMode,
120
120
  "tpl-preview-mode": e.previewMode
121
121
  }]),
122
- style: E(te.value),
123
- onClick: le
122
+ style: E(I.value),
123
+ onClick: se
124
124
  }, [j(v(D), {
125
125
  modelValue: P.value,
126
126
  "onUpdate:modelValue": r[2] ||= (e) => P.value = e,
@@ -136,38 +136,38 @@ var Dt = ["aria-label"], Ot = {
136
136
  "force-fallback": !0,
137
137
  class: C([
138
138
  "tpl-canvas-blocks",
139
- I.value ? "tpl-canvas-empty tpl:m-6 tpl:flex tpl:min-h-[400px] tpl:flex-col tpl:items-center tpl:justify-center tpl:rounded-xl tpl:border-2 tpl:border-dashed tpl:px-10 tpl:py-12 tpl:text-center tpl:bg-[var(--tpl-bg-elevated)] tpl:font-[var(--tpl-font-family)] tpl:transition-colors tpl:duration-150" : "",
140
- I.value && z.value ? "tpl-canvas-empty--drag-over tpl:border-[var(--tpl-primary-hover)] tpl:bg-[var(--tpl-primary-light)]" : "",
141
- I.value && !z.value ? "tpl:border-[var(--tpl-primary)]" : ""
139
+ L.value ? "tpl-canvas-empty tpl:m-6 tpl:flex tpl:min-h-[400px] tpl:flex-col tpl:items-center tpl:justify-center tpl:rounded-xl tpl:border-2 tpl:border-dashed tpl:px-10 tpl:py-12 tpl:text-center tpl:bg-[var(--tpl-bg-elevated)] tpl:font-[var(--tpl-font-family)] tpl:transition-colors tpl:duration-150" : "",
140
+ L.value && B.value ? "tpl-canvas-empty--drag-over tpl:border-[var(--tpl-primary-hover)] tpl:bg-[var(--tpl-primary-light)]" : "",
141
+ L.value && !B.value ? "tpl:border-[var(--tpl-primary)]" : ""
142
142
  ]),
143
- onDragenter: re,
144
- onDragleave: ae,
145
- onDrop: se
143
+ onDragenter: te,
144
+ onDragleave: re,
145
+ onDrop: ae
146
146
  }, {
147
- default: l(() => [I.value ? (a(), g("div", Ot, [
148
- w("div", kt, [j(v(st), {
147
+ default: l(() => [L.value ? (a(), g("div", Nt, [
148
+ w("div", Pt, [j(v(ft), {
149
149
  size: 48,
150
150
  "stroke-width": 1
151
151
  })]),
152
- w("p", At, m(v(f).canvas.noBlocks), 1),
153
- w("p", jt, m(v(f).canvas.dragHint), 1),
154
- M.value && v(p) ? (a(), g("p", Mt, [
152
+ w("p", Ft, m(v(f).canvas.noBlocks), 1),
153
+ w("p", It, m(v(f).canvas.dragHint), 1),
154
+ M.value && v(p) ? (a(), g("p", Lt, [
155
155
  k(m(v(f).canvas.aiHintChat) + " ", 1),
156
156
  w("button", {
157
157
  class: "tpl:inline-flex tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:gap-1 tpl:whitespace-nowrap tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-2 tpl:py-0.5 tpl:text-sm tpl:font-semibold tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
158
158
  onClick: r[0] ||= (e) => u("open-ai-chat")
159
- }, [j(v(He), {
159
+ }, [j(v(Ke), {
160
160
  size: 14,
161
161
  "stroke-width": 2
162
162
  }), k(" " + m(v(p).aiMenu.aiAssistant), 1)]),
163
163
  k(" " + m(v(f).canvas.aiHintChatSuffix), 1)
164
164
  ])) : _("", !0),
165
- N.value && v(p) ? (a(), g("p", Nt, [
165
+ N.value && v(p) ? (a(), g("p", Rt, [
166
166
  k(m(v(f).canvas.aiHintDesign) + " ", 1),
167
167
  w("button", {
168
168
  class: "tpl:inline-flex tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:gap-1 tpl:whitespace-nowrap tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-2 tpl:py-0.5 tpl:text-sm tpl:font-semibold tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
169
169
  onClick: r[1] ||= (e) => u("open-design-reference")
170
- }, [j(v(qe), {
170
+ }, [j(v(Xe), {
171
171
  size: 14,
172
172
  "stroke-width": 2
173
173
  }), k(" " + m(v(p).aiMenu.designToTemplate), 1)]),
@@ -176,30 +176,30 @@ var Dt = ["aria-label"], Ot = {
176
176
  ])) : _("", !0), (a(!0), g(O, null, s(P.value, (t) => n((a(), g("div", {
177
177
  key: t.id,
178
178
  class: "tpl-block-item"
179
- }, [w("div", Pt, [B(t.id) ? (a(), g("div", {
179
+ }, [w("div", zt, [V(t.id) ? (a(), g("div", {
180
180
  key: 0,
181
181
  class: "tpl-collab-lock tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-[4] tpl:rounded-sm",
182
182
  style: E({
183
- outline: `2px solid ${B(t.id).color}`,
183
+ outline: `2px solid ${V(t.id).color}`,
184
184
  outlineOffset: "-1px"
185
185
  })
186
186
  }, [w("span", {
187
187
  class: "tpl:absolute tpl:-top-0.5 tpl:left-1/2 tpl:z-[5] tpl:flex tpl:-translate-x-1/2 tpl:-translate-y-full tpl:items-center tpl:gap-1 tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:whitespace-nowrap",
188
188
  style: E({
189
- backgroundColor: B(t.id).color,
190
- color: v(_t)(B(t.id).color)
189
+ backgroundColor: V(t.id).color,
190
+ color: v(St)(V(t.id).color)
191
191
  })
192
- }, [w("span", Ft, m(B(t.id).name.charAt(0)), 1), k(" " + m(B(t.id).name), 1)], 4)], 4)) : _("", !0), j(Ye, {
192
+ }, [w("span", Bt, m(V(t.id).name.charAt(0)), 1), k(" " + m(V(t.id).name), 1)], 4)], 4)) : _("", !0), j(Qe, {
193
193
  block: t,
194
- "is-selected": !e.previewMode && e.selectedBlockId === t.id && !B(t.id),
194
+ "is-selected": !e.previewMode && e.selectedBlockId === t.id && !V(t.id),
195
195
  viewport: e.viewport,
196
196
  "preview-mode": e.previewMode,
197
- onSelect: (n) => e.previewMode || B(t.id) ? void 0 : u("select-block", t.id)
197
+ onSelect: (n) => e.previewMode || V(t.id) ? void 0 : u("select-block", t.id)
198
198
  }, {
199
- default: l(() => [(a(), b(i(me(t)), {
199
+ default: l(() => [(a(), b(i(le(t)), {
200
200
  block: t,
201
201
  viewport: e.viewport,
202
- onFetchData: (e) => ge(t, e),
202
+ onFetchData: (e) => me(t, e),
203
203
  onUpdate: (e) => v(y).updateBlock(t.id, e)
204
204
  }, null, 40, [
205
205
  "block",
@@ -220,29 +220,29 @@ var Dt = ["aria-label"], Ot = {
220
220
  "modelValue",
221
221
  "disabled",
222
222
  "class"
223
- ])], 6)], 12, Dt));
223
+ ])], 6)], 12, Mt));
224
224
  }
225
- }), [["__scopeId", "data-v-a4d3fa2d"]]), Lt = ["aria-label"], Rt = {
225
+ }), [["__scopeId", "data-v-a4d3fa2d"]]), Ht = ["aria-label"], Ut = {
226
226
  key: 0,
227
227
  class: "tpl:border-b tpl:px-1 tpl:pb-1 tpl:border-[var(--tpl-border)]"
228
- }, zt = ["aria-label"], Bt = {
228
+ }, Wt = ["aria-label"], Gt = {
229
229
  key: 0,
230
230
  class: "tpl:flex-1 tpl:truncate tpl:text-sm tpl:font-medium"
231
- }, Vt = {
231
+ }, Kt = {
232
232
  key: 1,
233
233
  class: "tpl:shrink-0 tpl:rounded-full tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]"
234
- }, Ht = [
234
+ }, qt = [
235
235
  "data-palette-type",
236
236
  "aria-label",
237
237
  "onClick",
238
238
  "onKeydown"
239
- ], Ut = { class: "tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:transition-transform tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:scale-105" }, Wt = {
239
+ ], Jt = { class: "tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:transition-transform tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:scale-105" }, Yt = {
240
240
  key: 0,
241
241
  class: "tpl:truncate tpl:text-sm tpl:font-medium"
242
- }, Gt = /* @__PURE__ */ A({
242
+ }, Xt = /* @__PURE__ */ A({
243
243
  __name: "Sidebar",
244
244
  setup(e) {
245
- let { t, format: n } = L(), { t: r } = Ae(), o = c(z, []), u = c(Xe, void 0), f = c(Ve, null), p = c(be, {}), y = h(() => (p.savedModules?.moduleCount.value ?? 0) > 0), x = d(!1), S = d(!1);
245
+ let { t, format: n } = z(), { t: r } = Ne(), o = c(te, []), u = c($e, void 0), f = c(He, null), p = c(xe, {}), y = h(() => (p.savedModules?.moduleCount.value ?? 0) > 0), x = d(!1), S = d(!1);
246
246
  function C() {
247
247
  S.value || (x.value = !1);
248
248
  }
@@ -279,21 +279,21 @@ var Dt = ["aria-label"], Ot = {
279
279
  label: e.name,
280
280
  isCustom: !0,
281
281
  icon: e.icon
282
- }))), P = h(() => [...M.value, ...N.value]);
282
+ }))), ee = h(() => [...M.value, ...N.value]);
283
283
  function F(e) {
284
284
  if (e.isCustom) {
285
285
  let t = e.type.replace("custom:", ""), n = o.find((e) => e.type === t);
286
- if (n) return Ke(n);
286
+ if (n) return P(n);
287
287
  }
288
- return Ee(e.type, u);
288
+ return ge(e.type, u);
289
289
  }
290
- function ee(e) {
290
+ function I(e) {
291
291
  if (!f) return;
292
292
  let t = F(e);
293
293
  f.addBlock(t), f.selectBlock(t.id);
294
294
  }
295
- function te(e, t) {
296
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), ee(t));
295
+ function L(e, t) {
296
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), I(t));
297
297
  }
298
298
  return (e, o) => (a(), g("aside", {
299
299
  "aria-label": v(t).sidebarNav.palette,
@@ -309,22 +309,22 @@ var Dt = ["aria-label"], Ot = {
309
309
  onMouseleave: C,
310
310
  onFocusin: o[2] ||= (e) => x.value = !0,
311
311
  onFocusout: o[3] ||= (e) => x.value = !1
312
- }, [y.value && v(r) ? (a(), g("div", Rt, [w("button", {
312
+ }, [y.value && v(r) ? (a(), g("div", Ut, [w("button", {
313
313
  type: "button",
314
314
  "aria-label": v(t).sidebarNav.browseModules,
315
315
  class: "tpl:flex tpl:h-10 tpl:w-full tpl:cursor-pointer tpl:items-center tpl:gap-3 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:bg-transparent tpl:px-3 tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-[120ms] hover:tpl:bg-[var(--tpl-primary-light)] hover:tpl:text-[var(--tpl-primary)]",
316
316
  style: E({ justifyContent: x.value ? "flex-start" : "center" }),
317
317
  onClick: o[0] ||= (e) => v(p).savedModules?.openBrowser()
318
318
  }, [
319
- j(v(lt), {
319
+ j(v(mt), {
320
320
  size: 20,
321
321
  "stroke-width": 1.5,
322
322
  class: "tpl:shrink-0"
323
323
  }),
324
- x.value ? (a(), g("span", Bt, m(v(r).modules.title), 1)) : _("", !0),
325
- x.value ? (a(), g("span", Vt, m(v(p).savedModules?.moduleCount.value ?? 0), 1)) : _("", !0)
326
- ], 12, zt)])) : _("", !0), j(v(D), {
327
- "model-value": P.value,
324
+ x.value ? (a(), g("span", Gt, m(v(r).modules.title), 1)) : _("", !0),
325
+ x.value ? (a(), g("span", Kt, m(v(p).savedModules?.moduleCount.value ?? 0), 1)) : _("", !0)
326
+ ], 12, Wt)])) : _("", !0), j(v(D), {
327
+ "model-value": ee.value,
328
328
  group: {
329
329
  name: "blocks",
330
330
  pull: "clone",
@@ -339,31 +339,31 @@ var Dt = ["aria-label"], Ot = {
339
339
  onChoose: T,
340
340
  onEnd: k
341
341
  }, {
342
- default: l(() => [(a(!0), g(O, null, s(P.value, (e) => (a(), g("button", {
342
+ default: l(() => [(a(!0), g(O, null, s(ee.value, (e) => (a(), g("button", {
343
343
  key: e.type,
344
344
  type: "button",
345
345
  "data-palette-type": e.type,
346
346
  "aria-label": v(n)(v(t).sidebarNav.insertBlock, { block: e.label }),
347
347
  class: "tpl:flex tpl:h-10 tpl:w-full tpl:cursor-grab tpl:items-center tpl:gap-3 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:bg-transparent tpl:px-3 tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:bg-[var(--tpl-primary-light)] hover:tpl:text-[var(--tpl-primary)] active:tpl:cursor-grabbing",
348
348
  style: E({ justifyContent: x.value ? "flex-start" : "center" }),
349
- onClick: (t) => ee(e),
350
- onKeydown: (t) => te(t, e)
351
- }, [w("div", Ut, [v(yt)[e.type] ? (a(), b(i(v(yt)[e.type]), {
349
+ onClick: (t) => I(e),
350
+ onKeydown: (t) => L(t, e)
351
+ }, [w("div", Jt, [v(wt)[e.type] ? (a(), b(i(v(wt)[e.type]), {
352
352
  key: 0,
353
353
  size: 20,
354
354
  "stroke-width": 1.5
355
- })) : e.isCustom ? (a(), b(Pe, {
355
+ })) : e.isCustom ? (a(), b(Fe, {
356
356
  key: 1,
357
357
  icon: e.icon,
358
358
  size: 20
359
- }, null, 8, ["icon"])) : _("", !0)]), x.value ? (a(), g("span", Wt, m(e.label), 1)) : _("", !0)], 44, Ht))), 128))]),
359
+ }, null, 8, ["icon"])) : _("", !0)]), x.value ? (a(), g("span", Yt, m(e.label), 1)) : _("", !0)], 44, qt))), 128))]),
360
360
  _: 1
361
- }, 8, ["model-value"])], 44, Lt));
361
+ }, 8, ["model-value"])], 44, Ht));
362
362
  }
363
363
  });
364
364
  //#endregion
365
365
  //#region src/composables/useMergeTagField.ts
366
- function Kt(e) {
366
+ function Zt(e) {
367
367
  let { modelValue: n, emit: i, elementRef: a } = e, { canRequestMergeTag: s, isRequesting: c, isMergeTagValue: l, getMergeTagLabel: u, requestMergeTag: f, syntax: p } = N(), m = d(!1), g = !1, _ = !1;
368
368
  t() && r(() => {
369
369
  _ = !0;
@@ -382,10 +382,10 @@ function Kt(e) {
382
382
  type: "mergeTag",
383
383
  value: n,
384
384
  label: u(n)
385
- }) : Ue(n, p) ? t.push({
385
+ }) : ke(n, p) ? t.push({
386
386
  type: "logicMergeTag",
387
387
  value: n,
388
- keyword: Me(n, p)
388
+ keyword: qe(n, p)
389
389
  }) : t.push({
390
390
  type: "text",
391
391
  value: n
@@ -445,10 +445,10 @@ function Kt(e) {
445
445
  }
446
446
  //#endregion
447
447
  //#region src/components/MergeTagSegments.vue?vue&type=script&setup=true&lang.ts
448
- var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip"], Xt = {
448
+ var Qt = ["aria-label", "onKeydown"], $t = ["data-tooltip"], en = ["data-tooltip"], tn = {
449
449
  key: 2,
450
450
  class: "tpl:text-sm tpl:text-[var(--tpl-text)]"
451
- }, Zt = ["aria-label", "title"], Qt = /* @__PURE__ */ A({
451
+ }, nn = ["aria-label", "title"], rn = /* @__PURE__ */ A({
452
452
  __name: "MergeTagSegments",
453
453
  props: {
454
454
  segments: {},
@@ -457,7 +457,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
457
457
  },
458
458
  emits: ["edit", "clear"],
459
459
  setup(e, { emit: t }) {
460
- let n = t, { t: r } = L();
460
+ let n = t, { t: r } = z();
461
461
  function i() {
462
462
  n("edit");
463
463
  }
@@ -476,7 +476,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
476
476
  "background-color": "color-mix(\n in srgb,\n var(--tpl-primary) 20%,\n transparent\n )",
477
477
  color: "var(--tpl-primary)"
478
478
  }
479
- }, m(e.label), 9, Jt)) : e.type === "logicMergeTag" ? (a(), g("span", {
479
+ }, m(e.label), 9, $t)) : e.type === "logicMergeTag" ? (a(), g("span", {
480
480
  key: 1,
481
481
  class: "tpl-tooltip tpl:inline-flex tpl:items-center tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.8em] tpl:font-bold tpl:tracking-wide tpl:uppercase",
482
482
  "data-tooltip": e.value,
@@ -485,44 +485,44 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
485
485
  border: "1.5px solid\n color-mix(in srgb, var(--tpl-primary) 50%, transparent)",
486
486
  color: "var(--tpl-primary)"
487
487
  }
488
- }, m(e.keyword), 9, Yt)) : (a(), g("span", Xt, m(e.value), 1))], 64))), 128)), w("button", {
488
+ }, m(e.keyword), 9, en)) : (a(), g("span", tn, m(e.value), 1))], 64))), 128)), w("button", {
489
489
  type: "button",
490
490
  class: "tpl:ml-auto tpl:flex tpl:size-6 tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-full tpl:border-none tpl:bg-transparent tpl:p-0 tpl:text-[var(--tpl-text-dim)] tpl:opacity-60 tpl:transition-all hover:tpl:text-[var(--tpl-danger)] hover:tpl:opacity-100",
491
491
  "aria-label": v(r).mergeTag.remove,
492
492
  title: v(r).mergeTag.remove,
493
493
  onClick: o[0] ||= y((e) => n("clear"), ["stop"])
494
- }, [j(v(Te), {
494
+ }, [j(v(Oe), {
495
495
  size: 12,
496
496
  "stroke-width": 2.5
497
- })], 8, Zt)], 42, qt));
497
+ })], 8, nn)], 42, Qt));
498
498
  }
499
- }), $t = [
499
+ }), an = [
500
500
  "aria-label",
501
501
  "title",
502
502
  "disabled"
503
- ], en = "tpl:flex tpl:items-center tpl:justify-center tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-1 tpl:text-xs tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-[120ms] hover:tpl:bg-[var(--tpl-primary-light)] hover:tpl:text-[var(--tpl-primary)] hover:tpl:border-[var(--tpl-primary)]", tn = /* @__PURE__ */ A({
503
+ ], on = "tpl:flex tpl:items-center tpl:justify-center tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-1 tpl:text-xs tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-[120ms] hover:tpl:bg-[var(--tpl-primary-light)] hover:tpl:text-[var(--tpl-primary)] hover:tpl:border-[var(--tpl-primary)]", sn = /* @__PURE__ */ A({
504
504
  __name: "MergeTagInsertButton",
505
505
  props: { disabled: { type: Boolean } },
506
506
  emits: ["insert"],
507
507
  setup(e) {
508
- let { t } = L();
508
+ let { t } = z();
509
509
  return (n, r) => (a(), g("button", {
510
510
  type: "button",
511
- class: C([en, "tpl:mt-1.5"]),
511
+ class: C([on, "tpl:mt-1.5"]),
512
512
  "aria-label": v(t).mergeTag.insert,
513
513
  title: v(t).mergeTag.insert,
514
514
  disabled: e.disabled,
515
515
  onClick: r[0] ||= (e) => n.$emit("insert")
516
- }, [j(v(ht), {
516
+ }, [j(v(bt), {
517
517
  size: 12,
518
518
  "stroke-width": 2
519
- }), k(" " + m(v(t).mergeTag.insert), 1)], 10, $t));
519
+ }), k(" " + m(v(t).mergeTag.insert), 1)], 10, an));
520
520
  }
521
- }), nn = { key: 0 }, rn = { key: 1 }, an = [
521
+ }), cn = { key: 0 }, ln = { key: 1 }, un = [
522
522
  "value",
523
523
  "placeholder",
524
524
  "rows"
525
- ], on = "tpl:w-full tpl:resize-y tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:outline-none tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]", sn = "tpl:flex tpl:w-full tpl:min-h-[5rem] tpl:cursor-pointer tpl:items-start tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", cn = /* @__PURE__ */ A({
525
+ ], dn = "tpl:w-full tpl:resize-y tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:outline-none tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]", fn = "tpl:flex tpl:w-full tpl:min-h-[5rem] tpl:cursor-pointer tpl:items-start tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", pn = /* @__PURE__ */ A({
526
526
  __name: "MergeTagTextarea",
527
527
  props: {
528
528
  modelValue: {},
@@ -531,46 +531,46 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
531
531
  },
532
532
  emits: ["update:modelValue"],
533
533
  setup(e, { emit: t }) {
534
- let n = e, r = t, i = d(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: u, startEditing: f, stopEditing: m, handleInput: h, clearValue: y, insertMergeTag: x } = Kt({
534
+ let n = e, r = t, i = d(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: u, startEditing: f, stopEditing: m, handleInput: h, clearValue: y, insertMergeTag: x } = Zt({
535
535
  modelValue: () => n.modelValue,
536
536
  emit: (e) => r("update:modelValue", e),
537
537
  elementRef: i
538
538
  });
539
- return (t, n) => v(s) && !v(u) ? (a(), g("div", nn, [j(Qt, {
539
+ return (t, n) => v(s) && !v(u) ? (a(), g("div", cn, [j(rn, {
540
540
  segments: v(o),
541
- "display-class": sn,
541
+ "display-class": fn,
542
542
  onEdit: v(f),
543
543
  onClear: v(y)
544
544
  }, null, 8, [
545
545
  "segments",
546
546
  "onEdit",
547
547
  "onClear"
548
- ]), v(c) ? (a(), b(tn, {
548
+ ]), v(c) ? (a(), b(sn, {
549
549
  key: 0,
550
550
  disabled: v(l),
551
551
  onInsert: v(x)
552
- }, null, 8, ["disabled", "onInsert"])) : _("", !0)])) : (a(), g("div", rn, [w("textarea", {
552
+ }, null, 8, ["disabled", "onInsert"])) : _("", !0)])) : (a(), g("div", ln, [w("textarea", {
553
553
  ref_key: "textareaRef",
554
554
  ref: i,
555
- class: C(on),
555
+ class: C(dn),
556
556
  value: e.modelValue,
557
557
  placeholder: e.placeholder,
558
558
  rows: e.rows,
559
559
  onInput: n[0] ||= (...e) => v(h) && v(h)(...e),
560
560
  onBlur: n[1] ||= (...e) => v(m) && v(m)(...e),
561
561
  onKeydown: n[2] ||= p((...e) => v(m) && v(m)(...e), ["escape"])
562
- }, null, 40, an), v(c) ? (a(), b(tn, {
562
+ }, null, 40, un), v(c) ? (a(), b(sn, {
563
563
  key: 0,
564
564
  disabled: v(l),
565
565
  onInsert: v(x)
566
566
  }, null, 8, ["disabled", "onInsert"])) : _("", !0)]));
567
567
  }
568
- }), ln = { class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]" }, un = { class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:gap-3 tpl:overflow-y-auto tpl:p-4" }, dn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, fn = { class: "tpl:mb-3.5" }, pn = { class: "tpl:grid tpl:grid-cols-4 tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, mn = ["onClick"], hn = { class: "tpl:flex tpl:items-stretch" }, gn = ["value"], _n = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, vn = { class: "tpl:mb-3.5" }, yn = ["value"], bn = ["value"], xn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Sn = ["value"], Cn = { class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, wn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Tn = { class: "tpl:mt-1 tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, En = { class: "tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, Dn = { class: "tpl:shrink-0 tpl:text-xs tpl:tabular-nums tpl:text-[var(--tpl-text-dim)]" }, On = { class: "tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-3" }, kn = { class: "tpl:mb-2.5 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text-muted)]" }, An = { class: "tpl:m-0 tpl:pl-[18px] tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, jn = { class: "tpl:mb-1 tpl:last:mb-0" }, Mn = { class: "tpl:mb-1 tpl:last:mb-0" }, Nn = { class: "tpl:mb-1 tpl:last:mb-0" }, Pn = 150, Fn = /* @__PURE__ */ A({
568
+ }), mn = { class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]" }, hn = { class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:gap-3 tpl:overflow-y-auto tpl:p-4" }, gn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, _n = { class: "tpl:mb-3.5" }, vn = { class: "tpl:grid tpl:grid-cols-4 tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, yn = ["onClick"], bn = { class: "tpl:flex tpl:items-stretch" }, xn = ["value"], Sn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Cn = { class: "tpl:mb-3.5" }, wn = ["value"], Tn = ["value"], En = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Dn = ["value"], On = { class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, kn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, An = { class: "tpl:mt-1 tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, jn = { class: "tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, Mn = { class: "tpl:shrink-0 tpl:text-xs tpl:tabular-nums tpl:text-[var(--tpl-text-dim)]" }, Nn = { class: "tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-3" }, Pn = { class: "tpl:mb-2.5 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text-muted)]" }, Fn = { class: "tpl:m-0 tpl:pl-[18px] tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, In = { class: "tpl:mb-1 tpl:last:mb-0" }, Ln = { class: "tpl:mb-1 tpl:last:mb-0" }, Rn = { class: "tpl:mb-1 tpl:last:mb-0" }, zn = 150, Bn = /* @__PURE__ */ A({
569
569
  __name: "TemplateSettings",
570
570
  props: { settings: {} },
571
571
  emits: ["update"],
572
572
  setup(e, { emit: t }) {
573
- let n = e, r = t, { t: i } = L(), o = ze(ae, "TemplateSettings"), c = h(() => o.fonts.value), l = h(() => c.value.some((e) => e.value === n.settings.fontFamily) ? n.settings.fontFamily : o.defaultFont.value), u = [
573
+ let n = e, r = t, { t: i } = z(), o = Ue(ae, "TemplateSettings"), c = h(() => o.fonts.value), l = h(() => c.value.some((e) => e.value === n.settings.fontFamily) ? n.settings.fontFamily : o.defaultFont.value), u = [
574
574
  {
575
575
  value: 480,
576
576
  label: "480px"
@@ -588,14 +588,14 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
588
588
  label: "800px"
589
589
  }
590
590
  ];
591
- return (t, n) => (a(), g("aside", ln, [w("div", un, [
592
- w("div", { class: C(v(Ct)) }, [
593
- w("div", dn, [j(v(ct), {
591
+ return (t, n) => (a(), g("aside", mn, [w("div", hn, [
592
+ w("div", { class: C(v(Ot)) }, [
593
+ w("div", gn, [j(v(pt), {
594
594
  class: "tpl:text-[var(--tpl-text-muted)]",
595
595
  size: 14,
596
596
  "stroke-width": 2
597
597
  }), w("span", null, m(v(i).templateSettings.layout), 1)]),
598
- w("div", fn, [w("label", { class: C(v(G)) }, m(v(i).templateSettings.widthPreset), 3), w("div", pn, [(a(), g(O, null, s(u, (t) => w("button", {
598
+ w("div", _n, [w("label", { class: C(v(W)) }, m(v(i).templateSettings.widthPreset), 3), w("div", vn, [(a(), g(O, null, s(u, (t) => w("button", {
599
599
  key: t.value,
600
600
  class: "tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-2 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]",
601
601
  style: E({
@@ -604,79 +604,79 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
604
604
  boxShadow: e.settings.width === t.value ? "var(--tpl-shadow)" : "none"
605
605
  }),
606
606
  onClick: (e) => r("update", { width: t.value })
607
- }, m(t.label), 13, mn)), 64))])]),
608
- w("div", null, [w("label", { class: C(v(G)) }, m(v(i).templateSettings.customWidth), 3), w("div", hn, [w("input", {
607
+ }, m(t.label), 13, yn)), 64))])]),
608
+ w("div", null, [w("label", { class: C(v(W)) }, m(v(i).templateSettings.customWidth), 3), w("div", bn, [w("input", {
609
609
  type: "number",
610
- class: C(v(q)),
610
+ class: C(v(K)),
611
611
  value: e.settings.width,
612
612
  min: "300",
613
613
  max: "900",
614
614
  onInput: n[0] ||= (e) => r("update", { width: Number(e.target.value) })
615
- }, null, 42, gn), w("span", { class: C(v(K)) }, "px", 2)])])
615
+ }, null, 42, xn), w("span", { class: C(v(G)) }, "px", 2)])])
616
616
  ], 2),
617
- w("div", { class: C(v(Ct)) }, [
618
- w("div", _n, [j(v(it), {
617
+ w("div", { class: C(v(Ot)) }, [
618
+ w("div", Sn, [j(v(ct), {
619
619
  class: "tpl:text-[var(--tpl-text-muted)]",
620
620
  size: 14,
621
621
  "stroke-width": 2
622
622
  }), w("span", null, m(v(i).templateSettings.appearance), 1)]),
623
- w("div", vn, [w("label", { class: C(v(G)) }, m(v(i).templateSettings.backgroundColor), 3), j(J, {
623
+ w("div", Cn, [w("label", { class: C(v(W)) }, m(v(i).templateSettings.backgroundColor), 3), j(q, {
624
624
  "model-value": e.settings.backgroundColor,
625
- placeholder: v(wt),
625
+ placeholder: v(kt),
626
626
  "onUpdate:modelValue": n[1] ||= (e) => r("update", { backgroundColor: e })
627
627
  }, null, 8, ["model-value", "placeholder"])]),
628
- w("div", null, [w("label", { class: C(v(G)) }, m(v(i).templateSettings.fontFamily), 3), w("select", {
629
- class: C(v(W)),
628
+ w("div", null, [w("label", { class: C(v(W)) }, m(v(i).templateSettings.fontFamily), 3), w("select", {
629
+ class: C(v(U)),
630
630
  value: l.value,
631
631
  onChange: n[2] ||= (e) => r("update", { fontFamily: e.target.value })
632
632
  }, [(a(!0), g(O, null, s(c.value, (e) => (a(), g("option", {
633
633
  key: e.value,
634
634
  value: e.value
635
- }, m(e.label), 9, bn))), 128))], 42, yn)])
635
+ }, m(e.label), 9, Tn))), 128))], 42, wn)])
636
636
  ], 2),
637
- w("div", { class: C(v(Ct)) }, [w("div", xn, [j(v(et), {
637
+ w("div", { class: C(v(Ot)) }, [w("div", En, [j(v(it), {
638
638
  class: "tpl:text-[var(--tpl-text-muted)]",
639
639
  size: 14,
640
640
  "stroke-width": 2
641
641
  }), w("span", null, m(v(i).templateSettings.language), 1)]), w("div", null, [
642
- w("label", { class: C(v(G)) }, m(v(i).templateSettings.contentLocale), 3),
642
+ w("label", { class: C(v(W)) }, m(v(i).templateSettings.contentLocale), 3),
643
643
  w("input", {
644
644
  type: "text",
645
- class: C(v(W)),
645
+ class: C(v(U)),
646
646
  value: e.settings.locale ?? "",
647
647
  placeholder: "en",
648
648
  spellcheck: "false",
649
649
  autocapitalize: "off",
650
650
  autocomplete: "off",
651
651
  onInput: n[3] ||= (e) => r("update", { locale: e.target.value.trim() || void 0 })
652
- }, null, 42, Sn),
653
- w("p", Cn, m(v(i).templateSettings.contentLocaleHint), 1)
652
+ }, null, 42, Dn),
653
+ w("p", On, m(v(i).templateSettings.contentLocaleHint), 1)
654
654
  ])], 2),
655
- w("div", { class: C(v(Ct)) }, [w("div", wn, [j(v(ge), {
655
+ w("div", { class: C(v(Ot)) }, [w("div", kn, [j(v(_e), {
656
656
  class: "tpl:text-[var(--tpl-text-muted)]",
657
657
  size: 14,
658
658
  "stroke-width": 2
659
- }), w("span", null, m(v(i).templateSettings.preheaderText), 1)]), w("div", null, [j(cn, {
659
+ }), w("span", null, m(v(i).templateSettings.preheaderText), 1)]), w("div", null, [j(pn, {
660
660
  "model-value": e.settings.preheaderText ?? "",
661
661
  placeholder: v(i).templateSettings.preheaderTextPlaceholder,
662
662
  rows: 2,
663
663
  "onUpdate:modelValue": n[4] ||= (e) => r("update", { preheaderText: e.replace(/[\r\n]/g, " ") || void 0 })
664
- }, null, 8, ["model-value", "placeholder"]), w("div", Tn, [w("span", En, m(v(i).templateSettings.preheaderTextHint), 1), w("span", Dn, m((e.settings.preheaderText ?? "").length) + "/" + m(Pn), 1)])])], 2),
665
- w("div", On, [w("div", kn, [j(v(Je), {
664
+ }, null, 8, ["model-value", "placeholder"]), w("div", An, [w("span", jn, m(v(i).templateSettings.preheaderTextHint), 1), w("span", Mn, m((e.settings.preheaderText ?? "").length) + "/" + m(zn), 1)])])], 2),
665
+ w("div", Nn, [w("div", Pn, [j(v(Ze), {
666
666
  size: 14,
667
667
  "stroke-width": 2
668
- }), w("span", null, m(v(i).templateSettings.tips), 1)]), w("ul", An, [
669
- w("li", jn, m(v(i).templateSettings.tip1), 1),
670
- w("li", Mn, m(v(i).templateSettings.tip2), 1),
671
- w("li", Nn, m(v(i).templateSettings.tip3), 1)
668
+ }), w("span", null, m(v(i).templateSettings.tips), 1)]), w("ul", Fn, [
669
+ w("li", In, m(v(i).templateSettings.tip1), 1),
670
+ w("li", Ln, m(v(i).templateSettings.tip2), 1),
671
+ w("li", Rn, m(v(i).templateSettings.tip3), 1)
672
672
  ])])
673
673
  ])]));
674
674
  }
675
- }), In = { key: 0 }, Ln = { key: 1 }, Rn = [
675
+ }), Vn = { key: 0 }, Hn = { key: 1 }, Un = [
676
676
  "type",
677
677
  "value",
678
678
  "placeholder"
679
- ], zn = "tpl:flex tpl:w-full tpl:min-h-10 tpl:cursor-pointer tpl:items-center tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3.5 tpl:py-1.5 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", Z = /* @__PURE__ */ V(/* @__PURE__ */ A({
679
+ ], Wn = "tpl:flex tpl:w-full tpl:min-h-10 tpl:cursor-pointer tpl:items-center tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-xs tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3.5 tpl:py-1.5 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", X = /* @__PURE__ */ We(/* @__PURE__ */ A({
680
680
  __name: "MergeTagInput",
681
681
  props: {
682
682
  modelValue: {},
@@ -689,14 +689,14 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
689
689
  },
690
690
  emits: ["update:modelValue"],
691
691
  setup(e, { emit: t }) {
692
- let n = e, r = t, i = d(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: u, startEditing: f, stopEditing: m, handleInput: h, clearValue: y, insertMergeTag: x } = Kt({
692
+ let n = e, r = t, i = d(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: u, startEditing: f, stopEditing: m, handleInput: h, clearValue: y, insertMergeTag: x } = Zt({
693
693
  modelValue: () => n.modelValue,
694
694
  emit: (e) => r("update:modelValue", e),
695
695
  elementRef: i
696
696
  });
697
- return (t, n) => v(s) && !v(u) ? (a(), g("div", In, [j(Qt, {
697
+ return (t, n) => v(s) && !v(u) ? (a(), g("div", Vn, [j(rn, {
698
698
  segments: v(o),
699
- "display-class": zn,
699
+ "display-class": Wn,
700
700
  pulse: e.pulse,
701
701
  onEdit: v(f),
702
702
  onClear: v(y)
@@ -705,30 +705,30 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
705
705
  "pulse",
706
706
  "onEdit",
707
707
  "onClear"
708
- ]), v(c) ? (a(), b(tn, {
708
+ ]), v(c) ? (a(), b(sn, {
709
709
  key: 0,
710
710
  disabled: v(l),
711
711
  onInsert: v(x)
712
- }, null, 8, ["disabled", "onInsert"])) : _("", !0)])) : (a(), g("div", Ln, [w("input", {
712
+ }, null, 8, ["disabled", "onInsert"])) : _("", !0)])) : (a(), g("div", Hn, [w("input", {
713
713
  ref_key: "inputRef",
714
714
  ref: i,
715
715
  type: e.type,
716
- class: C([v(W), { "tpl-pulse-fill": e.pulse }]),
716
+ class: C([v(U), { "tpl-pulse-fill": e.pulse }]),
717
717
  value: e.modelValue,
718
718
  placeholder: e.placeholder,
719
719
  onInput: n[0] ||= (...e) => v(h) && v(h)(...e),
720
720
  onBlur: n[1] ||= (...e) => v(m) && v(m)(...e),
721
721
  onKeydown: n[2] ||= p((...e) => v(m) && v(m)(...e), ["escape"])
722
- }, null, 42, Rn), v(c) ? (a(), b(tn, {
722
+ }, null, 42, Un), v(c) ? (a(), b(sn, {
723
723
  key: 0,
724
724
  disabled: v(l),
725
725
  onInsert: v(x)
726
726
  }, null, 8, ["disabled", "onInsert"])) : _("", !0)]));
727
727
  }
728
- }), [["__scopeId", "data-v-358207dd"]]), Bn = { class: "tpl:mb-3.5" }, Vn = ["value"], Hn = { value: "" }, Un = ["value"], Wn = { class: "tpl:mb-3.5" }, Gn = { class: "tpl:mb-3.5" }, Kn = {
728
+ }), [["__scopeId", "data-v-358207dd"]]), Gn = { class: "tpl:mb-3.5" }, Kn = ["value"], qn = { value: "" }, Jn = ["value"], Yn = { class: "tpl:mb-3.5" }, Xn = { class: "tpl:mb-3.5" }, Zn = {
729
729
  key: 0,
730
730
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
731
- }, qn = ["checked"], Jn = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, Yn = { class: "tpl:mb-3.5" }, Xn = { class: "tpl:mb-3.5" }, Zn = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, Qn = { class: "tpl:mb-3.5" }, $n = { class: "tpl:flex tpl:items-stretch" }, er = ["value"], tr = { class: "tpl:mb-3.5" }, nr = { class: "tpl:flex tpl:items-stretch" }, rr = ["value"], ir = /* @__PURE__ */ A({
731
+ }, Qn = ["checked"], $n = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, er = { class: "tpl:mb-3.5" }, tr = { class: "tpl:mb-3.5" }, nr = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, rr = { class: "tpl:mb-3.5" }, ir = { class: "tpl:flex tpl:items-stretch" }, ar = ["value"], or = { class: "tpl:mb-3.5" }, sr = { class: "tpl:flex tpl:items-stretch" }, cr = ["value"], lr = /* @__PURE__ */ A({
732
732
  __name: "ButtonToolbar",
733
733
  props: {
734
734
  block: {},
@@ -736,64 +736,64 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
736
736
  },
737
737
  emits: ["update"],
738
738
  setup(e, { emit: t }) {
739
- let n = t, { t: r } = L();
739
+ let n = t, { t: r } = z();
740
740
  function i(e, t) {
741
741
  n("update", { [e]: t });
742
742
  }
743
743
  return (t, n) => (a(), g(O, null, [
744
- w("div", Bn, [w("label", { class: C(v(G)) }, m(v(r).button.fontFamily), 3), w("select", {
745
- class: C(v(W)),
744
+ w("div", Gn, [w("label", { class: C(v(W)) }, m(v(r).button.fontFamily), 3), w("select", {
745
+ class: C(v(U)),
746
746
  value: e.block.fontFamily || "",
747
747
  onChange: n[0] ||= (e) => i("fontFamily", e.target.value || void 0)
748
- }, [w("option", Hn, m(v(r).button.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
748
+ }, [w("option", qn, m(v(r).button.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
749
749
  key: e.value,
750
750
  value: e.value
751
- }, m(e.label), 9, Un))), 128))], 42, Vn)]),
752
- w("div", Wn, [w("label", { class: C(v(G)) }, m(v(r).button.text), 3), j(Z, {
751
+ }, m(e.label), 9, Jn))), 128))], 42, Kn)]),
752
+ w("div", Yn, [w("label", { class: C(v(W)) }, m(v(r).button.text), 3), j(X, {
753
753
  "model-value": e.block.text,
754
754
  type: "text",
755
755
  "onUpdate:modelValue": n[1] ||= (e) => i("text", e)
756
756
  }, null, 8, ["model-value"])]),
757
- w("div", Gn, [
758
- w("label", { class: C(v(G)) }, m(v(r).button.url), 3),
759
- j(Z, {
757
+ w("div", Xn, [
758
+ w("label", { class: C(v(W)) }, m(v(r).button.url), 3),
759
+ j(X, {
760
760
  "model-value": e.block.url,
761
761
  type: "url",
762
762
  placeholder: v(r).button.urlPlaceholder,
763
763
  "onUpdate:modelValue": n[2] ||= (e) => i("url", e)
764
764
  }, null, 8, ["model-value", "placeholder"]),
765
- e.block.url ? (a(), g("label", Kn, [w("input", {
765
+ e.block.url ? (a(), g("label", Zn, [w("input", {
766
766
  type: "checkbox",
767
767
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
768
768
  checked: e.block.openInNewTab ?? !1,
769
769
  onChange: n[3] ||= (e) => i("openInNewTab", e.target.checked)
770
- }, null, 40, qn), k(" " + m(v(r).button.openInNewTab), 1)])) : _("", !0)
770
+ }, null, 40, Qn), k(" " + m(v(r).button.openInNewTab), 1)])) : _("", !0)
771
771
  ]),
772
- w("div", Jn, [w("div", Yn, [w("label", { class: C(v(G)) }, m(v(r).button.background), 3), j(J, {
772
+ w("div", $n, [w("div", er, [w("label", { class: C(v(W)) }, m(v(r).button.background), 3), j(q, {
773
773
  "model-value": e.block.backgroundColor,
774
774
  "onUpdate:modelValue": n[4] ||= (e) => i("backgroundColor", e)
775
- }, null, 8, ["model-value"])]), w("div", Xn, [w("label", { class: C(v(G)) }, m(v(r).button.textColor), 3), j(J, {
775
+ }, null, 8, ["model-value"])]), w("div", tr, [w("label", { class: C(v(W)) }, m(v(r).button.textColor), 3), j(q, {
776
776
  "model-value": e.block.textColor,
777
777
  "onUpdate:modelValue": n[5] ||= (e) => i("textColor", e)
778
778
  }, null, 8, ["model-value"])])]),
779
- w("div", Zn, [w("div", Qn, [w("label", { class: C(v(G)) }, m(v(r).button.borderRadius), 3), w("div", $n, [w("input", {
779
+ w("div", nr, [w("div", rr, [w("label", { class: C(v(W)) }, m(v(r).button.borderRadius), 3), w("div", ir, [w("input", {
780
780
  type: "number",
781
- class: C(v(q)),
781
+ class: C(v(K)),
782
782
  value: e.block.borderRadius,
783
783
  min: "0",
784
784
  max: "50",
785
785
  onInput: n[6] ||= (e) => i("borderRadius", Number(e.target.value))
786
- }, null, 42, er), w("span", { class: C(v(K)) }, "px", 2)])]), w("div", tr, [w("label", { class: C(v(G)) }, m(v(r).button.fontSize), 3), w("div", nr, [w("input", {
786
+ }, null, 42, ar), w("span", { class: C(v(G)) }, "px", 2)])]), w("div", or, [w("label", { class: C(v(W)) }, m(v(r).button.fontSize), 3), w("div", sr, [w("input", {
787
787
  type: "number",
788
- class: C(v(q)),
788
+ class: C(v(K)),
789
789
  value: e.block.fontSize,
790
790
  min: "10",
791
791
  max: "36",
792
792
  onInput: n[7] ||= (e) => i("fontSize", Number(e.target.value))
793
- }, null, 42, rr), w("span", { class: C(v(K)) }, "px", 2)])])])
793
+ }, null, 42, cr), w("span", { class: C(v(G)) }, "px", 2)])])])
794
794
  ], 64));
795
795
  }
796
- }), ar = { class: "spacing-control" }, or = { class: "tpl:mb-2 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, sr = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-1.5" }, cr = { class: "tpl:flex tpl:items-center" }, lr = ["aria-label"], ur = ["value", "aria-label"], dr = ["aria-label"], fr = { class: "tpl:flex tpl:items-center tpl:gap-2" }, pr = { class: "tpl:flex tpl:items-center" }, mr = ["aria-label"], hr = ["value", "aria-label"], gr = ["aria-label"], _r = ["aria-label", "title"], vr = { class: "tpl:flex tpl:items-center" }, yr = ["aria-label"], br = ["value", "aria-label"], xr = ["aria-label"], Sr = { class: "tpl:flex tpl:items-center" }, Cr = ["aria-label"], wr = ["value", "aria-label"], Tr = ["aria-label"], Q = "tpl:flex tpl:items-center tpl:justify-center tpl:w-8 tpl:h-8 tpl:text-[var(--tpl-text-muted)] tpl:bg-[var(--tpl-bg)] tpl:border tpl:border-[var(--tpl-border)] tpl:cursor-pointer tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:bg-[var(--tpl-bg-hover)] hover:tpl:text-[var(--tpl-text)] active:tpl:bg-[var(--tpl-bg-active)]", Er = "tpl:w-10 tpl:h-8 tpl:text-center tpl:text-xs tpl:font-medium tpl:border-y tpl:border-x-0 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:outline-none tpl:transition-all tpl:duration-[120ms] focus:tpl:border-[var(--tpl-primary)] focus:tpl:shadow-[var(--tpl-ring)]", Dr = /* @__PURE__ */ V(/* @__PURE__ */ A({
796
+ }), ur = { class: "spacing-control" }, dr = { class: "tpl:mb-2 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, fr = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-1.5" }, pr = { class: "tpl:flex tpl:items-center" }, mr = ["aria-label"], hr = ["value", "aria-label"], gr = ["aria-label"], _r = { class: "tpl:flex tpl:items-center tpl:gap-2" }, vr = { class: "tpl:flex tpl:items-center" }, yr = ["aria-label"], br = ["value", "aria-label"], xr = ["aria-label"], Sr = ["aria-label", "title"], Cr = { class: "tpl:flex tpl:items-center" }, wr = ["aria-label"], Tr = ["value", "aria-label"], Er = ["aria-label"], Dr = { class: "tpl:flex tpl:items-center" }, Or = ["aria-label"], kr = ["value", "aria-label"], Ar = ["aria-label"], Z = "tpl:flex tpl:items-center tpl:justify-center tpl:w-8 tpl:h-8 tpl:text-[var(--tpl-text-muted)] tpl:bg-[var(--tpl-bg)] tpl:border tpl:border-[var(--tpl-border)] tpl:cursor-pointer tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:bg-[var(--tpl-bg-hover)] hover:tpl:text-[var(--tpl-text)] active:tpl:bg-[var(--tpl-bg-active)]", jr = "tpl:w-10 tpl:h-8 tpl:text-center tpl:text-xs tpl:font-medium tpl:border-y tpl:border-x-0 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:outline-none tpl:transition-all tpl:duration-[120ms] focus:tpl:border-[var(--tpl-primary)] focus:tpl:shadow-[var(--tpl-ring)]", Mr = /* @__PURE__ */ We(/* @__PURE__ */ A({
797
797
  __name: "SpacingControl",
798
798
  props: {
799
799
  modelValue: {},
@@ -801,7 +801,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
801
801
  },
802
802
  emits: ["update:modelValue"],
803
803
  setup(e, { emit: t }) {
804
- let n = e, r = t, { t: i } = L(), o = h(() => n.modelValue.top === n.modelValue.right && n.modelValue.right === n.modelValue.bottom && n.modelValue.bottom === n.modelValue.left), s = d(o.value);
804
+ let n = e, r = t, { t: i } = z(), o = h(() => n.modelValue.top === n.modelValue.right && n.modelValue.right === n.modelValue.bottom && n.modelValue.bottom === n.modelValue.left), s = d(o.value);
805
805
  M(o, (e) => {
806
806
  !e && s.value && (s.value = !1);
807
807
  });
@@ -840,130 +840,130 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
840
840
  });
841
841
  }
842
842
  }
843
- return (t, n) => (a(), g("div", ar, [w("label", or, m(e.label), 1), w("div", sr, [
844
- w("div", cr, [
843
+ return (t, n) => (a(), g("div", ur, [w("label", dr, m(e.label), 1), w("div", fr, [
844
+ w("div", pr, [
845
845
  w("button", {
846
846
  "aria-label": v(i).spacingControl.decreaseTop,
847
- class: C([Q, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
847
+ class: C([Z, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
848
848
  onClick: n[0] ||= (e) => c("top", -1)
849
- }, [j(v(U), {
849
+ }, [j(v(tt), {
850
850
  size: 12,
851
851
  "stroke-width": 2
852
- })], 10, lr),
852
+ })], 10, mr),
853
853
  w("input", {
854
854
  type: "number",
855
- class: C(Er),
855
+ class: C(jr),
856
856
  value: e.modelValue.top,
857
857
  "aria-label": v(i).spacingControl.top,
858
858
  min: "0",
859
859
  onInput: n[1] ||= (e) => l("top", Number(e.target.value))
860
- }, null, 40, ur),
860
+ }, null, 40, hr),
861
861
  w("button", {
862
862
  "aria-label": v(i).spacingControl.increaseTop,
863
- class: C([Q, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
863
+ class: C([Z, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
864
864
  onClick: n[2] ||= (e) => c("top", 1)
865
865
  }, [j(v(H), {
866
866
  size: 12,
867
867
  "stroke-width": 2
868
- })], 10, dr)
868
+ })], 10, gr)
869
869
  ]),
870
- w("div", fr, [
871
- w("div", pr, [
870
+ w("div", _r, [
871
+ w("div", vr, [
872
872
  w("button", {
873
873
  "aria-label": v(i).spacingControl.decreaseLeft,
874
- class: C([Q, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
874
+ class: C([Z, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
875
875
  onClick: n[3] ||= (e) => c("left", -1)
876
- }, [j(v(U), {
876
+ }, [j(v(tt), {
877
877
  size: 12,
878
878
  "stroke-width": 2
879
- })], 10, mr),
879
+ })], 10, yr),
880
880
  w("input", {
881
881
  type: "number",
882
- class: C(Er),
882
+ class: C(jr),
883
883
  value: e.modelValue.left,
884
884
  "aria-label": v(i).spacingControl.left,
885
885
  min: "0",
886
886
  onInput: n[4] ||= (e) => l("left", Number(e.target.value))
887
- }, null, 40, hr),
887
+ }, null, 40, br),
888
888
  w("button", {
889
889
  "aria-label": v(i).spacingControl.increaseLeft,
890
- class: C([Q, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
890
+ class: C([Z, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
891
891
  onClick: n[5] ||= (e) => c("left", 1)
892
892
  }, [j(v(H), {
893
893
  size: 12,
894
894
  "stroke-width": 2
895
- })], 10, gr)
895
+ })], 10, xr)
896
896
  ]),
897
897
  w("button", {
898
898
  class: C(["tpl:flex tpl:h-8 tpl:w-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", s.value ? "tpl:border-[var(--tpl-primary)] tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary)]" : "tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] hover:tpl:bg-[var(--tpl-bg-hover)]"]),
899
899
  "aria-label": s.value ? v(i).spacingControl.unlock : v(i).spacingControl.lockAll,
900
900
  title: s.value ? v(i).spacingControl.unlock : v(i).spacingControl.lockAll,
901
901
  onClick: u
902
- }, [s.value ? (a(), b(v($e), {
902
+ }, [s.value ? (a(), b(v(rt), {
903
903
  key: 0,
904
904
  size: 14,
905
905
  "stroke-width": 2
906
- })) : (a(), b(v(tt), {
906
+ })) : (a(), b(v(at), {
907
907
  key: 1,
908
908
  size: 14,
909
909
  "stroke-width": 2
910
- }))], 10, _r),
911
- w("div", vr, [
910
+ }))], 10, Sr),
911
+ w("div", Cr, [
912
912
  w("button", {
913
913
  "aria-label": v(i).spacingControl.decreaseRight,
914
- class: C([Q, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
914
+ class: C([Z, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
915
915
  onClick: n[6] ||= (e) => c("right", -1)
916
- }, [j(v(U), {
916
+ }, [j(v(tt), {
917
917
  size: 12,
918
918
  "stroke-width": 2
919
- })], 10, yr),
919
+ })], 10, wr),
920
920
  w("input", {
921
921
  type: "number",
922
- class: C(Er),
922
+ class: C(jr),
923
923
  value: e.modelValue.right,
924
924
  "aria-label": v(i).spacingControl.right,
925
925
  min: "0",
926
926
  onInput: n[7] ||= (e) => l("right", Number(e.target.value))
927
- }, null, 40, br),
927
+ }, null, 40, Tr),
928
928
  w("button", {
929
929
  "aria-label": v(i).spacingControl.increaseRight,
930
- class: C([Q, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
930
+ class: C([Z, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
931
931
  onClick: n[8] ||= (e) => c("right", 1)
932
932
  }, [j(v(H), {
933
933
  size: 12,
934
934
  "stroke-width": 2
935
- })], 10, xr)
935
+ })], 10, Er)
936
936
  ])
937
937
  ]),
938
- w("div", Sr, [
938
+ w("div", Dr, [
939
939
  w("button", {
940
940
  "aria-label": v(i).spacingControl.decreaseBottom,
941
- class: C([Q, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
941
+ class: C([Z, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
942
942
  onClick: n[9] ||= (e) => c("bottom", -1)
943
- }, [j(v(U), {
943
+ }, [j(v(tt), {
944
944
  size: 12,
945
945
  "stroke-width": 2
946
- })], 10, Cr),
946
+ })], 10, Or),
947
947
  w("input", {
948
948
  type: "number",
949
- class: C(Er),
949
+ class: C(jr),
950
950
  value: e.modelValue.bottom,
951
951
  "aria-label": v(i).spacingControl.bottom,
952
952
  min: "0",
953
953
  onInput: n[10] ||= (e) => l("bottom", Number(e.target.value))
954
- }, null, 40, wr),
954
+ }, null, 40, kr),
955
955
  w("button", {
956
956
  "aria-label": v(i).spacingControl.increaseBottom,
957
- class: C([Q, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
957
+ class: C([Z, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
958
958
  onClick: n[11] ||= (e) => c("bottom", 1)
959
959
  }, [j(v(H), {
960
960
  size: 12,
961
961
  "stroke-width": 2
962
- })], 10, Tr)
962
+ })], 10, Ar)
963
963
  ])
964
964
  ])]));
965
965
  }
966
- }), [["__scopeId", "data-v-9a9c8a07"]]), Or = { class: "tpl:mt-3" }, kr = /* @__PURE__ */ A({
966
+ }), [["__scopeId", "data-v-9a9c8a07"]]), Nr = { class: "tpl:mt-3" }, Pr = /* @__PURE__ */ A({
967
967
  __name: "CollapsibleSection",
968
968
  props: {
969
969
  title: {},
@@ -976,25 +976,25 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
976
976
  type: "button",
977
977
  class: "tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-center tpl:gap-1.5 tpl:border-none tpl:bg-transparent tpl:p-0 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
978
978
  onClick: i[0] ||= (e) => r.$emit("toggle")
979
- }, [j(v(Ie), {
979
+ }, [j(v(Le), {
980
980
  class: C(["tpl:transition-transform tpl:duration-200", t.open ? "tpl:rotate-0" : "tpl:-rotate-90"]),
981
981
  size: 12,
982
982
  "stroke-width": 2
983
- }, null, 8, ["class"]), w("span", null, m(t.title), 1)]), n(w("div", Or, [e(r.$slots, "default")], 512), [[T, t.open]])], 2));
983
+ }, null, 8, ["class"]), w("span", null, m(t.title), 1)]), n(w("div", Nr, [e(r.$slots, "default")], 512), [[T, t.open]])], 2));
984
984
  }
985
- }), Ar = { class: "tpl:mt-4" }, jr = { class: "tpl:space-y-2" }, Mr = ["checked", "onChange"], Nr = ["value", "placeholder"], Pr = { class: "tpl:space-y-2" }, Fr = ["value"], Ir = { value: "" }, Lr = ["label"], Rr = ["value"], zr = ["value"], Br = {
985
+ }), Fr = { class: "tpl:mt-4" }, Ir = { class: "tpl:space-y-2" }, Lr = ["checked", "onChange"], Rr = ["value", "placeholder"], zr = { class: "tpl:space-y-2" }, Br = ["value"], Vr = { value: "" }, Hr = ["label"], Ur = ["value"], Wr = ["value"], Gr = {
986
986
  key: 0,
987
987
  value: "__custom__"
988
- }, Vr = {
988
+ }, Kr = {
989
989
  key: 0,
990
990
  class: "tpl:space-y-2"
991
- }, Hr = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Ur = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Wr = { class: "tpl:flex tpl:justify-end" }, Gr = ["disabled"], Kr = {
991
+ }, qr = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Jr = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Yr = { class: "tpl:flex tpl:justify-end" }, Xr = ["disabled"], Zr = {
992
992
  key: 0,
993
993
  class: "tpl:text-[11px] tpl:text-[var(--tpl-text-muted)]"
994
- }, qr = { class: "tpl:space-y-1" }, Jr = { class: "tpl:m-0 tpl:overflow-x-auto tpl:rounded tpl:bg-[var(--tpl-bg)] tpl:p-2 tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-muted)]" }, Yr = {
994
+ }, Qr = { class: "tpl:space-y-1" }, $r = { class: "tpl:m-0 tpl:overflow-x-auto tpl:rounded tpl:bg-[var(--tpl-bg)] tpl:p-2 tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-muted)]" }, ei = {
995
995
  key: 0,
996
996
  class: "tpl:m-0 tpl:overflow-x-auto tpl:rounded tpl:bg-[var(--tpl-bg)] tpl:p-2 tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-muted)]"
997
- }, Xr = /* @__PURE__ */ A({
997
+ }, ti = /* @__PURE__ */ A({
998
998
  __name: "CommonBlockSettings",
999
999
  props: {
1000
1000
  block: {},
@@ -1002,31 +1002,31 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1002
1002
  },
1003
1003
  emits: ["update"],
1004
1004
  setup(e, { emit: t }) {
1005
- let r = e, o = t, { t: f } = L(), p = c(se, []), y = c(le, !1), x = u(/* @__PURE__ */ new Set()), T = d(!1), E = d(""), D = d(""), A = [
1005
+ let r = e, o = t, { t: f } = z(), p = c(se, []), y = c(le, !1), x = u(/* @__PURE__ */ new Set()), T = d(!1), E = d(""), D = d(""), A = [
1006
1006
  {
1007
1007
  key: "desktop",
1008
- icon: rt,
1008
+ icon: st,
1009
1009
  labelKey: "showOnDesktop"
1010
1010
  },
1011
1011
  {
1012
1012
  key: "tablet",
1013
- icon: dt,
1013
+ icon: gt,
1014
1014
  labelKey: "showOnTablet"
1015
1015
  },
1016
1016
  {
1017
1017
  key: "mobile",
1018
- icon: mt,
1018
+ icon: yt,
1019
1019
  labelKey: "showOnMobile"
1020
1020
  }
1021
1021
  ];
1022
1022
  function N(e) {
1023
1023
  x.has(e) ? x.delete(e) : x.add(e);
1024
1024
  }
1025
- let P = h(() => p.length > 0 || y), F = h(() => r.block.displayCondition ? !p.some((e) => e.label === r.block.displayCondition?.label) : !1);
1026
- function ee() {
1027
- T.value = !0, F.value && r.block.displayCondition ? (E.value = r.block.displayCondition.before, D.value = r.block.displayCondition.after ?? "") : (E.value = "", D.value = "");
1025
+ let ee = h(() => p.length > 0 || y), P = h(() => r.block.displayCondition ? !p.some((e) => e.label === r.block.displayCondition?.label) : !1);
1026
+ function F() {
1027
+ T.value = !0, P.value && r.block.displayCondition ? (E.value = r.block.displayCondition.before, D.value = r.block.displayCondition.after ?? "") : (E.value = "", D.value = "");
1028
1028
  }
1029
- function te() {
1029
+ function I() {
1030
1030
  E.value.trim() && (o("update", { displayCondition: {
1031
1031
  label: f.blockSettings.customCondition,
1032
1032
  before: E.value.trim(),
@@ -1038,9 +1038,9 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1038
1038
  T.value = !1, E.value = "", D.value = "";
1039
1039
  return;
1040
1040
  }
1041
- F.value && (E.value = e.before, D.value = e.after ?? "");
1041
+ P.value && (E.value = e.before, D.value = e.after ?? "");
1042
1042
  }, { immediate: !0 });
1043
- let I = h(() => {
1043
+ let L = h(() => {
1044
1044
  let e = {};
1045
1045
  for (let t of p) {
1046
1046
  let n = t.group ?? "";
@@ -1054,29 +1054,29 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1054
1054
  [e]: t
1055
1055
  } });
1056
1056
  }
1057
- function z(e) {
1057
+ function B(e) {
1058
1058
  return r.block.visibility?.[e] !== !1;
1059
1059
  }
1060
- function ne(e) {
1060
+ function te(e) {
1061
1061
  let t = {
1062
- desktop: z("desktop"),
1063
- tablet: z("tablet"),
1064
- mobile: z("mobile")
1062
+ desktop: B("desktop"),
1063
+ tablet: B("tablet"),
1064
+ mobile: B("mobile")
1065
1065
  };
1066
1066
  t[e] = !t[e], o("update", { visibility: t });
1067
1067
  }
1068
1068
  return (t, r) => (a(), g("div", { class: C(["tpl:flex tpl:flex-col", e.isFirstSection ? "" : "tpl:mt-4"]) }, [
1069
- j(kr, {
1069
+ j(Pr, {
1070
1070
  title: v(f).blockSettings.spacing,
1071
1071
  open: x.has("spacing"),
1072
1072
  "no-border": e.isFirstSection,
1073
1073
  onToggle: r[2] ||= (e) => N("spacing")
1074
1074
  }, {
1075
- default: l(() => [j(Dr, {
1075
+ default: l(() => [j(Mr, {
1076
1076
  label: v(f).blockSettings.padding,
1077
1077
  "model-value": e.block.styles.padding,
1078
1078
  "onUpdate:modelValue": r[0] ||= (e) => R("padding", e)
1079
- }, null, 8, ["label", "model-value"]), w("div", Ar, [j(Dr, {
1079
+ }, null, 8, ["label", "model-value"]), w("div", Fr, [j(Mr, {
1080
1080
  label: v(f).blockSettings.margin,
1081
1081
  "model-value": e.block.styles.margin,
1082
1082
  "onUpdate:modelValue": r[1] ||= (e) => R("margin", e)
@@ -1087,33 +1087,33 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1087
1087
  "open",
1088
1088
  "no-border"
1089
1089
  ]),
1090
- j(kr, {
1090
+ j(Pr, {
1091
1091
  title: v(f).blockSettings.background,
1092
1092
  open: x.has("bg"),
1093
1093
  onToggle: r[4] ||= (e) => N("bg")
1094
1094
  }, {
1095
- default: l(() => [w("label", { class: C(v(G)) }, m(v(f).blockSettings.color), 3), j(J, {
1095
+ default: l(() => [w("label", { class: C(v(W)) }, m(v(f).blockSettings.color), 3), j(q, {
1096
1096
  size: "large",
1097
1097
  "model-value": e.block.styles.backgroundColor || v("#ffffff"),
1098
1098
  "onUpdate:modelValue": r[3] ||= (e) => R("backgroundColor", e)
1099
1099
  }, null, 8, ["model-value"])]),
1100
1100
  _: 1
1101
1101
  }, 8, ["title", "open"]),
1102
- j(kr, {
1102
+ j(Pr, {
1103
1103
  title: v(f).blockSettings.display,
1104
1104
  open: x.has("display"),
1105
1105
  onToggle: r[5] ||= (e) => N("display")
1106
1106
  }, {
1107
- default: l(() => [w("div", jr, [(a(), g(O, null, s(A, (e) => w("label", {
1107
+ default: l(() => [w("div", Ir, [(a(), g(O, null, s(A, (e) => w("label", {
1108
1108
  key: e.key,
1109
1109
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-xs tpl:text-[var(--tpl-text)]"
1110
1110
  }, [
1111
1111
  w("input", {
1112
1112
  type: "checkbox",
1113
1113
  class: "tpl:accent-[var(--tpl-primary)]",
1114
- checked: z(e.key),
1115
- onChange: (t) => ne(e.key)
1116
- }, null, 40, Mr),
1114
+ checked: B(e.key),
1115
+ onChange: (t) => te(e.key)
1116
+ }, null, 40, Lr),
1117
1117
  (a(), b(i(e.icon), {
1118
1118
  size: 14,
1119
1119
  "stroke-width": 1.5
@@ -1122,33 +1122,33 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1122
1122
  ])), 64))])]),
1123
1123
  _: 1
1124
1124
  }, 8, ["title", "open"]),
1125
- j(kr, {
1125
+ j(Pr, {
1126
1126
  title: v(f).blockSettings.customCss,
1127
1127
  open: x.has("css"),
1128
1128
  onToggle: r[7] ||= (e) => N("css")
1129
1129
  }, {
1130
- default: l(() => [w("label", { class: C(v(G)) }, m(v(f).blockSettings.css), 3), w("textarea", {
1130
+ default: l(() => [w("label", { class: C(v(W)) }, m(v(f).blockSettings.css), 3), w("textarea", {
1131
1131
  value: e.block.customCss || "",
1132
1132
  placeholder: v(f).blockSettings.cssPlaceholder,
1133
1133
  rows: "3",
1134
- class: C(v(St)),
1134
+ class: C(v(Dt)),
1135
1135
  onInput: r[6] ||= (e) => o("update", { customCss: e.target.value })
1136
- }, null, 42, Nr)]),
1136
+ }, null, 42, Rr)]),
1137
1137
  _: 1
1138
1138
  }, 8, ["title", "open"]),
1139
- P.value ? (a(), b(kr, {
1139
+ ee.value ? (a(), b(Pr, {
1140
1140
  key: 0,
1141
1141
  title: v(f).blockSettings.displayCondition,
1142
1142
  open: x.has("condition"),
1143
1143
  onToggle: r[11] ||= (e) => N("condition")
1144
1144
  }, {
1145
- default: l(() => [w("div", Pr, [w("select", {
1145
+ default: l(() => [w("div", zr, [w("select", {
1146
1146
  class: C(["tpl:w-full tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:outline-none tpl:transition-all tpl:duration-150 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]", e.block.displayCondition ? "tpl:border-[var(--tpl-primary)] tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-text)]" : "tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"]),
1147
- value: T.value || F.value ? "__custom__" : e.block.displayCondition?.label ?? "",
1147
+ value: T.value || P.value ? "__custom__" : e.block.displayCondition?.label ?? "",
1148
1148
  onChange: r[8] ||= (e) => {
1149
1149
  let t = e.target.value;
1150
1150
  if (t === "__custom__") {
1151
- ee();
1151
+ F();
1152
1152
  return;
1153
1153
  }
1154
1154
  if (T.value = !1, !t) {
@@ -1159,48 +1159,48 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1159
1159
  n && o("update", { displayCondition: n });
1160
1160
  }
1161
1161
  }, [
1162
- w("option", Ir, m(v(f).blockSettings.noCondition), 1),
1163
- (a(!0), g(O, null, s(I.value, (e, t) => (a(), g(O, { key: t }, [t ? (a(), g("optgroup", {
1162
+ w("option", Vr, m(v(f).blockSettings.noCondition), 1),
1163
+ (a(!0), g(O, null, s(L.value, (e, t) => (a(), g(O, { key: t }, [t ? (a(), g("optgroup", {
1164
1164
  key: 0,
1165
1165
  label: String(t)
1166
1166
  }, [(a(!0), g(O, null, s(e, (e) => (a(), g("option", {
1167
1167
  key: e.label,
1168
1168
  value: e.label
1169
- }, m(e.label), 9, Rr))), 128))], 8, Lr)) : (a(!0), g(O, { key: 1 }, s(e, (e) => (a(), g("option", {
1169
+ }, m(e.label), 9, Ur))), 128))], 8, Hr)) : (a(!0), g(O, { key: 1 }, s(e, (e) => (a(), g("option", {
1170
1170
  key: e.label,
1171
1171
  value: e.label
1172
- }, m(e.label), 9, zr))), 128))], 64))), 128)),
1173
- v(y) ? (a(), g("option", Br, m(v(f).blockSettings.customCondition), 1)) : _("", !0)
1174
- ], 42, Fr), T.value || F.value ? (a(), g("div", Vr, [
1175
- w("div", null, [w("label", Hr, m(v(f).blockSettings.customConditionBefore), 1), n(w("textarea", {
1172
+ }, m(e.label), 9, Wr))), 128))], 64))), 128)),
1173
+ v(y) ? (a(), g("option", Gr, m(v(f).blockSettings.customCondition), 1)) : _("", !0)
1174
+ ], 42, Br), T.value || P.value ? (a(), g("div", Kr, [
1175
+ w("div", null, [w("label", qr, m(v(f).blockSettings.customConditionBefore), 1), n(w("textarea", {
1176
1176
  "onUpdate:modelValue": r[9] ||= (e) => E.value = e,
1177
1177
  rows: "2",
1178
- class: C(v(St))
1178
+ class: C(v(Dt))
1179
1179
  }, null, 2), [[S, E.value]])]),
1180
- w("div", null, [w("label", Ur, m(v(f).blockSettings.customConditionAfter), 1), n(w("textarea", {
1180
+ w("div", null, [w("label", Jr, m(v(f).blockSettings.customConditionAfter), 1), n(w("textarea", {
1181
1181
  "onUpdate:modelValue": r[10] ||= (e) => D.value = e,
1182
1182
  rows: "2",
1183
- class: C(v(St))
1183
+ class: C(v(Dt))
1184
1184
  }, null, 2), [[S, D.value]])]),
1185
- w("div", Wr, [w("button", {
1185
+ w("div", Yr, [w("button", {
1186
1186
  type: "button",
1187
1187
  class: "tpl:cursor-pointer tpl:rounded-md tpl:border-none tpl:bg-[var(--tpl-primary)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-bg)] tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:opacity-50",
1188
1188
  disabled: !E.value.trim(),
1189
- onClick: te
1190
- }, m(v(f).blockSettings.applyCondition), 9, Gr)])
1191
- ])) : e.block.displayCondition && !F.value ? (a(), g(O, { key: 1 }, [e.block.displayCondition.description ? (a(), g("p", Kr, m(e.block.displayCondition.description), 1)) : _("", !0), w("div", qr, [w("pre", Jr, m(e.block.displayCondition.before), 1), e.block.displayCondition.after ? (a(), g("pre", Yr, m(e.block.displayCondition.after), 1)) : _("", !0)])], 64)) : _("", !0)])]),
1189
+ onClick: I
1190
+ }, m(v(f).blockSettings.applyCondition), 9, Xr)])
1191
+ ])) : e.block.displayCondition && !P.value ? (a(), g(O, { key: 1 }, [e.block.displayCondition.description ? (a(), g("p", Zr, m(e.block.displayCondition.description), 1)) : _("", !0), w("div", Qr, [w("pre", $r, m(e.block.displayCondition.before), 1), e.block.displayCondition.after ? (a(), g("pre", ei, m(e.block.displayCondition.after), 1)) : _("", !0)])], 64)) : _("", !0)])]),
1192
1192
  _: 1
1193
1193
  }, 8, ["title", "open"])) : _("", !0)
1194
1194
  ], 2));
1195
1195
  }
1196
- }), Zr = ["title"], Qr = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, $r = {
1196
+ }), ni = ["title"], ri = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ii = {
1197
1197
  key: 1,
1198
1198
  class: "tpl:text-[var(--tpl-danger)]"
1199
- }, ei = [
1199
+ }, ai = [
1200
1200
  "aria-checked",
1201
1201
  "aria-label",
1202
1202
  "disabled"
1203
- ], ti = /* @__PURE__ */ A({
1203
+ ], oi = /* @__PURE__ */ A({
1204
1204
  __name: "BooleanField",
1205
1205
  props: {
1206
1206
  field: {},
@@ -1209,18 +1209,18 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1209
1209
  },
1210
1210
  emits: ["update:modelValue"],
1211
1211
  setup(e, { emit: t }) {
1212
- let n = t, { t: r } = L();
1212
+ let n = t, { t: r } = z();
1213
1213
  return (t, i) => (a(), g("div", {
1214
1214
  class: "tpl:mb-3.5",
1215
1215
  title: e.readOnly ? v(r).customBlocks.dataSource.readOnlyTooltip : void 0
1216
- }, [w("label", { class: C(["tpl:flex tpl:items-center tpl:justify-between tpl:gap-2", e.readOnly ? "tpl:cursor-not-allowed" : "tpl:cursor-pointer"]) }, [w("span", Qr, [
1216
+ }, [w("label", { class: C(["tpl:flex tpl:items-center tpl:justify-between tpl:gap-2", e.readOnly ? "tpl:cursor-not-allowed" : "tpl:cursor-pointer"]) }, [w("span", ri, [
1217
1217
  k(m(e.field.label) + " ", 1),
1218
- e.readOnly ? (a(), b(v($e), {
1218
+ e.readOnly ? (a(), b(v(rt), {
1219
1219
  key: 0,
1220
1220
  size: 12,
1221
1221
  class: "tpl:inline tpl:text-[var(--tpl-text-dim)]"
1222
1222
  })) : _("", !0),
1223
- e.field.required ? (a(), g("span", $r, " * ")) : _("", !0)
1223
+ e.field.required ? (a(), g("span", ii, " * ")) : _("", !0)
1224
1224
  ]), w("button", {
1225
1225
  type: "button",
1226
1226
  role: "switch",
@@ -1233,12 +1233,12 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1233
1233
  ]),
1234
1234
  disabled: e.readOnly,
1235
1235
  onClick: i[0] ||= (t) => !e.readOnly && n("update:modelValue", !e.modelValue)
1236
- }, [w("span", { class: C(["tpl:pointer-events-none tpl:inline-block tpl:size-4 tpl:rounded-full tpl:bg-[var(--tpl-bg)] tpl:shadow tpl:transition-transform tpl:duration-200", e.modelValue ? "tpl:translate-x-4" : "tpl:translate-x-0"]) }, null, 2)], 10, ei)], 2)], 8, Zr));
1236
+ }, [w("span", { class: C(["tpl:pointer-events-none tpl:inline-block tpl:size-4 tpl:rounded-full tpl:bg-[var(--tpl-bg)] tpl:shadow tpl:transition-transform tpl:duration-200", e.modelValue ? "tpl:translate-x-4" : "tpl:translate-x-0"]) }, null, 2)], 10, ai)], 2)], 8, ni));
1237
1237
  }
1238
- }), ni = { class: "tpl:mb-3.5" }, ri = {
1238
+ }), si = { class: "tpl:mb-3.5" }, ci = {
1239
1239
  key: 1,
1240
1240
  class: "tpl:text-[var(--tpl-danger)]"
1241
- }, $ = /* @__PURE__ */ A({
1241
+ }, Q = /* @__PURE__ */ A({
1242
1242
  __name: "FieldWrapper",
1243
1243
  props: {
1244
1244
  label: {},
@@ -1246,17 +1246,17 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1246
1246
  readOnly: { type: Boolean }
1247
1247
  },
1248
1248
  setup(t) {
1249
- return (n, r) => (a(), g("div", ni, [w("label", { class: C(v(G)) }, [
1249
+ return (n, r) => (a(), g("div", si, [w("label", { class: C(v(W)) }, [
1250
1250
  k(m(t.label) + " ", 1),
1251
- t.readOnly ? (a(), b(v($e), {
1251
+ t.readOnly ? (a(), b(v(rt), {
1252
1252
  key: 0,
1253
1253
  size: 12,
1254
1254
  class: "tpl:inline tpl:text-[var(--tpl-text-dim)]"
1255
1255
  })) : _("", !0),
1256
- t.required ? (a(), g("span", ri, "*")) : _("", !0)
1256
+ t.required ? (a(), g("span", ci, "*")) : _("", !0)
1257
1257
  ], 2), e(n.$slots, "default")]));
1258
1258
  }
1259
- }), ii = /* @__PURE__ */ A({
1259
+ }), li = /* @__PURE__ */ A({
1260
1260
  __name: "ColorField",
1261
1261
  props: {
1262
1262
  field: {},
@@ -1265,13 +1265,13 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1265
1265
  },
1266
1266
  emits: ["update:modelValue"],
1267
1267
  setup(e, { emit: t }) {
1268
- let n = t, { t: r } = L();
1269
- return (t, i) => (a(), b($, {
1268
+ let n = t, { t: r } = z();
1269
+ return (t, i) => (a(), b(Q, {
1270
1270
  label: e.field.label,
1271
1271
  required: e.field.required,
1272
1272
  "read-only": e.readOnly
1273
1273
  }, {
1274
- default: l(() => [j(J, {
1274
+ default: l(() => [j(q, {
1275
1275
  "model-value": e.modelValue || v("#000000"),
1276
1276
  placeholder: e.field.placeholder || v("#000000"),
1277
1277
  disabled: e.readOnly,
@@ -1290,11 +1290,11 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1290
1290
  "read-only"
1291
1291
  ]));
1292
1292
  }
1293
- }), ai = [
1293
+ }), ui = [
1294
1294
  "value",
1295
1295
  "placeholder",
1296
1296
  "title"
1297
- ], oi = ["value", "placeholder"], si = /* @__PURE__ */ A({
1297
+ ], di = ["value", "placeholder"], fi = /* @__PURE__ */ A({
1298
1298
  __name: "ImageField",
1299
1299
  props: {
1300
1300
  field: {},
@@ -1303,12 +1303,12 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1303
1303
  },
1304
1304
  emits: ["update:modelValue"],
1305
1305
  setup(e, { emit: t }) {
1306
- let n = t, { t: r } = L(), i = c(Ce, null), o = R(), s = h(() => !!i);
1306
+ let n = t, { t: r } = z(), i = c(Ee, null), o = B(), s = h(() => !!i);
1307
1307
  async function u() {
1308
1308
  let e = await i?.({ accept: ["images"] });
1309
1309
  o.alive && e && n("update:modelValue", e.url);
1310
1310
  }
1311
- return (t, i) => (a(), b($, {
1311
+ return (t, i) => (a(), b(Q, {
1312
1312
  label: e.field.label,
1313
1313
  required: e.field.required,
1314
1314
  "read-only": e.readOnly
@@ -1316,23 +1316,23 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1316
1316
  default: l(() => [e.readOnly ? (a(), g("input", {
1317
1317
  key: 0,
1318
1318
  type: "url",
1319
- class: C([v(W), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1319
+ class: C([v(U), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1320
1320
  value: e.modelValue,
1321
1321
  placeholder: e.field.placeholder || "https://...",
1322
1322
  disabled: "",
1323
1323
  title: v(r).customBlocks.dataSource.readOnlyTooltip
1324
- }, null, 10, ai)) : (a(), g("input", {
1324
+ }, null, 10, ui)) : (a(), g("input", {
1325
1325
  key: 1,
1326
1326
  type: "url",
1327
- class: C(v(W)),
1327
+ class: C(v(U)),
1328
1328
  value: e.modelValue,
1329
1329
  placeholder: e.field.placeholder || "https://...",
1330
1330
  onInput: i[0] ||= (e) => n("update:modelValue", e.target.value)
1331
- }, null, 42, oi)), s.value && !e.readOnly ? (a(), g("button", {
1331
+ }, null, 42, di)), s.value && !e.readOnly ? (a(), g("button", {
1332
1332
  key: 2,
1333
1333
  class: "tpl:mt-2 tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-bg)]",
1334
1334
  onClick: i[1] ||= (e) => u()
1335
- }, [j(v(De), {
1335
+ }, [j(v(Ae), {
1336
1336
  size: 14,
1337
1337
  "stroke-width": 1.5
1338
1338
  }), k(" " + m(v(r).image.browseMedia), 1)])) : _("", !0)]),
@@ -1343,7 +1343,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1343
1343
  "read-only"
1344
1344
  ]));
1345
1345
  }
1346
- }), ci = [
1346
+ }), pi = [
1347
1347
  "value",
1348
1348
  "placeholder",
1349
1349
  "min",
@@ -1351,7 +1351,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1351
1351
  "step",
1352
1352
  "disabled",
1353
1353
  "title"
1354
- ], li = /* @__PURE__ */ A({
1354
+ ], mi = /* @__PURE__ */ A({
1355
1355
  __name: "NumberField",
1356
1356
  props: {
1357
1357
  field: {},
@@ -1360,15 +1360,15 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1360
1360
  },
1361
1361
  emits: ["update:modelValue"],
1362
1362
  setup(e, { emit: t }) {
1363
- let n = t, { t: r } = L();
1364
- return (t, i) => (a(), b($, {
1363
+ let n = t, { t: r } = z();
1364
+ return (t, i) => (a(), b(Q, {
1365
1365
  label: e.field.label,
1366
1366
  required: e.field.required,
1367
1367
  "read-only": e.readOnly
1368
1368
  }, {
1369
1369
  default: l(() => [w("input", {
1370
1370
  type: "number",
1371
- class: C([v(W), e.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1371
+ class: C([v(U), e.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1372
1372
  value: e.modelValue,
1373
1373
  placeholder: e.field.placeholder,
1374
1374
  min: e.field.min,
@@ -1377,7 +1377,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1377
1377
  disabled: e.readOnly,
1378
1378
  title: e.readOnly ? v(r).customBlocks.dataSource.readOnlyTooltip : void 0,
1379
1379
  onInput: i[0] ||= (t) => !e.readOnly && n("update:modelValue", Number(t.target.value))
1380
- }, null, 42, ci)]),
1380
+ }, null, 42, pi)]),
1381
1381
  _: 1
1382
1382
  }, 8, [
1383
1383
  "label",
@@ -1385,10 +1385,10 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1385
1385
  "read-only"
1386
1386
  ]));
1387
1387
  }
1388
- }), ui = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, di = { class: "tpl:mb-2 tpl:flex tpl:items-center tpl:justify-between" }, fi = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-dim)]" }, pi = ["title", "onClick"], mi = {
1388
+ }), hi = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, gi = { class: "tpl:mb-2 tpl:flex tpl:items-center tpl:justify-between" }, _i = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-dim)]" }, vi = ["title", "onClick"], yi = {
1389
1389
  key: 1,
1390
1390
  class: "tpl:m-0 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
1391
- }, hi = /* @__PURE__ */ A({
1391
+ }, bi = /* @__PURE__ */ A({
1392
1392
  __name: "RepeatableField",
1393
1393
  props: {
1394
1394
  field: {},
@@ -1397,7 +1397,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1397
1397
  },
1398
1398
  emits: ["update:modelValue"],
1399
1399
  setup(e, { emit: t }) {
1400
- let n = e, r = t, { t: o } = L(), c = h(() => n.modelValue || []), u = h(() => !n.field.maxItems || c.value.length < n.field.maxItems), d = h(() => !n.field.minItems || c.value.length > n.field.minItems);
1400
+ let n = e, r = t, { t: o } = z(), c = h(() => n.modelValue || []), u = h(() => !n.field.maxItems || c.value.length < n.field.maxItems), d = h(() => !n.field.minItems || c.value.length > n.field.minItems);
1401
1401
  function f() {
1402
1402
  if (!u.value || n.readOnly) return;
1403
1403
  let e = {};
@@ -1415,25 +1415,25 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1415
1415
  [t]: n
1416
1416
  } : r));
1417
1417
  }
1418
- return (t, n) => (a(), b($, {
1418
+ return (t, n) => (a(), b(Q, {
1419
1419
  label: e.field.label,
1420
1420
  required: e.field.required,
1421
1421
  "read-only": e.readOnly
1422
1422
  }, {
1423
- default: l(() => [w("div", ui, [
1423
+ default: l(() => [w("div", hi, [
1424
1424
  (a(!0), g(O, null, s(c.value, (t, n) => (a(), g("div", {
1425
1425
  key: `${e.field.key}-${n}`,
1426
1426
  class: "tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:p-3"
1427
- }, [w("div", di, [w("span", fi, " #" + m(n + 1), 1), d.value && !e.readOnly ? (a(), g("button", {
1427
+ }, [w("div", gi, [w("span", _i, " #" + m(n + 1), 1), d.value && !e.readOnly ? (a(), g("button", {
1428
1428
  key: 0,
1429
1429
  type: "button",
1430
1430
  class: "tpl:flex tpl:size-6 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:border-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:text-[var(--tpl-danger)]",
1431
1431
  title: v(o).customBlocks.fields.removeItem,
1432
1432
  onClick: (e) => p(n)
1433
- }, [j(v(Oe), {
1433
+ }, [j(v(je), {
1434
1434
  size: 12,
1435
1435
  "stroke-width": 2
1436
- })], 8, pi)) : _("", !0)]), (a(!0), g(O, null, s(e.field.fields, (r) => (a(), b(i(v(wi)(r.type)), {
1436
+ })], 8, vi)) : _("", !0)]), (a(!0), g(O, null, s(e.field.fields, (r) => (a(), b(i(v(ki)(r.type)), {
1437
1437
  key: r.key,
1438
1438
  field: r,
1439
1439
  "model-value": t[r.key],
@@ -1448,13 +1448,13 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1448
1448
  u.value && !e.readOnly ? (a(), g("button", {
1449
1449
  key: 0,
1450
1450
  type: "button",
1451
- class: C(v(xt)),
1451
+ class: C(v(Et)),
1452
1452
  onClick: f
1453
1453
  }, [j(v(H), {
1454
1454
  size: 14,
1455
1455
  "stroke-width": 2
1456
1456
  }), k(" " + m(v(o).customBlocks.fields.addItem), 1)], 2)) : _("", !0),
1457
- !u.value && !e.readOnly ? (a(), g("p", mi, m(v(o).customBlocks.fields.maxItemsReached), 1)) : _("", !0)
1457
+ !u.value && !e.readOnly ? (a(), g("p", yi, m(v(o).customBlocks.fields.maxItemsReached), 1)) : _("", !0)
1458
1458
  ])]),
1459
1459
  _: 1
1460
1460
  }, 8, [
@@ -1463,11 +1463,11 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1463
1463
  "read-only"
1464
1464
  ]));
1465
1465
  }
1466
- }), gi = [
1466
+ }), xi = [
1467
1467
  "value",
1468
1468
  "disabled",
1469
1469
  "title"
1470
- ], _i = ["value"], vi = /* @__PURE__ */ A({
1470
+ ], Si = ["value"], Ci = /* @__PURE__ */ A({
1471
1471
  __name: "SelectField",
1472
1472
  props: {
1473
1473
  field: {},
@@ -1476,14 +1476,14 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1476
1476
  },
1477
1477
  emits: ["update:modelValue"],
1478
1478
  setup(e, { emit: t }) {
1479
- let n = t, { t: r } = L();
1480
- return (t, i) => (a(), b($, {
1479
+ let n = t, { t: r } = z();
1480
+ return (t, i) => (a(), b(Q, {
1481
1481
  label: e.field.label,
1482
1482
  required: e.field.required,
1483
1483
  "read-only": e.readOnly
1484
1484
  }, {
1485
1485
  default: l(() => [w("select", {
1486
- class: C([v(W), e.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1486
+ class: C([v(U), e.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1487
1487
  value: e.modelValue,
1488
1488
  disabled: e.readOnly,
1489
1489
  title: e.readOnly ? v(r).customBlocks.dataSource.readOnlyTooltip : void 0,
@@ -1491,7 +1491,7 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1491
1491
  }, [(a(!0), g(O, null, s(e.field.options, (e) => (a(), g("option", {
1492
1492
  key: e.value,
1493
1493
  value: e.value
1494
- }, m(e.label), 9, _i))), 128))], 42, gi)]),
1494
+ }, m(e.label), 9, Si))), 128))], 42, xi)]),
1495
1495
  _: 1
1496
1496
  }, 8, [
1497
1497
  "label",
@@ -1499,11 +1499,11 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1499
1499
  "read-only"
1500
1500
  ]));
1501
1501
  }
1502
- }), yi = [
1502
+ }), wi = [
1503
1503
  "value",
1504
1504
  "placeholder",
1505
1505
  "title"
1506
- ], bi = /* @__PURE__ */ A({
1506
+ ], Ti = /* @__PURE__ */ A({
1507
1507
  __name: "TextField",
1508
1508
  props: {
1509
1509
  field: {},
@@ -1512,8 +1512,8 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1512
1512
  },
1513
1513
  emits: ["update:modelValue"],
1514
1514
  setup(e, { emit: t }) {
1515
- let n = t, { t: r } = L();
1516
- return (t, i) => (a(), b($, {
1515
+ let n = t, { t: r } = z();
1516
+ return (t, i) => (a(), b(Q, {
1517
1517
  label: e.field.label,
1518
1518
  required: e.field.required,
1519
1519
  "read-only": e.readOnly
@@ -1521,12 +1521,12 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1521
1521
  default: l(() => [e.readOnly ? (a(), g("input", {
1522
1522
  key: 0,
1523
1523
  type: "text",
1524
- class: C([v(W), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1524
+ class: C([v(U), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1525
1525
  value: e.modelValue,
1526
1526
  placeholder: e.field.placeholder,
1527
1527
  disabled: "",
1528
1528
  title: v(r).customBlocks.dataSource.readOnlyTooltip
1529
- }, null, 10, yi)) : (a(), b(Z, {
1529
+ }, null, 10, wi)) : (a(), b(X, {
1530
1530
  key: 1,
1531
1531
  "model-value": e.modelValue,
1532
1532
  placeholder: e.field.placeholder,
@@ -1539,12 +1539,12 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1539
1539
  "read-only"
1540
1540
  ]));
1541
1541
  }
1542
- }), xi = [
1542
+ }), Ei = [
1543
1543
  "value",
1544
1544
  "placeholder",
1545
1545
  "title"
1546
- ], Si = "tpl:w-full tpl:resize-y tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:outline-none tpl:opacity-60 tpl:cursor-not-allowed", Ci = {
1547
- text: bi,
1546
+ ], Di = "tpl:w-full tpl:resize-y tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:outline-none tpl:opacity-60 tpl:cursor-not-allowed", Oi = {
1547
+ text: Ti,
1548
1548
  textarea: /* @__PURE__ */ A({
1549
1549
  __name: "TextareaField",
1550
1550
  props: {
@@ -1554,8 +1554,8 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1554
1554
  },
1555
1555
  emits: ["update:modelValue"],
1556
1556
  setup(e, { emit: t }) {
1557
- let n = t, { t: r } = L();
1558
- return (t, i) => (a(), b($, {
1557
+ let n = t, { t: r } = z();
1558
+ return (t, i) => (a(), b(Q, {
1559
1559
  label: e.field.label,
1560
1560
  required: e.field.required,
1561
1561
  "read-only": e.readOnly
@@ -1567,8 +1567,8 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1567
1567
  rows: "3",
1568
1568
  disabled: "",
1569
1569
  title: v(r).customBlocks.dataSource.readOnlyTooltip,
1570
- class: C(Si)
1571
- }, null, 8, xi)) : (a(), b(cn, {
1570
+ class: C(Di)
1571
+ }, null, 8, Ei)) : (a(), b(pn, {
1572
1572
  key: 1,
1573
1573
  "model-value": e.modelValue,
1574
1574
  placeholder: e.field.placeholder,
@@ -1582,42 +1582,42 @@ var qt = ["aria-label", "onKeydown"], Jt = ["data-tooltip"], Yt = ["data-tooltip
1582
1582
  ]));
1583
1583
  }
1584
1584
  }),
1585
- image: si,
1586
- color: ii,
1587
- number: li,
1588
- select: vi,
1589
- boolean: ti,
1590
- repeatable: hi
1585
+ image: fi,
1586
+ color: li,
1587
+ number: mi,
1588
+ select: Ci,
1589
+ boolean: oi,
1590
+ repeatable: bi
1591
1591
  };
1592
- function wi(e) {
1593
- return Ci[e] ?? bi;
1592
+ function ki(e) {
1593
+ return Oi[e] ?? Ti;
1594
1594
  }
1595
1595
  //#endregion
1596
1596
  //#region src/components/toolbar/CustomBlockToolbar.vue?vue&type=script&setup=true&lang.ts
1597
- var Ti = {
1597
+ var Ai = {
1598
1598
  key: 0,
1599
1599
  class: "tpl:p-4"
1600
- }, Ei = { class: "tpl:m-0 tpl:text-center tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Di = { key: 1 }, Oi = {
1600
+ }, ji = { class: "tpl:m-0 tpl:text-center tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Mi = { key: 1 }, Ni = {
1601
1601
  key: 0,
1602
1602
  class: "tpl:m-0 tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
1603
- }, ki = {
1603
+ }, Pi = {
1604
1604
  key: 1,
1605
1605
  class: "tpl:mb-4"
1606
- }, Ai = {
1606
+ }, Fi = {
1607
1607
  key: 1,
1608
1608
  class: "tpl:flex tpl:h-[32px] tpl:items-center"
1609
- }, ji = {
1609
+ }, Ii = {
1610
1610
  key: 0,
1611
1611
  class: "tpl:w-full tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
1612
- }, Mi = {
1612
+ }, Li = {
1613
1613
  key: 2,
1614
1614
  class: "tpl:m-0 tpl:mt-2 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]"
1615
- }, Ni = /* @__PURE__ */ A({
1615
+ }, Ri = /* @__PURE__ */ A({
1616
1616
  __name: "CustomBlockToolbar",
1617
1617
  props: { block: {} },
1618
1618
  emits: ["updateFieldValues", "updateDataSourceFetched"],
1619
1619
  setup(e, { emit: t }) {
1620
- let n = e, r = t, { t: o } = L(), l = c(z, []), u = h(() => l.find((e) => e.type === n.block.customType)), { isFetching: d, fetchError: f, fetch: p, hasDataSource: y, needsFetch: x } = je({
1620
+ let n = e, r = t, { t: o } = z(), l = c(te, []), u = h(() => l.find((e) => e.type === n.block.customType)), { isFetching: d, fetchError: f, fetch: p, hasDataSource: y, needsFetch: x } = Re({
1621
1621
  definition: u,
1622
1622
  block: h(() => n.block),
1623
1623
  onUpdate: (e, t) => {
@@ -1633,23 +1633,23 @@ var Ti = {
1633
1633
  [e]: t
1634
1634
  });
1635
1635
  }
1636
- return (t, n) => u.value ? (a(), g("div", Di, [
1637
- u.value.description ? (a(), g("p", Oi, m(u.value.description), 1)) : _("", !0),
1638
- v(y) ? (a(), g("div", ki, [v(x) && !v(d) ? (a(), g("button", {
1636
+ return (t, n) => u.value ? (a(), g("div", Mi, [
1637
+ u.value.description ? (a(), g("p", Ni, m(u.value.description), 1)) : _("", !0),
1638
+ v(y) ? (a(), g("div", Pi, [v(x) && !v(d) ? (a(), g("button", {
1639
1639
  key: 0,
1640
1640
  type: "button",
1641
1641
  class: "tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded-md tpl:px-3 tpl:py-2.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-bg)] tpl:transition-all tpl:duration-150 tpl:bg-[var(--tpl-primary)]",
1642
1642
  onClick: n[0] ||= (...e) => v(p) && v(p)(...e)
1643
- }, m(u.value?.dataSource?.label || v(o).customBlocks.dataSource.fetchButton), 1)) : (a(), g("div", Ai, [v(d) ? (a(), g("div", ji, m(v(o).customBlocks.dataSource.fetching), 1)) : (a(), g("button", {
1643
+ }, m(u.value?.dataSource?.label || v(o).customBlocks.dataSource.fetchButton), 1)) : (a(), g("div", Fi, [v(d) ? (a(), g("div", Ii, m(v(o).customBlocks.dataSource.fetching), 1)) : (a(), g("button", {
1644
1644
  key: 1,
1645
1645
  type: "button",
1646
1646
  class: "tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:border-[var(--tpl-primary)] tpl:hover:text-[var(--tpl-primary)]",
1647
1647
  onClick: n[1] ||= (...e) => v(p) && v(p)(...e)
1648
- }, [j(v(Re), { size: 12 }), k(" " + m(v(o).customBlocks.dataSource.changeButton), 1)]))])), v(f) ? (a(), g("p", Mi, [j(v(te), {
1648
+ }, [j(v(ze), { size: 12 }), k(" " + m(v(o).customBlocks.dataSource.changeButton), 1)]))])), v(f) ? (a(), g("p", Li, [j(v(I), {
1649
1649
  size: 14,
1650
1650
  class: "tpl:shrink-0"
1651
1651
  }), k(" " + m(v(o).customBlocks.dataSource.fetchError), 1)])) : _("", !0)])) : _("", !0),
1652
- (a(!0), g(O, null, s(u.value.fields, (t) => (a(), b(i(v(wi)(t.type)), {
1652
+ (a(!0), g(O, null, s(u.value.fields, (t) => (a(), b(i(v(ki)(t.type)), {
1653
1653
  key: t.key,
1654
1654
  field: t,
1655
1655
  "model-value": e.block.fieldValues[t.key],
@@ -1661,19 +1661,19 @@ var Ti = {
1661
1661
  "read-only",
1662
1662
  "onUpdate:modelValue"
1663
1663
  ]))), 128))
1664
- ])) : (a(), g("div", Ti, [w("p", Ei, m(v(o).customBlocks.toolbar.noDefinition), 1)]));
1664
+ ])) : (a(), g("div", Ai, [w("p", ji, m(v(o).customBlocks.toolbar.noDefinition), 1)]));
1665
1665
  }
1666
- }), Pi = { class: "tpl:mb-3.5" }, Fi = { class: "tpl:mb-3.5" }, Ii = { class: "tpl:mb-3.5" }, Li = { class: "tpl:flex tpl:items-stretch" }, Ri = ["value"], zi = /* @__PURE__ */ A({
1666
+ }), zi = { class: "tpl:mb-3.5" }, Bi = { class: "tpl:mb-3.5" }, Vi = { class: "tpl:mb-3.5" }, Hi = { class: "tpl:flex tpl:items-stretch" }, Ui = ["value"], Wi = /* @__PURE__ */ A({
1667
1667
  __name: "DividerToolbar",
1668
1668
  props: { block: {} },
1669
1669
  emits: ["update"],
1670
1670
  setup(e, { emit: t }) {
1671
- let n = t, { t: r } = L();
1671
+ let n = t, { t: r } = z();
1672
1672
  function i(e, t) {
1673
1673
  n("update", { [e]: t });
1674
1674
  }
1675
1675
  return (t, n) => (a(), g(O, null, [
1676
- w("div", Pi, [w("label", { class: C(v(G)) }, m(v(r).divider.style), 3), j(X, {
1676
+ w("div", zi, [w("label", { class: C(v(W)) }, m(v(r).divider.style), 3), j(Y, {
1677
1677
  options: [
1678
1678
  {
1679
1679
  value: "solid",
@@ -1691,53 +1691,53 @@ var Ti = {
1691
1691
  "model-value": e.block.lineStyle,
1692
1692
  "onUpdate:modelValue": n[0] ||= (e) => i("lineStyle", e)
1693
1693
  }, null, 8, ["options", "model-value"])]),
1694
- w("div", Fi, [w("label", { class: C(v(G)) }, m(v(r).divider.color), 3), j(J, {
1694
+ w("div", Bi, [w("label", { class: C(v(W)) }, m(v(r).divider.color), 3), j(q, {
1695
1695
  "model-value": e.block.color,
1696
1696
  "onUpdate:modelValue": n[1] ||= (e) => i("color", e)
1697
1697
  }, null, 8, ["model-value"])]),
1698
- w("div", Ii, [w("label", { class: C(v(G)) }, m(v(r).divider.thickness), 3), w("div", Li, [w("input", {
1698
+ w("div", Vi, [w("label", { class: C(v(W)) }, m(v(r).divider.thickness), 3), w("div", Hi, [w("input", {
1699
1699
  type: "number",
1700
- class: C(v(q)),
1700
+ class: C(v(K)),
1701
1701
  value: e.block.thickness,
1702
1702
  min: "1",
1703
1703
  max: "10",
1704
1704
  onInput: n[2] ||= (e) => i("thickness", Number(e.target.value))
1705
- }, null, 42, Ri), w("span", { class: C(v(K)) }, "px", 2)])])
1705
+ }, null, 42, Ui), w("span", { class: C(v(G)) }, "px", 2)])])
1706
1706
  ], 64));
1707
1707
  }
1708
- }), Bi = { class: "tpl:mb-3.5" }, Vi = ["value"], Hi = { class: "tpl:mt-1.5 tpl:flex tpl:items-start tpl:gap-1.5 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Ui = /* @__PURE__ */ A({
1708
+ }), Gi = { class: "tpl:mb-3.5" }, Ki = ["value"], qi = { class: "tpl:mt-1.5 tpl:flex tpl:items-start tpl:gap-1.5 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Ji = /* @__PURE__ */ A({
1709
1709
  __name: "HtmlToolbar",
1710
1710
  props: { block: {} },
1711
1711
  emits: ["update"],
1712
1712
  setup(e, { emit: t }) {
1713
- let n = t, { t: r } = L();
1714
- return (t, i) => (a(), g("div", Bi, [
1715
- w("label", { class: C(v(G)) }, m(v(r).html.content), 3),
1713
+ let n = t, { t: r } = z();
1714
+ return (t, i) => (a(), g("div", Gi, [
1715
+ w("label", { class: C(v(W)) }, m(v(r).html.content), 3),
1716
1716
  w("textarea", {
1717
1717
  value: e.block.content,
1718
1718
  placeholder: "<div>...</div>",
1719
1719
  rows: "10",
1720
- class: C(v(St)),
1720
+ class: C(v(Dt)),
1721
1721
  onInput: i[0] ||= (e) => n("update", { content: e.target.value })
1722
- }, null, 42, Vi),
1723
- w("p", Hi, [j(v(Je), {
1722
+ }, null, 42, Ki),
1723
+ w("p", qi, [j(v(Ze), {
1724
1724
  size: 12,
1725
1725
  class: "tpl:mt-0.5 tpl:shrink-0"
1726
1726
  }), k(" " + m(v(r).html.sanitizationHint), 1)])
1727
1727
  ]));
1728
1728
  }
1729
- }), Wi = { class: "tpl:mb-3.5" }, Gi = {
1729
+ }), Yi = { class: "tpl:mb-3.5" }, Xi = {
1730
1730
  key: 0,
1731
1731
  class: "tpl:mb-3.5"
1732
- }, Ki = ["value", "placeholder"], qi = { class: "tpl:mb-3.5" }, Ji = { class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]" }, Yi = ["checked"], Xi = { class: "tpl:block tpl:text-[var(--tpl-text-dim)]" }, Zi = { class: "tpl:mb-3.5" }, Qi = ["value"], $i = { value: "full" }, ea = { class: "tpl:mb-3.5" }, ta = { class: "tpl:mb-3.5" }, na = {
1732
+ }, Zi = ["value", "placeholder"], Qi = { class: "tpl:mb-3.5" }, $i = { class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]" }, ea = ["checked"], ta = { class: "tpl:block tpl:text-[var(--tpl-text-dim)]" }, na = { class: "tpl:mb-3.5" }, ra = ["value"], ia = { value: "full" }, aa = { class: "tpl:mb-3.5" }, oa = { class: "tpl:mb-3.5" }, sa = {
1733
1733
  key: 0,
1734
1734
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
1735
- }, ra = ["checked"], ia = /* @__PURE__ */ A({
1735
+ }, ca = ["checked"], la = /* @__PURE__ */ A({
1736
1736
  __name: "ImageToolbar",
1737
1737
  props: { block: {} },
1738
1738
  emits: ["update"],
1739
1739
  setup(e, { emit: t }) {
1740
- let n = t, { t: r } = L(), i = c(Ce, null), o = c(we, Le.liquid), s = R(), l = h(() => !!i), u = d(!1), f = d(!1), { start: p } = ke(() => {
1740
+ let n = t, { t: r } = z(), i = c(Ee, null), o = c(we, Pe.liquid), s = B(), l = h(() => !!i), u = d(!1), f = d(!1), { start: p } = Be(() => {
1741
1741
  u.value = !1;
1742
1742
  }, 1e3, { immediate: !1 });
1743
1743
  function y(e, t) {
@@ -1748,9 +1748,9 @@ var Ti = {
1748
1748
  s.alive && e && (y("src", e.url), e.alt && (y("alt", e.alt), f.value = !0), u.value = !0, p());
1749
1749
  }
1750
1750
  return (t, n) => (a(), g(O, null, [
1751
- w("div", Wi, [
1752
- w("label", { class: C(v(G)) }, m(v(r).image.imageUrl), 3),
1753
- j(Z, {
1751
+ w("div", Yi, [
1752
+ w("label", { class: C(v(W)) }, m(v(r).image.imageUrl), 3),
1753
+ j(X, {
1754
1754
  "model-value": e.block.src,
1755
1755
  type: "url",
1756
1756
  placeholder: v(r).image.imageUrlPlaceholder,
@@ -1770,21 +1770,21 @@ var Ti = {
1770
1770
  "background-color": "var(--tpl-bg)"
1771
1771
  },
1772
1772
  onClick: b
1773
- }, [j(v(De), {
1773
+ }, [j(v(Ae), {
1774
1774
  size: 14,
1775
1775
  "stroke-width": 1.5
1776
1776
  }), k(" " + m(v(r).image.browseMedia), 1)])) : _("", !0)
1777
1777
  ]),
1778
- v(Ne)(e.block.src, v(o)) ? (a(), g("div", Gi, [w("label", { class: C(v(G)) }, [k(m(v(r).image.placeholderUrl) + " ", 1), n[8] ||= w("span", { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, m("(optional)"), -1)], 2), w("input", {
1778
+ v(De)(e.block.src, v(o)) ? (a(), g("div", Xi, [w("label", { class: C(v(W)) }, [k(m(v(r).image.placeholderUrl) + " ", 1), n[8] ||= w("span", { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, m("(optional)"), -1)], 2), w("input", {
1779
1779
  type: "url",
1780
- class: C(v(W)),
1780
+ class: C(v(U)),
1781
1781
  value: e.block.placeholderUrl || "",
1782
1782
  placeholder: v(r).image.placeholderUrlPlaceholder,
1783
1783
  onInput: n[1] ||= (e) => y("placeholderUrl", e.target.value)
1784
- }, null, 42, Ki)])) : _("", !0),
1785
- w("div", qi, [
1786
- w("label", { class: C(v(G)) }, m(v(r).image.altText), 3),
1787
- j(Z, {
1784
+ }, null, 42, Zi)])) : _("", !0),
1785
+ w("div", Qi, [
1786
+ w("label", { class: C(v(W)) }, m(v(r).image.altText), 3),
1787
+ j(X, {
1788
1788
  "model-value": e.block.alt,
1789
1789
  type: "text",
1790
1790
  placeholder: v(r).image.altTextPlaceholder,
@@ -1797,24 +1797,24 @@ var Ti = {
1797
1797
  "pulse",
1798
1798
  "disabled"
1799
1799
  ]),
1800
- w("label", Ji, [w("input", {
1800
+ w("label", $i, [w("input", {
1801
1801
  type: "checkbox",
1802
1802
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
1803
1803
  checked: e.block.decorative === !0,
1804
1804
  onChange: n[3] ||= (e) => y("decorative", e.target.checked)
1805
- }, null, 40, Yi), w("span", null, [k(m(v(r).image.decorative) + " ", 1), w("span", Xi, m(v(r).image.decorativeHint), 1)])])
1805
+ }, null, 40, ea), w("span", null, [k(m(v(r).image.decorative) + " ", 1), w("span", ta, m(v(r).image.decorativeHint), 1)])])
1806
1806
  ]),
1807
- w("div", Zi, [w("label", { class: C(v(G)) }, m(v(r).image.width), 3), w("select", {
1808
- class: C(v(W)),
1807
+ w("div", na, [w("label", { class: C(v(W)) }, m(v(r).image.width), 3), w("select", {
1808
+ class: C(v(U)),
1809
1809
  value: e.block.width,
1810
1810
  onChange: n[4] ||= (e) => y("width", e.target.value === "full" ? "full" : Number(e.target.value))
1811
1811
  }, [
1812
- w("option", $i, m(v(r).image.fullWidth), 1),
1812
+ w("option", ia, m(v(r).image.fullWidth), 1),
1813
1813
  n[9] ||= w("option", { value: "300" }, "300px", -1),
1814
1814
  n[10] ||= w("option", { value: "400" }, "400px", -1),
1815
1815
  n[11] ||= w("option", { value: "500" }, "500px", -1)
1816
- ], 42, Qi)]),
1817
- w("div", ea, [w("label", { class: C(v(G)) }, m(v(r).title.align), 3), j(X, {
1816
+ ], 42, ra)]),
1817
+ w("div", aa, [w("label", { class: C(v(W)) }, m(v(r).title.align), 3), j(Y, {
1818
1818
  options: [
1819
1819
  {
1820
1820
  value: "left",
@@ -1832,28 +1832,28 @@ var Ti = {
1832
1832
  "model-value": e.block.align,
1833
1833
  "onUpdate:modelValue": n[5] ||= (e) => y("align", e)
1834
1834
  }, null, 8, ["options", "model-value"])]),
1835
- w("div", ta, [
1836
- w("label", { class: C(v(G)) }, m(v(r).image.linkUrl), 3),
1837
- j(Z, {
1835
+ w("div", oa, [
1836
+ w("label", { class: C(v(W)) }, m(v(r).image.linkUrl), 3),
1837
+ j(X, {
1838
1838
  "model-value": e.block.linkUrl || "",
1839
1839
  type: "url",
1840
1840
  placeholder: v(r).image.imageUrlPlaceholder,
1841
1841
  "onUpdate:modelValue": n[6] ||= (e) => y("linkUrl", e)
1842
1842
  }, null, 8, ["model-value", "placeholder"]),
1843
- e.block.linkUrl ? (a(), g("label", na, [w("input", {
1843
+ e.block.linkUrl ? (a(), g("label", sa, [w("input", {
1844
1844
  type: "checkbox",
1845
1845
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
1846
1846
  checked: e.block.linkOpenInNewTab ?? !1,
1847
1847
  onChange: n[7] ||= (e) => y("linkOpenInNewTab", e.target.checked)
1848
- }, null, 40, ra), k(" " + m(v(r).image.openInNewTab), 1)])) : _("", !0)
1848
+ }, null, 40, ca), k(" " + m(v(r).image.openInNewTab), 1)])) : _("", !0)
1849
1849
  ])
1850
1850
  ], 64));
1851
1851
  }
1852
- }), aa = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, oa = { class: "tpl:flex tpl:items-center tpl:gap-2" }, sa = [
1852
+ }), ua = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, da = { class: "tpl:flex tpl:items-center tpl:gap-2" }, fa = [
1853
1853
  "value",
1854
1854
  "placeholder",
1855
1855
  "onInput"
1856
- ], ca = ["title", "onClick"], la = { class: "tpl:flex tpl:items-center tpl:gap-3 tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ua = ["checked", "onChange"], da = { class: "tpl:flex tpl:items-center tpl:gap-2" }, fa = ["value"], pa = { value: "" }, ma = ["value"], ha = ["value"], ga = /* @__PURE__ */ A({
1856
+ ], pa = ["title", "onClick"], ma = { class: "tpl:flex tpl:items-center tpl:gap-3 tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ha = ["checked", "onChange"], ga = { class: "tpl:flex tpl:items-center tpl:gap-2" }, _a = ["value"], va = { value: "" }, ya = ["value"], ba = ["value"], xa = /* @__PURE__ */ A({
1857
1857
  __name: "MenuToolbar",
1858
1858
  props: {
1859
1859
  block: {},
@@ -1861,7 +1861,7 @@ var Ti = {
1861
1861
  },
1862
1862
  emits: ["update"],
1863
1863
  setup(e, { emit: t }) {
1864
- let n = e, r = t, { t: i } = L(), o = h(() => [
1864
+ let n = e, r = t, { t: i } = z(), o = h(() => [
1865
1865
  {
1866
1866
  key: "openInNewTab",
1867
1867
  label: i.menu.openInNewTab
@@ -1878,17 +1878,17 @@ var Ti = {
1878
1878
  {
1879
1879
  value: "left",
1880
1880
  label: i.title.alignLeft,
1881
- icon: pt
1881
+ icon: vt
1882
1882
  },
1883
1883
  {
1884
1884
  value: "center",
1885
1885
  label: i.title.alignCenter,
1886
- icon: at
1886
+ icon: ut
1887
1887
  },
1888
1888
  {
1889
1889
  value: "right",
1890
1890
  label: i.title.alignRight,
1891
- icon: ft
1891
+ icon: _t
1892
1892
  }
1893
1893
  ]);
1894
1894
  function u(e, t) {
@@ -1896,7 +1896,7 @@ var Ti = {
1896
1896
  }
1897
1897
  function d() {
1898
1898
  let e = {
1899
- id: B(),
1899
+ id: Je(),
1900
1900
  text: "",
1901
1901
  url: "",
1902
1902
  openInNewTab: !1,
@@ -1915,26 +1915,26 @@ var Ti = {
1915
1915
  r("update", { items: n.block.items.filter((t) => t.id !== e) });
1916
1916
  }
1917
1917
  return (t, n) => (a(), g(O, null, [
1918
- j(Y, { label: v(i).menu.items }, {
1919
- default: l(() => [w("div", aa, [(a(!0), g(O, null, s(e.block.items, (t) => (a(), g("div", {
1918
+ j(J, { label: v(i).menu.items }, {
1919
+ default: l(() => [w("div", ua, [(a(!0), g(O, null, s(e.block.items, (t) => (a(), g("div", {
1920
1920
  key: t.id,
1921
1921
  class: "tpl:flex tpl:flex-col tpl:gap-1.5 tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:p-2"
1922
1922
  }, [
1923
- w("div", oa, [w("input", {
1923
+ w("div", da, [w("input", {
1924
1924
  type: "text",
1925
- class: C([v(W), "tpl:flex-1"]),
1925
+ class: C([v(U), "tpl:flex-1"]),
1926
1926
  value: t.text,
1927
1927
  placeholder: v(i).menu.text,
1928
1928
  onInput: (e) => f(t.id, "text", e.target.value)
1929
- }, null, 42, sa), w("button", {
1930
- class: C(v(bt)),
1929
+ }, null, 42, fa), w("button", {
1930
+ class: C(v(Tt)),
1931
1931
  title: v(i).menu.removeItem,
1932
1932
  onClick: (e) => p(t.id)
1933
- }, [j(v(Te), {
1933
+ }, [j(v(Oe), {
1934
1934
  size: 14,
1935
1935
  "stroke-width": 2
1936
- })], 10, ca)]),
1937
- j(Z, {
1936
+ })], 10, pa)]),
1937
+ j(X, {
1938
1938
  "model-value": t.url,
1939
1939
  type: "url",
1940
1940
  placeholder: v(i).menu.urlPlaceholder,
@@ -1944,7 +1944,7 @@ var Ti = {
1944
1944
  "placeholder",
1945
1945
  "onUpdate:modelValue"
1946
1946
  ]),
1947
- w("div", la, [(a(!0), g(O, null, s(o.value, (e) => (a(), g("label", {
1947
+ w("div", ma, [(a(!0), g(O, null, s(o.value, (e) => (a(), g("label", {
1948
1948
  key: e.key,
1949
1949
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-1"
1950
1950
  }, [w("input", {
@@ -1952,14 +1952,14 @@ var Ti = {
1952
1952
  checked: t[e.key],
1953
1953
  class: "tpl:accent-[var(--tpl-primary)]",
1954
1954
  onChange: (n) => f(t.id, e.key, n.target.checked)
1955
- }, null, 40, ua), k(" " + m(e.label), 1)]))), 128))]),
1956
- w("div", da, [w("label", { class: C([v(G), "tpl:!mb-0"]) }, m(v(i).menu.color), 3), j(J, {
1955
+ }, null, 40, ha), k(" " + m(e.label), 1)]))), 128))]),
1956
+ w("div", ga, [w("label", { class: C([v(W), "tpl:!mb-0"]) }, m(v(i).menu.color), 3), j(q, {
1957
1957
  "swatch-only": "",
1958
1958
  "model-value": t.color || e.block.linkColor || e.block.color,
1959
1959
  "onUpdate:modelValue": (e) => f(t.id, "color", e)
1960
1960
  }, null, 8, ["model-value", "onUpdate:modelValue"])])
1961
1961
  ]))), 128)), w("button", {
1962
- class: C(v(xt)),
1962
+ class: C(v(Et)),
1963
1963
  onClick: d
1964
1964
  }, [j(v(H), {
1965
1965
  size: 14,
@@ -1967,19 +1967,19 @@ var Ti = {
1967
1967
  }), k(" " + m(v(i).menu.addItem), 1)], 2)])]),
1968
1968
  _: 1
1969
1969
  }, 8, ["label"]),
1970
- j(Y, { label: v(i).menu.fontFamily }, {
1970
+ j(J, { label: v(i).menu.fontFamily }, {
1971
1971
  default: l(() => [w("select", {
1972
- class: C(v(W)),
1972
+ class: C(v(U)),
1973
1973
  value: e.block.fontFamily || "",
1974
1974
  onChange: n[0] ||= (e) => u("fontFamily", e.target.value || void 0)
1975
- }, [w("option", pa, m(v(i).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
1975
+ }, [w("option", va, m(v(i).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
1976
1976
  key: e.value,
1977
1977
  value: e.value
1978
- }, m(e.label), 9, ma))), 128))], 42, fa)]),
1978
+ }, m(e.label), 9, ya))), 128))], 42, _a)]),
1979
1979
  _: 1
1980
1980
  }, 8, ["label"]),
1981
- j(Y, { label: v(i).menu.fontSize }, {
1982
- default: l(() => [j(Tt, {
1981
+ j(J, { label: v(i).menu.fontSize }, {
1982
+ default: l(() => [j(At, {
1983
1983
  "model-value": e.block.fontSize,
1984
1984
  min: 8,
1985
1985
  max: 48,
@@ -1988,46 +1988,46 @@ var Ti = {
1988
1988
  }, null, 8, ["model-value"])]),
1989
1989
  _: 1
1990
1990
  }, 8, ["label"]),
1991
- j(Y, { label: v(i).menu.color }, {
1992
- default: l(() => [j(J, {
1991
+ j(J, { label: v(i).menu.color }, {
1992
+ default: l(() => [j(q, {
1993
1993
  "model-value": e.block.color,
1994
1994
  "onUpdate:modelValue": n[2] ||= (e) => u("color", e)
1995
1995
  }, null, 8, ["model-value"])]),
1996
1996
  _: 1
1997
1997
  }, 8, ["label"]),
1998
- j(Y, { label: v(i).menu.linkColor }, {
1999
- default: l(() => [j(J, {
1998
+ j(J, { label: v(i).menu.linkColor }, {
1999
+ default: l(() => [j(q, {
2000
2000
  "model-value": e.block.linkColor || e.block.color,
2001
2001
  "onUpdate:modelValue": n[3] ||= (e) => u("linkColor", e || void 0)
2002
2002
  }, null, 8, ["model-value"])]),
2003
2003
  _: 1
2004
2004
  }, 8, ["label"]),
2005
- j(Y, { label: v(i).menu.textAlign }, {
2006
- default: l(() => [j(X, {
2005
+ j(J, { label: v(i).menu.textAlign }, {
2006
+ default: l(() => [j(Y, {
2007
2007
  options: c.value,
2008
2008
  "model-value": e.block.textAlign,
2009
2009
  "onUpdate:modelValue": n[4] ||= (e) => u("textAlign", e)
2010
2010
  }, null, 8, ["options", "model-value"])]),
2011
2011
  _: 1
2012
2012
  }, 8, ["label"]),
2013
- j(Y, { label: v(i).menu.separator }, {
2013
+ j(J, { label: v(i).menu.separator }, {
2014
2014
  default: l(() => [w("input", {
2015
2015
  type: "text",
2016
- class: C(v(W)),
2016
+ class: C(v(U)),
2017
2017
  value: e.block.separator,
2018
2018
  onInput: n[5] ||= (e) => u("separator", e.target.value)
2019
- }, null, 42, ha)]),
2019
+ }, null, 42, ba)]),
2020
2020
  _: 1
2021
2021
  }, 8, ["label"]),
2022
- j(Y, { label: v(i).menu.separatorColor }, {
2023
- default: l(() => [j(J, {
2022
+ j(J, { label: v(i).menu.separatorColor }, {
2023
+ default: l(() => [j(q, {
2024
2024
  "model-value": e.block.separatorColor,
2025
2025
  "onUpdate:modelValue": n[6] ||= (e) => u("separatorColor", e)
2026
2026
  }, null, 8, ["model-value"])]),
2027
2027
  _: 1
2028
2028
  }, 8, ["label"]),
2029
- j(Y, { label: v(i).menu.spacing }, {
2030
- default: l(() => [j(Tt, {
2029
+ j(J, { label: v(i).menu.spacing }, {
2030
+ default: l(() => [j(At, {
2031
2031
  "model-value": e.block.spacing,
2032
2032
  min: 0,
2033
2033
  max: 50,
@@ -2041,11 +2041,11 @@ var Ti = {
2041
2041
  });
2042
2042
  //#endregion
2043
2043
  //#region src/utils/rebalanceColumnChildren.ts
2044
- function _a(e) {
2044
+ function Sa(e) {
2045
2045
  return e === "1" ? 1 : e === "3" ? 3 : 2;
2046
2046
  }
2047
- function va(e, t) {
2048
- let n = _a(t);
2047
+ function Ca(e, t) {
2048
+ let n = Sa(t);
2049
2049
  if (e.length === n) return e;
2050
2050
  if (e.length < n) {
2051
2051
  let t = Array.from({ length: n - e.length }, () => []);
@@ -2056,12 +2056,12 @@ function va(e, t) {
2056
2056
  }
2057
2057
  //#endregion
2058
2058
  //#region src/components/toolbar/SectionToolbar.vue?vue&type=script&setup=true&lang.ts
2059
- var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PURE__ */ A({
2059
+ var wa = { class: "tpl:mb-3.5" }, Ta = ["value"], Ea = ["value"], Da = /* @__PURE__ */ A({
2060
2060
  __name: "SectionToolbar",
2061
2061
  props: { block: {} },
2062
2062
  emits: ["update"],
2063
2063
  setup(e, { emit: t }) {
2064
- let n = e, r = t, { t: i } = L(), o = h(() => [
2064
+ let n = e, r = t, { t: i } = z(), o = h(() => [
2065
2065
  {
2066
2066
  value: "1",
2067
2067
  label: i.section.column1
@@ -2087,30 +2087,30 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2087
2087
  let t = e.target.value;
2088
2088
  r("update", {
2089
2089
  columns: t,
2090
- children: va(n.block.children, t)
2090
+ children: Ca(n.block.children, t)
2091
2091
  });
2092
2092
  }
2093
- return (t, n) => (a(), g("div", ya, [w("label", { class: C(v(G)) }, m(v(i).section.columns), 3), w("select", {
2094
- class: C(v(W)),
2093
+ return (t, n) => (a(), g("div", wa, [w("label", { class: C(v(W)) }, m(v(i).section.columns), 3), w("select", {
2094
+ class: C(v(U)),
2095
2095
  value: e.block.columns,
2096
2096
  onChange: c
2097
2097
  }, [(a(!0), g(O, null, s(o.value, (e) => (a(), g("option", {
2098
2098
  key: e.value,
2099
2099
  value: e.value
2100
- }, m(e.label), 9, xa))), 128))], 42, ba)]));
2100
+ }, m(e.label), 9, Ea))), 128))], 42, Ta)]));
2101
2101
  }
2102
- }), Ca = { class: "tpl:mb-3.5" }, wa = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Ta = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ea = ["value", "onChange"], Da = ["value"], Oa = ["title", "onClick"], ka = { class: "tpl:mb-3.5" }, Aa = ["value"], ja = { value: "solid" }, Ma = { value: "outlined" }, Na = { value: "rounded" }, Pa = { value: "square" }, Fa = { value: "circle" }, Ia = { class: "tpl:mb-3.5" }, La = { class: "tpl:mb-3.5" }, Ra = { class: "tpl:flex tpl:items-stretch" }, za = ["value"], Ba = { class: "tpl:mb-3.5" }, Va = /* @__PURE__ */ A({
2102
+ }), Oa = { class: "tpl:mb-3.5" }, ka = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Aa = { class: "tpl:flex tpl:items-center tpl:gap-2" }, ja = ["value", "onChange"], Ma = ["value"], Na = ["title", "onClick"], Pa = { class: "tpl:mb-3.5" }, Fa = ["value"], Ia = { value: "solid" }, La = { value: "outlined" }, Ra = { value: "rounded" }, za = { value: "square" }, Ba = { value: "circle" }, Va = { class: "tpl:mb-3.5" }, Ha = { class: "tpl:mb-3.5" }, Ua = { class: "tpl:flex tpl:items-stretch" }, Wa = ["value"], Ga = { class: "tpl:mb-3.5" }, Ka = /* @__PURE__ */ A({
2103
2103
  __name: "SocialToolbar",
2104
2104
  props: { block: {} },
2105
2105
  emits: ["update"],
2106
2106
  setup(e, { emit: t }) {
2107
- let n = e, r = t, { t: i } = L();
2107
+ let n = e, r = t, { t: i } = z();
2108
2108
  function o(e, t) {
2109
2109
  r("update", { [e]: t });
2110
2110
  }
2111
2111
  function c() {
2112
2112
  let e = {
2113
- id: B(),
2113
+ id: Je(),
2114
2114
  platform: "facebook",
2115
2115
  url: ""
2116
2116
  };
@@ -2126,25 +2126,25 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2126
2126
  r("update", { icons: n.block.icons.filter((t) => t.id !== e) });
2127
2127
  }
2128
2128
  return (t, n) => (a(), g(O, null, [
2129
- w("div", Ca, [w("label", { class: C(v(G)) }, m(v(i).social.icons), 3), w("div", wa, [(a(!0), g(O, null, s(e.block.icons, (e) => (a(), g("div", {
2129
+ w("div", Oa, [w("label", { class: C(v(W)) }, m(v(i).social.icons), 3), w("div", ka, [(a(!0), g(O, null, s(e.block.icons, (e) => (a(), g("div", {
2130
2130
  key: e.id,
2131
2131
  class: "tpl:flex tpl:flex-col tpl:gap-1.5 tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:p-2"
2132
- }, [w("div", Ta, [w("select", {
2132
+ }, [w("div", Aa, [w("select", {
2133
2133
  "data-testid": "social-platform-select",
2134
- class: C([v(W), "tpl:flex-1"]),
2134
+ class: C([v(U), "tpl:flex-1"]),
2135
2135
  value: e.platform,
2136
2136
  onChange: (t) => l(e.id, "platform", t.target.value)
2137
2137
  }, [(a(!0), g(O, null, s(v(re), (e) => (a(), g("option", {
2138
2138
  key: e,
2139
2139
  value: e
2140
- }, m(v(I)[e].name), 9, Da))), 128))], 42, Ea), w("button", {
2141
- class: C(v(bt)),
2140
+ }, m(v(R)[e].name), 9, Ma))), 128))], 42, ja), w("button", {
2141
+ class: C(v(Tt)),
2142
2142
  title: v(i).social.removeIcon,
2143
2143
  onClick: (t) => u(e.id)
2144
- }, [j(v(Te), {
2144
+ }, [j(v(Oe), {
2145
2145
  size: 14,
2146
2146
  "stroke-width": 2
2147
- })], 10, Oa)]), j(Z, {
2147
+ })], 10, Na)]), j(X, {
2148
2148
  "model-value": e.url,
2149
2149
  type: "url",
2150
2150
  placeholder: v(i).social.urlPlaceholder,
@@ -2154,24 +2154,24 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2154
2154
  "placeholder",
2155
2155
  "onUpdate:modelValue"
2156
2156
  ])]))), 128)), w("button", {
2157
- class: C(v(xt)),
2157
+ class: C(v(Et)),
2158
2158
  onClick: c
2159
2159
  }, [j(v(H), {
2160
2160
  size: 14,
2161
2161
  "stroke-width": 2
2162
2162
  }), k(" " + m(v(i).social.addIcon), 1)], 2)])]),
2163
- w("div", ka, [w("label", { class: C(v(G)) }, m(v(i).social.style), 3), w("select", {
2164
- class: C(v(W)),
2163
+ w("div", Pa, [w("label", { class: C(v(W)) }, m(v(i).social.style), 3), w("select", {
2164
+ class: C(v(U)),
2165
2165
  value: e.block.iconStyle,
2166
2166
  onChange: n[0] ||= (e) => o("iconStyle", e.target.value)
2167
2167
  }, [
2168
- w("option", ja, m(v(i).social.styleSolid), 1),
2169
- w("option", Ma, m(v(i).social.styleOutlined), 1),
2170
- w("option", Na, m(v(i).social.styleRounded), 1),
2171
- w("option", Pa, m(v(i).social.styleSquare), 1),
2172
- w("option", Fa, m(v(i).social.styleCircle), 1)
2173
- ], 42, Aa)]),
2174
- w("div", Ia, [w("label", { class: C(v(G)) }, m(v(i).social.size), 3), j(X, {
2168
+ w("option", Ia, m(v(i).social.styleSolid), 1),
2169
+ w("option", La, m(v(i).social.styleOutlined), 1),
2170
+ w("option", Ra, m(v(i).social.styleRounded), 1),
2171
+ w("option", za, m(v(i).social.styleSquare), 1),
2172
+ w("option", Ba, m(v(i).social.styleCircle), 1)
2173
+ ], 42, Fa)]),
2174
+ w("div", Va, [w("label", { class: C(v(W)) }, m(v(i).social.size), 3), j(Y, {
2175
2175
  options: [
2176
2176
  {
2177
2177
  value: "small",
@@ -2189,30 +2189,30 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2189
2189
  "model-value": e.block.iconSize,
2190
2190
  "onUpdate:modelValue": n[1] ||= (e) => o("iconSize", e)
2191
2191
  }, null, 8, ["options", "model-value"])]),
2192
- w("div", La, [w("label", { class: C(v(G)) }, m(v(i).social.spacing), 3), w("div", Ra, [w("input", {
2192
+ w("div", Ha, [w("label", { class: C(v(W)) }, m(v(i).social.spacing), 3), w("div", Ua, [w("input", {
2193
2193
  type: "number",
2194
- class: C(v(q)),
2194
+ class: C(v(K)),
2195
2195
  value: e.block.spacing,
2196
2196
  min: "0",
2197
2197
  max: "50",
2198
2198
  onInput: n[2] ||= (e) => o("spacing", Number(e.target.value))
2199
- }, null, 42, za), w("span", { class: C(v(K)) }, "px", 2)])]),
2200
- w("div", Ba, [w("label", { class: C(v(G)) }, m(v(i).social.align), 3), j(X, {
2199
+ }, null, 42, Wa), w("span", { class: C(v(G)) }, "px", 2)])]),
2200
+ w("div", Ga, [w("label", { class: C(v(W)) }, m(v(i).social.align), 3), j(Y, {
2201
2201
  options: [
2202
2202
  {
2203
2203
  value: "left",
2204
2204
  label: v(i).title.alignLeft,
2205
- icon: v(pt)
2205
+ icon: v(vt)
2206
2206
  },
2207
2207
  {
2208
2208
  value: "center",
2209
2209
  label: v(i).title.alignCenter,
2210
- icon: v(at)
2210
+ icon: v(ut)
2211
2211
  },
2212
2212
  {
2213
2213
  value: "right",
2214
2214
  label: v(i).title.alignRight,
2215
- icon: v(ft)
2215
+ icon: v(_t)
2216
2216
  }
2217
2217
  ],
2218
2218
  "model-value": e.block.align,
@@ -2220,22 +2220,22 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2220
2220
  }, null, 8, ["options", "model-value"])])
2221
2221
  ], 64));
2222
2222
  }
2223
- }), Ha = { class: "tpl:mb-3.5" }, Ua = { class: "tpl:flex tpl:items-stretch" }, Wa = ["value"], Ga = ["value"], Ka = /* @__PURE__ */ A({
2223
+ }), qa = { class: "tpl:mb-3.5" }, Ja = { class: "tpl:flex tpl:items-stretch" }, Ya = ["value"], Xa = ["value"], Za = /* @__PURE__ */ A({
2224
2224
  __name: "SpacerToolbar",
2225
2225
  props: { block: {} },
2226
2226
  emits: ["update"],
2227
2227
  setup(e, { emit: t }) {
2228
- let n = t, { t: r } = L();
2229
- return (t, i) => (a(), g("div", Ha, [
2230
- w("label", { class: C(v(G)) }, m(v(r).spacer.height), 3),
2231
- w("div", Ua, [w("input", {
2228
+ let n = t, { t: r } = z();
2229
+ return (t, i) => (a(), g("div", qa, [
2230
+ w("label", { class: C(v(W)) }, m(v(r).spacer.height), 3),
2231
+ w("div", Ja, [w("input", {
2232
2232
  type: "number",
2233
- class: C(v(q)),
2233
+ class: C(v(K)),
2234
2234
  value: e.block.height,
2235
2235
  min: "10",
2236
2236
  max: "100",
2237
2237
  onInput: i[0] ||= (e) => n("update", { height: Number(e.target.value) })
2238
- }, null, 42, Wa), w("span", { class: C(v(K)) }, "px", 2)]),
2238
+ }, null, 42, Ya), w("span", { class: C(v(G)) }, "px", 2)]),
2239
2239
  w("input", {
2240
2240
  type: "range",
2241
2241
  class: "tpl:mt-2 tpl:w-full tpl:accent-[var(--tpl-primary)]",
@@ -2243,13 +2243,13 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2243
2243
  min: "10",
2244
2244
  max: "100",
2245
2245
  onInput: i[1] ||= (e) => n("update", { height: Number(e.target.value) })
2246
- }, null, 40, Ga)
2246
+ }, null, 40, Xa)
2247
2247
  ]));
2248
2248
  }
2249
- }), qa = { class: "tpl:mb-3.5" }, Ja = { class: "tpl:flex tpl:items-center tpl:gap-3" }, Ya = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, Xa = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Za = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Qa = ["disabled"], $a = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, eo = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, to = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, no = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, ro = ["disabled"], io = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ao = { class: "tpl:mb-3.5" }, oo = { class: "tpl:mb-1.5 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, so = ["checked"], co = {
2249
+ }), Qa = { class: "tpl:mb-3.5" }, $a = { class: "tpl:flex tpl:items-center tpl:gap-3" }, eo = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, to = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, no = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, ro = ["disabled"], io = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ao = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, oo = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, so = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, co = ["disabled"], lo = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, uo = { class: "tpl:mb-3.5" }, fo = { class: "tpl:mb-1.5 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, po = ["checked"], mo = {
2250
2250
  key: 0,
2251
2251
  class: "tpl:mb-3.5"
2252
- }, lo = { class: "tpl:mb-3.5" }, uo = { class: "tpl:mb-3.5" }, fo = { class: "tpl:flex tpl:items-stretch" }, po = ["value"], mo = { class: "tpl:mb-3.5" }, ho = { class: "tpl:flex tpl:items-stretch" }, go = ["value"], _o = { class: "tpl:mb-3.5" }, vo = ["value"], yo = { value: "" }, bo = ["value"], xo = { class: "tpl:mb-3.5" }, So = { class: "tpl:flex tpl:items-stretch" }, Co = ["value"], wo = { class: "tpl:mb-3.5" }, To = { class: "tpl:mb-3.5" }, Eo = /* @__PURE__ */ A({
2252
+ }, ho = { class: "tpl:mb-3.5" }, go = { class: "tpl:mb-3.5" }, _o = { class: "tpl:flex tpl:items-stretch" }, vo = ["value"], yo = { class: "tpl:mb-3.5" }, bo = { class: "tpl:flex tpl:items-stretch" }, xo = ["value"], So = { class: "tpl:mb-3.5" }, Co = ["value"], wo = { value: "" }, To = ["value"], Eo = { class: "tpl:mb-3.5" }, Do = { class: "tpl:flex tpl:items-stretch" }, Oo = ["value"], ko = { class: "tpl:mb-3.5" }, Ao = { class: "tpl:mb-3.5" }, jo = /* @__PURE__ */ A({
2253
2253
  __name: "TableToolbar",
2254
2254
  props: {
2255
2255
  block: {},
@@ -2257,15 +2257,15 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2257
2257
  },
2258
2258
  emits: ["update"],
2259
2259
  setup(e, { emit: t }) {
2260
- let n = e, r = t, { t: i } = L(), o = h(() => n.block.rows.length > 0 ? n.block.rows[0].cells.length : 0);
2260
+ let n = e, r = t, { t: i } = z(), o = h(() => n.block.rows.length > 0 ? n.block.rows[0].cells.length : 0);
2261
2261
  function c(e, t) {
2262
2262
  r("update", { [e]: t });
2263
2263
  }
2264
2264
  function l() {
2265
2265
  let e = n.block.rows.length > 0 ? n.block.rows[0].cells.length : 3, t = {
2266
- id: B(),
2266
+ id: Je(),
2267
2267
  cells: Array.from({ length: e }, () => ({
2268
- id: B(),
2268
+ id: Je(),
2269
2269
  content: ""
2270
2270
  }))
2271
2271
  };
@@ -2278,7 +2278,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2278
2278
  r("update", { rows: n.block.rows.map((e) => ({
2279
2279
  ...e,
2280
2280
  cells: [...e.cells, {
2281
- id: B(),
2281
+ id: Je(),
2282
2282
  content: ""
2283
2283
  }]
2284
2284
  })) });
@@ -2290,16 +2290,16 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2290
2290
  })) });
2291
2291
  }
2292
2292
  return (t, n) => (a(), g(O, null, [
2293
- w("div", qa, [w("label", { class: C(v(G)) }, m(v(i).table.dimensions), 3), w("div", Ja, [w("div", Ya, [w("span", Xa, m(v(i).table.rows), 1), w("div", Za, [
2293
+ w("div", Qa, [w("label", { class: C(v(W)) }, m(v(i).table.dimensions), 3), w("div", $a, [w("div", eo, [w("span", to, m(v(i).table.rows), 1), w("div", no, [
2294
2294
  w("button", {
2295
2295
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:px-1.5 tpl:py-1 tpl:text-[var(--tpl-text-muted)] tpl:transition-colors tpl:duration-150 tpl:hover:text-[var(--tpl-primary)] tpl:disabled:opacity-30",
2296
2296
  disabled: e.block.rows.length <= 1,
2297
2297
  onClick: n[0] ||= (t) => u(e.block.rows[e.block.rows.length - 1].id)
2298
- }, [j(v(U), {
2298
+ }, [j(v(tt), {
2299
2299
  size: 12,
2300
2300
  "stroke-width": 2
2301
- })], 8, Qa),
2302
- w("span", $a, m(e.block.rows.length), 1),
2301
+ })], 8, ro),
2302
+ w("span", io, m(e.block.rows.length), 1),
2303
2303
  w("button", {
2304
2304
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:px-1.5 tpl:py-1 tpl:text-[var(--tpl-text-muted)] tpl:transition-colors tpl:duration-150 tpl:hover:text-[var(--tpl-primary)]",
2305
2305
  onClick: l
@@ -2307,16 +2307,16 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2307
2307
  size: 12,
2308
2308
  "stroke-width": 2
2309
2309
  })])
2310
- ])]), w("div", eo, [w("span", to, m(v(i).table.columns), 1), w("div", no, [
2310
+ ])]), w("div", ao, [w("span", oo, m(v(i).table.columns), 1), w("div", so, [
2311
2311
  w("button", {
2312
2312
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:px-1.5 tpl:py-1 tpl:text-[var(--tpl-text-muted)] tpl:transition-colors tpl:duration-150 tpl:hover:text-[var(--tpl-primary)] tpl:disabled:opacity-30",
2313
2313
  disabled: o.value <= 1,
2314
2314
  onClick: n[1] ||= (e) => f(o.value - 1)
2315
- }, [j(v(U), {
2315
+ }, [j(v(tt), {
2316
2316
  size: 12,
2317
2317
  "stroke-width": 2
2318
- })], 8, ro),
2319
- w("span", io, m(o.value), 1),
2318
+ })], 8, co),
2319
+ w("span", lo, m(o.value), 1),
2320
2320
  w("button", {
2321
2321
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:px-1.5 tpl:py-1 tpl:text-[var(--tpl-text-muted)] tpl:transition-colors tpl:duration-150 tpl:hover:text-[var(--tpl-primary)]",
2322
2322
  onClick: d
@@ -2325,73 +2325,73 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2325
2325
  "stroke-width": 2
2326
2326
  })])
2327
2327
  ])])])]),
2328
- w("div", ao, [w("label", oo, [w("input", {
2328
+ w("div", uo, [w("label", fo, [w("input", {
2329
2329
  type: "checkbox",
2330
2330
  checked: e.block.hasHeaderRow,
2331
2331
  class: "tpl:accent-[var(--tpl-primary)]",
2332
2332
  onChange: n[2] ||= (e) => c("hasHeaderRow", e.target.checked)
2333
- }, null, 40, so), k(" " + m(v(i).table.hasHeaderRow), 1)])]),
2334
- e.block.hasHeaderRow ? (a(), g("div", co, [w("label", { class: C(v(G)) }, m(v(i).table.headerBackgroundColor), 3), j(J, {
2333
+ }, null, 40, po), k(" " + m(v(i).table.hasHeaderRow), 1)])]),
2334
+ e.block.hasHeaderRow ? (a(), g("div", mo, [w("label", { class: C(v(W)) }, m(v(i).table.headerBackgroundColor), 3), j(q, {
2335
2335
  "model-value": e.block.headerBackgroundColor || v("#f2f2f2"),
2336
2336
  placeholder: v(i).table.noHeaderBg,
2337
2337
  "onUpdate:modelValue": n[3] ||= (e) => c("headerBackgroundColor", e || null)
2338
2338
  }, null, 8, ["model-value", "placeholder"])])) : _("", !0),
2339
- w("div", lo, [w("label", { class: C(v(G)) }, m(v(i).table.borderColor), 3), j(J, {
2339
+ w("div", ho, [w("label", { class: C(v(W)) }, m(v(i).table.borderColor), 3), j(q, {
2340
2340
  "model-value": e.block.borderColor,
2341
2341
  "onUpdate:modelValue": n[4] ||= (e) => c("borderColor", e)
2342
2342
  }, null, 8, ["model-value"])]),
2343
- w("div", uo, [w("label", { class: C(v(G)) }, m(v(i).table.borderWidth), 3), w("div", fo, [w("input", {
2343
+ w("div", go, [w("label", { class: C(v(W)) }, m(v(i).table.borderWidth), 3), w("div", _o, [w("input", {
2344
2344
  type: "number",
2345
- class: C(v(q)),
2345
+ class: C(v(K)),
2346
2346
  value: e.block.borderWidth,
2347
2347
  min: "0",
2348
2348
  max: "10",
2349
2349
  onInput: n[5] ||= (e) => c("borderWidth", Number(e.target.value))
2350
- }, null, 42, po), w("span", { class: C(v(K)) }, "px", 2)])]),
2351
- w("div", mo, [w("label", { class: C(v(G)) }, m(v(i).table.cellPadding), 3), w("div", ho, [w("input", {
2350
+ }, null, 42, vo), w("span", { class: C(v(G)) }, "px", 2)])]),
2351
+ w("div", yo, [w("label", { class: C(v(W)) }, m(v(i).table.cellPadding), 3), w("div", bo, [w("input", {
2352
2352
  type: "number",
2353
- class: C(v(q)),
2353
+ class: C(v(K)),
2354
2354
  value: e.block.cellPadding,
2355
2355
  min: "0",
2356
2356
  max: "30",
2357
2357
  onInput: n[6] ||= (e) => c("cellPadding", Number(e.target.value))
2358
- }, null, 42, go), w("span", { class: C(v(K)) }, "px", 2)])]),
2359
- w("div", _o, [w("label", { class: C(v(G)) }, m(v(i).table.fontFamily), 3), w("select", {
2360
- class: C(v(W)),
2358
+ }, null, 42, xo), w("span", { class: C(v(G)) }, "px", 2)])]),
2359
+ w("div", So, [w("label", { class: C(v(W)) }, m(v(i).table.fontFamily), 3), w("select", {
2360
+ class: C(v(U)),
2361
2361
  value: e.block.fontFamily || "",
2362
2362
  onChange: n[7] ||= (e) => c("fontFamily", e.target.value || void 0)
2363
- }, [w("option", yo, m(v(i).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
2363
+ }, [w("option", wo, m(v(i).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
2364
2364
  key: e.value,
2365
2365
  value: e.value
2366
- }, m(e.label), 9, bo))), 128))], 42, vo)]),
2367
- w("div", xo, [w("label", { class: C(v(G)) }, m(v(i).table.fontSize), 3), w("div", So, [w("input", {
2366
+ }, m(e.label), 9, To))), 128))], 42, Co)]),
2367
+ w("div", Eo, [w("label", { class: C(v(W)) }, m(v(i).table.fontSize), 3), w("div", Do, [w("input", {
2368
2368
  type: "number",
2369
- class: C(v(q)),
2369
+ class: C(v(K)),
2370
2370
  value: e.block.fontSize,
2371
2371
  min: "10",
2372
2372
  max: "32",
2373
2373
  onInput: n[8] ||= (e) => c("fontSize", Number(e.target.value))
2374
- }, null, 42, Co), w("span", { class: C(v(K)) }, "px", 2)])]),
2375
- w("div", wo, [w("label", { class: C(v(G)) }, m(v(i).table.color), 3), j(J, {
2374
+ }, null, 42, Oo), w("span", { class: C(v(G)) }, "px", 2)])]),
2375
+ w("div", ko, [w("label", { class: C(v(W)) }, m(v(i).table.color), 3), j(q, {
2376
2376
  "model-value": e.block.color,
2377
2377
  "onUpdate:modelValue": n[9] ||= (e) => c("color", e)
2378
2378
  }, null, 8, ["model-value"])]),
2379
- w("div", To, [w("label", { class: C(v(G)) }, m(v(i).table.textAlign), 3), j(X, {
2379
+ w("div", Ao, [w("label", { class: C(v(W)) }, m(v(i).table.textAlign), 3), j(Y, {
2380
2380
  options: [
2381
2381
  {
2382
2382
  value: "left",
2383
2383
  label: v(i).title.alignLeft,
2384
- icon: v(pt)
2384
+ icon: v(vt)
2385
2385
  },
2386
2386
  {
2387
2387
  value: "center",
2388
2388
  label: v(i).title.alignCenter,
2389
- icon: v(at)
2389
+ icon: v(ut)
2390
2390
  },
2391
2391
  {
2392
2392
  value: "right",
2393
2393
  label: v(i).title.alignRight,
2394
- icon: v(ft)
2394
+ icon: v(_t)
2395
2395
  }
2396
2396
  ],
2397
2397
  "model-value": e.block.textAlign,
@@ -2399,7 +2399,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2399
2399
  }, null, 8, ["options", "model-value"])])
2400
2400
  ], 64));
2401
2401
  }
2402
- }), Do = { class: "tpl:mb-3.5" }, Oo = ["value"], ko = { value: 1 }, Ao = { value: 2 }, jo = { value: 3 }, Mo = { value: 4 }, No = { class: "tpl:mb-3.5" }, Po = ["value"], Fo = { value: "" }, Io = ["value"], Lo = { class: "tpl:mb-3.5" }, Ro = { class: "tpl:mb-3.5" }, zo = /* @__PURE__ */ A({
2402
+ }), Mo = { class: "tpl:mb-3.5" }, No = ["value"], Po = { value: 1 }, Fo = { value: 2 }, Io = { value: 3 }, Lo = { value: 4 }, Ro = { class: "tpl:mb-3.5" }, zo = ["value"], Bo = { value: "" }, Vo = ["value"], Ho = { class: "tpl:mb-3.5" }, Uo = { class: "tpl:mb-3.5" }, Wo = /* @__PURE__ */ A({
2403
2403
  __name: "TitleToolbar",
2404
2404
  props: {
2405
2405
  block: {},
@@ -2407,49 +2407,49 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2407
2407
  },
2408
2408
  emits: ["update"],
2409
2409
  setup(e, { emit: t }) {
2410
- let n = t, { t: r } = L();
2410
+ let n = t, { t: r } = z();
2411
2411
  function i(e, t) {
2412
2412
  n("update", { [e]: t });
2413
2413
  }
2414
2414
  return (t, n) => (a(), g(O, null, [
2415
- w("div", Do, [w("label", { class: C(v(G)) }, m(v(r).title.level), 3), w("select", {
2416
- class: C(v(W)),
2415
+ w("div", Mo, [w("label", { class: C(v(W)) }, m(v(r).title.level), 3), w("select", {
2416
+ class: C(v(U)),
2417
2417
  value: e.block.level,
2418
2418
  onChange: n[0] ||= (e) => i("level", Number(e.target.value))
2419
2419
  }, [
2420
- w("option", ko, m(v(r).title.heading1), 1),
2421
- w("option", Ao, m(v(r).title.heading2), 1),
2422
- w("option", jo, m(v(r).title.heading3), 1),
2423
- w("option", Mo, m(v(r).title.heading4), 1)
2424
- ], 42, Oo)]),
2425
- w("div", No, [w("label", { class: C(v(G)) }, m(v(r).title.fontFamily), 3), w("select", {
2426
- class: C(v(W)),
2420
+ w("option", Po, m(v(r).title.heading1), 1),
2421
+ w("option", Fo, m(v(r).title.heading2), 1),
2422
+ w("option", Io, m(v(r).title.heading3), 1),
2423
+ w("option", Lo, m(v(r).title.heading4), 1)
2424
+ ], 42, No)]),
2425
+ w("div", Ro, [w("label", { class: C(v(W)) }, m(v(r).title.fontFamily), 3), w("select", {
2426
+ class: C(v(U)),
2427
2427
  value: e.block.fontFamily || "",
2428
2428
  onChange: n[1] ||= (e) => i("fontFamily", e.target.value || void 0)
2429
- }, [w("option", Fo, m(v(r).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
2429
+ }, [w("option", Bo, m(v(r).title.inheritFont), 1), (a(!0), g(O, null, s(e.fontFamilies, (e) => (a(), g("option", {
2430
2430
  key: e.value,
2431
2431
  value: e.value
2432
- }, m(e.label), 9, Io))), 128))], 42, Po)]),
2433
- w("div", Lo, [w("label", { class: C(v(G)) }, m(v(r).title.color), 3), j(J, {
2432
+ }, m(e.label), 9, Vo))), 128))], 42, zo)]),
2433
+ w("div", Ho, [w("label", { class: C(v(W)) }, m(v(r).title.color), 3), j(q, {
2434
2434
  "model-value": e.block.color,
2435
2435
  "onUpdate:modelValue": n[2] ||= (e) => i("color", e)
2436
2436
  }, null, 8, ["model-value"])]),
2437
- w("div", Ro, [w("label", { class: C(v(G)) }, m(v(r).title.align), 3), j(X, {
2437
+ w("div", Uo, [w("label", { class: C(v(W)) }, m(v(r).title.align), 3), j(Y, {
2438
2438
  options: [
2439
2439
  {
2440
2440
  value: "left",
2441
2441
  label: v(r).title.alignLeft,
2442
- icon: v(pt)
2442
+ icon: v(vt)
2443
2443
  },
2444
2444
  {
2445
2445
  value: "center",
2446
2446
  label: v(r).title.alignCenter,
2447
- icon: v(at)
2447
+ icon: v(ut)
2448
2448
  },
2449
2449
  {
2450
2450
  value: "right",
2451
2451
  label: v(r).title.alignRight,
2452
- icon: v(ft)
2452
+ icon: v(_t)
2453
2453
  }
2454
2454
  ],
2455
2455
  "model-value": e.block.textAlign,
@@ -2457,22 +2457,22 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2457
2457
  }, null, 8, ["options", "model-value"])])
2458
2458
  ], 64));
2459
2459
  }
2460
- }), Bo = { class: "tpl:mb-3.5" }, Vo = {
2460
+ }), Go = { class: "tpl:mb-3.5" }, Ko = {
2461
2461
  key: 0,
2462
2462
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
2463
- }, Ho = ["checked"], Uo = {
2463
+ }, qo = ["checked"], Jo = {
2464
2464
  key: 0,
2465
2465
  class: "tpl:mb-3.5"
2466
- }, Wo = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Go = [
2466
+ }, Yo = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Xo = [
2467
2467
  "value",
2468
2468
  "placeholder",
2469
2469
  "title"
2470
- ], Ko = { class: "tpl:mb-3.5" }, qo = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Jo = { class: "tpl:mb-3.5" }, Yo = { class: "tpl:mb-3.5" }, Xo = ["value"], Zo = { value: "full" }, Qo = { class: "tpl:mb-3.5" }, $o = /* @__PURE__ */ A({
2470
+ ], Zo = { class: "tpl:mb-3.5" }, Qo = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, $o = { class: "tpl:mb-3.5" }, es = { class: "tpl:mb-3.5" }, ts = ["value"], ns = { value: "full" }, rs = { class: "tpl:mb-3.5" }, is = /* @__PURE__ */ A({
2471
2471
  __name: "VideoToolbar",
2472
2472
  props: { block: {} },
2473
2473
  emits: ["update"],
2474
2474
  setup(e, { emit: t }) {
2475
- let n = e, r = t, { t: i } = L(), o = c(Ce, null), s = c(we, Le.liquid), l = R(), u = h(() => !!o), f = h(() => Ne(n.block.url, s)), p = d(!1), { start: y } = ke(() => {
2475
+ let n = e, r = t, { t: i } = z(), o = c(Ee, null), s = c(we, Pe.liquid), l = B(), u = h(() => !!o), f = h(() => De(n.block.url, s)), p = d(!1), { start: y } = Be(() => {
2476
2476
  p.value = !1;
2477
2477
  }, 1e3, { immediate: !1 });
2478
2478
  function b(e, t) {
@@ -2483,32 +2483,32 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2483
2483
  l.alive && e && (b("thumbnailUrl", e.url), p.value = !0, y());
2484
2484
  }
2485
2485
  return (t, n) => (a(), g(O, null, [
2486
- w("div", Bo, [
2487
- w("label", { class: C(v(G)) }, m(v(i).video.videoUrl), 3),
2488
- j(Z, {
2486
+ w("div", Go, [
2487
+ w("label", { class: C(v(W)) }, m(v(i).video.videoUrl), 3),
2488
+ j(X, {
2489
2489
  "model-value": e.block.url,
2490
2490
  type: "url",
2491
2491
  placeholder: v(i).video.videoUrlPlaceholder,
2492
2492
  "onUpdate:modelValue": n[0] ||= (e) => b("url", e)
2493
2493
  }, null, 8, ["model-value", "placeholder"]),
2494
- e.block.url ? (a(), g("label", Vo, [w("input", {
2494
+ e.block.url ? (a(), g("label", Ko, [w("input", {
2495
2495
  type: "checkbox",
2496
2496
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
2497
2497
  checked: e.block.openInNewTab ?? !1,
2498
2498
  onChange: n[1] ||= (e) => b("openInNewTab", e.target.checked)
2499
- }, null, 40, Ho), k(" " + m(v(i).video.openInNewTab), 1)])) : _("", !0)
2499
+ }, null, 40, qo), k(" " + m(v(i).video.openInNewTab), 1)])) : _("", !0)
2500
2500
  ]),
2501
- f.value ? (a(), g("div", Uo, [w("label", { class: C(v(G)) }, [k(m(v(i).video.placeholderUrl) + " ", 1), w("span", Wo, m(v(i).video.optional), 1)], 2), w("input", {
2501
+ f.value ? (a(), g("div", Jo, [w("label", { class: C(v(W)) }, [k(m(v(i).video.placeholderUrl) + " ", 1), w("span", Yo, m(v(i).video.optional), 1)], 2), w("input", {
2502
2502
  type: "url",
2503
- class: C(v(W)),
2503
+ class: C(v(U)),
2504
2504
  value: e.block.placeholderUrl || "",
2505
2505
  placeholder: v(i).video.placeholderUrlPlaceholder,
2506
2506
  title: v(i).video.placeholderUrlTooltip,
2507
2507
  onInput: n[2] ||= (e) => b("placeholderUrl", e.target.value)
2508
- }, null, 42, Go)])) : _("", !0),
2509
- w("div", Ko, [
2510
- w("label", { class: C(v(G)) }, [k(m(v(i).video.customThumbnail) + " ", 1), w("span", qo, m(v(i).video.optional), 1)], 2),
2511
- j(Z, {
2508
+ }, null, 42, Xo)])) : _("", !0),
2509
+ w("div", Zo, [
2510
+ w("label", { class: C(v(W)) }, [k(m(v(i).video.customThumbnail) + " ", 1), w("span", Qo, m(v(i).video.optional), 1)], 2),
2511
+ j(X, {
2512
2512
  "model-value": e.block.thumbnailUrl,
2513
2513
  type: "url",
2514
2514
  placeholder: v(i).video.thumbnailPlaceholder,
@@ -2528,28 +2528,28 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2528
2528
  "background-color": "var(--tpl-bg)"
2529
2529
  },
2530
2530
  onClick: x
2531
- }, [j(v(De), {
2531
+ }, [j(v(Ae), {
2532
2532
  size: 14,
2533
2533
  "stroke-width": 1.5
2534
2534
  }), k(" " + m(v(i).image.browseMedia), 1)])) : _("", !0)
2535
2535
  ]),
2536
- w("div", Jo, [w("label", { class: C(v(G)) }, m(v(i).video.altText), 3), j(Z, {
2536
+ w("div", $o, [w("label", { class: C(v(W)) }, m(v(i).video.altText), 3), j(X, {
2537
2537
  "model-value": e.block.alt,
2538
2538
  type: "text",
2539
2539
  placeholder: v(i).video.altTextPlaceholder,
2540
2540
  "onUpdate:modelValue": n[4] ||= (e) => b("alt", e)
2541
2541
  }, null, 8, ["model-value", "placeholder"])]),
2542
- w("div", Yo, [w("label", { class: C(v(G)) }, m(v(i).video.width), 3), w("select", {
2543
- class: C(v(W)),
2542
+ w("div", es, [w("label", { class: C(v(W)) }, m(v(i).video.width), 3), w("select", {
2543
+ class: C(v(U)),
2544
2544
  value: e.block.width,
2545
2545
  onChange: n[5] ||= (e) => b("width", e.target.value === "full" ? "full" : Number(e.target.value))
2546
2546
  }, [
2547
- w("option", Zo, m(v(i).video.fullWidth), 1),
2547
+ w("option", ns, m(v(i).video.fullWidth), 1),
2548
2548
  n[7] ||= w("option", { value: "300" }, "300px", -1),
2549
2549
  n[8] ||= w("option", { value: "400" }, "400px", -1),
2550
2550
  n[9] ||= w("option", { value: "500" }, "500px", -1)
2551
- ], 42, Xo)]),
2552
- w("div", Qo, [w("label", { class: C(v(G)) }, m(v(i).title.align), 3), j(X, {
2551
+ ], 42, ts)]),
2552
+ w("div", rs, [w("label", { class: C(v(W)) }, m(v(i).title.align), 3), j(Y, {
2553
2553
  options: [
2554
2554
  {
2555
2555
  value: "left",
@@ -2569,7 +2569,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2569
2569
  }, null, 8, ["options", "model-value"])])
2570
2570
  ], 64));
2571
2571
  }
2572
- }), es = ["aria-label"], ts = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3.5" }, ns = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-[var(--tpl-primary)]" }, rs = { class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, is = { class: "tpl:flex tpl:gap-1" }, as = ["title"], os = ["title"], ss = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, cs = /* @__PURE__ */ V(/* @__PURE__ */ A({
2572
+ }), as = ["aria-label"], os = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3.5" }, ss = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-[var(--tpl-primary)]" }, cs = { class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, ls = { class: "tpl:flex tpl:gap-1" }, us = ["title"], ds = ["title"], fs = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, ps = /* @__PURE__ */ We(/* @__PURE__ */ A({
2573
2573
  __name: "Toolbar",
2574
2574
  props: { block: {} },
2575
2575
  emits: [
@@ -2578,7 +2578,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2578
2578
  "duplicate"
2579
2579
  ],
2580
2580
  setup(e, { emit: t }) {
2581
- let n = f(() => import("./CountdownToolbar-bJtMHGYz.js")), r = e, o = t, { t: s } = L(), l = ze(ae, "Toolbar"), u = c(z, []), d = h(() => r.block.type), p = h(() => We(r.block)), y = h(() => {
2581
+ let n = f(() => import("./CountdownToolbar-BsGUxoRv.js")), r = e, o = t, { t: s } = z(), l = Ue(ae, "Toolbar"), u = c(te, []), d = h(() => r.block.type), p = h(() => L(r.block)), y = h(() => {
2582
2582
  if (p.value) return u.find((e) => e.type === r.block.customType);
2583
2583
  }), x = h(() => p.value ? y.value?.name ?? r.block.customType : me(d.value, s)), S = l.fonts;
2584
2584
  function C(e) {
@@ -2587,78 +2587,78 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2587
2587
  return (t, r) => (a(), g("aside", {
2588
2588
  "aria-label": v(s).landmarks.blockToolbar,
2589
2589
  class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]"
2590
- }, [w("div", ts, [w("div", ns, [v(yt)[d.value] ? (a(), b(i(v(yt)[d.value]), {
2590
+ }, [w("div", os, [w("div", ss, [v(wt)[d.value] ? (a(), b(i(v(wt)[d.value]), {
2591
2591
  key: 0,
2592
2592
  size: 16,
2593
2593
  "stroke-width": 1.5
2594
- })) : p.value ? (a(), b(v(_e), {
2594
+ })) : p.value ? (a(), b(v(ve), {
2595
2595
  key: 1,
2596
2596
  size: 16,
2597
2597
  "stroke-width": 1.5
2598
- })) : _("", !0), w("h3", rs, m(x.value), 1)]), w("div", is, [w("button", {
2598
+ })) : _("", !0), w("h3", cs, m(x.value), 1)]), w("div", ls, [w("button", {
2599
2599
  class: "tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)] tpl:hover:text-[var(--tpl-text)]",
2600
2600
  title: v(s).toolbar.duplicate,
2601
2601
  onClick: r[0] ||= (e) => o("duplicate")
2602
- }, [j(v(Ge), {
2602
+ }, [j(v(Ye), {
2603
2603
  size: 14,
2604
2604
  "stroke-width": 2
2605
- })], 8, as), w("button", {
2605
+ })], 8, us), w("button", {
2606
2606
  class: "tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:border-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:text-[var(--tpl-danger)]",
2607
2607
  title: v(s).toolbar.delete,
2608
2608
  onClick: r[1] ||= (e) => o("delete")
2609
- }, [j(v(Oe), {
2609
+ }, [j(v(je), {
2610
2610
  size: 14,
2611
2611
  "stroke-width": 2
2612
- })], 8, os)])]), w("div", ss, [p.value ? (a(), b(Ni, {
2612
+ })], 8, ds)])]), w("div", fs, [p.value ? (a(), b(Ri, {
2613
2613
  key: 0,
2614
2614
  block: e.block,
2615
2615
  onUpdateFieldValues: r[2] ||= (e) => o("update", { fieldValues: e }),
2616
2616
  onUpdateDataSourceFetched: r[3] ||= (e) => o("update", { dataSourceFetched: e })
2617
- }, null, 8, ["block"])) : d.value === "section" ? (a(), b(Sa, {
2617
+ }, null, 8, ["block"])) : d.value === "section" ? (a(), b(Da, {
2618
2618
  key: 1,
2619
2619
  block: e.block,
2620
2620
  onUpdate: C
2621
- }, null, 8, ["block"])) : d.value === "title" ? (a(), b(zo, {
2621
+ }, null, 8, ["block"])) : d.value === "title" ? (a(), b(Wo, {
2622
2622
  key: 2,
2623
2623
  block: e.block,
2624
2624
  "font-families": v(S),
2625
2625
  onUpdate: C
2626
- }, null, 8, ["block", "font-families"])) : d.value === "paragraph" ? (a(), g(O, { key: 3 }, [], 64)) : d.value === "image" ? (a(), b(ia, {
2626
+ }, null, 8, ["block", "font-families"])) : d.value === "paragraph" ? (a(), g(O, { key: 3 }, [], 64)) : d.value === "image" ? (a(), b(la, {
2627
2627
  key: 4,
2628
2628
  block: e.block,
2629
2629
  onUpdate: C
2630
- }, null, 8, ["block"])) : d.value === "video" ? (a(), b($o, {
2630
+ }, null, 8, ["block"])) : d.value === "video" ? (a(), b(is, {
2631
2631
  key: 5,
2632
2632
  block: e.block,
2633
2633
  onUpdate: C
2634
- }, null, 8, ["block"])) : d.value === "button" ? (a(), b(ir, {
2634
+ }, null, 8, ["block"])) : d.value === "button" ? (a(), b(lr, {
2635
2635
  key: 6,
2636
2636
  block: e.block,
2637
2637
  "font-families": v(S),
2638
2638
  onUpdate: C
2639
- }, null, 8, ["block", "font-families"])) : d.value === "divider" ? (a(), b(zi, {
2639
+ }, null, 8, ["block", "font-families"])) : d.value === "divider" ? (a(), b(Wi, {
2640
2640
  key: 7,
2641
2641
  block: e.block,
2642
2642
  onUpdate: C
2643
- }, null, 8, ["block"])) : d.value === "social" ? (a(), b(Va, {
2643
+ }, null, 8, ["block"])) : d.value === "social" ? (a(), b(Ka, {
2644
2644
  key: 8,
2645
2645
  block: e.block,
2646
2646
  onUpdate: C
2647
- }, null, 8, ["block"])) : d.value === "menu" ? (a(), b(ga, {
2647
+ }, null, 8, ["block"])) : d.value === "menu" ? (a(), b(xa, {
2648
2648
  key: 9,
2649
2649
  block: e.block,
2650
2650
  "font-families": v(S),
2651
2651
  onUpdate: C
2652
- }, null, 8, ["block", "font-families"])) : d.value === "table" ? (a(), b(Eo, {
2652
+ }, null, 8, ["block", "font-families"])) : d.value === "table" ? (a(), b(jo, {
2653
2653
  key: 10,
2654
2654
  block: e.block,
2655
2655
  "font-families": v(S),
2656
2656
  onUpdate: C
2657
- }, null, 8, ["block", "font-families"])) : d.value === "spacer" ? (a(), b(Ka, {
2657
+ }, null, 8, ["block", "font-families"])) : d.value === "spacer" ? (a(), b(Za, {
2658
2658
  key: 11,
2659
2659
  block: e.block,
2660
2660
  onUpdate: C
2661
- }, null, 8, ["block"])) : d.value === "html" ? (a(), b(Ui, {
2661
+ }, null, 8, ["block"])) : d.value === "html" ? (a(), b(Ji, {
2662
2662
  key: 12,
2663
2663
  block: e.block,
2664
2664
  onUpdate: C
@@ -2667,52 +2667,52 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2667
2667
  block: e.block,
2668
2668
  "font-families": v(S),
2669
2669
  onUpdate: C
2670
- }, null, 8, ["block", "font-families"])) : _("", !0), j(Xr, {
2670
+ }, null, 8, ["block", "font-families"])) : _("", !0), j(ti, {
2671
2671
  block: e.block,
2672
2672
  "is-first-section": d.value === "paragraph",
2673
2673
  onUpdate: C
2674
- }, null, 8, ["block", "is-first-section"])])], 8, es));
2674
+ }, null, 8, ["block", "is-first-section"])])], 8, as));
2675
2675
  }
2676
- }), [["__scopeId", "data-v-2ac88283"]]), ls = ["aria-label"], us = {
2676
+ }), [["__scopeId", "data-v-2ac88283"]]), ms = ["aria-label"], hs = {
2677
2677
  role: "tablist",
2678
2678
  class: "tpl:relative tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-active)] tpl:p-1.5"
2679
- }, ds = [
2679
+ }, gs = [
2680
2680
  "aria-selected",
2681
2681
  "aria-label",
2682
2682
  "title"
2683
- ], fs = { key: 0 }, ps = [
2683
+ ], _s = { key: 0 }, vs = [
2684
2684
  "aria-selected",
2685
2685
  "aria-label",
2686
2686
  "title"
2687
- ], ms = { key: 0 }, hs = [
2687
+ ], ys = { key: 0 }, bs = [
2688
2688
  "aria-selected",
2689
2689
  "aria-label",
2690
2690
  "title"
2691
- ], gs = { key: 0 }, _s = {
2691
+ ], xs = { key: 0 }, Ss = {
2692
2692
  key: 1,
2693
2693
  class: "tpl:ml-1 tpl:rounded-full tpl:bg-[var(--tpl-bg-hover)] tpl:px-1.5 tpl:text-[10px]"
2694
- }, vs = {
2694
+ }, Cs = {
2695
2695
  key: 0,
2696
2696
  id: "tpl-tabpanel-content",
2697
2697
  role: "tabpanel",
2698
2698
  "aria-labelledby": "tpl-tab-content",
2699
2699
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
2700
- }, ys = {
2700
+ }, ws = {
2701
2701
  key: 1,
2702
2702
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:px-6 tpl:py-10 tpl:text-center tpl:text-[var(--tpl-text-muted)]"
2703
- }, bs = { class: "tpl:mb-4 tpl:text-[var(--tpl-text-dim)]" }, xs = { class: "tpl:m-0 tpl:mb-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ss = { class: "tpl:m-0 tpl:text-sm tpl:leading-normal" }, Cs = {
2703
+ }, Ts = { class: "tpl:mb-4 tpl:text-[var(--tpl-text-dim)]" }, Es = { class: "tpl:m-0 tpl:mb-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ds = { class: "tpl:m-0 tpl:text-sm tpl:leading-normal" }, Os = {
2704
2704
  key: 1,
2705
2705
  id: "tpl-tabpanel-settings",
2706
2706
  role: "tabpanel",
2707
2707
  "aria-labelledby": "tpl-tab-settings",
2708
2708
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
2709
- }, ws = {
2709
+ }, ks = {
2710
2710
  key: 2,
2711
2711
  id: "tpl-tabpanel-issues",
2712
2712
  role: "tabpanel",
2713
2713
  "aria-labelledby": "tpl-tab-issues",
2714
2714
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
2715
- }, Ts = /* @__PURE__ */ A({
2715
+ }, As = /* @__PURE__ */ A({
2716
2716
  __name: "RightSidebar",
2717
2717
  props: {
2718
2718
  selectedBlock: {},
@@ -2726,7 +2726,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2726
2726
  "update-settings"
2727
2727
  ],
2728
2728
  setup(e, { emit: t }) {
2729
- let n = f(() => import("./IssuesPanel-DFSYTQXy.js")), r = e, i = t, { t: o } = L(), s = d("content"), l = c(P, null), u = h(() => l !== null), p = h(() => l?.issues.value.length ?? 0);
2729
+ let n = f(() => import("./IssuesPanel-DeHTmRDz.js")), r = e, i = t, { t: o } = z(), s = d("content"), l = c(Me, null), u = h(() => l !== null), p = h(() => l?.issues.value.length ?? 0);
2730
2730
  function y(e) {
2731
2731
  return s.value === e ? "tpl:flex-1 tpl:text-[var(--tpl-primary)]" : "tpl:shrink-0 tpl:text-[var(--tpl-text-muted)] hover:tpl:text-[var(--tpl-text)]";
2732
2732
  }
@@ -2742,7 +2742,7 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2742
2742
  "aria-label": v(o).landmarks.rightSidebar,
2743
2743
  class: C(["tpl-right-sidebar tpl:absolute tpl:top-14 tpl:bottom-0 tpl:z-40 tpl:flex tpl:w-[320px] tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)] tpl:transition-all tpl:duration-200 tpl:border-l tpl:border-[var(--tpl-border)]", e.shiftedLeft ? "tpl:right-[360px]" : "tpl:right-0"])
2744
2744
  }, [
2745
- w("div", us, [
2745
+ w("div", hs, [
2746
2746
  w("button", {
2747
2747
  id: "tpl-tab-content",
2748
2748
  role: "tab",
@@ -2753,10 +2753,10 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2753
2753
  class: C(["tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", y("content")]),
2754
2754
  style: E(x("content")),
2755
2755
  onClick: r[0] ||= (e) => s.value = "content"
2756
- }, [j(v(ut), {
2756
+ }, [j(v(ht), {
2757
2757
  size: 14,
2758
2758
  "stroke-width": 2
2759
- }), s.value === "content" ? (a(), g("span", fs, m(v(o).sidebar.content), 1)) : _("", !0)], 14, ds),
2759
+ }), s.value === "content" ? (a(), g("span", _s, m(v(o).sidebar.content), 1)) : _("", !0)], 14, gs),
2760
2760
  w("button", {
2761
2761
  id: "tpl-tab-settings",
2762
2762
  role: "tab",
@@ -2767,10 +2767,10 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2767
2767
  class: C(["tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]", y("settings")]),
2768
2768
  style: E(x("settings")),
2769
2769
  onClick: r[1] ||= (e) => s.value = "settings"
2770
- }, [j(v(gt), {
2770
+ }, [j(v(xt), {
2771
2771
  size: 14,
2772
2772
  "stroke-width": 1.5
2773
- }), s.value === "settings" ? (a(), g("span", ms, m(v(o).sidebar.settings), 1)) : _("", !0)], 14, ps),
2773
+ }), s.value === "settings" ? (a(), g("span", ys, m(v(o).sidebar.settings), 1)) : _("", !0)], 14, vs),
2774
2774
  u.value ? (a(), g("button", {
2775
2775
  key: 0,
2776
2776
  id: "tpl-tab-issues",
@@ -2783,46 +2783,46 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2783
2783
  style: E(x("issues")),
2784
2784
  onClick: r[2] ||= (e) => s.value = "issues"
2785
2785
  }, [
2786
- j(v(Ze), {
2786
+ j(v(et), {
2787
2787
  size: 14,
2788
2788
  "stroke-width": 1.5
2789
2789
  }),
2790
- s.value === "issues" ? (a(), g("span", gs, m(v(o).issues.panelTabLabel), 1)) : _("", !0),
2791
- p.value > 0 ? (a(), g("span", _s, m(p.value), 1)) : _("", !0)
2792
- ], 14, hs)) : _("", !0)
2790
+ s.value === "issues" ? (a(), g("span", xs, m(v(o).issues.panelTabLabel), 1)) : _("", !0),
2791
+ p.value > 0 ? (a(), g("span", Ss, m(p.value), 1)) : _("", !0)
2792
+ ], 14, bs)) : _("", !0)
2793
2793
  ]),
2794
- s.value === "content" ? (a(), g("div", vs, [e.selectedBlock ? (a(), b(cs, {
2794
+ s.value === "content" ? (a(), g("div", Cs, [e.selectedBlock ? (a(), b(ps, {
2795
2795
  key: 0,
2796
2796
  block: e.selectedBlock,
2797
2797
  onUpdate: r[3] ||= (e) => i("update-block", e),
2798
2798
  onDelete: r[4] ||= (e) => i("delete-block"),
2799
2799
  onDuplicate: r[5] ||= (e) => i("duplicate-block")
2800
- }, null, 8, ["block"])) : (a(), g("div", ys, [
2801
- w("div", bs, [j(v(Qe), {
2800
+ }, null, 8, ["block"])) : (a(), g("div", ws, [
2801
+ w("div", Ts, [j(v(nt), {
2802
2802
  size: 40,
2803
2803
  "stroke-width": 1.5
2804
2804
  })]),
2805
- w("h3", xs, m(v(o).sidebar.noSelection), 1),
2806
- w("p", Ss, m(v(o).sidebar.noSelectionHint), 1)
2805
+ w("h3", Es, m(v(o).sidebar.noSelection), 1),
2806
+ w("p", Ds, m(v(o).sidebar.noSelectionHint), 1)
2807
2807
  ]))])) : _("", !0),
2808
- s.value === "settings" ? (a(), g("div", Cs, [j(Fn, {
2808
+ s.value === "settings" ? (a(), g("div", Os, [j(Bn, {
2809
2809
  settings: e.settings,
2810
2810
  onUpdate: r[6] ||= (e) => i("update-settings", e)
2811
2811
  }, null, 8, ["settings"])])) : _("", !0),
2812
- s.value === "issues" && u.value ? (a(), g("div", ws, [j(v(n))])) : _("", !0)
2813
- ], 10, ls));
2812
+ s.value === "issues" && u.value ? (a(), g("div", ks, [j(v(n))])) : _("", !0)
2813
+ ], 10, ms));
2814
2814
  }
2815
- }), Es = ["aria-label"], Ds = [
2815
+ }), js = ["aria-label"], Ms = [
2816
2816
  "aria-checked",
2817
2817
  "aria-label",
2818
2818
  "title",
2819
2819
  "onClick"
2820
- ], Os = /* @__PURE__ */ A({
2820
+ ], Ns = /* @__PURE__ */ A({
2821
2821
  __name: "ViewportToggle",
2822
2822
  props: { viewport: {} },
2823
2823
  emits: ["change"],
2824
2824
  setup(e, { emit: t }) {
2825
- let n = e, r = t, { t: i } = L(), o = h(() => [
2825
+ let n = e, r = t, { t: i } = z(), o = h(() => [
2826
2826
  {
2827
2827
  value: "desktop",
2828
2828
  label: i.viewport.desktop
@@ -2866,30 +2866,30 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2866
2866
  }),
2867
2867
  title: t.label,
2868
2868
  onClick: (e) => r("change", t.value)
2869
- }, [t.value === "desktop" ? (a(), b(v(rt), {
2869
+ }, [t.value === "desktop" ? (a(), b(v(st), {
2870
2870
  key: 0,
2871
2871
  size: 18,
2872
2872
  "stroke-width": 1.5
2873
- })) : t.value === "tablet" ? (a(), b(v(dt), {
2873
+ })) : t.value === "tablet" ? (a(), b(v(gt), {
2874
2874
  key: 1,
2875
2875
  size: 18,
2876
2876
  "stroke-width": 1.5
2877
- })) : (a(), b(v(mt), {
2877
+ })) : (a(), b(v(yt), {
2878
2878
  key: 2,
2879
2879
  size: 18,
2880
2880
  "stroke-width": 1.5
2881
- })), w("span", null, m(t.label), 1)], 12, Ds))), 128))], 12, Es));
2881
+ })), w("span", null, m(t.label), 1)], 12, Ms))), 128))], 12, js));
2882
2882
  }
2883
- }), ks = [
2883
+ }), Ps = [
2884
2884
  "aria-label",
2885
2885
  "title",
2886
2886
  "aria-pressed"
2887
- ], As = /* @__PURE__ */ V(/* @__PURE__ */ A({
2887
+ ], Fs = /* @__PURE__ */ We(/* @__PURE__ */ A({
2888
2888
  __name: "PreviewToggle",
2889
2889
  props: { previewMode: { type: Boolean } },
2890
2890
  emits: ["change"],
2891
2891
  setup(e, { emit: t }) {
2892
- let n = t, { t: r } = L();
2892
+ let n = t, { t: r } = z();
2893
2893
  return (t, i) => (a(), g("button", {
2894
2894
  class: "tpl-preview-toggle tpl:relative tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:p-2 tpl:transition-all tpl:duration-150",
2895
2895
  style: E({
@@ -2907,28 +2907,28 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2907
2907
  "leave-to-class": "tpl-icon-leave-to",
2908
2908
  mode: "out-in"
2909
2909
  }, {
2910
- default: l(() => [e.previewMode ? (a(), b(v(ge), {
2910
+ default: l(() => [e.previewMode ? (a(), b(v(_e), {
2911
2911
  key: "eye",
2912
2912
  size: 18,
2913
2913
  "stroke-width": 1.5
2914
- })) : (a(), b(v(ee), {
2914
+ })) : (a(), b(v(F), {
2915
2915
  key: "eye-off",
2916
2916
  size: 18,
2917
2917
  "stroke-width": 1.5
2918
2918
  }))]),
2919
2919
  _: 1
2920
- })], 12, ks));
2920
+ })], 12, Ps));
2921
2921
  }
2922
- }), [["__scopeId", "data-v-af87d02a"]]), js = [
2922
+ }), [["__scopeId", "data-v-af87d02a"]]), Is = [
2923
2923
  "aria-label",
2924
2924
  "title",
2925
2925
  "aria-pressed"
2926
- ], Ms = /* @__PURE__ */ V(/* @__PURE__ */ A({
2926
+ ], Ls = /* @__PURE__ */ We(/* @__PURE__ */ A({
2927
2927
  __name: "DarkModeToggle",
2928
2928
  props: { darkMode: { type: Boolean } },
2929
2929
  emits: ["change"],
2930
2930
  setup(e, { emit: t }) {
2931
- let n = t, { t: r } = L();
2931
+ let n = t, { t: r } = z();
2932
2932
  return (t, i) => (a(), g("button", {
2933
2933
  class: "tpl-dark-mode-toggle tpl:relative tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:p-2 tpl:transition-all tpl:duration-150",
2934
2934
  style: E({
@@ -2946,37 +2946,37 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2946
2946
  "leave-to-class": "tpl-icon-leave-to",
2947
2947
  mode: "out-in"
2948
2948
  }, {
2949
- default: l(() => [e.darkMode ? (a(), b(v(nt), {
2949
+ default: l(() => [e.darkMode ? (a(), b(v(ot), {
2950
2950
  key: "moon",
2951
2951
  size: 18,
2952
2952
  "stroke-width": 1.5
2953
- })) : (a(), b(v(ot), {
2953
+ })) : (a(), b(v(dt), {
2954
2954
  key: "sun",
2955
2955
  size: 18,
2956
2956
  "stroke-width": 1.5
2957
2957
  }))]),
2958
2958
  _: 1
2959
- })], 12, js));
2959
+ })], 12, Is));
2960
2960
  }
2961
- }), [["__scopeId", "data-v-f8694f76"]]), Ns = {
2961
+ }), [["__scopeId", "data-v-f8694f76"]]), Rs = {
2962
2962
  class: "tpl:pointer-events-auto tpl:flex tpl:items-center tpl:gap-1.5 tpl:rounded-tl-lg tpl:p-1",
2963
2963
  style: {
2964
2964
  "background-color": "color-mix(\n in srgb,\n var(--tpl-canvas-bg) 85%,\n transparent\n )",
2965
2965
  "backdrop-filter": "blur(8px)",
2966
2966
  "-webkit-backdrop-filter": "blur(8px)"
2967
2967
  }
2968
- }, Ps = {
2968
+ }, zs = {
2969
2969
  href: "https://github.com/templatical/sdk",
2970
2970
  target: "_blank",
2971
2971
  rel: "noopener noreferrer",
2972
2972
  class: "tpl:transition-colors tpl:duration-150 hover:tpl:opacity-80 tpl:text-[var(--tpl-text-dim)]",
2973
2973
  style: { "text-decoration": "none" }
2974
- }, Fs = /* @__PURE__ */ A({
2974
+ }, Bs = /* @__PURE__ */ A({
2975
2975
  __name: "EditorFooter",
2976
2976
  props: { positionClass: {} },
2977
2977
  setup(e) {
2978
- let { t } = L();
2979
- return (n, r) => (a(), g("footer", { class: C(["tpl:pointer-events-none tpl:absolute tpl:bottom-0 tpl:z-50 tpl:flex tpl:h-8 tpl:items-center tpl:justify-end tpl:pr-4 tpl:text-[9px] tpl:opacity-90 tpl:transition-all tpl:duration-300 tpl:text-[var(--tpl-text-dim)]", e.positionClass]) }, [w("div", Ns, [
2978
+ let { t } = z();
2979
+ return (n, r) => (a(), g("footer", { class: C(["tpl:pointer-events-none tpl:absolute tpl:bottom-0 tpl:z-50 tpl:flex tpl:h-8 tpl:items-center tpl:justify-end tpl:pr-4 tpl:text-[9px] tpl:opacity-90 tpl:transition-all tpl:duration-300 tpl:text-[var(--tpl-text-dim)]", e.positionClass]) }, [w("div", Rs, [
2980
2980
  w("span", null, m(v(t).footer.poweredBy), 1),
2981
2981
  r[0] ||= w("a", {
2982
2982
  href: "https://templatical.com",
@@ -2991,11 +2991,266 @@ var ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = ["value"], Sa = /* @__PUR
2991
2991
  alt: ""
2992
2992
  }), k(" Templatical ")], -1),
2993
2993
  r[1] ||= w("span", { class: "tpl:text-[var(--tpl-border)]" }, "·", -1),
2994
- w("a", Ps, m(v(t).footer.openSource), 1)
2994
+ w("a", zs, m(v(t).footer.openSource), 1)
2995
2995
  ])], 2));
2996
2996
  }
2997
+ }), Vs = ["aria-labelledby"], Hs = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:gap-3 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2.5" }, Us = ["id"], Ws = ["aria-label"], Gs = { class: "tpl:relative tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2.5" }, Ks = [
2998
+ "id",
2999
+ "placeholder",
3000
+ "aria-label",
3001
+ "aria-activedescendant"
3002
+ ], qs = {
3003
+ key: 0,
3004
+ class: "tpl:flex tpl:gap-1.5 tpl:overflow-x-auto tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2",
3005
+ "data-testid": "merge-tag-picker-group-pills"
3006
+ }, Js = ["data-group-name", "onClick"], Ys = ["aria-label"], Xs = {
3007
+ key: 0,
3008
+ class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3009
+ "data-testid": "merge-tag-picker-empty"
3010
+ }, Zs = {
3011
+ key: 1,
3012
+ class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3013
+ "data-testid": "merge-tag-picker-empty"
3014
+ }, Qs = [
3015
+ "aria-expanded",
3016
+ "data-group-name",
3017
+ "data-group-collapsed",
3018
+ "onClick"
3019
+ ], $s = { class: "tpl:ml-1 tpl:font-normal" }, ec = [
3020
+ "id",
3021
+ "aria-selected",
3022
+ "data-selected",
3023
+ "data-merge-tag-index",
3024
+ "data-merge-tag-value",
3025
+ "title",
3026
+ "onMousemove",
3027
+ "onClick"
3028
+ ], tc = { class: "tpl:text-sm tpl:font-medium" }, nc = { class: "tpl:line-clamp-2 tpl:font-mono tpl:text-xs tpl:text-ellipsis tpl:break-all tpl:text-[var(--tpl-text-dim)]" }, rc = {
3029
+ key: 0,
3030
+ class: "tpl:line-clamp-2 tpl:text-xs tpl:text-ellipsis tpl:text-[var(--tpl-text-dim)]"
3031
+ }, $ = "tpl-merge-tag-picker-list", ic = /* @__PURE__ */ A({
3032
+ __name: "MergeTagPickerModal",
3033
+ setup(e) {
3034
+ let t = Ue(Te, "MergeTagPickerModal"), { t: r, format: i } = z(), c = d(""), u = Ge(c, 200), f = d(null), x = h(() => u.value.trim().length > 0), T = d(0), E = h(() => t.tags.value.some((e) => !!e.group)), D = d(/* @__PURE__ */ new Set());
3035
+ function k(e) {
3036
+ return D.value.has(e);
3037
+ }
3038
+ function A(e) {
3039
+ let t = new Set(D.value);
3040
+ t.has(e) ? t.delete(e) : t.add(e), D.value = t, T.value = 0;
3041
+ }
3042
+ let N = h(() => {
3043
+ let e = u.value.trim().toLowerCase();
3044
+ return e ? t.tags.value.filter((t) => [
3045
+ t.label,
3046
+ t.value,
3047
+ t.description ?? ""
3048
+ ].join(" ").toLowerCase().includes(e)) : t.tags.value;
3049
+ }), ee = h(() => {
3050
+ if (!E.value) return [];
3051
+ let e = r.mergeTag.picker.otherGroup, n = /* @__PURE__ */ new Set(), i = [];
3052
+ for (let r of t.tags.value) {
3053
+ let t = r.group ?? e;
3054
+ n.has(t) || (n.add(t), i.push(t));
3055
+ }
3056
+ return i;
3057
+ }), P = h(() => {
3058
+ let e = N.value;
3059
+ if (!E.value || x.value) return e.map((e, t) => ({
3060
+ kind: "tag",
3061
+ tag: e,
3062
+ index: t
3063
+ }));
3064
+ let t = r.mergeTag.picker.otherGroup, n = /* @__PURE__ */ new Map(), i = [];
3065
+ for (let r of e) {
3066
+ let e = r.group ?? t;
3067
+ n.has(e) || (n.set(e, []), i.push(e)), n.get(e).push(r);
3068
+ }
3069
+ let a = [], o = 0;
3070
+ for (let e of i) {
3071
+ let t = n.get(e);
3072
+ if (a.push({
3073
+ kind: "header",
3074
+ group: e,
3075
+ count: t.length
3076
+ }), !D.value.has(e)) for (let e of t) a.push({
3077
+ kind: "tag",
3078
+ tag: e,
3079
+ index: o
3080
+ }), o++;
3081
+ }
3082
+ return a;
3083
+ }), F = h(() => P.value.flatMap((e) => e.kind === "tag" ? [e.tag] : []));
3084
+ M(() => t.isOpen.value, (e) => {
3085
+ e && (c.value = "", T.value = 0, D.value = /* @__PURE__ */ new Set(), o(() => {
3086
+ f.value?.focus();
3087
+ }));
3088
+ }), M(F, (e) => {
3089
+ T.value >= e.length && (T.value = Math.max(0, e.length - 1));
3090
+ });
3091
+ function I(e) {
3092
+ t.resolve(e);
3093
+ }
3094
+ function L() {
3095
+ t.resolve(null);
3096
+ }
3097
+ function R(e) {
3098
+ if (F.value.length === 0) return;
3099
+ let t = T.value + e;
3100
+ T.value = Math.max(0, Math.min(F.value.length - 1, t)), re();
3101
+ }
3102
+ let B = d(null), te = d({});
3103
+ function ne(e, t) {
3104
+ te.value[e] = t ?? null;
3105
+ }
3106
+ function re() {
3107
+ o(() => {
3108
+ let e = B.value;
3109
+ e && e.querySelector(`[data-merge-tag-index="${T.value}"]`)?.scrollIntoView({ block: "nearest" });
3110
+ });
3111
+ }
3112
+ function ie(e) {
3113
+ if (D.value.has(e)) {
3114
+ let t = new Set(D.value);
3115
+ t.delete(e), D.value = t;
3116
+ }
3117
+ o(() => {
3118
+ let t = B.value;
3119
+ if (!t) return;
3120
+ let n = 0, r = !1;
3121
+ for (let i of Array.from(t.children)) {
3122
+ if (i.dataset.testid === "merge-tag-picker-group-header" && i.dataset.groupName === e) {
3123
+ r = !0;
3124
+ break;
3125
+ }
3126
+ n += i.offsetHeight;
3127
+ }
3128
+ r && t.scrollTo({
3129
+ top: n,
3130
+ behavior: "smooth"
3131
+ });
3132
+ });
3133
+ }
3134
+ function ae(e) {
3135
+ if (e.key === "ArrowDown") e.preventDefault(), R(1);
3136
+ else if (e.key === "ArrowUp") e.preventDefault(), R(-1);
3137
+ else if (e.key === "Enter") {
3138
+ e.preventDefault();
3139
+ let t = F.value[T.value];
3140
+ t && I(t);
3141
+ }
3142
+ }
3143
+ function oe() {
3144
+ if (F.value.length !== 0) return `${$}-opt-${T.value}`;
3145
+ }
3146
+ function se(e) {
3147
+ return `${$}-opt-${e}`;
3148
+ }
3149
+ let ce = h(() => t.tags.value.length === 0), le = h(() => !ce.value && N.value.length === 0), ue = h(() => E.value && ee.value.length > 1 && !x.value);
3150
+ return (e, o) => (a(), b(V, {
3151
+ visible: v(t).isOpen.value,
3152
+ onClose: L,
3153
+ onKeydown: ae
3154
+ }, {
3155
+ default: l(() => [w("div", {
3156
+ role: "dialog",
3157
+ "aria-modal": "true",
3158
+ "aria-labelledby": `${$}-title`,
3159
+ "data-testid": "merge-tag-picker-modal",
3160
+ class: "tpl tpl:flex tpl:max-h-[80vh] tpl:w-[min(420px,92vw)] tpl:flex-col tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:shadow-[var(--tpl-shadow-lg)]"
3161
+ }, [
3162
+ w("header", Hs, [w("h2", {
3163
+ id: `${$}-title`,
3164
+ class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
3165
+ }, m(v(r).mergeTag.picker.title), 9, Us), w("button", {
3166
+ type: "button",
3167
+ class: "tpl:flex tpl:h-7 tpl:w-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:bg-transparent tpl:text-[var(--tpl-text-dim)] tpl:transition-colors tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]",
3168
+ "aria-label": v(r).mergeTag.picker.close,
3169
+ "data-testid": "merge-tag-picker-close",
3170
+ onClick: L
3171
+ }, [j(v(Oe), {
3172
+ size: 16,
3173
+ "stroke-width": 2
3174
+ })], 8, Ws)]),
3175
+ w("div", Gs, [j(v(lt), {
3176
+ class: "tpl:pointer-events-none tpl:absolute tpl:top-1/2 tpl:left-5 tpl:-translate-y-1/2 tpl:text-[var(--tpl-text-dim)]",
3177
+ size: 14,
3178
+ "stroke-width": 2
3179
+ }), n(w("input", {
3180
+ id: `${$}-search`,
3181
+ ref_key: "searchInputRef",
3182
+ ref: f,
3183
+ "onUpdate:modelValue": o[0] ||= (e) => c.value = e,
3184
+ type: "text",
3185
+ class: "tpl:w-full tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:py-1.5 tpl:pr-3 tpl:pl-8 tpl:text-sm tpl:text-[var(--tpl-text)] tpl:outline-none tpl:focus:border-[var(--tpl-primary)]",
3186
+ placeholder: v(r).mergeTag.picker.searchPlaceholder,
3187
+ "aria-label": v(r).mergeTag.picker.searchAriaLabel,
3188
+ "aria-controls": $,
3189
+ "aria-activedescendant": oe(),
3190
+ "data-testid": "merge-tag-picker-search",
3191
+ onKeydown: o[1] ||= p(y(() => {}, ["prevent"]), ["enter"])
3192
+ }, null, 40, Ks), [[S, c.value]])]),
3193
+ ue.value ? (a(), g("div", qs, [(a(!0), g(O, null, s(ee.value, (e) => (a(), g("button", {
3194
+ key: e,
3195
+ type: "button",
3196
+ class: "tpl:flex tpl:flex-shrink-0 tpl:cursor-pointer tpl:items-center tpl:rounded-full tpl:border tpl:border-[var(--tpl-border)] tpl:bg-transparent tpl:px-2.5 tpl:py-0.5 tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-dim)] tpl:transition-colors tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]",
3197
+ "data-testid": "merge-tag-picker-group-pill",
3198
+ "data-group-name": e,
3199
+ onClick: (t) => ie(e)
3200
+ }, m(e), 9, Js))), 128))])) : _("", !0),
3201
+ w("div", {
3202
+ id: $,
3203
+ ref_key: "listRef",
3204
+ ref: B,
3205
+ class: "tpl:relative tpl:max-h-[60vh] tpl:flex-1 tpl:overflow-y-auto",
3206
+ role: "listbox",
3207
+ "aria-label": v(r).mergeTag.picker.title,
3208
+ "data-testid": "merge-tag-picker-list"
3209
+ }, [ce.value ? (a(), g("div", Xs, m(v(r).mergeTag.picker.empty), 1)) : le.value ? (a(), g("div", Zs, m(v(r).mergeTag.picker.noResults), 1)) : (a(!0), g(O, { key: 2 }, s(P.value, (e, t) => (a(), g(O, { key: t }, [e.kind === "header" ? (a(), g("button", {
3210
+ key: 0,
3211
+ ref_for: !0,
3212
+ ref: (t) => ne(e.group, t),
3213
+ type: "button",
3214
+ "aria-expanded": !k(e.group),
3215
+ "aria-controls": $,
3216
+ class: "tpl:sticky tpl:top-0 tpl:z-10 tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-center tpl:gap-1.5 tpl:border-none tpl:bg-[var(--tpl-bg-elevated)] tpl:px-3 tpl:pt-2.5 tpl:pb-1 tpl:text-left tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-dim)] tpl:transition-colors tpl:hover:bg-[var(--tpl-bg-hover)]",
3217
+ "data-testid": "merge-tag-picker-group-header",
3218
+ "data-group-name": e.group,
3219
+ "data-group-collapsed": k(e.group) ? "true" : "false",
3220
+ onClick: (t) => A(e.group)
3221
+ }, [
3222
+ j(v(Le), {
3223
+ size: 12,
3224
+ "stroke-width": 2,
3225
+ class: C(["tpl:transition-transform", k(e.group) ? "tpl:-rotate-90" : ""])
3226
+ }, null, 8, ["class"]),
3227
+ w("span", null, m(e.group), 1),
3228
+ w("span", $s, " (" + m(v(i)(v(r).mergeTag.picker.groupCount, { count: e.count })) + ") ", 1)
3229
+ ], 8, Qs)) : (a(), g("button", {
3230
+ key: 1,
3231
+ id: se(e.index),
3232
+ type: "button",
3233
+ role: "option",
3234
+ "aria-selected": e.index === T.value,
3235
+ "data-selected": e.index === T.value ? "true" : "false",
3236
+ "data-merge-tag-index": e.index,
3237
+ "data-merge-tag-value": e.tag.value,
3238
+ title: e.tag.description ? `${e.tag.value} — ${e.tag.description}` : e.tag.value,
3239
+ class: C(["tpl:flex tpl:w-full tpl:cursor-pointer tpl:flex-col tpl:items-start tpl:gap-0.5 tpl:border-none tpl:px-3 tpl:py-1.5 tpl:text-left tpl:transition-colors", e.index === T.value ? "tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary)]" : "tpl:bg-transparent tpl:text-[var(--tpl-text)] tpl:hover:bg-[var(--tpl-bg-hover)]"]),
3240
+ "data-testid": "merge-tag-picker-item",
3241
+ onMousemove: (t) => T.value = e.index,
3242
+ onClick: (t) => I(e.tag)
3243
+ }, [
3244
+ w("span", tc, m(e.tag.label), 1),
3245
+ w("span", nc, m(e.tag.value), 1),
3246
+ e.tag.description ? (a(), g("span", rc, m(e.tag.description), 1)) : _("", !0)
3247
+ ], 42, ec))], 64))), 128))], 8, Ys)
3248
+ ], 8, Vs)]),
3249
+ _: 1
3250
+ }, 8, ["visible"]));
3251
+ }
2997
3252
  });
2998
3253
  //#endregion
2999
- export { Ts as a, Et as c, Os as i, Ms as n, Gt as o, As as r, It as s, Fs as t };
3254
+ export { Ns as a, Vt as c, Fs as i, jt as l, Bs as n, As as o, Ls as r, Xt as s, ic as t };
3000
3255
 
3001
- //# sourceMappingURL=styles-5g8XOS68.js.map
3256
+ //# sourceMappingURL=styles-o0HIrw9F.js.map