@templatical/editor 0.13.0 → 0.14.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 (153) hide show
  1. package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-J8iO_sX7.js} +14 -14
  2. package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-F2diEDgV.js} +10 -10
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-a-qlByxF.js} +5 -5
  4. package/dist/{CloudEditor-DaEfipBn.js → CloudEditor-CDjtwb4i.js} +236 -234
  5. package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-B_EnJLtW.js} +4 -4
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-DaP9BA_r.js} +18 -18
  7. package/dist/{CountdownBlock-DO9fziwf.js → CountdownBlock-DtAokAVw.js} +3 -3
  8. package/dist/{CountdownToolbar-BeII06yJ.js → CountdownToolbar-Dtqgwy0g.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-BHRlTqlT.js} +10 -10
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-u7ee3Wrl.js} +11 -11
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-CV3ID80N.js} +1 -1
  12. package/dist/ModuleBrowserModal-DOsdaS6s.js +201 -0
  13. package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-Cx4MOJ0X.js} +3 -3
  14. package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-D2mW_DhT.js} +4 -4
  15. package/dist/{ParagraphEditor-CZ-cmhX3.js → ParagraphEditor-DMzkVnST.js} +153 -133
  16. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-CRCxCwKf.js} +7 -7
  17. package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-DuEKgumL.js} +8 -8
  18. package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-CVgiNJtE.js} +12 -12
  19. package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-lm0_9nYi.js} +25 -25
  20. package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-WBMdiW5S.js} +5 -5
  21. package/dist/{TitleEditor-DbNOcvhR.js → TitleEditor-eyT0h-Sa.js} +71 -55
  22. package/dist/{TplModal-BYb-X5Bj.js → TplModal-tjQ7OB0g.js} +4 -4
  23. package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-DdB3uTKD.js} +5 -5
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-D7rB2SBs.js} +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-D7rB2SBs.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-DHOe0pgx.js} +5 -5
  28. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-DHOe0pgx.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DNed_Ym0.js} +208 -206
  30. package/dist/cdn/chunks/CloudEditor-DNed_Ym0.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-sj_9Lee3.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-sj_9Lee3.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-C1Ikjpn4.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-C1Ikjpn4.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-j1G_X8rB.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-j1G_X8rB.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-CTOf3PsH.js} +11 -11
  38. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-CTOf3PsH.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-DCh88-rr.js} +11 -8
  40. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-DCh88-rr.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-DJqvTKmg.js} +21 -21
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-DJqvTKmg.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-Bu45XWSl.js} +5 -5
  44. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-Bu45XWSl.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-DwZqLJp2.js} +130 -110
  46. package/dist/cdn/chunks/ParagraphEditor-DwZqLJp2.js.map +1 -0
  47. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-CIuZ-2DV.js} +4 -4
  48. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-CIuZ-2DV.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-Bep0X2s_.js} +6 -6
  50. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-Bep0X2s_.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-DO1-h3RY.js} +62 -46
  52. package/dist/cdn/chunks/TitleEditor-DO1-h3RY.js.map +1 -0
  53. package/dist/cdn/chunks/blockTypeIcons-8o24HVJu.js +22 -0
  54. package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-8o24HVJu.js.map} +1 -1
  55. package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
  56. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kPCz_3zM.js} +14 -5
  58. package/dist/cdn/chunks/{draggable-Bci-fq8y.js.map → draggable-kPCz_3zM.js.map} +1 -1
  59. package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
  60. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  61. package/dist/cdn/chunks/{extensions-CuUjSmuA.js → extensions-iwBXnEwq.js} +16 -16
  62. package/dist/cdn/chunks/{extensions-CuUjSmuA.js.map → extensions-iwBXnEwq.js.map} +1 -1
  63. package/dist/cdn/chunks/{features-DU6lA8l1.js → features-CkTMVylx.js} +940 -812
  64. package/dist/cdn/chunks/features-CkTMVylx.js.map +1 -0
  65. package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-9zjCuoJx.js} +158 -152
  66. package/dist/cdn/chunks/icons-9zjCuoJx.js.map +1 -0
  67. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +1 -1
  68. package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-DMRIPx4g.js} +552 -550
  69. package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-DMRIPx4g.js.map} +1 -1
  70. package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
  71. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  72. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CdEqyLwF.js} +6 -3
  73. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CdEqyLwF.js.map} +1 -1
  74. package/dist/cdn/chunks/quality-CyeUgs_c.js +2176 -0
  75. package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CyeUgs_c.js.map} +1 -1
  76. package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-BIKUEKDD.js} +39 -30
  77. package/dist/cdn/chunks/{renderer-CZKO-Tav.js.map → renderer-BIKUEKDD.js.map} +1 -1
  78. package/dist/cdn/chunks/{src-DsqSXXjk.js → src-pDy_imWG.js} +11 -11
  79. package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-pDy_imWG.js.map} +1 -1
  80. package/dist/cdn/chunks/{styles-DiAdtiz9.js → styles-D4Bd3SCx.js} +1197 -822
  81. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +1 -0
  82. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-BlLFFU3M.js} +2233 -2213
  83. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +1 -0
  84. package/dist/cdn/editor.css +1 -1
  85. package/dist/cdn/editor.js +117 -115
  86. package/dist/cdn/editor.js.map +1 -1
  87. package/dist/{check-BRzXxFHr.js → check-CYJwFmjy.js} +1 -1
  88. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-C5l-DzAA.js} +1 -1
  89. package/dist/{circle-alert-BStvZr3O.js → circle-alert-wf5HUFZY.js} +1 -1
  90. package/dist/{clock-Blwp_1R6.js → clock-Bj0bQw-K.js} +1 -1
  91. package/dist/{cloud-_olro76D.js → cloud-CoFDm9YA.js} +1 -1
  92. package/dist/{createLucideIcon-CmPAC-gt.js → createLucideIcon-Bad2kKE0.js} +4 -4
  93. package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
  94. package/dist/{dist-BwgjpLfr.js → dist-34OcyoK1.js} +1 -1
  95. package/dist/{dist-Cz79qrLL.js → dist-B7w6xTU6.js} +1 -1
  96. package/dist/{dist-DULfKmTh.js → dist-BX3gGwL8.js} +5 -5
  97. package/dist/{dist-412xXefB.js → dist-Bn703mnA.js} +1 -1
  98. package/dist/{dist-u0iIJH3V.js → dist-CADDCv0o.js} +1 -1
  99. package/dist/{dist-BNEdeWub.js → dist-CGvz7vkq.js} +1 -1
  100. package/dist/{dist-BlG7k25W.js → dist-CLpPNKy9.js} +1 -1
  101. package/dist/{dist-BCQZZUE9.js → dist-ChMninLH.js} +1 -1
  102. package/dist/{dist-b7Ak-CuM.js → dist-CrQZ_af9.js} +1 -1
  103. package/dist/{dist-DhKTdU52.js → dist-CyjyYg52.js} +1426 -1406
  104. package/dist/{dist-D6x1cQeh.js → dist-Dd3ibRZm.js} +2 -2
  105. package/dist/{dist-Cgry6fNv.js → dist-DuCzdgDA.js} +1 -1
  106. package/dist/{dist-o73iaGqy.js → dist-U5vfDdYI.js} +1 -1
  107. package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
  108. package/dist/{extensions-XPlNAKIL.js → extensions-J439b7y7.js} +5 -5
  109. package/dist/{image-up-BFPbw_Zq.js → image-up-x8-WXfsx.js} +1 -1
  110. package/dist/index.d.ts +17 -0
  111. package/dist/{info-B_qLEBN2.js → info-RS_fGcGi.js} +1 -1
  112. package/dist/keys-DgYXDafq.js +10 -0
  113. package/dist/{list-checks-CGg7JxPm.js → list-checks-Bf7XdDyv.js} +1 -1
  114. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-CLZ0_FvW.js} +1 -1
  115. package/dist/{message-circle-C3cHsCJl.js → message-circle-B-1bN9ab.js} +1 -1
  116. package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
  117. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-CWKWqJYG.js} +1 -1
  118. package/dist/scan-line-BtK5dEai.js +31 -0
  119. package/dist/{send-k7npFJNO.js → send-Cn1IUdzh.js} +1 -1
  120. package/dist/{shield-check-CV6GbmCu.js → shield-check-CrvMk4Ea.js} +1 -1
  121. package/dist/{sparkles-C965Xop4.js → sparkles-CgfjwvnG.js} +1 -1
  122. package/dist/style.css +1 -1
  123. package/dist/{styles-D0RCAWhB.js → styles-BUwDOWd3.js} +1221 -846
  124. package/dist/templatical-editor.js +95 -93
  125. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-C3r_Rnvy.js} +1 -1
  126. package/dist/{trash-2-DpGb7fIt.js → trash-2-CjERg4x9.js} +1 -1
  127. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-Chkny574.js} +1 -1
  128. package/dist/{upload-BF7sxd1_.js → upload-e5kDRkPb.js} +1 -1
  129. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-cUQj9rmB.js} +1 -1
  130. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-CYJKqXtI.js} +2 -2
  131. package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-8JxXDOA4.js} +1031 -903
  132. package/dist/{useI18n-CTs_bP9d.js → useI18n-BWqM8i78.js} +2 -2
  133. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-NHC4ylza.js} +3 -3
  134. package/dist/usePopoverRoot-B1sdY4es.js +8 -0
  135. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-BPa483TZ.js} +13 -4
  136. package/dist/{x-CGjkjdKK.js → x-DiPIbccg.js} +1 -1
  137. package/package.json +12 -12
  138. package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
  139. package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
  140. package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
  141. package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
  142. package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
  143. package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
  144. package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
  145. package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
  146. package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
  147. package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
  148. package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
  149. package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
  150. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  151. package/dist/keys-mFiJ5N0_.js +0 -10
  152. package/dist/scan-line-XYEqim_E.js +0 -25
  153. package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
