@templatical/editor 0.14.0 → 0.15.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 (152) hide show
  1. package/dist/{AiChatSidebar-J8iO_sX7.js → AiChatSidebar-BIKvYREk.js} +57 -56
  2. package/dist/{AiFeatureMenu-F2diEDgV.js → AiFeatureMenu-QbD82crt.js} +20 -20
  3. package/dist/{BlockIssueBadge-a-qlByxF.js → BlockIssueBadge-B3xVgMTh.js} +11 -11
  4. package/dist/{CloudEditor-CDjtwb4i.js → CloudEditor-DptuSf7A.js} +470 -468
  5. package/dist/{CollaboratorBar-B_EnJLtW.js → CollaboratorBar-DrA_K69w.js} +20 -20
  6. package/dist/{CommentsSidebar-DaP9BA_r.js → CommentsSidebar-D_tSGvTX.js} +154 -153
  7. package/dist/CountdownBlock-apiYUhkQ.js +92 -0
  8. package/dist/CountdownToolbar-CS0axcjz.js +210 -0
  9. package/dist/{DesignReferenceSidebar-BHRlTqlT.js → DesignReferenceSidebar-DWYK9nTk.js} +58 -57
  10. package/dist/{IssuesPanel-u7ee3Wrl.js → IssuesPanel-CR1MPaDE.js} +40 -40
  11. package/dist/{LoadingTrack-CV3ID80N.js → LoadingTrack-DsecR8Rw.js} +1 -1
  12. package/dist/MergeTagSuggestion-CH2SUxBo.js +1327 -0
  13. package/dist/{ModuleBrowserModal-DOsdaS6s.js → ModuleBrowserModal-D45rBj5C.js} +60 -59
  14. package/dist/{ModulePreviewCanvas-Cx4MOJ0X.js → ModulePreviewCanvas-BiQ6B2-l.js} +29 -29
  15. package/dist/{NumberWithSuffix-D2mW_DhT.js → NumberWithSuffix-CrA6quxx.js} +143 -142
  16. package/dist/{ParagraphEditor-DMzkVnST.js → ParagraphEditor-1NaUJpZO.js} +247 -246
  17. package/dist/{RichTextEditorContent-CRCxCwKf.js → RichTextEditorContent-BqLHIZY7.js} +45 -44
  18. package/dist/{SaveModuleDialog-DuEKgumL.js → SaveModuleDialog-B0sPOTgO.js} +38 -37
  19. package/dist/{SnapshotHistory-CVgiNJtE.js → SnapshotHistory-DslVzmSb.js} +34 -33
  20. package/dist/{TemplateScoringPanel-lm0_9nYi.js → TemplateScoringPanel-CZ62rGHz.js} +83 -82
  21. package/dist/{TestEmailModal-WBMdiW5S.js → TestEmailModal-DWGniJVu.js} +22 -21
  22. package/dist/{TitleEditor-eyT0h-Sa.js → TitleEditor-D4t_gZZJ.js} +44 -44
  23. package/dist/{TplModal-tjQ7OB0g.js → TplModal-Br2VG6cn.js} +14 -13
  24. package/dist/{blockTypeIcons-DdB3uTKD.js → blockTypeIcons-CXhCS5WV.js} +2 -2
  25. package/dist/bundle-stats.json +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js → AiFeatureMenu-3Slo_LGA.js} +5 -5
  27. package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js.map → AiFeatureMenu-3Slo_LGA.js.map} +1 -1
  28. package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js → BlockIssueBadge-BxwEiiF3.js} +3 -3
  29. package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js.map → BlockIssueBadge-BxwEiiF3.js.map} +1 -1
  30. package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js → CloudEditor-DFIFWD9G.js} +89 -89
  31. package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js.map → CloudEditor-DFIFWD9G.js.map} +1 -1
  32. package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js → CollaboratorBar-Cu3vuN66.js} +4 -4
  33. package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js.map → CollaboratorBar-Cu3vuN66.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js → CountdownBlock-BEVAJQtQ.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js.map → CountdownBlock-BEVAJQtQ.js.map} +1 -1
  36. package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js → CountdownToolbar-CI2sQZv5.js} +4 -4
  37. package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js.map → CountdownToolbar-CI2sQZv5.js.map} +1 -1
  38. package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js → IssuesPanel-BdeDoTcn.js} +4 -4
  39. package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js.map → IssuesPanel-BdeDoTcn.js.map} +1 -1
  40. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js +213 -0
  41. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js.map +1 -0
  42. package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js → ModuleBrowserModal-Dz-I5zfj.js} +6 -6
  43. package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js.map → ModuleBrowserModal-Dz-I5zfj.js.map} +1 -1
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js → ModulePreviewCanvas-BfinyuAN.js} +3 -3
  45. package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js.map → ModulePreviewCanvas-BfinyuAN.js.map} +1 -1
  46. package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js → NumberWithSuffix-CDjEa08X.js} +6 -6
  47. package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js.map → NumberWithSuffix-CDjEa08X.js.map} +1 -1
  48. package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js → ParagraphEditor-B3fG0vge.js} +22 -22
  49. package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js.map → ParagraphEditor-B3fG0vge.js.map} +1 -1
  50. package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js → RichTextEditorContent-C6YPCp9j.js} +4 -4
  51. package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js.map → RichTextEditorContent-C6YPCp9j.js.map} +1 -1
  52. package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js → SaveModuleDialog-C6UIIVAM.js} +3 -3
  53. package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js.map → SaveModuleDialog-C6UIIVAM.js.map} +1 -1
  54. package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js → TitleEditor-BiZbLYF1.js} +10 -10
  55. package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js.map → TitleEditor-BiZbLYF1.js.map} +1 -1
  56. package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js → blockTypeIcons-BernVG06.js} +3 -3
  57. package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js.map → blockTypeIcons-BernVG06.js.map} +1 -1
  58. package/dist/cdn/chunks/{draggable-kPCz_3zM.js → draggable-kG-D5Xsm.js} +6 -6
  59. package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +1 -0
  60. package/dist/cdn/chunks/extensions-Drp8UDc6.js +421 -0
  61. package/dist/cdn/chunks/extensions-Drp8UDc6.js.map +1 -0
  62. package/dist/cdn/chunks/{features-CkTMVylx.js → features-Dpczf9Su.js} +884 -835
  63. package/dist/cdn/chunks/features-Dpczf9Su.js.map +1 -0
  64. package/dist/cdn/chunks/{icons-9zjCuoJx.js → icons-CuxnJiGQ.js} +26 -26
  65. package/dist/cdn/chunks/{icons-9zjCuoJx.js.map → icons-CuxnJiGQ.js.map} +1 -1
  66. package/dist/cdn/chunks/{liquid.browser-DKKBzRQu.js → liquid.browser-BJOEu6Cg.js} +693 -678
  67. package/dist/cdn/chunks/liquid.browser-BJOEu6Cg.js.map +1 -0
  68. package/dist/cdn/chunks/{media-library-DMRIPx4g.js → media-library-CiYl_BO7.js} +33 -33
  69. package/dist/cdn/chunks/{media-library-DMRIPx4g.js.map → media-library-CiYl_BO7.js.map} +1 -1
  70. package/dist/cdn/chunks/{pusher-CdEqyLwF.js → pusher-CIwiKF8H.js} +4 -4
  71. package/dist/cdn/chunks/{pusher-CdEqyLwF.js.map → pusher-CIwiKF8H.js.map} +1 -1
  72. package/dist/cdn/chunks/{quality-CyeUgs_c.js → quality-CNjGxBG0.js} +112 -112
  73. package/dist/cdn/chunks/{quality-CyeUgs_c.js.map → quality-CNjGxBG0.js.map} +1 -1
  74. package/dist/cdn/chunks/{renderer-BIKUEKDD.js → renderer-CFkg8h-K.js} +20 -20
  75. package/dist/cdn/chunks/renderer-CFkg8h-K.js.map +1 -0
  76. package/dist/cdn/chunks/{src-pDy_imWG.js → src-DRpKu4Dy.js} +5 -5
  77. package/dist/cdn/chunks/{src-pDy_imWG.js.map → src-DRpKu4Dy.js.map} +1 -1
  78. package/dist/cdn/chunks/{styles-D4Bd3SCx.js → styles-B7wryV0l.js} +1484 -1344
  79. package/dist/cdn/chunks/styles-B7wryV0l.js.map +1 -0
  80. package/dist/cdn/chunks/{tiptap-BlLFFU3M.js → tiptap-DF9PEiqH.js} +6859 -6823
  81. package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +1 -0
  82. package/dist/cdn/editor.css +1 -1
  83. package/dist/cdn/editor.js +35 -35
  84. package/dist/cdn/editor.js.map +1 -1
  85. package/dist/{check-CYJwFmjy.js → check-rl7ok6uJ.js} +1 -1
  86. package/dist/{chevron-down-C5l-DzAA.js → chevron-down-BKe__NOD.js} +1 -1
  87. package/dist/{circle-alert-wf5HUFZY.js → circle-alert-C8xmpMsK.js} +1 -1
  88. package/dist/{clock-Bj0bQw-K.js → clock-BW4JuDCN.js} +1 -1
  89. package/dist/{cloud-CoFDm9YA.js → cloud-BQusL53H.js} +208 -208
  90. package/dist/createLucideIcon-Dx-EjR9r.js +43 -0
  91. package/dist/{dist-CLpPNKy9.js → dist-B5Sov3sS.js} +7 -7
  92. package/dist/dist-BEWiuOMi.js +251 -0
  93. package/dist/{dist-CrQZ_af9.js → dist-BFmE-7hB.js} +2 -2
  94. package/dist/{dist-U5vfDdYI.js → dist-BMoa33wT.js} +2 -2
  95. package/dist/{dist-BctFrpeA.js → dist-BibU4HNl.js} +74 -65
  96. package/dist/{dist-Dd3ibRZm.js → dist-BsCGIDSt.js} +103 -102
  97. package/dist/dist-CNLKj9wa.js +5 -0
  98. package/dist/{dist-BX3gGwL8.js → dist-CNXDNYQn.js} +728 -694
  99. package/dist/{dist-Bn703mnA.js → dist-COG3IdPK.js} +3 -3
  100. package/dist/{dist-B7w6xTU6.js → dist-CQZxDvFw.js} +3 -3
  101. package/dist/{dist-34OcyoK1.js → dist-CRsjOQM-.js} +2 -2
  102. package/dist/dist-CTT6WYJ6.js +134 -0
  103. package/dist/dist-Cqa6aeAJ.js +5 -0
  104. package/dist/{dist-ChMninLH.js → dist-SXJJ2v41.js} +2 -2
  105. package/dist/{dist-CyjyYg52.js → dist-itdjZraK.js} +28 -23
  106. package/dist/extensions-DwaZAqm6.js +423 -0
  107. package/dist/{image-up-x8-WXfsx.js → image-up-BwBCmQ4P.js} +1 -1
  108. package/dist/{info-RS_fGcGi.js → info-TCn7uWR5.js} +1 -1
  109. package/dist/{keys-DgYXDafq.js → keys-Cv8-8GsD.js} +1 -1
  110. package/dist/{liquid.browser-CVjP5Mex.js → liquid.browser-DZLtv26k.js} +692 -677
  111. package/dist/{list-checks-Bf7XdDyv.js → list-checks-CSrOWNgq.js} +1 -1
  112. package/dist/{loader-circle-CLZ0_FvW.js → loader-circle-BLmicnPG.js} +1 -1
  113. package/dist/{message-circle-B-1bN9ab.js → message-circle-C9hHMQCI.js} +1 -1
  114. package/dist/{refresh-cw-CWKWqJYG.js → refresh-cw-D1JQ1LNa.js} +1 -1
  115. package/dist/runtime-dom.esm-bundler-BzuoCyNp.js +523 -0
  116. package/dist/{scan-line-BtK5dEai.js → scan-line-DgijVq9y.js} +1 -1
  117. package/dist/{send-Cn1IUdzh.js → send-DjPdq69F.js} +1 -1
  118. package/dist/{shield-check-CrvMk4Ea.js → shield-check-Bqluu8FS.js} +1 -1
  119. package/dist/{sparkles-CgfjwvnG.js → sparkles-M4azPVSP.js} +1 -1
  120. package/dist/style.css +1 -1
  121. package/dist/styles-D7fQ7f_1.js +4164 -0
  122. package/dist/templatical-editor.js +127 -126
  123. package/dist/{text-align-start-C3r_Rnvy.js → text-align-start-CMya5pCQ.js} +11 -11
  124. package/dist/{trash-2-CjERg4x9.js → trash-2-C-81rkLS.js} +1 -1
  125. package/dist/{triangle-alert-Chkny574.js → triangle-alert-BuRWnynk.js} +1 -1
  126. package/dist/{upload-e5kDRkPb.js → upload-CWBIoLd4.js} +1 -1
  127. package/dist/{useAliveFlag-cUQj9rmB.js → useAliveFlag-CECL_OUb.js} +1 -1
  128. package/dist/{useCloudI18n-CYJKqXtI.js → useCloudI18n-AKCy98qD.js} +2 -2
  129. package/dist/{useEditorCore-8JxXDOA4.js → useEditorCore-vcWLdnjN.js} +1406 -1364
  130. package/dist/{useI18n-BWqM8i78.js → useI18n-C-TDeJBt.js} +2 -2
  131. package/dist/{useMergeTag-NHC4ylza.js → useMergeTag-DSrBY0-2.js} +5 -5
  132. package/dist/usePopoverRoot-DKUDnr55.js +8 -0
  133. package/dist/{vue.runtime.esm-bundler-BPa483TZ.js → vue.runtime.esm-bundler-l0XAqiyv.js} +626 -1147
  134. package/dist/{x-DiPIbccg.js → x-CQSvXnGR.js} +1 -1
  135. package/package.json +26 -26
  136. package/dist/CountdownBlock-DtAokAVw.js +0 -92
  137. package/dist/CountdownToolbar-Dtqgwy0g.js +0 -210
  138. package/dist/cdn/chunks/draggable-kPCz_3zM.js.map +0 -1
  139. package/dist/cdn/chunks/extensions-iwBXnEwq.js +0 -605
  140. package/dist/cdn/chunks/extensions-iwBXnEwq.js.map +0 -1
  141. package/dist/cdn/chunks/features-CkTMVylx.js.map +0 -1
  142. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +0 -1
  143. package/dist/cdn/chunks/renderer-BIKUEKDD.js.map +0 -1
  144. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +0 -1
  145. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +0 -1
  146. package/dist/createLucideIcon-Bad2kKE0.js +0 -43
  147. package/dist/dist-CADDCv0o.js +0 -5
  148. package/dist/dist-CGvz7vkq.js +0 -5
  149. package/dist/dist-DuCzdgDA.js +0 -382
  150. package/dist/extensions-J439b7y7.js +0 -1720
  151. package/dist/styles-BUwDOWd3.js +0 -4022
  152. package/dist/usePopoverRoot-B1sdY4es.js +0 -8
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t } from "./rolldown-runtime-Dqa2HsxW.js";
2
- import { $ as n, A as r, B as i, C as a, F as o, G as s, H as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, S as _, T as v, U as y, V as b, X as x, Y as S, Z as C, a as w, at as T, b as E, c as ee, ct as D, d as te, et as ne, f as O, g as k, h as A, it as j, k as re, l as M, m as N, n as ie, nt as P, o as ae, ot as F, p as I, rt as oe, s as se, st as L, t as ce, u as R, v as z, w as le, x as B, y as V, z as H } from "./draggable-kPCz_3zM.js";
2
+ import { $ as n, A as r, B as i, C as a, F as o, G as s, H as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, S as _, T as v, U as y, V as b, X as x, Y as S, Z as C, a as w, at as T, b as E, c as ee, ct as D, d as te, et as ne, f as O, g as k, h as A, it as j, k as re, l as M, m as N, n as ie, nt as P, o as ae, ot as F, p as I, rt as oe, s as se, st as L, t as ce, u as R, v as z, w as le, x as B, y as V, z as H } from "./draggable-kG-D5Xsm.js";
3
3
  //#region src/constants/timeouts.ts
4
4
  var ue = 3e4, de = 4e3, fe = 5e3, pe = {
5
5
  1: 36,
@@ -432,45 +432,54 @@ var dt = {
432
432
  handlebars: "{{",
433
433
  mailchimp: "*|",
434
434
  ampscript: "%%="
435
+ }, pt = {
436
+ liquid: "}}",
437
+ handlebars: "}}",
438
+ mailchimp: "|*",
439
+ ampscript: "=%%"
435
440
  };
436
- function pt(e) {
441
+ function mt(e) {
437
442
  for (let t of Object.keys(dt)) if (dt[t].value.source === e.value.source) return ft[t];
438
443
  return null;
439
444
  }
440
- function mt(e) {
445
+ function ht(e) {
446
+ for (let t of Object.keys(dt)) if (dt[t].value.source === e.value.source) return pt[t];
447
+ return null;
448
+ }
449
+ function gt(e) {
441
450
  return e ? typeof e == "string" ? dt[e] ?? dt.liquid : e : dt.liquid;
442
451
  }
443
- function ht(e) {
452
+ function _t(e) {
444
453
  let t = e.source, n = e.flags.replace("g", "");
445
454
  return RegExp(`^${t}$`, n);
446
455
  }
447
- function gt(e, t) {
456
+ function vt(e, t) {
448
457
  let n = e?.trim() || "";
449
- return ht(t.logic).test(n) ? !1 : ht(t.value).test(n);
458
+ return !_t(t.logic).test(n) && _t(t.value).test(n);
450
459
  }
451
- function _t(e, t) {
460
+ function yt(e, t) {
452
461
  let n = t.find((t) => t.value === e);
453
462
  return n ? n.label : e;
454
463
  }
455
- function vt(e, t) {
456
- return Ct(e, "data-merge-tag", (e) => _t(e, t));
464
+ function bt(e, t) {
465
+ return Tt(e, "data-merge-tag", (e) => yt(e, t));
457
466
  }
458
- function yt(e, t) {
467
+ function xt(e, t) {
459
468
  if (!e) return !1;
460
469
  let n = new RegExp(t.value.source, t.value.flags), r = new RegExp(t.logic.source, t.logic.flags);
461
470
  return n.test(e) || r.test(e);
462
471
  }
463
- function bt(e, t) {
464
- return ht(t.logic).test(e?.trim() || "");
472
+ function St(e, t) {
473
+ return _t(t.logic).test(e?.trim() || "");
465
474
  }
466
- function xt(e, t) {
475
+ function Ct(e, t) {
467
476
  let n = new RegExp(t.logic.source, t.logic.flags.replace("g", "")), r = e.match(n);
468
477
  return r && r[1] ? r[1].toUpperCase() : e;
469
478
  }
470
- function St(e, t) {
471
- return Ct(e, "data-logic-merge-tag", (e) => xt(e, t));
479
+ function wt(e, t) {
480
+ return Tt(e, "data-logic-merge-tag", (e) => Ct(e, t));
472
481
  }
473
- function Ct(e, t, n) {
482
+ function Tt(e, t, n) {
474
483
  let r = RegExp(`(?:^|\\s)${t}="([^"<>]*)"`), i = "", a = 0;
475
484
  for (; a < e.length;) {
476
485
  let t = e.indexOf("<span", a);
@@ -505,7 +514,7 @@ function Ct(e, t, n) {
505
514
  }
506
515
  //#endregion
507
516
  //#region ../types/src/config.ts
508
- var wt = class extends Error {
517
+ var Et = class extends Error {
509
518
  statusCode;
510
519
  constructor(e, t) {
511
520
  super(e), this.statusCode = t, this.name = "SdkError";
@@ -522,10 +531,10 @@ var wt = class extends Error {
522
531
  };
523
532
  //#endregion
524
533
  //#region ../core/src/editor.ts
525
- function Tt(e) {
534
+ function Dt(e) {
526
535
  return e === "1" ? 1 : e === "3" ? 3 : 2;
527
536
  }
528
- function Et(e) {
537
+ function Ot(e) {
529
538
  let t = S({
530
539
  content: e.content ?? We(e.defaultFontFamily, e.templateDefaults),
531
540
  selectedBlockId: null,
@@ -616,7 +625,7 @@ function Et(e) {
616
625
  if (s(n)) return;
617
626
  let o = i(t.content.blocks, n);
618
627
  if (o && o.type === "section") {
619
- if (r < 0 || r >= Tt(o.columns)) return;
628
+ if (r < 0 || r >= Dt(o.columns)) return;
620
629
  o.children[r] = o.children[r] || [];
621
630
  let t = o.children[r];
622
631
  a !== void 0 && a < t.length ? t.splice(a, 0, e) : t.push(e);
@@ -649,7 +658,7 @@ function Et(e) {
649
658
  let u;
650
659
  if (r) {
651
660
  let e = i(t.content.blocks, r);
652
- if (!e || e.type !== "section" || a < 0 || a >= Tt(e.columns)) return;
661
+ if (!e || e.type !== "section" || a < 0 || a >= Dt(e.columns)) return;
653
662
  e.children[a] = e.children[a] || [], u = e.children[a];
654
663
  } else u = t.content.blocks;
655
664
  let [d] = c.blocks.splice(l, 1);
@@ -680,9 +689,9 @@ function Et(e) {
680
689
  }
681
690
  //#endregion
682
691
  //#region ../core/src/history.ts
683
- var Dt = 50, Ot = 300, kt = 1500;
684
- function At(e) {
685
- let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = Dt } = e, a = C([]), o = C([]), s = C(!1), c = null, l = null, u = y(() => a.value.length > 0), d = y(() => o.value.length > 0);
692
+ var kt = 50, At = 300, jt = 1500;
693
+ function Mt(e) {
694
+ let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = kt } = e, a = C([]), o = C([]), s = C(!1), c = null, l = null, u = y(() => a.value.length > 0), d = y(() => o.value.length > 0);
686
695
  function f() {
687
696
  return ut(t.value);
688
697
  }
@@ -700,21 +709,21 @@ function At(e) {
700
709
  if (l && l.blockId === e) {
701
710
  clearTimeout(l.timeoutId), l.timeoutId = setTimeout(() => {
702
711
  l = null;
703
- }, Ot);
712
+ }, At);
704
713
  return;
705
714
  }
706
715
  m(), p(f()), o.value = [], l = {
707
716
  blockId: e,
708
717
  timeoutId: setTimeout(() => {
709
718
  l = null;
710
- }, Ot)
719
+ }, At)
711
720
  };
712
721
  }
713
722
  }
714
723
  function _() {
715
724
  s.value = !0, c && clearTimeout(c), c = setTimeout(() => {
716
725
  s.value = !1, c = null;
717
- }, kt);
726
+ }, jt);
718
727
  }
719
728
  function v() {
720
729
  if (a.value.length === 0) return;
@@ -748,7 +757,7 @@ function At(e) {
748
757
  }
749
758
  //#endregion
750
759
  //#region ../core/src/block-actions.ts
751
- function jt(e) {
760
+ function Nt(e) {
752
761
  e.type === "table" ? e.rows = e.rows.map((e) => ({
753
762
  ...e,
754
763
  id: W(),
@@ -764,7 +773,7 @@ function jt(e) {
764
773
  id: W()
765
774
  })));
766
775
  }
767
- function Mt(e) {
776
+ function Pt(e) {
768
777
  let { addBlock: t, removeBlock: n, updateBlock: r, selectBlock: i, findBlockLocation: a } = e;
769
778
  function o(n, r, a) {
770
779
  let o = ct(n, e.blockDefaults);
@@ -772,9 +781,9 @@ function Mt(e) {
772
781
  }
773
782
  function s(e, n, r) {
774
783
  let o = JSON.parse(JSON.stringify(e));
775
- if (o.id = W(), jt(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
784
+ if (o.id = W(), Nt(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
776
785
  let t = JSON.parse(JSON.stringify(e));
777
- return t.id = W(), jt(t), t;
786
+ return t.id = W(), Nt(t), t;
778
787
  }))), n !== void 0 || r !== void 0) t(o, n, r);
779
788
  else {
780
789
  let i = a?.(e.id) ?? null;
@@ -797,7 +806,7 @@ function Mt(e) {
797
806
  }
798
807
  //#endregion
799
808
  //#region ../core/src/auto-save.ts
800
- function Nt(e) {
809
+ function Ft(e) {
801
810
  let { content: t, isDirty: n, onChange: r, debounce: i = 1e3, enabled: a = !0 } = e, o = null, s = !1;
802
811
  function c() {
803
812
  return typeof a == "function" ? a() : a;
@@ -835,7 +844,7 @@ function Nt(e) {
835
844
  }
836
845
  //#endregion
837
846
  //#region ../core/src/condition-preview.ts
838
- function Pt(e) {
847
+ function It(e) {
839
848
  let t = S(/* @__PURE__ */ new Set()), n = y(() => t.size > 0);
840
849
  function r(e) {
841
850
  return t.has(e);
@@ -855,7 +864,7 @@ function Pt(e) {
855
864
  }
856
865
  //#endregion
857
866
  //#region ../core/src/data-source-fetch.ts
858
- function Ft(e) {
867
+ function Lt(e) {
859
868
  let t = C(!1), n = C(!1), r = y(() => !!e.definition.value?.dataSource), i = y(() => r.value && !e.block.value.dataSourceFetched);
860
869
  async function a() {
861
870
  let r = e.definition.value;
@@ -887,7 +896,7 @@ function Ft(e) {
887
896
  }
888
897
  //#endregion
889
898
  //#region ../core/src/history-interceptor.ts
890
- function It(e, t) {
899
+ function Rt(e, t) {
891
900
  let n = e.addBlock, r = e.removeBlock, i = e.moveBlock, a = e.updateBlock, o = e.updateSettings;
892
901
  e.addBlock = (r, i, a, o) => {
893
902
  i && e.isBlockLocked(i) || (t.record(), n(r, i, a, o));
@@ -903,10 +912,10 @@ function It(e, t) {
903
912
  }
904
913
  //#endregion
905
914
  //#region ../../node_modules/.pnpm/@vueuse+shared@14.3.0_vue@3.5.39_typescript@6.0.3_/node_modules/@vueuse/shared/dist/index.js
906
- function Lt(e, t) {
915
+ function zt(e, t) {
907
916
  return s() ? (l(e, t), !0) : !1;
908
917
  }
909
- function Rt() {
918
+ function Bt() {
910
919
  let e = /* @__PURE__ */ new Set(), t = (t) => {
911
920
  e.delete(t);
912
921
  };
@@ -914,7 +923,7 @@ function Rt() {
914
923
  on: (n) => {
915
924
  e.add(n);
916
925
  let r = () => t(n);
917
- return Lt(r), { off: r };
926
+ return zt(r), { off: r };
918
927
  },
919
928
  off: t,
920
929
  trigger: (...t) => Promise.all(Array.from(e).map((e) => e(...t))),
@@ -923,18 +932,18 @@ function Rt() {
923
932
  }
924
933
  };
925
934
  }
926
- var zt = /* @__PURE__ */ new WeakMap(), Bt = (...e) => {
935
+ var Vt = /* @__PURE__ */ new WeakMap(), Ht = (...e) => {
927
936
  let t = e[0], n = _()?.proxy ?? s();
928
937
  if (n == null && !le()) throw Error("injectLocal must be called in setup");
929
- return n && zt.has(n) && t in zt.get(n) ? zt.get(n)[t] : v(...e);
930
- }, Vt = typeof window < "u" && typeof document < "u";
938
+ return n && Vt.has(n) && t in Vt.get(n) ? Vt.get(n)[t] : v(...e);
939
+ }, Ut = typeof window < "u" && typeof document < "u";
931
940
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
932
- var Ht = (e) => e != null, Ut = Object.prototype.toString, Wt = (e) => Ut.call(e) === "[object Object]", Gt = () => {}, Kt = (e, t) => Object.hasOwn(e, t), qt = /* @__PURE__ */ Jt();
933
- function Jt() {
941
+ var Wt = (e) => e != null, Gt = Object.prototype.toString, Kt = (e) => Gt.call(e) === "[object Object]", qt = () => {}, Jt = (e, t) => Object.hasOwn(e, t), Yt = /* @__PURE__ */ Xt();
942
+ function Xt() {
934
943
  var e, t;
935
- return Vt && !!(!((e = window) == null || (e = e.navigator) == null) && e.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((t = window) == null || (t = t.navigator) == null ? void 0 : t.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent));
944
+ return Ut && !!(!((e = window) == null || (e = e.navigator) == null) && e.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((t = window) == null || (t = t.navigator) == null ? void 0 : t.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent));
936
945
  }
937
- function Yt(e, t) {
946
+ function Zt(e, t) {
938
947
  function n(...n) {
939
948
  return new Promise((r, i) => {
940
949
  Promise.resolve(e(() => t.apply(this, n), {
@@ -946,10 +955,10 @@ function Yt(e, t) {
946
955
  }
947
956
  return n;
948
957
  }
949
- var Xt = (e) => e();
950
- function Zt(e, t = {}) {
951
- let n, r, i = Gt, a = (e) => {
952
- clearTimeout(e), i(), i = Gt;
958
+ var Qt = (e) => e();
959
+ function $t(e, t = {}) {
960
+ let n, r, i = qt, a = (e) => {
961
+ clearTimeout(e), i(), i = qt;
953
962
  }, o;
954
963
  return (s) => {
955
964
  let c = P(e), l = P(t.maxWait);
@@ -962,7 +971,7 @@ function Zt(e, t = {}) {
962
971
  });
963
972
  };
964
973
  }
965
- function Qt(e) {
974
+ function en(e) {
966
975
  let t;
967
976
  function n() {
968
977
  return t ||= e(), t;
@@ -972,32 +981,32 @@ function Qt(e) {
972
981
  t = void 0, e && await e;
973
982
  }, n;
974
983
  }
975
- function $t(e) {
984
+ function tn(e) {
976
985
  return e.endsWith("rem") ? Number.parseFloat(e) * 16 : Number.parseFloat(e);
977
986
  }
978
- function en(e) {
987
+ function nn(e) {
979
988
  return Array.isArray(e) ? e : [e];
980
989
  }
981
- function tn(e) {
990
+ function rn(e) {
982
991
  return e || _();
983
992
  }
984
- function nn(e, t = 200, n = {}) {
985
- return Yt(Zt(t, n), e);
993
+ function an(e, t = 200, n = {}) {
994
+ return Zt($t(t, n), e);
986
995
  }
987
- function rn(e, t = 200, n = {}) {
988
- let r = C(P(e)), i = nn(() => {
996
+ function on(e, t = 200, n = {}) {
997
+ let r = C(P(e)), i = an(() => {
989
998
  r.value = e.value;
990
999
  }, t, n);
991
1000
  return H(e, () => i()), g(r);
992
1001
  }
993
- function an(e, t, n = {}) {
994
- let { eventFilter: r = Xt, ...i } = n;
995
- return H(e, Yt(r, t), i);
1002
+ function sn(e, t, n = {}) {
1003
+ let { eventFilter: r = Qt, ...i } = n;
1004
+ return H(e, Zt(r, t), i);
996
1005
  }
997
- function on(e, t = !0, n) {
998
- tn(n) ? r(e, n) : t ? e() : m(e);
1006
+ function cn(e, t = !0, n) {
1007
+ rn(n) ? r(e, n) : t ? e() : m(e);
999
1008
  }
1000
- function sn(e, t = 1e3, r = {}) {
1009
+ function ln(e, t = 1e3, r = {}) {
1001
1010
  let { immediate: i = !0, immediateCallback: a = !1 } = r, o = null, s = n(!1);
1002
1011
  function c() {
1003
1012
  o &&= (clearInterval(o), null);
@@ -1009,15 +1018,15 @@ function sn(e, t = 1e3, r = {}) {
1009
1018
  let n = P(t);
1010
1019
  n <= 0 || (s.value = !0, a && e(), c(), s.value && (o = setInterval(e, n)));
1011
1020
  }
1012
- return i && Vt && d(), (u(t) || typeof t == "function") && Lt(H(t, () => {
1013
- s.value && Vt && d();
1014
- })), Lt(l), {
1021
+ return i && Ut && d(), (u(t) || typeof t == "function") && zt(H(t, () => {
1022
+ s.value && Ut && d();
1023
+ })), zt(l), {
1015
1024
  isActive: g(s),
1016
1025
  pause: l,
1017
1026
  resume: d
1018
1027
  };
1019
1028
  }
1020
- function cn(e, t, r = {}) {
1029
+ function un(e, t, r = {}) {
1021
1030
  let { immediate: i = !0, immediateCallback: a = !1 } = r, o = n(!1), s;
1022
1031
  function c() {
1023
1032
  s &&= (clearTimeout(s), void 0);
@@ -1030,13 +1039,13 @@ function cn(e, t, r = {}) {
1030
1039
  o.value = !1, s = void 0, e(...n);
1031
1040
  }, P(t));
1032
1041
  }
1033
- return i && (o.value = !0, Vt && u()), Lt(l), {
1042
+ return i && (o.value = !0, Ut && u()), zt(l), {
1034
1043
  isPending: g(o),
1035
1044
  start: u,
1036
1045
  stop: l
1037
1046
  };
1038
1047
  }
1039
- function ln(e = !1, t = {}) {
1048
+ function dn(e = !1, t = {}) {
1040
1049
  let { truthyValue: r = !0, falsyValue: i = !1 } = t, a = u(e), o = n(e);
1041
1050
  function s(e) {
1042
1051
  if (arguments.length) return o.value = e, o.value;
@@ -1047,14 +1056,14 @@ function ln(e = !1, t = {}) {
1047
1056
  }
1048
1057
  return a ? s : [o, s];
1049
1058
  }
1050
- function un(e, t, n = {}) {
1059
+ function fn(e, t, n = {}) {
1051
1060
  let { debounce: r = 0, maxWait: i = void 0, ...a } = n;
1052
- return an(e, t, {
1061
+ return sn(e, t, {
1053
1062
  ...a,
1054
- eventFilter: Zt(r, { maxWait: i })
1063
+ eventFilter: $t(r, { maxWait: i })
1055
1064
  });
1056
1065
  }
1057
- function dn(e, t, n) {
1066
+ function pn(e, t, n) {
1058
1067
  return H(e, t, {
1059
1068
  ...n,
1060
1069
  immediate: !0
@@ -1062,41 +1071,41 @@ function dn(e, t, n) {
1062
1071
  }
1063
1072
  //#endregion
1064
1073
  //#region ../../node_modules/.pnpm/@vueuse+core@14.3.0_vue@3.5.39_typescript@6.0.3_/node_modules/@vueuse/core/dist/index.js
1065
- var fn = Vt ? window : void 0, pn = Vt ? window.document : void 0, mn = Vt ? window.navigator : void 0;
1074
+ var mn = Ut ? window : void 0, hn = Ut ? window.document : void 0, gn = Ut ? window.navigator : void 0;
1066
1075
  function K(e) {
1067
1076
  let t = P(e);
1068
1077
  return t?.$el ?? t;
1069
1078
  }
1070
1079
  function q(...e) {
1071
1080
  let t = (e, t, n, r) => (e.addEventListener(t, n, r), () => e.removeEventListener(t, n, r)), n = O(() => {
1072
- let t = en(P(e[0])).filter((e) => e != null);
1081
+ let t = nn(P(e[0])).filter((e) => e != null);
1073
1082
  return t.every((e) => typeof e != "string") ? t : void 0;
1074
1083
  });
1075
- return dn(() => [
1076
- n.value?.map((e) => K(e)) ?? [fn].filter((e) => e != null),
1077
- en(P(n.value ? e[1] : e[0])),
1078
- en(j(n.value ? e[2] : e[1])),
1084
+ return pn(() => [
1085
+ n.value?.map((e) => K(e)) ?? [mn].filter((e) => e != null),
1086
+ nn(P(n.value ? e[1] : e[0])),
1087
+ nn(j(n.value ? e[2] : e[1])),
1079
1088
  P(n.value ? e[3] : e[2])
1080
1089
  ], ([e, n, r, i], a, o) => {
1081
1090
  if (!e?.length || !n?.length || !r?.length) return;
1082
- let s = Wt(i) ? { ...i } : i, c = e.flatMap((e) => n.flatMap((n) => r.map((r) => t(e, n, r, s))));
1091
+ let s = Kt(i) ? { ...i } : i, c = e.flatMap((e) => n.flatMap((n) => r.map((r) => t(e, n, r, s))));
1083
1092
  o(() => {
1084
1093
  c.forEach((e) => e());
1085
1094
  });
1086
1095
  }, { flush: "post" });
1087
1096
  }
1088
- var hn = !1;
1089
- function gn(e, t, n = {}) {
1090
- let { window: r = fn, ignore: i = [], capture: a = !0, detectIframe: o = !1, controls: s = !1 } = n;
1097
+ var _n = !1;
1098
+ function vn(e, t, n = {}) {
1099
+ let { window: r = mn, ignore: i = [], capture: a = !0, detectIframe: o = !1, controls: s = !1 } = n;
1091
1100
  if (!r) return s ? {
1092
- stop: Gt,
1093
- cancel: Gt,
1094
- trigger: Gt
1095
- } : Gt;
1096
- if (qt && !hn) {
1097
- hn = !0;
1101
+ stop: qt,
1102
+ cancel: qt,
1103
+ trigger: qt
1104
+ } : qt;
1105
+ if (Yt && !_n) {
1106
+ _n = !0;
1098
1107
  let e = { passive: !0 };
1099
- Array.from(r.document.body.children).forEach((t) => t.addEventListener("click", Gt, e)), r.document.documentElement.addEventListener("click", Gt, e);
1108
+ Array.from(r.document.body.children).forEach((t) => t.addEventListener("click", qt, e)), r.document.documentElement.addEventListener("click", qt, e);
1100
1109
  }
1101
1110
  let c = !0, l = (e) => P(i).some((t) => {
1102
1111
  if (typeof t == "string") return Array.from(r.document.querySelectorAll(t)).some((t) => t === e.target || e.composedPath().includes(t));
@@ -1153,21 +1162,21 @@ function gn(e, t, n = {}) {
1153
1162
  }
1154
1163
  } : h;
1155
1164
  }
1156
- function _n() {
1165
+ function yn() {
1157
1166
  let e = n(!1), t = _();
1158
1167
  return t && r(() => {
1159
1168
  e.value = !0;
1160
1169
  }, t), e;
1161
1170
  }
1162
1171
  /* @__NO_SIDE_EFFECTS__ */
1163
- function vn(e) {
1164
- return _n(), O(() => !!e());
1172
+ function bn(e) {
1173
+ return yn(), O(() => !!e());
1165
1174
  }
1166
- function yn(e, t, n = {}) {
1167
- let { window: r = fn, ...i } = n, a, o = /* @__PURE__ */ vn(() => r && "MutationObserver" in r), s = () => {
1175
+ function xn(e, t, n = {}) {
1176
+ let { window: r = mn, ...i } = n, a, o = /* @__PURE__ */ bn(() => r && "MutationObserver" in r), s = () => {
1168
1177
  a &&= (a.disconnect(), void 0);
1169
1178
  }, c = H(O(() => {
1170
- let t = en(P(e)).map(K).filter(Ht);
1179
+ let t = nn(P(e)).map(K).filter(Wt);
1171
1180
  return new Set(t);
1172
1181
  }), (e) => {
1173
1182
  s(), o.value && e.size && (a = new MutationObserver(t), e.forEach((e) => a.observe(e, i)));
@@ -1177,25 +1186,25 @@ function yn(e, t, n = {}) {
1177
1186
  }), l = () => a?.takeRecords(), u = () => {
1178
1187
  c(), s();
1179
1188
  };
1180
- return Lt(u), {
1189
+ return zt(u), {
1181
1190
  isSupported: o,
1182
1191
  stop: u,
1183
1192
  takeRecords: l
1184
1193
  };
1185
1194
  }
1186
- var bn = Symbol("vueuse-ssr-width");
1195
+ var Sn = Symbol("vueuse-ssr-width");
1187
1196
  /* @__NO_SIDE_EFFECTS__ */
1188
- function xn() {
1189
- let e = le() ? Bt(bn, null) : null;
1197
+ function Cn() {
1198
+ let e = le() ? Ht(Sn, null) : null;
1190
1199
  return typeof e == "number" ? e : void 0;
1191
1200
  }
1192
- function Sn(e, t = {}) {
1193
- let { window: r = fn, ssrWidth: a = /* @__PURE__ */ xn() } = t, o = /* @__PURE__ */ vn(() => r && "matchMedia" in r && typeof r.matchMedia == "function"), s = n(typeof a == "number"), c = n(), l = n(!1);
1201
+ function wn(e, t = {}) {
1202
+ let { window: r = mn, ssrWidth: a = /* @__PURE__ */ Cn() } = t, o = /* @__PURE__ */ bn(() => r && "matchMedia" in r && typeof r.matchMedia == "function"), s = n(typeof a == "number"), c = n(), l = n(!1);
1194
1203
  return i(() => {
1195
1204
  if (s.value) {
1196
1205
  s.value = !o.value, l.value = P(e).split(",").some((e) => {
1197
1206
  let t = e.includes("not all"), n = e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/), r = e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/), i = !!(n || r);
1198
- return n && i && (i = a >= $t(n[1])), r && i && (i = a <= $t(r[1])), t ? !i : i;
1207
+ return n && i && (i = a >= tn(n[1])), r && i && (i = a <= tn(r[1])), t ? !i : i;
1199
1208
  });
1200
1209
  return;
1201
1210
  }
@@ -1204,12 +1213,12 @@ function Sn(e, t = {}) {
1204
1213
  l.value = e.matches;
1205
1214
  }, { passive: !0 }), O(() => l.value);
1206
1215
  }
1207
- function Cn(e, t = {}) {
1208
- let { controls: r = !1, navigator: i = mn } = t, a = /* @__PURE__ */ vn(() => i && "permissions" in i), o = n(), s = typeof e == "string" ? { name: e } : e, c = n(), l = () => {
1216
+ function Tn(e, t = {}) {
1217
+ let { controls: r = !1, navigator: i = gn } = t, a = /* @__PURE__ */ bn(() => i && "permissions" in i), o = n(), s = typeof e == "string" ? { name: e } : e, c = n(), l = () => {
1209
1218
  c.value = o.value?.state ?? "prompt";
1210
1219
  };
1211
1220
  q(o, "change", l, { passive: !0 });
1212
- let u = Qt(async () => {
1221
+ let u = en(async () => {
1213
1222
  if (a.value) {
1214
1223
  if (!o.value) try {
1215
1224
  o.value = await i.permissions.query(s);
@@ -1227,8 +1236,8 @@ function Cn(e, t = {}) {
1227
1236
  query: u
1228
1237
  } : c;
1229
1238
  }
1230
- function wn(e = {}) {
1231
- let { navigator: t = mn, read: r = !1, source: i, copiedDuring: a = 1500, legacy: o = !1 } = e, s = /* @__PURE__ */ vn(() => t && "clipboard" in t), c = Cn("clipboard-read"), l = Cn("clipboard-write"), u = O(() => s.value || o), d = n(""), f = n(!1), p = n(!1), m = cn(() => f.value = !1, a, { immediate: !1 }), h = 0;
1239
+ function En(e = {}) {
1240
+ let { navigator: t = gn, read: r = !1, source: i, copiedDuring: a = 1500, legacy: o = !1 } = e, s = /* @__PURE__ */ bn(() => t && "clipboard" in t), c = Tn("clipboard-read"), l = Tn("clipboard-write"), u = O(() => s.value || o), d = n(""), f = n(!1), p = n(!1), m = un(() => f.value = !1, a, { immediate: !1 }), h = 0;
1232
1241
  async function _() {
1233
1242
  let e = !(s.value && S(c.value));
1234
1243
  if (!e) try {
@@ -1280,15 +1289,15 @@ function wn(e = {}) {
1280
1289
  copy: v
1281
1290
  };
1282
1291
  }
1283
- function Tn(e, t = {}) {
1292
+ function Dn(e, t = {}) {
1284
1293
  let r = n(!1), i = n(null), a = 0, o = !0;
1285
- if (Vt) {
1294
+ if (Ut) {
1286
1295
  let n = typeof t == "function" ? { onDrop: t } : t, s = n.multiple ?? !0, c = n.preventDefaultForUnhandled ?? !1, l = (e) => {
1287
1296
  let t = Array.from(e.dataTransfer?.files ?? []);
1288
1297
  return t.length === 0 ? null : s ? t : [t[0]];
1289
1298
  }, u = (e) => {
1290
1299
  let t = j(n.dataTypes);
1291
- return typeof t == "function" ? t(e) : t?.length ? e.length === 0 ? !1 : e.every((e) => t.some((t) => e.includes(t))) : !0;
1300
+ return typeof t == "function" ? t(e) : !t?.length || e.length !== 0 && e.every((e) => t.some((t) => e.includes(t)));
1292
1301
  }, d = (e) => n.checkValidity ? n.checkValidity(e) : u(Array.from(e ?? []).map((e) => e.type)) && (s || e.length <= 1), f = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !("chrome" in window), p = (e, t) => {
1293
1302
  let s = e.dataTransfer?.items;
1294
1303
  if (o = (s && d(s)) ?? !1, c && e.preventDefault(), !f() && !o) {
@@ -1325,8 +1334,8 @@ function Tn(e, t = {}) {
1325
1334
  isOverDropZone: r
1326
1335
  };
1327
1336
  }
1328
- function En(e, t, n = {}) {
1329
- let { window: r = fn, ...i } = n, a, o = /* @__PURE__ */ vn(() => r && "ResizeObserver" in r), s = () => {
1337
+ function On(e, t, n = {}) {
1338
+ let { window: r = mn, ...i } = n, a, o = /* @__PURE__ */ bn(() => r && "ResizeObserver" in r), s = () => {
1330
1339
  a &&= (a.disconnect(), void 0);
1331
1340
  }, c = H(O(() => {
1332
1341
  let t = P(e);
@@ -1342,12 +1351,12 @@ function En(e, t, n = {}) {
1342
1351
  }), l = () => {
1343
1352
  s(), c();
1344
1353
  };
1345
- return Lt(l), {
1354
+ return zt(l), {
1346
1355
  isSupported: o,
1347
1356
  stop: l
1348
1357
  };
1349
1358
  }
1350
- function Dn(e, t = {}) {
1359
+ function kn(e, t = {}) {
1351
1360
  let { reset: r = !0, windowResize: i = !0, windowScroll: a = !0, immediate: o = !0, updateTiming: s = "sync" } = t, c = n(0), l = n(0), u = n(0), d = n(0), f = n(0), p = n(0), m = n(0), h = n(0);
1352
1361
  function g() {
1353
1362
  let t = K(e);
@@ -1361,10 +1370,10 @@ function Dn(e, t = {}) {
1361
1370
  function _() {
1362
1371
  s === "sync" ? g() : s === "next-frame" && requestAnimationFrame(() => g());
1363
1372
  }
1364
- return En(e, _), H(() => K(e), (e) => !e && _()), yn(e, _, { attributeFilter: ["style", "class"] }), a && q("scroll", _, {
1373
+ return On(e, _), H(() => K(e), (e) => !e && _()), xn(e, _, { attributeFilter: ["style", "class"] }), a && q("scroll", _, {
1365
1374
  capture: !0,
1366
1375
  passive: !0
1367
- }), i && q("resize", _, { passive: !0 }), on(() => {
1376
+ }), i && q("resize", _, { passive: !0 }), cn(() => {
1368
1377
  o && _();
1369
1378
  }), {
1370
1379
  height: c,
@@ -1378,8 +1387,8 @@ function Dn(e, t = {}) {
1378
1387
  update: _
1379
1388
  };
1380
1389
  }
1381
- function On(e, t, r = {}) {
1382
- let { root: i, rootMargin: a, threshold: o = 0, window: s = fn, immediate: c = !0 } = r, l = /* @__PURE__ */ vn(() => s && "IntersectionObserver" in s), u = O(() => en(P(e)).map(K).filter(Ht)), d = Gt, f = n(c), p = l.value ? H(() => [
1390
+ function An(e, t, r = {}) {
1391
+ let { root: i, rootMargin: a, threshold: o = 0, window: s = mn, immediate: c = !0 } = r, l = /* @__PURE__ */ bn(() => s && "IntersectionObserver" in s), u = O(() => nn(P(e)).map(K).filter(Wt)), d = qt, f = n(c), p = l.value ? H(() => [
1383
1392
  u.value,
1384
1393
  K(i),
1385
1394
  P(a),
@@ -1392,15 +1401,15 @@ function On(e, t, r = {}) {
1392
1401
  threshold: o
1393
1402
  });
1394
1403
  e.forEach((e) => e && i.observe(e)), d = () => {
1395
- i.disconnect(), d = Gt;
1404
+ i.disconnect(), d = qt;
1396
1405
  };
1397
1406
  }, {
1398
1407
  immediate: c,
1399
1408
  flush: "post"
1400
- }) : Gt, m = () => {
1409
+ }) : qt, m = () => {
1401
1410
  d(), p(), f.value = !1;
1402
1411
  };
1403
- return Lt(m), {
1412
+ return zt(m), {
1404
1413
  isSupported: l,
1405
1414
  isActive: f,
1406
1415
  pause() {
@@ -1412,21 +1421,21 @@ function On(e, t, r = {}) {
1412
1421
  stop: m
1413
1422
  };
1414
1423
  }
1415
- var kn = {
1424
+ var jn = {
1416
1425
  multiple: !0,
1417
1426
  accept: "*",
1418
1427
  reset: !1,
1419
1428
  directory: !1
1420
1429
  };
1421
- function An(e) {
1430
+ function Mn(e) {
1422
1431
  if (!e) return null;
1423
1432
  if (e instanceof FileList) return e;
1424
1433
  let t = new DataTransfer();
1425
1434
  for (let n of e) t.items.add(n);
1426
1435
  return t.files;
1427
1436
  }
1428
- function jn(e = {}) {
1429
- let { document: t = pn } = e, n = C(An(e.initialFiles)), { on: r, trigger: a } = Rt(), { on: o, trigger: s } = Rt(), c = O(() => {
1437
+ function Nn(e = {}) {
1438
+ let { document: t = hn } = e, n = C(Mn(e.initialFiles)), { on: r, trigger: a } = Bt(), { on: o, trigger: s } = Bt(), c = O(() => {
1430
1439
  let r = K(e.input) ?? (t ? t.createElement("input") : void 0);
1431
1440
  return r && (r.type = "file", r.onchange = (e) => {
1432
1441
  n.value = e.target.files, a(n.value);
@@ -1437,7 +1446,7 @@ function jn(e = {}) {
1437
1446
  n.value = null, c.value && c.value.value && (c.value.value = "", a(null));
1438
1447
  }, u = (e) => {
1439
1448
  let t = c.value;
1440
- t && (t.multiple = P(e.multiple), t.accept = P(e.accept), t.webkitdirectory = P(e.directory), Kt(e, "capture") && (t.capture = P(e.capture)));
1449
+ t && (t.multiple = P(e.multiple), t.accept = P(e.accept), t.webkitdirectory = P(e.directory), Jt(e, "capture") && (t.capture = P(e.capture)));
1441
1450
  };
1442
1451
  return i(() => {
1443
1452
  u(e);
@@ -1447,7 +1456,7 @@ function jn(e = {}) {
1447
1456
  let n = c.value;
1448
1457
  if (!n) return;
1449
1458
  let r = {
1450
- ...kn,
1459
+ ...jn,
1451
1460
  ...e,
1452
1461
  ...t
1453
1462
  };
@@ -1460,26 +1469,26 @@ function jn(e = {}) {
1460
1469
  }
1461
1470
  //#endregion
1462
1471
  //#region src/utils/activeEditorTracker.ts
1463
- var Mn = /* @__PURE__ */ new Set(), Nn = 0, Pn = 0;
1464
- function Fn() {
1465
- let e = ++Pn;
1466
- return Mn.add(e), Nn === 0 && (Nn = e), {
1472
+ var Pn = /* @__PURE__ */ new Set(), Fn = 0, In = 0;
1473
+ function Ln() {
1474
+ let e = ++In;
1475
+ return Pn.add(e), Fn === 0 && (Fn = e), {
1467
1476
  id: e,
1468
- isActive: () => Mn.size <= 1 || Nn === e,
1477
+ isActive: () => Pn.size <= 1 || Fn === e,
1469
1478
  claim: () => {
1470
- Nn = e;
1479
+ Fn = e;
1471
1480
  },
1472
1481
  dispose: () => {
1473
- if (Mn.delete(e), Nn === e) {
1474
- let e = Array.from(Mn);
1475
- Nn = e[e.length - 1] ?? 0;
1482
+ if (Pn.delete(e), Fn === e) {
1483
+ let e = Array.from(Pn);
1484
+ Fn = e[e.length - 1] ?? 0;
1476
1485
  }
1477
1486
  }
1478
1487
  };
1479
1488
  }
1480
1489
  //#endregion
1481
1490
  //#region src/keys.ts
1482
- var In = Symbol("translations"), Ln = Symbol("editor"), Rn = Symbol("history"), zn = Symbol("blockActions"), Bn = Symbol("conditionPreview"), Vn = Symbol("fontsManager"), Hn = Symbol("themeStyles"), Un = Symbol("tplUiTheme"), Wn = Symbol("blockDefaults"), Gn = Symbol("blockRegistry"), Kn = Symbol("customBlockDefinitions"), qn = Symbol("paletteBlocks"), Jn = Symbol("customBlockStylesheets"), Yn = Symbol("mergeTags"), Xn = Symbol("mergeTagSyntax"), Zn = Symbol("onRequestMergeTag"), Qn = Symbol("mergeTagAutocomplete"), $n = Symbol("mergeTagPicker"), er = Symbol("logicTags"), tr = Symbol("logicPairs"), nr = Symbol("logicPicker"), rr = Symbol("onRequestLogic"), ir = Symbol("onRequestMedia"), ar = Symbol("displayConditions"), or = Symbol("allowCustomConditions"), sr = Symbol("capabilities"), cr = Symbol("keyboardReorder"), lr = Symbol("templateLint"), ur = Symbol("editorRoot"), dr = Symbol("popoverRoot"), fr = Symbol("authManager"), pr = Symbol("aiConfig"), mr = Symbol("comments"), hr = Symbol("savedModulesHeadless"), gr = Symbol("scoring"), _r = Symbol("cloudTranslations");
1491
+ var Rn = Symbol("translations"), zn = Symbol("editor"), Bn = Symbol("history"), Vn = Symbol("blockActions"), Hn = Symbol("conditionPreview"), Un = Symbol("fontsManager"), Wn = Symbol("themeStyles"), Gn = Symbol("tplUiTheme"), Kn = Symbol("blockDefaults"), qn = Symbol("blockRegistry"), Jn = Symbol("customBlockDefinitions"), Yn = Symbol("paletteBlocks"), Xn = Symbol("customBlockStylesheets"), Zn = Symbol("mergeTags"), Qn = Symbol("mergeTagSyntax"), $n = Symbol("onRequestMergeTag"), er = Symbol("mergeTagAutocomplete"), tr = Symbol("mergeTagPicker"), nr = Symbol("logicTags"), rr = Symbol("logicPairs"), ir = Symbol("logicPicker"), ar = Symbol("onRequestLogic"), or = Symbol("onRequestMedia"), sr = Symbol("displayConditions"), cr = Symbol("allowCustomConditions"), lr = Symbol("capabilities"), ur = Symbol("keyboardReorder"), dr = Symbol("templateLint"), fr = Symbol("editorRoot"), pr = Symbol("popoverRoot"), mr = Symbol("authManager"), hr = Symbol("aiConfig"), gr = Symbol("comments"), _r = Symbol("savedModulesHeadless"), vr = Symbol("scoring"), yr = Symbol("cloudTranslations");
1483
1492
  function J(e, t) {
1484
1493
  let n = v(e, null);
1485
1494
  if (n == null) throw Error(`${t} requires a provider for ${e.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
@@ -1487,7 +1496,7 @@ function J(e, t) {
1487
1496
  }
1488
1497
  //#endregion
1489
1498
  //#region src/composables/useMergeTagPicker.ts
1490
- function vr() {
1499
+ function br() {
1491
1500
  let e = C(!1), t = C([]), n = null;
1492
1501
  function r(r) {
1493
1502
  if (n) {
@@ -1517,7 +1526,7 @@ function vr() {
1517
1526
  }
1518
1527
  //#endregion
1519
1528
  //#region src/composables/useLogicTagPicker.ts
1520
- function yr() {
1529
+ function xr() {
1521
1530
  let e = C(!1), t = C([]), n = C([]), r = null;
1522
1531
  function i(i, a) {
1523
1532
  if (r) {
@@ -1548,17 +1557,17 @@ function yr() {
1548
1557
  }
1549
1558
  //#endregion
1550
1559
  //#region src/composables/useTemplateLint.ts
1551
- function br(e) {
1552
- return e ? e.disabled === !0 ? !0 : e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1560
+ function Sr(e) {
1561
+ return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1553
1562
  }
1554
- function xr(e) {
1555
- let t = C([]), r = C(!1), i = C(!1), a = n(null), o = br(e.options), s = null, c = !1;
1563
+ function Cr(e) {
1564
+ let t = C([]), r = C(!1), i = C(!1), a = n(null), o = Sr(e.options), s = null, c = !1;
1556
1565
  o || l();
1557
1566
  async function l() {
1558
1567
  try {
1559
- let t = await import("./quality-CyeUgs_c.js").then((e) => e.t);
1568
+ let t = await import("./quality-CNjGxBG0.js").then((e) => e.t);
1560
1569
  if (c) return;
1561
- a.value = { lintTemplate: t.lintTemplate }, r.value = !0, u(), s = un(e.content, u, {
1570
+ a.value = { lintTemplate: t.lintTemplate }, r.value = !0, u(), s = fn(e.content, u, {
1562
1571
  debounce: e.debounce ?? 500,
1563
1572
  deep: !0
1564
1573
  });
@@ -1594,7 +1603,7 @@ function xr(e) {
1594
1603
  //#endregion
1595
1604
  //#region src/composables/useI18n.ts
1596
1605
  function Y(e) {
1597
- let t = e ?? v(In, null);
1606
+ let t = e ?? v(Rn, null);
1598
1607
  if (!t) throw Error("useI18n() requires a translations provider. Ensure the component is a descendant of Editor or CloudEditor.");
1599
1608
  let n = u(t) ? t.value : t;
1600
1609
  function r(e, t) {
@@ -1607,12 +1616,12 @@ function Y(e) {
1607
1616
  }
1608
1617
  //#endregion
1609
1618
  //#region src/utils/blockTypeLabels.ts
1610
- function Sr(e, t) {
1619
+ function wr(e, t) {
1611
1620
  return t.blocks[e] ?? e;
1612
1621
  }
1613
1622
  //#endregion
1614
1623
  //#region src/composables/useKeyboardReorder.ts
1615
- function Cr(e, t) {
1624
+ function Tr(e, t) {
1616
1625
  let n = C(null), r = C(""), i = null;
1617
1626
  function a(t) {
1618
1627
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1639,7 +1648,7 @@ function Cr(e, t) {
1639
1648
  let r = a(n);
1640
1649
  if (!r) return "";
1641
1650
  let i = (r.sectionId ? s(r.sectionId, r.columnIndex ?? 0) : e.content.value.blocks)?.[r.index];
1642
- return i ? Sr(i.type, t.t) : "";
1651
+ return i ? wr(i.type, t.t) : "";
1643
1652
  }
1644
1653
  function s(t, n) {
1645
1654
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1708,13 +1717,13 @@ function Cr(e, t) {
1708
1717
  }
1709
1718
  //#endregion
1710
1719
  //#region src/composables/useUiTheme.ts
1711
- function wr(e) {
1712
- let t = Sn("(prefers-color-scheme: dark)");
1720
+ function Er(e) {
1721
+ let t = wn("(prefers-color-scheme: dark)");
1713
1722
  return { resolvedTheme: O(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1714
1723
  }
1715
1724
  //#endregion
1716
1725
  //#region src/composables/useThemeStyles.ts
1717
- var Tr = {
1726
+ var Dr = {
1718
1727
  bg: "--tpl-bg",
1719
1728
  bgElevated: "--tpl-bg-elevated",
1720
1729
  bgHover: "--tpl-bg-hover",
@@ -1738,10 +1747,10 @@ var Tr = {
1738
1747
  dangerLight: "--tpl-danger-light",
1739
1748
  canvasBg: "--tpl-canvas-bg"
1740
1749
  };
1741
- function Er({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1750
+ function Or({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1742
1751
  return { themeStyles: O(() => {
1743
1752
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1744
- if (a) for (let [e, t] of Object.entries(Tr)) {
1753
+ if (a) for (let [e, t] of Object.entries(Dr)) {
1745
1754
  let n = a[e];
1746
1755
  n && (r[t] = n);
1747
1756
  }
@@ -1750,27 +1759,27 @@ function Er({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1750
1759
  }
1751
1760
  //#endregion
1752
1761
  //#region src/utils/logger.ts
1753
- var Dr = "[Templatical]";
1754
- function Or() {
1762
+ var kr = "[Templatical]";
1763
+ function Ar() {
1755
1764
  return typeof process < "u" && !0;
1756
1765
  }
1757
- var kr = {
1766
+ var jr = {
1758
1767
  warn(...e) {
1759
- console.warn(Dr, ...e);
1768
+ console.warn(kr, ...e);
1760
1769
  },
1761
1770
  error(...e) {
1762
- console.error(Dr, ...e);
1771
+ console.error(kr, ...e);
1763
1772
  },
1764
1773
  debug(...e) {
1765
- Or() || console.debug(Dr, ...e);
1774
+ Ar() || console.debug(kr, ...e);
1766
1775
  },
1767
1776
  info(...e) {
1768
- Or() || console.info(Dr, ...e);
1777
+ Ar() || console.info(kr, ...e);
1769
1778
  }
1770
1779
  };
1771
1780
  //#endregion
1772
1781
  //#region src/composables/useBlockRegistry.ts
1773
- function Ar() {
1782
+ function Mr() {
1774
1783
  let e = n(/* @__PURE__ */ new Map());
1775
1784
  function t(t, n) {
1776
1785
  e.value.set(t, n), oe(e);
@@ -1804,13 +1813,13 @@ function Ar() {
1804
1813
  let t = o(e.customType);
1805
1814
  if (!t) return s("Block definition not found");
1806
1815
  try {
1807
- let { Liquid: n } = await import("./liquid.browser-DKKBzRQu.js");
1816
+ let { Liquid: n } = await import("./liquid.browser-BJOEu6Cg.js");
1808
1817
  return await new n({
1809
1818
  strictVariables: !1,
1810
1819
  strictFilters: !1
1811
1820
  }).parseAndRender(t.template, e.fieldValues);
1812
1821
  } catch (t) {
1813
- return kr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1822
+ return jr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1814
1823
  }
1815
1824
  }
1816
1825
  function l(t) {
@@ -1828,9 +1837,9 @@ function Ar() {
1828
1837
  }
1829
1838
  //#endregion
1830
1839
  //#region src/composables/useCustomBlockStylesheets.ts
1831
- function jr(e, t) {
1840
+ function Nr(e, t) {
1832
1841
  return O(() => {
1833
- let n = Mr(e.value.blocks);
1842
+ let n = Pr(e.value.blocks);
1834
1843
  if (n.size === 0) return [];
1835
1844
  let r = /* @__PURE__ */ new Set(), i = [];
1836
1845
  for (let e of n) {
@@ -1842,11 +1851,11 @@ function jr(e, t) {
1842
1851
  return i;
1843
1852
  });
1844
1853
  }
1845
- function Mr(e) {
1854
+ function Pr(e) {
1846
1855
  let t = /* @__PURE__ */ new Set();
1847
- return Nr(e, t), t;
1856
+ return Fr(e, t), t;
1848
1857
  }
1849
- function Nr(e, t) {
1858
+ function Fr(e, t) {
1850
1859
  for (let n of e) {
1851
1860
  if (De(n)) {
1852
1861
  t.add(n.customType);
@@ -1855,13 +1864,13 @@ function Nr(e, t) {
1855
1864
  if (n.type === "section") {
1856
1865
  let e = n.children;
1857
1866
  if (!e) continue;
1858
- for (let n of e) Nr(n, t);
1867
+ for (let n of e) Fr(n, t);
1859
1868
  }
1860
1869
  }
1861
1870
  }
1862
1871
  //#endregion
1863
1872
  //#region src/utils/registerBuiltInBlocks.ts
1864
- var Pr = [
1873
+ var Ir = [
1865
1874
  {
1866
1875
  type: "section",
1867
1876
  createBlock: Ze
@@ -1915,8 +1924,8 @@ var Pr = [
1915
1924
  createBlock: at
1916
1925
  }
1917
1926
  ];
1918
- function Fr(e, t) {
1919
- for (let n of Pr) {
1927
+ function Lr(e, t) {
1928
+ for (let n of Ir) {
1920
1929
  let r = t[n.type];
1921
1930
  r && e.registerBuiltIn(n.type, {
1922
1931
  component: r,
@@ -1926,7 +1935,7 @@ function Fr(e, t) {
1926
1935
  }
1927
1936
  //#endregion
1928
1937
  //#region src/utils/keyboardShortcuts.ts
1929
- function Ir(e) {
1938
+ function Rr(e) {
1930
1939
  for (let t of e.composedPath()) {
1931
1940
  if (!(t instanceof HTMLElement)) continue;
1932
1941
  if (t.isContentEditable) return !0;
@@ -1935,14 +1944,14 @@ function Ir(e) {
1935
1944
  }
1936
1945
  return !1;
1937
1946
  }
1938
- function Lr(e, t) {
1947
+ function zr(e, t) {
1939
1948
  let n = e.metaKey || e.ctrlKey;
1940
1949
  if (n && e.key.toLowerCase() === "s") {
1941
1950
  e.preventDefault(), t.onSave?.();
1942
1951
  return;
1943
1952
  }
1944
1953
  if (n && e.key.toLowerCase() === "z") {
1945
- if (Ir(e)) return;
1954
+ if (Rr(e)) return;
1946
1955
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1947
1956
  return;
1948
1957
  }
@@ -1950,11 +1959,51 @@ function Lr(e, t) {
1950
1959
  t.selectBlock(null);
1951
1960
  return;
1952
1961
  }
1953
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Ir(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1962
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Rr(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1954
1963
  }
1955
1964
  //#endregion
1956
- //#region src/components/blocks/ButtonBlock.vue?vue&type=script&setup=true&lang.ts
1957
- var Rr = { class: "tpl:text-center" }, zr = ["href"], Br = /* @__PURE__ */ B({
1965
+ //#region src/utils/mergeTagLabelSegments.ts
1966
+ function Br(e, t, n) {
1967
+ if (!e) return [];
1968
+ let r = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), i = [], a = 0, o;
1969
+ for (; (o = r.exec(e)) !== null;) {
1970
+ o.index > a && i.push({
1971
+ type: "text",
1972
+ value: e.slice(a, o.index)
1973
+ });
1974
+ let r = o[0];
1975
+ vt(r, n) ? i.push({
1976
+ type: "tag",
1977
+ value: yt(r, t)
1978
+ }) : St(r, n) ? i.push({
1979
+ type: "tag",
1980
+ value: Ct(r, n)
1981
+ }) : i.push({
1982
+ type: "text",
1983
+ value: r
1984
+ }), a = o.index + r.length;
1985
+ }
1986
+ return a < e.length && i.push({
1987
+ type: "text",
1988
+ value: e.slice(a)
1989
+ }), i;
1990
+ }
1991
+ //#endregion
1992
+ //#region src/components/MergeTagPreviewText.vue
1993
+ var Vr = B({
1994
+ name: "MergeTagPreviewText",
1995
+ props: { text: {
1996
+ type: String,
1997
+ required: !0
1998
+ } },
1999
+ setup(e) {
2000
+ let t = v(Zn, []), n = v(Qn, dt.liquid), r = O(() => Br(e.text, t, n));
2001
+ return () => r.value.map((e, t) => e.type === "tag" ? a("span", {
2002
+ key: t,
2003
+ class: "tpl-merge-tag-label"
2004
+ }, e.value) : e.value);
2005
+ }
2006
+ }), Hr = { class: "tpl:text-center" }, Ur = ["href"], Wr = /* @__PURE__ */ B({
1958
2007
  __name: "ButtonBlock",
1959
2008
  props: {
1960
2009
  block: {},
@@ -1975,17 +2024,17 @@ var Rr = { class: "tpl:text-center" }, zr = ["href"], Br = /* @__PURE__ */ B({
1975
2024
  };
1976
2025
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), t.block.width === "full" ? (e.display = "block", e.width = "100%", e.boxSizing = "border-box") : typeof t.block.width == "number" && (e.width = `${t.block.width}px`, e.boxSizing = "border-box"), e;
1977
2026
  });
1978
- return (t, r) => (f(), k("div", Rr, [I("a", {
2027
+ return (t, r) => (f(), k("div", Hr, [I("a", {
1979
2028
  href: e.block.url || "#",
1980
2029
  style: L(n.value),
1981
2030
  class: "tpl:cursor-default",
1982
2031
  onClick: r[0] ||= M(() => {}, ["prevent"])
1983
- }, D(e.block.text), 13, zr)]));
2032
+ }, [V(Vr, { text: e.block.text }, null, 8, ["text"])], 12, Ur)]));
1984
2033
  }
1985
- }), Vr = (e) => e === "", Hr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Ur = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Wr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Gr = (e) => {
1986
- let t = Wr(e);
2034
+ }), Gr = (e) => e === "", Kr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), qr = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Jr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Yr = (e) => {
2035
+ let t = Jr(e);
1987
2036
  return t.charAt(0).toUpperCase() + t.slice(1);
1988
- }, Kr = {
2037
+ }, Xr = {
1989
2038
  xmlns: "http://www.w3.org/2000/svg",
1990
2039
  width: 24,
1991
2040
  height: 24,
@@ -1995,35 +2044,35 @@ var Rr = { class: "tpl:text-center" }, zr = ["href"], Br = /* @__PURE__ */ B({
1995
2044
  "stroke-width": 2,
1996
2045
  "stroke-linecap": "round",
1997
2046
  "stroke-linejoin": "round"
1998
- }, qr = /* @__PURE__ */ Symbol("lucide-icons");
1999
- function Jr() {
2000
- return v(qr, {});
2047
+ }, Zr = /* @__PURE__ */ Symbol("lucide-icons");
2048
+ function Qr() {
2049
+ return v(Zr, {});
2001
2050
  }
2002
2051
  //#endregion
2003
- //#region ../../node_modules/.pnpm/@lucide+vue@1.23.0_vue@3.5.39_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
2004
- var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": o, size: s, color: c, ...l }, { slots: u }) => {
2005
- let { size: d, color: f, strokeWidth: p = 2, absoluteStrokeWidth: m = !1, class: h = "" } = Jr(), g = O(() => {
2006
- let e = Vr(n) || Vr(r) || n === !0 || r === !0 || m === !0, t = i || o || p || Kr["stroke-width"];
2007
- return e ? Number(t) * 24 / Number(s ?? d ?? Kr.width) : t;
2052
+ //#region ../../node_modules/.pnpm/@lucide+vue@1.24.0_vue@3.5.39_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
2053
+ var $r = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absolute-stroke-width": i, strokeWidth: o, "stroke-width": s, size: c, color: l, ...u }, { slots: d }) => {
2054
+ let { size: f, color: p, strokeWidth: m = 2, absoluteStrokeWidth: h = !1, class: g = "" } = Qr(), _ = O(() => {
2055
+ let e = Gr(r) || Gr(i) || r === !0 || i === !0 || h === !0, t = o || s || m || Xr["stroke-width"];
2056
+ return e ? Number(t) * 24 / Number(c ?? f ?? Xr.width) : t;
2008
2057
  });
2009
2058
  return a("svg", {
2010
- ...Kr,
2011
- ...l,
2012
- width: s ?? d ?? Kr.width,
2013
- height: s ?? d ?? Kr.height,
2014
- stroke: c ?? f ?? Kr.stroke,
2015
- "stroke-width": g.value,
2016
- class: Hr("lucide", h, ...e ? [`lucide-${Ur(Gr(e))}-icon`, `lucide-${Ur(e)}`] : ["lucide-icon"])
2017
- }, [...t.map((e) => a(...e)), ...u.default ? [u.default()] : []]);
2018
- }, X = (e, t) => (n, { slots: r, attrs: i }) => a(Yr, {
2059
+ ...Xr,
2060
+ ...u,
2061
+ width: c ?? f ?? Xr.width,
2062
+ height: c ?? f ?? Xr.height,
2063
+ stroke: l ?? p ?? Xr.stroke,
2064
+ "stroke-width": _.value,
2065
+ class: Kr("lucide", g, ...e ? [`lucide-${qr(Yr(e))}-icon`, `lucide-${qr(e)}`] : ["lucide-icon"])
2066
+ }, [...(t ?? n ?? []).map((e) => a(...e)), ...d.default ? [d.default()] : []]);
2067
+ }, X = (e, t) => (n, { slots: r, attrs: i }) => a($r, {
2019
2068
  ...i,
2020
2069
  ...n,
2021
2070
  iconNode: t,
2022
2071
  name: e
2023
- }, r.default ? { default: r.default } : void 0), Xr = X("bookmark", [["path", {
2072
+ }, r.default ? { default: r.default } : void 0), ei = X("bookmark", [["path", {
2024
2073
  d: "M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",
2025
2074
  key: "oz39mx"
2026
- }]]), Zr = X("box", [
2075
+ }]]), ti = X("box", [
2027
2076
  ["path", {
2028
2077
  d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
2029
2078
  key: "hh9hay"
@@ -2036,22 +2085,22 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2036
2085
  d: "M12 22V12",
2037
2086
  key: "d0xqtd"
2038
2087
  }]
2039
- ]), Qr = X("check", [["path", {
2088
+ ]), ni = X("check", [["path", {
2040
2089
  d: "M20 6 9 17l-5-5",
2041
2090
  key: "1gmf2c"
2042
- }]]), $r = X("chevron-down", [["path", {
2091
+ }]]), ri = X("chevron-down", [["path", {
2043
2092
  d: "m6 9 6 6 6-6",
2044
2093
  key: "qrunsl"
2045
- }]]), ei = X("chevron-left", [["path", {
2094
+ }]]), ii = X("chevron-left", [["path", {
2046
2095
  d: "m15 18-6-6 6-6",
2047
2096
  key: "1wnfg3"
2048
- }]]), ti = X("chevron-right", [["path", {
2097
+ }]]), ai = X("chevron-right", [["path", {
2049
2098
  d: "m9 18 6-6-6-6",
2050
2099
  key: "mthhwq"
2051
- }]]), ni = X("chevron-up", [["path", {
2100
+ }]]), oi = X("chevron-up", [["path", {
2052
2101
  d: "m18 15-6-6-6 6",
2053
2102
  key: "153udz"
2054
- }]]), ri = X("circle-alert", [
2103
+ }]]), si = X("circle-alert", [
2055
2104
  ["circle", {
2056
2105
  cx: "12",
2057
2106
  cy: "12",
@@ -2072,7 +2121,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2072
2121
  y2: "16",
2073
2122
  key: "4dfq90"
2074
2123
  }]
2075
- ]), ii = X("circle-check", [["circle", {
2124
+ ]), ci = X("circle-check", [["circle", {
2076
2125
  cx: "12",
2077
2126
  cy: "12",
2078
2127
  r: "10",
@@ -2080,7 +2129,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2080
2129
  }], ["path", {
2081
2130
  d: "m9 12 2 2 4-4",
2082
2131
  key: "dzmm74"
2083
- }]]), ai = X("clock", [["circle", {
2132
+ }]]), li = X("clock", [["circle", {
2084
2133
  cx: "12",
2085
2134
  cy: "12",
2086
2135
  r: "10",
@@ -2088,13 +2137,13 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2088
2137
  }], ["path", {
2089
2138
  d: "M12 6v6l4 2",
2090
2139
  key: "mmk7yg"
2091
- }]]), oi = X("code", [["path", {
2140
+ }]]), ui = X("code", [["path", {
2092
2141
  d: "m16 18 6-6-6-6",
2093
2142
  key: "eg8j8"
2094
2143
  }], ["path", {
2095
2144
  d: "m8 6-6 6 6 6",
2096
2145
  key: "ppft3o"
2097
- }]]), si = X("copy", [["rect", {
2146
+ }]]), di = X("copy", [["rect", {
2098
2147
  width: "14",
2099
2148
  height: "14",
2100
2149
  x: "8",
@@ -2105,7 +2154,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2105
2154
  }], ["path", {
2106
2155
  d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
2107
2156
  key: "zix9uf"
2108
- }]]), ci = X("eye-off", [
2157
+ }]]), fi = X("eye-off", [
2109
2158
  ["path", {
2110
2159
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
2111
2160
  key: "ct8e1f"
@@ -2122,7 +2171,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2122
2171
  d: "m2 2 20 20",
2123
2172
  key: "1ooewy"
2124
2173
  }]
2125
- ]), li = X("eye", [["path", {
2174
+ ]), pi = X("eye", [["path", {
2126
2175
  d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
2127
2176
  key: "1nclc0"
2128
2177
  }], ["circle", {
@@ -2130,7 +2179,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2130
2179
  cy: "12",
2131
2180
  r: "3",
2132
2181
  key: "1v7zrd"
2133
- }]]), ui = X("file-image", [
2182
+ }]]), mi = X("file-image", [
2134
2183
  ["path", {
2135
2184
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
2136
2185
  key: "1oefj6"
@@ -2149,7 +2198,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2149
2198
  d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",
2150
2199
  key: "wt3hpn"
2151
2200
  }]
2152
- ]), di = X("file-text", [
2201
+ ]), hi = X("file-text", [
2153
2202
  ["path", {
2154
2203
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
2155
2204
  key: "1oefj6"
@@ -2170,10 +2219,10 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2170
2219
  d: "M16 17H8",
2171
2220
  key: "z1uh3a"
2172
2221
  }]
2173
- ]), fi = X("funnel", [["path", {
2222
+ ]), gi = X("funnel", [["path", {
2174
2223
  d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
2175
2224
  key: "sc7q7i"
2176
- }]]), pi = X("grip-vertical", [
2225
+ }]]), _i = X("grip-vertical", [
2177
2226
  ["circle", {
2178
2227
  cx: "9",
2179
2228
  cy: "12",
@@ -2210,7 +2259,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2210
2259
  r: "1",
2211
2260
  key: "f4zoj3"
2212
2261
  }]
2213
- ]), mi = X("image-up", [
2262
+ ]), vi = X("image-up", [
2214
2263
  ["path", {
2215
2264
  d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",
2216
2265
  key: "9csbqa"
@@ -2229,7 +2278,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2229
2278
  r: "2",
2230
2279
  key: "af1f0g"
2231
2280
  }]
2232
- ]), hi = X("image", [
2281
+ ]), yi = X("image", [
2233
2282
  ["rect", {
2234
2283
  width: "18",
2235
2284
  height: "18",
@@ -2249,7 +2298,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2249
2298
  d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",
2250
2299
  key: "1xmnt7"
2251
2300
  }]
2252
- ]), gi = X("info", [
2301
+ ]), bi = X("info", [
2253
2302
  ["circle", {
2254
2303
  cx: "12",
2255
2304
  cy: "12",
@@ -2264,31 +2313,31 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2264
2313
  d: "M12 8h.01",
2265
2314
  key: "e9boi3"
2266
2315
  }]
2267
- ]), _i = X("loader-circle", [["path", {
2316
+ ]), xi = X("loader-circle", [["path", {
2268
2317
  d: "M21 12a9 9 0 1 1-6.219-8.56",
2269
2318
  key: "13zald"
2270
- }]]), vi = X("message-circle", [["path", {
2319
+ }]]), Si = X("message-circle", [["path", {
2271
2320
  d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
2272
2321
  key: "1sd12s"
2273
- }]]), yi = X("navigation", [["polygon", {
2322
+ }]]), Ci = X("navigation", [["polygon", {
2274
2323
  points: "3 11 22 2 13 21 11 13 3 11",
2275
2324
  key: "1ltx0t"
2276
- }]]), bi = X("pencil", [["path", {
2325
+ }]]), wi = X("pencil", [["path", {
2277
2326
  d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
2278
2327
  key: "1a8usu"
2279
2328
  }], ["path", {
2280
2329
  d: "m15 5 4 4",
2281
2330
  key: "1mk7zo"
2282
- }]]), xi = X("puzzle", [["path", {
2331
+ }]]), Ti = X("puzzle", [["path", {
2283
2332
  d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",
2284
2333
  key: "w46dr5"
2285
- }]]), Si = X("redo-2", [["path", {
2334
+ }]]), Ei = X("redo-2", [["path", {
2286
2335
  d: "m15 14 5-5-5-5",
2287
2336
  key: "12vg1m"
2288
2337
  }], ["path", {
2289
2338
  d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
2290
2339
  key: "6uklza"
2291
- }]]), Ci = X("refresh-cw", [
2340
+ }]]), Di = X("refresh-cw", [
2292
2341
  ["path", {
2293
2342
  d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",
2294
2343
  key: "v9h5vc"
@@ -2305,19 +2354,19 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2305
2354
  d: "M8 16H3v5",
2306
2355
  key: "1cv678"
2307
2356
  }]
2308
- ]), wi = X("reply", [["path", {
2357
+ ]), Oi = X("reply", [["path", {
2309
2358
  d: "M20 18v-2a4 4 0 0 0-4-4H4",
2310
2359
  key: "5vmcpk"
2311
2360
  }], ["path", {
2312
2361
  d: "m9 17-5-5 5-5",
2313
2362
  key: "nvlc11"
2314
- }]]), Ti = X("send", [["path", {
2363
+ }]]), ki = X("send", [["path", {
2315
2364
  d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
2316
2365
  key: "1ffxy3"
2317
2366
  }], ["path", {
2318
2367
  d: "m21.854 2.147-10.94 10.939",
2319
2368
  key: "12cjpa"
2320
- }]]), Ei = X("share-2", [
2369
+ }]]), Ai = X("share-2", [
2321
2370
  ["circle", {
2322
2371
  cx: "18",
2323
2372
  cy: "5",
@@ -2350,13 +2399,13 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2350
2399
  y2: "10.49",
2351
2400
  key: "1n3mei"
2352
2401
  }]
2353
- ]), Di = X("shield-check", [["path", {
2402
+ ]), ji = X("shield-check", [["path", {
2354
2403
  d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
2355
2404
  key: "oel41y"
2356
2405
  }], ["path", {
2357
2406
  d: "m9 12 2 2 4-4",
2358
2407
  key: "dzmm74"
2359
- }]]), Oi = X("shield-x", [
2408
+ }]]), Mi = X("shield-x", [
2360
2409
  ["path", {
2361
2410
  d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
2362
2411
  key: "oel41y"
@@ -2369,7 +2418,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2369
2418
  d: "m9.5 9.5 5 5",
2370
2419
  key: "18nt4w"
2371
2420
  }]
2372
- ]), ki = X("sparkles", [
2421
+ ]), Ni = X("sparkles", [
2373
2422
  ["path", {
2374
2423
  d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
2375
2424
  key: "1s2grr"
@@ -2388,7 +2437,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2388
2437
  r: "2",
2389
2438
  key: "6kqj1y"
2390
2439
  }]
2391
- ]), Ai = X("table", [
2440
+ ]), Pi = X("table", [
2392
2441
  ["path", {
2393
2442
  d: "M12 3v18",
2394
2443
  key: "108xh3"
@@ -2409,7 +2458,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2409
2458
  d: "M3 15h18",
2410
2459
  key: "5xshup"
2411
2460
  }]
2412
- ]), ji = X("trash-2", [
2461
+ ]), Fi = X("trash-2", [
2413
2462
  ["path", {
2414
2463
  d: "M10 11v6",
2415
2464
  key: "nco0om"
@@ -2430,7 +2479,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2430
2479
  d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
2431
2480
  key: "e791ji"
2432
2481
  }]
2433
- ]), Mi = X("triangle-alert", [
2482
+ ]), Ii = X("triangle-alert", [
2434
2483
  ["path", {
2435
2484
  d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
2436
2485
  key: "wmoenq"
@@ -2443,13 +2492,13 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2443
2492
  d: "M12 17h.01",
2444
2493
  key: "p32p05"
2445
2494
  }]
2446
- ]), Ni = X("undo-2", [["path", {
2495
+ ]), Li = X("undo-2", [["path", {
2447
2496
  d: "M9 14 4 9l5-5",
2448
2497
  key: "102s5s"
2449
2498
  }], ["path", {
2450
2499
  d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
2451
2500
  key: "f3b9sd"
2452
- }]]), Pi = X("upload", [
2501
+ }]]), Ri = X("upload", [
2453
2502
  ["path", {
2454
2503
  d: "M12 3v12",
2455
2504
  key: "1x0j5s"
@@ -2462,7 +2511,7 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2462
2511
  d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
2463
2512
  key: "ih7n3h"
2464
2513
  }]
2465
- ]), Fi = X("video", [["path", {
2514
+ ]), zi = X("video", [["path", {
2466
2515
  d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
2467
2516
  key: "ftymec"
2468
2517
  }], ["rect", {
@@ -2472,20 +2521,20 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2472
2521
  height: "12",
2473
2522
  rx: "2",
2474
2523
  key: "158x01"
2475
- }]]), Ii = X("x", [["path", {
2524
+ }]]), Bi = X("x", [["path", {
2476
2525
  d: "M18 6 6 18",
2477
2526
  key: "1bl5f8"
2478
2527
  }], ["path", {
2479
2528
  d: "m6 6 12 12",
2480
2529
  key: "d8bk6v"
2481
- }]]), Li = X("zap", [["path", {
2530
+ }]]), Vi = X("zap", [["path", {
2482
2531
  d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
2483
2532
  key: "1xq2db"
2484
- }]]), Ri = ["innerHTML"], zi = [
2533
+ }]]), Hi = ["innerHTML"], Ui = [
2485
2534
  "src",
2486
2535
  "width",
2487
2536
  "height"
2488
- ], Bi = /* @__PURE__ */ B({
2537
+ ], Wi = /* @__PURE__ */ B({
2489
2538
  __name: "CustomBlockIcon",
2490
2539
  props: {
2491
2540
  icon: {},
@@ -2501,40 +2550,40 @@ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2501
2550
  height: `${n.value}px`
2502
2551
  }),
2503
2552
  innerHTML: e.icon
2504
- }, null, 12, Ri)) : i.value ? (f(), k("img", {
2553
+ }, null, 12, Hi)) : i.value ? (f(), k("img", {
2505
2554
  key: 1,
2506
2555
  src: e.icon,
2507
2556
  width: n.value,
2508
2557
  height: n.value,
2509
2558
  class: "tpl:inline-block",
2510
2559
  alt: ""
2511
- }, null, 8, zi)) : (f(), N(j(Zr), {
2560
+ }, null, 8, Ui)) : (f(), N(j(ti), {
2512
2561
  key: 2,
2513
2562
  size: n.value,
2514
2563
  "stroke-width": 1.5
2515
2564
  }, null, 8, ["size"]));
2516
2565
  }
2517
- }), Vi = (e, t) => {
2566
+ }), Gi = (e, t) => {
2518
2567
  let n = e.__vccOpts || e;
2519
2568
  for (let [e, r] of t) n[e] = r;
2520
2569
  return n;
2521
- }, Hi = {}, Ui = { class: "tpl-loading-track" };
2522
- function Wi(e, t) {
2523
- return f(), k("div", Ui);
2570
+ }, Ki = {}, qi = { class: "tpl-loading-track" };
2571
+ function Ji(e, t) {
2572
+ return f(), k("div", qi);
2524
2573
  }
2525
- var Gi = /*#__PURE__*/ Vi(Hi, [["render", Wi], ["__scopeId", "data-v-1ed538ec"]]);
2574
+ var Yi = /*#__PURE__*/ Gi(Ki, [["render", Ji], ["__scopeId", "data-v-1ed538ec"]]);
2526
2575
  //#endregion
2527
2576
  //#region src/composables/useEditorRoot.ts
2528
- function Ki() {
2529
- return v(ur, document) ?? document;
2577
+ function Xi() {
2578
+ return v(fr, document) ?? document;
2530
2579
  }
2531
2580
  //#endregion
2532
2581
  //#region src/composables/useFocusTrap.ts
2533
- var qi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2534
- function Ji(e, t) {
2535
- let n = Ki(), r = null, i = null, a = null;
2582
+ var Zi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2583
+ function Qi(e, t) {
2584
+ let n = Xi(), r = null, i = null, a = null;
2536
2585
  function o() {
2537
- return e.value ? Array.from(e.value.querySelectorAll(qi)).filter((e) => e.offsetParent !== null) : [];
2586
+ return e.value ? Array.from(e.value.querySelectorAll(Zi)).filter((e) => e.offsetParent !== null) : [];
2538
2587
  }
2539
2588
  function s(e) {
2540
2589
  if (e.key !== "Tab") return;
@@ -2564,18 +2613,18 @@ function Ji(e, t) {
2564
2613
  }
2565
2614
  //#endregion
2566
2615
  //#region src/composables/useCloudI18n.ts
2567
- function Yi(e, t) {
2616
+ function $i(e, t) {
2568
2617
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
2569
2618
  }
2570
- function Xi(e) {
2571
- let t = e ?? v(_r, null);
2619
+ function ea(e) {
2620
+ let t = e ?? v(yr, null);
2572
2621
  return {
2573
2622
  t: t ? u(t) ? t.value : t : null,
2574
- format: Yi
2623
+ format: $i
2575
2624
  };
2576
2625
  }
2577
- function Zi(e) {
2578
- let { t, format: n } = Xi(e);
2626
+ function ta(e) {
2627
+ let { t, format: n } = ea(e);
2579
2628
  if (!t) throw Error("useCloudI18nStrict() requires a cloud translations provider. Ensure the component is a descendant of CloudEditor.");
2580
2629
  return {
2581
2630
  t,
@@ -2584,13 +2633,13 @@ function Zi(e) {
2584
2633
  }
2585
2634
  //#endregion
2586
2635
  //#region src/composables/useMergeTag.ts
2587
- function Qi() {
2588
- let e = v(Yn, []), t = v(Xn, dt.liquid), n = v(Zn, null), r = v(Qn, !0), i = v($n, null), a = C(!1);
2636
+ function na() {
2637
+ let e = v(Zn, []), t = v(Qn, dt.liquid), n = v($n, null), r = v(er, !0), i = v(tr, null), a = C(!1);
2589
2638
  function o(e) {
2590
- return gt(e, t);
2639
+ return vt(e, t);
2591
2640
  }
2592
2641
  function s(t) {
2593
- return _t(t, e);
2642
+ return yt(t, e);
2594
2643
  }
2595
2644
  async function c() {
2596
2645
  if (n) {
@@ -2624,8 +2673,8 @@ function Qi() {
2624
2673
  }
2625
2674
  //#endregion
2626
2675
  //#region src/composables/useEmoji.ts
2627
- function $i() {
2628
- let [e, t] = ln(!1), r = n([]), i = !1;
2676
+ function ra() {
2677
+ let [e, t] = dn(!1), r = n([]), i = !1;
2629
2678
  l(() => {
2630
2679
  i = !0;
2631
2680
  }), H(e, async (e) => {
@@ -2650,7 +2699,7 @@ function $i() {
2650
2699
  }
2651
2700
  //#endregion
2652
2701
  //#region src/composables/useDragDrop.ts
2653
- function ea(e) {
2702
+ function ia(e) {
2654
2703
  let { onBlockMove: t, onBlockAdd: n } = e, r = C(!1), i = C(null), a = C(null);
2655
2704
  function o(e) {
2656
2705
  r.value = !0, i.value = e;
@@ -2700,7 +2749,7 @@ function ea(e) {
2700
2749
  }
2701
2750
  //#endregion
2702
2751
  //#region src/composables/useFonts.ts
2703
- var ta = [
2752
+ var aa = [
2704
2753
  {
2705
2754
  value: "Arial",
2706
2755
  label: "Arial"
@@ -2729,7 +2778,7 @@ var ta = [
2729
2778
  value: "Courier New",
2730
2779
  label: "Courier New"
2731
2780
  }
2732
- ], na = {
2781
+ ], oa = {
2733
2782
  arial: "Arial, sans-serif",
2734
2783
  helvetica: "Helvetica, sans-serif",
2735
2784
  georgia: "Georgia, serif",
@@ -2737,14 +2786,14 @@ var ta = [
2737
2786
  verdana: "Verdana, sans-serif",
2738
2787
  "trebuchet ms": "'Trebuchet MS', sans-serif",
2739
2788
  "courier new": "'Courier New', monospace"
2740
- }, ra = "Arial, sans-serif";
2741
- function ia(e) {
2742
- let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? ra);
2789
+ }, sa = "Arial, sans-serif";
2790
+ function ca(e) {
2791
+ let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? sa);
2743
2792
  function a(e) {
2744
2793
  n.value = e;
2745
2794
  }
2746
2795
  let o = O(() => {
2747
- let e = [...ta];
2796
+ let e = [...aa];
2748
2797
  if (!n.value) return e.sort((e, t) => e.label.localeCompare(t.label));
2749
2798
  let r = t.value.map((e) => ({
2750
2799
  value: e.name,
@@ -2757,23 +2806,23 @@ function ia(e) {
2757
2806
  return o.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2758
2807
  }
2759
2808
  function u(e) {
2760
- return ta.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2809
+ return aa.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2761
2810
  }
2762
2811
  function d() {
2763
2812
  if (e?.defaultFont) {
2764
- if (!n.value && !u(e.defaultFont)) return ra;
2813
+ if (!n.value && !u(e.defaultFont)) return sa;
2765
2814
  if (c(e.defaultFont)) {
2766
2815
  let t = o.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
2767
2816
  if (t) return t.value;
2768
2817
  }
2769
2818
  }
2770
- return ra;
2819
+ return sa;
2771
2820
  }
2772
2821
  let f = O(() => d());
2773
2822
  function p(e) {
2774
2823
  if (!e) return i.value;
2775
2824
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
2776
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : na[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2825
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : oa[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2777
2826
  }
2778
2827
  let m = [], h = !1;
2779
2828
  async function g() {
@@ -2789,7 +2838,7 @@ function ia(e) {
2789
2838
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
2790
2839
  });
2791
2840
  } catch (t) {
2792
- kr.warn(`Failed to load custom font "${e.name}":`, t);
2841
+ jr.warn(`Failed to load custom font "${e.name}":`, t);
2793
2842
  }
2794
2843
  });
2795
2844
  await Promise.allSettled(e), !h && (r.value = !0);
@@ -2816,8 +2865,8 @@ function ia(e) {
2816
2865
  }
2817
2866
  //#endregion
2818
2867
  //#region src/composables/useLogicTag.ts
2819
- function aa() {
2820
- let e = v(er, []), t = v(tr, []), n = v(Xn, dt.liquid), r = v(rr, null), i = v(nr, null), a = C(!1), o = !!r || e.length > 0 || t.length > 0, s = e.length > 0 || t.length > 0;
2868
+ function la() {
2869
+ let e = v(nr, []), t = v(rr, []), n = v(Qn, dt.liquid), r = v(ar, null), i = v(ir, null), a = C(!1), o = !!r || e.length > 0 || t.length > 0, s = e.length > 0 || t.length > 0;
2821
2870
  async function c() {
2822
2871
  if (r) {
2823
2872
  a.value = !0;
@@ -2848,12 +2897,12 @@ function aa() {
2848
2897
  }
2849
2898
  //#endregion
2850
2899
  //#region src/utils/mergeTagNodeSpec.ts
2851
- function oa(e, t, n) {
2852
- return bt(e, n) ? {
2900
+ function ua(e, t, n) {
2901
+ return St(e, n) ? {
2853
2902
  type: "logicMergeTagNode",
2854
2903
  attrs: {
2855
2904
  value: e,
2856
- keyword: xt(e, n)
2905
+ keyword: Ct(e, n)
2857
2906
  }
2858
2907
  } : {
2859
2908
  type: "mergeTagNode",
@@ -2865,15 +2914,15 @@ function oa(e, t, n) {
2865
2914
  }
2866
2915
  //#endregion
2867
2916
  //#region src/utils/insertLogicTag.ts
2868
- function sa(e) {
2917
+ function da(e) {
2869
2918
  return "before" in e && "after" in e;
2870
2919
  }
2871
- function ca(e, t, n) {
2872
- if (!sa(t)) {
2873
- e.chain().focus().insertContent(oa(t.value, t.label, n)).run();
2920
+ function fa(e, t, n) {
2921
+ if (!da(t)) {
2922
+ e.chain().focus().insertContent(ua(t.value, t.label, n)).run();
2874
2923
  return;
2875
2924
  }
2876
- let r = oa(t.before, t.label, n), i = oa(t.after, t.label, n), { from: a, to: o } = e.state.selection;
2925
+ let r = ua(t.before, t.label, n), i = ua(t.after, t.label, n), { from: a, to: o } = e.state.selection;
2877
2926
  if (a !== o) {
2878
2927
  e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
2879
2928
  return;
@@ -2882,9 +2931,9 @@ function ca(e, t, n) {
2882
2931
  }
2883
2932
  //#endregion
2884
2933
  //#region src/composables/useRichTextLinkDialog.ts
2885
- function la(e) {
2934
+ function pa(e) {
2886
2935
  let t = C(!1), n = C(""), r = C(null);
2887
- Ji(r, t);
2936
+ Qi(r, t);
2888
2937
  function i() {
2889
2938
  let r = e.value?.getAttributes("link").href || "";
2890
2939
  n.value = r, t.value = !0;
@@ -2936,8 +2985,8 @@ function la(e) {
2936
2985
  }
2937
2986
  //#endregion
2938
2987
  //#region src/composables/useRichTextEditor.ts
2939
- function ua(e) {
2940
- let t = v(Ln, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = Qi(), { canInsertLogicTag: l, isRequesting: d, requestLogicTag: f } = aa(), p = v(In, null), m = (u(p) ? p.value : p)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", h = pt(s), g = n(null), { showLinkDialog: _, linkUrl: y, linkDialogRef: b, openLinkDialog: x, insertLink: S, removeLink: w, closeLinkDialog: T, handleLinkKeydown: E } = la(g), { start: ee, stop: D } = cn(() => g.value?.commands.focus("end"), 0, { immediate: !1 }), te = n(null), ne = C(!0), O = C(null), k = !1;
2988
+ function ma(e) {
2989
+ let t = v(zn, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = na(), { canInsertLogicTag: l, isRequesting: d, requestLogicTag: f } = la(), p = v(Rn, null), m = (u(p) ? p.value : p)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", h = mt(s), g = n(null), { showLinkDialog: _, linkUrl: y, linkDialogRef: b, openLinkDialog: x, insertLink: S, removeLink: w, closeLinkDialog: T, handleLinkKeydown: E } = pa(g), { start: ee, stop: D } = un(() => g.value?.commands.focus("end"), 0, { immediate: !1 }), te = n(null), ne = C(!0), O = C(null), k = !1;
2941
2990
  async function A() {
2942
2991
  O.value = null, ne.value = !0;
2943
2992
  try {
@@ -2967,7 +3016,7 @@ function ua(e) {
2967
3016
  g.value = l, ne.value = !1, ee();
2968
3017
  } catch (t) {
2969
3018
  if (k) return;
2970
- kr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), O.value = t instanceof Error ? t.message : "Failed to load editor", ne.value = !1;
3019
+ jr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), O.value = t instanceof Error ? t.message : "Failed to load editor", ne.value = !1;
2971
3020
  }
2972
3021
  }
2973
3022
  function j() {
@@ -2994,7 +3043,7 @@ function ua(e) {
2994
3043
  }
2995
3044
  async function P() {
2996
3045
  let e = await f();
2997
- k || (e && g.value ? ca(g.value, e, s) : g.value?.commands.focus());
3046
+ k || (e && g.value ? fa(g.value, e, s) : g.value?.commands.focus());
2998
3047
  }
2999
3048
  return {
3000
3049
  editor: g,
@@ -3022,9 +3071,9 @@ function ua(e) {
3022
3071
  }
3023
3072
  //#endregion
3024
3073
  //#region src/composables/useSmallScreenNotice.ts
3025
- var da = "(max-width: 767px)";
3026
- function fa(e) {
3027
- let t = Sn(da);
3074
+ var ha = "(max-width: 767px)";
3075
+ function ga(e) {
3076
+ let t = wn(ha);
3028
3077
  return {
3029
3078
  isSmallScreen: t,
3030
3079
  showNotice: O(() => (P(e) ?? !0) && t.value)
@@ -3032,20 +3081,20 @@ function fa(e) {
3032
3081
  }
3033
3082
  //#endregion
3034
3083
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
3035
- var pa = { class: "tpl:w-full" }, ma = {
3084
+ var _a = { class: "tpl:w-full" }, va = {
3036
3085
  key: 0,
3037
3086
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-warning)] tpl:bg-[var(--tpl-warning-light)]"
3038
- }, ha = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ga = {
3087
+ }, ya = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ba = {
3039
3088
  key: 1,
3040
3089
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-danger)] tpl:bg-[var(--tpl-danger-light)]"
3041
- }, _a = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, va = {
3090
+ }, xa = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Sa = {
3042
3091
  key: 2,
3043
3092
  class: "tpl:relative"
3044
- }, ya = ["innerHTML"], ba = {
3093
+ }, Ca = ["innerHTML"], wa = {
3045
3094
  key: 0,
3046
3095
  class: "tpl:absolute tpl:inset-0 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:rounded tpl:backdrop-blur-[2px]",
3047
3096
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
3048
- }, xa = /* @__PURE__ */ B({
3097
+ }, Ta = /* @__PURE__ */ B({
3049
3098
  __name: "CustomBlock",
3050
3099
  props: {
3051
3100
  block: {},
@@ -3053,7 +3102,7 @@ var pa = { class: "tpl:w-full" }, ma = {
3053
3102
  },
3054
3103
  emits: ["fetchData"],
3055
3104
  setup(e, { emit: t }) {
3056
- let n = e, i = t, { t: a } = Y(), o = v(Gn, null), s = C(""), c = C(!1), l = O(() => o?.getDefinition(n.block.customType)), u = O(() => !!l.value), { isFetching: d, fetch: p, needsFetch: m, hasDataSource: h } = Ft({
3105
+ let n = e, i = t, { t: a } = Y(), o = v(qn, null), s = C(""), c = C(!1), l = O(() => o?.getDefinition(n.block.customType)), u = O(() => !!l.value), { isFetching: d, fetch: p, needsFetch: m, hasDataSource: h } = Lt({
3057
3106
  definition: l,
3058
3107
  block: O(() => n.block),
3059
3108
  onUpdate: (e, t) => {
@@ -3074,15 +3123,15 @@ var pa = { class: "tpl:w-full" }, ma = {
3074
3123
  }
3075
3124
  }
3076
3125
  }
3077
- let _ = nn(g, 150);
3126
+ let _ = an(g, 150);
3078
3127
  return r(() => {
3079
3128
  g();
3080
3129
  }), H(() => n.block.fieldValues, () => {
3081
3130
  _();
3082
- }, { deep: !0 }), (e, t) => (f(), k("div", pa, [u.value ? c.value ? (f(), k("div", ga, [V(j(Mi), {
3131
+ }, { deep: !0 }), (e, t) => (f(), k("div", _a, [u.value ? c.value ? (f(), k("div", ba, [V(j(Ii), {
3083
3132
  size: 24,
3084
3133
  class: "tpl:text-[var(--tpl-danger)]"
3085
- }), I("span", _a, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", va, [I("div", { innerHTML: s.value }, null, 8, ya), j(h) && j(m) ? (f(), k("div", ba, [j(d) ? (f(), N(Gi, {
3134
+ }), I("span", xa, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", Sa, [I("div", { innerHTML: s.value }, null, 8, Ca), j(h) && j(m) ? (f(), k("div", wa, [j(d) ? (f(), N(Yi, {
3086
3135
  key: 1,
3087
3136
  class: "tpl:w-48"
3088
3137
  })) : (f(), k("button", {
@@ -3090,16 +3139,16 @@ var pa = { class: "tpl:w-full" }, ma = {
3090
3139
  type: "button",
3091
3140
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:shadow-sm tpl:transition-all tpl:duration-150 hover:tpl:border-[var(--tpl-primary)] hover:tpl:shadow-md tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
3092
3141
  onClick: t[0] ||= M((...e) => j(p) && j(p)(...e), ["stop"])
3093
- }, [l.value?.icon ? (f(), N(Bi, {
3142
+ }, [l.value?.icon ? (f(), N(Wi, {
3094
3143
  key: 0,
3095
3144
  icon: l.value.icon,
3096
3145
  size: 16
3097
- }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", ma, [V(j(xi), {
3146
+ }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", va, [V(j(Ti), {
3098
3147
  size: 24,
3099
3148
  class: "tpl:text-[var(--tpl-warning)]"
3100
- }), I("span", ha, D(j(a).customBlocks.definitionNotFound), 1)]))]));
3149
+ }), I("span", ya, D(j(a).customBlocks.definitionNotFound), 1)]))]));
3101
3150
  }
3102
- }), Sa = { class: "tpl:w-full" }, Ca = /* @__PURE__ */ B({
3151
+ }), Ea = { class: "tpl:w-full" }, Da = /* @__PURE__ */ B({
3103
3152
  __name: "DividerBlock",
3104
3153
  props: {
3105
3154
  block: {},
@@ -3111,18 +3160,18 @@ var pa = { class: "tpl:w-full" }, ma = {
3111
3160
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
3112
3161
  margin: t.block.width === "full" ? "0" : "0 auto"
3113
3162
  }));
3114
- return (e, t) => (f(), k("div", Sa, [I("hr", {
3163
+ return (e, t) => (f(), k("div", Ea, [I("hr", {
3115
3164
  class: "tpl:m-0 tpl:border-none",
3116
3165
  style: L(n.value)
3117
3166
  }, null, 4)]));
3118
3167
  }
3119
- }), wa = { class: "tpl:w-full" }, Ta = { class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)]" }, Ea = {
3168
+ }), Oa = { class: "tpl:w-full" }, ka = { class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)]" }, Aa = {
3120
3169
  key: 0,
3121
3170
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
3122
- }, Da = {
3171
+ }, ja = {
3123
3172
  key: 1,
3124
3173
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
3125
- }, Oa = /* @__PURE__ */ B({
3174
+ }, Ma = /* @__PURE__ */ B({
3126
3175
  __name: "HtmlBlock",
3127
3176
  props: {
3128
3177
  block: {},
@@ -3130,15 +3179,15 @@ var pa = { class: "tpl:w-full" }, ma = {
3130
3179
  },
3131
3180
  setup(e) {
3132
3181
  let t = e, { t: n } = Y(), r = O(() => t.block.content.trim().length > 0);
3133
- return (e, t) => (f(), k("div", wa, [I("div", Ta, [V(j(oi), {
3182
+ return (e, t) => (f(), k("div", Oa, [I("div", ka, [V(j(ui), {
3134
3183
  size: 24,
3135
3184
  class: "tpl:text-[var(--tpl-text-dim)]"
3136
- }), r.value ? (f(), k("span", Ea, D(j(n).html.preview), 1)) : (f(), k("span", Da, D(j(n).html.empty), 1))])]));
3185
+ }), r.value ? (f(), k("span", Aa, D(j(n).html.preview), 1)) : (f(), k("span", ja, D(j(n).html.empty), 1))])]));
3137
3186
  }
3138
3187
  });
3139
3188
  //#endregion
3140
3189
  //#region src/composables/useAliveFlag.ts
3141
- function ka() {
3190
+ function Na() {
3142
3191
  let e = { alive: !0 };
3143
3192
  return re(() => {
3144
3193
  e.alive = !1;
@@ -3146,13 +3195,13 @@ function ka() {
3146
3195
  }
3147
3196
  //#endregion
3148
3197
  //#region src/composables/useImageDrop.ts
3149
- var Aa = "image/";
3150
- function ja(e) {
3151
- let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 ? !0 : P(r), { isOverDropZone: a } = Tn(t, {
3198
+ var Pa = "image/";
3199
+ function Fa(e) {
3200
+ let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 || P(r), { isOverDropZone: a } = Dn(t, {
3152
3201
  preventDefaultForUnhandled: !0,
3153
3202
  onDrop: (e) => {
3154
3203
  if (!i()) return;
3155
- let t = (e ?? []).filter((e) => e.type.startsWith(Aa));
3204
+ let t = (e ?? []).filter((e) => e.type.startsWith(Pa));
3156
3205
  t.length > 0 && n([t[0]]);
3157
3206
  }
3158
3207
  });
@@ -3160,17 +3209,17 @@ function ja(e) {
3160
3209
  }
3161
3210
  //#endregion
3162
3211
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
3163
- var Ma = {
3212
+ var Ia = {
3164
3213
  key: 0,
3165
3214
  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-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-xs tpl:font-medium tpl:border-[var(--tpl-primary)] tpl:text-[var(--tpl-primary)]",
3166
3215
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
3167
- }, Na = ["href"], Pa = ["src", "alt"], Fa = ["src", "alt"], Ia = {
3216
+ }, La = ["href"], Ra = ["src", "alt"], za = ["src", "alt"], Ba = {
3168
3217
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3169
3218
  style: { opacity: "0.7" }
3170
- }, La = ["href"], Ra = ["src", "alt"], za = ["src", "alt"], Ba = {
3219
+ }, Va = ["href"], Ha = ["src", "alt"], Ua = ["src", "alt"], Wa = {
3171
3220
  key: 4,
3172
3221
  class: "tpl:flex tpl:min-h-[100px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
3173
- }, Va = ["aria-label"], Ha = { key: 1 }, Ua = /* @__PURE__ */ B({
3222
+ }, Ga = ["aria-label"], Ka = { key: 1 }, qa = /* @__PURE__ */ B({
3174
3223
  __name: "ImageBlock",
3175
3224
  props: {
3176
3225
  block: {},
@@ -3178,7 +3227,7 @@ var Ma = {
3178
3227
  },
3179
3228
  emits: ["update"],
3180
3229
  setup(e, { emit: t }) {
3181
- let n = e, r = t, { t: i } = Y(), { syntax: a } = Qi(), o = v(ir, null), s = O(() => !!o), c = ka();
3230
+ let n = e, r = t, { t: i } = Y(), { syntax: a } = na(), o = v(or, null), s = O(() => !!o), c = Na();
3182
3231
  async function l() {
3183
3232
  let e = await o?.({ accept: ["images"] });
3184
3233
  if (c.alive && e) {
@@ -3205,7 +3254,7 @@ var Ma = {
3205
3254
  }
3206
3255
  }
3207
3256
  }
3208
- let { isOver: h } = ja({
3257
+ let { isOver: h } = Fa({
3209
3258
  target: u,
3210
3259
  enabled: p,
3211
3260
  onFiles: m
@@ -3218,18 +3267,18 @@ var Ma = {
3218
3267
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
3219
3268
  marginRight: e === "center" ? "auto" : void 0
3220
3269
  };
3221
- }), y = O(() => yt(n.block.src, a));
3270
+ }), y = O(() => xt(n.block.src, a));
3222
3271
  return (t, n) => (f(), k("div", {
3223
3272
  ref_key: "dropZoneRef",
3224
3273
  ref: u,
3225
3274
  "data-testid": "image-drop-zone",
3226
3275
  class: "tpl:relative tpl:w-full",
3227
3276
  style: L(g.value)
3228
- }, [p.value && (j(h) || d.value) ? (f(), k("div", Ma, [d.value ? (f(), k(R, { key: 0 }, [V(j(_i), {
3277
+ }, [p.value && (j(h) || d.value) ? (f(), k("div", Ia, [d.value ? (f(), k(R, { key: 0 }, [V(j(xi), {
3229
3278
  class: "tpl-spinner",
3230
3279
  size: 20,
3231
3280
  "stroke-width": 2
3232
- }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Pi), {
3281
+ }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Ri), {
3233
3282
  size: 20,
3234
3283
  "stroke-width": 1.5
3235
3284
  }), z(" " + D(j(i).image.dropToUpload), 1)], 64))])) : A("", !0), e.block.src && y.value && e.block.placeholderUrl ? (f(), k(R, { key: 1 }, [e.block.linkUrl ? (f(), k("a", {
@@ -3244,22 +3293,22 @@ var Ma = {
3244
3293
  src: e.block.placeholderUrl,
3245
3294
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3246
3295
  style: L(_.value)
3247
- }, null, 12, Pa)], 8, Na)) : (f(), k("img", {
3296
+ }, null, 12, Ra)], 8, La)) : (f(), k("img", {
3248
3297
  key: 1,
3249
3298
  class: "tpl:border-0",
3250
3299
  src: e.block.placeholderUrl,
3251
3300
  alt: e.block.alt,
3252
3301
  style: L(_.value)
3253
- }, null, 12, Fa))], 64)) : e.block.src && y.value ? (f(), k("div", {
3302
+ }, null, 12, za))], 64)) : e.block.src && y.value ? (f(), k("div", {
3254
3303
  key: 2,
3255
3304
  class: "tpl:!flex tpl:min-h-[120px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
3256
3305
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, _.value])
3257
- }, [V(j(hi), {
3306
+ }, [V(j(yi), {
3258
3307
  size: 32,
3259
3308
  "stroke-width": 1.5,
3260
3309
  class: "tpl:text-[var(--tpl-primary)]",
3261
3310
  style: { opacity: "0.5" }
3262
- }), I("span", Ia, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [e.block.linkUrl ? (f(), k("a", {
3311
+ }), I("span", Ba, [V(Vr, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [e.block.linkUrl ? (f(), k("a", {
3263
3312
  key: 0,
3264
3313
  href: e.block.linkUrl,
3265
3314
  target: "_blank",
@@ -3271,26 +3320,26 @@ var Ma = {
3271
3320
  src: e.block.src,
3272
3321
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3273
3322
  style: L(_.value)
3274
- }, null, 12, Ra)], 8, La)) : (f(), k("img", {
3323
+ }, null, 12, Ha)], 8, Va)) : (f(), k("img", {
3275
3324
  key: 1,
3276
3325
  class: "tpl:border-0",
3277
3326
  src: e.block.src,
3278
3327
  alt: e.block.alt,
3279
3328
  style: L(_.value)
3280
- }, null, 12, za))], 64)) : (f(), k("div", Ba, [s.value ? (f(), k("button", {
3329
+ }, null, 12, Ua))], 64)) : (f(), k("div", Wa, [s.value ? (f(), k("button", {
3281
3330
  key: 0,
3282
3331
  "aria-label": j(i).image.browseMedia,
3283
3332
  class: "tpl:flex tpl:items-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:cursor-pointer tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-bg)]",
3284
3333
  onClick: M(l, ["stop"])
3285
- }, [V(j(hi), {
3334
+ }, [V(j(yi), {
3286
3335
  size: 14,
3287
3336
  "stroke-width": 1.5
3288
- }), z(" " + D(j(i).image.browseMedia), 1)], 8, Va)) : (f(), k("span", Ha, D(j(i).image.clickToAdd), 1))]))], 4));
3337
+ }), z(" " + D(j(i).image.browseMedia), 1)], 8, Ga)) : (f(), k("span", Ka, D(j(i).image.clickToAdd), 1))]))], 4));
3289
3338
  }
3290
- }), Wa = { class: "tpl:w-full" }, Ga = ["href"], Ka = {
3339
+ }), Ja = { class: "tpl:w-full" }, Ya = ["href"], Xa = {
3291
3340
  key: 1,
3292
3341
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3293
- }, qa = /* @__PURE__ */ B({
3342
+ }, Za = /* @__PURE__ */ B({
3294
3343
  __name: "MenuBlock",
3295
3344
  props: {
3296
3345
  block: {},
@@ -3309,7 +3358,7 @@ var Ma = {
3309
3358
  function a(e) {
3310
3359
  return e || t.block.linkColor || t.block.color;
3311
3360
  }
3312
- return (t, o) => (f(), k("div", Wa, [i.value ? (f(), k("div", {
3361
+ return (t, o) => (f(), k("div", Ja, [i.value ? (f(), k("div", {
3313
3362
  key: 0,
3314
3363
  style: L(r.value)
3315
3364
  }, [(f(!0), k(R, null, h(e.block.items, (t, n) => (f(), k(R, { key: t.id }, [I("a", {
@@ -3321,15 +3370,15 @@ var Ma = {
3321
3370
  textDecoration: t.underline ? "underline" : "none"
3322
3371
  }),
3323
3372
  onClick: o[0] ||= M(() => {}, ["prevent"])
3324
- }, D(t.text || "..."), 13, Ga), n < e.block.items.length - 1 ? (f(), k("span", {
3373
+ }, [V(Vr, { text: t.text || "..." }, null, 8, ["text"])], 12, Ya), n < e.block.items.length - 1 ? (f(), k("span", {
3325
3374
  key: 0,
3326
3375
  style: L({
3327
3376
  color: e.block.separatorColor,
3328
3377
  padding: `0 ${e.block.spacing}px`
3329
3378
  })
3330
- }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", Ka, [V(j(yi), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3379
+ }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", Xa, [V(j(Ci), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3331
3380
  }
3332
- }), Ja = /* @__PURE__ */ new Set([
3381
+ }), Qa = /* @__PURE__ */ new Set([
3333
3382
  "http",
3334
3383
  "https",
3335
3384
  "mailto",
@@ -3339,7 +3388,7 @@ var Ma = {
3339
3388
  "sms",
3340
3389
  "xmpp",
3341
3390
  "cid"
3342
- ]), Ya = /* @__PURE__ */ new Set([
3391
+ ]), $a = /* @__PURE__ */ new Set([
3343
3392
  "SCRIPT",
3344
3393
  "STYLE",
3345
3394
  "IFRAME",
@@ -3349,7 +3398,7 @@ var Ma = {
3349
3398
  "META",
3350
3399
  "BASE",
3351
3400
  "FORM"
3352
- ]), Xa = /* @__PURE__ */ new Set([
3401
+ ]), eo = /* @__PURE__ */ new Set([
3353
3402
  "href",
3354
3403
  "xlink:href",
3355
3404
  "formaction",
@@ -3358,16 +3407,16 @@ var Ma = {
3358
3407
  "background",
3359
3408
  "poster"
3360
3409
  ]);
3361
- function Za(e, t) {
3410
+ function to(e, t) {
3362
3411
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
3363
3412
  if (!n || n.startsWith("#")) return !0;
3364
3413
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
3365
3414
  if (!r) return !0;
3366
3415
  let i = r[1].toLowerCase();
3367
- return Ja.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3416
+ return Qa.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3368
3417
  }
3369
- function Qa(e) {
3370
- if (Ya.has(e.tagName)) {
3418
+ function no(e) {
3419
+ if ($a.has(e.tagName)) {
3371
3420
  e.remove();
3372
3421
  return;
3373
3422
  }
@@ -3379,29 +3428,29 @@ function Qa(e) {
3379
3428
  e.removeAttribute(n);
3380
3429
  continue;
3381
3430
  }
3382
- if (Xa.has(t)) {
3383
- Za(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3431
+ if (eo.has(t)) {
3432
+ to(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3384
3433
  continue;
3385
3434
  }
3386
3435
  if (t === "src") {
3387
- Za(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3436
+ to(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3388
3437
  continue;
3389
3438
  }
3390
3439
  t === "srcdoc" && e.removeAttribute(n);
3391
3440
  }
3392
3441
  let n = Array.from(e.children);
3393
- for (let e of n) Qa(e);
3442
+ for (let e of n) no(e);
3394
3443
  }
3395
- function $a(e) {
3444
+ function ro(e) {
3396
3445
  if (typeof DOMParser > "u") return e;
3397
3446
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
3398
- for (let e of n) Qa(e);
3447
+ for (let e of n) no(e);
3399
3448
  return t.innerHTML;
3400
3449
  }
3401
3450
  //#endregion
3402
3451
  //#region src/composables/useEditableTextBlock.ts
3403
- function eo(e) {
3404
- let t = v(Yn, []), { syntax: n } = Qi(), r = O(() => $a(St(vt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = Dn(a), c = O(() => ({
3452
+ function io(e) {
3453
+ let t = v(Zn, []), { syntax: n } = na(), r = O(() => ro(wt(bt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = kn(a), c = O(() => ({
3405
3454
  top: o.value - 8,
3406
3455
  left: s.value
3407
3456
  }));
@@ -3422,14 +3471,14 @@ function eo(e) {
3422
3471
  }
3423
3472
  //#endregion
3424
3473
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
3425
- var to = ["innerHTML"], no = /* @__PURE__ */ B({
3474
+ var ao = ["innerHTML"], oo = /* @__PURE__ */ B({
3426
3475
  __name: "ParagraphBlock",
3427
3476
  props: {
3428
3477
  block: {},
3429
3478
  viewport: {}
3430
3479
  },
3431
3480
  setup(e) {
3432
- let t = e, n = E(() => import("./ParagraphEditor-DwZqLJp2.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = eo(() => t.block.content);
3481
+ let t = e, n = E(() => import("./ParagraphEditor-B3fG0vge.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = io(() => t.block.content);
3433
3482
  return (t, l) => (f(), k("div", {
3434
3483
  ref_key: "blockRef",
3435
3484
  ref: i,
@@ -3448,46 +3497,46 @@ var to = ["innerHTML"], no = /* @__PURE__ */ B({
3448
3497
  key: 1,
3449
3498
  class: "tpl-text-content tpl:outline-none [&_a]:tpl:underline [&_li]:tpl:my-1 [&_ol]:tpl:my-2 [&_ol]:tpl:pl-6 [&_p]:tpl:m-0 [&_p]:tpl:mb-2 [&_p:last-child]:tpl:mb-0 [&_s]:tpl:line-through [&_sub]:tpl:align-sub [&_sub]:tpl:text-[0.75em] [&_sup]:tpl:align-super [&_sup]:tpl:text-[0.75em] [&_ul]:tpl:my-2 [&_ul]:tpl:pl-6",
3450
3499
  innerHTML: j(o)
3451
- }, null, 8, to))], 544));
3500
+ }, null, 8, ao))], 544));
3452
3501
  }
3453
3502
  });
3454
3503
  //#endregion
3455
3504
  //#region src/utils/blockComponentResolver.ts
3456
- function ro(e, t, n) {
3505
+ function so(e, t, n) {
3457
3506
  if (t) {
3458
3507
  let n = t.getComponent(e);
3459
3508
  if (n) return n;
3460
3509
  }
3461
3510
  return n[e.type] ?? null;
3462
3511
  }
3463
- function io(e) {
3512
+ function co(e) {
3464
3513
  let { padding: t, backgroundColor: n } = e.styles, r = {
3465
3514
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
3466
3515
  backgroundColor: n || "transparent"
3467
3516
  };
3468
3517
  return e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
3469
3518
  }
3470
- function ao(e) {
3519
+ function lo(e) {
3471
3520
  if (e.type !== "section" || !e.wrapper) return null;
3472
3521
  let t = e.wrapper, n = {};
3473
3522
  return t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.padding && (n.padding = `${t.padding.top}px ${t.padding.right}px ${t.padding.bottom}px ${t.padding.left}px`), t.borderRadius && t.borderRadius > 0 && (n.borderRadius = `${t.borderRadius}px`), n;
3474
3523
  }
3475
3524
  //#endregion
3476
3525
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
3477
- var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3526
+ var uo = ["data-block-id", "data-block-type"], fo = ["aria-label"], po = [
3478
3527
  "aria-label",
3479
3528
  "aria-pressed",
3480
3529
  "title"
3481
- ], lo = ["aria-label", "title"], uo = ["aria-label", "title"], fo = ["aria-label", "title"], po = {
3530
+ ], mo = ["aria-label", "title"], ho = ["aria-label", "title"], go = ["aria-label", "title"], _o = {
3482
3531
  key: 1,
3483
3532
  class: "tpl-block-hidden-overlay tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-[5] tpl:flex tpl:items-center tpl:justify-center tpl:rounded-sm"
3484
- }, mo = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, ho = {
3533
+ }, vo = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, yo = {
3485
3534
  key: 2,
3486
3535
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
3487
- }, go = ["aria-label", "title"], _o = {
3536
+ }, bo = ["aria-label", "title"], xo = {
3488
3537
  key: 3,
3489
3538
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
3490
- }, vo = ["aria-label"], yo = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
3539
+ }, So = ["aria-label"], Co = /*#__PURE__*/ Gi(/* @__PURE__ */ B({
3491
3540
  __name: "BlockWrapper",
3492
3541
  props: {
3493
3542
  block: {},
@@ -3497,7 +3546,7 @@ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3497
3546
  },
3498
3547
  emits: ["select"],
3499
3548
  setup(e, { emit: t }) {
3500
- let n = E(() => import("./BlockIssueBadge-DHOe0pgx.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(cr, null), l = C(null), u = O(() => c?.liftedBlockId.value === r.block.id), d = O(() => u.value ? s(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
3549
+ let n = E(() => import("./BlockIssueBadge-BxwEiiF3.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(ur, null), l = C(null), u = O(() => c?.liftedBlockId.value === r.block.id), d = O(() => u.value ? s(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
3501
3550
  async function p() {
3502
3551
  await m(), l.value?.focus();
3503
3552
  }
@@ -3523,13 +3572,13 @@ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3523
3572
  let g = O(() => !r.viewport || !r.block.visibility ? !1 : r.block.visibility[r.viewport] === !1), _ = O(() => r.previewMode === !0 && g.value), y = O(() => r.viewport ? {
3524
3573
  desktop: a.viewport.desktop,
3525
3574
  mobile: a.viewport.mobile
3526
- }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(zn, null), S = v(Bn, null), w = v(sr, {}), T = O(() => !!w.savedModules), ee = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3527
- let e = io(r.block), t = {
3575
+ }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(Vn, null), S = v(Hn, null), w = v(lr, {}), T = O(() => !!w.savedModules), ee = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3576
+ let e = co(r.block), t = {
3528
3577
  padding: e.padding,
3529
3578
  backgroundColor: e.backgroundColor
3530
3579
  };
3531
3580
  return e.borderRadius && (t.borderRadius = e.borderRadius), t;
3532
- }), ne = O(() => ao(r.block));
3581
+ }), ne = O(() => lo(r.block));
3533
3582
  function re(e) {
3534
3583
  r.previewMode || (e.stopPropagation(), i("select"));
3535
3584
  }
@@ -3572,60 +3621,60 @@ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3572
3621
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
3573
3622
  title: j(a).blockActions.drag,
3574
3623
  onKeydown: h
3575
- }, [V(j(pi), {
3624
+ }, [V(j(_i), {
3576
3625
  size: 14,
3577
3626
  "stroke-width": 1.5
3578
- })], 40, co),
3627
+ })], 40, po),
3579
3628
  I("button", {
3580
3629
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3581
3630
  "aria-label": j(a).blockActions.duplicate,
3582
3631
  title: j(a).blockActions.duplicate,
3583
3632
  onClick: M(ie, ["stop"])
3584
- }, [V(j(si), {
3633
+ }, [V(j(di), {
3585
3634
  size: 14,
3586
3635
  "stroke-width": 1.5
3587
- })], 8, lo),
3636
+ })], 8, mo),
3588
3637
  T.value ? (f(), k("button", {
3589
3638
  key: 0,
3590
3639
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3591
3640
  "aria-label": j(a).blockActions.saveAsModule,
3592
3641
  title: j(a).blockActions.saveAsModule,
3593
3642
  onClick: M(P, ["stop"])
3594
- }, [V(j(Xr), {
3643
+ }, [V(j(ei), {
3595
3644
  size: 14,
3596
3645
  "stroke-width": 1.5
3597
- })], 8, uo)) : A("", !0),
3646
+ })], 8, ho)) : A("", !0),
3598
3647
  I("button", {
3599
3648
  class: "tpl-block-action-btn tpl-block-delete-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3600
3649
  "aria-label": j(a).blockActions.delete,
3601
3650
  title: j(a).blockActions.delete,
3602
3651
  onClick: M(N, ["stop"])
3603
- }, [V(j(ji), {
3652
+ }, [V(j(Fi), {
3604
3653
  size: 14,
3605
3654
  "stroke-width": 1.5
3606
- })], 8, fo)
3607
- ], 8, so)) : A("", !0),
3608
- g.value ? (f(), k("div", po, [I("span", mo, [V(j(ci), {
3655
+ })], 8, go)
3656
+ ], 8, fo)) : A("", !0),
3657
+ g.value ? (f(), k("div", _o, [I("span", vo, [V(j(fi), {
3609
3658
  size: 12,
3610
3659
  "stroke-width": 1.5
3611
3660
  }), z(" " + D(j(s)(j(a).blockActions.hiddenOnViewport, { viewport: y.value })), 1)])])) : A("", !0),
3612
- b.value && !g.value ? (f(), k("div", ho, [I("button", {
3661
+ b.value && !g.value ? (f(), k("div", yo, [I("button", {
3613
3662
  class: "tpl-condition-toggle tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1 tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-primary)] tpl:border tpl:border-[var(--tpl-border)]",
3614
3663
  "aria-label": j(a).blockActions.conditionToggle,
3615
3664
  title: e.block.displayCondition?.label,
3616
3665
  onClick: M(ae, ["stop"])
3617
- }, [V(j(fi), {
3666
+ }, [V(j(gi), {
3618
3667
  size: 12,
3619
3668
  "stroke-width": 2
3620
- })], 8, go)])) : A("", !0),
3621
- ee.value > 0 && !g.value ? (f(), k("div", _o, [I("button", {
3669
+ })], 8, bo)])) : A("", !0),
3670
+ ee.value > 0 && !g.value ? (f(), k("div", xo, [I("button", {
3622
3671
  class: "tpl-comment-indicator tpl:flex tpl:min-h-6 tpl:min-w-6 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-0.5 tpl:rounded-full tpl:border-none tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-semibold tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary)]",
3623
3672
  "aria-label": j(s)(j(a).blockActions.comments, { count: String(ee.value) }),
3624
3673
  onClick: r[0] ||= M((t) => j(w).comments?.openForBlock(e.block.id), ["stop"])
3625
- }, [V(j(vi), {
3674
+ }, [V(j(Si), {
3626
3675
  size: 12,
3627
3676
  "stroke-width": 2.5
3628
- }), z(" " + D(ee.value), 1)], 8, vo)])) : A("", !0),
3677
+ }), z(" " + D(ee.value), 1)], 8, So)])) : A("", !0),
3629
3678
  ne.value ? (f(), k("div", {
3630
3679
  key: 4,
3631
3680
  class: "tpl-section-wrapper",
@@ -3638,32 +3687,32 @@ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3638
3687
  class: "tpl-block-content",
3639
3688
  style: L(te.value)
3640
3689
  }, [o(t.$slots, "default", {}, void 0, !0)], 4))
3641
- ], 10, oo));
3690
+ ], 10, uo));
3642
3691
  }
3643
3692
  }), [["__scopeId", "data-v-7aeef19d"]]);
3644
3693
  //#endregion
3645
3694
  //#region src/utils/unwrapParagraph.ts
3646
- function bo(e) {
3695
+ function wo(e) {
3647
3696
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
3648
3697
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
3649
3698
  }
3650
3699
  //#endregion
3651
3700
  //#region src/components/blocks/TitleBlock.vue
3652
- var xo = /* @__PURE__ */ B({
3701
+ var To = /* @__PURE__ */ B({
3653
3702
  __name: "TitleBlock",
3654
3703
  props: {
3655
3704
  block: {},
3656
3705
  viewport: {}
3657
3706
  },
3658
3707
  setup(e) {
3659
- let t = e, n = E(() => import("./TitleEditor-DO1-h3RY.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = eo(() => t.block.content), l = O(() => {
3708
+ let t = e, n = E(() => import("./TitleEditor-BiZbLYF1.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = io(() => t.block.content), l = O(() => {
3660
3709
  let e = {
3661
3710
  fontSize: `${pe[t.block.level]}px`,
3662
3711
  color: t.block.color,
3663
3712
  textAlign: t.block.textAlign
3664
3713
  };
3665
3714
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
3666
- }), u = O(() => `h${t.block.level}`), p = O(() => bo(o.value));
3715
+ }), u = O(() => `h${t.block.level}`), p = O(() => wo(o.value));
3667
3716
  return (t, o) => (f(), k("div", {
3668
3717
  ref_key: "blockRef",
3669
3718
  ref: i,
@@ -3689,16 +3738,16 @@ var xo = /* @__PURE__ */ B({
3689
3738
  });
3690
3739
  //#endregion
3691
3740
  //#region src/utils/sectionColumnDrop.ts
3692
- function So(e) {
3741
+ function Eo(e) {
3693
3742
  return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
3694
3743
  }
3695
3744
  //#endregion
3696
3745
  //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
3697
- var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3746
+ var Do = { class: "tpl:w-full" }, Oo = { class: "tpl:flex tpl:gap-0" }, ko = {
3698
3747
  key: 0,
3699
3748
  "data-testid": "section-drop-hint",
3700
3749
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:flex tpl:items-center tpl:justify-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
3701
- }, Eo = /* @__PURE__ */ B({
3750
+ }, Ao = /* @__PURE__ */ B({
3702
3751
  __name: "SectionBlock",
3703
3752
  props: {
3704
3753
  block: {},
@@ -3706,13 +3755,13 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3706
3755
  },
3707
3756
  setup(e) {
3708
3757
  let t = {
3709
- title: xo,
3710
- paragraph: no,
3711
- image: Ua,
3712
- button: Br,
3713
- divider: Ca,
3714
- custom: xa
3715
- }, n = e, { t: r } = Y(), i = J(Ln, "SectionBlock"), a = v(Bn, null), o = v(Gn, null), s = O(() => {
3758
+ title: To,
3759
+ paragraph: oo,
3760
+ image: qa,
3761
+ button: Wr,
3762
+ divider: Da,
3763
+ custom: Ta
3764
+ }, n = e, { t: r } = Y(), i = J(zn, "SectionBlock"), a = v(Hn, null), o = v(qn, null), s = O(() => {
3716
3765
  switch (n.block.columns) {
3717
3766
  case "2": return ["50%", "50%"];
3718
3767
  case "3": return [
@@ -3738,7 +3787,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3738
3787
  a[e] = r, i.updateBlock(n.block.id, { children: a });
3739
3788
  }
3740
3789
  function m(e) {
3741
- return ro(e, o, t);
3790
+ return so(e, o, t);
3742
3791
  }
3743
3792
  function g(e, t) {
3744
3793
  e.type === "custom" && i.updateBlock(e.id, {
@@ -3746,7 +3795,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3746
3795
  dataSourceFetched: t.dataSourceFetched
3747
3796
  });
3748
3797
  }
3749
- return (t, n) => (f(), k("div", Co, [I("div", wo, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3798
+ return (t, n) => (f(), k("div", Do, [I("div", Oo, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3750
3799
  key: n,
3751
3800
  class: F(["tpl:relative tpl:min-h-[60px] tpl:rounded", u(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
3752
3801
  style: L({ width: s.value[n] })
@@ -3755,7 +3804,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3755
3804
  group: {
3756
3805
  name: "blocks",
3757
3806
  pull: !0,
3758
- put: (e, t, n) => j(So)(n)
3807
+ put: (e, t, n) => j(Eo)(n)
3759
3808
  },
3760
3809
  animation: 150,
3761
3810
  "ghost-class": "tpl-ghost",
@@ -3768,7 +3817,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3768
3817
  class: "tpl:min-h-[60px]",
3769
3818
  "onUpdate:modelValue": (e) => p(n, e)
3770
3819
  }, {
3771
- default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(yo, {
3820
+ default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(Co, {
3772
3821
  block: t,
3773
3822
  "is-selected": j(i).state.selectedBlockId === t.id,
3774
3823
  viewport: e.viewport,
@@ -3799,13 +3848,13 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3799
3848
  "model-value",
3800
3849
  "group",
3801
3850
  "onUpdate:modelValue"
3802
- ]), u(n).length === 0 ? (f(), k("div", To, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3851
+ ]), u(n).length === 0 ? (f(), k("div", ko, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3803
3852
  }
3804
- }), Do = me, Oo = {
3853
+ }), jo = me, Mo = {
3805
3854
  small: 24,
3806
3855
  medium: 32,
3807
3856
  large: 48
3808
- }, ko = [
3857
+ }, No = [
3809
3858
  "facebook",
3810
3859
  "twitter",
3811
3860
  "instagram",
@@ -3823,11 +3872,11 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3823
3872
  "github",
3824
3873
  "dribbble",
3825
3874
  "behance"
3826
- ], Ao = [
3875
+ ], Po = [
3827
3876
  "width",
3828
3877
  "height",
3829
3878
  "fill"
3830
- ], jo = ["d"], Mo = /* @__PURE__ */ B({
3879
+ ], Fo = ["d"], Io = /* @__PURE__ */ B({
3831
3880
  __name: "SocialIconSvg",
3832
3881
  props: {
3833
3882
  platform: {},
@@ -3835,7 +3884,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3835
3884
  iconSize: {}
3836
3885
  },
3837
3886
  setup(e) {
3838
- let t = e, n = O(() => Do[t.platform]), r = O(() => Oo[t.iconSize]), i = O(() => {
3887
+ let t = e, n = O(() => jo[t.platform]), r = O(() => Mo[t.iconSize]), i = O(() => {
3839
3888
  let e = {
3840
3889
  display: "inline-flex",
3841
3890
  alignItems: "center",
@@ -3879,12 +3928,12 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3879
3928
  viewBox: "0 0 24 24",
3880
3929
  fill: o.value,
3881
3930
  xmlns: "http://www.w3.org/2000/svg"
3882
- }, [I("path", { d: n.value.path }, null, 8, jo)], 8, Ao))], 4));
3931
+ }, [I("path", { d: n.value.path }, null, 8, Fo)], 8, Po))], 4));
3883
3932
  }
3884
- }), No = { class: "tpl:w-full" }, Po = ["href"], Fo = {
3933
+ }), Lo = { class: "tpl:w-full" }, Ro = ["href"], zo = {
3885
3934
  key: 1,
3886
3935
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3887
- }, Io = /* @__PURE__ */ B({
3936
+ }, Bo = /* @__PURE__ */ B({
3888
3937
  __name: "SocialIconsBlock",
3889
3938
  props: {
3890
3939
  block: {},
@@ -3897,7 +3946,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3897
3946
  gap: `${t.block.spacing}px`,
3898
3947
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
3899
3948
  })), i = O(() => t.block.icons.length > 0);
3900
- return (t, a) => (f(), k("div", No, [i.value ? (f(), k("div", {
3949
+ return (t, a) => (f(), k("div", Lo, [i.value ? (f(), k("div", {
3901
3950
  key: 0,
3902
3951
  style: L(r.value)
3903
3952
  }, [(f(!0), k(R, null, h(e.block.icons, (t) => (f(), k("a", {
@@ -3905,7 +3954,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3905
3954
  href: t.url || "#",
3906
3955
  class: "tpl:cursor-default",
3907
3956
  onClick: a[0] ||= M(() => {}, ["prevent"])
3908
- }, [V(Mo, {
3957
+ }, [V(Io, {
3909
3958
  platform: t.platform,
3910
3959
  "icon-style": e.block.iconStyle,
3911
3960
  "icon-size": e.block.iconSize
@@ -3913,44 +3962,44 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3913
3962
  "platform",
3914
3963
  "icon-style",
3915
3964
  "icon-size"
3916
- ])], 8, Po))), 128))], 4)) : (f(), k("div", Fo, [V(j(Ei), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3965
+ ])], 8, Ro))), 128))], 4)) : (f(), k("div", zo, [V(j(Ai), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3917
3966
  }
3918
- }), Lo = { class: "tpl:w-full" }, Ro = {
3967
+ }), Vo = { class: "tpl:w-full" }, Ho = {
3919
3968
  key: 0,
3920
3969
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
3921
3970
  style: {
3922
3971
  "background-color": "var(--tpl-bg-hover)",
3923
3972
  color: "var(--tpl-text-dim)"
3924
3973
  }
3925
- }, zo = /* @__PURE__ */ B({
3974
+ }, Uo = /* @__PURE__ */ B({
3926
3975
  __name: "SpacerBlock",
3927
3976
  props: {
3928
3977
  block: {},
3929
3978
  viewport: {}
3930
3979
  },
3931
3980
  setup(e) {
3932
- let t = e, n = J(Ln, "SpacerBlock"), r = O(() => ({
3981
+ let t = e, n = J(zn, "SpacerBlock"), r = O(() => ({
3933
3982
  height: `${t.block.height}px`,
3934
3983
  minHeight: `${t.block.height}px`,
3935
3984
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
3936
3985
  }));
3937
- return (t, i) => (f(), k("div", Lo, [I("div", {
3986
+ return (t, i) => (f(), k("div", Vo, [I("div", {
3938
3987
  style: L(r.value),
3939
3988
  class: F(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !j(n).state.previewMode }])
3940
- }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Ro, D(e.block.height) + "px ", 1))], 6)]));
3989
+ }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Ho, D(e.block.height) + "px ", 1))], 6)]));
3941
3990
  }
3942
- }), Bo = { class: "tpl:w-full" }, Vo = { key: 0 }, Ho = [
3991
+ }), Wo = { class: "tpl:w-full" }, Go = { key: 0 }, Ko = [
3943
3992
  "aria-label",
3944
3993
  "data-placeholder",
3945
3994
  "onBlur"
3946
- ], Uo = [
3995
+ ], qo = [
3947
3996
  "aria-label",
3948
3997
  "data-placeholder",
3949
3998
  "onBlur"
3950
- ], Wo = {
3999
+ ], Jo = {
3951
4000
  key: 1,
3952
4001
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3953
- }, Go = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
4002
+ }, Yo = /*#__PURE__*/ Gi(/* @__PURE__ */ B({
3954
4003
  __name: "TableBlock",
3955
4004
  props: {
3956
4005
  block: {},
@@ -3964,7 +4013,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3964
4013
  updated(e, t) {
3965
4014
  t.value !== t.oldValue && e.getRootNode().activeElement !== e && (e.textContent = t.value ?? "");
3966
4015
  }
3967
- }, n = e, { t: r } = Y(), i = J(Ln, "TableBlock"), a = O(() => n.block.rows.length > 0), o = O(() => ({
4016
+ }, n = e, { t: r } = Y(), i = J(zn, "TableBlock"), a = O(() => n.block.rows.length > 0), o = O(() => ({
3968
4017
  width: "100%",
3969
4018
  borderCollapse: "collapse",
3970
4019
  fontSize: `${n.block.fontSize}px`,
@@ -3993,11 +4042,11 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3993
4042
  } : n);
3994
4043
  i.updateBlock(n.block.id, { rows: o });
3995
4044
  }
3996
- return (e, n) => (f(), k("div", Bo, [a.value ? (f(), k("table", {
4045
+ return (e, n) => (f(), k("div", Wo, [a.value ? (f(), k("table", {
3997
4046
  key: 0,
3998
4047
  style: L(o.value),
3999
4048
  class: "tpl-table-editable"
4000
- }, [u.value ? (f(), k("thead", Vo, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
4049
+ }, [u.value ? (f(), k("thead", Go, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
4001
4050
  key: e.id,
4002
4051
  style: L(l.value),
4003
4052
  "aria-label": j(r).table.cellPlaceholder,
@@ -4006,7 +4055,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
4006
4055
  onBlur: (t) => m(u.value.id, e.id, t),
4007
4056
  onKeydown: n[0] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4008
4057
  onClick: M(p, ["stop"])
4009
- }, null, 44, Ho)), [[t, e.content]])), 128))])])) : A("", !0), I("tbody", null, [(f(!0), k(R, null, h(d.value, (e) => (f(), k("tr", { key: e.id }, [(f(!0), k(R, null, h(e.cells, (i) => c((f(), k("td", {
4058
+ }, null, 44, Ko)), [[t, e.content]])), 128))])])) : A("", !0), I("tbody", null, [(f(!0), k(R, null, h(d.value, (e) => (f(), k("tr", { key: e.id }, [(f(!0), k(R, null, h(e.cells, (i) => c((f(), k("td", {
4010
4059
  key: i.id,
4011
4060
  style: L(s.value),
4012
4061
  "aria-label": j(r).table.cellPlaceholder,
@@ -4015,9 +4064,9 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
4015
4064
  onBlur: (t) => m(e.id, i.id, t),
4016
4065
  onKeydown: n[1] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4017
4066
  onClick: M(p, ["stop"])
4018
- }, null, 44, Uo)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Wo, [V(j(Ai), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
4067
+ }, null, 44, qo)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Jo, [V(j(Pi), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
4019
4068
  }
4020
- }), [["__scopeId", "data-v-f065872a"]]), Ko = /* @__PURE__ */ B({
4069
+ }), [["__scopeId", "data-v-f065872a"]]), Xo = /* @__PURE__ */ B({
4021
4070
  __name: "VideoPlayButton",
4022
4071
  props: { hoverEffect: {
4023
4072
  type: Boolean,
@@ -4035,7 +4084,7 @@ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
4035
4084
  });
4036
4085
  //#endregion
4037
4086
  //#region src/utils/videoThumbnail.ts
4038
- function qo(e) {
4087
+ function Zo(e) {
4039
4088
  if (!e) return {
4040
4089
  platform: "unknown",
4041
4090
  videoId: null,
@@ -4067,25 +4116,25 @@ function qo(e) {
4067
4116
  thumbnailUrl: null
4068
4117
  };
4069
4118
  }
4070
- function Jo(e, t) {
4071
- return t || qo(e).thumbnailUrl;
4119
+ function Qo(e, t) {
4120
+ return t || Zo(e).thumbnailUrl;
4072
4121
  }
4073
4122
  //#endregion
4074
4123
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
4075
- var Yo = ["src", "alt"], Xo = {
4124
+ var $o = ["src", "alt"], es = {
4076
4125
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
4077
4126
  style: { opacity: "0.7" }
4078
- }, Zo = ["href"], Qo = ["src", "alt"], $o = ["src", "alt"], es = {
4127
+ }, ts = ["href"], ns = ["src", "alt"], rs = ["src", "alt"], is = {
4079
4128
  key: 3,
4080
4129
  class: "tpl:flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
4081
- }, ts = /* @__PURE__ */ B({
4130
+ }, as = /* @__PURE__ */ B({
4082
4131
  __name: "VideoBlock",
4083
4132
  props: {
4084
4133
  block: {},
4085
4134
  viewport: {}
4086
4135
  },
4087
4136
  setup(e) {
4088
- let t = e, { t: n } = Y(), { syntax: r } = Qi(), i = O(() => yt(t.block.url, r) || yt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : Jo(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
4137
+ let t = e, { t: n } = Y(), { syntax: r } = na(), i = O(() => xt(t.block.url, r) || xt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : Qo(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
4089
4138
  let e = t.block.align;
4090
4139
  return {
4091
4140
  maxWidth: "100%",
@@ -4094,7 +4143,7 @@ var Yo = ["src", "alt"], Xo = {
4094
4143
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
4095
4144
  marginRight: e === "center" ? "auto" : void 0
4096
4145
  };
4097
- }), c = O(() => yt(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
4146
+ }), c = O(() => xt(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
4098
4147
  return (t, r) => (f(), k("div", {
4099
4148
  class: "tpl:w-full",
4100
4149
  style: L(o.value)
@@ -4106,16 +4155,16 @@ var Yo = ["src", "alt"], Xo = {
4106
4155
  class: "tpl:w-full tpl:border-0",
4107
4156
  src: e.block.placeholderUrl,
4108
4157
  alt: e.block.alt
4109
- }, null, 8, Yo), V(Ko)], 4)) : i.value ? (f(), k("div", {
4158
+ }, null, 8, $o), V(Xo)], 4)) : i.value ? (f(), k("div", {
4110
4159
  key: 1,
4111
4160
  class: "tpl:relative tpl:!flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
4112
4161
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, s.value])
4113
- }, [V(j(Fi), {
4162
+ }, [V(j(zi), {
4114
4163
  size: 36,
4115
4164
  "stroke-width": 1.5,
4116
4165
  class: "tpl:text-[var(--tpl-primary)]",
4117
4166
  style: { opacity: "0.5" }
4118
- }), I("span", Xo, D(c.value), 1)], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
4167
+ }), I("span", es, [V(Vr, { text: c.value }, null, 8, ["text"])])], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
4119
4168
  key: 0,
4120
4169
  href: e.block.url,
4121
4170
  target: "_blank",
@@ -4127,7 +4176,7 @@ var Yo = ["src", "alt"], Xo = {
4127
4176
  class: "tpl:w-full tpl:border-0",
4128
4177
  src: a.value,
4129
4178
  alt: e.block.alt
4130
- }, null, 8, Qo), V(Ko, { "hover-effect": "" })], 12, Zo)) : (f(), k("div", {
4179
+ }, null, 8, ns), V(Xo, { "hover-effect": "" })], 12, ts)) : (f(), k("div", {
4131
4180
  key: 1,
4132
4181
  class: "tpl:relative tpl:inline-block",
4133
4182
  style: L(s.value)
@@ -4135,48 +4184,48 @@ var Yo = ["src", "alt"], Xo = {
4135
4184
  class: "tpl:w-full tpl:border-0",
4136
4185
  src: a.value,
4137
4186
  alt: e.block.alt
4138
- }, null, 8, $o), V(Ko)], 4))], 64)) : (f(), k("div", es, [V(j(Fi), {
4187
+ }, null, 8, rs), V(Xo)], 4))], 64)) : (f(), k("div", is, [V(j(zi), {
4139
4188
  size: 40,
4140
4189
  "stroke-width": 1.5,
4141
4190
  class: "tpl:text-[var(--tpl-border-light)]"
4142
4191
  }), I("span", null, D(j(n).video.addVideo), 1)]))], 4));
4143
4192
  }
4144
- }), ns = {
4145
- section: Eo,
4146
- title: xo,
4147
- paragraph: no,
4148
- image: Ua,
4149
- button: Br,
4150
- divider: Ca,
4151
- video: ts,
4152
- social: Io,
4153
- menu: qa,
4154
- table: Go,
4155
- spacer: zo,
4156
- html: Oa,
4157
- countdown: E(() => import("./CountdownBlock-C1Ikjpn4.js").then((e) => e.n))
4193
+ }), os = {
4194
+ section: Ao,
4195
+ title: To,
4196
+ paragraph: oo,
4197
+ image: qa,
4198
+ button: Wr,
4199
+ divider: Da,
4200
+ video: as,
4201
+ social: Bo,
4202
+ menu: Za,
4203
+ table: Yo,
4204
+ spacer: Uo,
4205
+ html: Ma,
4206
+ countdown: E(() => import("./CountdownBlock-BEVAJQtQ.js").then((e) => e.n))
4158
4207
  };
4159
- function rs(e) {
4208
+ function ss(e) {
4160
4209
  let { editor: t, config: n, translations: r, fontsManager: i } = e, { t: a, format: o } = Y(r);
4161
4210
  t.setUiTheme(n.uiTheme ?? "auto");
4162
- let { resolvedTheme: c } = wr(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = Er({
4211
+ let { resolvedTheme: c } = Er(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = Or({
4163
4212
  themeOverrides: u,
4164
4213
  resolvedTheme: c,
4165
4214
  extraStyles: e.themeExtraStyles
4166
- }), f = At({
4215
+ }), f = Mt({
4167
4216
  content: t.content,
4168
4217
  setContent: (e, n) => t.setContent(e, n),
4169
4218
  ...e.historyOptions
4170
4219
  });
4171
- It(t, f);
4172
- let m = Mt({
4220
+ Rt(t, f);
4221
+ let m = Pt({
4173
4222
  addBlock: t.addBlock,
4174
4223
  removeBlock: t.removeBlock,
4175
4224
  updateBlock: t.updateBlock,
4176
4225
  selectBlock: t.selectBlock,
4177
4226
  findBlockLocation: t.findBlockLocation,
4178
4227
  blockDefaults: n.blockDefaults
4179
- }), h = Pt(t), g = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? Nt({
4228
+ }), h = It(t), g = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? Ft({
4180
4229
  content: t.content,
4181
4230
  isDirty: () => t.state.isDirty,
4182
4231
  ...e.autoSaveOptions
@@ -4184,15 +4233,15 @@ function rs(e) {
4184
4233
  g && (_ = H(f.isNavigating, (e) => {
4185
4234
  e ? g.pause() : g.resume();
4186
4235
  }));
4187
- let v = Cr(t, {
4236
+ let v = Tr(t, {
4188
4237
  t: a,
4189
4238
  format: o
4190
- }), y = Ar();
4191
- if (Fr(y, ns), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, xa);
4239
+ }), y = Mr();
4240
+ if (Lr(y, os), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, Ta);
4192
4241
  function b(e) {
4193
- for (let t of e) y.registerCustom(t, xa);
4242
+ for (let t of e) y.registerCustom(t, Ta);
4194
4243
  }
4195
- let x = Fn();
4244
+ let x = Ln();
4196
4245
  if (s() && l(x.dispose), e.containerEl) {
4197
4246
  let t = e.containerEl;
4198
4247
  q(document, "pointerdown", (e) => {
@@ -4201,7 +4250,7 @@ function rs(e) {
4201
4250
  }, { capture: !0 });
4202
4251
  }
4203
4252
  function S(r) {
4204
- x.isActive() && Lr(r, {
4253
+ x.isActive() && zr(r, {
4205
4254
  history: f,
4206
4255
  selectBlock: (e) => t.selectBlock(e),
4207
4256
  getSelectedBlockId: () => t.state.selectedBlockId,
@@ -4212,17 +4261,17 @@ function rs(e) {
4212
4261
  }
4213
4262
  q(document, "keydown", S);
4214
4263
  let w = C(null);
4215
- p(ur, e.editorRoot ?? document), p(dr, w), p(In, r), p(Ln, t), p(Rn, f), p(zn, m), p(Bn, h), p(Vn, i), p(Hn, d), p(Un, c), p(Wn, n.blockDefaults), p(Gn, y), p(Kn, n.customBlocks ?? []), p(qn, n.paletteBlocks), p(Jn, jr(t.content, y));
4216
- let T = mt(n.mergeTags?.syntax);
4217
- p(Yn, n.mergeTags?.tags ?? []), p(Xn, T), p(Zn, n.mergeTags?.onRequest ?? null), p(Qn, n.mergeTags?.autocomplete !== !1), p($n, vr()), p(er, n.logicTags?.tags ?? []), p(tr, n.logicTags?.pairs ?? []), p(rr, n.logicTags?.onRequest ?? null), p(nr, yr()), p(ir, n.onRequestMedia ?? null), p(ar, n.displayConditions?.conditions ?? []), p(or, n.displayConditions?.allowCustom ?? !1), p(sr, e.capabilities ?? {}), p(cr, v);
4218
- let E = br(n.lint) ? null : xr({
4264
+ p(fr, e.editorRoot ?? document), p(pr, w), p(Rn, r), p(zn, t), p(Bn, f), p(Vn, m), p(Hn, h), p(Un, i), p(Wn, d), p(Gn, c), p(Kn, n.blockDefaults), p(qn, y), p(Jn, n.customBlocks ?? []), p(Yn, n.paletteBlocks), p(Xn, Nr(t.content, y));
4265
+ let T = gt(n.mergeTags?.syntax);
4266
+ p(Zn, n.mergeTags?.tags ?? []), p(Qn, T), p($n, n.mergeTags?.onRequest ?? null), p(er, n.mergeTags?.autocomplete !== !1), p(tr, br()), p(nr, n.logicTags?.tags ?? []), p(rr, n.logicTags?.pairs ?? []), p(ar, n.logicTags?.onRequest ?? null), p(ir, xr()), p(or, n.onRequestMedia ?? null), p(sr, n.displayConditions?.conditions ?? []), p(cr, n.displayConditions?.allowCustom ?? !1), p(lr, e.capabilities ?? {}), p(ur, v);
4267
+ let E = Sr(n.lint) ? null : Cr({
4219
4268
  content: t.content,
4220
4269
  options: n.lint ?? {},
4221
4270
  updateBlock: t.updateBlock,
4222
4271
  updateSettings: t.updateSettings,
4223
4272
  removeBlock: t.removeBlock
4224
4273
  });
4225
- p(lr, E);
4274
+ p(dr, E);
4226
4275
  function ee() {
4227
4276
  _?.(), E?.destroy(), g?.destroy(), f.destroy();
4228
4277
  }
@@ -4246,19 +4295,19 @@ function rs(e) {
4246
4295
  }
4247
4296
  //#endregion
4248
4297
  //#region src/composables/usePopoverRoot.ts
4249
- function is() {
4250
- return v(dr, C(null));
4298
+ function cs() {
4299
+ return v(pr, C(null));
4251
4300
  }
4252
4301
  //#endregion
4253
4302
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
4254
- var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4303
+ var ls = ["data-tpl-theme"], us = /* @__PURE__ */ B({
4255
4304
  __name: "TplModal",
4256
4305
  props: { visible: { type: Boolean } },
4257
4306
  emits: ["close", "keydown"],
4258
4307
  setup(e, { emit: t }) {
4259
4308
  let n = e, r = t, i = C(null);
4260
- Ji(i, O(() => n.visible));
4261
- let a = v(Un), s = is();
4309
+ Qi(i, O(() => n.visible));
4310
+ let a = v(Gn), s = cs();
4262
4311
  function c(e) {
4263
4312
  e.key === "Escape" && r("close"), r("keydown", e);
4264
4313
  }
@@ -4287,11 +4336,11 @@ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4287
4336
  }, [I("div", {
4288
4337
  ref_key: "dialogRef",
4289
4338
  ref: i
4290
- }, [o(t.$slots, "default")], 512)], 40, as)) : A("", !0)]),
4339
+ }, [o(t.$slots, "default")], 512)], 40, ls)) : A("", !0)]),
4291
4340
  _: 3
4292
4341
  })], 8, ["to"])) : A("", !0);
4293
4342
  }
4294
- }), ss = class e {
4343
+ }), ds = class e {
4295
4344
  static DEFAULT_BASE_URL = "https://templatical.com";
4296
4345
  accessToken = null;
4297
4346
  expiresAt = null;
@@ -4342,7 +4391,7 @@ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4342
4391
  return this.accessToken && !this.isTokenExpiringSoon() ? this.accessToken : this.refreshToken();
4343
4392
  }
4344
4393
  isTokenExpiringSoon() {
4345
- return this.expiresAt ? this.expiresAt.getTime() - Date.now() < e.REFRESH_THRESHOLD_MS : !0;
4394
+ return !this.expiresAt || this.expiresAt.getTime() - Date.now() < e.REFRESH_THRESHOLD_MS;
4346
4395
  }
4347
4396
  async refreshToken() {
4348
4397
  if (this.refreshPromise) return this.refreshPromise;
@@ -4365,7 +4414,7 @@ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4365
4414
  };
4366
4415
  e === "POST" && this.requestOptions.body && (t["Content-Type"] = "application/json", n.body = JSON.stringify(this.requestOptions.body));
4367
4416
  let r = await fetch(this.url, n);
4368
- if (!r.ok) throw new wt(`Token refresh failed: ${r.status}`, r.status);
4417
+ if (!r.ok) throw new Et(`Token refresh failed: ${r.status}`, r.status);
4369
4418
  let i = await r.json();
4370
4419
  if (!i.token || !i.expires_at || !i.project_id || !i.tenant) throw Error("Invalid token response: missing token, expires_at, project_id, or tenant");
4371
4420
  return this.accessToken = i.token, this.expiresAt = /* @__PURE__ */ new Date(i.expires_at * 1e3), this._projectId = i.project_id, this._tenantSlug = i.tenant, i.test_email?.allowed_emails && i.test_email?.signature ? this._testEmailConfig = {
@@ -4392,8 +4441,8 @@ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4392
4441
  return a.status === 401 && (a = await i(await this.refreshToken())), a;
4393
4442
  }
4394
4443
  };
4395
- function cs(e, t) {
4396
- return e.mode === "direct" ? new ss({
4444
+ function fs(e, t) {
4445
+ return e.mode === "direct" ? new ds({
4397
4446
  url: `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}/api/v1/auth/token`,
4398
4447
  baseUrl: e.baseUrl,
4399
4448
  requestOptions: {
@@ -4407,7 +4456,7 @@ function cs(e, t) {
4407
4456
  }
4408
4457
  },
4409
4458
  onError: t
4410
- }) : new ss({
4459
+ }) : new ds({
4411
4460
  url: e.url,
4412
4461
  baseUrl: e.baseUrl,
4413
4462
  requestOptions: e.requestOptions,
@@ -4419,16 +4468,16 @@ function cs(e, t) {
4419
4468
  function Z(e, t) {
4420
4469
  return e.replace(/\{(\w+)\}/g, (e, n) => encodeURIComponent(t[n] ?? ""));
4421
4470
  }
4422
- var ls = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ls}/templates/{template}`, us = `${Q}/ai`, ds = `${ls}/media`, fs = `${ds}/folders`, ps = `${ls}/saved-modules`, $ = {
4471
+ var ps = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ps}/templates/{template}`, ms = `${Q}/ai`, hs = `${ps}/media`, gs = `${hs}/folders`, _s = `${ps}/saved-modules`, $ = {
4423
4472
  health: "/api/v1/health",
4424
- "projects.config": `${ls}/config`,
4425
- "broadcasting.auth": `${ls}/broadcasting/auth`,
4426
- "templates.store": `${ls}/templates`,
4473
+ "projects.config": `${ps}/config`,
4474
+ "broadcasting.auth": `${ps}/broadcasting/auth`,
4475
+ "templates.store": `${ps}/templates`,
4427
4476
  "templates.show": `${Q}`,
4428
4477
  "templates.update": `${Q}`,
4429
4478
  "templates.destroy": `${Q}`,
4430
4479
  "templates.export": `${Q}/export`,
4431
- "templates.importFromBeefree": `${ls}/templates/import/from-beefree`,
4480
+ "templates.importFromBeefree": `${ps}/templates/import/from-beefree`,
4432
4481
  "templates.sendTestEmail": `${Q}/send-test-email`,
4433
4482
  "snapshots.index": `${Q}/snapshots`,
4434
4483
  "snapshots.store": `${Q}/snapshots`,
@@ -4439,31 +4488,31 @@ var ls = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ls}/templates/{te
4439
4488
  "comments.update": `${Q}/comments/{comment}`,
4440
4489
  "comments.destroy": `${Q}/comments/{comment}`,
4441
4490
  "comments.resolve": `${Q}/comments/{comment}/resolve`,
4442
- "ai.generate": `${us}/generate`,
4443
- "ai.conversationMessages": `${us}/conversation-messages`,
4444
- "ai.suggestions": `${us}/suggestions`,
4445
- "ai.rewriteText": `${us}/rewrite-text`,
4446
- "ai.score": `${us}/score`,
4447
- "ai.fixFinding": `${us}/fix-finding`,
4448
- "ai.generateFromDesign": `${us}/generate-from-design`,
4449
- "media.upload": `${ds}/upload`,
4450
- "media.browse": `${ds}/browse`,
4451
- "media.delete": `${ds}/delete`,
4452
- "media.move": `${ds}/move`,
4453
- "media.update": `${ds}/{media}`,
4454
- "media.replace": `${ds}/{media}/replace`,
4455
- "media.checkUsage": `${ds}/check-usage`,
4456
- "media.frequentlyUsed": `${ds}/frequently-used`,
4457
- "media.importFromUrl": `${ds}/import-from-url`,
4458
- "folders.index": `${fs}`,
4459
- "folders.store": `${fs}`,
4460
- "folders.update": `${fs}/{mediaFolder}`,
4461
- "folders.destroy": `${fs}/{mediaFolder}`,
4462
- "savedModules.index": `${ps}`,
4463
- "savedModules.store": `${ps}`,
4464
- "savedModules.update": `${ps}/{savedModule}`,
4465
- "savedModules.destroy": `${ps}/{savedModule}`
4466
- }, ms = class {
4491
+ "ai.generate": `${ms}/generate`,
4492
+ "ai.conversationMessages": `${ms}/conversation-messages`,
4493
+ "ai.suggestions": `${ms}/suggestions`,
4494
+ "ai.rewriteText": `${ms}/rewrite-text`,
4495
+ "ai.score": `${ms}/score`,
4496
+ "ai.fixFinding": `${ms}/fix-finding`,
4497
+ "ai.generateFromDesign": `${ms}/generate-from-design`,
4498
+ "media.upload": `${hs}/upload`,
4499
+ "media.browse": `${hs}/browse`,
4500
+ "media.delete": `${hs}/delete`,
4501
+ "media.move": `${hs}/move`,
4502
+ "media.update": `${hs}/{media}`,
4503
+ "media.replace": `${hs}/{media}/replace`,
4504
+ "media.checkUsage": `${hs}/check-usage`,
4505
+ "media.frequentlyUsed": `${hs}/frequently-used`,
4506
+ "media.importFromUrl": `${hs}/import-from-url`,
4507
+ "folders.index": `${gs}`,
4508
+ "folders.store": `${gs}`,
4509
+ "folders.update": `${gs}/{mediaFolder}`,
4510
+ "folders.destroy": `${gs}/{mediaFolder}`,
4511
+ "savedModules.index": `${_s}`,
4512
+ "savedModules.store": `${_s}`,
4513
+ "savedModules.update": `${_s}/{savedModule}`,
4514
+ "savedModules.destroy": `${_s}/{savedModule}`
4515
+ }, vs = class {
4467
4516
  authManager;
4468
4517
  constructor(e) {
4469
4518
  this.authManager = e;
@@ -4491,7 +4540,7 @@ var ls = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ls}/templates/{te
4491
4540
  });
4492
4541
  if (!n.ok) {
4493
4542
  let e = await n.json().catch(() => ({ message: `HTTP error ${n.status}` }));
4494
- throw new wt(this.extractFirstValidationError(e), n.status);
4543
+ throw new Et(this.extractFirstValidationError(e), n.status);
4495
4544
  }
4496
4545
  if (n.status !== 204) return (await n.json()).data;
4497
4546
  }
@@ -4649,14 +4698,14 @@ var ls = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ls}/templates/{te
4649
4698
  };
4650
4699
  //#endregion
4651
4700
  //#region ../core/src/cloud/websocket-client.ts
4652
- function hs(e) {
4701
+ function ys(e) {
4653
4702
  return {
4654
4703
  host: e.host,
4655
4704
  port: e.port,
4656
4705
  appKey: e.app_key
4657
4706
  };
4658
4707
  }
4659
- var gs = class {
4708
+ var bs = class {
4660
4709
  pusher = null;
4661
4710
  authManager;
4662
4711
  config;
@@ -4668,7 +4717,7 @@ var gs = class {
4668
4717
  if (this.pusher) return;
4669
4718
  let e;
4670
4719
  try {
4671
- ({default: e} = await import("./pusher-CdEqyLwF.js").then((e) => /* @__PURE__ */ t(e.t(), 1)));
4720
+ ({default: e} = await import("./pusher-CIwiKF8H.js").then((e) => /* @__PURE__ */ t(e.t(), 1)));
4672
4721
  } catch {
4673
4722
  throw Error("Cloud features require the optional peer dependency 'pusher-js'. Install it with: npm install pusher-js");
4674
4723
  }
@@ -4723,7 +4772,7 @@ var gs = class {
4723
4772
  };
4724
4773
  //#endregion
4725
4774
  //#region ../core/src/cloud/mcp-operation-handler.ts
4726
- function _s(e, t) {
4775
+ function xs(e, t) {
4727
4776
  let { operation: n, data: r } = t;
4728
4777
  switch (n) {
4729
4778
  case "add_block":
@@ -4751,11 +4800,11 @@ function _s(e, t) {
4751
4800
  }
4752
4801
  //#endregion
4753
4802
  //#region ../core/src/cloud/editor.ts
4754
- function vs(e) {
4803
+ function Ss(e) {
4755
4804
  return e === "1" ? 1 : e === "3" ? 3 : 2;
4756
4805
  }
4757
- function ys(e) {
4758
- let t = new ms(e.authManager), n = S({
4806
+ function Cs(e) {
4807
+ let t = new vs(e.authManager), n = S({
4759
4808
  template: null,
4760
4809
  content: We(e.defaultFontFamily, e.templateDefaults),
4761
4810
  selectedBlockId: null,
@@ -4861,7 +4910,7 @@ function ys(e) {
4861
4910
  let l;
4862
4911
  if (r) {
4863
4912
  let e = o(n.content.blocks, r);
4864
- if (!e || e.type !== "section" || i < 0 || i >= vs(e.columns)) return;
4913
+ if (!e || e.type !== "section" || i < 0 || i >= Ss(e.columns)) return;
4865
4914
  e.children[i] = e.children[i] || [], l = e.children[i];
4866
4915
  } else l = n.content.blocks;
4867
4916
  let [u] = a.blocks.splice(c, 1);
@@ -4891,7 +4940,7 @@ function ys(e) {
4891
4940
  }
4892
4941
  }
4893
4942
  async function w() {
4894
- if (!n.template?.id) throw new wt("No template loaded. Call create() or load() before saving.");
4943
+ if (!n.template?.id) throw new Et("No template loaded. Call create() or load() before saving.");
4895
4944
  n.isSaving = !0;
4896
4945
  try {
4897
4946
  let e = await t.updateTemplate(n.template.id, n.content);
@@ -4953,11 +5002,11 @@ function ys(e) {
4953
5002
  }
4954
5003
  //#endregion
4955
5004
  //#region ../core/src/cloud/ai-chat.ts
4956
- var bs = 0;
4957
- function xs() {
4958
- return `msg_${Date.now()}_${++bs}`;
5005
+ var ws = 0;
5006
+ function Ts() {
5007
+ return `msg_${Date.now()}_${++ws}`;
4959
5008
  }
4960
- function Ss(e) {
5009
+ function Es(e) {
4961
5010
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C([]), o = C(!1), s = C(!1), c = C(null), l = C(null), u = C(null), d = C(null), f = C(null), p = C(null), m = C(!1), h = C([]), g = C(!1);
4962
5011
  function _(e, t) {
4963
5012
  let n = a.value.findIndex((t) => t.id === e);
@@ -5051,14 +5100,14 @@ function Ss(e) {
5051
5100
  let v = n();
5052
5101
  if (!v) throw Error("Template must be saved before using AI generation");
5053
5102
  o.value = !0, c.value = null, l.value = null, h.value = [];
5054
- let y = xs();
5103
+ let y = Ts();
5055
5104
  a.value = [...a.value, {
5056
5105
  id: y,
5057
5106
  role: "user",
5058
5107
  content: e,
5059
5108
  timestamp: Date.now()
5060
5109
  }];
5061
- let b = xs();
5110
+ let b = Ts();
5062
5111
  a.value = [...a.value, {
5063
5112
  id: b,
5064
5113
  role: "assistant",
@@ -5149,9 +5198,9 @@ function Ss(e) {
5149
5198
  }
5150
5199
  //#endregion
5151
5200
  //#region ../core/src/cloud/ai-config.ts
5152
- function Cs(e) {
5201
+ function Ds(e) {
5153
5202
  function t(t) {
5154
- return e === !1 ? !1 : e?.[t] !== !1;
5203
+ return e !== !1 && e?.[t] !== !1;
5155
5204
  }
5156
5205
  return {
5157
5206
  isFeatureEnabled: t,
@@ -5160,7 +5209,7 @@ function Cs(e) {
5160
5209
  }
5161
5210
  //#endregion
5162
5211
  //#region ../core/src/cloud/template-scoring.ts
5163
- function ws(e) {
5212
+ function Os(e) {
5164
5213
  let { authManager: t, getTemplateId: n } = e, r = C(!1), i = C(null), a = C(null), o = C(null), s = C(""), c = C(null);
5165
5214
  async function l(e, o) {
5166
5215
  let s = n();
@@ -5305,7 +5354,7 @@ function ws(e) {
5305
5354
  }
5306
5355
  //#endregion
5307
5356
  //#region ../core/src/cloud/design-reference.ts
5308
- function Ts(e) {
5357
+ function ks(e) {
5309
5358
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C(!1), o = C(null);
5310
5359
  async function s(e) {
5311
5360
  let s = n();
@@ -5368,8 +5417,8 @@ function Ts(e) {
5368
5417
  }
5369
5418
  //#endregion
5370
5419
  //#region ../core/src/cloud/comments.ts
5371
- function Es(e) {
5372
- let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new ms(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5420
+ function As(e) {
5421
+ let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new vs(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5373
5422
  let e = 0;
5374
5423
  for (let t of c.value) e += 1 + (t.replies?.length ?? 0);
5375
5424
  return e;
@@ -5568,17 +5617,17 @@ function Es(e) {
5568
5617
  }
5569
5618
  //#endregion
5570
5619
  //#region ../core/src/cloud/comment-listener.ts
5571
- function Ds(e) {
5620
+ function js(e) {
5572
5621
  let { comments: t, channel: n } = e;
5573
5622
  H(n, (e, n) => {
5574
5623
  n && n.unbind("comment-broadcast"), e && e.bind("comment-broadcast", (e) => {
5575
- Os(t, e);
5624
+ Ms(t, e);
5576
5625
  });
5577
5626
  }), l(() => {
5578
5627
  n.value?.unbind("comment-broadcast");
5579
5628
  });
5580
5629
  }
5581
- function Os(e, t) {
5630
+ function Ms(e, t) {
5582
5631
  switch (t.action) {
5583
5632
  case "comment_created":
5584
5633
  e.applyRemoteCreate(t.comment);
@@ -5597,7 +5646,7 @@ function Os(e, t) {
5597
5646
  }
5598
5647
  //#endregion
5599
5648
  //#region ../core/src/cloud/collaboration.ts
5600
- var ks = [
5649
+ var Ns = [
5601
5650
  "pusher:member_added",
5602
5651
  "pusher:member_removed",
5603
5652
  "client-block_locked",
@@ -5605,10 +5654,10 @@ var ks = [
5605
5654
  "client-operation",
5606
5655
  "mcp-operation"
5607
5656
  ];
5608
- function As(e) {
5609
- for (let t of ks) e.unbind(t);
5657
+ function Ps(e) {
5658
+ for (let t of Ns) e.unbind(t);
5610
5659
  }
5611
- var js = [
5660
+ var Fs = [
5612
5661
  "#3b82f6",
5613
5662
  "#ef4444",
5614
5663
  "#10b981",
@@ -5620,10 +5669,10 @@ var js = [
5620
5669
  "#6366f1",
5621
5670
  "#14b8a6"
5622
5671
  ];
5623
- function Ms(e) {
5672
+ function Is(e) {
5624
5673
  let { authManager: t, editor: n, channel: r } = e, i = C([]), a = C(/* @__PURE__ */ new Map()), o = 0, s = !1, c = O(() => t.userConfig?.id ?? "");
5625
5674
  function u() {
5626
- let e = js[o % js.length];
5675
+ let e = Fs[o % Fs.length];
5627
5676
  return o++, e;
5628
5677
  }
5629
5678
  function d(e) {
@@ -5665,7 +5714,7 @@ function Ms(e) {
5665
5714
  function h(e) {
5666
5715
  s = !0;
5667
5716
  try {
5668
- _s(n, e);
5717
+ xs(n, e);
5669
5718
  } finally {
5670
5719
  s = !1;
5671
5720
  }
@@ -5685,7 +5734,7 @@ function Ms(e) {
5685
5734
  return H(() => n.state.selectedBlockId, (e, t) => {
5686
5735
  s || (t && v(t), e && _(e));
5687
5736
  }), H(r, (t, n) => {
5688
- if (n && As(n), !t) {
5737
+ if (n && Ps(n), !t) {
5689
5738
  i.value = [], a.value = /* @__PURE__ */ new Map(), o = 0;
5690
5739
  return;
5691
5740
  }
@@ -5717,7 +5766,7 @@ function Ms(e) {
5717
5766
  h(e);
5718
5767
  });
5719
5768
  }), l(() => {
5720
- r.value && As(r.value);
5769
+ r.value && Ps(r.value);
5721
5770
  }), {
5722
5771
  collaborators: i,
5723
5772
  lockedBlocks: a,
@@ -5727,7 +5776,7 @@ function Ms(e) {
5727
5776
  }
5728
5777
  //#endregion
5729
5778
  //#region ../core/src/cloud/collaboration-broadcast.ts
5730
- function Ns(e, t) {
5779
+ function Ls(e, t) {
5731
5780
  let n = e.addBlock, r = e.updateBlock, i = e.removeBlock, a = e.moveBlock, o = e.updateSettings, s = e.setContent;
5732
5781
  e.addBlock = (e, r, i, a) => {
5733
5782
  n(e, r, i, a), t._broadcastOperation({
@@ -5782,11 +5831,11 @@ function Ns(e, t) {
5782
5831
  }
5783
5832
  //#endregion
5784
5833
  //#region ../core/src/cloud/web-socket.ts
5785
- function Ps(e) {
5834
+ function Rs(e) {
5786
5835
  let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = null, o = null;
5787
5836
  async function s(e, s) {
5788
5837
  if (a) return;
5789
- a = new gs({
5838
+ a = new bs({
5790
5839
  authManager: t,
5791
5840
  config: s,
5792
5841
  onError: n
@@ -5814,8 +5863,8 @@ function Ps(e) {
5814
5863
  }
5815
5864
  //#endregion
5816
5865
  //#region ../core/src/cloud/saved-modules.ts
5817
- function Fs(e) {
5818
- let t = new ms(e.authManager), n = C([]), r = C(!1);
5866
+ function zs(e) {
5867
+ let t = new vs(e.authManager), n = C([]), r = C(!1);
5819
5868
  async function i(i) {
5820
5869
  r.value = !0;
5821
5870
  try {
@@ -5863,8 +5912,8 @@ function Fs(e) {
5863
5912
  }
5864
5913
  //#endregion
5865
5914
  //#region ../core/src/cloud/snapshots.ts
5866
- function Is(e) {
5867
- let t = new ms(e.authManager), n = C([]), r = C(!1), i = C(!1);
5915
+ function Bs(e) {
5916
+ let t = new vs(e.authManager), n = C([]), r = C(!1), i = C(!1);
5868
5917
  async function a() {
5869
5918
  r.value = !0;
5870
5919
  try {
@@ -5896,8 +5945,8 @@ function Is(e) {
5896
5945
  }
5897
5946
  //#endregion
5898
5947
  //#region ../core/src/cloud/test-email.ts
5899
- function Ls(e) {
5900
- let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new ms(t), l = C(!1), u = C(null), d = C(null);
5948
+ function Vs(e) {
5949
+ let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new vs(t), l = C(!1), u = C(null), d = C(null);
5901
5950
  o && H(o, (e) => {
5902
5951
  e && (d.value = t.testEmailConfig);
5903
5952
  }, { immediate: !0 });
@@ -5933,8 +5982,8 @@ function Ls(e) {
5933
5982
  }
5934
5983
  //#endregion
5935
5984
  //#region ../core/src/cloud/export.ts
5936
- function Rs(e) {
5937
- let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new ms(t);
5985
+ function Hs(e) {
5986
+ let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new vs(t);
5938
5987
  function a() {
5939
5988
  let e = n?.();
5940
5989
  return {
@@ -5960,8 +6009,8 @@ function Rs(e) {
5960
6009
  }
5961
6010
  //#endregion
5962
6011
  //#region ../core/src/cloud/plan-config.ts
5963
- function zs(e) {
5964
- let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new ms(t), o = O(() => r.value?.features ?? null);
6012
+ function Us(e) {
6013
+ let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new vs(t), o = O(() => r.value?.features ?? null);
5965
6014
  function s(e) {
5966
6015
  return r.value?.features[e] ?? !1;
5967
6016
  }
@@ -5987,11 +6036,11 @@ function zs(e) {
5987
6036
  }
5988
6037
  //#endregion
5989
6038
  //#region ../core/src/cloud/health-check.ts
5990
- var Bs = 5e3;
5991
- function Vs(e) {
6039
+ var Ws = 5e3;
6040
+ function Gs(e) {
5992
6041
  return e.authManager ? e.authManager.resolveUrl($.health) : `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}${$.health}`;
5993
6042
  }
5994
- async function Hs(e, t) {
6043
+ async function Ks(e, t) {
5995
6044
  let n = performance.now();
5996
6045
  try {
5997
6046
  let r = t ? await t.authenticatedFetch($.health, {
@@ -6043,7 +6092,7 @@ async function Hs(e, t) {
6043
6092
  };
6044
6093
  }
6045
6094
  }
6046
- async function Us(e) {
6095
+ async function qs(e) {
6047
6096
  if (!e?.host || !e?.app_key) return {
6048
6097
  ok: !1,
6049
6098
  error: "WebSocket configuration not available"
@@ -6059,7 +6108,7 @@ async function Us(e) {
6059
6108
  ok: !1,
6060
6109
  error: "WebSocket connection timed out"
6061
6110
  });
6062
- }, Bs);
6111
+ }, Ws);
6063
6112
  try {
6064
6113
  n = new WebSocket(t);
6065
6114
  } catch (t) {
@@ -6079,8 +6128,8 @@ async function Us(e) {
6079
6128
  };
6080
6129
  });
6081
6130
  }
6082
- async function Ws(e = {}) {
6083
- let t = await Hs(Vs(e), e.authManager), n = await Us(t.wsConfig);
6131
+ async function Js(e = {}) {
6132
+ let t = await Ks(Gs(e), e.authManager), n = await qs(t.wsConfig);
6084
6133
  return {
6085
6134
  api: t.api,
6086
6135
  websocket: n,
@@ -6090,29 +6139,29 @@ async function Ws(e = {}) {
6090
6139
  }
6091
6140
  //#endregion
6092
6141
  //#region ../core/src/cloud/mcp-listener.ts
6093
- function Gs(e) {
6142
+ function Ys(e) {
6094
6143
  let { editor: t, channel: n, onOperation: r } = e;
6095
6144
  H(n, (e, n) => {
6096
6145
  n && n.unbind("mcp-operation"), e && e.bind("mcp-operation", (e) => {
6097
- _s(t, e), r?.(e);
6146
+ xs(t, e), r?.(e);
6098
6147
  });
6099
6148
  });
6100
6149
  }
6101
6150
  //#endregion
6102
6151
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
6103
- var Ks = {
6152
+ var Xs = {
6104
6153
  key: 0,
6105
6154
  class: "tpl-ai-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6106
- }, qs = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Js = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Ys = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Xs = ["title"], Zs = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Qs = {
6155
+ }, Zs = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Qs = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, $s = { class: "tpl:flex tpl:items-center tpl:gap-1" }, ec = ["title"], tc = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, nc = {
6107
6156
  key: 0,
6108
6157
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6109
- }, $s = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ec = {
6158
+ }, rc = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ic = {
6110
6159
  key: 1,
6111
6160
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6112
- }, tc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, nc = {
6161
+ }, ac = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, oc = {
6113
6162
  key: 2,
6114
6163
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6115
- }, rc = {
6164
+ }, sc = {
6116
6165
  key: 0,
6117
6166
  class: "tpl:self-end tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm",
6118
6167
  style: {
@@ -6121,10 +6170,10 @@ var Ks = {
6121
6170
  "max-width": "85%",
6122
6171
  "box-shadow": "var(--tpl-shadow)"
6123
6172
  }
6124
- }, ic = {
6173
+ }, cc = {
6125
6174
  key: 1,
6126
6175
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6127
- }, ac = {
6176
+ }, lc = {
6128
6177
  key: 1,
6129
6178
  class: "tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm tpl:whitespace-pre-wrap",
6130
6179
  style: {
@@ -6133,21 +6182,21 @@ var Ks = {
6133
6182
  color: "var(--tpl-text)",
6134
6183
  "box-shadow": "var(--tpl-shadow)"
6135
6184
  }
6136
- }, oc = {
6185
+ }, uc = {
6137
6186
  key: 0,
6138
6187
  class: "tpl:mx-3 tpl:mb-2 tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs",
6139
6188
  style: {
6140
6189
  "background-color": "var(--tpl-danger-light)",
6141
6190
  color: "var(--tpl-danger)"
6142
6191
  }
6143
- }, sc = {
6192
+ }, dc = {
6144
6193
  key: 1,
6145
6194
  class: "tpl:absolute tpl:right-0 tpl:bottom-0 tpl:left-0 tpl:z-10 tpl:px-3 tpl:pb-3",
6146
6195
  style: {
6147
6196
  "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
6148
6197
  "backdrop-filter": "blur(2px)"
6149
6198
  }
6150
- }, cc = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, lc = ["onClick"], uc = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, dc = { class: "tpl-ai-input-wrapper tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, fc = ["placeholder", "disabled"], pc = ["disabled"], mc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, hc = /*@__PURE__*/ B({
6199
+ }, fc = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, pc = ["onClick"], mc = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, hc = { class: "tpl-ai-input-wrapper tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, gc = ["placeholder", "disabled"], _c = ["disabled"], vc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, yc = /*@__PURE__*/ B({
6151
6200
  __name: "AiChatSidebar",
6152
6201
  props: {
6153
6202
  visible: { type: Boolean },
@@ -6155,14 +6204,14 @@ var Ks = {
6155
6204
  },
6156
6205
  emits: ["close"],
6157
6206
  setup(e, { emit: t }) {
6158
- let n = e, r = t, i = J(_r, "AiChatSidebar"), a = J(Ln, "AiChatSidebar"), o = J(fr, "AiChatSidebar"), s = v(Yn, []), l = ka(), u = Ss({
6207
+ let n = e, r = t, i = J(yr, "AiChatSidebar"), a = J(zn, "AiChatSidebar"), o = J(mr, "AiChatSidebar"), s = v(Zn, []), l = Na(), u = Es({
6159
6208
  authManager: o,
6160
6209
  getTemplateId: () => a.state.template?.id ?? null,
6161
6210
  onApply: n.onApply,
6162
6211
  onError: void 0
6163
- }), d = C(""), p = C(null), g = C(!1), _ = C(0), { pause: y, resume: x } = sn(() => {
6212
+ }), d = C(""), p = C(null), g = C(!1), _ = C(0), { pause: y, resume: x } = ln(() => {
6164
6213
  _.value < (u.suggestions.value?.length ?? 0) ? _.value++ : y();
6165
- }, 150, { immediate: !1 }), { start: S } = cn(() => x(), 100, { immediate: !1 });
6214
+ }, 150, { immediate: !1 }), { start: S } = un(() => x(), 100, { immediate: !1 });
6166
6215
  H(() => u.suggestions.value?.length ?? 0, (e) => {
6167
6216
  if (y(), e === 0) {
6168
6217
  _.value = 0;
@@ -6202,42 +6251,42 @@ var Ks = {
6202
6251
  "leave-from-class": "tpl:translate-x-0",
6203
6252
  "leave-to-class": "tpl:translate-x-full"
6204
6253
  }, {
6205
- default: b(() => [e.visible ? (f(), k("div", Ks, [
6206
- I("div", qs, [I("div", Js, [V(j(ki), {
6254
+ default: b(() => [e.visible ? (f(), k("div", Xs, [
6255
+ I("div", Zs, [I("div", Qs, [V(j(Ni), {
6207
6256
  size: 13,
6208
6257
  "stroke-width": 2
6209
- }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", Ys, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6258
+ }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", $s, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6210
6259
  key: 0,
6211
6260
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6212
6261
  title: j(i).aiChat.clear,
6213
6262
  onClick: n[0] ||= (e) => j(u).clearChat()
6214
- }, [V(j(ji), {
6263
+ }, [V(j(Fi), {
6215
6264
  size: 14,
6216
6265
  "stroke-width": 2
6217
- })], 8, Xs)) : A("", !0), I("button", {
6266
+ })], 8, ec)) : A("", !0), I("button", {
6218
6267
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6219
6268
  onClick: n[1] ||= (e) => r("close")
6220
- }, [V(j(Ii), {
6269
+ }, [V(j(Bi), {
6221
6270
  size: 14,
6222
6271
  "stroke-width": 2
6223
6272
  })])])]),
6224
- I("div", Zs, [
6273
+ I("div", tc, [
6225
6274
  I("div", {
6226
6275
  ref_key: "messagesContainer",
6227
6276
  ref: p,
6228
6277
  class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
6229
- }, [j(u).isLoadingHistory.value ? (f(), k("div", Qs, [V(j(_i), {
6278
+ }, [j(u).isLoadingHistory.value ? (f(), k("div", nc, [V(j(xi), {
6230
6279
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6231
6280
  size: 24,
6232
6281
  "stroke-width": 2
6233
- }), I("p", $s, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", ec, [V(j(ki), {
6282
+ }), I("p", rc, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", ic, [V(j(Ni), {
6234
6283
  size: 32,
6235
6284
  "stroke-width": 1.5,
6236
6285
  class: "tpl:text-[var(--tpl-text-dim)]"
6237
- }), I("p", tc, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", nc, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6286
+ }), I("p", ac, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", oc, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6238
6287
  key: e.id,
6239
6288
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6240
- }, [e.role === "user" ? (f(), k("div", rc, D(e.content), 1)) : (f(), k("div", ic, [!E(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Gi, { key: 0 })) : (f(), k("div", ac, D(E(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6289
+ }, [e.role === "user" ? (f(), k("div", sc, D(e.content), 1)) : (f(), k("div", cc, [!E(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Yi, { key: 0 })) : (f(), k("div", lc, D(E(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6241
6290
  key: 2,
6242
6291
  class: "tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:self-start tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150",
6243
6292
  style: {
@@ -6246,19 +6295,19 @@ var Ks = {
6246
6295
  "background-color": "transparent"
6247
6296
  },
6248
6297
  onClick: n[2] ||= (e) => j(u).toggleLastRevert()
6249
- }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(Si), {
6298
+ }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(Ei), {
6250
6299
  size: 12,
6251
6300
  "stroke-width": 2
6252
- }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Ni), {
6301
+ }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Li), {
6253
6302
  size: 12,
6254
6303
  "stroke-width": 2
6255
6304
  }), z(" " + D(j(i).aiChat.revert), 1)], 64))])) : A("", !0)]))]))), 128))]))], 512),
6256
- j(u).error.value ? (f(), k("div", oc, [V(j(ri), {
6305
+ j(u).error.value ? (f(), k("div", uc, [V(j(si), {
6257
6306
  size: 14,
6258
6307
  "stroke-width": 2,
6259
6308
  class: "tpl:mt-0.5 tpl:shrink-0"
6260
6309
  }), I("span", null, D(j(u).error.value === "ai_apply_failed" ? j(i).aiChat.applyFailed : j(i).aiChat.error), 1)])) : A("", !0),
6261
- (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", sc, [I("div", cc, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6310
+ (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", dc, [I("div", fc, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6262
6311
  key: t,
6263
6312
  class: F(["tpl-suggestion-btn tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:text-left tpl:text-xs tpl:leading-snug tpl:transition-all tpl:duration-300 tpl:ease-out", (j(u).suggestions.value?.length ?? 0) - 1 - t < _.value ? "tpl:translate-y-0 tpl:opacity-100" : "tpl:pointer-events-none tpl:-translate-y-2 tpl:opacity-0"]),
6264
6313
  style: {
@@ -6268,104 +6317,104 @@ var Ks = {
6268
6317
  "box-shadow": "var(--tpl-shadow)"
6269
6318
  },
6270
6319
  onClick: (t) => ee(e)
6271
- }, D(e), 11, lc))), 128))])])) : A("", !0)
6320
+ }, D(e), 11, pc))), 128))])])) : A("", !0)
6272
6321
  ]),
6273
- I("div", uc, [I("div", dc, [c(I("textarea", {
6322
+ I("div", mc, [I("div", hc, [c(I("textarea", {
6274
6323
  "onUpdate:modelValue": n[3] ||= (e) => d.value = e,
6275
6324
  class: "tpl:max-h-32 tpl:min-h-[64px] tpl:flex-1 tpl:resize-none tpl:border-none tpl:bg-transparent tpl:font-sans tpl:text-sm tpl:outline-none tpl:text-[var(--tpl-text)]",
6276
6325
  placeholder: j(i).aiChat.inputPlaceholder,
6277
6326
  disabled: j(u).isGenerating.value,
6278
6327
  rows: "3",
6279
6328
  onKeydown: te
6280
- }, null, 40, fc), [[ae, d.value]]), I("button", {
6329
+ }, null, 40, gc), [[ae, d.value]]), I("button", {
6281
6330
  class: "tpl-ai-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6282
6331
  disabled: !d.value.trim() || j(u).isGenerating.value,
6283
6332
  onClick: T
6284
- }, [V(j(Ti), {
6333
+ }, [V(j(ki), {
6285
6334
  size: 16,
6286
6335
  "stroke-width": 2
6287
- })], 8, pc)]), I("p", mc, D(j(i).aiMenu.disclaimer), 1)])
6336
+ })], 8, _c)]), I("p", vc, D(j(i).aiMenu.disclaimer), 1)])
6288
6337
  ])) : A("", !0)]),
6289
6338
  _: 1
6290
6339
  }));
6291
6340
  }
6292
- }), gc = /* @__PURE__ */ e({ default: () => _c }), _c = /*#__PURE__*/ Vi(hc, [["__scopeId", "data-v-a55e4bff"]]), vc = 6e4, yc = 36e5, bc = 864e5;
6293
- function xc(e, t, n, r) {
6341
+ }), bc = /* @__PURE__ */ e({ default: () => xc }), xc = /*#__PURE__*/ Gi(yc, [["__scopeId", "data-v-a55e4bff"]]), Sc = 6e4, Cc = 36e5, wc = 864e5;
6342
+ function Tc(e, t, n, r) {
6294
6343
  let i = new Date(e).getTime();
6295
6344
  if (Number.isNaN(i)) return null;
6296
6345
  let a = Date.now() - i;
6297
6346
  if (a < -6e4) return null;
6298
- let o = Math.floor(a / vc), s = Math.floor(a / yc), c = Math.floor(a / bc);
6347
+ let o = Math.floor(a / Sc), s = Math.floor(a / Cc), c = Math.floor(a / wc);
6299
6348
  return o < 1 ? t.justNow : o < 60 ? n ? n(t.minutesAgo, { minutes: o }) : t.minutesAgo.replace("{minutes}", String(o)) : s < 24 ? n ? n(t.hoursAgo, { hours: s }) : t.hoursAgo.replace("{hours}", String(s)) : r !== void 0 && c >= r ? null : n ? n(t.daysAgo, { days: c }) : t.daysAgo.replace("{days}", String(c));
6300
6349
  }
6301
6350
  //#endregion
6302
6351
  //#region src/cloud/components/CommentsSidebar.vue?vue&type=script&setup=true&lang.ts
6303
- var Sc = {
6352
+ var Ec = {
6304
6353
  key: 0,
6305
6354
  class: "tpl-comments-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6306
- }, Cc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, wc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, Tc = {
6355
+ }, Dc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Oc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, kc = {
6307
6356
  key: 0,
6308
6357
  class: "tpl:ml-1 tpl:inline-flex tpl:size-5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[10px] tpl:font-semibold tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]"
6309
- }, Ec = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, Dc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, Oc = {
6358
+ }, Ac = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, jc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, Mc = {
6310
6359
  key: 0,
6311
6360
  class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
6312
- }, kc = {
6361
+ }, Nc = {
6313
6362
  key: 1,
6314
6363
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:px-6 tpl:text-center"
6315
- }, Ac = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, jc = {
6364
+ }, Pc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Fc = {
6316
6365
  key: 2,
6317
6366
  class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
6318
- }, Mc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Nc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Pc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Fc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ic = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Lc = {
6367
+ }, Ic = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Lc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Rc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, zc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Bc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Vc = {
6319
6368
  key: 0,
6320
6369
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6321
- }, Rc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, zc = ["title", "onClick"], Bc = ["title", "onClick"], Vc = ["title", "onClick"], Hc = {
6370
+ }, Hc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Uc = ["title", "onClick"], Wc = ["title", "onClick"], Gc = ["title", "onClick"], Kc = {
6322
6371
  key: 0,
6323
6372
  class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
6324
- }, Uc = {
6373
+ }, qc = {
6325
6374
  key: 0,
6326
6375
  class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
6327
- }, Wc = ["onClick"], Gc = {
6376
+ }, Jc = ["onClick"], Yc = {
6328
6377
  key: 2,
6329
6378
  class: "tpl:mt-2"
6330
- }, Kc = ["onKeydown"], qc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Jc = ["disabled", "onClick"], Yc = {
6379
+ }, Xc = ["onKeydown"], Zc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Qc = ["disabled", "onClick"], $c = {
6331
6380
  key: 3,
6332
6381
  class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6333
- }, Xc = {
6382
+ }, el = {
6334
6383
  key: 4,
6335
6384
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6336
- }, Zc = { class: "tpl:flex-1" }, Qc = ["onClick"], $c = {
6385
+ }, tl = { class: "tpl:flex-1" }, nl = ["onClick"], rl = {
6337
6386
  key: 5,
6338
6387
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
6339
- }, el = ["title", "onClick"], tl = ["onClick"], nl = {
6388
+ }, il = ["title", "onClick"], al = ["onClick"], ol = {
6340
6389
  key: 0,
6341
6390
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6342
- }, rl = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, il = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, al = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, ol = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, sl = {
6391
+ }, sl = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, cl = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, ll = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, ul = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, dl = {
6343
6392
  key: 0,
6344
6393
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6345
- }, cl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, ll = ["title", "onClick"], ul = ["title", "onClick"], dl = {
6394
+ }, fl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, pl = ["title", "onClick"], ml = ["title", "onClick"], hl = {
6346
6395
  key: 0,
6347
6396
  class: "tpl:mt-1.5"
6348
- }, fl = ["onKeydown"], pl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, ml = ["disabled", "onClick"], hl = {
6397
+ }, gl = ["onKeydown"], _l = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, vl = ["disabled", "onClick"], yl = {
6349
6398
  key: 1,
6350
6399
  class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6351
- }, gl = {
6400
+ }, bl = {
6352
6401
  key: 2,
6353
6402
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6354
- }, _l = { class: "tpl:flex-1" }, vl = ["onClick"], yl = {
6403
+ }, xl = { class: "tpl:flex-1" }, Sl = ["onClick"], Cl = {
6355
6404
  key: 0,
6356
6405
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6357
- }, bl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, xl = ["placeholder", "onKeydown"], Sl = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, Cl = ["disabled", "onClick"], wl = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Tl = {
6406
+ }, wl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, Tl = ["placeholder", "onKeydown"], El = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, Dl = ["disabled", "onClick"], Ol = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, kl = {
6358
6407
  key: 0,
6359
6408
  class: "tpl:flex tpl:min-h-[68px] tpl:items-center tpl:rounded-md tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
6360
- }, El = {
6409
+ }, Al = {
6361
6410
  key: 1,
6362
6411
  class: "tpl-comments-input-wrapper tpl:flex tpl:min-h-[68px] tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]"
6363
- }, Dl = ["placeholder", "disabled"], Ol = ["disabled"], kl = /*@__PURE__*/ B({
6412
+ }, jl = ["placeholder", "disabled"], Ml = ["disabled"], Nl = /*@__PURE__*/ B({
6364
6413
  __name: "CommentsSidebar",
6365
6414
  props: { visible: { type: Boolean } },
6366
6415
  emits: ["close", "filterBlock"],
6367
6416
  setup(e, { expose: t, emit: n }) {
6368
- let r = e, i = n, { format: a } = Y(), { t: o } = Zi(), s = J(Ln, "CommentsSidebar"), l = J(fr, "CommentsSidebar"), u = J(mr, "CommentsSidebar"), d = C("unresolved"), p = C(null), g = C(""), _ = C(null), v = C(""), y = C(null), x = C(""), S = C(/* @__PURE__ */ new Set()), w = C(null), T = C(null), E = O(() => l.userConfig?.id ?? null), ee = O(() => {
6417
+ let r = e, i = n, { format: a } = Y(), { t: o } = ta(), s = J(zn, "CommentsSidebar"), l = J(mr, "CommentsSidebar"), u = J(gr, "CommentsSidebar"), d = C("unresolved"), p = C(null), g = C(""), _ = C(null), v = C(""), y = C(null), x = C(""), S = C(/* @__PURE__ */ new Set()), w = C(null), T = C(null), E = O(() => l.userConfig?.id ?? null), ee = O(() => {
6369
6418
  let e = /* @__PURE__ */ new Set();
6370
6419
  for (let t of s.content.value.blocks) if (e.add(t.id), t.type === "section") for (let n of t.children) for (let t of n) e.add(t.id);
6371
6420
  return e;
@@ -6433,7 +6482,7 @@ var Sc = {
6433
6482
  return e.author_identifier === E.value;
6434
6483
  }
6435
6484
  function ve(e) {
6436
- return xc(e, o.snapshotHistory) ?? e;
6485
+ return Tc(e, o.snapshotHistory) ?? e;
6437
6486
  }
6438
6487
  function ye(e) {
6439
6488
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), fe());
@@ -6460,22 +6509,22 @@ var Sc = {
6460
6509
  "leave-from-class": "tpl:translate-x-0",
6461
6510
  "leave-to-class": "tpl:translate-x-full"
6462
6511
  }, {
6463
- default: b(() => [e.visible ? (f(), k("div", Sc, [
6464
- I("div", Cc, [I("div", wc, [
6465
- V(j(vi), {
6512
+ default: b(() => [e.visible ? (f(), k("div", Ec, [
6513
+ I("div", Dc, [I("div", Oc, [
6514
+ V(j(Si), {
6466
6515
  size: 13,
6467
6516
  "stroke-width": 2
6468
6517
  }),
6469
6518
  I("span", null, D(j(o).comments.title), 1),
6470
- j(u).unresolvedCount.value > 0 ? (f(), k("span", Tc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6519
+ j(u).unresolvedCount.value > 0 ? (f(), k("span", kc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6471
6520
  ]), I("button", {
6472
6521
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6473
6522
  onClick: n[0] ||= (e) => i("close")
6474
- }, [V(j(Ii), {
6523
+ }, [V(j(Bi), {
6475
6524
  size: 14,
6476
6525
  "stroke-width": 2
6477
6526
  })])]),
6478
- I("div", Ec, [
6527
+ I("div", Ac, [
6479
6528
  I("button", {
6480
6529
  class: F(["tpl-comment-filter tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150", d.value === "unresolved" ? "tpl-comment-filter--active" : ""]),
6481
6530
  onClick: n[1] ||= (e) => M("unresolved")
@@ -6490,156 +6539,156 @@ var Sc = {
6490
6539
  onClick: n[3] ||= (e) => M("block", j(s).state.selectedBlockId ?? void 0)
6491
6540
  }, D(j(o).comments.filterBlock), 3)) : A("", !0)
6492
6541
  ]),
6493
- I("div", Dc, [j(u).isLoading.value ? (f(), k("div", Oc, [V(j(_i), {
6542
+ I("div", jc, [j(u).isLoading.value ? (f(), k("div", Mc, [V(j(xi), {
6494
6543
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6495
6544
  size: 24,
6496
6545
  "stroke-width": 2
6497
- })])) : re.value.length === 0 ? (f(), k("div", kc, [V(j(vi), {
6546
+ })])) : re.value.length === 0 ? (f(), k("div", Nc, [V(j(Si), {
6498
6547
  size: 32,
6499
6548
  "stroke-width": 1.5,
6500
6549
  class: "tpl:text-[var(--tpl-text-dim)]"
6501
- }), I("p", Ac, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", jc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6550
+ }), I("p", Pc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", Fc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6502
6551
  key: e.id,
6503
6552
  class: "tpl-comment-thread"
6504
6553
  }, [
6505
- I("div", Mc, [
6506
- I("div", Nc, [I("div", Pc, [
6507
- I("span", Fc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6508
- I("span", Ic, D(ve(e.created_at)), 1),
6509
- e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Lc, " (" + D(j(o).comments.edited) + ") ", 1))
6510
- ]), I("div", Rc, [
6554
+ I("div", Ic, [
6555
+ I("div", Lc, [I("div", Rc, [
6556
+ I("span", zc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6557
+ I("span", Bc, D(ve(e.created_at)), 1),
6558
+ e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Vc, " (" + D(j(o).comments.edited) + ") ", 1))
6559
+ ]), I("div", Hc, [
6511
6560
  I("button", {
6512
6561
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6513
6562
  title: e.resolved_at ? j(o).comments.unresolve : j(o).comments.resolve,
6514
6563
  onClick: (t) => ge(e.id)
6515
- }, [V(j(ii), {
6564
+ }, [V(j(ci), {
6516
6565
  size: 13,
6517
6566
  "stroke-width": 2,
6518
6567
  class: "tpl-resolve-icon",
6519
6568
  style: L({ color: e.resolved_at ? "var(--tpl-primary)" : void 0 })
6520
- }, null, 8, ["style"])], 8, zc),
6569
+ }, null, 8, ["style"])], 8, Uc),
6521
6570
  _e(e) ? (f(), k("button", {
6522
6571
  key: 0,
6523
6572
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6524
6573
  title: j(o).comments.edit,
6525
6574
  onClick: (t) => le(e)
6526
- }, [V(j(bi), {
6575
+ }, [V(j(wi), {
6527
6576
  size: 12,
6528
6577
  "stroke-width": 2
6529
- })], 8, Bc)) : A("", !0),
6578
+ })], 8, Wc)) : A("", !0),
6530
6579
  _e(e) ? (f(), k("button", {
6531
6580
  key: 1,
6532
6581
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6533
6582
  title: j(o).comments.delete,
6534
6583
  onClick: (t) => ue(e.id)
6535
- }, [V(j(ji), {
6584
+ }, [V(j(Fi), {
6536
6585
  size: 12,
6537
6586
  "stroke-width": 2
6538
- })], 8, Vc)) : A("", !0)
6587
+ })], 8, Gc)) : A("", !0)
6539
6588
  ])]),
6540
6589
  V(ie, { name: "tpl-resolve" }, {
6541
- default: b(() => [e.resolved_at ? (f(), k("div", Hc, [V(j(Qr), {
6590
+ default: b(() => [e.resolved_at ? (f(), k("div", Kc, [V(j(ni), {
6542
6591
  size: 10,
6543
6592
  "stroke-width": 2.5
6544
6593
  }), I("span", null, D(j(a)(j(o).comments.resolvedBy, { name: e.resolved_by_name ?? "" })), 1)])) : A("", !0)]),
6545
6594
  _: 2
6546
6595
  }, 1024),
6547
- e.block_id && te(e.block_id) ? (f(), k("span", Uc, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6596
+ e.block_id && te(e.block_id) ? (f(), k("span", qc, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6548
6597
  key: 1,
6549
6598
  class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]",
6550
6599
  onClick: (t) => j(s).selectBlock(e.block_id ?? "")
6551
- }, " Block ", 8, Wc)) : A("", !0),
6552
- y.value === e.id ? (f(), k("div", Gc, [c(I("textarea", {
6600
+ }, " Block ", 8, Jc)) : A("", !0),
6601
+ y.value === e.id ? (f(), k("div", Yc, [c(I("textarea", {
6553
6602
  "onUpdate:modelValue": n[4] ||= (e) => x.value = e,
6554
6603
  class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6555
6604
  rows: "3",
6556
6605
  onKeydown: (t) => xe(t, e.id)
6557
- }, null, 40, Kc), [[ae, x.value]]), I("div", qc, [I("button", {
6606
+ }, null, 40, Xc), [[ae, x.value]]), I("div", Zc, [I("button", {
6558
6607
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6559
6608
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6560
6609
  onClick: (t) => me(e.id)
6561
- }, D(j(o).comments.save), 9, Jc), I("button", {
6610
+ }, D(j(o).comments.save), 9, Qc), I("button", {
6562
6611
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6563
6612
  onClick: n[5] ||= (e) => B()
6564
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Yc, D(e.body), 1)),
6565
- w.value === e.id ? (f(), k("div", Xc, [
6566
- I("span", Zc, D(j(o).comments.deleteConfirm), 1),
6613
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", $c, D(e.body), 1)),
6614
+ w.value === e.id ? (f(), k("div", el, [
6615
+ I("span", tl, D(j(o).comments.deleteConfirm), 1),
6567
6616
  I("button", {
6568
6617
  class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
6569
6618
  onClick: (t) => he(e.id)
6570
- }, D(j(o).comments.delete), 9, Qc),
6619
+ }, D(j(o).comments.delete), 9, nl),
6571
6620
  I("button", {
6572
6621
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6573
6622
  onClick: n[6] ||= (e) => de()
6574
6623
  }, D(j(o).comments.cancel), 1)
6575
6624
  ])) : A("", !0),
6576
- y.value !== e.id && w.value !== e.id ? (f(), k("div", $c, [I("button", {
6625
+ y.value !== e.id && w.value !== e.id ? (f(), k("div", rl, [I("button", {
6577
6626
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6578
6627
  title: j(o).comments.reply,
6579
6628
  onClick: (t) => se(e.id)
6580
- }, [V(j(wi), {
6629
+ }, [V(j(Oi), {
6581
6630
  size: 13,
6582
6631
  "stroke-width": 2,
6583
6632
  class: "tpl:text-[var(--tpl-primary)]"
6584
- })], 8, el), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6633
+ })], 8, il), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6585
6634
  key: 0,
6586
6635
  class: "tpl:flex tpl:items-center tpl:gap-0.5 tpl:text-[11px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6587
6636
  onClick: (t) => oe(e.id)
6588
- }, [S.value.has(e.id) ? (f(), N(j(ni), {
6637
+ }, [S.value.has(e.id) ? (f(), N(j(oi), {
6589
6638
  key: 0,
6590
6639
  size: 11,
6591
6640
  "stroke-width": 2
6592
- })) : (f(), N(j($r), {
6641
+ })) : (f(), N(j(ri), {
6593
6642
  key: 1,
6594
6643
  size: 11,
6595
6644
  "stroke-width": 2
6596
- })), z(" " + D((e.replies?.length ?? 0) === 1 ? j(a)(j(o).comments.replyOne, { count: String(e.replies?.length ?? 0) }) : j(a)(j(o).comments.replyMany, { count: String(e.replies?.length ?? 0) })), 1)], 8, tl)) : A("", !0)])) : A("", !0)
6645
+ })), z(" " + D((e.replies?.length ?? 0) === 1 ? j(a)(j(o).comments.replyOne, { count: String(e.replies?.length ?? 0) }) : j(a)(j(o).comments.replyMany, { count: String(e.replies?.length ?? 0) })), 1)], 8, al)) : A("", !0)])) : A("", !0)
6597
6646
  ]),
6598
6647
  V(ie, { name: "tpl-replies" }, {
6599
- default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", nl, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6648
+ default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", ol, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6600
6649
  key: t.id,
6601
6650
  class: F(["tpl-comment-reply-card tpl:relative tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-2.5", r < (e.replies?.length ?? 0) - 1 ? "tpl:mb-2" : ""])
6602
6651
  }, [
6603
- I("div", rl, [I("div", il, [
6604
- I("span", al, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6605
- I("span", ol, D(ve(t.created_at)), 1),
6606
- t.updated_at === t.created_at ? A("", !0) : (f(), k("span", sl, " (" + D(j(o).comments.edited) + ") ", 1))
6607
- ]), I("div", cl, [_e(t) ? (f(), k("button", {
6652
+ I("div", sl, [I("div", cl, [
6653
+ I("span", ll, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6654
+ I("span", ul, D(ve(t.created_at)), 1),
6655
+ t.updated_at === t.created_at ? A("", !0) : (f(), k("span", dl, " (" + D(j(o).comments.edited) + ") ", 1))
6656
+ ]), I("div", fl, [_e(t) ? (f(), k("button", {
6608
6657
  key: 0,
6609
6658
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6610
6659
  title: j(o).comments.edit,
6611
6660
  onClick: (e) => le(t)
6612
- }, [V(j(bi), {
6661
+ }, [V(j(wi), {
6613
6662
  size: 11,
6614
6663
  "stroke-width": 2
6615
- })], 8, ll)) : A("", !0), _e(t) ? (f(), k("button", {
6664
+ })], 8, pl)) : A("", !0), _e(t) ? (f(), k("button", {
6616
6665
  key: 1,
6617
6666
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6618
6667
  title: j(o).comments.delete,
6619
6668
  onClick: (e) => ue(t.id)
6620
- }, [V(j(ji), {
6669
+ }, [V(j(Fi), {
6621
6670
  size: 11,
6622
6671
  "stroke-width": 2
6623
- })], 8, ul)) : A("", !0)])]),
6624
- y.value === t.id ? (f(), k("div", dl, [c(I("textarea", {
6672
+ })], 8, ml)) : A("", !0)])]),
6673
+ y.value === t.id ? (f(), k("div", hl, [c(I("textarea", {
6625
6674
  "onUpdate:modelValue": n[7] ||= (e) => x.value = e,
6626
6675
  class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6627
6676
  rows: "2",
6628
6677
  onKeydown: (e) => xe(e, t.id)
6629
- }, null, 40, fl), [[ae, x.value]]), I("div", pl, [I("button", {
6678
+ }, null, 40, gl), [[ae, x.value]]), I("div", _l, [I("button", {
6630
6679
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6631
6680
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6632
6681
  onClick: (e) => me(t.id)
6633
- }, D(j(o).comments.save), 9, ml), I("button", {
6682
+ }, D(j(o).comments.save), 9, vl), I("button", {
6634
6683
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6635
6684
  onClick: n[8] ||= (e) => B()
6636
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", hl, D(t.body), 1)),
6637
- w.value === t.id ? (f(), k("div", gl, [
6638
- I("span", _l, D(j(o).comments.deleteConfirm), 1),
6685
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", yl, D(t.body), 1)),
6686
+ w.value === t.id ? (f(), k("div", bl, [
6687
+ I("span", xl, D(j(o).comments.deleteConfirm), 1),
6639
6688
  I("button", {
6640
6689
  class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
6641
6690
  onClick: (e) => he(t.id)
6642
- }, D(j(o).comments.delete), 9, vl),
6691
+ }, D(j(o).comments.delete), 9, Sl),
6643
6692
  I("button", {
6644
6693
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6645
6694
  onClick: n[9] ||= (e) => de()
@@ -6649,30 +6698,30 @@ var Sc = {
6649
6698
  _: 2
6650
6699
  }, 1024),
6651
6700
  V(ie, { name: "tpl-replies" }, {
6652
- default: b(() => [_.value === e.id ? (f(), k("div", yl, [I("div", bl, [c(I("textarea", {
6701
+ default: b(() => [_.value === e.id ? (f(), k("div", Cl, [I("div", wl, [c(I("textarea", {
6653
6702
  "onUpdate:modelValue": n[10] ||= (e) => v.value = e,
6654
6703
  class: "tpl:flex-1 tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6655
6704
  placeholder: j(o).comments.replyPlaceholder,
6656
6705
  rows: "2",
6657
6706
  onKeydown: (t) => be(t, e.id)
6658
- }, null, 40, xl), [[ae, v.value]]), I("div", Sl, [I("button", {
6707
+ }, null, 40, Tl), [[ae, v.value]]), I("div", El, [I("button", {
6659
6708
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6660
6709
  disabled: !v.value.trim() || j(u).isSubmitting.value,
6661
6710
  onClick: (t) => pe(e.id)
6662
- }, [V(j(Ti), {
6711
+ }, [V(j(ki), {
6663
6712
  size: 14,
6664
6713
  "stroke-width": 2
6665
- })], 8, Cl), I("button", {
6714
+ })], 8, Dl), I("button", {
6666
6715
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6667
6716
  onClick: n[11] ||= (e) => ce()
6668
- }, [V(j(Ii), {
6717
+ }, [V(j(Bi), {
6669
6718
  size: 14,
6670
6719
  "stroke-width": 2
6671
6720
  })])])])])) : A("", !0)]),
6672
6721
  _: 2
6673
6722
  }, 1024)
6674
6723
  ]))), 128))]))]),
6675
- I("div", wl, [ne.value ? (f(), k("div", Tl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", El, [c(I("textarea", {
6724
+ I("div", Ol, [ne.value ? (f(), k("div", kl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", Al, [c(I("textarea", {
6676
6725
  ref_key: "newCommentInput",
6677
6726
  ref: T,
6678
6727
  "onUpdate:modelValue": n[12] ||= (e) => g.value = e,
@@ -6681,46 +6730,46 @@ var Sc = {
6681
6730
  disabled: j(u).isSubmitting.value,
6682
6731
  rows: "2",
6683
6732
  onKeydown: ye
6684
- }, null, 40, Dl), [[ae, g.value]]), I("button", {
6733
+ }, null, 40, jl), [[ae, g.value]]), I("button", {
6685
6734
  class: "tpl-comments-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6686
6735
  disabled: !g.value.trim() || j(u).isSubmitting.value,
6687
6736
  onClick: fe
6688
- }, [j(u).isSubmitting.value ? (f(), N(j(_i), {
6737
+ }, [j(u).isSubmitting.value ? (f(), N(j(xi), {
6689
6738
  key: 0,
6690
6739
  class: "tpl-spinner",
6691
6740
  size: 16,
6692
6741
  "stroke-width": 2
6693
- })) : (f(), N(j(Ti), {
6742
+ })) : (f(), N(j(ki), {
6694
6743
  key: 1,
6695
6744
  size: 16,
6696
6745
  "stroke-width": 2
6697
- }))], 8, Ol)]))])
6746
+ }))], 8, Ml)]))])
6698
6747
  ])) : A("", !0)]),
6699
6748
  _: 1
6700
6749
  }));
6701
6750
  }
6702
- }), Al = /* @__PURE__ */ e({ default: () => jl }), jl = /*#__PURE__*/ Vi(kl, [["__scopeId", "data-v-d204f573"]]), Ml = {
6751
+ }), Pl = /* @__PURE__ */ e({ default: () => Fl }), Fl = /*#__PURE__*/ Gi(Nl, [["__scopeId", "data-v-d204f573"]]), Il = {
6703
6752
  key: 0,
6704
6753
  class: "tpl-design-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6705
- }, Nl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Pl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Fl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Il = {
6754
+ }, Ll = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Rl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, zl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Bl = {
6706
6755
  key: 0,
6707
6756
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6708
- }, Ll = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Rl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, zl = {
6757
+ }, Vl = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Hl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ul = {
6709
6758
  key: 1,
6710
6759
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6711
- }, Bl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Vl = {
6760
+ }, Wl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Gl = {
6712
6761
  key: 0,
6713
6762
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6714
- }, Hl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Ul = ["src", "alt"], Wl = {
6763
+ }, Kl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, ql = ["src", "alt"], Jl = {
6715
6764
  key: 1,
6716
6765
  class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
6717
- }, Gl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Kl = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ql = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Jl = ["accept"], Yl = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Xl = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Zl = ["placeholder"], Ql = {
6766
+ }, Yl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Xl = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Zl = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Ql = ["accept"], $l = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, eu = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, tu = ["placeholder"], nu = {
6718
6767
  key: 0,
6719
6768
  class: "tpl:flex tpl:flex-col tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:px-3 tpl:py-3 tpl:bg-[var(--tpl-warning-light)] tpl:border tpl:border-[var(--tpl-warning)]"
6720
- }, $l = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, eu = { class: "tpl:flex tpl:gap-2" }, tu = {
6769
+ }, ru = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, iu = { class: "tpl:flex tpl:gap-2" }, au = {
6721
6770
  key: 1,
6722
6771
  class: "tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6723
- }, nu = ["disabled"], ru = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, iu = /*@__PURE__*/ B({
6772
+ }, ou = ["disabled"], su = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, cu = /*@__PURE__*/ B({
6724
6773
  __name: "DesignReferenceSidebar",
6725
6774
  props: {
6726
6775
  visible: { type: Boolean },
@@ -6728,11 +6777,11 @@ var Sc = {
6728
6777
  },
6729
6778
  emits: ["close", "apply"],
6730
6779
  setup(e, { emit: t }) {
6731
- let n = e, r = t, { t: i } = Zi(), a = J(Ln, "DesignReferenceSidebar"), o = Ts({
6732
- authManager: J(fr, "DesignReferenceSidebar"),
6780
+ let n = e, r = t, { t: i } = ta(), a = J(zn, "DesignReferenceSidebar"), o = ks({
6781
+ authManager: J(mr, "DesignReferenceSidebar"),
6733
6782
  getTemplateId: () => a.state.template?.id ?? null,
6734
6783
  onApply: (e) => r("apply", e)
6735
- }), s = C(null), l = C("image"), u = C(null), d = C(""), p = C(null), m = C(!1), h = C(!1), g = O(() => o.isGenerating.value ? !1 : u.value !== null);
6784
+ }), s = C(null), l = C("image"), u = C(null), d = C(""), p = C(null), m = C(!1), h = C(!1), g = O(() => !o.isGenerating.value && u.value !== null);
6736
6785
  function _(e) {
6737
6786
  l.value = e, x();
6738
6787
  }
@@ -6800,17 +6849,17 @@ var Sc = {
6800
6849
  "leave-from-class": "tpl:translate-x-0",
6801
6850
  "leave-to-class": "tpl:translate-x-full"
6802
6851
  }, {
6803
- default: b(() => [e.visible ? (f(), k("div", Ml, [I("div", Nl, [I("div", Pl, [V(j(mi), {
6852
+ default: b(() => [e.visible ? (f(), k("div", Il, [I("div", Ll, [I("div", Rl, [V(j(vi), {
6804
6853
  size: 13,
6805
6854
  "stroke-width": 2
6806
6855
  }), I("span", null, D(j(i).designReference.title), 1)]), I("button", {
6807
6856
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6808
6857
  onClick: n[0] ||= (e) => r("close")
6809
- }, [V(j(Ii), {
6858
+ }, [V(j(Bi), {
6810
6859
  size: 14,
6811
6860
  "stroke-width": 2
6812
- })])]), I("div", Fl, [j(o).isGenerating.value ? (f(), k("div", Il, [I("div", Ll, [V(Gi), I("p", Rl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", zl, [
6813
- I("div", Bl, [I("button", {
6861
+ })])]), I("div", zl, [j(o).isGenerating.value ? (f(), k("div", Bl, [I("div", Vl, [V(Yi), I("p", Hl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Ul, [
6862
+ I("div", Wl, [I("button", {
6814
6863
  class: "tpl:flex tpl:flex-1 tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-2 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150",
6815
6864
  style: L({
6816
6865
  backgroundColor: l.value === "image" ? "var(--tpl-bg)" : "transparent",
@@ -6818,7 +6867,7 @@ var Sc = {
6818
6867
  boxShadow: l.value === "image" ? "var(--tpl-shadow)" : "none"
6819
6868
  }),
6820
6869
  onClick: n[1] ||= (e) => _("image")
6821
- }, [V(j(ui), {
6870
+ }, [V(j(mi), {
6822
6871
  size: 12,
6823
6872
  "stroke-width": 2
6824
6873
  }), z(" " + D(j(i).designReference.uploadImage), 1)], 4), I("button", {
@@ -6829,23 +6878,23 @@ var Sc = {
6829
6878
  boxShadow: l.value === "pdf" ? "var(--tpl-shadow)" : "none"
6830
6879
  }),
6831
6880
  onClick: n[2] ||= (e) => _("pdf")
6832
- }, [V(j(di), {
6881
+ }, [V(j(hi), {
6833
6882
  size: 12,
6834
6883
  "stroke-width": 2
6835
6884
  }), z(" " + D(j(i).designReference.uploadPdf), 1)], 4)]),
6836
- I("div", null, [u.value ? (f(), k("div", Vl, [I("div", Hl, [p.value ? (f(), k("img", {
6885
+ I("div", null, [u.value ? (f(), k("div", Gl, [I("div", Kl, [p.value ? (f(), k("img", {
6837
6886
  key: 0,
6838
6887
  src: p.value,
6839
6888
  alt: u.value.name,
6840
6889
  class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
6841
- }, null, 8, Ul)) : (f(), k("div", Wl, [V(j(di), {
6890
+ }, null, 8, ql)) : (f(), k("div", Jl, [V(j(hi), {
6842
6891
  size: 32,
6843
6892
  "stroke-width": 1.5,
6844
6893
  class: "tpl:text-[var(--tpl-text-dim)]"
6845
- }), I("span", Gl, D(u.value.name), 1)])), I("button", {
6894
+ }), I("span", Yl, D(u.value.name), 1)])), I("button", {
6846
6895
  class: "tpl:absolute tpl:top-2 tpl:right-2 tpl:rounded-full tpl:p-1 tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow)]",
6847
6896
  onClick: x
6848
- }, [V(j(Ii), {
6897
+ }, [V(j(Bi), {
6849
6898
  size: 12,
6850
6899
  "stroke-width": 2
6851
6900
  })])])])) : (f(), k("div", {
@@ -6860,13 +6909,13 @@ var Sc = {
6860
6909
  onDragleave: w,
6861
6910
  onDrop: T
6862
6911
  }, [
6863
- V(j(Pi), {
6912
+ V(j(Ri), {
6864
6913
  size: 24,
6865
6914
  "stroke-width": 1.5,
6866
6915
  class: "tpl:text-[var(--tpl-text-dim)]"
6867
6916
  }),
6868
- I("span", Kl, D(j(i).designReference.dropHint), 1),
6869
- I("span", ql, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6917
+ I("span", Xl, D(j(i).designReference.dropHint), 1),
6918
+ I("span", Zl, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6870
6919
  ], 36)), I("input", {
6871
6920
  ref_key: "fileInput",
6872
6921
  ref: s,
@@ -6874,14 +6923,14 @@ var Sc = {
6874
6923
  class: "tpl:hidden",
6875
6924
  accept: l.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
6876
6925
  onChange: v
6877
- }, null, 40, Jl)]),
6878
- I("div", Yl, [I("label", Xl, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6926
+ }, null, 40, Ql)]),
6927
+ I("div", $l, [I("label", eu, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6879
6928
  "onUpdate:modelValue": n[4] ||= (e) => d.value = e,
6880
6929
  class: F(["tpl:min-h-[72px] tpl:w-full tpl:resize-none tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:font-sans tpl:text-sm tpl:outline-none tpl:transition-colors tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", ["tpl-design-prompt-input"]]),
6881
6930
  placeholder: j(i).designReference.promptPlaceholder,
6882
6931
  rows: "3"
6883
- }, null, 8, Zl), [[ae, d.value]])]),
6884
- m.value ? (f(), k("div", Ql, [I("p", $l, D(j(i).designReference.replaceWarning), 1), I("div", eu, [I("button", {
6932
+ }, null, 8, tu), [[ae, d.value]])]),
6933
+ m.value ? (f(), k("div", nu, [I("p", ru, D(j(i).designReference.replaceWarning), 1), I("div", iu, [I("button", {
6885
6934
  class: "tpl:flex-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:text-[var(--tpl-text-muted)] tpl:border tpl:border-[var(--tpl-border)]",
6886
6935
  style: { "background-color": "transparent" },
6887
6936
  onClick: ee
@@ -6889,7 +6938,7 @@ var Sc = {
6889
6938
  class: "tpl:flex-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6890
6939
  onClick: E
6891
6940
  }, D(j(i).designReference.replaceConfirm), 1)])])) : A("", !0),
6892
- j(o).error.value ? (f(), k("div", tu, [V(j(ri), {
6941
+ j(o).error.value ? (f(), k("div", au, [V(j(si), {
6893
6942
  size: 14,
6894
6943
  "stroke-width": 2,
6895
6944
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -6899,35 +6948,35 @@ var Sc = {
6899
6948
  class: "tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-4 tpl:py-2.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6900
6949
  disabled: !g.value,
6901
6950
  onClick: E
6902
- }, [V(j(mi), {
6951
+ }, [V(j(vi), {
6903
6952
  size: 16,
6904
6953
  "stroke-width": 2
6905
- }), z(" " + D(j(i).designReference.generate), 1)], 8, nu)),
6906
- I("p", ru, D(j(i).aiMenu.disclaimer), 1)
6954
+ }), z(" " + D(j(i).designReference.generate), 1)], 8, ou)),
6955
+ I("p", su, D(j(i).aiMenu.disclaimer), 1)
6907
6956
  ]))])])) : A("", !0)]),
6908
6957
  _: 1
6909
6958
  }));
6910
6959
  }
6911
- }), au = /* @__PURE__ */ e({ default: () => ou }), ou = /*#__PURE__*/ Vi(iu, [["__scopeId", "data-v-bdbf8d0d"]]), su = ["disabled", "title"], cu = ["title"], lu = {
6960
+ }), lu = /* @__PURE__ */ e({ default: () => uu }), uu = /*#__PURE__*/ Gi(cu, [["__scopeId", "data-v-bdbf8d0d"]]), du = ["disabled", "title"], fu = ["title"], pu = {
6912
6961
  key: 0,
6913
6962
  class: "tpl-scale-in tpl:absolute tpl:top-full tpl:left-1/2 tpl:z-50 tpl:mt-2 tpl:w-72 tpl:-translate-x-1/2 tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]",
6914
6963
  style: {
6915
6964
  "backdrop-filter": "blur(8px)",
6916
6965
  "-webkit-backdrop-filter": "blur(8px)"
6917
6966
  }
6918
- }, uu = { class: "tpl:border-b tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)] tpl:border-[var(--tpl-border)]" }, du = {
6967
+ }, mu = { class: "tpl:border-b tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)] tpl:border-[var(--tpl-border)]" }, hu = {
6919
6968
  key: 0,
6920
6969
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:py-8"
6921
- }, fu = {
6970
+ }, gu = {
6922
6971
  key: 1,
6923
6972
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
6924
- }, pu = {
6973
+ }, _u = {
6925
6974
  key: 2,
6926
6975
  class: "tpl:max-h-64 tpl:overflow-y-auto"
6927
- }, mu = ["disabled", "onClick"], hu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, gu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, _u = {
6976
+ }, vu = ["disabled", "onClick"], yu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, bu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, xu = {
6928
6977
  key: 0,
6929
6978
  class: "tpl:rounded tpl:px-1 tpl:py-0.5 tpl:text-[10px] tpl:font-normal tpl:bg-[var(--tpl-bg-active)] tpl:text-[var(--tpl-text-muted)]"
6930
- }, vu = ["disabled", "title"], yu = /*@__PURE__*/ B({
6979
+ }, Su = ["disabled", "title"], Cu = /*@__PURE__*/ B({
6931
6980
  __name: "SnapshotHistory",
6932
6981
  props: {
6933
6982
  snapshots: {},
@@ -6936,7 +6985,7 @@ var Sc = {
6936
6985
  },
6937
6986
  emits: ["load", "navigate"],
6938
6987
  setup(e, { emit: t }) {
6939
- let n = e, r = t, { format: i } = Y(), { t: a } = Zi(), o = C(!1), s = C(null), c = C(-1);
6988
+ let n = e, r = t, { format: i } = Y(), { t: a } = ta(), o = C(!1), s = C(null), c = C(-1);
6940
6989
  H(() => n.snapshots.length, () => {
6941
6990
  c.value = -1;
6942
6991
  });
@@ -6955,7 +7004,7 @@ var Sc = {
6955
7004
  t !== -1 && (c.value = t, r("navigate", n.snapshots[t])), o.value = !1;
6956
7005
  }
6957
7006
  function _(e) {
6958
- let t = xc(e, a.snapshotHistory, i, 7);
7007
+ let t = Tc(e, a.snapshotHistory, i, 7);
6959
7008
  return t === null ? new Date(e).toLocaleDateString(void 0, {
6960
7009
  month: "short",
6961
7010
  day: "numeric",
@@ -6963,7 +7012,7 @@ var Sc = {
6963
7012
  minute: "2-digit"
6964
7013
  }) : t;
6965
7014
  }
6966
- return gn(s, () => {
7015
+ return vn(s, () => {
6967
7016
  o.value = !1;
6968
7017
  }), (t, n) => (f(), k("div", {
6969
7018
  ref_key: "dropdownRef",
@@ -6975,34 +7024,34 @@ var Sc = {
6975
7024
  disabled: !u.value,
6976
7025
  title: j(a).snapshotHistory.olderSnapshot,
6977
7026
  onClick: M(p, ["stop"])
6978
- }, [V(j(ei), {
7027
+ }, [V(j(ii), {
6979
7028
  size: 14,
6980
7029
  "stroke-width": 2
6981
- })], 8, su),
7030
+ })], 8, du),
6982
7031
  I("button", {
6983
7032
  class: "tpl:flex tpl:h-7 tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:gap-0.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:bg-transparent tpl:px-1.5 tpl:transition-colors tpl:duration-150 hover:tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]",
6984
7033
  title: j(a).snapshotHistory.tooltip,
6985
7034
  onClick: M(m, ["stop"])
6986
- }, [V(j(ai), {
7035
+ }, [V(j(li), {
6987
7036
  size: 16,
6988
7037
  "stroke-width": 1.5
6989
- }), V(j($r), {
7038
+ }), V(j(ri), {
6990
7039
  class: F(["tpl:transition-transform tpl:duration-150", { "tpl:rotate-180": o.value }]),
6991
7040
  size: 10,
6992
7041
  "stroke-width": 2
6993
- }, null, 8, ["class"])], 8, cu),
7042
+ }, null, 8, ["class"])], 8, fu),
6994
7043
  V(ie, { name: "tpl-dropdown" }, {
6995
- default: b(() => [o.value ? (f(), k("div", lu, [I("div", uu, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", du, [V(j(_i), {
7044
+ default: b(() => [o.value ? (f(), k("div", pu, [I("div", mu, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", hu, [V(j(xi), {
6996
7045
  class: "tpl:animate-spin tpl:text-[var(--tpl-primary)]",
6997
7046
  size: 20,
6998
7047
  "stroke-width": 2
6999
- })])) : e.snapshots.length === 0 ? (f(), k("div", fu, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", pu, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
7048
+ })])) : e.snapshots.length === 0 ? (f(), k("div", gu, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", _u, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
7000
7049
  key: t.id,
7001
7050
  class: "tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-center tpl:border-b tpl:border-b-[var(--tpl-border-light)] tpl:border-l-2 tpl:border-l-transparent tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-all tpl:duration-150 last:tpl:border-b-0 hover:tpl:border-l-[var(--tpl-primary)] hover:tpl:bg-[var(--tpl-bg-hover)]",
7002
7051
  style: { "background-color": "transparent" },
7003
7052
  disabled: e.isRestoring,
7004
7053
  onClick: (e) => g(t.id)
7005
- }, [I("div", hu, [I("div", gu, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", _u, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, mu))), 128))]))])) : A("", !0)]),
7054
+ }, [I("div", yu, [I("div", bu, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", xu, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, vu))), 128))]))])) : A("", !0)]),
7006
7055
  _: 1
7007
7056
  }),
7008
7057
  I("button", {
@@ -7010,74 +7059,74 @@ var Sc = {
7010
7059
  disabled: !l.value,
7011
7060
  title: j(a).snapshotHistory.newerSnapshot,
7012
7061
  onClick: M(d, ["stop"])
7013
- }, [V(j(ti), {
7062
+ }, [V(j(ai), {
7014
7063
  size: 14,
7015
7064
  "stroke-width": 2
7016
- })], 8, vu)
7065
+ })], 8, Su)
7017
7066
  ], 512));
7018
7067
  }
7019
- }), bu = /* @__PURE__ */ e({ default: () => xu }), xu = yu;
7068
+ }), wu = /* @__PURE__ */ e({ default: () => Tu }), Tu = Cu;
7020
7069
  //#endregion
7021
7070
  //#region src/cloud/utils/scoringStyles.ts
7022
- function Su(e) {
7071
+ function Eu(e) {
7023
7072
  return e >= 80 ? "var(--tpl-success)" : e >= 60 ? "var(--tpl-warning)" : "var(--tpl-danger)";
7024
7073
  }
7025
- function Cu(e) {
7074
+ function Du(e) {
7026
7075
  return e >= 80 ? "var(--tpl-success-light)" : e >= 60 ? "var(--tpl-warning-light)" : "var(--tpl-danger-light)";
7027
7076
  }
7028
- function wu(e) {
7077
+ function Ou(e) {
7029
7078
  return e === "high" ? "var(--tpl-danger)" : e === "medium" ? "var(--tpl-warning)" : "var(--tpl-text-muted)";
7030
7079
  }
7031
- function Tu(e) {
7080
+ function ku(e) {
7032
7081
  return e === "high" ? "var(--tpl-danger-light)" : e === "medium" ? "var(--tpl-warning-light)" : "var(--tpl-bg-hover)";
7033
7082
  }
7034
7083
  //#endregion
7035
7084
  //#region src/cloud/components/TemplateScoringPanel.vue?vue&type=script&setup=true&lang.ts
7036
- var Eu = {
7085
+ var Au = {
7037
7086
  key: 0,
7038
7087
  class: "tpl-scoring-panel tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
7039
- }, Du = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Ou = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, ku = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Au = ["title"], ju = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Mu = {
7088
+ }, ju = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Mu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Nu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Pu = ["title"], Fu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Iu = {
7040
7089
  key: 0,
7041
7090
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7042
- }, Nu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Pu = {
7091
+ }, Lu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ru = {
7043
7092
  key: 1,
7044
7093
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7045
- }, Fu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Iu = {
7094
+ }, zu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Bu = {
7046
7095
  key: 2,
7047
7096
  class: "tpl:flex tpl:flex-col tpl:gap-4"
7048
- }, Lu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Ru = {
7097
+ }, Vu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Hu = {
7049
7098
  key: 0,
7050
7099
  class: "tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
7051
- }, zu = {
7100
+ }, Uu = {
7052
7101
  key: 0,
7053
7102
  class: "tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
7054
- }, Bu = ["onClick"], Vu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Hu = {
7103
+ }, Wu = ["onClick"], Gu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Ku = {
7055
7104
  key: 0,
7056
7105
  class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
7057
- }, Uu = {
7106
+ }, qu = {
7058
7107
  key: 0,
7059
7108
  class: "tpl:border-t tpl:border-[var(--tpl-border)]"
7060
- }, Wu = {
7109
+ }, Ju = {
7061
7110
  key: 0,
7062
7111
  class: "tpl:px-3 tpl:py-3 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
7063
- }, Gu = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Ku = { class: "tpl:flex-1 tpl:min-w-0" }, qu = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Ju = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Yu = {
7112
+ }, Yu = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Xu = { class: "tpl:flex-1 tpl:min-w-0" }, Zu = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Qu = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, $u = {
7064
7113
  key: 0,
7065
7114
  class: "tpl:mt-1 tpl:text-[11px] tpl:leading-snug tpl:text-[var(--tpl-text-dim)]"
7066
- }, Xu = {
7115
+ }, ed = {
7067
7116
  key: 1,
7068
7117
  class: "tpl:mt-2 tpl:flex tpl:justify-center"
7069
- }, Zu = ["disabled", "onClick"], Qu = {
7118
+ }, td = ["disabled", "onClick"], nd = {
7070
7119
  key: 0,
7071
7120
  class: "tpl:mt-1.5 tpl:text-[11px] tpl:text-[var(--tpl-danger)]"
7072
- }, $u = {
7121
+ }, rd = {
7073
7122
  key: 3,
7074
7123
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7075
- }, ed = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, td = { class: "tpl:m-0 tpl:px-4 tpl:pb-2 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, nd = /*@__PURE__*/ B({
7124
+ }, id = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ad = { class: "tpl:m-0 tpl:px-4 tpl:pb-2 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, od = /*@__PURE__*/ B({
7076
7125
  __name: "TemplateScoringPanel",
7077
7126
  props: { visible: { type: Boolean } },
7078
7127
  emits: ["close"],
7079
7128
  setup(e, { emit: t }) {
7080
- let n = e, r = t, { t: i } = Zi(), a = J(Ln, "TemplateScoringPanel"), o = J(gr, "TemplateScoringPanel"), s = v(Yn, []), c = C({
7129
+ let n = e, r = t, { t: i } = ta(), a = J(zn, "TemplateScoringPanel"), o = J(vr, "TemplateScoringPanel"), s = v(Zn, []), c = C({
7081
7130
  spam: !0,
7082
7131
  readability: !0,
7083
7132
  accessibility: !0,
@@ -7092,10 +7141,10 @@ var Eu = {
7092
7141
  "accessibility",
7093
7142
  "bestPractices"
7094
7143
  ], p = {
7095
- spam: Oi,
7096
- readability: li,
7097
- accessibility: ki,
7098
- bestPractices: Li
7144
+ spam: Mi,
7145
+ readability: pi,
7146
+ accessibility: Ni,
7147
+ bestPractices: Vi
7099
7148
  };
7100
7149
  function m() {
7101
7150
  o.score(a.content.value, s);
@@ -7123,50 +7172,50 @@ var Eu = {
7123
7172
  "leave-from-class": "tpl:translate-x-0",
7124
7173
  "leave-to-class": "tpl:translate-x-full"
7125
7174
  }, {
7126
- default: b(() => [e.visible ? (f(), k("div", Eu, [I("div", Du, [I("div", Ou, [V(j(Di), {
7175
+ default: b(() => [e.visible ? (f(), k("div", Au, [I("div", ju, [I("div", Mu, [V(j(ji), {
7127
7176
  size: 13,
7128
7177
  "stroke-width": 2
7129
- }), I("span", null, D(j(i).scoring.title), 1)]), I("div", ku, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
7178
+ }), I("span", null, D(j(i).scoring.title), 1)]), I("div", Nu, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
7130
7179
  key: 0,
7131
7180
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7132
7181
  title: j(i).scoring.rescore,
7133
7182
  onClick: n[0] ||= (e) => m()
7134
- }, [V(j(Ci), {
7183
+ }, [V(j(Di), {
7135
7184
  size: 14,
7136
7185
  "stroke-width": 2
7137
- })], 8, Au)) : A("", !0), I("button", {
7186
+ })], 8, Pu)) : A("", !0), I("button", {
7138
7187
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7139
7188
  onClick: n[1] ||= (e) => r("close")
7140
- }, [V(j(Ii), {
7189
+ }, [V(j(Bi), {
7141
7190
  size: 14,
7142
7191
  "stroke-width": 2
7143
- })])])]), I("div", ju, [j(o).isScoring.value ? (f(), k("div", Mu, [I("p", Nu, D(j(i).scoring.scoring), 1), V(Gi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", Pu, [
7144
- V(j(ri), {
7192
+ })])])]), I("div", Fu, [j(o).isScoring.value ? (f(), k("div", Iu, [I("p", Lu, D(j(i).scoring.scoring), 1), V(Yi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", Ru, [
7193
+ V(j(si), {
7145
7194
  size: 32,
7146
7195
  "stroke-width": 1.5,
7147
7196
  class: "tpl:text-[var(--tpl-danger)]"
7148
7197
  }),
7149
- I("p", Fu, D(j(i).scoring.error), 1),
7198
+ I("p", zu, D(j(i).scoring.error), 1),
7150
7199
  I("button", {
7151
7200
  class: "tpl:mt-2 tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-muted)]",
7152
7201
  onClick: n[2] ||= (e) => m()
7153
- }, [V(j(Ci), {
7202
+ }, [V(j(Di), {
7154
7203
  size: 12,
7155
7204
  "stroke-width": 2
7156
7205
  }), z(" " + D(j(i).scoring.rescore), 1)])
7157
- ])) : j(o).scoringResult.value ? (f(), k("div", Iu, [
7206
+ ])) : j(o).scoringResult.value ? (f(), k("div", Bu, [
7158
7207
  I("div", {
7159
7208
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:p-5",
7160
- style: L({ backgroundColor: j(Cu)(j(o).scoringResult.value.score) })
7209
+ style: L({ backgroundColor: j(Du)(j(o).scoringResult.value.score) })
7161
7210
  }, [
7162
7211
  I("span", {
7163
7212
  class: "tpl:text-4xl tpl:font-bold tpl:tabular-nums",
7164
- style: L({ color: j(Su)(j(o).scoringResult.value.score) })
7213
+ style: L({ color: j(Eu)(j(o).scoringResult.value.score) })
7165
7214
  }, D(j(o).scoringResult.value.score), 5),
7166
- I("span", Lu, D(j(i).scoring.overallScore), 1),
7167
- _() > 0 ? (f(), k("span", Ru, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7215
+ I("span", Vu, D(j(i).scoring.overallScore), 1),
7216
+ _() > 0 ? (f(), k("span", Hu, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7168
7217
  ], 4),
7169
- j(o).fixError.value ? (f(), k("div", zu, [V(j(ri), {
7218
+ j(o).fixError.value ? (f(), k("div", Uu, [V(j(si), {
7170
7219
  size: 14,
7171
7220
  "stroke-width": 2,
7172
7221
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7181,74 +7230,74 @@ var Eu = {
7181
7230
  (f(), N(d(p[e]), {
7182
7231
  size: 14,
7183
7232
  "stroke-width": 2,
7184
- style: L({ color: j(Su)(j(o).scoringResult.value.categories[e].score) })
7233
+ style: L({ color: j(Eu)(j(o).scoringResult.value.categories[e].score) })
7185
7234
  }, null, 8, ["style"])),
7186
- I("span", Vu, D(j(i).scoring.categories[e]), 1),
7235
+ I("span", Gu, D(j(i).scoring.categories[e]), 1),
7187
7236
  I("span", {
7188
7237
  class: "tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-semibold tpl:tabular-nums",
7189
7238
  style: L({
7190
- color: j(Su)(j(o).scoringResult.value.categories[e].score),
7191
- backgroundColor: j(Cu)(j(o).scoringResult.value.categories[e].score)
7239
+ color: j(Eu)(j(o).scoringResult.value.categories[e].score),
7240
+ backgroundColor: j(Du)(j(o).scoringResult.value.categories[e].score)
7192
7241
  })
7193
7242
  }, D(j(o).scoringResult.value.categories[e].score), 5),
7194
- j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Hu, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7195
- V(j($r), {
7243
+ j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Ku, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7244
+ V(j(ri), {
7196
7245
  size: 12,
7197
7246
  "stroke-width": 2,
7198
7247
  class: F(["tpl:transition-transform tpl:duration-200 tpl:text-[var(--tpl-text-dim)]", c.value[e] ? "tpl:rotate-0" : "tpl:-rotate-90"])
7199
7248
  }, null, 8, ["class"])
7200
- ], 8, Bu), c.value[e] ? (f(), k("div", Uu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Wu, D(j(i).scoring.noFindings), 1)) : A("", !0), (f(!0), k(R, null, h(j(o).scoringResult.value.categories[e].findings, (e) => (f(), k("div", {
7249
+ ], 8, Wu), c.value[e] ? (f(), k("div", qu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Ju, D(j(i).scoring.noFindings), 1)) : A("", !0), (f(!0), k(R, null, h(j(o).scoringResult.value.categories[e].findings, (e) => (f(), k("div", {
7201
7250
  key: e.id,
7202
7251
  class: "tpl:border-t tpl:px-3 tpl:py-2.5 first:tpl:border-t-0 tpl:border-[var(--tpl-border-light)]"
7203
- }, [I("div", Gu, [(f(), N(d(j(e.severity === "high" ? ri : e.severity === "medium" ? Mi : gi)), {
7252
+ }, [I("div", Yu, [(f(), N(d(j(e.severity === "high" ? si : e.severity === "medium" ? Ii : bi)), {
7204
7253
  size: 13,
7205
7254
  "stroke-width": 2,
7206
7255
  class: "tpl:mt-0.5 tpl:shrink-0",
7207
- style: L({ color: j(wu)(e.severity) })
7208
- }, null, 8, ["style"])), I("div", Ku, [
7209
- I("div", qu, [I("span", {
7256
+ style: L({ color: j(Ou)(e.severity) })
7257
+ }, null, 8, ["style"])), I("div", Xu, [
7258
+ I("div", Zu, [I("span", {
7210
7259
  class: "tpl:mt-0.5 tpl:shrink-0 tpl:rounded tpl:px-1 tpl:py-px tpl:text-[10px] tpl:font-medium tpl:leading-tight",
7211
7260
  style: L({
7212
- color: j(wu)(e.severity),
7213
- backgroundColor: j(Tu)(e.severity)
7261
+ color: j(Ou)(e.severity),
7262
+ backgroundColor: j(ku)(e.severity)
7214
7263
  })
7215
- }, D(j(i).scoring.severity[e.severity]), 5), I("span", Ju, D(e.message), 1)]),
7216
- e.suggestion ? (f(), k("p", Yu, D(e.suggestion), 1)) : A("", !0),
7217
- e.blockId ? (f(), k("div", Xu, [I("button", {
7264
+ }, D(j(i).scoring.severity[e.severity]), 5), I("span", Qu, D(e.message), 1)]),
7265
+ e.suggestion ? (f(), k("p", $u, D(e.suggestion), 1)) : A("", !0),
7266
+ e.blockId ? (f(), k("div", ed, [I("button", {
7218
7267
  class: "tpl-scoring-fix-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded tpl:border tpl:px-3 tpl:py-1.5 tpl:text-[11px] tpl:font-medium tpl:transition-all tpl:duration-150 tpl:disabled:opacity-50 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)]",
7219
7268
  style: { "background-color": "transparent" },
7220
7269
  disabled: j(o).fixingFindingId.value !== null,
7221
7270
  onClick: (t) => g(e)
7222
- }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(_i), {
7271
+ }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(xi), {
7223
7272
  key: 0,
7224
7273
  class: "tpl-spinner",
7225
7274
  size: 11,
7226
7275
  "stroke-width": 2
7227
- })) : (f(), N(j(ki), {
7276
+ })) : (f(), N(j(Ni), {
7228
7277
  key: 1,
7229
7278
  size: 11,
7230
7279
  "stroke-width": 2
7231
- })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Zu), j(o).fixError.value ? (f(), k("p", Qu, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7280
+ })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, td), j(o).fixError.value ? (f(), k("p", nd, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7232
7281
  ])])]))), 128))])) : A("", !0)])), 64))
7233
- ])) : (f(), k("div", $u, [V(j(Di), {
7282
+ ])) : (f(), k("div", rd, [V(j(ji), {
7234
7283
  size: 32,
7235
7284
  "stroke-width": 1.5,
7236
7285
  class: "tpl:text-[var(--tpl-text-dim)]"
7237
- }), I("p", ed, D(j(i).scoring.emptyState), 1)])), I("p", td, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7286
+ }), I("p", id, D(j(i).scoring.emptyState), 1)])), I("p", ad, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7238
7287
  _: 1
7239
7288
  }));
7240
7289
  }
7241
- }), rd = /* @__PURE__ */ e({ default: () => id }), id = /*#__PURE__*/ Vi(nd, [["__scopeId", "data-v-c23c73d4"]]), ad = ["aria-busy"], od = {
7290
+ }), sd = /* @__PURE__ */ e({ default: () => cd }), cd = /*#__PURE__*/ Gi(od, [["__scopeId", "data-v-c23c73d4"]]), ld = ["aria-busy"], ud = {
7242
7291
  id: "tpl-test-email-title",
7243
7292
  class: "tpl:mb-4 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
7244
- }, sd = { class: "tpl:mb-3" }, cd = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ld = ["value"], ud = ["disabled"], dd = ["value"], fd = {
7293
+ }, dd = { class: "tpl:mb-3" }, fd = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, pd = ["value"], md = ["disabled"], hd = ["value"], gd = {
7245
7294
  key: 0,
7246
7295
  role: "alert",
7247
7296
  class: "tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-danger)]"
7248
- }, pd = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, md = ["disabled"], hd = ["disabled"], gd = {
7297
+ }, _d = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, vd = ["disabled"], yd = ["disabled"], bd = {
7249
7298
  key: 0,
7250
7299
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
7251
- }, _d = { key: 1 }, vd = /*@__PURE__*/ B({
7300
+ }, xd = { key: 1 }, Sd = /*@__PURE__*/ B({
7252
7301
  __name: "TestEmailModal",
7253
7302
  props: {
7254
7303
  visible: { type: Boolean },
@@ -7258,7 +7307,7 @@ var Eu = {
7258
7307
  },
7259
7308
  emits: ["send", "close"],
7260
7309
  setup(e, { emit: t }) {
7261
- let n = e, r = t, { t: i } = Zi(), a = C("");
7310
+ let n = e, r = t, { t: i } = ta(), a = C("");
7262
7311
  H(() => n.visible, (e) => {
7263
7312
  e && (a.value = n.allowedEmails[0] ?? "");
7264
7313
  });
@@ -7271,7 +7320,7 @@ var Eu = {
7271
7320
  function l(e) {
7272
7321
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), o()), e.key === "Escape" && s();
7273
7322
  }
7274
- return (t, n) => (f(), N(os, {
7323
+ return (t, n) => (f(), N(us, {
7275
7324
  visible: e.visible,
7276
7325
  onClose: s,
7277
7326
  onKeydown: l
@@ -7287,14 +7336,14 @@ var Eu = {
7287
7336
  "box-shadow": "var(--tpl-shadow-xl)"
7288
7337
  }
7289
7338
  }, [
7290
- I("h3", od, D(j(i).testEmail.title), 1),
7291
- I("div", sd, [I("label", cd, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7339
+ I("h3", ud, D(j(i).testEmail.title), 1),
7340
+ I("div", dd, [I("label", fd, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7292
7341
  key: 0,
7293
7342
  type: "text",
7294
7343
  value: a.value,
7295
7344
  disabled: "",
7296
7345
  class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:opacity-70 tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
7297
- }, null, 8, ld)) : c((f(), k("select", {
7346
+ }, null, 8, pd)) : c((f(), k("select", {
7298
7347
  key: 1,
7299
7348
  "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
7300
7349
  class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
@@ -7302,29 +7351,29 @@ var Eu = {
7302
7351
  }, [(f(!0), k(R, null, h(e.allowedEmails, (e) => (f(), k("option", {
7303
7352
  key: e,
7304
7353
  value: e
7305
- }, D(e), 9, dd))), 128))], 8, ud)), [[w, a.value]])]),
7306
- e.error ? (f(), k("p", fd, D(e.error), 1)) : A("", !0),
7307
- I("div", pd, [I("button", {
7354
+ }, D(e), 9, hd))), 128))], 8, md)), [[w, a.value]])]),
7355
+ e.error ? (f(), k("p", gd, D(e.error), 1)) : A("", !0),
7356
+ I("div", _d, [I("button", {
7308
7357
  type: "button",
7309
7358
  class: F(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50": e.isSending }]),
7310
7359
  disabled: e.isSending,
7311
7360
  onClick: s
7312
- }, D(j(i).testEmail.cancel), 11, md), I("button", {
7361
+ }, D(j(i).testEmail.cancel), 11, vd), I("button", {
7313
7362
  type: "button",
7314
7363
  class: "tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
7315
7364
  disabled: !a.value || e.isSending,
7316
7365
  onClick: o
7317
- }, [e.isSending ? (f(), k("span", gd, [V(j(_i), {
7366
+ }, [e.isSending ? (f(), k("span", bd, [V(j(xi), {
7318
7367
  class: "tpl:animate-spin",
7319
7368
  size: 12,
7320
7369
  "stroke-width": 2
7321
- }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", _d, D(j(i).testEmail.send), 1))], 8, hd)])
7322
- ], 8, ad)]),
7370
+ }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", xd, D(j(i).testEmail.send), 1))], 8, yd)])
7371
+ ], 8, ld)]),
7323
7372
  _: 1
7324
7373
  }, 8, ["visible"]));
7325
7374
  }
7326
- }), yd = /* @__PURE__ */ e({ default: () => bd }), bd = vd;
7375
+ }), Cd = /* @__PURE__ */ e({ default: () => wd }), wd = Sd;
7327
7376
  //#endregion
7328
- export { ea as $, $n as $t, rs as A, W as An, ti as At, ro as B, Se as Bn, fr as Bt, ms as C, xt as Cn, mi as Ct, cs as D, lt as Dn, oi as Dt, ss as E, ut as En, si as Et, ko as F, we as Fn, kr as Ft, ka as G, pe as Gn, mr as Gt, qa as H, Ee as Hn, Gn as Ht, Eo as I, ve as In, Sr as It, xa as J, ue as Jn, Jn as Jt, Oa as K, de as Kn, Bn as Kt, xo as L, Te as Ln, Y as Lt, Go as M, ye as Mn, Qr as Mt, zo as N, De as Nn, X as Nt, os as O, ct as On, ai as Ot, Io as P, be as Pn, Br as Pt, ia as Q, nr as Qt, yo as R, _e as Rn, pr as Rt, hs as S, yt as Sn, hi as St, Z as T, bt as Tn, ci as Tt, Ua as U, ge as Un, sr as Ut, no as V, Ce as Vn, Wn as Vt, ja as W, xe as Wn, _r as Wt, ua as X, Ln as Xt, fa as Y, ar as Yt, aa as Z, Vn as Zt, Ds as _, sn as _n, bi as _t, Al as a, lr as an, Vi as at, Cs as b, Et as bn, _i as bt, Ws as c, J as cn, Pi as ct, Ls as d, Tn as dn, Ai as dt, Xn as en, $i as et, Is as f, q as fn, ki as ft, Ms as g, nn as gn, Ci as gt, Ns as h, rn as hn, Ti as ht, au as i, gr as in, Ji as it, ts as j, We as jn, $r as jt, is as k, st as kn, ri as kt, zs as l, gn as ln, Mi as lt, Ps as m, On as mn, Ei as mt, rd as n, qn as nn, Xi as nt, gc as o, Hn as on, Bi as ot, Fs as p, jn as pn, Di as pt, Ca as q, fe as qn, Kn as qt, bu as r, hr as rn, Zi as rt, Gs as s, Un as sn, Ii as st, yd as t, ir as tn, Qi as tt, Rs as u, wn as un, ji as ut, Es as v, cn as vn, yi as vt, $ as w, _t as wn, li as wt, ys as x, dt as xn, gi as xt, ws as y, Ft as yn, vi as yt, io as z, he as zn, or as zt };
7377
+ export { ia as $, tr as $t, ss as A, lt as An, ai as At, so as B, Te as Bn, mr as Bt, vs as C, xt as Cn, vi as Ct, fs as D, mt as Dn, ui as Dt, ds as E, ht as En, di as Et, No as F, ye as Fn, jr as Ft, Na as G, Ee as Gn, gr as Gt, Za as H, he as Hn, qn as Ht, Ao as I, De as In, wr as It, Ta as J, pe as Jn, Xn as Jt, Ma as K, ge as Kn, Hn as Kt, To as L, be as Ln, Y as Lt, Yo as M, st as Mn, ni as Mt, Uo as N, W as Nn, X as Nt, us as O, St as On, li as Ot, Bo as P, We as Pn, Wr as Pt, ca as Q, ir as Qt, Co as R, we as Rn, hr as Rt, ys as S, dt as Sn, yi as St, Z as T, yt as Tn, fi as Tt, qa as U, Se as Un, lr as Ut, oo as V, _e as Vn, Kn as Vt, Fa as W, Ce as Wn, yr as Wt, ma as X, fe as Xn, zn as Xt, ga as Y, de as Yn, sr as Yt, la as Z, ue as Zn, Un as Zt, js as _, an as _n, wi as _t, Pl as a, dr as an, Gi as at, Ds as b, Lt as bn, xi as bt, Js as c, Gn as cn, Ri as ct, Vs as d, En as dn, Pi as dt, Qn as en, ra as et, Bs as f, Dn as fn, Ni as ft, Is as g, on as gn, Di as gt, Ls as h, An as hn, ki as ht, lu as i, vr as in, Qi as it, as as j, ct as jn, ri as jt, cs as k, ut as kn, si as kt, Us as l, J as ln, Ii as lt, Rs as m, Nn as mn, Ai as mt, sd as n, Yn as nn, ea as nt, bc as o, Wn as on, Wi as ot, zs as p, q as pn, ji as pt, Da as q, xe as qn, Jn as qt, wu as r, _r as rn, ta as rt, Ys as s, Rn as sn, Bi as st, Cd as t, or as tn, na as tt, Hs as u, vn as un, Fi as ut, As as v, ln as vn, Ci as vt, $ as w, Ct as wn, pi as wt, Cs as x, Ot as xn, bi as xt, Os as y, un as yn, Si as yt, co as z, ve as zn, cr as zt };
7329
7378
 
7330
- //# sourceMappingURL=features-CkTMVylx.js.map
7379
+ //# sourceMappingURL=features-Dpczf9Su.js.map