@@ -1,67 +1,39 @@
1
- import { A as e, B as t, E as n, F as r, J as i, L as a, M as o, N as s, S as c, U as l, X as u, _ as d, a as f, at as p, b as m, c as h, d as g, f as _, h as v, l as y, m as b, o as x, ot as S, p as C, q as w, rt as T, s as E, st as D, t as O, v as k, w as A, y as j, z as M } from "./vue.runtime.esm-bundler-B2k01iQh.js";
2
- import { C as N, D as P, O as F, o as I, r as L, s as R, u as ee, w as z } from "./dist-BctFrpeA.js";
3
- import { A as B, E as te, F as ne, I as re, L as V, M as ie, N as ae, P as oe, _ as se, a as ce, c as le, f as ue, g as de, h as fe, i as pe, j as me, l as he, m as ge, n as _e, o as ve, p as ye, r as be, s as xe, u as Se, v as Ce, y as we } from "./useEditorCore-DKYZ7aKk.js";
4
- import { l as Te, o as Ee } from "./dist-Cgry6fNv.js";
5
- import { A as De, C as Oe, M as ke, N as Ae, S as je, T as Me, a as Ne, d as Pe, f as Fe, g as Ie, k as Le, m as Re, n as ze, o as Be, p as Ve, s as He, u as Ue, x as We } from "./keys-mFiJ5N0_.js";
6
- import { t as H } from "./useI18n-CTs_bP9d.js";
7
- import { t as U } from "./createLucideIcon-CmPAC-gt.js";
8
- import { t as Ge } from "./circle-alert-BStvZr3O.js";
9
- import { i as Ke, n as qe, r as Je, t as Ye } from "./blockTypeIcons-CyAom3iI.js";
10
- import { t as Xe } from "./loader-circle-CDF8eR_Q.js";
11
- import { t as Ze } from "./sparkles-C965Xop4.js";
12
- import { n as Qe, r as $e, t as et } from "./text-align-start-Bxnps8fH.js";
13
- import { t as tt } from "./chevron-down-DmEgzmYT.js";
14
- import { n as nt, t as rt } from "./refresh-cw-Butml7Q4.js";
15
- import { t as it } from "./image-up-BFPbw_Zq.js";
16
- import { t as at } from "./info-B_qLEBN2.js";
17
- import { t as ot } from "./list-checks-CGg7JxPm.js";
18
- import { t as st } from "./scan-line-XYEqim_E.js";
19
- import { t as ct } from "./trash-2-DpGb7fIt.js";
20
- import { t as lt } from "./upload-BF7sxd1_.js";
21
- import { t as ut } from "./x-CGjkjdKK.js";
22
- import { t as dt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
23
- import { t as ft } from "./useCloudI18n-L3H2XvdW.js";
24
- import { t as pt } from "./useMergeTag-e3RSY-s3.js";
25
- import { t as mt } from "./useAliveFlag-BinvbqQR.js";
26
- import { t as ht } from "./readableTextColor-f8Kykfnh.js";
27
- import { t as gt } from "./CountdownBlock-DO9fziwf.js";
28
- import { _ as _t, c as vt, f as W, g as yt, h as G, l as bt, m as K, p as q, r as xt, t as St } from "./styleConstants-lGobwiLH.js";
29
- import { i as J, n as Y, r as X, t as Ct } from "./NumberWithSuffix-D3fdj0iO.js";
30
- import { t as wt } from "./TplModal-BYb-X5Bj.js";
31
- var Tt = U("lock-open", [["rect", {
32
- width: "18",
33
- height: "11",
34
- x: "3",
35
- y: "11",
36
- rx: "2",
37
- ry: "2",
38
- key: "1w4ew1"
39
- }], ["path", {
40
- d: "M7 11V7a5 5 0 0 1 9.9-1",
41
- key: "1mm8w8"
42
- }]]), Et = U("square-plus", [
43
- ["rect", {
44
- width: "18",
45
- height: "18",
46
- x: "3",
47
- y: "3",
48
- rx: "2",
49
- key: "afitv7"
50
- }],
51
- ["path", {
52
- d: "M8 12h8",
53
- key: "1wcyev"
54
- }],
55
- ["path", {
56
- d: "M12 8v8",
57
- key: "napkw2"
58
- }]
59
- ]), Dt = U("circle", [["circle", {
1
+ import { A as e, B as t, E as n, F as r, J as i, L as a, M as o, N as s, S as c, U as l, X as u, _ as d, a as f, at as p, b as m, c as h, d as g, f as _, h as v, l as y, m as b, o as x, ot as S, p as C, q as w, rt as T, s as E, st as D, t as O, v as k, w as A, y as j, z as M } from "./vue.runtime.esm-bundler-BPa483TZ.js";
2
+ import { C as N, D as P, O as F, o as I, r as L, s as R, u as z, w as B } from "./dist-BctFrpeA.js";
3
+ import { D as V, F as ee, I as te, L as H, M as ne, N as U, P as re, R as ie, S as ae, _ as oe, a as se, c as ce, f as le, g as ue, h as de, i as fe, j as pe, l as me, m as he, n as ge, o as _e, p as ve, r as ye, s as be, u as xe, v as Se, y as Ce } from "./useEditorCore-8JxXDOA4.js";
4
+ import { l as we, o as Te } from "./dist-DuCzdgDA.js";
5
+ import { D as Ee, I as De, L as Oe, N as ke, P as Ae, T as je, a as Me, d as Ne, f as Pe, g as Fe, k as Ie, m as Le, n as Re, o as ze, p as Be, s as Ve, u as He, w as Ue, x as We } from "./keys-DgYXDafq.js";
6
+ import { t as W } from "./useI18n-BWqM8i78.js";
7
+ import { t as G } from "./createLucideIcon-Bad2kKE0.js";
8
+ import { n as Ge, t as Ke } from "./scan-line-BtK5dEai.js";
9
+ import { t as qe } from "./chevron-down-C5l-DzAA.js";
10
+ import { t as Je } from "./circle-alert-wf5HUFZY.js";
11
+ import { i as Ye, n as Xe, r as Ze, t as Qe } from "./blockTypeIcons-DdB3uTKD.js";
12
+ import { n as $e, t as et } from "./refresh-cw-CWKWqJYG.js";
13
+ import { t as tt } from "./image-up-x8-WXfsx.js";
14
+ import { t as nt } from "./info-RS_fGcGi.js";
15
+ import { t as rt } from "./list-checks-Bf7XdDyv.js";
16
+ import { t as it } from "./loader-circle-CLZ0_FvW.js";
17
+ import { t as at } from "./sparkles-CgfjwvnG.js";
18
+ import { n as ot, r as st, t as ct } from "./text-align-start-C3r_Rnvy.js";
19
+ import { t as lt } from "./trash-2-CjERg4x9.js";
20
+ import { t as ut } from "./upload-e5kDRkPb.js";
21
+ import { t as dt } from "./x-DiPIbccg.js";
22
+ import { t as ft } from "./_plugin-vue_export-helper-B3ysoDQm.js";
23
+ import { t as pt } from "./useCloudI18n-CYJKqXtI.js";
24
+ import { t as mt } from "./useMergeTag-NHC4ylza.js";
25
+ import { t as ht } from "./useAliveFlag-cUQj9rmB.js";
26
+ import { t as gt } from "./readableTextColor-f8Kykfnh.js";
27
+ import { t as _t } from "./CountdownBlock-DtAokAVw.js";
28
+ import { _ as vt, c as yt, f as K, g as bt, h as q, l as xt, m as J, p as Y, r as St, t as Ct } from "./styleConstants-lGobwiLH.js";
29
+ import { i as X, n as Z, r as wt, t as Tt } from "./NumberWithSuffix-D2mW_DhT.js";
30
+ import { t as Et } from "./TplModal-tjQ7OB0g.js";
31
+ var Dt = G("circle", [["circle", {
60
32
  cx: "12",
61
33
  cy: "12",
62
34
  r: "10",
63
35
  key: "1mglay"
64
- }]]), Ot = U("globe", [
36
+ }]]), Ot = G("globe", [
65
37
  ["circle", {
66
38
  cx: "12",
67
39
  cy: "12",
@@ -76,7 +48,7 @@ var Tt = U("lock-open", [["rect", {
76
48
  d: "M2 12h20",
77
49
  key: "9i4pu4"
78
50
  }]
79
- ]), kt = U("layout-template", [
51
+ ]), kt = G("layout-template", [
80
52
  ["rect", {
81
53
  width: "18",
82
54
  height: "7",
@@ -101,7 +73,18 @@ var Tt = U("lock-open", [["rect", {
101
73
  rx: "1",
102
74
  key: "q5h2i8"
103
75
  }]
104
- ]), At = U("lock", [["rect", {
76
+ ]), At = G("lock-open", [["rect", {
77
+ width: "18",
78
+ height: "11",
79
+ x: "3",
80
+ y: "11",
81
+ rx: "2",
82
+ ry: "2",
83
+ key: "1w4ew1"
84
+ }], ["path", {
85
+ d: "M7 11V7a5 5 0 0 1 9.9-1",
86
+ key: "1mm8w8"
87
+ }]]), jt = G("lock", [["rect", {
105
88
  width: "18",
106
89
  height: "11",
107
90
  x: "3",
@@ -112,7 +95,7 @@ var Tt = U("lock-open", [["rect", {
112
95
  }], ["path", {
113
96
  d: "M7 11V7a5 5 0 0 1 10 0v4",
114
97
  key: "fwvmzm"
115
- }]]), jt = U("monitor", [
98
+ }]]), Mt = G("monitor", [
116
99
  ["rect", {
117
100
  width: "20",
118
101
  height: "14",
@@ -135,10 +118,10 @@ var Tt = U("lock-open", [["rect", {
135
118
  y2: "21",
136
119
  key: "vw1qmm"
137
120
  }]
138
- ]), Mt = U("moon", [["path", {
121
+ ]), Nt = G("moon", [["path", {
139
122
  d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
140
123
  key: "kfwtm"
141
- }]]), Nt = U("panel-top", [["rect", {
124
+ }]]), Pt = G("panel-top", [["rect", {
142
125
  width: "18",
143
126
  height: "18",
144
127
  x: "3",
@@ -148,19 +131,19 @@ var Tt = U("lock-open", [["rect", {
148
131
  }], ["path", {
149
132
  d: "M3 9h18",
150
133
  key: "1pudct"
151
- }]]), Z = U("plus", [["path", {
134
+ }]]), Q = G("plus", [["path", {
152
135
  d: "M5 12h14",
153
136
  key: "1ays0h"
154
137
  }], ["path", {
155
138
  d: "M12 5v14",
156
139
  key: "s699le"
157
- }]]), Pt = U("rotate-ccw", [["path", {
140
+ }]]), Ft = G("rotate-ccw", [["path", {
158
141
  d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",
159
142
  key: "1357e3"
160
143
  }], ["path", {
161
144
  d: "M3 3v5h5",
162
145
  key: "1xhq8a"
163
- }]]), Ft = U("settings", [["path", {
146
+ }]]), It = G("settings", [["path", {
164
147
  d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",
165
148
  key: "1i5ecw"
166
149
  }], ["circle", {
@@ -168,7 +151,7 @@ var Tt = U("lock-open", [["rect", {
168
151
  cy: "12",
169
152
  r: "3",
170
153
  key: "1v7zrd"
171
- }]]), It = U("smartphone", [["rect", {
154
+ }]]), Lt = G("smartphone", [["rect", {
172
155
  width: "14",
173
156
  height: "20",
174
157
  x: "5",
@@ -179,14 +162,31 @@ var Tt = U("lock-open", [["rect", {
179
162
  }], ["path", {
180
163
  d: "M12 18h.01",
181
164
  key: "mhygvu"
182
- }]]), Lt = U("square", [["rect", {
165
+ }]]), Rt = G("square-plus", [
166
+ ["rect", {
167
+ width: "18",
168
+ height: "18",
169
+ x: "3",
170
+ y: "3",
171
+ rx: "2",
172
+ key: "afitv7"
173
+ }],
174
+ ["path", {
175
+ d: "M8 12h8",
176
+ key: "1wcyev"
177
+ }],
178
+ ["path", {
179
+ d: "M12 8v8",
180
+ key: "napkw2"
181
+ }]
182
+ ]), zt = G("square", [["rect", {
183
183
  width: "18",
184
184
  height: "18",
185
185
  x: "3",
186
186
  y: "3",
187
187
  rx: "2",
188
188
  key: "afitv7"
189
- }]]), Rt = U("sun", [
189
+ }]]), Bt = G("sun", [
190
190
  ["circle", {
191
191
  cx: "12",
192
192
  cy: "12",
@@ -228,7 +228,7 @@ var Tt = U("lock-open", [["rect", {
228
228
  ]);
229
229
  //#endregion
230
230
  //#region src/utils/resolveLintOptions.ts
231
- function zt(e) {
231
+ function Vt(e) {
232
232
  return {
233
233
  ...e.lint,
234
234
  locale: e.locale
@@ -236,19 +236,19 @@ function zt(e) {
236
236
  }
237
237
  //#endregion
238
238
  //#region src/components/Canvas.vue?vue&type=script&setup=true&lang.ts
239
- var Bt = ["aria-label"], Vt = {
239
+ var Ht = ["aria-label"], Ut = {
240
240
  key: 0,
241
241
  class: "tpl-canvas-empty-content tpl:flex tpl:flex-col tpl:items-center"
242
- }, Ht = { class: "tpl-canvas-empty-icon tpl:mb-4 tpl:text-[var(--tpl-primary)]" }, Ut = { class: "tpl-canvas-empty-title tpl:m-0 tpl:mb-2 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-primary)]" }, Wt = { class: "tpl-canvas-empty-text tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-dim)]" }, Gt = {
242
+ }, Wt = { class: "tpl-canvas-empty-icon tpl:mb-4 tpl:text-[var(--tpl-primary)]" }, Gt = { class: "tpl-canvas-empty-title tpl:m-0 tpl:mb-2 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-primary)]" }, Kt = { class: "tpl-canvas-empty-text tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-dim)]" }, qt = {
243
243
  key: 0,
244
244
  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)]"
245
- }, Kt = {
245
+ }, Jt = {
246
246
  key: 1,
247
247
  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)]"
248
- }, qt = { class: "tpl:relative" }, Jt = {
248
+ }, Yt = { class: "tpl:relative" }, Xt = {
249
249
  class: "tpl:inline-flex tpl:size-3 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[8px] tpl:font-bold",
250
250
  style: { "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 30%,\n transparent\n )" }
251
- }, Yt = 96, Xt = /*#__PURE__*/ dt(/* @__PURE__ */ m({
251
+ }, Zt = 96, Qt = /*#__PURE__*/ ft(/* @__PURE__ */ m({
252
252
  __name: "Canvas",
253
253
  props: {
254
254
  viewport: {},
@@ -265,21 +265,21 @@ var Bt = ["aria-label"], Vt = {
265
265
  ],
266
266
  setup(n, { emit: i }) {
267
267
  let a = {
268
- section: xe,
269
- title: he,
270
- paragraph: ye,
271
- image: fe,
272
- button: oe,
273
- divider: Ce,
274
- spacer: pe,
275
- html: se,
276
- social: ce,
277
- menu: ge,
278
- table: be,
279
- video: _e,
280
- countdown: gt,
281
- custom: we
282
- }, s = n, c = i, { t: l } = H(), { t: f } = ft(), m = Ae(Re, "Canvas"), h = A(Ue, null), w = A(Be, null), E = A(He, {}), O = g(() => (E.plan?.hasFeature("ai_generation") ?? !1) && (E.ai?.isFeatureEnabled("chat") ?? !1)), j = g(() => (E.plan?.hasFeature("ai_generation") ?? !1) && (E.ai?.isFeatureEnabled("designToTemplate") ?? !1)), N = g({
268
+ section: be,
269
+ title: me,
270
+ paragraph: ve,
271
+ image: de,
272
+ button: ee,
273
+ divider: Se,
274
+ spacer: fe,
275
+ html: oe,
276
+ social: se,
277
+ menu: he,
278
+ table: ye,
279
+ video: ge,
280
+ countdown: _t,
281
+ custom: Ce
282
+ }, s = n, c = i, { t: l } = W(), { t: f } = pt(), m = Oe(Le, "Canvas"), h = A(He, null), w = A(ze, null), E = A(Ve, {}), O = g(() => (E.plan?.hasFeature("ai_generation") ?? !1) && (E.ai?.isFeatureEnabled("chat") ?? !1)), j = g(() => (E.plan?.hasFeature("ai_generation") ?? !1) && (E.ai?.isFeatureEnabled("designToTemplate") ?? !1)), N = g({
283
283
  get: () => s.content.blocks,
284
284
  set: (e) => {
285
285
  m.setContent({
@@ -292,26 +292,26 @@ var Bt = ["aria-label"], Vt = {
292
292
  case "mobile": return 375;
293
293
  default: return s.content.settings.width;
294
294
  }
295
- }), F = g(() => P.value + Yt * 2), I = g(() => ({ fontFamily: s.content.settings.fontFamily })), L = g(() => N.value.length === 0 && !s.previewMode), R = u(0), ee = g(() => L.value && R.value > 0);
296
- function z() {
295
+ }), F = g(() => P.value + Zt * 2), I = g(() => ({ fontFamily: s.content.settings.fontFamily })), L = g(() => N.value.length === 0 && !s.previewMode), R = u(0), z = g(() => L.value && R.value > 0);
296
+ function B() {
297
297
  L.value && (R.value += 1);
298
298
  }
299
- function B() {
299
+ function V() {
300
300
  L.value && (R.value = Math.max(0, R.value - 1));
301
301
  }
302
302
  function te() {
303
303
  R.value = 0;
304
304
  }
305
- function ne(e) {
305
+ function H(e) {
306
306
  s.previewMode || e.target === e.currentTarget && c("select-block", null);
307
307
  }
308
- function re(e) {
309
- return ue(e, w, a);
308
+ function ne(e) {
309
+ return le(e, w, a);
310
310
  }
311
- function V(e) {
311
+ function U(e) {
312
312
  return s.lockedBlocks?.get(e) ?? null;
313
313
  }
314
- function ie(e, t) {
314
+ function re(e, t) {
315
315
  e.type === "custom" && m.updateBlock(e.id, {
316
316
  fieldValues: t.fieldValues,
317
317
  dataSourceFetched: t.dataSourceFetched
@@ -346,8 +346,8 @@ var Bt = ["aria-label"], Vt = {
346
346
  "tpl-preview-mode": n.previewMode
347
347
  }]),
348
348
  style: S(I.value),
349
- onClick: ne
350
- }, [k(T(le), {
349
+ onClick: H
350
+ }, [k(T(ce), {
351
351
  modelValue: N.value,
352
352
  "onUpdate:modelValue": a[2] ||= (e) => N.value = e,
353
353
  group: "blocks",
@@ -363,37 +363,37 @@ var Bt = ["aria-label"], Vt = {
363
363
  class: p([
364
364
  "tpl-canvas-blocks",
365
365
  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" : "",
366
- L.value && ee.value ? "tpl-canvas-empty--drag-over tpl:border-[var(--tpl-primary-hover)] tpl:bg-[var(--tpl-primary-light)]" : "",
367
- L.value && !ee.value ? "tpl:border-[var(--tpl-primary)]" : ""
366
+ L.value && z.value ? "tpl-canvas-empty--drag-over tpl:border-[var(--tpl-primary-hover)] tpl:bg-[var(--tpl-primary-light)]" : "",
367
+ L.value && !z.value ? "tpl:border-[var(--tpl-primary)]" : ""
368
368
  ]),
369
- onDragenter: z,
370
- onDragleave: B,
369
+ onDragenter: B,
370
+ onDragleave: V,
371
371
  onDrop: te
372
372
  }, {
373
- default: M(() => [L.value ? (e(), v("div", Vt, [
374
- _("div", Ht, [k(T(Et), {
373
+ default: M(() => [L.value ? (e(), v("div", Ut, [
374
+ _("div", Wt, [k(T(Rt), {
375
375
  size: 48,
376
376
  "stroke-width": 1
377
377
  })]),
378
- _("p", Ut, D(T(l).canvas.noBlocks), 1),
379
- _("p", Wt, D(T(l).canvas.dragHint), 1),
380
- O.value && T(f) ? (e(), v("p", Gt, [
378
+ _("p", Gt, D(T(l).canvas.noBlocks), 1),
379
+ _("p", Kt, D(T(l).canvas.dragHint), 1),
380
+ O.value && T(f) ? (e(), v("p", qt, [
381
381
  d(D(T(l).canvas.aiHintChat) + " ", 1),
382
382
  _("button", {
383
383
  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)]",
384
384
  onClick: a[0] ||= (e) => c("open-ai-chat")
385
- }, [k(T(Ze), {
385
+ }, [k(T(at), {
386
386
  size: 14,
387
387
  "stroke-width": 2
388
388
  }), d(" " + D(T(f).aiMenu.aiAssistant), 1)]),
389
389
  d(" " + D(T(l).canvas.aiHintChatSuffix), 1)
390
390
  ])) : b("", !0),
391
- j.value && T(f) ? (e(), v("p", Kt, [
391
+ j.value && T(f) ? (e(), v("p", Jt, [
392
392
  d(D(T(l).canvas.aiHintDesign) + " ", 1),
393
393
  _("button", {
394
394
  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)]",
395
395
  onClick: a[1] ||= (e) => c("open-design-reference")
396
- }, [k(T(it), {
396
+ }, [k(T(tt), {
397
397
  size: 14,
398
398
  "stroke-width": 2
399
399
  }), d(" " + D(T(f).aiMenu.designToTemplate), 1)]),
@@ -402,30 +402,30 @@ var Bt = ["aria-label"], Vt = {
402
402
  ])) : b("", !0), (e(!0), v(y, null, o(N.value, (i) => t((e(), v("div", {
403
403
  key: i.id,
404
404
  class: "tpl-block-item"
405
- }, [_("div", qt, [V(i.id) ? (e(), v("div", {
405
+ }, [_("div", Yt, [U(i.id) ? (e(), v("div", {
406
406
  key: 0,
407
407
  class: "tpl-collab-lock tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-[4] tpl:rounded-sm",
408
408
  style: S({
409
- outline: `2px solid ${V(i.id).color}`,
409
+ outline: `2px solid ${U(i.id).color}`,
410
410
  outlineOffset: "-1px"
411
411
  })
412
412
  }, [_("span", {
413
413
  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",
414
414
  style: S({
415
- backgroundColor: V(i.id).color,
416
- color: T(ht)(V(i.id).color)
415
+ backgroundColor: U(i.id).color,
416
+ color: T(gt)(U(i.id).color)
417
417
  })
418
- }, [_("span", Jt, D(V(i.id).name.charAt(0)), 1), d(" " + D(V(i.id).name), 1)], 4)], 4)) : b("", !0), k(Se, {
418
+ }, [_("span", Xt, D(U(i.id).name.charAt(0)), 1), d(" " + D(U(i.id).name), 1)], 4)], 4)) : b("", !0), k(xe, {
419
419
  block: i,
420
- "is-selected": !n.previewMode && n.selectedBlockId === i.id && !V(i.id),
420
+ "is-selected": !n.previewMode && n.selectedBlockId === i.id && !U(i.id),
421
421
  viewport: n.viewport,
422
422
  "preview-mode": n.previewMode,
423
- onSelect: (e) => n.previewMode || V(i.id) ? void 0 : c("select-block", i.id)
423
+ onSelect: (e) => n.previewMode || U(i.id) ? void 0 : c("select-block", i.id)
424
424
  }, {
425
- default: M(() => [(e(), C(r(re(i)), {
425
+ default: M(() => [(e(), C(r(ne(i)), {
426
426
  block: i,
427
427
  viewport: n.viewport,
428
- onFetchData: (e) => ie(i, e),
428
+ onFetchData: (e) => re(i, e),
429
429
  onUpdate: (e) => T(m).updateBlock(i.id, e)
430
430
  }, null, 40, [
431
431
  "block",
@@ -446,12 +446,12 @@ var Bt = ["aria-label"], Vt = {
446
446
  "modelValue",
447
447
  "disabled",
448
448
  "class"
449
- ])], 6)], 12, Bt)], 4));
449
+ ])], 6)], 12, Ht)], 4));
450
450
  }
451
- }), [["__scopeId", "data-v-a9a1158b"]]), Zt = m({
451
+ }), [["__scopeId", "data-v-a9a1158b"]]), $t = m({
452
452
  name: "CustomBlockStylesheets",
453
453
  setup() {
454
- let e = A(Fe, null);
454
+ let e = A(Pe, null);
455
455
  return () => e ? e.value.map((e, t) => c("style", {
456
456
  key: t,
457
457
  "data-tpl-custom-block-stylesheet": "",
@@ -461,7 +461,7 @@ var Bt = ["aria-label"], Vt = {
461
461
  });
462
462
  //#endregion
463
463
  //#region src/utils/resolvePaletteBlocks.ts
464
- function Qt(e, t) {
464
+ function en(e, t) {
465
465
  if (!t || t.length === 0) return {
466
466
  items: e,
467
467
  unknown: []
@@ -480,27 +480,27 @@ function Qt(e, t) {
480
480
  }
481
481
  //#endregion
482
482
  //#region src/components/Sidebar.vue?vue&type=script&setup=true&lang.ts
483
- var $t = ["aria-label"], en = {
483
+ var tn = ["aria-label"], nn = {
484
484
  key: 0,
485
485
  class: "tpl:border-b tpl:px-1 tpl:pb-1 tpl:border-[var(--tpl-border)]"
486
- }, tn = ["aria-label"], nn = {
486
+ }, rn = ["aria-label"], an = {
487
487
  key: 0,
488
488
  class: "tpl:flex-1 tpl:truncate tpl:text-sm tpl:font-medium"
489
- }, rn = {
489
+ }, on = {
490
490
  key: 1,
491
491
  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)]"
492
- }, an = [
492
+ }, sn = [
493
493
  "data-palette-type",
494
494
  "aria-label",
495
495
  "onClick",
496
496
  "onKeydown"
497
- ], on = { 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" }, sn = {
497
+ ], cn = { 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" }, ln = {
498
498
  key: 0,
499
499
  class: "tpl:truncate tpl:text-sm tpl:font-medium"
500
- }, cn = /* @__PURE__ */ m({
500
+ }, un = /* @__PURE__ */ m({
501
501
  __name: "Sidebar",
502
502
  setup(t) {
503
- let { t: n, format: i } = H(), { t: s } = ft(), c = A(Pe, []), l = A(Me, void 0), d = A(Ne, void 0), f = A(Re, null), p = A(He, {}), m = g(() => (p.savedModules?.moduleCount.value ?? 0) > 0), h = u(!1), x = u(!1);
503
+ let { t: n, format: i } = W(), { t: s } = pt(), c = A(Ne, []), l = A(Ie, void 0), d = A(Me, void 0), f = A(Le, null), p = A(Ve, {}), m = g(() => (p.savedModules?.moduleCount.value ?? 0) > 0), h = u(!1), x = u(!1);
504
504
  function w() {
505
505
  x.value || (h.value = !1);
506
506
  }
@@ -526,35 +526,35 @@ var $t = ["aria-label"], en = {
526
526
  ], N = g(() => {
527
527
  let e = j.map((e) => ({
528
528
  type: e,
529
- label: re(e, n)
529
+ label: H(e, n)
530
530
  }));
531
531
  return p.plan && e.splice(-1, 0, {
532
532
  type: "countdown",
533
- label: re("countdown", n)
533
+ label: H("countdown", n)
534
534
  }), e;
535
535
  }), P = g(() => c.map((e) => ({
536
536
  type: `custom:${e.type}`,
537
537
  label: e.name,
538
538
  isCustom: !0,
539
539
  icon: e.icon
540
- }))), F = g(() => [...N.value, ...P.value]), I = g(() => Qt(F.value, l)), L = g(() => I.value.items), z = /* @__PURE__ */ new Set();
540
+ }))), F = g(() => [...N.value, ...P.value]), I = g(() => en(F.value, l)), L = g(() => I.value.items), B = /* @__PURE__ */ new Set();
541
541
  a(() => I.value.unknown, (e) => {
542
- for (let t of e) z.has(t) || (z.add(t), ne.warn(`config.paletteBlocks: "${t}" is not a built-in or registered custom block (use the "custom:" prefix for custom blocks) — skipping it in the palette.`));
542
+ for (let t of e) B.has(t) || (B.add(t), te.warn(`config.paletteBlocks: "${t}" is not a built-in or registered custom block (use the "custom:" prefix for custom blocks) — skipping it in the palette.`));
543
543
  }, { immediate: !0 });
544
- function B(e) {
544
+ function ee(e) {
545
545
  if (e.isCustom) {
546
546
  let t = e.type.replace("custom:", ""), n = c.find((e) => e.type === t);
547
- if (n) return ee(n);
547
+ if (n) return z(n);
548
548
  }
549
549
  return R(e.type, d);
550
550
  }
551
- function V(e) {
551
+ function ne(e) {
552
552
  if (!f) return;
553
- let t = B(e);
553
+ let t = ee(e);
554
554
  f.addBlock(t), f.selectBlock(t.id);
555
555
  }
556
- function ie(e, t) {
557
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), V(t));
556
+ function U(e, t) {
557
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), ne(t));
558
558
  }
559
559
  return (t, a) => (e(), v("aside", {
560
560
  "aria-label": T(n).sidebarNav.palette,
@@ -570,28 +570,28 @@ var $t = ["aria-label"], en = {
570
570
  onMouseleave: w,
571
571
  onFocusin: a[2] ||= (e) => h.value = !0,
572
572
  onFocusout: a[3] ||= (e) => h.value = !1
573
- }, [m.value && T(s) ? (e(), v("div", en, [_("button", {
573
+ }, [m.value && T(s) ? (e(), v("div", nn, [_("button", {
574
574
  type: "button",
575
575
  "aria-label": T(n).sidebarNav.browseModules,
576
576
  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)]",
577
577
  style: S({ justifyContent: h.value ? "flex-start" : "center" }),
578
578
  onClick: a[0] ||= (e) => T(p).savedModules?.openBrowser()
579
579
  }, [
580
- k(T(Je), {
580
+ k(T(Ze), {
581
581
  size: 20,
582
582
  "stroke-width": 1.5,
583
583
  class: "tpl:shrink-0"
584
584
  }),
585
- h.value ? (e(), v("span", nn, D(T(s).modules.title), 1)) : b("", !0),
586
- h.value ? (e(), v("span", rn, D(T(p).savedModules?.moduleCount.value ?? 0), 1)) : b("", !0)
587
- ], 12, tn)])) : b("", !0), k(T(le), {
585
+ h.value ? (e(), v("span", an, D(T(s).modules.title), 1)) : b("", !0),
586
+ h.value ? (e(), v("span", on, D(T(p).savedModules?.moduleCount.value ?? 0), 1)) : b("", !0)
587
+ ], 12, rn)])) : b("", !0), k(T(ce), {
588
588
  "model-value": L.value,
589
589
  group: {
590
590
  name: "blocks",
591
591
  pull: "clone",
592
592
  put: !1
593
593
  },
594
- clone: B,
594
+ clone: ee,
595
595
  sort: !1,
596
596
  animation: 150,
597
597
  "force-fallback": !0,
@@ -606,29 +606,29 @@ var $t = ["aria-label"], en = {
606
606
  "aria-label": T(i)(T(n).sidebarNav.insertBlock, { block: t.label }),
607
607
  class: "tpl:flex tpl:h-10 tpl:w-full tpl:shrink-0 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",
608
608
  style: S({ justifyContent: h.value ? "flex-start" : "center" }),
609
- onClick: (e) => V(t),
610
- onKeydown: (e) => ie(e, t)
611
- }, [_("div", on, [T(Ye)[t.type] ? (e(), C(r(T(Ye)[t.type]), {
609
+ onClick: (e) => ne(t),
610
+ onKeydown: (e) => U(e, t)
611
+ }, [_("div", cn, [T(Qe)[t.type] ? (e(), C(r(T(Qe)[t.type]), {
612
612
  key: 0,
613
613
  size: 20,
614
614
  "stroke-width": 1.5
615
- })) : t.isCustom ? (e(), C(te, {
615
+ })) : t.isCustom ? (e(), C(V, {
616
616
  key: 1,
617
617
  icon: t.icon,
618
618
  size: 20
619
- }, null, 8, ["icon"])) : b("", !0)]), h.value ? (e(), v("span", sn, D(t.label), 1)) : b("", !0)], 44, an))), 128))]),
619
+ }, null, 8, ["icon"])) : b("", !0)]), h.value ? (e(), v("span", ln, D(t.label), 1)) : b("", !0)], 44, sn))), 128))]),
620
620
  _: 1
621
- }, 8, ["model-value"])], 44, $t));
621
+ }, 8, ["model-value"])], 44, tn));
622
622
  }
623
623
  });
624
624
  //#endregion
625
625
  //#region src/composables/useMergeTagField.ts
626
- function ln(e) {
627
- let { modelValue: t, emit: r, elementRef: i } = e, { canRequestMergeTag: a, isRequesting: o, isMergeTagValue: s, getMergeTagLabel: c, requestMergeTag: d, syntax: f } = pt(), p = u(!1), m = !1, h = !1;
626
+ function dn(e) {
627
+ let { modelValue: t, emit: r, elementRef: i } = e, { canRequestMergeTag: a, isRequesting: o, isMergeTagValue: s, getMergeTagLabel: c, requestMergeTag: d, syntax: f } = mt(), { canInsertLogicTag: p, isRequesting: m, requestLogicTag: h } = ae(), _ = u(!1), v = !1, y = !1;
628
628
  l() && w(() => {
629
- h = !0;
629
+ y = !0;
630
630
  });
631
- let _ = g(() => {
631
+ let b = g(() => {
632
632
  let e = t();
633
633
  if (!e) return [];
634
634
  let n = [], r = `(${f.value.source}|${f.logic.source})`, i = new RegExp(r, "g"), a = 0, o;
@@ -645,7 +645,7 @@ function ln(e) {
645
645
  }) : F(t, f) ? n.push({
646
646
  type: "logicMergeTag",
647
647
  value: t,
648
- keyword: z(t, f)
648
+ keyword: B(t, f)
649
649
  }) : n.push({
650
650
  type: "text",
651
651
  value: t
@@ -655,60 +655,78 @@ function ln(e) {
655
655
  type: "text",
656
656
  value: e.slice(a)
657
657
  }), n;
658
- }), v = g(() => _.value.some((e) => e.type === "mergeTag" || e.type === "logicMergeTag"));
659
- function y() {
660
- p.value = !0, n(() => {
658
+ }), x = g(() => b.value.some((e) => e.type === "mergeTag" || e.type === "logicMergeTag"));
659
+ function S() {
660
+ _.value = !0, n(() => {
661
661
  i.value?.focus();
662
662
  let e = t()?.length || 0;
663
663
  i.value?.setSelectionRange(e, e);
664
664
  });
665
665
  }
666
- function b() {
667
- m || (p.value = !1);
666
+ function C() {
667
+ v || (_.value = !1);
668
668
  }
669
- function x(e) {
669
+ function T(e) {
670
670
  r(e.target.value);
671
671
  }
672
- function S() {
672
+ function E() {
673
673
  r("");
674
674
  }
675
- async function C() {
676
- let e = p.value && i.value ? i.value.selectionStart ?? t().length : t().length;
677
- m = !0;
675
+ async function D() {
676
+ let e = _.value && i.value ? i.value.selectionStart ?? t().length : t().length;
677
+ v = !0;
678
678
  let a;
679
679
  try {
680
680
  a = await d();
681
681
  } finally {
682
- m = !1;
682
+ v = !1;
683
683
  }
684
- if (!h && a) {
685
- let o = t().slice(0, e), s = t().slice(e);
686
- r(o + a.value + s), p.value = !0, n(() => {
687
- if (h) return;
684
+ if (!y && a) {
685
+ let o = t().slice(0, e), s = t().slice(e), c = o + a.value + s;
686
+ r(c), _.value = !0, n(() => {
687
+ if (y) return;
688
688
  let t = e + a.value.length;
689
689
  i.value?.focus(), i.value?.setSelectionRange(t, t);
690
690
  });
691
691
  }
692
692
  }
693
+ async function O() {
694
+ let e = i.value, a = e?.selectionStart ?? t().length, o = e?.selectionEnd ?? a;
695
+ v = !0;
696
+ let s;
697
+ try {
698
+ s = await h();
699
+ } finally {
700
+ v = !1;
701
+ }
702
+ if (y || !s) return;
703
+ let c = t(), l, u;
704
+ "before" in s ? (l = c.slice(0, a) + s.before + c.slice(a, o) + s.after + c.slice(o), u = a + s.before.length + (o - a)) : (l = c.slice(0, a) + s.value + c.slice(a), u = a + s.value.length), r(l), _.value = !0, n(() => {
705
+ y || (i.value?.focus(), i.value?.setSelectionRange(u, u));
706
+ });
707
+ }
693
708
  return {
694
- segments: _,
695
- hasMergeTags: v,
709
+ segments: b,
710
+ hasMergeTags: x,
696
711
  canRequestMergeTag: a,
697
712
  isRequestingMergeTag: o,
698
- isEditing: p,
699
- startEditing: y,
700
- stopEditing: b,
701
- handleInput: x,
702
- clearValue: S,
703
- insertMergeTag: C
713
+ canInsertLogicTag: p,
714
+ isRequestingLogicTag: m,
715
+ isEditing: _,
716
+ startEditing: S,
717
+ stopEditing: C,
718
+ handleInput: T,
719
+ clearValue: E,
720
+ insertMergeTag: D,
721
+ insertLogicTag: O
704
722
  };
705
723
  }
706
724
  //#endregion
707
725
  //#region src/components/MergeTagSegments.vue?vue&type=script&setup=true&lang.ts
708
- var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip"], pn = {
726
+ var fn = ["aria-label", "onKeydown"], pn = ["data-tooltip"], mn = ["data-tooltip"], hn = {
709
727
  key: 2,
710
728
  class: "tpl:text-sm tpl:text-[var(--tpl-text)]"
711
- }, mn = ["aria-label", "title"], hn = /* @__PURE__ */ m({
729
+ }, gn = ["aria-label", "title"], _n = /* @__PURE__ */ m({
712
730
  __name: "MergeTagSegments",
713
731
  props: {
714
732
  segments: {},
@@ -717,7 +735,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
717
735
  },
718
736
  emits: ["edit", "clear"],
719
737
  setup(t, { emit: n }) {
720
- let r = n, { t: i } = H();
738
+ let r = n, { t: i } = W();
721
739
  function a() {
722
740
  r("edit");
723
741
  }
@@ -736,7 +754,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
736
754
  "background-color": "color-mix(\n in srgb,\n var(--tpl-primary) 20%,\n transparent\n )",
737
755
  color: "var(--tpl-primary)"
738
756
  }
739
- }, D(t.label), 9, dn)) : t.type === "logicMergeTag" ? (e(), v("span", {
757
+ }, D(t.label), 9, pn)) : t.type === "logicMergeTag" ? (e(), v("span", {
740
758
  key: 1,
741
759
  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",
742
760
  "data-tooltip": t.value,
@@ -745,44 +763,75 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
745
763
  border: "1.5px solid\n color-mix(in srgb, var(--tpl-primary) 50%, transparent)",
746
764
  color: "var(--tpl-primary)"
747
765
  }
748
- }, D(t.keyword), 9, fn)) : (e(), v("span", pn, D(t.value), 1))], 64))), 128)), _("button", {
766
+ }, D(t.keyword), 9, mn)) : (e(), v("span", hn, D(t.value), 1))], 64))), 128)), _("button", {
749
767
  type: "button",
750
768
  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",
751
769
  "aria-label": T(i).mergeTag.remove,
752
770
  title: T(i).mergeTag.remove,
753
771
  onClick: s[0] ||= h((e) => r("clear"), ["stop"])
754
- }, [k(T(ut), {
772
+ }, [k(T(dt), {
755
773
  size: 12,
756
774
  "stroke-width": 2.5
757
- })], 8, mn)], 42, un));
775
+ })], 8, gn)], 42, fn));
758
776
  }
759
- }), gn = [
777
+ }), vn = [
760
778
  "aria-label",
761
779
  "title",
762
780
  "disabled"
763
- ], _n = "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)]", vn = /* @__PURE__ */ m({
781
+ ], yn = "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)]", bn = /* @__PURE__ */ m({
764
782
  __name: "MergeTagInsertButton",
765
783
  props: { disabled: { type: Boolean } },
766
784
  emits: ["insert"],
767
785
  setup(t) {
768
- let { t: n } = H();
786
+ let { t: n } = W();
769
787
  return (r, i) => (e(), v("button", {
770
788
  type: "button",
771
- class: p([_n, "tpl:mt-1.5"]),
789
+ class: p([yn, "tpl:mt-1.5"]),
772
790
  "aria-label": T(n).mergeTag.insert,
773
791
  title: T(n).mergeTag.insert,
774
792
  disabled: t.disabled,
775
- onClick: i[0] ||= (e) => r.$emit("insert")
776
- }, [k(T(st), {
793
+ onMousedown: i[0] ||= h(() => {}, ["prevent"]),
794
+ onClick: i[1] ||= (e) => r.$emit("insert")
795
+ }, [k(T(Ke), {
777
796
  size: 12,
778
797
  "stroke-width": 2
779
- }), d(" " + D(T(n).mergeTag.insert), 1)], 10, gn));
798
+ }), d(" " + D(T(n).mergeTag.insertShort), 1)], 42, vn));
780
799
  }
781
- }), yn = { key: 0 }, bn = { key: 1 }, xn = [
800
+ }), xn = [
801
+ "aria-label",
802
+ "title",
803
+ "disabled"
804
+ ], Sn = "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)]", Cn = /* @__PURE__ */ m({
805
+ __name: "LogicTagInsertButton",
806
+ props: { disabled: { type: Boolean } },
807
+ emits: ["insert"],
808
+ setup(t) {
809
+ let { t: n } = W();
810
+ return (r, i) => (e(), v("button", {
811
+ type: "button",
812
+ class: p([Sn, "tpl:mt-1.5"]),
813
+ "aria-label": T(n).logicTag.insert,
814
+ title: T(n).logicTag.insert,
815
+ disabled: t.disabled,
816
+ "data-testid": "field-insert-logic-button",
817
+ onMousedown: i[0] ||= h(() => {}, ["prevent"]),
818
+ onClick: i[1] ||= (e) => r.$emit("insert")
819
+ }, [k(T(Ge), {
820
+ size: 12,
821
+ "stroke-width": 2
822
+ }), d(" " + D(T(n).logicTag.insertShort), 1)], 42, xn));
823
+ }
824
+ }), wn = { key: 0 }, Tn = {
825
+ key: 0,
826
+ class: "tpl:flex tpl:flex-wrap tpl:gap-1.5"
827
+ }, En = { key: 1 }, Dn = [
782
828
  "value",
783
829
  "placeholder",
784
830
  "rows"
785
- ], Sn = "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)]", Cn = "tpl:flex tpl:w-full tpl:min-h-20 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)]", wn = /* @__PURE__ */ m({
831
+ ], On = {
832
+ key: 0,
833
+ class: "tpl:flex tpl:flex-wrap tpl:gap-1.5"
834
+ }, kn = "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)]", An = "tpl:flex tpl:w-full tpl:min-h-20 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)]", jn = /* @__PURE__ */ m({
786
835
  __name: "MergeTagTextarea",
787
836
  props: {
788
837
  modelValue: {},
@@ -791,46 +840,54 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
791
840
  },
792
841
  emits: ["update:modelValue"],
793
842
  setup(t, { emit: n }) {
794
- let r = t, i = n, a = u(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: d, startEditing: f, stopEditing: m, handleInput: h, clearValue: g, insertMergeTag: y } = ln({
843
+ let r = t, i = n, a = u(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, canInsertLogicTag: d, isRequestingLogicTag: f, isEditing: m, startEditing: h, stopEditing: g, handleInput: y, clearValue: x, insertMergeTag: S, insertLogicTag: w } = dn({
795
844
  modelValue: () => r.modelValue,
796
845
  emit: (e) => i("update:modelValue", e),
797
846
  elementRef: a
798
847
  });
799
- return (n, r) => T(s) && !T(d) ? (e(), v("div", yn, [k(hn, {
848
+ return (n, r) => T(s) && !T(m) ? (e(), v("div", wn, [k(_n, {
800
849
  segments: T(o),
801
- "display-class": Cn,
802
- onEdit: T(f),
803
- onClear: T(g)
850
+ "display-class": An,
851
+ onEdit: T(h),
852
+ onClear: T(x)
804
853
  }, null, 8, [
805
854
  "segments",
806
855
  "onEdit",
807
856
  "onClear"
808
- ]), T(c) ? (e(), C(vn, {
857
+ ]), T(c) || T(d) ? (e(), v("div", Tn, [T(c) ? (e(), C(bn, {
809
858
  key: 0,
810
859
  disabled: T(l),
811
- onInsert: T(y)
812
- }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : (e(), v("div", bn, [_("textarea", {
860
+ onInsert: T(S)
861
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0), T(d) ? (e(), C(Cn, {
862
+ key: 1,
863
+ disabled: T(f),
864
+ onInsert: T(w)
865
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : b("", !0)])) : (e(), v("div", En, [_("textarea", {
813
866
  ref_key: "textareaRef",
814
867
  ref: a,
815
- class: p(Sn),
868
+ class: p(kn),
816
869
  value: t.modelValue,
817
870
  placeholder: t.placeholder,
818
871
  rows: t.rows,
819
- onInput: r[0] ||= (...e) => T(h) && T(h)(...e),
820
- onBlur: r[1] ||= (...e) => T(m) && T(m)(...e),
821
- onKeydown: r[2] ||= E((...e) => T(m) && T(m)(...e), ["escape"])
822
- }, null, 40, xn), T(c) ? (e(), C(vn, {
872
+ onInput: r[0] ||= (...e) => T(y) && T(y)(...e),
873
+ onBlur: r[1] ||= (...e) => T(g) && T(g)(...e),
874
+ onKeydown: r[2] ||= E((...e) => T(g) && T(g)(...e), ["escape"])
875
+ }, null, 40, Dn), T(c) || T(d) ? (e(), v("div", On, [T(c) ? (e(), C(bn, {
823
876
  key: 0,
824
877
  disabled: T(l),
825
- onInsert: T(y)
826
- }, null, 8, ["disabled", "onInsert"])) : b("", !0)]));
878
+ onInsert: T(S)
879
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0), T(d) ? (e(), C(Cn, {
880
+ key: 1,
881
+ disabled: T(f),
882
+ onInsert: T(w)
883
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : b("", !0)]));
827
884
  }
828
- }), Tn = { class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]" }, En = { 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)]" }, On = { class: "tpl:mb-3.5" }, kn = { 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)]" }, An = ["onClick"], jn = { class: "tpl:flex tpl:items-stretch" }, Mn = ["value"], Nn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Pn = { class: "tpl:mb-3.5" }, Fn = ["value"], In = ["value"], Ln = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Rn = ["value"], zn = { class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, Bn = { 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:mt-1 tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Hn = { class: "tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, Un = { class: "tpl:shrink-0 tpl:text-xs tpl:tabular-nums tpl:text-[var(--tpl-text-dim)]" }, Wn = { class: "tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-3" }, Gn = { 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)]" }, Kn = { class: "tpl:m-0 tpl:pl-[18px] tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, qn = { class: "tpl:mb-1 tpl:last:mb-0" }, Jn = { class: "tpl:mb-1 tpl:last:mb-0" }, Yn = { class: "tpl:mb-1 tpl:last:mb-0" }, Xn = 150, Zn = /* @__PURE__ */ m({
885
+ }), Mn = { class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]" }, Nn = { class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:gap-3 tpl:overflow-y-auto tpl:p-4" }, Pn = { 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" }, In = { 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)]" }, Ln = ["onClick"], Rn = { class: "tpl:flex tpl:items-stretch" }, zn = ["value"], Bn = { 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" }, Hn = ["value"], Un = ["value"], 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)]" }, Gn = ["value"], Kn = { class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, qn = { class: "tpl:mb-3.5 tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Jn = { class: "tpl:mt-1 tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Yn = { class: "tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, Xn = { class: "tpl:shrink-0 tpl:text-xs tpl:tabular-nums tpl:text-[var(--tpl-text-dim)]" }, Zn = { class: "tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-3" }, Qn = { 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)]" }, $n = { class: "tpl:m-0 tpl:pl-[18px] tpl:text-xs tpl:leading-relaxed tpl:text-[var(--tpl-text-dim)]" }, er = { class: "tpl:mb-1 tpl:last:mb-0" }, tr = { class: "tpl:mb-1 tpl:last:mb-0" }, nr = { class: "tpl:mb-1 tpl:last:mb-0" }, rr = 150, ir = /* @__PURE__ */ m({
829
886
  __name: "TemplateSettings",
830
887
  props: { settings: {} },
831
888
  emits: ["update"],
832
889
  setup(t, { emit: n }) {
833
- let r = t, i = n, { t: a } = H(), s = Ae(Ie, "TemplateSettings"), c = g(() => s.fonts.value), l = g(() => c.value.some((e) => e.value === r.settings.fontFamily) ? r.settings.fontFamily : s.defaultFont.value), u = [
890
+ let r = t, i = n, { t: a } = W(), s = Oe(Fe, "TemplateSettings"), c = g(() => s.fonts.value), l = g(() => c.value.some((e) => e.value === r.settings.fontFamily) ? r.settings.fontFamily : s.defaultFont.value), u = [
834
891
  {
835
892
  value: 480,
836
893
  label: "480px"
@@ -848,14 +905,14 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
848
905
  label: "800px"
849
906
  }
850
907
  ];
851
- return (n, r) => (e(), v("aside", Tn, [_("div", En, [
852
- _("div", { class: p(T(bt)) }, [
853
- _("div", Dn, [k(T(Lt), {
908
+ return (n, r) => (e(), v("aside", Mn, [_("div", Nn, [
909
+ _("div", { class: p(T(xt)) }, [
910
+ _("div", Pn, [k(T(zt), {
854
911
  class: "tpl:text-[var(--tpl-text-muted)]",
855
912
  size: 14,
856
913
  "stroke-width": 2
857
914
  }), _("span", null, D(T(a).templateSettings.layout), 1)]),
858
- _("div", On, [_("label", { class: p(T(G)) }, D(T(a).templateSettings.widthPreset), 3), _("div", kn, [(e(), v(y, null, o(u, (e) => _("button", {
915
+ _("div", Fn, [_("label", { class: p(T(q)) }, D(T(a).templateSettings.widthPreset), 3), _("div", In, [(e(), v(y, null, o(u, (e) => _("button", {
859
916
  key: e.value,
860
917
  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)]",
861
918
  style: S({
@@ -864,79 +921,85 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
864
921
  boxShadow: t.settings.width === e.value ? "var(--tpl-shadow)" : "none"
865
922
  }),
866
923
  onClick: (t) => i("update", { width: e.value })
867
- }, D(e.label), 13, An)), 64))])]),
868
- _("div", null, [_("label", { class: p(T(G)) }, D(T(a).templateSettings.customWidth), 3), _("div", jn, [_("input", {
924
+ }, D(e.label), 13, Ln)), 64))])]),
925
+ _("div", null, [_("label", { class: p(T(q)) }, D(T(a).templateSettings.customWidth), 3), _("div", Rn, [_("input", {
869
926
  type: "number",
870
- class: p(T(q)),
927
+ class: p(T(Y)),
871
928
  value: t.settings.width,
872
929
  min: "300",
873
930
  max: "900",
874
931
  onInput: r[0] ||= (e) => i("update", { width: Number(e.target.value) })
875
- }, null, 42, Mn), _("span", { class: p(T(K)) }, "px", 2)])])
932
+ }, null, 42, zn), _("span", { class: p(T(J)) }, "px", 2)])])
876
933
  ], 2),
877
- _("div", { class: p(T(bt)) }, [
878
- _("div", Nn, [k(T(Dt), {
934
+ _("div", { class: p(T(xt)) }, [
935
+ _("div", Bn, [k(T(Dt), {
879
936
  class: "tpl:text-[var(--tpl-text-muted)]",
880
937
  size: 14,
881
938
  "stroke-width": 2
882
939
  }), _("span", null, D(T(a).templateSettings.appearance), 1)]),
883
- _("div", Pn, [_("label", { class: p(T(G)) }, D(T(a).templateSettings.backgroundColor), 3), k(J, {
940
+ _("div", Vn, [_("label", { class: p(T(q)) }, D(T(a).templateSettings.backgroundColor), 3), k(X, {
884
941
  "model-value": t.settings.backgroundColor,
885
- placeholder: T(St),
942
+ placeholder: T(Ct),
886
943
  "onUpdate:modelValue": r[1] ||= (e) => i("update", { backgroundColor: e })
887
944
  }, null, 8, ["model-value", "placeholder"])]),
888
- _("div", null, [_("label", { class: p(T(G)) }, D(T(a).templateSettings.fontFamily), 3), _("select", {
889
- class: p(T(W)),
945
+ _("div", null, [_("label", { class: p(T(q)) }, D(T(a).templateSettings.fontFamily), 3), _("select", {
946
+ class: p(T(K)),
890
947
  value: l.value,
891
948
  onChange: r[2] ||= (e) => i("update", { fontFamily: e.target.value })
892
949
  }, [(e(!0), v(y, null, o(c.value, (t) => (e(), v("option", {
893
950
  key: t.value,
894
951
  value: t.value
895
- }, D(t.label), 9, In))), 128))], 42, Fn)])
952
+ }, D(t.label), 9, Un))), 128))], 42, Hn)])
896
953
  ], 2),
897
- _("div", { class: p(T(bt)) }, [_("div", Ln, [k(T(Ot), {
954
+ _("div", { class: p(T(xt)) }, [_("div", Wn, [k(T(Ot), {
898
955
  class: "tpl:text-[var(--tpl-text-muted)]",
899
956
  size: 14,
900
957
  "stroke-width": 2
901
958
  }), _("span", null, D(T(a).templateSettings.language), 1)]), _("div", null, [
902
- _("label", { class: p(T(G)) }, D(T(a).templateSettings.contentLocale), 3),
959
+ _("label", { class: p(T(q)) }, D(T(a).templateSettings.contentLocale), 3),
903
960
  _("input", {
904
961
  type: "text",
905
- class: p(T(W)),
962
+ class: p(T(K)),
906
963
  value: t.settings.locale ?? "",
907
964
  placeholder: "en",
908
965
  spellcheck: "false",
909
966
  autocapitalize: "off",
910
967
  autocomplete: "off",
911
968
  onInput: r[3] ||= (e) => i("update", { locale: e.target.value.trim() || void 0 })
912
- }, null, 42, Rn),
913
- _("p", zn, D(T(a).templateSettings.contentLocaleHint), 1)
969
+ }, null, 42, Gn),
970
+ _("p", Kn, D(T(a).templateSettings.contentLocaleHint), 1)
914
971
  ])], 2),
915
- _("div", { class: p(T(bt)) }, [_("div", Bn, [k(T(nt), {
972
+ _("div", { class: p(T(xt)) }, [_("div", qn, [k(T($e), {
916
973
  class: "tpl:text-[var(--tpl-text-muted)]",
917
974
  size: 14,
918
975
  "stroke-width": 2
919
- }), _("span", null, D(T(a).templateSettings.preheaderText), 1)]), _("div", null, [k(wn, {
976
+ }), _("span", null, D(T(a).templateSettings.preheaderText), 1)]), _("div", null, [k(jn, {
920
977
  "model-value": t.settings.preheaderText ?? "",
921
978
  placeholder: T(a).templateSettings.preheaderTextPlaceholder,
922
979
  rows: 2,
923
980
  "onUpdate:modelValue": r[4] ||= (e) => i("update", { preheaderText: e.replace(/[\r\n]/g, " ") || void 0 })
924
- }, null, 8, ["model-value", "placeholder"]), _("div", Vn, [_("span", Hn, D(T(a).templateSettings.preheaderTextHint), 1), _("span", Un, D((t.settings.preheaderText ?? "").length) + "/" + D(Xn), 1)])])], 2),
925
- _("div", Wn, [_("div", Gn, [k(T(at), {
981
+ }, null, 8, ["model-value", "placeholder"]), _("div", Jn, [_("span", Yn, D(T(a).templateSettings.preheaderTextHint), 1), _("span", Xn, D((t.settings.preheaderText ?? "").length) + "/" + D(rr), 1)])])], 2),
982
+ _("div", Zn, [_("div", Qn, [k(T(nt), {
926
983
  size: 14,
927
984
  "stroke-width": 2
928
- }), _("span", null, D(T(a).templateSettings.tips), 1)]), _("ul", Kn, [
929
- _("li", qn, D(T(a).templateSettings.tip1), 1),
930
- _("li", Jn, D(T(a).templateSettings.tip2), 1),
931
- _("li", Yn, D(T(a).templateSettings.tip3), 1)
985
+ }), _("span", null, D(T(a).templateSettings.tips), 1)]), _("ul", $n, [
986
+ _("li", er, D(T(a).templateSettings.tip1), 1),
987
+ _("li", tr, D(T(a).templateSettings.tip2), 1),
988
+ _("li", nr, D(T(a).templateSettings.tip3), 1)
932
989
  ])])
933
990
  ])]));
934
991
  }
935
- }), Qn = { key: 0 }, $n = { key: 1 }, er = [
992
+ }), ar = { key: 0 }, or = {
993
+ key: 0,
994
+ class: "tpl:flex tpl:flex-wrap tpl:gap-1.5"
995
+ }, sr = { key: 1 }, cr = [
936
996
  "type",
937
997
  "value",
938
998
  "placeholder"
939
- ], tr = "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)]", Q = /*#__PURE__*/ dt(/* @__PURE__ */ m({
999
+ ], lr = {
1000
+ key: 0,
1001
+ class: "tpl:flex tpl:flex-wrap tpl:gap-1.5"
1002
+ }, ur = "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)]", $ = /*#__PURE__*/ ft(/* @__PURE__ */ m({
940
1003
  __name: "MergeTagInput",
941
1004
  props: {
942
1005
  modelValue: {},
@@ -949,49 +1012,57 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
949
1012
  },
950
1013
  emits: ["update:modelValue"],
951
1014
  setup(t, { emit: n }) {
952
- let r = t, i = n, a = u(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, isEditing: d, startEditing: f, stopEditing: m, handleInput: h, clearValue: g, insertMergeTag: y } = ln({
1015
+ let r = t, i = n, a = u(null), { segments: o, hasMergeTags: s, canRequestMergeTag: c, isRequestingMergeTag: l, canInsertLogicTag: d, isRequestingLogicTag: f, isEditing: m, startEditing: h, stopEditing: g, handleInput: y, clearValue: x, insertMergeTag: S, insertLogicTag: w } = dn({
953
1016
  modelValue: () => r.modelValue,
954
1017
  emit: (e) => i("update:modelValue", e),
955
1018
  elementRef: a
956
1019
  });
957
- return (n, r) => T(s) && !T(d) ? (e(), v("div", Qn, [k(hn, {
1020
+ return (n, r) => T(s) && !T(m) ? (e(), v("div", ar, [k(_n, {
958
1021
  segments: T(o),
959
- "display-class": tr,
1022
+ "display-class": ur,
960
1023
  pulse: t.pulse,
961
- onEdit: T(f),
962
- onClear: T(g)
1024
+ onEdit: T(h),
1025
+ onClear: T(x)
963
1026
  }, null, 8, [
964
1027
  "segments",
965
1028
  "pulse",
966
1029
  "onEdit",
967
1030
  "onClear"
968
- ]), T(c) ? (e(), C(vn, {
1031
+ ]), T(c) || T(d) ? (e(), v("div", or, [T(c) ? (e(), C(bn, {
969
1032
  key: 0,
970
1033
  disabled: T(l),
971
- onInsert: T(y)
972
- }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : (e(), v("div", $n, [_("input", {
1034
+ onInsert: T(S)
1035
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0), T(d) ? (e(), C(Cn, {
1036
+ key: 1,
1037
+ disabled: T(f),
1038
+ onInsert: T(w)
1039
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : b("", !0)])) : (e(), v("div", sr, [_("input", {
973
1040
  ref_key: "inputRef",
974
1041
  ref: a,
975
1042
  type: t.type,
976
- class: p([T(W), { "tpl-pulse-fill": t.pulse }]),
1043
+ class: p([T(K), { "tpl-pulse-fill": t.pulse }]),
977
1044
  value: t.modelValue,
978
1045
  placeholder: t.placeholder,
979
- onInput: r[0] ||= (...e) => T(h) && T(h)(...e),
980
- onBlur: r[1] ||= (...e) => T(m) && T(m)(...e),
981
- onKeydown: r[2] ||= E((...e) => T(m) && T(m)(...e), ["escape"])
982
- }, null, 42, er), T(c) ? (e(), C(vn, {
1046
+ onInput: r[0] ||= (...e) => T(y) && T(y)(...e),
1047
+ onBlur: r[1] ||= (...e) => T(g) && T(g)(...e),
1048
+ onKeydown: r[2] ||= E((...e) => T(g) && T(g)(...e), ["escape"])
1049
+ }, null, 42, cr), T(c) || T(d) ? (e(), v("div", lr, [T(c) ? (e(), C(bn, {
983
1050
  key: 0,
984
1051
  disabled: T(l),
985
- onInsert: T(y)
986
- }, null, 8, ["disabled", "onInsert"])) : b("", !0)]));
1052
+ onInsert: T(S)
1053
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0), T(d) ? (e(), C(Cn, {
1054
+ key: 1,
1055
+ disabled: T(f),
1056
+ onInsert: T(w)
1057
+ }, null, 8, ["disabled", "onInsert"])) : b("", !0)])) : b("", !0)]));
987
1058
  }
988
- }), [["__scopeId", "data-v-358207dd"]]), nr = { class: "tpl:mb-3.5" }, rr = ["value"], ir = { value: "" }, ar = ["value"], or = { class: "tpl:mb-3.5" }, sr = { class: "tpl:mb-3.5" }, cr = {
1059
+ }), [["__scopeId", "data-v-e9135590"]]), dr = { class: "tpl:mb-3.5" }, fr = ["value"], pr = { value: "" }, mr = ["value"], hr = { class: "tpl:mb-3.5" }, gr = { class: "tpl:mb-3.5" }, _r = {
989
1060
  key: 0,
990
1061
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
991
- }, lr = ["checked"], ur = { class: "tpl:mb-3.5" }, dr = { class: "tpl:mb-3.5" }, fr = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, pr = { class: "tpl:mb-3.5" }, mr = { class: "tpl:flex tpl:items-stretch" }, hr = ["value"], gr = { class: "tpl:mb-3.5" }, _r = { class: "tpl:flex tpl:items-stretch" }, vr = ["value"], yr = { class: "tpl:mb-3.5" }, br = ["value"], xr = { value: "auto" }, Sr = { value: "full" }, Cr = { value: "custom" }, wr = {
1062
+ }, vr = ["checked"], yr = { class: "tpl:mb-3.5" }, br = { class: "tpl:mb-3.5" }, xr = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, Sr = { class: "tpl:mb-3.5" }, Cr = { class: "tpl:flex tpl:items-stretch" }, wr = ["value"], Tr = { class: "tpl:mb-3.5" }, Er = { class: "tpl:flex tpl:items-stretch" }, Dr = ["value"], Or = { class: "tpl:mb-3.5" }, kr = ["value"], Ar = { value: "auto" }, jr = { value: "full" }, Mr = { value: "custom" }, Nr = {
992
1063
  key: 0,
993
1064
  class: "tpl:mt-2 tpl:flex tpl:items-stretch"
994
- }, Tr = ["value"], Er = 200, Dr = /* @__PURE__ */ m({
1065
+ }, Pr = ["value"], Fr = 200, Ir = /* @__PURE__ */ m({
995
1066
  __name: "ButtonToolbar",
996
1067
  props: {
997
1068
  block: {},
@@ -999,7 +1070,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
999
1070
  },
1000
1071
  emits: ["update"],
1001
1072
  setup(t, { emit: n }) {
1002
- let r = t, i = n, { t: a } = H(), s = g(() => r.block.width === "full" ? "full" : typeof r.block.width == "number" ? "custom" : "auto");
1073
+ let r = t, i = n, { t: a } = W(), s = g(() => r.block.width === "full" ? "full" : typeof r.block.width == "number" ? "custom" : "auto");
1003
1074
  function c(e, t) {
1004
1075
  i("update", { [e]: t });
1005
1076
  }
@@ -1009,7 +1080,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1009
1080
  return;
1010
1081
  }
1011
1082
  if (e === "custom") {
1012
- c("width", typeof r.block.width == "number" ? r.block.width : Er);
1083
+ c("width", typeof r.block.width == "number" ? r.block.width : Fr);
1013
1084
  return;
1014
1085
  }
1015
1086
  c("width", void 0);
@@ -1019,79 +1090,79 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1019
1090
  !Number.isFinite(t) || t <= 0 || c("width", t);
1020
1091
  }
1021
1092
  return (n, r) => (e(), v(y, null, [
1022
- _("div", nr, [_("label", { class: p(T(G)) }, D(T(a).button.fontFamily), 3), _("select", {
1023
- class: p(T(W)),
1093
+ _("div", dr, [_("label", { class: p(T(q)) }, D(T(a).button.fontFamily), 3), _("select", {
1094
+ class: p(T(K)),
1024
1095
  value: t.block.fontFamily || "",
1025
1096
  onChange: r[0] ||= (e) => c("fontFamily", e.target.value || void 0)
1026
- }, [_("option", ir, D(T(a).button.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
1097
+ }, [_("option", pr, D(T(a).button.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
1027
1098
  key: t.value,
1028
1099
  value: t.value
1029
- }, D(t.label), 9, ar))), 128))], 42, rr)]),
1030
- _("div", or, [_("label", { class: p(T(G)) }, D(T(a).button.text), 3), k(Q, {
1100
+ }, D(t.label), 9, mr))), 128))], 42, fr)]),
1101
+ _("div", hr, [_("label", { class: p(T(q)) }, D(T(a).button.text), 3), k($, {
1031
1102
  "model-value": t.block.text,
1032
1103
  type: "text",
1033
1104
  "onUpdate:modelValue": r[1] ||= (e) => c("text", e)
1034
1105
  }, null, 8, ["model-value"])]),
1035
- _("div", sr, [
1036
- _("label", { class: p(T(G)) }, D(T(a).button.url), 3),
1037
- k(Q, {
1106
+ _("div", gr, [
1107
+ _("label", { class: p(T(q)) }, D(T(a).button.url), 3),
1108
+ k($, {
1038
1109
  "model-value": t.block.url,
1039
1110
  type: "url",
1040
1111
  placeholder: T(a).button.urlPlaceholder,
1041
1112
  "onUpdate:modelValue": r[2] ||= (e) => c("url", e)
1042
1113
  }, null, 8, ["model-value", "placeholder"]),
1043
- t.block.url ? (e(), v("label", cr, [_("input", {
1114
+ t.block.url ? (e(), v("label", _r, [_("input", {
1044
1115
  type: "checkbox",
1045
1116
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
1046
1117
  checked: t.block.openInNewTab ?? !1,
1047
1118
  onChange: r[3] ||= (e) => c("openInNewTab", e.target.checked)
1048
- }, null, 40, lr), d(" " + D(T(a).button.openInNewTab), 1)])) : b("", !0)
1119
+ }, null, 40, vr), d(" " + D(T(a).button.openInNewTab), 1)])) : b("", !0)
1049
1120
  ]),
1050
- _("div", ur, [_("label", { class: p(T(G)) }, D(T(a).button.background), 3), k(J, {
1121
+ _("div", yr, [_("label", { class: p(T(q)) }, D(T(a).button.background), 3), k(X, {
1051
1122
  "model-value": t.block.backgroundColor,
1052
1123
  "onUpdate:modelValue": r[4] ||= (e) => c("backgroundColor", e)
1053
1124
  }, null, 8, ["model-value"])]),
1054
- _("div", dr, [_("label", { class: p(T(G)) }, D(T(a).button.textColor), 3), k(J, {
1125
+ _("div", br, [_("label", { class: p(T(q)) }, D(T(a).button.textColor), 3), k(X, {
1055
1126
  "model-value": t.block.textColor,
1056
1127
  "onUpdate:modelValue": r[5] ||= (e) => c("textColor", e)
1057
1128
  }, null, 8, ["model-value"])]),
1058
- _("div", fr, [_("div", pr, [_("label", { class: p(T(G)) }, D(T(a).button.borderRadius), 3), _("div", mr, [_("input", {
1129
+ _("div", xr, [_("div", Sr, [_("label", { class: p(T(q)) }, D(T(a).button.borderRadius), 3), _("div", Cr, [_("input", {
1059
1130
  type: "number",
1060
- class: p(T(q)),
1131
+ class: p(T(Y)),
1061
1132
  value: t.block.borderRadius,
1062
1133
  min: "0",
1063
1134
  max: "50",
1064
1135
  onInput: r[6] ||= (e) => c("borderRadius", Number(e.target.value))
1065
- }, null, 42, hr), _("span", { class: p(T(K)) }, "px", 2)])]), _("div", gr, [_("label", { class: p(T(G)) }, D(T(a).button.fontSize), 3), _("div", _r, [_("input", {
1136
+ }, null, 42, wr), _("span", { class: p(T(J)) }, "px", 2)])]), _("div", Tr, [_("label", { class: p(T(q)) }, D(T(a).button.fontSize), 3), _("div", Er, [_("input", {
1066
1137
  type: "number",
1067
- class: p(T(q)),
1138
+ class: p(T(Y)),
1068
1139
  value: t.block.fontSize,
1069
1140
  min: "10",
1070
1141
  max: "36",
1071
1142
  onInput: r[7] ||= (e) => c("fontSize", Number(e.target.value))
1072
- }, null, 42, vr), _("span", { class: p(T(K)) }, "px", 2)])])]),
1073
- _("div", yr, [
1074
- _("label", { class: p(T(G)) }, D(T(a).button.width), 3),
1143
+ }, null, 42, Dr), _("span", { class: p(T(J)) }, "px", 2)])])]),
1144
+ _("div", Or, [
1145
+ _("label", { class: p(T(q)) }, D(T(a).button.width), 3),
1075
1146
  _("select", {
1076
- class: p(T(W)),
1147
+ class: p(T(K)),
1077
1148
  value: s.value,
1078
1149
  onChange: r[8] ||= (e) => l(e.target.value)
1079
1150
  }, [
1080
- _("option", xr, D(T(a).button.widthAuto), 1),
1081
- _("option", Sr, D(T(a).button.fullWidth), 1),
1082
- _("option", Cr, D(T(a).button.widthCustom), 1)
1083
- ], 42, br),
1084
- s.value === "custom" ? (e(), v("div", wr, [_("input", {
1151
+ _("option", Ar, D(T(a).button.widthAuto), 1),
1152
+ _("option", jr, D(T(a).button.fullWidth), 1),
1153
+ _("option", Mr, D(T(a).button.widthCustom), 1)
1154
+ ], 42, kr),
1155
+ s.value === "custom" ? (e(), v("div", Nr, [_("input", {
1085
1156
  type: "number",
1086
- class: p(T(q)),
1087
- value: typeof t.block.width == "number" ? t.block.width : Er,
1157
+ class: p(T(Y)),
1158
+ value: typeof t.block.width == "number" ? t.block.width : Fr,
1088
1159
  min: "20",
1089
1160
  onInput: r[9] ||= (e) => u(e.target.value)
1090
- }, null, 42, Tr), _("span", { class: p(T(K)) }, "px", 2)])) : b("", !0)
1161
+ }, null, 42, Pr), _("span", { class: p(T(J)) }, "px", 2)])) : b("", !0)
1091
1162
  ])
1092
1163
  ], 64));
1093
1164
  }
1094
- }), Or = { class: "spacing-control" }, kr = { class: "tpl:mb-2 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Ar = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-1.5" }, jr = { class: "tpl:flex tpl:items-center" }, Mr = ["aria-label"], Nr = ["value", "aria-label"], Pr = ["aria-label"], Fr = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ir = { class: "tpl:flex tpl:items-center" }, Lr = ["aria-label"], Rr = ["value", "aria-label"], zr = ["aria-label"], Br = ["aria-label", "title"], Vr = { class: "tpl:flex tpl:items-center" }, Hr = ["aria-label"], Ur = ["value", "aria-label"], Wr = ["aria-label"], Gr = { class: "tpl:flex tpl:items-center" }, Kr = ["aria-label"], qr = ["value", "aria-label"], Jr = ["aria-label"], $ = "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)]", Yr = "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)]", Xr = /*#__PURE__*/ dt(/* @__PURE__ */ m({
1165
+ }), Lr = { class: "spacing-control" }, Rr = { class: "tpl:mb-2 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, zr = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-1.5" }, Br = { class: "tpl:flex tpl:items-center" }, Vr = ["aria-label"], Hr = ["value", "aria-label"], Ur = ["aria-label"], Wr = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Gr = { class: "tpl:flex tpl:items-center" }, Kr = ["aria-label"], qr = ["value", "aria-label"], Jr = ["aria-label"], Yr = ["aria-label", "title"], Xr = { class: "tpl:flex tpl:items-center" }, Zr = ["aria-label"], Qr = ["value", "aria-label"], $r = ["aria-label"], ei = { class: "tpl:flex tpl:items-center" }, ti = ["aria-label"], ni = ["value", "aria-label"], ri = ["aria-label"], ii = "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)]", ai = "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)]", oi = /*#__PURE__*/ ft(/* @__PURE__ */ m({
1095
1166
  __name: "SpacingControl",
1096
1167
  props: {
1097
1168
  modelValue: {},
@@ -1099,7 +1170,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1099
1170
  },
1100
1171
  emits: ["update:modelValue"],
1101
1172
  setup(t, { emit: n }) {
1102
- let r = t, i = n, { t: o } = H(), s = g(() => r.modelValue.top === r.modelValue.right && r.modelValue.right === r.modelValue.bottom && r.modelValue.bottom === r.modelValue.left), c = u(s.value);
1173
+ let r = t, i = n, { t: o } = W(), s = g(() => r.modelValue.top === r.modelValue.right && r.modelValue.right === r.modelValue.bottom && r.modelValue.bottom === r.modelValue.left), c = u(s.value);
1103
1174
  a(s, (e) => {
1104
1175
  !e && c.value && (c.value = !1);
1105
1176
  });
@@ -1138,130 +1209,130 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1138
1209
  });
1139
1210
  }
1140
1211
  }
1141
- return (n, r) => (e(), v("div", Or, [_("label", kr, D(t.label), 1), _("div", Ar, [
1142
- _("div", jr, [
1212
+ return (n, r) => (e(), v("div", Lr, [_("label", Rr, D(t.label), 1), _("div", zr, [
1213
+ _("div", Br, [
1143
1214
  _("button", {
1144
1215
  "aria-label": T(o).spacingControl.decreaseTop,
1145
- class: p([$, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1216
+ class: p([ii, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1146
1217
  onClick: r[0] ||= (e) => l("top", -1)
1147
- }, [k(T(Ke), {
1218
+ }, [k(T(Ye), {
1148
1219
  size: 12,
1149
1220
  "stroke-width": 2
1150
- })], 10, Mr),
1221
+ })], 10, Vr),
1151
1222
  _("input", {
1152
1223
  type: "number",
1153
- class: p(Yr),
1224
+ class: p(ai),
1154
1225
  value: t.modelValue.top,
1155
1226
  "aria-label": T(o).spacingControl.top,
1156
1227
  min: "0",
1157
1228
  onInput: r[1] ||= (e) => d("top", Number(e.target.value))
1158
- }, null, 40, Nr),
1229
+ }, null, 40, Hr),
1159
1230
  _("button", {
1160
1231
  "aria-label": T(o).spacingControl.increaseTop,
1161
- class: p([$, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1232
+ class: p([ii, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1162
1233
  onClick: r[2] ||= (e) => l("top", 1)
1163
- }, [k(T(Z), {
1234
+ }, [k(T(Q), {
1164
1235
  size: 12,
1165
1236
  "stroke-width": 2
1166
- })], 10, Pr)
1237
+ })], 10, Ur)
1167
1238
  ]),
1168
- _("div", Fr, [
1169
- _("div", Ir, [
1239
+ _("div", Wr, [
1240
+ _("div", Gr, [
1170
1241
  _("button", {
1171
1242
  "aria-label": T(o).spacingControl.decreaseLeft,
1172
- class: p([$, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1243
+ class: p([ii, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1173
1244
  onClick: r[3] ||= (e) => l("left", -1)
1174
- }, [k(T(Ke), {
1245
+ }, [k(T(Ye), {
1175
1246
  size: 12,
1176
1247
  "stroke-width": 2
1177
- })], 10, Lr),
1248
+ })], 10, Kr),
1178
1249
  _("input", {
1179
1250
  type: "number",
1180
- class: p(Yr),
1251
+ class: p(ai),
1181
1252
  value: t.modelValue.left,
1182
1253
  "aria-label": T(o).spacingControl.left,
1183
1254
  min: "0",
1184
1255
  onInput: r[4] ||= (e) => d("left", Number(e.target.value))
1185
- }, null, 40, Rr),
1256
+ }, null, 40, qr),
1186
1257
  _("button", {
1187
1258
  "aria-label": T(o).spacingControl.increaseLeft,
1188
- class: p([$, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1259
+ class: p([ii, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1189
1260
  onClick: r[5] ||= (e) => l("left", 1)
1190
- }, [k(T(Z), {
1261
+ }, [k(T(Q), {
1191
1262
  size: 12,
1192
1263
  "stroke-width": 2
1193
- })], 10, zr)
1264
+ })], 10, Jr)
1194
1265
  ]),
1195
1266
  _("button", {
1196
1267
  class: p(["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)]", c.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)]"]),
1197
1268
  "aria-label": c.value ? T(o).spacingControl.unlock : T(o).spacingControl.lockAll,
1198
1269
  title: c.value ? T(o).spacingControl.unlock : T(o).spacingControl.lockAll,
1199
1270
  onClick: f
1200
- }, [c.value ? (e(), C(T(At), {
1271
+ }, [c.value ? (e(), C(T(jt), {
1201
1272
  key: 0,
1202
1273
  size: 14,
1203
1274
  "stroke-width": 2
1204
- })) : (e(), C(T(Tt), {
1275
+ })) : (e(), C(T(At), {
1205
1276
  key: 1,
1206
1277
  size: 14,
1207
1278
  "stroke-width": 2
1208
- }))], 10, Br),
1209
- _("div", Vr, [
1279
+ }))], 10, Yr),
1280
+ _("div", Xr, [
1210
1281
  _("button", {
1211
1282
  "aria-label": T(o).spacingControl.decreaseRight,
1212
- class: p([$, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1283
+ class: p([ii, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1213
1284
  onClick: r[6] ||= (e) => l("right", -1)
1214
- }, [k(T(Ke), {
1285
+ }, [k(T(Ye), {
1215
1286
  size: 12,
1216
1287
  "stroke-width": 2
1217
- })], 10, Hr),
1288
+ })], 10, Zr),
1218
1289
  _("input", {
1219
1290
  type: "number",
1220
- class: p(Yr),
1291
+ class: p(ai),
1221
1292
  value: t.modelValue.right,
1222
1293
  "aria-label": T(o).spacingControl.right,
1223
1294
  min: "0",
1224
1295
  onInput: r[7] ||= (e) => d("right", Number(e.target.value))
1225
- }, null, 40, Ur),
1296
+ }, null, 40, Qr),
1226
1297
  _("button", {
1227
1298
  "aria-label": T(o).spacingControl.increaseRight,
1228
- class: p([$, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1299
+ class: p([ii, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1229
1300
  onClick: r[8] ||= (e) => l("right", 1)
1230
- }, [k(T(Z), {
1301
+ }, [k(T(Q), {
1231
1302
  size: 12,
1232
1303
  "stroke-width": 2
1233
- })], 10, Wr)
1304
+ })], 10, $r)
1234
1305
  ])
1235
1306
  ]),
1236
- _("div", Gr, [
1307
+ _("div", ei, [
1237
1308
  _("button", {
1238
1309
  "aria-label": T(o).spacingControl.decreaseBottom,
1239
- class: p([$, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1310
+ class: p([ii, "tpl:rounded-l-[var(--tpl-radius-sm)]"]),
1240
1311
  onClick: r[9] ||= (e) => l("bottom", -1)
1241
- }, [k(T(Ke), {
1312
+ }, [k(T(Ye), {
1242
1313
  size: 12,
1243
1314
  "stroke-width": 2
1244
- })], 10, Kr),
1315
+ })], 10, ti),
1245
1316
  _("input", {
1246
1317
  type: "number",
1247
- class: p(Yr),
1318
+ class: p(ai),
1248
1319
  value: t.modelValue.bottom,
1249
1320
  "aria-label": T(o).spacingControl.bottom,
1250
1321
  min: "0",
1251
1322
  onInput: r[10] ||= (e) => d("bottom", Number(e.target.value))
1252
- }, null, 40, qr),
1323
+ }, null, 40, ni),
1253
1324
  _("button", {
1254
1325
  "aria-label": T(o).spacingControl.increaseBottom,
1255
- class: p([$, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1326
+ class: p([ii, "tpl:rounded-r-[var(--tpl-radius-sm)]"]),
1256
1327
  onClick: r[11] ||= (e) => l("bottom", 1)
1257
- }, [k(T(Z), {
1328
+ }, [k(T(Q), {
1258
1329
  size: 12,
1259
1330
  "stroke-width": 2
1260
- })], 10, Jr)
1331
+ })], 10, ri)
1261
1332
  ])
1262
1333
  ])]));
1263
1334
  }
1264
- }), [["__scopeId", "data-v-9a9c8a07"]]), Zr = { class: "tpl:mt-3" }, Qr = /* @__PURE__ */ m({
1335
+ }), [["__scopeId", "data-v-9a9c8a07"]]), si = { class: "tpl:mt-3" }, ci = /* @__PURE__ */ m({
1265
1336
  __name: "CollapsibleSection",
1266
1337
  props: {
1267
1338
  title: {},
@@ -1274,25 +1345,25 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1274
1345
  type: "button",
1275
1346
  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)]",
1276
1347
  onClick: i[0] ||= (e) => r.$emit("toggle")
1277
- }, [k(T(tt), {
1348
+ }, [k(T(qe), {
1278
1349
  class: p(["tpl:transition-transform tpl:duration-200", n.open ? "tpl:rotate-0" : "tpl:-rotate-90"]),
1279
1350
  size: 12,
1280
1351
  "stroke-width": 2
1281
- }, null, 8, ["class"]), _("span", null, D(n.title), 1)]), t(_("div", Zr, [s(r.$slots, "default")], 512), [[x, n.open]])], 2));
1352
+ }, null, 8, ["class"]), _("span", null, D(n.title), 1)]), t(_("div", si, [s(r.$slots, "default")], 512), [[x, n.open]])], 2));
1282
1353
  }
1283
- }), $r = { class: "tpl:space-y-2" }, ei = ["checked", "onChange"], ti = { class: "tpl:space-y-2" }, ni = ["value"], ri = { value: "" }, ii = ["label"], ai = ["value"], oi = ["value"], si = {
1354
+ }), li = { class: "tpl:space-y-2" }, ui = ["checked", "onChange"], di = { class: "tpl:space-y-2" }, fi = ["value"], pi = { value: "" }, mi = ["label"], hi = ["value"], gi = ["value"], _i = {
1284
1355
  key: 0,
1285
1356
  value: "__custom__"
1286
- }, ci = {
1357
+ }, vi = {
1287
1358
  key: 0,
1288
1359
  class: "tpl:space-y-2"
1289
- }, li = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ui = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, di = { class: "tpl:flex tpl:justify-end" }, fi = ["disabled"], pi = {
1360
+ }, yi = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, bi = { class: "tpl:mb-1 tpl:block tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, xi = { class: "tpl:flex tpl:justify-end" }, Si = ["disabled"], Ci = {
1290
1361
  key: 0,
1291
1362
  class: "tpl:text-[11px] tpl:text-[var(--tpl-text-muted)]"
1292
- }, mi = { class: "tpl:space-y-1" }, hi = { 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)]" }, gi = {
1363
+ }, wi = { class: "tpl:space-y-1" }, Ti = { 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 = {
1293
1364
  key: 0,
1294
1365
  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)]"
1295
- }, _i = /* @__PURE__ */ m({
1366
+ }, Di = /* @__PURE__ */ m({
1296
1367
  __name: "CommonBlockSettings",
1297
1368
  props: {
1298
1369
  block: {},
@@ -1300,13 +1371,13 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1300
1371
  },
1301
1372
  emits: ["update"],
1302
1373
  setup(n, { emit: s }) {
1303
- let c = n, l = s, { t: m } = H(), h = A(Ve, []), x = A(ze, !1), S = i(/* @__PURE__ */ new Set()), w = u(!1), E = u(""), O = u(""), j = [{
1374
+ let c = n, l = s, { t: m } = W(), h = A(Be, []), x = A(Re, !1), S = i(/* @__PURE__ */ new Set()), w = u(!1), E = u(""), O = u(""), j = [{
1304
1375
  key: "desktop",
1305
- icon: jt,
1376
+ icon: Mt,
1306
1377
  labelKey: "showOnDesktop"
1307
1378
  }, {
1308
1379
  key: "mobile",
1309
- icon: It,
1380
+ icon: Lt,
1310
1381
  labelKey: "showOnMobile"
1311
1382
  }];
1312
1383
  function N(e) {
@@ -1338,33 +1409,33 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1338
1409
  }
1339
1410
  return e;
1340
1411
  });
1341
- function ee(e, t) {
1412
+ function z(e, t) {
1342
1413
  l("update", { styles: {
1343
1414
  ...c.block.styles,
1344
1415
  [e]: t
1345
1416
  } });
1346
1417
  }
1347
- function z(e) {
1418
+ function B(e) {
1348
1419
  return c.block.visibility?.[e] !== !1;
1349
1420
  }
1350
- function B(e) {
1421
+ function V(e) {
1351
1422
  let t = {
1352
- desktop: z("desktop"),
1353
- mobile: z("mobile")
1423
+ desktop: B("desktop"),
1424
+ mobile: B("mobile")
1354
1425
  };
1355
1426
  t[e] = !t[e], l("update", { visibility: t });
1356
1427
  }
1357
1428
  return (i, a) => (e(), v("div", { class: p(["tpl:flex tpl:flex-col", n.isFirstSection ? "" : "tpl:mt-4"]) }, [
1358
- k(Qr, {
1429
+ k(ci, {
1359
1430
  title: T(m).blockSettings.spacing,
1360
1431
  open: S.has("spacing"),
1361
1432
  "no-border": n.isFirstSection,
1362
1433
  onToggle: a[1] ||= (e) => N("spacing")
1363
1434
  }, {
1364
- default: M(() => [k(Xr, {
1435
+ default: M(() => [k(oi, {
1365
1436
  label: T(m).blockSettings.padding,
1366
1437
  "model-value": n.block.styles.padding,
1367
- "onUpdate:modelValue": a[0] ||= (e) => ee("padding", e)
1438
+ "onUpdate:modelValue": a[0] ||= (e) => z("padding", e)
1368
1439
  }, null, 8, ["label", "model-value"])]),
1369
1440
  _: 1
1370
1441
  }, 8, [
@@ -1372,32 +1443,32 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1372
1443
  "open",
1373
1444
  "no-border"
1374
1445
  ]),
1375
- k(Qr, {
1446
+ k(ci, {
1376
1447
  title: T(m).blockSettings.background,
1377
1448
  open: S.has("bg"),
1378
1449
  onToggle: a[3] ||= (e) => N("bg")
1379
1450
  }, {
1380
- default: M(() => [_("label", { class: p(T(G)) }, D(T(m).blockSettings.color), 3), k(J, {
1451
+ default: M(() => [_("label", { class: p(T(q)) }, D(T(m).blockSettings.color), 3), k(X, {
1381
1452
  "model-value": n.block.styles.backgroundColor ?? "",
1382
- "onUpdate:modelValue": a[2] ||= (e) => ee("backgroundColor", e)
1453
+ "onUpdate:modelValue": a[2] ||= (e) => z("backgroundColor", e)
1383
1454
  }, null, 8, ["model-value"])]),
1384
1455
  _: 1
1385
1456
  }, 8, ["title", "open"]),
1386
- k(Qr, {
1457
+ k(ci, {
1387
1458
  title: T(m).blockSettings.display,
1388
1459
  open: S.has("display"),
1389
1460
  onToggle: a[4] ||= (e) => N("display")
1390
1461
  }, {
1391
- default: M(() => [_("div", $r, [(e(), v(y, null, o(j, (t) => _("label", {
1462
+ default: M(() => [_("div", li, [(e(), v(y, null, o(j, (t) => _("label", {
1392
1463
  key: t.key,
1393
1464
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-xs tpl:text-[var(--tpl-text)]"
1394
1465
  }, [
1395
1466
  _("input", {
1396
1467
  type: "checkbox",
1397
1468
  class: "tpl:accent-[var(--tpl-primary)]",
1398
- checked: z(t.key),
1399
- onChange: (e) => B(t.key)
1400
- }, null, 40, ei),
1469
+ checked: B(t.key),
1470
+ onChange: (e) => V(t.key)
1471
+ }, null, 40, ui),
1401
1472
  (e(), C(r(t.icon), {
1402
1473
  size: 14,
1403
1474
  "stroke-width": 1.5
@@ -1406,13 +1477,13 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1406
1477
  ])), 64))])]),
1407
1478
  _: 1
1408
1479
  }, 8, ["title", "open"]),
1409
- P.value ? (e(), C(Qr, {
1480
+ P.value ? (e(), C(ci, {
1410
1481
  key: 0,
1411
1482
  title: T(m).blockSettings.displayCondition,
1412
1483
  open: S.has("condition"),
1413
1484
  onToggle: a[8] ||= (e) => N("condition")
1414
1485
  }, {
1415
- default: M(() => [_("div", ti, [_("select", {
1486
+ default: M(() => [_("div", di, [_("select", {
1416
1487
  class: p(["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)]", n.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)]"]),
1417
1488
  value: w.value || F.value ? "__custom__" : n.block.displayCondition?.label ?? "",
1418
1489
  onChange: a[5] ||= (e) => {
@@ -1429,48 +1500,48 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1429
1500
  n && l("update", { displayCondition: n });
1430
1501
  }
1431
1502
  }, [
1432
- _("option", ri, D(T(m).blockSettings.noCondition), 1),
1503
+ _("option", pi, D(T(m).blockSettings.noCondition), 1),
1433
1504
  (e(!0), v(y, null, o(R.value, (t, n) => (e(), v(y, { key: n }, [n ? (e(), v("optgroup", {
1434
1505
  key: 0,
1435
1506
  label: String(n)
1436
1507
  }, [(e(!0), v(y, null, o(t, (t) => (e(), v("option", {
1437
1508
  key: t.label,
1438
1509
  value: t.label
1439
- }, D(t.label), 9, ai))), 128))], 8, ii)) : (e(!0), v(y, { key: 1 }, o(t, (t) => (e(), v("option", {
1510
+ }, D(t.label), 9, hi))), 128))], 8, mi)) : (e(!0), v(y, { key: 1 }, o(t, (t) => (e(), v("option", {
1440
1511
  key: t.label,
1441
1512
  value: t.label
1442
- }, D(t.label), 9, oi))), 128))], 64))), 128)),
1443
- T(x) ? (e(), v("option", si, D(T(m).blockSettings.customCondition), 1)) : b("", !0)
1444
- ], 42, ni), w.value || F.value ? (e(), v("div", ci, [
1445
- _("div", null, [_("label", li, D(T(m).blockSettings.customConditionBefore), 1), t(_("textarea", {
1513
+ }, D(t.label), 9, gi))), 128))], 64))), 128)),
1514
+ T(x) ? (e(), v("option", _i, D(T(m).blockSettings.customCondition), 1)) : b("", !0)
1515
+ ], 42, fi), w.value || F.value ? (e(), v("div", vi, [
1516
+ _("div", null, [_("label", yi, D(T(m).blockSettings.customConditionBefore), 1), t(_("textarea", {
1446
1517
  "onUpdate:modelValue": a[6] ||= (e) => E.value = e,
1447
1518
  rows: "2",
1448
- class: p(T(yt))
1519
+ class: p(T(bt))
1449
1520
  }, null, 2), [[f, E.value]])]),
1450
- _("div", null, [_("label", ui, D(T(m).blockSettings.customConditionAfter), 1), t(_("textarea", {
1521
+ _("div", null, [_("label", bi, D(T(m).blockSettings.customConditionAfter), 1), t(_("textarea", {
1451
1522
  "onUpdate:modelValue": a[7] ||= (e) => O.value = e,
1452
1523
  rows: "2",
1453
- class: p(T(yt))
1524
+ class: p(T(bt))
1454
1525
  }, null, 2), [[f, O.value]])]),
1455
- _("div", di, [_("button", {
1526
+ _("div", xi, [_("button", {
1456
1527
  type: "button",
1457
1528
  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",
1458
1529
  disabled: !E.value.trim(),
1459
1530
  onClick: L
1460
- }, D(T(m).blockSettings.applyCondition), 9, fi)])
1461
- ])) : n.block.displayCondition && !F.value ? (e(), v(y, { key: 1 }, [n.block.displayCondition.description ? (e(), v("p", pi, D(n.block.displayCondition.description), 1)) : b("", !0), _("div", mi, [_("pre", hi, D(n.block.displayCondition.before), 1), n.block.displayCondition.after ? (e(), v("pre", gi, D(n.block.displayCondition.after), 1)) : b("", !0)])], 64)) : b("", !0)])]),
1531
+ }, D(T(m).blockSettings.applyCondition), 9, Si)])
1532
+ ])) : n.block.displayCondition && !F.value ? (e(), v(y, { key: 1 }, [n.block.displayCondition.description ? (e(), v("p", Ci, D(n.block.displayCondition.description), 1)) : b("", !0), _("div", wi, [_("pre", Ti, D(n.block.displayCondition.before), 1), n.block.displayCondition.after ? (e(), v("pre", Ei, D(n.block.displayCondition.after), 1)) : b("", !0)])], 64)) : b("", !0)])]),
1462
1533
  _: 1
1463
1534
  }, 8, ["title", "open"])) : b("", !0)
1464
1535
  ], 2));
1465
1536
  }
1466
- }), vi = ["title"], yi = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, bi = {
1537
+ }), Oi = ["title"], ki = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Ai = {
1467
1538
  key: 1,
1468
1539
  class: "tpl:text-[var(--tpl-danger)]"
1469
- }, xi = [
1540
+ }, ji = [
1470
1541
  "aria-checked",
1471
1542
  "aria-label",
1472
1543
  "disabled"
1473
- ], Si = /* @__PURE__ */ m({
1544
+ ], Mi = /* @__PURE__ */ m({
1474
1545
  __name: "BooleanField",
1475
1546
  props: {
1476
1547
  field: {},
@@ -1479,18 +1550,18 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1479
1550
  },
1480
1551
  emits: ["update:modelValue"],
1481
1552
  setup(t, { emit: n }) {
1482
- let r = n, { t: i } = H();
1553
+ let r = n, { t: i } = W();
1483
1554
  return (n, a) => (e(), v("div", {
1484
1555
  class: "tpl:mb-3.5",
1485
1556
  title: t.readOnly ? T(i).customBlocks.dataSource.readOnlyTooltip : void 0
1486
- }, [_("label", { class: p(["tpl:flex tpl:items-center tpl:justify-between tpl:gap-2", t.readOnly ? "tpl:cursor-not-allowed" : "tpl:cursor-pointer"]) }, [_("span", yi, [
1557
+ }, [_("label", { class: p(["tpl:flex tpl:items-center tpl:justify-between tpl:gap-2", t.readOnly ? "tpl:cursor-not-allowed" : "tpl:cursor-pointer"]) }, [_("span", ki, [
1487
1558
  d(D(t.field.label) + " ", 1),
1488
- t.readOnly ? (e(), C(T(At), {
1559
+ t.readOnly ? (e(), C(T(jt), {
1489
1560
  key: 0,
1490
1561
  size: 12,
1491
1562
  class: "tpl:inline tpl:text-[var(--tpl-text-dim)]"
1492
1563
  })) : b("", !0),
1493
- t.field.required ? (e(), v("span", bi, " * ")) : b("", !0)
1564
+ t.field.required ? (e(), v("span", Ai, " * ")) : b("", !0)
1494
1565
  ]), _("button", {
1495
1566
  type: "button",
1496
1567
  role: "switch",
@@ -1503,12 +1574,12 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1503
1574
  ]),
1504
1575
  disabled: t.readOnly,
1505
1576
  onClick: a[0] ||= (e) => !t.readOnly && r("update:modelValue", !t.modelValue)
1506
- }, [_("span", { class: p(["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", t.modelValue ? "tpl:translate-x-4" : "tpl:translate-x-0"]) }, null, 2)], 10, xi)], 2)], 8, vi));
1577
+ }, [_("span", { class: p(["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", t.modelValue ? "tpl:translate-x-4" : "tpl:translate-x-0"]) }, null, 2)], 10, ji)], 2)], 8, Oi));
1507
1578
  }
1508
- }), Ci = { class: "tpl:mb-3.5" }, wi = {
1579
+ }), Ni = { class: "tpl:mb-3.5" }, Pi = {
1509
1580
  key: 1,
1510
1581
  class: "tpl:text-[var(--tpl-danger)]"
1511
- }, Ti = /* @__PURE__ */ m({
1582
+ }, Fi = /* @__PURE__ */ m({
1512
1583
  __name: "FieldWrapper",
1513
1584
  props: {
1514
1585
  label: {},
@@ -1516,17 +1587,17 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1516
1587
  readOnly: { type: Boolean }
1517
1588
  },
1518
1589
  setup(t) {
1519
- return (n, r) => (e(), v("div", Ci, [_("label", { class: p(T(G)) }, [
1590
+ return (n, r) => (e(), v("div", Ni, [_("label", { class: p(T(q)) }, [
1520
1591
  d(D(t.label) + " ", 1),
1521
- t.readOnly ? (e(), C(T(At), {
1592
+ t.readOnly ? (e(), C(T(jt), {
1522
1593
  key: 0,
1523
1594
  size: 12,
1524
1595
  class: "tpl:inline tpl:text-[var(--tpl-text-dim)]"
1525
1596
  })) : b("", !0),
1526
- t.required ? (e(), v("span", wi, "*")) : b("", !0)
1597
+ t.required ? (e(), v("span", Pi, "*")) : b("", !0)
1527
1598
  ], 2), s(n.$slots, "default")]));
1528
1599
  }
1529
- }), Ei = /* @__PURE__ */ m({
1600
+ }), Ii = /* @__PURE__ */ m({
1530
1601
  __name: "ColorField",
1531
1602
  props: {
1532
1603
  field: {},
@@ -1535,13 +1606,13 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1535
1606
  },
1536
1607
  emits: ["update:modelValue"],
1537
1608
  setup(t, { emit: n }) {
1538
- let r = n, { t: i } = H();
1539
- return (n, a) => (e(), C(Ti, {
1609
+ let r = n, { t: i } = W();
1610
+ return (n, a) => (e(), C(Fi, {
1540
1611
  label: t.field.label,
1541
1612
  required: t.field.required,
1542
1613
  "read-only": t.readOnly
1543
1614
  }, {
1544
- default: M(() => [k(J, {
1615
+ default: M(() => [k(X, {
1545
1616
  "model-value": t.modelValue,
1546
1617
  placeholder: t.field.placeholder,
1547
1618
  disabled: t.readOnly,
@@ -1560,15 +1631,15 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1560
1631
  "read-only"
1561
1632
  ]));
1562
1633
  }
1563
- }), Di = {
1634
+ }), Li = {
1564
1635
  key: 0,
1565
1636
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-10 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-xs tpl:font-medium tpl:border-[var(--tpl-primary)] tpl:text-[var(--tpl-primary)]",
1566
1637
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 90%, transparent)" }
1567
- }, Oi = [
1638
+ }, Ri = [
1568
1639
  "value",
1569
1640
  "placeholder",
1570
1641
  "title"
1571
- ], ki = ["value", "placeholder"], Ai = /* @__PURE__ */ m({
1642
+ ], zi = ["value", "placeholder"], Bi = /* @__PURE__ */ m({
1572
1643
  __name: "ImageField",
1573
1644
  props: {
1574
1645
  field: {},
@@ -1577,7 +1648,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1577
1648
  },
1578
1649
  emits: ["update:modelValue"],
1579
1650
  setup(t, { emit: n }) {
1580
- let r = t, i = n, { t: a } = H(), o = A(Oe, null), s = mt(), c = g(() => !!o);
1651
+ let r = t, i = n, { t: a } = W(), o = A(Ee, null), s = ht(), c = g(() => !!o);
1581
1652
  async function l() {
1582
1653
  let e = await o?.({ accept: ["images"] });
1583
1654
  s.alive && e && i("update:modelValue", e.url);
@@ -1598,12 +1669,12 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1598
1669
  }
1599
1670
  }
1600
1671
  }
1601
- let { isOver: S } = de({
1672
+ let { isOver: S } = ue({
1602
1673
  target: f,
1603
1674
  enabled: h,
1604
1675
  onFiles: x
1605
1676
  });
1606
- return (n, r) => (e(), C(Ti, {
1677
+ return (n, r) => (e(), C(Fi, {
1607
1678
  label: t.field.label,
1608
1679
  required: t.field.required,
1609
1680
  "read-only": t.readOnly
@@ -1613,35 +1684,35 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1613
1684
  ref: f,
1614
1685
  class: "tpl:relative"
1615
1686
  }, [
1616
- h.value && (T(S) || m.value) ? (e(), v("div", Di, [m.value ? (e(), v(y, { key: 0 }, [k(T(Xe), {
1687
+ h.value && (T(S) || m.value) ? (e(), v("div", Li, [m.value ? (e(), v(y, { key: 0 }, [k(T(it), {
1617
1688
  class: "tpl-spinner",
1618
1689
  size: 18,
1619
1690
  "stroke-width": 2
1620
- }), d(" " + D(T(a).image.uploading), 1)], 64)) : (e(), v(y, { key: 1 }, [k(T(lt), {
1691
+ }), d(" " + D(T(a).image.uploading), 1)], 64)) : (e(), v(y, { key: 1 }, [k(T(ut), {
1621
1692
  size: 18,
1622
1693
  "stroke-width": 1.5
1623
1694
  }), d(" " + D(T(a).image.dropToUpload), 1)], 64))])) : b("", !0),
1624
1695
  t.readOnly ? (e(), v("input", {
1625
1696
  key: 1,
1626
1697
  type: "url",
1627
- class: p([T(W), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1698
+ class: p([T(K), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1628
1699
  value: t.modelValue,
1629
1700
  placeholder: t.field.placeholder || "https://...",
1630
1701
  disabled: "",
1631
1702
  title: T(a).customBlocks.dataSource.readOnlyTooltip
1632
- }, null, 10, Oi)) : (e(), v("input", {
1703
+ }, null, 10, Ri)) : (e(), v("input", {
1633
1704
  key: 2,
1634
1705
  type: "url",
1635
- class: p(T(W)),
1706
+ class: p(T(K)),
1636
1707
  value: t.modelValue,
1637
1708
  placeholder: t.field.placeholder || "https://...",
1638
1709
  onInput: r[0] ||= (e) => i("update:modelValue", e.target.value)
1639
- }, null, 42, ki)),
1710
+ }, null, 42, zi)),
1640
1711
  c.value && !t.readOnly ? (e(), v("button", {
1641
1712
  key: 3,
1642
1713
  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)]",
1643
1714
  onClick: r[1] ||= (e) => l()
1644
- }, [k(T(B), {
1715
+ }, [k(T(pe), {
1645
1716
  size: 14,
1646
1717
  "stroke-width": 1.5
1647
1718
  }), d(" " + D(T(a).image.browseMedia), 1)])) : b("", !0)
@@ -1653,7 +1724,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1653
1724
  "read-only"
1654
1725
  ]));
1655
1726
  }
1656
- }), ji = [
1727
+ }), Vi = [
1657
1728
  "value",
1658
1729
  "placeholder",
1659
1730
  "min",
@@ -1661,7 +1732,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1661
1732
  "step",
1662
1733
  "disabled",
1663
1734
  "title"
1664
- ], Mi = /* @__PURE__ */ m({
1735
+ ], Hi = /* @__PURE__ */ m({
1665
1736
  __name: "NumberField",
1666
1737
  props: {
1667
1738
  field: {},
@@ -1670,15 +1741,15 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1670
1741
  },
1671
1742
  emits: ["update:modelValue"],
1672
1743
  setup(t, { emit: n }) {
1673
- let r = n, { t: i } = H();
1674
- return (n, a) => (e(), C(Ti, {
1744
+ let r = n, { t: i } = W();
1745
+ return (n, a) => (e(), C(Fi, {
1675
1746
  label: t.field.label,
1676
1747
  required: t.field.required,
1677
1748
  "read-only": t.readOnly
1678
1749
  }, {
1679
1750
  default: M(() => [_("input", {
1680
1751
  type: "number",
1681
- class: p([T(W), t.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1752
+ class: p([T(K), t.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1682
1753
  value: t.modelValue,
1683
1754
  placeholder: t.field.placeholder,
1684
1755
  min: t.field.min,
@@ -1687,7 +1758,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1687
1758
  disabled: t.readOnly,
1688
1759
  title: t.readOnly ? T(i).customBlocks.dataSource.readOnlyTooltip : void 0,
1689
1760
  onInput: a[0] ||= (e) => !t.readOnly && r("update:modelValue", Number(e.target.value))
1690
- }, null, 42, ji)]),
1761
+ }, null, 42, Vi)]),
1691
1762
  _: 1
1692
1763
  }, 8, [
1693
1764
  "label",
@@ -1695,10 +1766,10 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1695
1766
  "read-only"
1696
1767
  ]));
1697
1768
  }
1698
- }), Ni = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Pi = { 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)]" }, Ii = ["title", "onClick"], Li = {
1769
+ }), Ui = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Wi = { class: "tpl:mb-2 tpl:flex tpl:items-center tpl:justify-between" }, Gi = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-dim)]" }, Ki = ["title", "onClick"], qi = {
1699
1770
  key: 1,
1700
1771
  class: "tpl:m-0 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
1701
- }, Ri = /* @__PURE__ */ m({
1772
+ }, Ji = /* @__PURE__ */ m({
1702
1773
  __name: "RepeatableField",
1703
1774
  props: {
1704
1775
  field: {},
@@ -1707,7 +1778,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1707
1778
  },
1708
1779
  emits: ["update:modelValue"],
1709
1780
  setup(t, { emit: n }) {
1710
- let i = t, a = n, { t: s } = H(), c = g(() => i.modelValue || []), l = g(() => !i.field.maxItems || c.value.length < i.field.maxItems), u = g(() => !i.field.minItems || c.value.length > i.field.minItems);
1781
+ let i = t, a = n, { t: s } = W(), c = g(() => i.modelValue || []), l = g(() => !i.field.maxItems || c.value.length < i.field.maxItems), u = g(() => !i.field.minItems || c.value.length > i.field.minItems);
1711
1782
  function f() {
1712
1783
  if (!l.value || i.readOnly) return;
1713
1784
  let e = {};
@@ -1720,30 +1791,31 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1720
1791
  t.splice(e, 1), a("update:modelValue", t);
1721
1792
  }
1722
1793
  function h(e, t, n) {
1723
- a("update:modelValue", c.value.map((r, i) => i === e ? {
1794
+ let r = c.value.map((r, i) => i === e ? {
1724
1795
  ...r,
1725
1796
  [t]: n
1726
- } : r));
1797
+ } : r);
1798
+ a("update:modelValue", r);
1727
1799
  }
1728
- return (n, i) => (e(), C(Ti, {
1800
+ return (n, i) => (e(), C(Fi, {
1729
1801
  label: t.field.label,
1730
1802
  required: t.field.required,
1731
1803
  "read-only": t.readOnly
1732
1804
  }, {
1733
- default: M(() => [_("div", Ni, [
1805
+ default: M(() => [_("div", Ui, [
1734
1806
  (e(!0), v(y, null, o(c.value, (n, i) => (e(), v("div", {
1735
1807
  key: `${t.field.key}-${i}`,
1736
1808
  class: "tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:p-3"
1737
- }, [_("div", Pi, [_("span", Fi, " #" + D(i + 1), 1), u.value && !t.readOnly ? (e(), v("button", {
1809
+ }, [_("div", Wi, [_("span", Gi, " #" + D(i + 1), 1), u.value && !t.readOnly ? (e(), v("button", {
1738
1810
  key: 0,
1739
1811
  type: "button",
1740
1812
  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)]",
1741
1813
  title: T(s).customBlocks.fields.removeItem,
1742
1814
  onClick: (e) => m(i)
1743
- }, [k(T(ct), {
1815
+ }, [k(T(lt), {
1744
1816
  size: 12,
1745
1817
  "stroke-width": 2
1746
- })], 8, Ii)) : b("", !0)]), (e(!0), v(y, null, o(t.field.fields, (a) => (e(), C(r(T(qi)(a.type)), {
1818
+ })], 8, Ki)) : b("", !0)]), (e(!0), v(y, null, o(t.field.fields, (a) => (e(), C(r(T(ra)(a.type)), {
1747
1819
  key: a.key,
1748
1820
  field: a,
1749
1821
  "model-value": n[a.key],
@@ -1758,13 +1830,13 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1758
1830
  l.value && !t.readOnly ? (e(), v("button", {
1759
1831
  key: 0,
1760
1832
  type: "button",
1761
- class: p(T(vt)),
1833
+ class: p(T(yt)),
1762
1834
  onClick: f
1763
- }, [k(T(Z), {
1835
+ }, [k(T(Q), {
1764
1836
  size: 14,
1765
1837
  "stroke-width": 2
1766
1838
  }), d(" " + D(T(s).customBlocks.fields.addItem), 1)], 2)) : b("", !0),
1767
- !l.value && !t.readOnly ? (e(), v("p", Li, D(T(s).customBlocks.fields.maxItemsReached), 1)) : b("", !0)
1839
+ !l.value && !t.readOnly ? (e(), v("p", qi, D(T(s).customBlocks.fields.maxItemsReached), 1)) : b("", !0)
1768
1840
  ])]),
1769
1841
  _: 1
1770
1842
  }, 8, [
@@ -1773,11 +1845,11 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1773
1845
  "read-only"
1774
1846
  ]));
1775
1847
  }
1776
- }), zi = [
1848
+ }), Yi = [
1777
1849
  "value",
1778
1850
  "disabled",
1779
1851
  "title"
1780
- ], Bi = ["value"], Vi = /* @__PURE__ */ m({
1852
+ ], Xi = ["value"], Zi = /* @__PURE__ */ m({
1781
1853
  __name: "SelectField",
1782
1854
  props: {
1783
1855
  field: {},
@@ -1786,14 +1858,14 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1786
1858
  },
1787
1859
  emits: ["update:modelValue"],
1788
1860
  setup(t, { emit: n }) {
1789
- let r = n, { t: i } = H();
1790
- return (n, a) => (e(), C(Ti, {
1861
+ let r = n, { t: i } = W();
1862
+ return (n, a) => (e(), C(Fi, {
1791
1863
  label: t.field.label,
1792
1864
  required: t.field.required,
1793
1865
  "read-only": t.readOnly
1794
1866
  }, {
1795
1867
  default: M(() => [_("select", {
1796
- class: p([T(W), t.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1868
+ class: p([T(K), t.readOnly && "tpl:opacity-60 tpl:cursor-not-allowed"]),
1797
1869
  value: t.modelValue,
1798
1870
  disabled: t.readOnly,
1799
1871
  title: t.readOnly ? T(i).customBlocks.dataSource.readOnlyTooltip : void 0,
@@ -1801,7 +1873,7 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1801
1873
  }, [(e(!0), v(y, null, o(t.field.options, (t) => (e(), v("option", {
1802
1874
  key: t.value,
1803
1875
  value: t.value
1804
- }, D(t.label), 9, Bi))), 128))], 42, zi)]),
1876
+ }, D(t.label), 9, Xi))), 128))], 42, Yi)]),
1805
1877
  _: 1
1806
1878
  }, 8, [
1807
1879
  "label",
@@ -1809,11 +1881,11 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1809
1881
  "read-only"
1810
1882
  ]));
1811
1883
  }
1812
- }), Hi = [
1884
+ }), Qi = [
1813
1885
  "value",
1814
1886
  "placeholder",
1815
1887
  "title"
1816
- ], Ui = /* @__PURE__ */ m({
1888
+ ], $i = /* @__PURE__ */ m({
1817
1889
  __name: "TextField",
1818
1890
  props: {
1819
1891
  field: {},
@@ -1822,8 +1894,8 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1822
1894
  },
1823
1895
  emits: ["update:modelValue"],
1824
1896
  setup(t, { emit: n }) {
1825
- let r = n, { t: i } = H();
1826
- return (n, a) => (e(), C(Ti, {
1897
+ let r = n, { t: i } = W();
1898
+ return (n, a) => (e(), C(Fi, {
1827
1899
  label: t.field.label,
1828
1900
  required: t.field.required,
1829
1901
  "read-only": t.readOnly
@@ -1831,12 +1903,12 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1831
1903
  default: M(() => [t.readOnly ? (e(), v("input", {
1832
1904
  key: 0,
1833
1905
  type: "text",
1834
- class: p([T(W), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1906
+ class: p([T(K), "tpl:opacity-60 tpl:cursor-not-allowed"]),
1835
1907
  value: t.modelValue,
1836
1908
  placeholder: t.field.placeholder,
1837
1909
  disabled: "",
1838
1910
  title: T(i).customBlocks.dataSource.readOnlyTooltip
1839
- }, null, 10, Hi)) : (e(), C(Q, {
1911
+ }, null, 10, Qi)) : (e(), C($, {
1840
1912
  key: 1,
1841
1913
  "model-value": t.modelValue,
1842
1914
  placeholder: t.field.placeholder,
@@ -1849,12 +1921,12 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1849
1921
  "read-only"
1850
1922
  ]));
1851
1923
  }
1852
- }), Wi = [
1924
+ }), ea = [
1853
1925
  "value",
1854
1926
  "placeholder",
1855
1927
  "title"
1856
- ], Gi = "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", Ki = {
1857
- text: Ui,
1928
+ ], ta = "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", na = {
1929
+ text: $i,
1858
1930
  textarea: /* @__PURE__ */ m({
1859
1931
  __name: "TextareaField",
1860
1932
  props: {
@@ -1864,8 +1936,8 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1864
1936
  },
1865
1937
  emits: ["update:modelValue"],
1866
1938
  setup(t, { emit: n }) {
1867
- let r = n, { t: i } = H();
1868
- return (n, a) => (e(), C(Ti, {
1939
+ let r = n, { t: i } = W();
1940
+ return (n, a) => (e(), C(Fi, {
1869
1941
  label: t.field.label,
1870
1942
  required: t.field.required,
1871
1943
  "read-only": t.readOnly
@@ -1877,8 +1949,8 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1877
1949
  rows: "3",
1878
1950
  disabled: "",
1879
1951
  title: T(i).customBlocks.dataSource.readOnlyTooltip,
1880
- class: p(Gi)
1881
- }, null, 8, Wi)) : (e(), C(wn, {
1952
+ class: p(ta)
1953
+ }, null, 8, ea)) : (e(), C(jn, {
1882
1954
  key: 1,
1883
1955
  "model-value": t.modelValue,
1884
1956
  placeholder: t.field.placeholder,
@@ -1892,42 +1964,42 @@ var un = ["aria-label", "onKeydown"], dn = ["data-tooltip"], fn = ["data-tooltip
1892
1964
  ]));
1893
1965
  }
1894
1966
  }),
1895
- image: Ai,
1896
- color: Ei,
1897
- number: Mi,
1898
- select: Vi,
1899
- boolean: Si,
1900
- repeatable: Ri
1967
+ image: Bi,
1968
+ color: Ii,
1969
+ number: Hi,
1970
+ select: Zi,
1971
+ boolean: Mi,
1972
+ repeatable: Ji
1901
1973
  };
1902
- function qi(e) {
1903
- return Ki[e] ?? Ui;
1974
+ function ra(e) {
1975
+ return na[e] ?? $i;
1904
1976
  }
1905
1977
  //#endregion
1906
1978
  //#region src/components/toolbar/CustomBlockToolbar.vue?vue&type=script&setup=true&lang.ts
1907
- var Ji = {
1979
+ var ia = {
1908
1980
  key: 0,
1909
1981
  class: "tpl:p-4"
1910
- }, Yi = { class: "tpl:m-0 tpl:text-center tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Xi = { key: 1 }, Zi = {
1982
+ }, aa = { class: "tpl:m-0 tpl:text-center tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, oa = { key: 1 }, sa = {
1911
1983
  key: 0,
1912
1984
  class: "tpl:m-0 tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
1913
- }, Qi = {
1985
+ }, ca = {
1914
1986
  key: 1,
1915
1987
  class: "tpl:mb-4"
1916
- }, $i = {
1988
+ }, la = {
1917
1989
  key: 1,
1918
1990
  class: "tpl:flex tpl:h-[32px] tpl:items-center"
1919
- }, ea = {
1991
+ }, ua = {
1920
1992
  key: 0,
1921
1993
  class: "tpl:w-full tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
1922
- }, ta = {
1994
+ }, da = {
1923
1995
  key: 2,
1924
1996
  class: "tpl:m-0 tpl:mt-2 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]"
1925
- }, na = /* @__PURE__ */ m({
1997
+ }, fa = /* @__PURE__ */ m({
1926
1998
  __name: "CustomBlockToolbar",
1927
1999
  props: { block: {} },
1928
2000
  emits: ["updateFieldValues", "updateDataSourceFetched"],
1929
2001
  setup(t, { emit: n }) {
1930
- let i = t, a = n, { t: s } = H(), c = A(Pe, []), l = g(() => c.find((e) => e.type === i.block.customType)), { isFetching: u, fetchError: f, fetch: p, hasDataSource: m, needsFetch: h } = V({
2002
+ let i = t, a = n, { t: s } = W(), c = A(Ne, []), l = g(() => c.find((e) => e.type === i.block.customType)), { isFetching: u, fetchError: f, fetch: p, hasDataSource: m, needsFetch: h } = ie({
1931
2003
  definition: l,
1932
2004
  block: g(() => i.block),
1933
2005
  onUpdate: (e, t) => {
@@ -1943,23 +2015,23 @@ var Ji = {
1943
2015
  [e]: t
1944
2016
  });
1945
2017
  }
1946
- return (n, i) => l.value ? (e(), v("div", Xi, [
1947
- l.value.description ? (e(), v("p", Zi, D(l.value.description), 1)) : b("", !0),
1948
- T(m) ? (e(), v("div", Qi, [T(h) && !T(u) ? (e(), v("button", {
2018
+ return (n, i) => l.value ? (e(), v("div", oa, [
2019
+ l.value.description ? (e(), v("p", sa, D(l.value.description), 1)) : b("", !0),
2020
+ T(m) ? (e(), v("div", ca, [T(h) && !T(u) ? (e(), v("button", {
1949
2021
  key: 0,
1950
2022
  type: "button",
1951
2023
  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)]",
1952
2024
  onClick: i[0] ||= (...e) => T(p) && T(p)(...e)
1953
- }, D(l.value?.dataSource?.label || T(s).customBlocks.dataSource.fetchButton), 1)) : (e(), v("div", $i, [T(u) ? (e(), v("div", ea, D(T(s).customBlocks.dataSource.fetching), 1)) : (e(), v("button", {
2025
+ }, D(l.value?.dataSource?.label || T(s).customBlocks.dataSource.fetchButton), 1)) : (e(), v("div", la, [T(u) ? (e(), v("div", ua, D(T(s).customBlocks.dataSource.fetching), 1)) : (e(), v("button", {
1954
2026
  key: 1,
1955
2027
  type: "button",
1956
2028
  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)]",
1957
2029
  onClick: i[1] ||= (...e) => T(p) && T(p)(...e)
1958
- }, [k(T(rt), { size: 12 }), d(" " + D(T(s).customBlocks.dataSource.changeButton), 1)]))])), T(f) ? (e(), v("p", ta, [k(T(Ge), {
2030
+ }, [k(T(et), { size: 12 }), d(" " + D(T(s).customBlocks.dataSource.changeButton), 1)]))])), T(f) ? (e(), v("p", da, [k(T(Je), {
1959
2031
  size: 14,
1960
2032
  class: "tpl:shrink-0"
1961
2033
  }), d(" " + D(T(s).customBlocks.dataSource.fetchError), 1)])) : b("", !0)])) : b("", !0),
1962
- (e(!0), v(y, null, o(l.value.fields, (n) => (e(), C(r(T(qi)(n.type)), {
2034
+ (e(!0), v(y, null, o(l.value.fields, (n) => (e(), C(r(T(ra)(n.type)), {
1963
2035
  key: n.key,
1964
2036
  field: n,
1965
2037
  "model-value": t.block.fieldValues[n.key],
@@ -1971,19 +2043,19 @@ var Ji = {
1971
2043
  "read-only",
1972
2044
  "onUpdate:modelValue"
1973
2045
  ]))), 128))
1974
- ])) : (e(), v("div", Ji, [_("p", Yi, D(T(s).customBlocks.toolbar.noDefinition), 1)]));
2046
+ ])) : (e(), v("div", ia, [_("p", aa, D(T(s).customBlocks.toolbar.noDefinition), 1)]));
1975
2047
  }
1976
- }), ra = { class: "tpl:mb-3.5" }, ia = { class: "tpl:mb-3.5" }, aa = { class: "tpl:mb-3.5" }, oa = { class: "tpl:flex tpl:items-stretch" }, sa = ["value"], ca = /* @__PURE__ */ m({
2048
+ }), pa = { class: "tpl:mb-3.5" }, ma = { class: "tpl:mb-3.5" }, ha = { class: "tpl:mb-3.5" }, ga = { class: "tpl:flex tpl:items-stretch" }, _a = ["value"], va = /* @__PURE__ */ m({
1977
2049
  __name: "DividerToolbar",
1978
2050
  props: { block: {} },
1979
2051
  emits: ["update"],
1980
2052
  setup(t, { emit: n }) {
1981
- let r = n, { t: i } = H();
2053
+ let r = n, { t: i } = W();
1982
2054
  function a(e, t) {
1983
2055
  r("update", { [e]: t });
1984
2056
  }
1985
2057
  return (n, r) => (e(), v(y, null, [
1986
- _("div", ra, [_("label", { class: p(T(G)) }, D(T(i).divider.style), 3), k(X, {
2058
+ _("div", pa, [_("label", { class: p(T(q)) }, D(T(i).divider.style), 3), k(wt, {
1987
2059
  options: [
1988
2060
  {
1989
2061
  value: "solid",
@@ -2001,60 +2073,60 @@ var Ji = {
2001
2073
  "model-value": t.block.lineStyle,
2002
2074
  "onUpdate:modelValue": r[0] ||= (e) => a("lineStyle", e)
2003
2075
  }, null, 8, ["options", "model-value"])]),
2004
- _("div", ia, [_("label", { class: p(T(G)) }, D(T(i).divider.color), 3), k(J, {
2076
+ _("div", ma, [_("label", { class: p(T(q)) }, D(T(i).divider.color), 3), k(X, {
2005
2077
  "model-value": t.block.color,
2006
2078
  "onUpdate:modelValue": r[1] ||= (e) => a("color", e)
2007
2079
  }, null, 8, ["model-value"])]),
2008
- _("div", aa, [_("label", { class: p(T(G)) }, D(T(i).divider.thickness), 3), _("div", oa, [_("input", {
2080
+ _("div", ha, [_("label", { class: p(T(q)) }, D(T(i).divider.thickness), 3), _("div", ga, [_("input", {
2009
2081
  type: "number",
2010
- class: p(T(q)),
2082
+ class: p(T(Y)),
2011
2083
  value: t.block.thickness,
2012
2084
  min: "1",
2013
2085
  max: "10",
2014
2086
  onInput: r[2] ||= (e) => a("thickness", Number(e.target.value))
2015
- }, null, 42, sa), _("span", { class: p(T(K)) }, "px", 2)])])
2087
+ }, null, 42, _a), _("span", { class: p(T(J)) }, "px", 2)])])
2016
2088
  ], 64));
2017
2089
  }
2018
- }), la = { class: "tpl:mb-3.5" }, ua = ["value"], da = { class: "tpl:mt-1.5 tpl:flex tpl:items-start tpl:gap-1.5 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, fa = /* @__PURE__ */ m({
2090
+ }), ya = { class: "tpl:mb-3.5" }, ba = ["value"], xa = { class: "tpl:mt-1.5 tpl:flex tpl:items-start tpl:gap-1.5 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Sa = /* @__PURE__ */ m({
2019
2091
  __name: "HtmlToolbar",
2020
2092
  props: { block: {} },
2021
2093
  emits: ["update"],
2022
2094
  setup(t, { emit: n }) {
2023
- let r = n, { t: i } = H();
2024
- return (n, a) => (e(), v("div", la, [
2025
- _("label", { class: p(T(G)) }, D(T(i).html.content), 3),
2095
+ let r = n, { t: i } = W();
2096
+ return (n, a) => (e(), v("div", ya, [
2097
+ _("label", { class: p(T(q)) }, D(T(i).html.content), 3),
2026
2098
  _("textarea", {
2027
2099
  value: t.block.content,
2028
2100
  placeholder: "<div>...</div>",
2029
2101
  rows: "10",
2030
- class: p(T(yt)),
2102
+ class: p(T(bt)),
2031
2103
  onInput: a[0] ||= (e) => r("update", { content: e.target.value })
2032
- }, null, 42, ua),
2033
- _("p", da, [k(T(at), {
2104
+ }, null, 42, ba),
2105
+ _("p", xa, [k(T(nt), {
2034
2106
  size: 12,
2035
2107
  class: "tpl:mt-0.5 tpl:shrink-0"
2036
2108
  }), d(" " + D(T(i).html.sanitizationHint), 1)])
2037
2109
  ]));
2038
2110
  }
2039
- }), pa = { class: "tpl:mb-3.5" }, ma = {
2111
+ }), Ca = { class: "tpl:mb-3.5" }, wa = {
2040
2112
  key: 0,
2041
2113
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-10 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-xs tpl:font-medium tpl:border-[var(--tpl-primary)] tpl:text-[var(--tpl-primary)]",
2042
2114
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 90%, transparent)" }
2043
- }, ha = {
2115
+ }, Ta = {
2044
2116
  key: 0,
2045
2117
  class: "tpl:mb-3.5"
2046
- }, ga = ["value", "placeholder"], _a = { class: "tpl:mb-3.5" }, va = { class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]" }, ya = ["checked"], ba = { class: "tpl:block tpl:text-[var(--tpl-text-dim)]" }, xa = { class: "tpl:mb-3.5" }, Sa = ["value"], Ca = { value: "full" }, wa = { value: "custom" }, Ta = {
2118
+ }, Ea = ["value", "placeholder"], Da = { class: "tpl:mb-3.5" }, Oa = { class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]" }, ka = ["checked"], Aa = { class: "tpl:block tpl:text-[var(--tpl-text-dim)]" }, ja = { class: "tpl:mb-3.5" }, Ma = ["value"], Na = { value: "full" }, Pa = { value: "custom" }, Fa = {
2047
2119
  key: 0,
2048
2120
  class: "tpl:mt-2 tpl:flex tpl:items-stretch"
2049
- }, Ea = ["value"], Da = { class: "tpl:mb-3.5" }, Oa = { class: "tpl:mb-3.5" }, ka = {
2121
+ }, Ia = ["value"], La = { class: "tpl:mb-3.5" }, Ra = { class: "tpl:mb-3.5" }, za = {
2050
2122
  key: 0,
2051
2123
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
2052
- }, Aa = ["checked"], ja = 350, Ma = /* @__PURE__ */ m({
2124
+ }, Ba = ["checked"], Va = 350, Ha = /* @__PURE__ */ m({
2053
2125
  __name: "ImageToolbar",
2054
2126
  props: { block: {} },
2055
2127
  emits: ["update"],
2056
2128
  setup(t, { emit: n }) {
2057
- let r = t, i = n, { t: a } = H(), o = A(Oe, null), s = A(je, L.liquid), c = mt(), l = g(() => !!o), f = u(!1), m = u(!1), { start: h } = Te(() => {
2129
+ let r = t, i = n, { t: a } = W(), o = A(Ee, null), s = A(je, L.liquid), c = ht(), l = g(() => !!o), f = u(!1), m = u(!1), { start: h } = we(() => {
2058
2130
  f.value = !1;
2059
2131
  }, 1e3, { immediate: !1 }), x = [
2060
2132
  300,
@@ -2070,7 +2142,7 @@ var Ji = {
2070
2142
  function w(e) {
2071
2143
  if (e === "custom") {
2072
2144
  let e = r.block.width;
2073
- (typeof e != "number" || x.includes(e)) && C("width", ja);
2145
+ (typeof e != "number" || x.includes(e)) && C("width", Va);
2074
2146
  return;
2075
2147
  }
2076
2148
  C("width", e === "full" ? "full" : Number(e));
@@ -2099,26 +2171,26 @@ var Ji = {
2099
2171
  }
2100
2172
  }
2101
2173
  }
2102
- let { isOver: R } = de({
2174
+ let { isOver: R } = ue({
2103
2175
  target: j,
2104
2176
  enabled: P,
2105
2177
  onFiles: F
2106
2178
  });
2107
2179
  return (n, r) => (e(), v(y, null, [
2108
- _("div", pa, [_("label", { class: p(T(G)) }, D(T(a).image.imageUrl), 3), _("div", {
2180
+ _("div", Ca, [_("label", { class: p(T(q)) }, D(T(a).image.imageUrl), 3), _("div", {
2109
2181
  ref_key: "dropZoneRef",
2110
2182
  ref: j,
2111
2183
  class: "tpl:relative"
2112
2184
  }, [
2113
- P.value && (T(R) || M.value) ? (e(), v("div", ma, [M.value ? (e(), v(y, { key: 0 }, [k(T(Xe), {
2185
+ P.value && (T(R) || M.value) ? (e(), v("div", wa, [M.value ? (e(), v(y, { key: 0 }, [k(T(it), {
2114
2186
  class: "tpl-spinner",
2115
2187
  size: 18,
2116
2188
  "stroke-width": 2
2117
- }), d(" " + D(T(a).image.uploading), 1)], 64)) : (e(), v(y, { key: 1 }, [k(T(lt), {
2189
+ }), d(" " + D(T(a).image.uploading), 1)], 64)) : (e(), v(y, { key: 1 }, [k(T(ut), {
2118
2190
  size: 18,
2119
2191
  "stroke-width": 1.5
2120
2192
  }), d(" " + D(T(a).image.dropToUpload), 1)], 64))])) : b("", !0),
2121
- k(Q, {
2193
+ k($, {
2122
2194
  "model-value": t.block.src,
2123
2195
  type: "url",
2124
2196
  placeholder: T(a).image.imageUrlPlaceholder,
@@ -2138,21 +2210,21 @@ var Ji = {
2138
2210
  "background-color": "var(--tpl-bg)"
2139
2211
  },
2140
2212
  onClick: O
2141
- }, [k(T(B), {
2213
+ }, [k(T(pe), {
2142
2214
  size: 14,
2143
2215
  "stroke-width": 1.5
2144
2216
  }), d(" " + D(T(a).image.browseMedia), 1)])) : b("", !0)
2145
2217
  ], 512)]),
2146
- T(I)(t.block.src, T(s)) ? (e(), v("div", ha, [_("label", { class: p(T(G)) }, [d(D(T(a).image.placeholderUrl) + " ", 1), r[9] ||= _("span", { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, D("(optional)"), -1)], 2), _("input", {
2218
+ T(I)(t.block.src, T(s)) ? (e(), v("div", Ta, [_("label", { class: p(T(q)) }, [d(D(T(a).image.placeholderUrl) + " ", 1), r[9] ||= _("span", { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, D("(optional)"), -1)], 2), _("input", {
2147
2219
  type: "url",
2148
- class: p(T(W)),
2220
+ class: p(T(K)),
2149
2221
  value: t.block.placeholderUrl || "",
2150
2222
  placeholder: T(a).image.placeholderUrlPlaceholder,
2151
2223
  onInput: r[1] ||= (e) => C("placeholderUrl", e.target.value)
2152
- }, null, 42, ga)])) : b("", !0),
2153
- _("div", _a, [
2154
- _("label", { class: p(T(G)) }, D(T(a).image.altText), 3),
2155
- k(Q, {
2224
+ }, null, 42, Ea)])) : b("", !0),
2225
+ _("div", Da, [
2226
+ _("label", { class: p(T(q)) }, D(T(a).image.altText), 3),
2227
+ k($, {
2156
2228
  "model-value": t.block.alt,
2157
2229
  type: "text",
2158
2230
  placeholder: T(a).image.altTextPlaceholder,
@@ -2165,35 +2237,35 @@ var Ji = {
2165
2237
  "pulse",
2166
2238
  "disabled"
2167
2239
  ]),
2168
- _("label", va, [_("input", {
2240
+ _("label", Oa, [_("input", {
2169
2241
  type: "checkbox",
2170
2242
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
2171
2243
  checked: t.block.decorative === !0,
2172
2244
  onChange: r[3] ||= (e) => C("decorative", e.target.checked)
2173
- }, null, 40, ya), _("span", null, [d(D(T(a).image.decorative) + " ", 1), _("span", ba, D(T(a).image.decorativeHint), 1)])])
2245
+ }, null, 40, ka), _("span", null, [d(D(T(a).image.decorative) + " ", 1), _("span", Aa, D(T(a).image.decorativeHint), 1)])])
2174
2246
  ]),
2175
- _("div", xa, [
2176
- _("label", { class: p(T(G)) }, D(T(a).image.width), 3),
2247
+ _("div", ja, [
2248
+ _("label", { class: p(T(q)) }, D(T(a).image.width), 3),
2177
2249
  _("select", {
2178
- class: p(T(W)),
2250
+ class: p(T(K)),
2179
2251
  value: S.value,
2180
2252
  onChange: r[4] ||= (e) => w(e.target.value)
2181
2253
  }, [
2182
- _("option", Ca, D(T(a).image.fullWidth), 1),
2254
+ _("option", Na, D(T(a).image.fullWidth), 1),
2183
2255
  r[10] ||= _("option", { value: "300" }, "300px", -1),
2184
2256
  r[11] ||= _("option", { value: "400" }, "400px", -1),
2185
2257
  r[12] ||= _("option", { value: "500" }, "500px", -1),
2186
- _("option", wa, D(T(a).image.widthCustom), 1)
2187
- ], 42, Sa),
2188
- S.value === "custom" ? (e(), v("div", Ta, [_("input", {
2258
+ _("option", Pa, D(T(a).image.widthCustom), 1)
2259
+ ], 42, Ma),
2260
+ S.value === "custom" ? (e(), v("div", Fa, [_("input", {
2189
2261
  type: "number",
2190
- class: p(T(q)),
2191
- value: typeof t.block.width == "number" ? t.block.width : ja,
2262
+ class: p(T(Y)),
2263
+ value: typeof t.block.width == "number" ? t.block.width : Va,
2192
2264
  min: "20",
2193
2265
  onInput: r[5] ||= (e) => E(e.target.value)
2194
- }, null, 42, Ea), _("span", { class: p(T(K)) }, "px", 2)])) : b("", !0)
2266
+ }, null, 42, Ia), _("span", { class: p(T(J)) }, "px", 2)])) : b("", !0)
2195
2267
  ]),
2196
- _("div", Da, [_("label", { class: p(T(G)) }, D(T(a).title.align), 3), k(X, {
2268
+ _("div", La, [_("label", { class: p(T(q)) }, D(T(a).title.align), 3), k(wt, {
2197
2269
  options: [
2198
2270
  {
2199
2271
  value: "left",
@@ -2211,28 +2283,28 @@ var Ji = {
2211
2283
  "model-value": t.block.align,
2212
2284
  "onUpdate:modelValue": r[6] ||= (e) => C("align", e)
2213
2285
  }, null, 8, ["options", "model-value"])]),
2214
- _("div", Oa, [
2215
- _("label", { class: p(T(G)) }, D(T(a).image.linkUrl), 3),
2216
- k(Q, {
2286
+ _("div", Ra, [
2287
+ _("label", { class: p(T(q)) }, D(T(a).image.linkUrl), 3),
2288
+ k($, {
2217
2289
  "model-value": t.block.linkUrl || "",
2218
2290
  type: "url",
2219
2291
  placeholder: T(a).image.imageUrlPlaceholder,
2220
2292
  "onUpdate:modelValue": r[7] ||= (e) => C("linkUrl", e)
2221
2293
  }, null, 8, ["model-value", "placeholder"]),
2222
- t.block.linkUrl ? (e(), v("label", ka, [_("input", {
2294
+ t.block.linkUrl ? (e(), v("label", za, [_("input", {
2223
2295
  type: "checkbox",
2224
2296
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
2225
2297
  checked: t.block.linkOpenInNewTab ?? !1,
2226
2298
  onChange: r[8] ||= (e) => C("linkOpenInNewTab", e.target.checked)
2227
- }, null, 40, Aa), d(" " + D(T(a).image.openInNewTab), 1)])) : b("", !0)
2299
+ }, null, 40, Ba), d(" " + D(T(a).image.openInNewTab), 1)])) : b("", !0)
2228
2300
  ])
2229
2301
  ], 64));
2230
2302
  }
2231
- }), Na = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Pa = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Fa = [
2303
+ }), Ua = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, Wa = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ga = [
2232
2304
  "value",
2233
2305
  "placeholder",
2234
2306
  "onInput"
2235
- ], Ia = ["title", "onClick"], La = { class: "tpl:flex tpl:items-center tpl:gap-3 tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Ra = ["checked", "onChange"], za = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ba = ["value"], Va = { value: "" }, Ha = ["value"], Ua = ["value"], Wa = /* @__PURE__ */ m({
2307
+ ], Ka = ["title", "onClick"], qa = { class: "tpl:flex tpl:items-center tpl:gap-3 tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Ja = ["checked", "onChange"], Ya = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Xa = ["value"], Za = { value: "" }, Qa = ["value"], $a = ["value"], eo = /* @__PURE__ */ m({
2236
2308
  __name: "MenuToolbar",
2237
2309
  props: {
2238
2310
  block: {},
@@ -2240,7 +2312,7 @@ var Ji = {
2240
2312
  },
2241
2313
  emits: ["update"],
2242
2314
  setup(t, { emit: n }) {
2243
- let r = t, i = n, { t: a } = H(), s = g(() => [
2315
+ let r = t, i = n, { t: a } = W(), s = g(() => [
2244
2316
  {
2245
2317
  key: "openInNewTab",
2246
2318
  label: a.menu.openInNewTab
@@ -2257,17 +2329,17 @@ var Ji = {
2257
2329
  {
2258
2330
  value: "left",
2259
2331
  label: a.title.alignLeft,
2260
- icon: et
2332
+ icon: ct
2261
2333
  },
2262
2334
  {
2263
2335
  value: "center",
2264
2336
  label: a.title.alignCenter,
2265
- icon: $e
2337
+ icon: st
2266
2338
  },
2267
2339
  {
2268
2340
  value: "right",
2269
2341
  label: a.title.alignRight,
2270
- icon: Qe
2342
+ icon: ot
2271
2343
  }
2272
2344
  ]);
2273
2345
  function l(e, t) {
@@ -2285,35 +2357,36 @@ var Ji = {
2285
2357
  i("update", { items: [...r.block.items, e] });
2286
2358
  }
2287
2359
  function f(e, t, n) {
2288
- i("update", { items: r.block.items.map((r) => r.id === e ? {
2360
+ let a = r.block.items.map((r) => r.id === e ? {
2289
2361
  ...r,
2290
2362
  [t]: n
2291
- } : r) });
2363
+ } : r);
2364
+ i("update", { items: a });
2292
2365
  }
2293
2366
  function m(e) {
2294
2367
  i("update", { items: r.block.items.filter((t) => t.id !== e) });
2295
2368
  }
2296
2369
  return (n, r) => (e(), v(y, null, [
2297
- k(Y, { label: T(a).menu.items }, {
2298
- default: M(() => [_("div", Na, [(e(!0), v(y, null, o(t.block.items, (n) => (e(), v("div", {
2370
+ k(Z, { label: T(a).menu.items }, {
2371
+ default: M(() => [_("div", Ua, [(e(!0), v(y, null, o(t.block.items, (n) => (e(), v("div", {
2299
2372
  key: n.id,
2300
2373
  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"
2301
2374
  }, [
2302
- _("div", Pa, [_("input", {
2375
+ _("div", Wa, [_("input", {
2303
2376
  type: "text",
2304
- class: p([T(W), "tpl:flex-1"]),
2377
+ class: p([T(K), "tpl:flex-1"]),
2305
2378
  value: n.text,
2306
2379
  placeholder: T(a).menu.text,
2307
2380
  onInput: (e) => f(n.id, "text", e.target.value)
2308
- }, null, 42, Fa), _("button", {
2309
- class: p(T(_t)),
2381
+ }, null, 42, Ga), _("button", {
2382
+ class: p(T(vt)),
2310
2383
  title: T(a).menu.removeItem,
2311
2384
  onClick: (e) => m(n.id)
2312
- }, [k(T(ut), {
2385
+ }, [k(T(dt), {
2313
2386
  size: 14,
2314
2387
  "stroke-width": 2
2315
- })], 10, Ia)]),
2316
- k(Q, {
2388
+ })], 10, Ka)]),
2389
+ k($, {
2317
2390
  "model-value": n.url,
2318
2391
  type: "url",
2319
2392
  placeholder: T(a).menu.urlPlaceholder,
@@ -2323,7 +2396,7 @@ var Ji = {
2323
2396
  "placeholder",
2324
2397
  "onUpdate:modelValue"
2325
2398
  ]),
2326
- _("div", La, [(e(!0), v(y, null, o(s.value, (t) => (e(), v("label", {
2399
+ _("div", qa, [(e(!0), v(y, null, o(s.value, (t) => (e(), v("label", {
2327
2400
  key: t.key,
2328
2401
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-1"
2329
2402
  }, [_("input", {
@@ -2331,34 +2404,34 @@ var Ji = {
2331
2404
  checked: n[t.key],
2332
2405
  class: "tpl:accent-[var(--tpl-primary)]",
2333
2406
  onChange: (e) => f(n.id, t.key, e.target.checked)
2334
- }, null, 40, Ra), d(" " + D(t.label), 1)]))), 128))]),
2335
- _("div", za, [_("label", { class: p([T(G), "tpl:!mb-0"]) }, D(T(a).menu.color), 3), k(J, {
2407
+ }, null, 40, Ja), d(" " + D(t.label), 1)]))), 128))]),
2408
+ _("div", Ya, [_("label", { class: p([T(q), "tpl:!mb-0"]) }, D(T(a).menu.color), 3), k(X, {
2336
2409
  "swatch-only": "",
2337
2410
  "model-value": n.color || t.block.linkColor || t.block.color,
2338
2411
  "onUpdate:modelValue": (e) => f(n.id, "color", e)
2339
2412
  }, null, 8, ["model-value", "onUpdate:modelValue"])])
2340
2413
  ]))), 128)), _("button", {
2341
- class: p(T(vt)),
2414
+ class: p(T(yt)),
2342
2415
  onClick: u
2343
- }, [k(T(Z), {
2416
+ }, [k(T(Q), {
2344
2417
  size: 14,
2345
2418
  "stroke-width": 2
2346
2419
  }), d(" " + D(T(a).menu.addItem), 1)], 2)])]),
2347
2420
  _: 1
2348
2421
  }, 8, ["label"]),
2349
- k(Y, { label: T(a).menu.fontFamily }, {
2422
+ k(Z, { label: T(a).menu.fontFamily }, {
2350
2423
  default: M(() => [_("select", {
2351
- class: p(T(W)),
2424
+ class: p(T(K)),
2352
2425
  value: t.block.fontFamily || "",
2353
2426
  onChange: r[0] ||= (e) => l("fontFamily", e.target.value || void 0)
2354
- }, [_("option", Va, D(T(a).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2427
+ }, [_("option", Za, D(T(a).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2355
2428
  key: t.value,
2356
2429
  value: t.value
2357
- }, D(t.label), 9, Ha))), 128))], 42, Ba)]),
2430
+ }, D(t.label), 9, Qa))), 128))], 42, Xa)]),
2358
2431
  _: 1
2359
2432
  }, 8, ["label"]),
2360
- k(Y, { label: T(a).menu.fontSize }, {
2361
- default: M(() => [k(Ct, {
2433
+ k(Z, { label: T(a).menu.fontSize }, {
2434
+ default: M(() => [k(Tt, {
2362
2435
  "model-value": t.block.fontSize,
2363
2436
  min: 8,
2364
2437
  max: 48,
@@ -2367,46 +2440,46 @@ var Ji = {
2367
2440
  }, null, 8, ["model-value"])]),
2368
2441
  _: 1
2369
2442
  }, 8, ["label"]),
2370
- k(Y, { label: T(a).menu.color }, {
2371
- default: M(() => [k(J, {
2443
+ k(Z, { label: T(a).menu.color }, {
2444
+ default: M(() => [k(X, {
2372
2445
  "model-value": t.block.color,
2373
2446
  "onUpdate:modelValue": r[2] ||= (e) => l("color", e)
2374
2447
  }, null, 8, ["model-value"])]),
2375
2448
  _: 1
2376
2449
  }, 8, ["label"]),
2377
- k(Y, { label: T(a).menu.linkColor }, {
2378
- default: M(() => [k(J, {
2450
+ k(Z, { label: T(a).menu.linkColor }, {
2451
+ default: M(() => [k(X, {
2379
2452
  "model-value": t.block.linkColor || t.block.color,
2380
2453
  "onUpdate:modelValue": r[3] ||= (e) => l("linkColor", e || void 0)
2381
2454
  }, null, 8, ["model-value"])]),
2382
2455
  _: 1
2383
2456
  }, 8, ["label"]),
2384
- k(Y, { label: T(a).menu.textAlign }, {
2385
- default: M(() => [k(X, {
2457
+ k(Z, { label: T(a).menu.textAlign }, {
2458
+ default: M(() => [k(wt, {
2386
2459
  options: c.value,
2387
2460
  "model-value": t.block.textAlign,
2388
2461
  "onUpdate:modelValue": r[4] ||= (e) => l("textAlign", e)
2389
2462
  }, null, 8, ["options", "model-value"])]),
2390
2463
  _: 1
2391
2464
  }, 8, ["label"]),
2392
- k(Y, { label: T(a).menu.separator }, {
2465
+ k(Z, { label: T(a).menu.separator }, {
2393
2466
  default: M(() => [_("input", {
2394
2467
  type: "text",
2395
- class: p(T(W)),
2468
+ class: p(T(K)),
2396
2469
  value: t.block.separator,
2397
2470
  onInput: r[5] ||= (e) => l("separator", e.target.value)
2398
- }, null, 42, Ua)]),
2471
+ }, null, 42, $a)]),
2399
2472
  _: 1
2400
2473
  }, 8, ["label"]),
2401
- k(Y, { label: T(a).menu.separatorColor }, {
2402
- default: M(() => [k(J, {
2474
+ k(Z, { label: T(a).menu.separatorColor }, {
2475
+ default: M(() => [k(X, {
2403
2476
  "model-value": t.block.separatorColor,
2404
2477
  "onUpdate:modelValue": r[6] ||= (e) => l("separatorColor", e)
2405
2478
  }, null, 8, ["model-value"])]),
2406
2479
  _: 1
2407
2480
  }, 8, ["label"]),
2408
- k(Y, { label: T(a).menu.spacing }, {
2409
- default: M(() => [k(Ct, {
2481
+ k(Z, { label: T(a).menu.spacing }, {
2482
+ default: M(() => [k(Tt, {
2410
2483
  "model-value": t.block.spacing,
2411
2484
  min: 0,
2412
2485
  max: 50,
@@ -2420,11 +2493,11 @@ var Ji = {
2420
2493
  });
2421
2494
  //#endregion
2422
2495
  //#region src/utils/rebalanceColumnChildren.ts
2423
- function Ga(e) {
2496
+ function to(e) {
2424
2497
  return e === "1" ? 1 : e === "3" ? 3 : 2;
2425
2498
  }
2426
- function Ka(e, t) {
2427
- let n = Ga(t);
2499
+ function no(e, t) {
2500
+ let n = to(t);
2428
2501
  if (e.length === n) return e;
2429
2502
  if (e.length < n) {
2430
2503
  let t = Array.from({ length: n - e.length }, () => []);
@@ -2435,12 +2508,15 @@ function Ka(e, t) {
2435
2508
  }
2436
2509
  //#endregion
2437
2510
  //#region src/components/toolbar/SectionToolbar.vue?vue&type=script&setup=true&lang.ts
2438
- var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PURE__ */ m({
2511
+ var ro = { class: "tpl:mb-3.5" }, io = ["value"], ao = ["value"], oo = { class: "tpl:mb-3.5" }, so = { class: "tpl:flex tpl:items-stretch" }, co = ["value"], lo = { class: "tpl:mb-3.5" }, uo = { class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-xs tpl:text-[var(--tpl-text)]" }, fo = ["checked"], po = {
2512
+ key: 0,
2513
+ class: "tpl:mt-3 tpl:ml-0.5 tpl:space-y-3 tpl:border-l tpl:border-[var(--tpl-border)] tpl:pl-3"
2514
+ }, mo = { class: "tpl:flex tpl:items-stretch" }, ho = ["value"], go = /* @__PURE__ */ m({
2439
2515
  __name: "SectionToolbar",
2440
2516
  props: { block: {} },
2441
2517
  emits: ["update"],
2442
2518
  setup(t, { emit: n }) {
2443
- let r = t, i = n, { t: a } = H(), s = g(() => [
2519
+ let r = t, i = n, { t: a } = W(), s = g(() => [
2444
2520
  {
2445
2521
  value: "1",
2446
2522
  label: a.section.column1
@@ -2463,27 +2539,90 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2463
2539
  }
2464
2540
  ]);
2465
2541
  function c(e) {
2466
- let t = e.target.value;
2542
+ let t = e.target.value, n = no(r.block.children, t);
2467
2543
  i("update", {
2468
2544
  columns: t,
2469
- children: Ka(r.block.children, t)
2545
+ children: n
2470
2546
  });
2471
2547
  }
2472
- return (n, r) => (e(), v("div", qa, [_("label", { class: p(T(G)) }, D(T(a).section.columns), 3), _("select", {
2473
- class: p(T(W)),
2474
- value: t.block.columns,
2475
- onChange: c
2476
- }, [(e(!0), v(y, null, o(s.value, (t) => (e(), v("option", {
2477
- key: t.value,
2478
- value: t.value
2479
- }, D(t.label), 9, Ya))), 128))], 42, Ja)]));
2548
+ function l(e) {
2549
+ let t = Number(e.target.value);
2550
+ i("update", { borderRadius: t });
2551
+ }
2552
+ function u(e) {
2553
+ i("update", { wrapper: e ? { padding: {
2554
+ top: 20,
2555
+ right: 20,
2556
+ bottom: 20,
2557
+ left: 20
2558
+ } } : void 0 });
2559
+ }
2560
+ function f(e) {
2561
+ i("update", { wrapper: {
2562
+ ...r.block.wrapper,
2563
+ ...e
2564
+ } });
2565
+ }
2566
+ function m(e) {
2567
+ f({ padding: e });
2568
+ }
2569
+ function h(e) {
2570
+ f({ borderRadius: Number(e.target.value) });
2571
+ }
2572
+ return (n, r) => (e(), v(y, null, [
2573
+ _("div", ro, [_("label", { class: p(T(q)) }, D(T(a).section.columns), 3), _("select", {
2574
+ class: p(T(K)),
2575
+ value: t.block.columns,
2576
+ onChange: c
2577
+ }, [(e(!0), v(y, null, o(s.value, (t) => (e(), v("option", {
2578
+ key: t.value,
2579
+ value: t.value
2580
+ }, D(t.label), 9, ao))), 128))], 42, io)]),
2581
+ _("div", oo, [_("label", { class: p(T(q)) }, D(T(a).section.borderRadius), 3), _("div", so, [_("input", {
2582
+ type: "number",
2583
+ class: p(T(Y)),
2584
+ value: t.block.borderRadius ?? 0,
2585
+ min: "0",
2586
+ max: "50",
2587
+ onInput: l
2588
+ }, null, 42, co), _("span", { class: p(T(J)) }, "px", 2)])]),
2589
+ _("div", lo, [_("label", uo, [_("input", {
2590
+ type: "checkbox",
2591
+ class: "tpl:accent-[var(--tpl-primary)]",
2592
+ checked: !!t.block.wrapper,
2593
+ onChange: r[0] ||= (e) => u(e.target.checked)
2594
+ }, null, 40, fo), d(" " + D(T(a).section.wrapperEnable), 1)]), t.block.wrapper ? (e(), v("div", po, [
2595
+ _("div", null, [_("label", { class: p(T(q)) }, D(T(a).blockSettings.color), 3), k(X, {
2596
+ "model-value": t.block.wrapper.backgroundColor ?? "",
2597
+ "onUpdate:modelValue": r[1] ||= (e) => f({ backgroundColor: e })
2598
+ }, null, 8, ["model-value"])]),
2599
+ k(oi, {
2600
+ label: T(a).blockSettings.padding,
2601
+ "model-value": t.block.wrapper.padding ?? {
2602
+ top: 0,
2603
+ right: 0,
2604
+ bottom: 0,
2605
+ left: 0
2606
+ },
2607
+ "onUpdate:modelValue": m
2608
+ }, null, 8, ["label", "model-value"]),
2609
+ _("div", null, [_("label", { class: p(T(q)) }, D(T(a).section.borderRadius), 3), _("div", mo, [_("input", {
2610
+ type: "number",
2611
+ class: p(T(Y)),
2612
+ value: t.block.wrapper.borderRadius ?? 0,
2613
+ min: "0",
2614
+ max: "50",
2615
+ onInput: h
2616
+ }, null, 42, ho), _("span", { class: p(T(J)) }, "px", 2)])])
2617
+ ])) : b("", !0)])
2618
+ ], 64));
2480
2619
  }
2481
- }), Za = { class: "tpl:mb-3.5" }, Qa = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, $a = { class: "tpl:flex tpl:items-center tpl:gap-2" }, eo = ["value", "onChange"], to = ["value"], no = ["title", "onClick"], ro = { class: "tpl:mb-3.5" }, io = ["value"], ao = { value: "solid" }, oo = { value: "outlined" }, so = { value: "rounded" }, co = { value: "square" }, lo = { value: "circle" }, uo = { class: "tpl:mb-3.5" }, fo = { class: "tpl:mb-3.5" }, po = { class: "tpl:flex tpl:items-stretch" }, mo = ["value"], ho = { class: "tpl:mb-3.5" }, go = /* @__PURE__ */ m({
2620
+ }), _o = { class: "tpl:mb-3.5" }, vo = { class: "tpl:flex tpl:flex-col tpl:gap-2" }, yo = { class: "tpl:flex tpl:items-center tpl:gap-2" }, bo = ["value", "onChange"], xo = ["value"], So = ["title", "onClick"], Co = { class: "tpl:mb-3.5" }, wo = ["value"], To = { value: "solid" }, Eo = { value: "outlined" }, Do = { value: "rounded" }, Oo = { value: "square" }, ko = { value: "circle" }, Ao = { class: "tpl:mb-3.5" }, jo = { class: "tpl:mb-3.5" }, Mo = { class: "tpl:flex tpl:items-stretch" }, No = ["value"], Po = { class: "tpl:mb-3.5" }, Fo = /* @__PURE__ */ m({
2482
2621
  __name: "SocialToolbar",
2483
2622
  props: { block: {} },
2484
2623
  emits: ["update"],
2485
2624
  setup(t, { emit: n }) {
2486
- let r = t, i = n, { t: a } = H();
2625
+ let r = t, i = n, { t: a } = W();
2487
2626
  function s(e, t) {
2488
2627
  i("update", { [e]: t });
2489
2628
  }
@@ -2496,34 +2635,35 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2496
2635
  i("update", { icons: [...r.block.icons, e] });
2497
2636
  }
2498
2637
  function l(e, t, n) {
2499
- i("update", { icons: r.block.icons.map((r) => r.id === e ? {
2638
+ let a = r.block.icons.map((r) => r.id === e ? {
2500
2639
  ...r,
2501
2640
  [t]: n
2502
- } : r) });
2641
+ } : r);
2642
+ i("update", { icons: a });
2503
2643
  }
2504
2644
  function u(e) {
2505
2645
  i("update", { icons: r.block.icons.filter((t) => t.id !== e) });
2506
2646
  }
2507
2647
  return (n, r) => (e(), v(y, null, [
2508
- _("div", Za, [_("label", { class: p(T(G)) }, D(T(a).social.icons), 3), _("div", Qa, [(e(!0), v(y, null, o(t.block.icons, (t) => (e(), v("div", {
2648
+ _("div", _o, [_("label", { class: p(T(q)) }, D(T(a).social.icons), 3), _("div", vo, [(e(!0), v(y, null, o(t.block.icons, (t) => (e(), v("div", {
2509
2649
  key: t.id,
2510
2650
  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"
2511
- }, [_("div", $a, [_("select", {
2651
+ }, [_("div", yo, [_("select", {
2512
2652
  "data-testid": "social-platform-select",
2513
- class: p([T(W), "tpl:flex-1"]),
2653
+ class: p([T(K), "tpl:flex-1"]),
2514
2654
  value: t.platform,
2515
2655
  onChange: (e) => l(t.id, "platform", e.target.value)
2516
- }, [(e(!0), v(y, null, o(T(ve), (t) => (e(), v("option", {
2656
+ }, [(e(!0), v(y, null, o(T(_e), (t) => (e(), v("option", {
2517
2657
  key: t,
2518
2658
  value: t
2519
- }, D(T(a).social.platforms[t]), 9, to))), 128))], 42, eo), _("button", {
2520
- class: p(T(_t)),
2659
+ }, D(T(a).social.platforms[t]), 9, xo))), 128))], 42, bo), _("button", {
2660
+ class: p(T(vt)),
2521
2661
  title: T(a).social.removeIcon,
2522
2662
  onClick: (e) => u(t.id)
2523
- }, [k(T(ut), {
2663
+ }, [k(T(dt), {
2524
2664
  size: 14,
2525
2665
  "stroke-width": 2
2526
- })], 10, no)]), k(Q, {
2666
+ })], 10, So)]), k($, {
2527
2667
  "model-value": t.url,
2528
2668
  type: "url",
2529
2669
  placeholder: T(a).social.urlPlaceholder,
@@ -2533,24 +2673,24 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2533
2673
  "placeholder",
2534
2674
  "onUpdate:modelValue"
2535
2675
  ])]))), 128)), _("button", {
2536
- class: p(T(vt)),
2676
+ class: p(T(yt)),
2537
2677
  onClick: c
2538
- }, [k(T(Z), {
2678
+ }, [k(T(Q), {
2539
2679
  size: 14,
2540
2680
  "stroke-width": 2
2541
2681
  }), d(" " + D(T(a).social.addIcon), 1)], 2)])]),
2542
- _("div", ro, [_("label", { class: p(T(G)) }, D(T(a).social.style), 3), _("select", {
2543
- class: p(T(W)),
2682
+ _("div", Co, [_("label", { class: p(T(q)) }, D(T(a).social.style), 3), _("select", {
2683
+ class: p(T(K)),
2544
2684
  value: t.block.iconStyle,
2545
2685
  onChange: r[0] ||= (e) => s("iconStyle", e.target.value)
2546
2686
  }, [
2547
- _("option", ao, D(T(a).social.styleSolid), 1),
2548
- _("option", oo, D(T(a).social.styleOutlined), 1),
2549
- _("option", so, D(T(a).social.styleRounded), 1),
2550
- _("option", co, D(T(a).social.styleSquare), 1),
2551
- _("option", lo, D(T(a).social.styleCircle), 1)
2552
- ], 42, io)]),
2553
- _("div", uo, [_("label", { class: p(T(G)) }, D(T(a).social.size), 3), k(X, {
2687
+ _("option", To, D(T(a).social.styleSolid), 1),
2688
+ _("option", Eo, D(T(a).social.styleOutlined), 1),
2689
+ _("option", Do, D(T(a).social.styleRounded), 1),
2690
+ _("option", Oo, D(T(a).social.styleSquare), 1),
2691
+ _("option", ko, D(T(a).social.styleCircle), 1)
2692
+ ], 42, wo)]),
2693
+ _("div", Ao, [_("label", { class: p(T(q)) }, D(T(a).social.size), 3), k(wt, {
2554
2694
  options: [
2555
2695
  {
2556
2696
  value: "small",
@@ -2568,30 +2708,30 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2568
2708
  "model-value": t.block.iconSize,
2569
2709
  "onUpdate:modelValue": r[1] ||= (e) => s("iconSize", e)
2570
2710
  }, null, 8, ["options", "model-value"])]),
2571
- _("div", fo, [_("label", { class: p(T(G)) }, D(T(a).social.spacing), 3), _("div", po, [_("input", {
2711
+ _("div", jo, [_("label", { class: p(T(q)) }, D(T(a).social.spacing), 3), _("div", Mo, [_("input", {
2572
2712
  type: "number",
2573
- class: p(T(q)),
2713
+ class: p(T(Y)),
2574
2714
  value: t.block.spacing,
2575
2715
  min: "0",
2576
2716
  max: "50",
2577
2717
  onInput: r[2] ||= (e) => s("spacing", Number(e.target.value))
2578
- }, null, 42, mo), _("span", { class: p(T(K)) }, "px", 2)])]),
2579
- _("div", ho, [_("label", { class: p(T(G)) }, D(T(a).social.align), 3), k(X, {
2718
+ }, null, 42, No), _("span", { class: p(T(J)) }, "px", 2)])]),
2719
+ _("div", Po, [_("label", { class: p(T(q)) }, D(T(a).social.align), 3), k(wt, {
2580
2720
  options: [
2581
2721
  {
2582
2722
  value: "left",
2583
2723
  label: T(a).title.alignLeft,
2584
- icon: T(et)
2724
+ icon: T(ct)
2585
2725
  },
2586
2726
  {
2587
2727
  value: "center",
2588
2728
  label: T(a).title.alignCenter,
2589
- icon: T($e)
2729
+ icon: T(st)
2590
2730
  },
2591
2731
  {
2592
2732
  value: "right",
2593
2733
  label: T(a).title.alignRight,
2594
- icon: T(Qe)
2734
+ icon: T(ot)
2595
2735
  }
2596
2736
  ],
2597
2737
  "model-value": t.block.align,
@@ -2599,22 +2739,22 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2599
2739
  }, null, 8, ["options", "model-value"])])
2600
2740
  ], 64));
2601
2741
  }
2602
- }), _o = { class: "tpl:mb-3.5" }, vo = { class: "tpl:flex tpl:items-stretch" }, yo = ["value"], bo = ["value"], xo = /* @__PURE__ */ m({
2742
+ }), Io = { class: "tpl:mb-3.5" }, Lo = { class: "tpl:flex tpl:items-stretch" }, Ro = ["value"], zo = ["value"], Bo = /* @__PURE__ */ m({
2603
2743
  __name: "SpacerToolbar",
2604
2744
  props: { block: {} },
2605
2745
  emits: ["update"],
2606
2746
  setup(t, { emit: n }) {
2607
- let r = n, { t: i } = H();
2608
- return (n, a) => (e(), v("div", _o, [
2609
- _("label", { class: p(T(G)) }, D(T(i).spacer.height), 3),
2610
- _("div", vo, [_("input", {
2747
+ let r = n, { t: i } = W();
2748
+ return (n, a) => (e(), v("div", Io, [
2749
+ _("label", { class: p(T(q)) }, D(T(i).spacer.height), 3),
2750
+ _("div", Lo, [_("input", {
2611
2751
  type: "number",
2612
- class: p(T(q)),
2752
+ class: p(T(Y)),
2613
2753
  value: t.block.height,
2614
2754
  min: "10",
2615
2755
  max: "100",
2616
2756
  onInput: a[0] ||= (e) => r("update", { height: Number(e.target.value) })
2617
- }, null, 42, yo), _("span", { class: p(T(K)) }, "px", 2)]),
2757
+ }, null, 42, Ro), _("span", { class: p(T(J)) }, "px", 2)]),
2618
2758
  _("input", {
2619
2759
  type: "range",
2620
2760
  class: "tpl:mt-2 tpl:w-full tpl:accent-[var(--tpl-primary)]",
@@ -2622,13 +2762,13 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2622
2762
  min: "10",
2623
2763
  max: "100",
2624
2764
  onInput: a[1] ||= (e) => r("update", { height: Number(e.target.value) })
2625
- }, null, 40, bo)
2765
+ }, null, 40, zo)
2626
2766
  ]));
2627
2767
  }
2628
- }), So = { class: "tpl:mb-3.5" }, Co = { class: "tpl:flex tpl:items-center tpl:gap-3" }, wo = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, To = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Eo = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Do = ["disabled"], Oo = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ko = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, Ao = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, jo = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Mo = ["disabled"], No = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Po = { 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)]" }, Io = ["checked"], Lo = {
2768
+ }), Vo = { class: "tpl:mb-3.5" }, Ho = { class: "tpl:flex tpl:items-center tpl:gap-3" }, Uo = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, Wo = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Go = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Ko = ["disabled"], qo = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Jo = { class: "tpl:flex tpl:flex-1 tpl:items-center tpl:gap-1.5" }, Yo = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Xo = { class: "tpl:flex tpl:items-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Zo = ["disabled"], Qo = { class: "tpl:min-w-[20px] tpl:text-center tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, $o = { class: "tpl:mb-3.5" }, es = { 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)]" }, ts = ["checked"], ns = {
2629
2769
  key: 0,
2630
2770
  class: "tpl:mb-3.5"
2631
- }, Ro = { class: "tpl:mb-3.5" }, zo = { class: "tpl:mb-3.5" }, Bo = { class: "tpl:flex tpl:items-stretch" }, Vo = ["value"], Ho = { class: "tpl:mb-3.5" }, Uo = { class: "tpl:flex tpl:items-stretch" }, Wo = ["value"], Go = { class: "tpl:mb-3.5" }, Ko = ["value"], qo = { value: "" }, Jo = ["value"], Yo = { class: "tpl:mb-3.5" }, Xo = { class: "tpl:flex tpl:items-stretch" }, Zo = ["value"], Qo = { class: "tpl:mb-3.5" }, $o = { class: "tpl:mb-3.5" }, es = /* @__PURE__ */ m({
2771
+ }, rs = { class: "tpl:mb-3.5" }, is = { class: "tpl:mb-3.5" }, as = { class: "tpl:flex tpl:items-stretch" }, os = ["value"], ss = { class: "tpl:mb-3.5" }, cs = { class: "tpl:flex tpl:items-stretch" }, ls = ["value"], us = { class: "tpl:mb-3.5" }, ds = ["value"], fs = { value: "" }, ps = ["value"], ms = { class: "tpl:mb-3.5" }, hs = { class: "tpl:flex tpl:items-stretch" }, gs = ["value"], _s = { class: "tpl:mb-3.5" }, vs = { class: "tpl:mb-3.5" }, ys = /* @__PURE__ */ m({
2632
2772
  __name: "TableToolbar",
2633
2773
  props: {
2634
2774
  block: {},
@@ -2636,7 +2776,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2636
2776
  },
2637
2777
  emits: ["update"],
2638
2778
  setup(t, { emit: n }) {
2639
- let r = t, i = n, { t: a } = H(), s = g(() => r.block.rows.length > 0 ? r.block.rows[0].cells.length : 0);
2779
+ let r = t, i = n, { t: a } = W(), s = g(() => r.block.rows.length > 0 ? r.block.rows[0].cells.length : 0);
2640
2780
  function c(e, t) {
2641
2781
  i("update", { [e]: t });
2642
2782
  }
@@ -2654,65 +2794,67 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2654
2794
  i("update", { rows: r.block.rows.filter((t) => t.id !== e) });
2655
2795
  }
2656
2796
  function f() {
2657
- i("update", { rows: r.block.rows.map((e) => ({
2797
+ let e = r.block.rows.map((e) => ({
2658
2798
  ...e,
2659
2799
  cells: [...e.cells, {
2660
2800
  id: N(),
2661
2801
  content: ""
2662
2802
  }]
2663
- })) });
2803
+ }));
2804
+ i("update", { rows: e });
2664
2805
  }
2665
2806
  function m(e) {
2666
- i("update", { rows: r.block.rows.map((t) => ({
2807
+ let t = r.block.rows.map((t) => ({
2667
2808
  ...t,
2668
2809
  cells: t.cells.filter((t, n) => n !== e)
2669
- })) });
2810
+ }));
2811
+ i("update", { rows: t });
2670
2812
  }
2671
2813
  return (n, r) => (e(), v(y, null, [
2672
- _("div", So, [_("label", { class: p(T(G)) }, D(T(a).table.dimensions), 3), _("div", Co, [_("div", wo, [_("span", To, D(T(a).table.rows), 1), _("div", Eo, [
2814
+ _("div", Vo, [_("label", { class: p(T(q)) }, D(T(a).table.dimensions), 3), _("div", Ho, [_("div", Uo, [_("span", Wo, D(T(a).table.rows), 1), _("div", Go, [
2673
2815
  _("button", {
2674
2816
  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",
2675
2817
  disabled: t.block.rows.length <= 1,
2676
2818
  onClick: r[0] ||= (e) => u(t.block.rows[t.block.rows.length - 1].id)
2677
- }, [k(T(Ke), {
2819
+ }, [k(T(Ye), {
2678
2820
  size: 12,
2679
2821
  "stroke-width": 2
2680
- })], 8, Do),
2681
- _("span", Oo, D(t.block.rows.length), 1),
2822
+ })], 8, Ko),
2823
+ _("span", qo, D(t.block.rows.length), 1),
2682
2824
  _("button", {
2683
2825
  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)]",
2684
2826
  onClick: l
2685
- }, [k(T(Z), {
2827
+ }, [k(T(Q), {
2686
2828
  size: 12,
2687
2829
  "stroke-width": 2
2688
2830
  })])
2689
- ])]), _("div", ko, [_("span", Ao, D(T(a).table.columns), 1), _("div", jo, [
2831
+ ])]), _("div", Jo, [_("span", Yo, D(T(a).table.columns), 1), _("div", Xo, [
2690
2832
  _("button", {
2691
2833
  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",
2692
2834
  disabled: s.value <= 1,
2693
2835
  onClick: r[1] ||= (e) => m(s.value - 1)
2694
- }, [k(T(Ke), {
2836
+ }, [k(T(Ye), {
2695
2837
  size: 12,
2696
2838
  "stroke-width": 2
2697
- })], 8, Mo),
2698
- _("span", No, D(s.value), 1),
2839
+ })], 8, Zo),
2840
+ _("span", Qo, D(s.value), 1),
2699
2841
  _("button", {
2700
2842
  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)]",
2701
2843
  onClick: f
2702
- }, [k(T(Z), {
2844
+ }, [k(T(Q), {
2703
2845
  size: 12,
2704
2846
  "stroke-width": 2
2705
2847
  })])
2706
2848
  ])])])]),
2707
- _("div", Po, [_("label", Fo, [_("input", {
2849
+ _("div", $o, [_("label", es, [_("input", {
2708
2850
  type: "checkbox",
2709
2851
  checked: t.block.hasHeaderRow,
2710
2852
  class: "tpl:accent-[var(--tpl-primary)]",
2711
2853
  onChange: r[2] ||= (e) => c("hasHeaderRow", e.target.checked)
2712
- }, null, 40, Io), d(" " + D(T(a).table.hasHeaderRow), 1)])]),
2713
- t.block.hasHeaderRow ? (e(), v("div", Lo, [_("label", { class: p(T(G)) }, D(T(a).table.headerBackgroundColor), 3), k(J, {
2854
+ }, null, 40, ts), d(" " + D(T(a).table.hasHeaderRow), 1)])]),
2855
+ t.block.hasHeaderRow ? (e(), v("div", ns, [_("label", { class: p(T(q)) }, D(T(a).table.headerBackgroundColor), 3), k(X, {
2714
2856
  "model-value": t.block.headerBackgroundColor ?? "",
2715
- "seed-color": T(xt),
2857
+ "seed-color": T(St),
2716
2858
  placeholder: T(a).table.noHeaderBg,
2717
2859
  "onUpdate:modelValue": r[3] ||= (e) => c("headerBackgroundColor", e || null)
2718
2860
  }, null, 8, [
@@ -2720,62 +2862,62 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2720
2862
  "seed-color",
2721
2863
  "placeholder"
2722
2864
  ])])) : b("", !0),
2723
- _("div", Ro, [_("label", { class: p(T(G)) }, D(T(a).table.borderColor), 3), k(J, {
2865
+ _("div", rs, [_("label", { class: p(T(q)) }, D(T(a).table.borderColor), 3), k(X, {
2724
2866
  "model-value": t.block.borderColor,
2725
2867
  "onUpdate:modelValue": r[4] ||= (e) => c("borderColor", e)
2726
2868
  }, null, 8, ["model-value"])]),
2727
- _("div", zo, [_("label", { class: p(T(G)) }, D(T(a).table.borderWidth), 3), _("div", Bo, [_("input", {
2869
+ _("div", is, [_("label", { class: p(T(q)) }, D(T(a).table.borderWidth), 3), _("div", as, [_("input", {
2728
2870
  type: "number",
2729
- class: p(T(q)),
2871
+ class: p(T(Y)),
2730
2872
  value: t.block.borderWidth,
2731
2873
  min: "0",
2732
2874
  max: "10",
2733
2875
  onInput: r[5] ||= (e) => c("borderWidth", Number(e.target.value))
2734
- }, null, 42, Vo), _("span", { class: p(T(K)) }, "px", 2)])]),
2735
- _("div", Ho, [_("label", { class: p(T(G)) }, D(T(a).table.cellPadding), 3), _("div", Uo, [_("input", {
2876
+ }, null, 42, os), _("span", { class: p(T(J)) }, "px", 2)])]),
2877
+ _("div", ss, [_("label", { class: p(T(q)) }, D(T(a).table.cellPadding), 3), _("div", cs, [_("input", {
2736
2878
  type: "number",
2737
- class: p(T(q)),
2879
+ class: p(T(Y)),
2738
2880
  value: t.block.cellPadding,
2739
2881
  min: "0",
2740
2882
  max: "30",
2741
2883
  onInput: r[6] ||= (e) => c("cellPadding", Number(e.target.value))
2742
- }, null, 42, Wo), _("span", { class: p(T(K)) }, "px", 2)])]),
2743
- _("div", Go, [_("label", { class: p(T(G)) }, D(T(a).table.fontFamily), 3), _("select", {
2744
- class: p(T(W)),
2884
+ }, null, 42, ls), _("span", { class: p(T(J)) }, "px", 2)])]),
2885
+ _("div", us, [_("label", { class: p(T(q)) }, D(T(a).table.fontFamily), 3), _("select", {
2886
+ class: p(T(K)),
2745
2887
  value: t.block.fontFamily || "",
2746
2888
  onChange: r[7] ||= (e) => c("fontFamily", e.target.value || void 0)
2747
- }, [_("option", qo, D(T(a).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2889
+ }, [_("option", fs, D(T(a).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2748
2890
  key: t.value,
2749
2891
  value: t.value
2750
- }, D(t.label), 9, Jo))), 128))], 42, Ko)]),
2751
- _("div", Yo, [_("label", { class: p(T(G)) }, D(T(a).table.fontSize), 3), _("div", Xo, [_("input", {
2892
+ }, D(t.label), 9, ps))), 128))], 42, ds)]),
2893
+ _("div", ms, [_("label", { class: p(T(q)) }, D(T(a).table.fontSize), 3), _("div", hs, [_("input", {
2752
2894
  type: "number",
2753
- class: p(T(q)),
2895
+ class: p(T(Y)),
2754
2896
  value: t.block.fontSize,
2755
2897
  min: "10",
2756
2898
  max: "32",
2757
2899
  onInput: r[8] ||= (e) => c("fontSize", Number(e.target.value))
2758
- }, null, 42, Zo), _("span", { class: p(T(K)) }, "px", 2)])]),
2759
- _("div", Qo, [_("label", { class: p(T(G)) }, D(T(a).table.color), 3), k(J, {
2900
+ }, null, 42, gs), _("span", { class: p(T(J)) }, "px", 2)])]),
2901
+ _("div", _s, [_("label", { class: p(T(q)) }, D(T(a).table.color), 3), k(X, {
2760
2902
  "model-value": t.block.color,
2761
2903
  "onUpdate:modelValue": r[9] ||= (e) => c("color", e)
2762
2904
  }, null, 8, ["model-value"])]),
2763
- _("div", $o, [_("label", { class: p(T(G)) }, D(T(a).table.textAlign), 3), k(X, {
2905
+ _("div", vs, [_("label", { class: p(T(q)) }, D(T(a).table.textAlign), 3), k(wt, {
2764
2906
  options: [
2765
2907
  {
2766
2908
  value: "left",
2767
2909
  label: T(a).title.alignLeft,
2768
- icon: T(et)
2910
+ icon: T(ct)
2769
2911
  },
2770
2912
  {
2771
2913
  value: "center",
2772
2914
  label: T(a).title.alignCenter,
2773
- icon: T($e)
2915
+ icon: T(st)
2774
2916
  },
2775
2917
  {
2776
2918
  value: "right",
2777
2919
  label: T(a).title.alignRight,
2778
- icon: T(Qe)
2920
+ icon: T(ot)
2779
2921
  }
2780
2922
  ],
2781
2923
  "model-value": t.block.textAlign,
@@ -2783,7 +2925,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2783
2925
  }, null, 8, ["options", "model-value"])])
2784
2926
  ], 64));
2785
2927
  }
2786
- }), ts = { class: "tpl:mb-3.5" }, ns = ["value"], rs = { value: 1 }, is = { value: 2 }, as = { value: 3 }, os = { value: 4 }, ss = { class: "tpl:mb-3.5" }, cs = ["value"], ls = { value: "" }, us = ["value"], ds = { class: "tpl:mb-3.5" }, fs = { class: "tpl:mb-3.5" }, ps = /* @__PURE__ */ m({
2928
+ }), bs = { class: "tpl:mb-3.5" }, xs = ["value"], Ss = { value: 1 }, Cs = { value: 2 }, ws = { value: 3 }, Ts = { value: 4 }, Es = { class: "tpl:mb-3.5" }, Ds = ["value"], Os = { value: "" }, ks = ["value"], As = { class: "tpl:mb-3.5" }, js = { class: "tpl:mb-3.5" }, Ms = /* @__PURE__ */ m({
2787
2929
  __name: "TitleToolbar",
2788
2930
  props: {
2789
2931
  block: {},
@@ -2791,49 +2933,49 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2791
2933
  },
2792
2934
  emits: ["update"],
2793
2935
  setup(t, { emit: n }) {
2794
- let r = n, { t: i } = H();
2936
+ let r = n, { t: i } = W();
2795
2937
  function a(e, t) {
2796
2938
  r("update", { [e]: t });
2797
2939
  }
2798
2940
  return (n, r) => (e(), v(y, null, [
2799
- _("div", ts, [_("label", { class: p(T(G)) }, D(T(i).title.level), 3), _("select", {
2800
- class: p(T(W)),
2941
+ _("div", bs, [_("label", { class: p(T(q)) }, D(T(i).title.level), 3), _("select", {
2942
+ class: p(T(K)),
2801
2943
  value: t.block.level,
2802
2944
  onChange: r[0] ||= (e) => a("level", Number(e.target.value))
2803
2945
  }, [
2804
- _("option", rs, D(T(i).title.heading1), 1),
2805
- _("option", is, D(T(i).title.heading2), 1),
2806
- _("option", as, D(T(i).title.heading3), 1),
2807
- _("option", os, D(T(i).title.heading4), 1)
2808
- ], 42, ns)]),
2809
- _("div", ss, [_("label", { class: p(T(G)) }, D(T(i).title.fontFamily), 3), _("select", {
2810
- class: p(T(W)),
2946
+ _("option", Ss, D(T(i).title.heading1), 1),
2947
+ _("option", Cs, D(T(i).title.heading2), 1),
2948
+ _("option", ws, D(T(i).title.heading3), 1),
2949
+ _("option", Ts, D(T(i).title.heading4), 1)
2950
+ ], 42, xs)]),
2951
+ _("div", Es, [_("label", { class: p(T(q)) }, D(T(i).title.fontFamily), 3), _("select", {
2952
+ class: p(T(K)),
2811
2953
  value: t.block.fontFamily || "",
2812
2954
  onChange: r[1] ||= (e) => a("fontFamily", e.target.value || void 0)
2813
- }, [_("option", ls, D(T(i).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2955
+ }, [_("option", Os, D(T(i).title.inheritFont), 1), (e(!0), v(y, null, o(t.fontFamilies, (t) => (e(), v("option", {
2814
2956
  key: t.value,
2815
2957
  value: t.value
2816
- }, D(t.label), 9, us))), 128))], 42, cs)]),
2817
- _("div", ds, [_("label", { class: p(T(G)) }, D(T(i).title.color), 3), k(J, {
2958
+ }, D(t.label), 9, ks))), 128))], 42, Ds)]),
2959
+ _("div", As, [_("label", { class: p(T(q)) }, D(T(i).title.color), 3), k(X, {
2818
2960
  "model-value": t.block.color,
2819
2961
  "onUpdate:modelValue": r[2] ||= (e) => a("color", e)
2820
2962
  }, null, 8, ["model-value"])]),
2821
- _("div", fs, [_("label", { class: p(T(G)) }, D(T(i).title.align), 3), k(X, {
2963
+ _("div", js, [_("label", { class: p(T(q)) }, D(T(i).title.align), 3), k(wt, {
2822
2964
  options: [
2823
2965
  {
2824
2966
  value: "left",
2825
2967
  label: T(i).title.alignLeft,
2826
- icon: T(et)
2968
+ icon: T(ct)
2827
2969
  },
2828
2970
  {
2829
2971
  value: "center",
2830
2972
  label: T(i).title.alignCenter,
2831
- icon: T($e)
2973
+ icon: T(st)
2832
2974
  },
2833
2975
  {
2834
2976
  value: "right",
2835
2977
  label: T(i).title.alignRight,
2836
- icon: T(Qe)
2978
+ icon: T(ot)
2837
2979
  }
2838
2980
  ],
2839
2981
  "model-value": t.block.textAlign,
@@ -2841,22 +2983,22 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2841
2983
  }, null, 8, ["options", "model-value"])])
2842
2984
  ], 64));
2843
2985
  }
2844
- }), ms = { class: "tpl:mb-3.5" }, hs = {
2986
+ }), Ns = { class: "tpl:mb-3.5" }, Ps = {
2845
2987
  key: 0,
2846
2988
  class: "tpl:mt-2 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:text-[12px] tpl:text-[var(--tpl-text-muted)]"
2847
- }, gs = ["checked"], _s = {
2989
+ }, Fs = ["checked"], Is = {
2848
2990
  key: 0,
2849
2991
  class: "tpl:mb-3.5"
2850
- }, vs = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, ys = [
2992
+ }, Ls = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Rs = [
2851
2993
  "value",
2852
2994
  "placeholder",
2853
2995
  "title"
2854
- ], bs = { class: "tpl:mb-3.5" }, xs = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Ss = { class: "tpl:mb-3.5" }, Cs = { class: "tpl:mb-3.5" }, ws = ["value"], Ts = { value: "full" }, Es = { class: "tpl:mb-3.5" }, Ds = /* @__PURE__ */ m({
2996
+ ], zs = { class: "tpl:mb-3.5" }, Bs = { class: "tpl:font-normal tpl:text-[var(--tpl-text-dim)]" }, Vs = { class: "tpl:mb-3.5" }, Hs = { class: "tpl:mb-3.5" }, Us = ["value"], Ws = { value: "full" }, Gs = { class: "tpl:mb-3.5" }, Ks = /* @__PURE__ */ m({
2855
2997
  __name: "VideoToolbar",
2856
2998
  props: { block: {} },
2857
2999
  emits: ["update"],
2858
3000
  setup(t, { emit: n }) {
2859
- let r = t, i = n, { t: a } = H(), o = A(Oe, null), s = A(je, L.liquid), c = mt(), l = g(() => !!o), f = g(() => I(r.block.url, s)), m = u(!1), { start: h } = Te(() => {
3001
+ let r = t, i = n, { t: a } = W(), o = A(Ee, null), s = A(je, L.liquid), c = ht(), l = g(() => !!o), f = g(() => I(r.block.url, s)), m = u(!1), { start: h } = we(() => {
2860
3002
  m.value = !1;
2861
3003
  }, 1e3, { immediate: !1 });
2862
3004
  function x(e, t) {
@@ -2867,32 +3009,32 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2867
3009
  c.alive && e && (x("thumbnailUrl", e.url), m.value = !0, h());
2868
3010
  }
2869
3011
  return (n, r) => (e(), v(y, null, [
2870
- _("div", ms, [
2871
- _("label", { class: p(T(G)) }, D(T(a).video.videoUrl), 3),
2872
- k(Q, {
3012
+ _("div", Ns, [
3013
+ _("label", { class: p(T(q)) }, D(T(a).video.videoUrl), 3),
3014
+ k($, {
2873
3015
  "model-value": t.block.url,
2874
3016
  type: "url",
2875
3017
  placeholder: T(a).video.videoUrlPlaceholder,
2876
3018
  "onUpdate:modelValue": r[0] ||= (e) => x("url", e)
2877
3019
  }, null, 8, ["model-value", "placeholder"]),
2878
- t.block.url ? (e(), v("label", hs, [_("input", {
3020
+ t.block.url ? (e(), v("label", Ps, [_("input", {
2879
3021
  type: "checkbox",
2880
3022
  class: "tpl:size-3.5 tpl:cursor-pointer tpl:accent-[var(--tpl-primary)]",
2881
3023
  checked: t.block.openInNewTab ?? !1,
2882
3024
  onChange: r[1] ||= (e) => x("openInNewTab", e.target.checked)
2883
- }, null, 40, gs), d(" " + D(T(a).video.openInNewTab), 1)])) : b("", !0)
3025
+ }, null, 40, Fs), d(" " + D(T(a).video.openInNewTab), 1)])) : b("", !0)
2884
3026
  ]),
2885
- f.value ? (e(), v("div", _s, [_("label", { class: p(T(G)) }, [d(D(T(a).video.placeholderUrl) + " ", 1), _("span", vs, D(T(a).video.optional), 1)], 2), _("input", {
3027
+ f.value ? (e(), v("div", Is, [_("label", { class: p(T(q)) }, [d(D(T(a).video.placeholderUrl) + " ", 1), _("span", Ls, D(T(a).video.optional), 1)], 2), _("input", {
2886
3028
  type: "url",
2887
- class: p(T(W)),
3029
+ class: p(T(K)),
2888
3030
  value: t.block.placeholderUrl || "",
2889
3031
  placeholder: T(a).video.placeholderUrlPlaceholder,
2890
3032
  title: T(a).video.placeholderUrlTooltip,
2891
3033
  onInput: r[2] ||= (e) => x("placeholderUrl", e.target.value)
2892
- }, null, 42, ys)])) : b("", !0),
2893
- _("div", bs, [
2894
- _("label", { class: p(T(G)) }, [d(D(T(a).video.customThumbnail) + " ", 1), _("span", xs, D(T(a).video.optional), 1)], 2),
2895
- k(Q, {
3034
+ }, null, 42, Rs)])) : b("", !0),
3035
+ _("div", zs, [
3036
+ _("label", { class: p(T(q)) }, [d(D(T(a).video.customThumbnail) + " ", 1), _("span", Bs, D(T(a).video.optional), 1)], 2),
3037
+ k($, {
2896
3038
  "model-value": t.block.thumbnailUrl,
2897
3039
  type: "url",
2898
3040
  placeholder: T(a).video.thumbnailPlaceholder,
@@ -2912,28 +3054,28 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2912
3054
  "background-color": "var(--tpl-bg)"
2913
3055
  },
2914
3056
  onClick: S
2915
- }, [k(T(B), {
3057
+ }, [k(T(pe), {
2916
3058
  size: 14,
2917
3059
  "stroke-width": 1.5
2918
3060
  }), d(" " + D(T(a).image.browseMedia), 1)])) : b("", !0)
2919
3061
  ]),
2920
- _("div", Ss, [_("label", { class: p(T(G)) }, D(T(a).video.altText), 3), k(Q, {
3062
+ _("div", Vs, [_("label", { class: p(T(q)) }, D(T(a).video.altText), 3), k($, {
2921
3063
  "model-value": t.block.alt,
2922
3064
  type: "text",
2923
3065
  placeholder: T(a).video.altTextPlaceholder,
2924
3066
  "onUpdate:modelValue": r[4] ||= (e) => x("alt", e)
2925
3067
  }, null, 8, ["model-value", "placeholder"])]),
2926
- _("div", Cs, [_("label", { class: p(T(G)) }, D(T(a).video.width), 3), _("select", {
2927
- class: p(T(W)),
3068
+ _("div", Hs, [_("label", { class: p(T(q)) }, D(T(a).video.width), 3), _("select", {
3069
+ class: p(T(K)),
2928
3070
  value: t.block.width,
2929
3071
  onChange: r[5] ||= (e) => x("width", e.target.value === "full" ? "full" : Number(e.target.value))
2930
3072
  }, [
2931
- _("option", Ts, D(T(a).video.fullWidth), 1),
3073
+ _("option", Ws, D(T(a).video.fullWidth), 1),
2932
3074
  r[7] ||= _("option", { value: "300" }, "300px", -1),
2933
3075
  r[8] ||= _("option", { value: "400" }, "400px", -1),
2934
3076
  r[9] ||= _("option", { value: "500" }, "500px", -1)
2935
- ], 42, ws)]),
2936
- _("div", Es, [_("label", { class: p(T(G)) }, D(T(a).title.align), 3), k(X, {
3077
+ ], 42, Us)]),
3078
+ _("div", Gs, [_("label", { class: p(T(q)) }, D(T(a).title.align), 3), k(wt, {
2937
3079
  options: [
2938
3080
  {
2939
3081
  value: "left",
@@ -2953,7 +3095,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2953
3095
  }, null, 8, ["options", "model-value"])])
2954
3096
  ], 64));
2955
3097
  }
2956
- }), Os = ["aria-label"], ks = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3.5" }, As = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-[var(--tpl-primary)]" }, js = { class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ms = { class: "tpl:flex tpl:gap-1" }, Ns = ["title"], Ps = ["title"], Fs = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Is = /*#__PURE__*/ dt(/* @__PURE__ */ m({
3098
+ }), qs = ["aria-label"], Js = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3.5" }, Ys = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-[var(--tpl-primary)]" }, Xs = { class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Zs = { class: "tpl:flex tpl:gap-1" }, Qs = ["title"], $s = ["title"], ec = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, tc = /*#__PURE__*/ ft(/* @__PURE__ */ m({
2957
3099
  __name: "Toolbar",
2958
3100
  props: { block: {} },
2959
3101
  emits: [
@@ -2962,87 +3104,87 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
2962
3104
  "duplicate"
2963
3105
  ],
2964
3106
  setup(t, { emit: n }) {
2965
- let i = j(() => import("./CountdownToolbar-BeII06yJ.js")), a = t, o = n, { t: s } = H(), c = Ae(Ie, "Toolbar"), l = A(Pe, []), u = g(() => a.block.type), d = g(() => P(a.block)), f = g(() => {
3107
+ let i = j(() => import("./CountdownToolbar-Dtqgwy0g.js")), a = t, o = n, { t: s } = W(), c = Oe(Fe, "Toolbar"), l = A(Ne, []), u = g(() => a.block.type), d = g(() => P(a.block)), f = g(() => {
2966
3108
  if (d.value) return l.find((e) => e.type === a.block.customType);
2967
- }), p = g(() => d.value ? f.value?.name ?? a.block.customType : re(u.value, s)), m = c.fonts;
3109
+ }), p = g(() => d.value ? f.value?.name ?? a.block.customType : H(u.value, s)), m = c.fonts;
2968
3110
  function h(e) {
2969
3111
  o("update", e);
2970
3112
  }
2971
3113
  return (n, a) => (e(), v("aside", {
2972
3114
  "aria-label": T(s).landmarks.blockToolbar,
2973
3115
  class: "tpl:flex tpl:w-full tpl:flex-1 tpl:flex-col tpl:bg-[var(--tpl-bg-elevated)]"
2974
- }, [_("div", ks, [_("div", As, [T(Ye)[u.value] ? (e(), C(r(T(Ye)[u.value]), {
3116
+ }, [_("div", Js, [_("div", Ys, [T(Qe)[u.value] ? (e(), C(r(T(Qe)[u.value]), {
2975
3117
  key: 0,
2976
3118
  size: 16,
2977
3119
  "stroke-width": 1.5
2978
- })) : d.value ? (e(), C(T(ae), {
3120
+ })) : d.value ? (e(), C(T(re), {
2979
3121
  key: 1,
2980
3122
  size: 16,
2981
3123
  "stroke-width": 1.5
2982
- })) : b("", !0), _("h3", js, D(p.value), 1)]), _("div", Ms, [_("button", {
3124
+ })) : b("", !0), _("h3", Xs, D(p.value), 1)]), _("div", Zs, [_("button", {
2983
3125
  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)]",
2984
3126
  title: T(s).toolbar.duplicate,
2985
3127
  onClick: a[0] ||= (e) => o("duplicate")
2986
- }, [k(T(ie), {
3128
+ }, [k(T(U), {
2987
3129
  size: 14,
2988
3130
  "stroke-width": 2
2989
- })], 8, Ns), _("button", {
3131
+ })], 8, Qs), _("button", {
2990
3132
  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)]",
2991
3133
  title: T(s).toolbar.delete,
2992
3134
  onClick: a[1] ||= (e) => o("delete")
2993
- }, [k(T(ct), {
3135
+ }, [k(T(lt), {
2994
3136
  size: 14,
2995
3137
  "stroke-width": 2
2996
- })], 8, Ps)])]), _("div", Fs, [d.value ? (e(), C(na, {
3138
+ })], 8, $s)])]), _("div", ec, [d.value ? (e(), C(fa, {
2997
3139
  key: 0,
2998
3140
  block: t.block,
2999
3141
  onUpdateFieldValues: a[2] ||= (e) => o("update", { fieldValues: e }),
3000
3142
  onUpdateDataSourceFetched: a[3] ||= (e) => o("update", { dataSourceFetched: e })
3001
- }, null, 8, ["block"])) : u.value === "section" ? (e(), C(Xa, {
3143
+ }, null, 8, ["block"])) : u.value === "section" ? (e(), C(go, {
3002
3144
  key: 1,
3003
3145
  block: t.block,
3004
3146
  onUpdate: h
3005
- }, null, 8, ["block"])) : u.value === "title" ? (e(), C(ps, {
3147
+ }, null, 8, ["block"])) : u.value === "title" ? (e(), C(Ms, {
3006
3148
  key: 2,
3007
3149
  block: t.block,
3008
3150
  "font-families": T(m),
3009
3151
  onUpdate: h
3010
- }, null, 8, ["block", "font-families"])) : u.value === "paragraph" ? (e(), v(y, { key: 3 }, [], 64)) : u.value === "image" ? (e(), C(Ma, {
3152
+ }, null, 8, ["block", "font-families"])) : u.value === "paragraph" ? (e(), v(y, { key: 3 }, [], 64)) : u.value === "image" ? (e(), C(Ha, {
3011
3153
  key: 4,
3012
3154
  block: t.block,
3013
3155
  onUpdate: h
3014
- }, null, 8, ["block"])) : u.value === "video" ? (e(), C(Ds, {
3156
+ }, null, 8, ["block"])) : u.value === "video" ? (e(), C(Ks, {
3015
3157
  key: 5,
3016
3158
  block: t.block,
3017
3159
  onUpdate: h
3018
- }, null, 8, ["block"])) : u.value === "button" ? (e(), C(Dr, {
3160
+ }, null, 8, ["block"])) : u.value === "button" ? (e(), C(Ir, {
3019
3161
  key: 6,
3020
3162
  block: t.block,
3021
3163
  "font-families": T(m),
3022
3164
  onUpdate: h
3023
- }, null, 8, ["block", "font-families"])) : u.value === "divider" ? (e(), C(ca, {
3165
+ }, null, 8, ["block", "font-families"])) : u.value === "divider" ? (e(), C(va, {
3024
3166
  key: 7,
3025
3167
  block: t.block,
3026
3168
  onUpdate: h
3027
- }, null, 8, ["block"])) : u.value === "social" ? (e(), C(go, {
3169
+ }, null, 8, ["block"])) : u.value === "social" ? (e(), C(Fo, {
3028
3170
  key: 8,
3029
3171
  block: t.block,
3030
3172
  onUpdate: h
3031
- }, null, 8, ["block"])) : u.value === "menu" ? (e(), C(Wa, {
3173
+ }, null, 8, ["block"])) : u.value === "menu" ? (e(), C(eo, {
3032
3174
  key: 9,
3033
3175
  block: t.block,
3034
3176
  "font-families": T(m),
3035
3177
  onUpdate: h
3036
- }, null, 8, ["block", "font-families"])) : u.value === "table" ? (e(), C(es, {
3178
+ }, null, 8, ["block", "font-families"])) : u.value === "table" ? (e(), C(ys, {
3037
3179
  key: 10,
3038
3180
  block: t.block,
3039
3181
  "font-families": T(m),
3040
3182
  onUpdate: h
3041
- }, null, 8, ["block", "font-families"])) : u.value === "spacer" ? (e(), C(xo, {
3183
+ }, null, 8, ["block", "font-families"])) : u.value === "spacer" ? (e(), C(Bo, {
3042
3184
  key: 11,
3043
3185
  block: t.block,
3044
3186
  onUpdate: h
3045
- }, null, 8, ["block"])) : u.value === "html" ? (e(), C(fa, {
3187
+ }, null, 8, ["block"])) : u.value === "html" ? (e(), C(Sa, {
3046
3188
  key: 12,
3047
3189
  block: t.block,
3048
3190
  onUpdate: h
@@ -3051,52 +3193,52 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3051
3193
  block: t.block,
3052
3194
  "font-families": T(m),
3053
3195
  onUpdate: h
3054
- }, null, 8, ["block", "font-families"])) : b("", !0), k(_i, {
3196
+ }, null, 8, ["block", "font-families"])) : b("", !0), k(Di, {
3055
3197
  block: t.block,
3056
3198
  "is-first-section": u.value === "paragraph",
3057
3199
  onUpdate: h
3058
- }, null, 8, ["block", "is-first-section"])])], 8, Os));
3200
+ }, null, 8, ["block", "is-first-section"])])], 8, qs));
3059
3201
  }
3060
- }), [["__scopeId", "data-v-2ac88283"]]), Ls = ["aria-label"], Rs = {
3202
+ }), [["__scopeId", "data-v-2ac88283"]]), nc = ["aria-label"], rc = {
3061
3203
  role: "tablist",
3062
3204
  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"
3063
- }, zs = [
3205
+ }, ic = [
3064
3206
  "aria-selected",
3065
3207
  "aria-label",
3066
3208
  "title"
3067
- ], Bs = { key: 0 }, Vs = [
3209
+ ], ac = { key: 0 }, oc = [
3068
3210
  "aria-selected",
3069
3211
  "aria-label",
3070
3212
  "title"
3071
- ], Hs = { key: 0 }, Us = [
3213
+ ], sc = { key: 0 }, cc = [
3072
3214
  "aria-selected",
3073
3215
  "aria-label",
3074
3216
  "title"
3075
- ], Ws = { key: 0 }, Gs = {
3217
+ ], lc = { key: 0 }, uc = {
3076
3218
  key: 1,
3077
3219
  class: "tpl:ml-1 tpl:rounded-full tpl:bg-[var(--tpl-bg-hover)] tpl:px-1.5 tpl:text-[10px]"
3078
- }, Ks = {
3220
+ }, dc = {
3079
3221
  key: 0,
3080
3222
  id: "tpl-tabpanel-content",
3081
3223
  role: "tabpanel",
3082
3224
  "aria-labelledby": "tpl-tab-content",
3083
3225
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
3084
- }, qs = {
3226
+ }, fc = {
3085
3227
  key: 1,
3086
3228
  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)]"
3087
- }, Js = { class: "tpl:mb-4 tpl:text-[var(--tpl-text-dim)]" }, Ys = { class: "tpl:m-0 tpl:mb-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Xs = { class: "tpl:m-0 tpl:text-sm tpl:leading-normal" }, Zs = {
3229
+ }, pc = { class: "tpl:mb-4 tpl:text-[var(--tpl-text-dim)]" }, mc = { class: "tpl:m-0 tpl:mb-2 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]" }, hc = { class: "tpl:m-0 tpl:text-sm tpl:leading-normal" }, gc = {
3088
3230
  key: 1,
3089
3231
  id: "tpl-tabpanel-settings",
3090
3232
  role: "tabpanel",
3091
3233
  "aria-labelledby": "tpl-tab-settings",
3092
3234
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
3093
- }, Qs = {
3235
+ }, _c = {
3094
3236
  key: 2,
3095
3237
  id: "tpl-tabpanel-issues",
3096
3238
  role: "tabpanel",
3097
3239
  "aria-labelledby": "tpl-tab-issues",
3098
3240
  class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-y-auto"
3099
- }, $s = /* @__PURE__ */ m({
3241
+ }, vc = /* @__PURE__ */ m({
3100
3242
  __name: "RightSidebar",
3101
3243
  props: {
3102
3244
  selectedBlock: {},
@@ -3110,7 +3252,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3110
3252
  "update-settings"
3111
3253
  ],
3112
3254
  setup(t, { emit: n }) {
3113
- let r = j(() => import("./IssuesPanel-I0z6k6-H.js")), i = t, o = n, { t: s } = H(), c = u("content"), l = A(Le, null), d = g(() => l !== null), f = g(() => l?.issues.value.length ?? 0);
3255
+ let r = j(() => import("./IssuesPanel-u7ee3Wrl.js")), i = t, o = n, { t: s } = W(), c = u("content"), l = A(ke, null), d = g(() => l !== null), f = g(() => l?.issues.value.length ?? 0);
3114
3256
  function m(e) {
3115
3257
  return c.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)]";
3116
3258
  }
@@ -3126,7 +3268,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3126
3268
  "aria-label": T(s).landmarks.rightSidebar,
3127
3269
  class: p(["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)]", t.shiftedLeft ? "tpl:right-[360px]" : "tpl:right-0"])
3128
3270
  }, [
3129
- _("div", Rs, [
3271
+ _("div", rc, [
3130
3272
  _("button", {
3131
3273
  id: "tpl-tab-content",
3132
3274
  role: "tab",
@@ -3137,10 +3279,10 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3137
3279
  class: p(["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)]", m("content")]),
3138
3280
  style: S(h("content")),
3139
3281
  onClick: i[0] ||= (e) => c.value = "content"
3140
- }, [k(T(Nt), {
3282
+ }, [k(T(Pt), {
3141
3283
  size: 14,
3142
3284
  "stroke-width": 2
3143
- }), c.value === "content" ? (e(), v("span", Bs, D(T(s).sidebar.content), 1)) : b("", !0)], 14, zs),
3285
+ }), c.value === "content" ? (e(), v("span", ac, D(T(s).sidebar.content), 1)) : b("", !0)], 14, ic),
3144
3286
  _("button", {
3145
3287
  id: "tpl-tab-settings",
3146
3288
  role: "tab",
@@ -3151,10 +3293,10 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3151
3293
  class: p(["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)]", m("settings")]),
3152
3294
  style: S(h("settings")),
3153
3295
  onClick: i[1] ||= (e) => c.value = "settings"
3154
- }, [k(T(Ft), {
3296
+ }, [k(T(It), {
3155
3297
  size: 14,
3156
3298
  "stroke-width": 1.5
3157
- }), c.value === "settings" ? (e(), v("span", Hs, D(T(s).sidebar.settings), 1)) : b("", !0)], 14, Vs),
3299
+ }), c.value === "settings" ? (e(), v("span", sc, D(T(s).sidebar.settings), 1)) : b("", !0)], 14, oc),
3158
3300
  d.value ? (e(), v("button", {
3159
3301
  key: 0,
3160
3302
  id: "tpl-tab-issues",
@@ -3167,64 +3309,64 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3167
3309
  style: S(h("issues")),
3168
3310
  onClick: i[2] ||= (e) => c.value = "issues"
3169
3311
  }, [
3170
- k(T(ot), {
3312
+ k(T(rt), {
3171
3313
  size: 14,
3172
3314
  "stroke-width": 1.5
3173
3315
  }),
3174
- c.value === "issues" ? (e(), v("span", Ws, D(T(s).issues.panelTabLabel), 1)) : b("", !0),
3175
- f.value > 0 ? (e(), v("span", Gs, D(f.value), 1)) : b("", !0)
3176
- ], 14, Us)) : b("", !0)
3316
+ c.value === "issues" ? (e(), v("span", lc, D(T(s).issues.panelTabLabel), 1)) : b("", !0),
3317
+ f.value > 0 ? (e(), v("span", uc, D(f.value), 1)) : b("", !0)
3318
+ ], 14, cc)) : b("", !0)
3177
3319
  ]),
3178
- c.value === "content" ? (e(), v("div", Ks, [t.selectedBlock ? (e(), C(Is, {
3320
+ c.value === "content" ? (e(), v("div", dc, [t.selectedBlock ? (e(), C(tc, {
3179
3321
  key: 0,
3180
3322
  block: t.selectedBlock,
3181
3323
  onUpdate: i[3] ||= (e) => o("update-block", e),
3182
3324
  onDelete: i[4] ||= (e) => o("delete-block"),
3183
3325
  onDuplicate: i[5] ||= (e) => o("duplicate-block")
3184
- }, null, 8, ["block"])) : (e(), v("div", qs, [
3185
- _("div", Js, [k(T(kt), {
3326
+ }, null, 8, ["block"])) : (e(), v("div", fc, [
3327
+ _("div", pc, [k(T(kt), {
3186
3328
  size: 40,
3187
3329
  "stroke-width": 1.5
3188
3330
  })]),
3189
- _("h3", Ys, D(T(s).sidebar.noSelection), 1),
3190
- _("p", Xs, D(T(s).sidebar.noSelectionHint), 1)
3331
+ _("h3", mc, D(T(s).sidebar.noSelection), 1),
3332
+ _("p", hc, D(T(s).sidebar.noSelectionHint), 1)
3191
3333
  ]))])) : b("", !0),
3192
- c.value === "settings" ? (e(), v("div", Zs, [k(Zn, {
3334
+ c.value === "settings" ? (e(), v("div", gc, [k(ir, {
3193
3335
  settings: t.settings,
3194
3336
  onUpdate: i[6] ||= (e) => o("update-settings", e)
3195
3337
  }, null, 8, ["settings"])])) : b("", !0),
3196
- c.value === "issues" && d.value ? (e(), v("div", Qs, [k(T(r))])) : b("", !0)
3197
- ], 10, Ls));
3338
+ c.value === "issues" && d.value ? (e(), v("div", _c, [k(T(r))])) : b("", !0)
3339
+ ], 10, nc));
3198
3340
  }
3199
- }), ec = {
3341
+ }), yc = {
3200
3342
  class: "tpl-small-screen-notice tpl:absolute tpl:inset-0 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-4 tpl:px-6 tpl:py-10 tpl:text-center tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)]",
3201
3343
  style: { "z-index": "10001" },
3202
3344
  role: "status",
3203
3345
  "data-testid": "small-screen-notice"
3204
- }, tc = { class: "tpl:text-[var(--tpl-text-dim)]" }, nc = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, rc = { class: "tpl:m-0 tpl:max-w-sm tpl:text-sm tpl:leading-normal" }, ic = /* @__PURE__ */ m({
3346
+ }, bc = { class: "tpl:text-[var(--tpl-text-dim)]" }, xc = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Sc = { class: "tpl:m-0 tpl:max-w-sm tpl:text-sm tpl:leading-normal" }, Cc = /* @__PURE__ */ m({
3205
3347
  __name: "SmallScreenNotice",
3206
3348
  setup(t) {
3207
- let { t: n } = H();
3208
- return (t, r) => (e(), v("div", ec, [
3209
- _("div", tc, [k(T(jt), {
3349
+ let { t: n } = W();
3350
+ return (t, r) => (e(), v("div", yc, [
3351
+ _("div", bc, [k(T(Mt), {
3210
3352
  size: 48,
3211
3353
  "stroke-width": 1.5
3212
3354
  })]),
3213
- _("h2", nc, D(T(n).smallScreen.title), 1),
3214
- _("p", rc, D(T(n).smallScreen.message), 1)
3355
+ _("h2", xc, D(T(n).smallScreen.title), 1),
3356
+ _("p", Sc, D(T(n).smallScreen.message), 1)
3215
3357
  ]));
3216
3358
  }
3217
- }), ac = ["aria-label"], oc = [
3359
+ }), wc = ["aria-label"], Tc = [
3218
3360
  "aria-checked",
3219
3361
  "aria-label",
3220
3362
  "title",
3221
3363
  "onClick"
3222
- ], sc = /* @__PURE__ */ m({
3364
+ ], Ec = /* @__PURE__ */ m({
3223
3365
  __name: "ViewportToggle",
3224
3366
  props: { viewport: {} },
3225
3367
  emits: ["change"],
3226
3368
  setup(t, { emit: n }) {
3227
- let r = t, i = n, { t: a } = H(), s = g(() => [{
3369
+ let r = t, i = n, { t: a } = W(), s = g(() => [{
3228
3370
  value: "desktop",
3229
3371
  label: a.viewport.desktop
3230
3372
  }, {
@@ -3261,26 +3403,26 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3261
3403
  }),
3262
3404
  title: n.label,
3263
3405
  onClick: (e) => i("change", n.value)
3264
- }, [n.value === "desktop" ? (e(), C(T(jt), {
3406
+ }, [n.value === "desktop" ? (e(), C(T(Mt), {
3265
3407
  key: 0,
3266
3408
  size: 18,
3267
3409
  "stroke-width": 1.5
3268
- })) : (e(), C(T(It), {
3410
+ })) : (e(), C(T(Lt), {
3269
3411
  key: 1,
3270
3412
  size: 18,
3271
3413
  "stroke-width": 1.5
3272
- })), _("span", null, D(n.label), 1)], 12, oc))), 128))], 12, ac));
3414
+ })), _("span", null, D(n.label), 1)], 12, Tc))), 128))], 12, wc));
3273
3415
  }
3274
- }), cc = [
3416
+ }), Dc = [
3275
3417
  "aria-label",
3276
3418
  "title",
3277
3419
  "aria-pressed"
3278
- ], lc = /*#__PURE__*/ dt(/* @__PURE__ */ m({
3420
+ ], Oc = /*#__PURE__*/ ft(/* @__PURE__ */ m({
3279
3421
  __name: "PreviewToggle",
3280
3422
  props: { previewMode: { type: Boolean } },
3281
3423
  emits: ["change"],
3282
3424
  setup(t, { emit: n }) {
3283
- let r = n, { t: i } = H();
3425
+ let r = n, { t: i } = W();
3284
3426
  return (n, a) => (e(), v("button", {
3285
3427
  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",
3286
3428
  style: S({
@@ -3298,28 +3440,28 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3298
3440
  "leave-to-class": "tpl-icon-leave-to",
3299
3441
  mode: "out-in"
3300
3442
  }, {
3301
- default: M(() => [t.previewMode ? (e(), C(T(nt), {
3443
+ default: M(() => [t.previewMode ? (e(), C(T($e), {
3302
3444
  key: "eye",
3303
3445
  size: 18,
3304
3446
  "stroke-width": 1.5
3305
- })) : (e(), C(T(me), {
3447
+ })) : (e(), C(T(ne), {
3306
3448
  key: "eye-off",
3307
3449
  size: 18,
3308
3450
  "stroke-width": 1.5
3309
3451
  }))]),
3310
3452
  _: 1
3311
- })], 12, cc));
3453
+ })], 12, Dc));
3312
3454
  }
3313
- }), [["__scopeId", "data-v-af87d02a"]]), uc = [
3455
+ }), [["__scopeId", "data-v-af87d02a"]]), kc = [
3314
3456
  "aria-label",
3315
3457
  "title",
3316
3458
  "aria-pressed"
3317
- ], dc = /*#__PURE__*/ dt(/* @__PURE__ */ m({
3459
+ ], Ac = /*#__PURE__*/ ft(/* @__PURE__ */ m({
3318
3460
  __name: "DarkModeToggle",
3319
3461
  props: { darkMode: { type: Boolean } },
3320
3462
  emits: ["change"],
3321
3463
  setup(t, { emit: n }) {
3322
- let r = n, { t: i } = H();
3464
+ let r = n, { t: i } = W();
3323
3465
  return (n, a) => (e(), v("button", {
3324
3466
  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",
3325
3467
  style: S({
@@ -3337,37 +3479,37 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3337
3479
  "leave-to-class": "tpl-icon-leave-to",
3338
3480
  mode: "out-in"
3339
3481
  }, {
3340
- default: M(() => [t.darkMode ? (e(), C(T(Mt), {
3482
+ default: M(() => [t.darkMode ? (e(), C(T(Nt), {
3341
3483
  key: "moon",
3342
3484
  size: 18,
3343
3485
  "stroke-width": 1.5
3344
- })) : (e(), C(T(Rt), {
3486
+ })) : (e(), C(T(Bt), {
3345
3487
  key: "sun",
3346
3488
  size: 18,
3347
3489
  "stroke-width": 1.5
3348
3490
  }))]),
3349
3491
  _: 1
3350
- })], 12, uc));
3492
+ })], 12, kc));
3351
3493
  }
3352
- }), [["__scopeId", "data-v-f8694f76"]]), fc = {
3494
+ }), [["__scopeId", "data-v-f8694f76"]]), jc = {
3353
3495
  class: "tpl:pointer-events-auto tpl:flex tpl:items-center tpl:gap-1.5 tpl:rounded-tl-lg tpl:p-1",
3354
3496
  style: {
3355
3497
  "background-color": "color-mix(\n in srgb,\n var(--tpl-canvas-bg) 85%,\n transparent\n )",
3356
3498
  "backdrop-filter": "blur(8px)",
3357
3499
  "-webkit-backdrop-filter": "blur(8px)"
3358
3500
  }
3359
- }, pc = {
3501
+ }, Mc = {
3360
3502
  href: "https://github.com/templatical/sdk",
3361
3503
  target: "_blank",
3362
3504
  rel: "noopener noreferrer",
3363
3505
  class: "tpl:transition-colors tpl:duration-150 hover:tpl:opacity-80 tpl:text-[var(--tpl-text-dim)]",
3364
3506
  style: { "text-decoration": "none" }
3365
- }, mc = /* @__PURE__ */ m({
3507
+ }, Nc = /* @__PURE__ */ m({
3366
3508
  __name: "EditorFooter",
3367
3509
  props: { positionClass: {} },
3368
3510
  setup(t) {
3369
- let { t: n } = H();
3370
- return (r, i) => (e(), v("footer", { class: p(["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)]", t.positionClass]) }, [_("div", fc, [
3511
+ let { t: n } = W();
3512
+ return (r, i) => (e(), v("footer", { class: p(["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)]", t.positionClass]) }, [_("div", jc, [
3371
3513
  _("span", null, D(T(n).footer.poweredBy), 1),
3372
3514
  i[0] ||= _("a", {
3373
3515
  href: "https://templatical.com",
@@ -3382,32 +3524,32 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3382
3524
  alt: ""
3383
3525
  }), d(" Templatical ")], -1),
3384
3526
  i[1] ||= _("span", { class: "tpl:text-[var(--tpl-border)]" }, "·", -1),
3385
- _("a", pc, D(T(n).footer.openSource), 1)
3527
+ _("a", Mc, D(T(n).footer.openSource), 1)
3386
3528
  ])], 2));
3387
3529
  }
3388
- }), hc = ["aria-labelledby", "data-tpl-theme"], gc = { 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" }, _c = ["id"], vc = ["aria-label"], yc = { class: "tpl:relative tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2.5" }, bc = [
3530
+ }), Pc = ["aria-labelledby", "data-tpl-theme"], Fc = { 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" }, Ic = ["id"], Lc = ["aria-label"], Rc = { class: "tpl:relative tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2.5" }, zc = [
3389
3531
  "id",
3390
3532
  "placeholder",
3391
3533
  "aria-label",
3392
3534
  "aria-activedescendant"
3393
- ], xc = {
3535
+ ], Bc = {
3394
3536
  key: 0,
3395
3537
  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",
3396
3538
  "data-testid": "merge-tag-picker-group-pills"
3397
- }, Sc = ["data-group-name", "onClick"], Cc = ["aria-label"], wc = {
3539
+ }, Vc = ["data-group-name", "onClick"], Hc = ["aria-label"], Uc = {
3398
3540
  key: 0,
3399
3541
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3400
3542
  "data-testid": "merge-tag-picker-empty"
3401
- }, Tc = {
3543
+ }, Wc = {
3402
3544
  key: 1,
3403
3545
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3404
3546
  "data-testid": "merge-tag-picker-empty"
3405
- }, Ec = [
3547
+ }, Gc = [
3406
3548
  "aria-expanded",
3407
3549
  "data-group-name",
3408
3550
  "data-group-collapsed",
3409
3551
  "onClick"
3410
- ], Dc = { class: "tpl:ml-1 tpl:font-normal" }, Oc = [
3552
+ ], Kc = { class: "tpl:ml-1 tpl:font-normal" }, qc = [
3411
3553
  "id",
3412
3554
  "aria-selected",
3413
3555
  "data-selected",
@@ -3416,13 +3558,13 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3416
3558
  "title",
3417
3559
  "onMousemove",
3418
3560
  "onClick"
3419
- ], kc = { class: "tpl:text-sm tpl:font-medium" }, Ac = { class: "tpl:line-clamp-2 tpl:font-mono tpl:text-xs tpl:text-ellipsis tpl:break-all tpl:text-[var(--tpl-text-dim)]" }, jc = {
3561
+ ], Jc = { class: "tpl:text-sm tpl:font-medium" }, Yc = { class: "tpl:line-clamp-2 tpl:font-mono tpl:text-xs tpl:text-ellipsis tpl:break-all tpl:text-[var(--tpl-text-dim)]" }, Xc = {
3420
3562
  key: 0,
3421
3563
  class: "tpl:line-clamp-2 tpl:text-xs tpl:text-ellipsis tpl:text-[var(--tpl-text-dim)]"
3422
- }, Mc = "tpl-merge-tag-picker-list", Nc = /* @__PURE__ */ m({
3564
+ }, Zc = "tpl-merge-tag-picker-list", Qc = /* @__PURE__ */ m({
3423
3565
  __name: "MergeTagPickerModal",
3424
3566
  setup(r) {
3425
- let i = Ae(We, "MergeTagPickerModal"), { t: s, format: c } = H(), l = A(De, null), d = A(ke, null), m = u(""), x = Ee(m, 200), w = u(null), O = g(() => x.value.trim().length > 0), j = u(0), N = g(() => i.tags.value.some((e) => !!e.group)), P = u(/* @__PURE__ */ new Set());
3567
+ let i = Oe(Ue, "MergeTagPickerModal"), { t: s, format: c } = W(), l = A(Ae, null), d = A(De, null), m = u(""), x = Te(m, 200), w = u(null), O = g(() => x.value.trim().length > 0), j = u(0), N = g(() => i.tags.value.some((e) => !!e.group)), P = u(/* @__PURE__ */ new Set());
3426
3568
  function F(e) {
3427
3569
  return P.value.has(e);
3428
3570
  }
@@ -3445,7 +3587,7 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3445
3587
  t.has(i) || (t.add(i), n.push(i));
3446
3588
  }
3447
3589
  return n;
3448
- }), ee = g(() => {
3590
+ }), z = g(() => {
3449
3591
  let e = L.value;
3450
3592
  if (!N.value || O.value) return e.map((e, t) => ({
3451
3593
  kind: "tag",
@@ -3471,42 +3613,42 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3471
3613
  }), a++;
3472
3614
  }
3473
3615
  return i;
3474
- }), z = g(() => ee.value.flatMap((e) => e.kind === "tag" ? [e.tag] : []));
3616
+ }), B = g(() => z.value.flatMap((e) => e.kind === "tag" ? [e.tag] : []));
3475
3617
  a(() => i.isOpen.value, (e) => {
3476
3618
  e && (m.value = "", j.value = 0, P.value = /* @__PURE__ */ new Set(), n(() => {
3477
3619
  w.value?.focus();
3478
3620
  }));
3479
- }), a(z, (e) => {
3621
+ }), a(B, (e) => {
3480
3622
  j.value >= e.length && (j.value = Math.max(0, e.length - 1));
3481
3623
  });
3482
- function B(e) {
3624
+ function V(e) {
3483
3625
  i.resolve(e);
3484
3626
  }
3485
- function te() {
3627
+ function ee() {
3486
3628
  i.resolve(null);
3487
3629
  }
3488
- function ne(e) {
3489
- if (z.value.length === 0) return;
3630
+ function te(e) {
3631
+ if (B.value.length === 0) return;
3490
3632
  let t = j.value + e;
3491
- j.value = Math.max(0, Math.min(z.value.length - 1, t)), ae();
3633
+ j.value = Math.max(0, Math.min(B.value.length - 1, t)), re();
3492
3634
  }
3493
- let re = u(null), V = u({});
3494
- function ie(e, t) {
3495
- V.value[e] = t ?? null;
3635
+ let H = u(null), ne = u({});
3636
+ function U(e, t) {
3637
+ ne.value[e] = t ?? null;
3496
3638
  }
3497
- function ae() {
3639
+ function re() {
3498
3640
  n(() => {
3499
- let e = re.value;
3641
+ let e = H.value;
3500
3642
  e && e.querySelector(`[data-merge-tag-index="${j.value}"]`)?.scrollIntoView({ block: "nearest" });
3501
3643
  });
3502
3644
  }
3503
- function oe(e) {
3645
+ function ie(e) {
3504
3646
  if (P.value.has(e)) {
3505
3647
  let t = new Set(P.value);
3506
3648
  t.delete(e), P.value = t;
3507
3649
  }
3508
3650
  n(() => {
3509
- let t = re.value;
3651
+ let t = H.value;
3510
3652
  if (!t) return;
3511
3653
  let n = 0, r = !1;
3512
3654
  for (let i of Array.from(t.children)) {
@@ -3522,55 +3664,55 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3522
3664
  });
3523
3665
  });
3524
3666
  }
3525
- function se(e) {
3526
- if (e.key === "ArrowDown") e.preventDefault(), ne(1);
3527
- else if (e.key === "ArrowUp") e.preventDefault(), ne(-1);
3667
+ function ae(e) {
3668
+ if (e.key === "ArrowDown") e.preventDefault(), te(1);
3669
+ else if (e.key === "ArrowUp") e.preventDefault(), te(-1);
3528
3670
  else if (e.key === "Enter") {
3529
3671
  e.preventDefault();
3530
- let t = z.value[j.value];
3531
- t && B(t);
3672
+ let t = B.value[j.value];
3673
+ t && V(t);
3532
3674
  }
3533
3675
  }
3534
- function ce() {
3535
- if (z.value.length !== 0) return `${Mc}-opt-${j.value}`;
3676
+ function oe() {
3677
+ if (B.value.length !== 0) return `${Zc}-opt-${j.value}`;
3536
3678
  }
3537
- function le(e) {
3538
- return `${Mc}-opt-${e}`;
3679
+ function se(e) {
3680
+ return `${Zc}-opt-${e}`;
3539
3681
  }
3540
- let ue = g(() => i.tags.value.length === 0), de = g(() => !ue.value && L.value.length === 0), fe = g(() => N.value && R.value.length > 1 && !O.value);
3541
- return (n, r) => (e(), C(wt, {
3682
+ let ce = g(() => i.tags.value.length === 0), le = g(() => !ce.value && L.value.length === 0), ue = g(() => N.value && R.value.length > 1 && !O.value);
3683
+ return (n, r) => (e(), C(Et, {
3542
3684
  visible: T(i).isOpen.value,
3543
- onClose: te,
3544
- onKeydown: se
3685
+ onClose: ee,
3686
+ onKeydown: ae
3545
3687
  }, {
3546
3688
  default: M(() => [_("div", {
3547
3689
  role: "dialog",
3548
3690
  "aria-modal": "true",
3549
- "aria-labelledby": `${Mc}-title`,
3691
+ "aria-labelledby": `${Zc}-title`,
3550
3692
  "data-tpl-theme": T(d),
3551
3693
  "data-testid": "merge-tag-picker-modal",
3552
3694
  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)]",
3553
3695
  style: S(T(l))
3554
3696
  }, [
3555
- _("header", gc, [_("h2", {
3556
- id: `${Mc}-title`,
3697
+ _("header", Fc, [_("h2", {
3698
+ id: `${Zc}-title`,
3557
3699
  class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
3558
- }, D(T(s).mergeTag.picker.title), 9, _c), _("button", {
3700
+ }, D(T(s).mergeTag.picker.title), 9, Ic), _("button", {
3559
3701
  type: "button",
3560
3702
  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)]",
3561
3703
  "aria-label": T(s).mergeTag.picker.close,
3562
3704
  "data-testid": "merge-tag-picker-close",
3563
- onClick: te
3564
- }, [k(T(ut), {
3705
+ onClick: ee
3706
+ }, [k(T(dt), {
3565
3707
  size: 16,
3566
3708
  "stroke-width": 2
3567
- })], 8, vc)]),
3568
- _("div", yc, [k(T(qe), {
3709
+ })], 8, Lc)]),
3710
+ _("div", Rc, [k(T(Xe), {
3569
3711
  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)]",
3570
3712
  size: 14,
3571
3713
  "stroke-width": 2
3572
3714
  }), t(_("input", {
3573
- id: `${Mc}-search`,
3715
+ id: `${Zc}-search`,
3574
3716
  ref_key: "searchInputRef",
3575
3717
  ref: w,
3576
3718
  "onUpdate:modelValue": r[0] ||= (e) => m.value = e,
@@ -3578,50 +3720,50 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3578
3720
  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)]",
3579
3721
  placeholder: T(s).mergeTag.picker.searchPlaceholder,
3580
3722
  "aria-label": T(s).mergeTag.picker.searchAriaLabel,
3581
- "aria-controls": Mc,
3582
- "aria-activedescendant": ce(),
3723
+ "aria-controls": Zc,
3724
+ "aria-activedescendant": oe(),
3583
3725
  "data-testid": "merge-tag-picker-search",
3584
3726
  onKeydown: r[1] ||= E(h(() => {}, ["prevent"]), ["enter"])
3585
- }, null, 40, bc), [[f, m.value]])]),
3586
- fe.value ? (e(), v("div", xc, [(e(!0), v(y, null, o(R.value, (t) => (e(), v("button", {
3727
+ }, null, 40, zc), [[f, m.value]])]),
3728
+ ue.value ? (e(), v("div", Bc, [(e(!0), v(y, null, o(R.value, (t) => (e(), v("button", {
3587
3729
  key: t,
3588
3730
  type: "button",
3589
3731
  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)]",
3590
3732
  "data-testid": "merge-tag-picker-group-pill",
3591
3733
  "data-group-name": t,
3592
- onClick: (e) => oe(t)
3593
- }, D(t), 9, Sc))), 128))])) : b("", !0),
3734
+ onClick: (e) => ie(t)
3735
+ }, D(t), 9, Vc))), 128))])) : b("", !0),
3594
3736
  _("div", {
3595
- id: Mc,
3737
+ id: Zc,
3596
3738
  ref_key: "listRef",
3597
- ref: re,
3739
+ ref: H,
3598
3740
  class: "tpl:relative tpl:max-h-[60vh] tpl:flex-1 tpl:overflow-y-auto",
3599
3741
  role: "listbox",
3600
3742
  "aria-label": T(s).mergeTag.picker.title,
3601
3743
  "data-testid": "merge-tag-picker-list"
3602
- }, [ue.value ? (e(), v("div", wc, D(T(s).mergeTag.picker.empty), 1)) : de.value ? (e(), v("div", Tc, D(T(s).mergeTag.picker.noResults), 1)) : (e(!0), v(y, { key: 2 }, o(ee.value, (t, n) => (e(), v(y, { key: n }, [t.kind === "header" ? (e(), v("button", {
3744
+ }, [ce.value ? (e(), v("div", Uc, D(T(s).mergeTag.picker.empty), 1)) : le.value ? (e(), v("div", Wc, D(T(s).mergeTag.picker.noResults), 1)) : (e(!0), v(y, { key: 2 }, o(z.value, (t, n) => (e(), v(y, { key: n }, [t.kind === "header" ? (e(), v("button", {
3603
3745
  key: 0,
3604
3746
  ref_for: !0,
3605
- ref: (e) => ie(t.group, e),
3747
+ ref: (e) => U(t.group, e),
3606
3748
  type: "button",
3607
3749
  "aria-expanded": !F(t.group),
3608
- "aria-controls": Mc,
3750
+ "aria-controls": Zc,
3609
3751
  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)]",
3610
3752
  "data-testid": "merge-tag-picker-group-header",
3611
3753
  "data-group-name": t.group,
3612
3754
  "data-group-collapsed": F(t.group) ? "true" : "false",
3613
3755
  onClick: (e) => I(t.group)
3614
3756
  }, [
3615
- k(T(tt), {
3757
+ k(T(qe), {
3616
3758
  size: 12,
3617
3759
  "stroke-width": 2,
3618
3760
  class: p(["tpl:transition-transform", F(t.group) ? "tpl:-rotate-90" : ""])
3619
3761
  }, null, 8, ["class"]),
3620
3762
  _("span", null, D(t.group), 1),
3621
- _("span", Dc, " (" + D(T(c)(T(s).mergeTag.picker.groupCount, { count: t.count })) + ") ", 1)
3622
- ], 8, Ec)) : (e(), v("button", {
3763
+ _("span", Kc, " (" + D(T(c)(T(s).mergeTag.picker.groupCount, { count: t.count })) + ") ", 1)
3764
+ ], 8, Gc)) : (e(), v("button", {
3623
3765
  key: 1,
3624
- id: le(t.index),
3766
+ id: se(t.index),
3625
3767
  type: "button",
3626
3768
  role: "option",
3627
3769
  "aria-selected": t.index === j.value,
@@ -3632,16 +3774,249 @@ var qa = { class: "tpl:mb-3.5" }, Ja = ["value"], Ya = ["value"], Xa = /* @__PUR
3632
3774
  class: p(["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", t.index === j.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)]"]),
3633
3775
  "data-testid": "merge-tag-picker-item",
3634
3776
  onMousemove: (e) => j.value = t.index,
3635
- onClick: (e) => B(t.tag)
3777
+ onClick: (e) => V(t.tag)
3778
+ }, [
3779
+ _("span", Jc, D(t.tag.label), 1),
3780
+ _("span", Yc, D(t.tag.value), 1),
3781
+ t.tag.description ? (e(), v("span", Xc, D(t.tag.description), 1)) : b("", !0)
3782
+ ], 42, qc))], 64))), 128))], 8, Hc)
3783
+ ], 12, Pc)]),
3784
+ _: 1
3785
+ }, 8, ["visible"]));
3786
+ }
3787
+ }), $c = ["data-logic-keyword"], el = /* @__PURE__ */ m({
3788
+ __name: "LogicTagBadge",
3789
+ props: {
3790
+ value: {},
3791
+ syntax: {}
3792
+ },
3793
+ setup(t) {
3794
+ let n = t, r = g(() => F(n.value, n.syntax)), i = g(() => B(n.value, n.syntax));
3795
+ return (t, n) => r.value ? (e(), v("span", {
3796
+ key: 0,
3797
+ class: "tpl:inline-flex tpl:flex-shrink-0 tpl:items-center tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:leading-none tpl:font-bold tpl:tracking-wide tpl:uppercase",
3798
+ style: {
3799
+ border: "1.5px solid\n color-mix(in srgb, var(--tpl-primary) 50%, transparent)",
3800
+ color: "var(--tpl-primary)"
3801
+ },
3802
+ "data-testid": "merge-tag-logic-badge",
3803
+ "data-logic-keyword": i.value
3804
+ }, D(i.value), 9, $c)) : b("", !0);
3805
+ }
3806
+ }), tl = ["aria-labelledby", "data-tpl-theme"], nl = { 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" }, rl = ["id"], il = ["aria-label"], al = { class: "tpl:relative tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-3 tpl:py-2.5" }, ol = [
3807
+ "id",
3808
+ "placeholder",
3809
+ "aria-label",
3810
+ "aria-activedescendant"
3811
+ ], sl = ["aria-label"], cl = {
3812
+ key: 0,
3813
+ class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3814
+ "data-testid": "logic-picker-empty"
3815
+ }, ll = {
3816
+ key: 1,
3817
+ class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]",
3818
+ "data-testid": "logic-picker-empty"
3819
+ }, ul = ["data-group-name"], dl = [
3820
+ "id",
3821
+ "aria-selected",
3822
+ "data-selected",
3823
+ "data-logic-index",
3824
+ "data-logic-kind",
3825
+ "onMousemove",
3826
+ "onClick"
3827
+ ], fl = { class: "tpl:flex tpl:w-full tpl:items-center tpl:justify-between tpl:gap-2" }, pl = { class: "tpl:text-sm tpl:font-medium" }, ml = {
3828
+ key: 0,
3829
+ class: "tpl:flex tpl:items-center"
3830
+ }, hl = {
3831
+ key: 1,
3832
+ class: "tpl:flex tpl:items-center tpl:gap-1"
3833
+ }, gl = { class: "tpl:line-clamp-2 tpl:font-mono tpl:text-xs tpl:text-ellipsis tpl:break-all tpl:text-[var(--tpl-text-dim)]" }, _l = {
3834
+ key: 0,
3835
+ class: "tpl:line-clamp-2 tpl:text-xs tpl:text-ellipsis tpl:text-[var(--tpl-text-dim)]"
3836
+ }, vl = "tpl-logic-picker-list", yl = /* @__PURE__ */ m({
3837
+ __name: "LogicTagPickerModal",
3838
+ setup(r) {
3839
+ let i = Oe(We, "LogicTagPickerModal"), { t: s } = W(), c = A(je, L.liquid), l = A(Ae, null), d = A(De, null), m = u(""), x = Te(m, 200), w = u(null), O = g(() => x.value.trim().length > 0), j = u(0);
3840
+ function N(e) {
3841
+ let t = x.value.trim().toLowerCase();
3842
+ return t ? e.filter(Boolean).join(" ").toLowerCase().includes(t) : !0;
3843
+ }
3844
+ let P = g(() => i.tags.value.filter((e) => N([
3845
+ e.label,
3846
+ e.value,
3847
+ e.description
3848
+ ]))), F = g(() => i.pairs.value.filter((e) => N([
3849
+ e.label,
3850
+ e.before,
3851
+ e.after,
3852
+ e.description
3853
+ ]))), I = g(() => [...F.value.map((e) => ({
3854
+ kind: "pair",
3855
+ pair: e,
3856
+ group: e.group
3857
+ })), ...P.value.map((e) => ({
3858
+ kind: "tag",
3859
+ tag: e,
3860
+ group: e.group
3861
+ }))]), R = g(() => i.tags.value.some((e) => !!e.group) || i.pairs.value.some((e) => !!e.group));
3862
+ function z(e) {
3863
+ let t = s.logicTag.picker.otherGroup, n = /* @__PURE__ */ new Map(), r = [];
3864
+ for (let i of e) {
3865
+ let e = i.group ?? t;
3866
+ n.has(e) || (n.set(e, []), r.push(e)), n.get(e).push(i);
3867
+ }
3868
+ return r.map((e) => [e, n.get(e)]);
3869
+ }
3870
+ let B = g(() => {
3871
+ let e = [], t = [], n = 0, r = (r) => {
3872
+ r.kind === "tag" ? (e.push({
3873
+ kind: "tag",
3874
+ tag: r.tag,
3875
+ index: n
3876
+ }), t.push(r.tag)) : (e.push({
3877
+ kind: "pair",
3878
+ pair: r.pair,
3879
+ index: n
3880
+ }), t.push(r.pair)), n++;
3881
+ }, i = I.value;
3882
+ if (O.value || !R.value) for (let e of i) r(e);
3883
+ else for (let [t, n] of z(i)) {
3884
+ e.push({
3885
+ kind: "header",
3886
+ label: t
3887
+ });
3888
+ for (let e of n) r(e);
3889
+ }
3890
+ return {
3891
+ rows: e,
3892
+ items: t
3893
+ };
3894
+ }), V = g(() => B.value.items), ee = g(() => i.tags.value.length === 0 && i.pairs.value.length === 0), te = g(() => !ee.value && V.value.length === 0);
3895
+ a(() => i.isOpen.value, (e) => {
3896
+ e && (m.value = "", j.value = 0, n(() => w.value?.focus()));
3897
+ }), a(V, (e) => {
3898
+ j.value >= e.length && (j.value = Math.max(0, e.length - 1));
3899
+ });
3900
+ let H = u(null);
3901
+ function ne(e) {
3902
+ i.resolve(e);
3903
+ }
3904
+ function U() {
3905
+ i.resolve(null);
3906
+ }
3907
+ function re(e) {
3908
+ V.value.length !== 0 && (j.value = Math.max(0, Math.min(V.value.length - 1, j.value + e)), n(() => {
3909
+ H.value?.querySelector(`[data-logic-index="${j.value}"]`)?.scrollIntoView({ block: "nearest" });
3910
+ }));
3911
+ }
3912
+ function ie(e) {
3913
+ if (e.key === "ArrowDown") e.preventDefault(), re(1);
3914
+ else if (e.key === "ArrowUp") e.preventDefault(), re(-1);
3915
+ else if (e.key === "Enter") {
3916
+ e.preventDefault();
3917
+ let t = V.value[j.value];
3918
+ t && ne(t);
3919
+ }
3920
+ }
3921
+ function ae(e) {
3922
+ return `${vl}-opt-${e}`;
3923
+ }
3924
+ function oe() {
3925
+ return V.value.length === 0 ? void 0 : `${vl}-opt-${j.value}`;
3926
+ }
3927
+ return (n, r) => (e(), C(Et, {
3928
+ visible: T(i).isOpen.value,
3929
+ onClose: U,
3930
+ onKeydown: ie
3931
+ }, {
3932
+ default: M(() => [_("div", {
3933
+ role: "dialog",
3934
+ "aria-modal": "true",
3935
+ "aria-labelledby": `${vl}-title`,
3936
+ "data-tpl-theme": T(d),
3937
+ "data-testid": "logic-picker-modal",
3938
+ 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)]",
3939
+ style: S(T(l))
3940
+ }, [
3941
+ _("header", nl, [_("h2", {
3942
+ id: `${vl}-title`,
3943
+ class: "tpl:m-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
3944
+ }, D(T(s).logicTag.picker.title), 9, rl), _("button", {
3945
+ type: "button",
3946
+ 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)]",
3947
+ "aria-label": T(s).logicTag.picker.close,
3948
+ "data-testid": "logic-picker-close",
3949
+ onClick: U
3950
+ }, [k(T(dt), {
3951
+ size: 16,
3952
+ "stroke-width": 2
3953
+ })], 8, il)]),
3954
+ _("div", al, [k(T(Xe), {
3955
+ 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)]",
3956
+ size: 14,
3957
+ "stroke-width": 2
3958
+ }), t(_("input", {
3959
+ id: `${vl}-search`,
3960
+ ref_key: "searchInputRef",
3961
+ ref: w,
3962
+ "onUpdate:modelValue": r[0] ||= (e) => m.value = e,
3963
+ type: "text",
3964
+ 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)]",
3965
+ placeholder: T(s).logicTag.picker.searchPlaceholder,
3966
+ "aria-label": T(s).logicTag.picker.searchAriaLabel,
3967
+ "aria-controls": vl,
3968
+ "aria-activedescendant": oe(),
3969
+ "data-testid": "logic-picker-search",
3970
+ onKeydown: r[1] ||= E(h(() => {}, ["prevent"]), ["enter"])
3971
+ }, null, 40, ol), [[f, m.value]])]),
3972
+ _("div", {
3973
+ id: vl,
3974
+ ref_key: "listRef",
3975
+ ref: H,
3976
+ class: "tpl:relative tpl:max-h-[60vh] tpl:flex-1 tpl:overflow-y-auto",
3977
+ role: "listbox",
3978
+ "aria-label": T(s).logicTag.picker.title,
3979
+ "data-testid": "logic-picker-list"
3980
+ }, [ee.value ? (e(), v("div", cl, D(T(s).logicTag.picker.empty), 1)) : te.value ? (e(), v("div", ll, D(T(s).logicTag.picker.noResults), 1)) : (e(!0), v(y, { key: 2 }, o(B.value.rows, (t, n) => (e(), v(y, { key: n }, [t.kind === "header" ? (e(), v("div", {
3981
+ key: 0,
3982
+ class: "tpl:px-3 tpl:pt-2.5 tpl:pb-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-dim)]",
3983
+ "data-testid": "logic-picker-header",
3984
+ "data-group-name": t.label
3985
+ }, D(t.label), 9, ul)) : (e(), v("button", {
3986
+ key: 1,
3987
+ id: ae(t.index),
3988
+ type: "button",
3989
+ role: "option",
3990
+ "aria-selected": t.index === j.value,
3991
+ "data-selected": t.index === j.value ? "true" : "false",
3992
+ "data-logic-index": t.index,
3993
+ "data-logic-kind": t.kind,
3994
+ class: p(["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", t.index === j.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)]"]),
3995
+ "data-testid": "logic-picker-item",
3996
+ onMousemove: (e) => j.value = t.index,
3997
+ onClick: (e) => ne(t.kind === "tag" ? t.tag : t.pair)
3636
3998
  }, [
3637
- _("span", kc, D(t.tag.label), 1),
3638
- _("span", Ac, D(t.tag.value), 1),
3639
- t.tag.description ? (e(), v("span", jc, D(t.tag.description), 1)) : b("", !0)
3640
- ], 42, Oc))], 64))), 128))], 8, Cc)
3641
- ], 12, hc)]),
3999
+ _("span", fl, [_("span", pl, D(t.kind === "tag" ? t.tag.label : t.pair.label), 1), t.kind === "tag" ? (e(), v("span", ml, [k(el, {
4000
+ value: t.tag.value,
4001
+ syntax: T(c)
4002
+ }, null, 8, ["value", "syntax"])])) : (e(), v("span", hl, [
4003
+ k(el, {
4004
+ value: t.pair.before,
4005
+ syntax: T(c)
4006
+ }, null, 8, ["value", "syntax"]),
4007
+ r[2] ||= _("span", { class: "tpl:text-[var(--tpl-text-dim)]" }, "…", -1),
4008
+ k(el, {
4009
+ value: t.pair.after,
4010
+ syntax: T(c)
4011
+ }, null, 8, ["value", "syntax"])
4012
+ ]))]),
4013
+ _("span", gl, D(t.kind === "tag" ? t.tag.value : `${t.pair.before} … ${t.pair.after}`), 1),
4014
+ (t.kind === "tag" ? t.tag.description : t.pair.description) ? (e(), v("span", _l, D(t.kind === "tag" ? t.tag.description : t.pair.description), 1)) : b("", !0)
4015
+ ], 42, dl))], 64))), 128))], 8, sl)
4016
+ ], 12, tl)]),
3642
4017
  _: 1
3643
4018
  }, 8, ["visible"]));
3644
4019
  }
3645
4020
  });
3646
4021
  //#endregion
3647
- export { sc as a, cn as c, zt as d, Pt as f, lc as i, Zt as l, mc as n, ic as o, dc as r, $s as s, Nc as t, Xt as u };
4022
+ export { Oc as a, vc as c, Qt as d, Vt as f, Ac as i, un as l, Qc as n, Ec as o, Ft as p, Nc as r, Cc as s, yl as t, $t as u };