@templatical/editor 0.17.1 → 0.18.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 (90) hide show
  1. package/dist/{AiChatSidebar-LxCHMdcj.js → AiChatSidebar-BWIzNePR.js} +2 -2
  2. package/dist/{AiFeatureMenu-Cr8pLXMj.js → AiFeatureMenu-IoLW8c6m.js} +4 -4
  3. package/dist/{BlockIssueBadge-BQ1yB1me.js → BlockIssueBadge-FbyZBJlf.js} +2 -2
  4. package/dist/{CloudEditor-qzoNS8K4.js → CloudEditor-txLsdvcR.js} +10 -10
  5. package/dist/{CollaboratorBar-BkfR0CyD.js → CollaboratorBar-CpLOFt43.js} +2 -2
  6. package/dist/{ColorPicker-DfzDyNKe.js → ColorPicker-BXCcUYsZ.js} +3 -3
  7. package/dist/{CommentsSidebar-Cl93TN96.js → CommentsSidebar-C8xFu9qy.js} +3 -3
  8. package/dist/{CountdownBlock-DbXfzwae.js → CountdownBlock-CaU40Htk.js} +1 -1
  9. package/dist/{CountdownToolbar-BqaMWRyB.js → CountdownToolbar-CBbGAxmF.js} +3 -3
  10. package/dist/{DesignReferenceSidebar-jVrdS8wW.js → DesignReferenceSidebar-BWZgqmT-.js} +13 -14
  11. package/dist/{IssuesPanel-Bq3yXg6M.js → IssuesPanel-CBzfmzRM.js} +2 -2
  12. package/dist/{ModuleBrowserModal-XEHfEO0O.js → ModuleBrowserModal-C9qHpjaS.js} +7 -7
  13. package/dist/{ModulePreviewCanvas-BM8XUgbc.js → ModulePreviewCanvas-xEMWMJwf.js} +2 -2
  14. package/dist/{NumberWithSuffix-9FG7mNnn.js → NumberWithSuffix-BreqtON_.js} +1 -1
  15. package/dist/{ParagraphEditor-Cs47wU1V.js → ParagraphEditor-iRJI_YbA.js} +8 -8
  16. package/dist/{RichTextEditorContent-DCzmVeyb.js → RichTextEditorContent-DkXai9qP.js} +4 -4
  17. package/dist/{SaveModuleDialog-BgOS9vCQ.js → SaveModuleDialog-DqDmk0rO.js} +6 -6
  18. package/dist/{SnapshotHistory-CLfYzwv9.js → SnapshotHistory-BVe5aCHi.js} +4 -4
  19. package/dist/{TemplateScoringPanel-CMrfa9Rd.js → TemplateScoringPanel-CRqt9-T5.js} +77 -77
  20. package/dist/{TestEmailModal-DTLfATNt.js → TestEmailModal-jpy4hnYZ.js} +3 -3
  21. package/dist/{TitleEditor-Bq9S0C8Z.js → TitleEditor-Bf6Jv2qI.js} +7 -7
  22. package/dist/{TplModal-BW0FAtYe.js → TplModal-DAtccv6o.js} +3 -3
  23. package/dist/{blockTypeIcons-CvSfLeyV.js → blockTypeIcons-CnlwyvkL.js} +1 -1
  24. package/dist/bundle-stats.json +7 -7
  25. package/dist/cdn/chunks/{AiFeatureMenu-B0zH66nO.js → AiFeatureMenu-B4oJlFQI.js} +2 -2
  26. package/dist/cdn/chunks/{AiFeatureMenu-B0zH66nO.js.map → AiFeatureMenu-B4oJlFQI.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-yD4pKsU9.js → BlockIssueBadge-C7Ts7bT7.js} +2 -2
  28. package/dist/cdn/chunks/{BlockIssueBadge-yD4pKsU9.js.map → BlockIssueBadge-C7Ts7bT7.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-Da-aSmw5.js → CloudEditor-BRO-2CcF.js} +9 -9
  30. package/dist/cdn/chunks/{CloudEditor-Da-aSmw5.js.map → CloudEditor-BRO-2CcF.js.map} +1 -1
  31. package/dist/cdn/chunks/{CollaboratorBar-DixaFis-.js → CollaboratorBar-BsWOjOCS.js} +3 -3
  32. package/dist/cdn/chunks/{CollaboratorBar-DixaFis-.js.map → CollaboratorBar-BsWOjOCS.js.map} +1 -1
  33. package/dist/cdn/chunks/{ColorPicker-O6xXCPEg.js → ColorPicker-DEtVX4gN.js} +2 -2
  34. package/dist/cdn/chunks/{ColorPicker-O6xXCPEg.js.map → ColorPicker-DEtVX4gN.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownBlock-jgBPbI1p.js → CountdownBlock-BUGxk8GI.js} +2 -2
  36. package/dist/cdn/chunks/{CountdownBlock-jgBPbI1p.js.map → CountdownBlock-BUGxk8GI.js.map} +1 -1
  37. package/dist/cdn/chunks/{CountdownToolbar-DrmZwvIH.js → CountdownToolbar-C8tWWfGw.js} +4 -4
  38. package/dist/cdn/chunks/{CountdownToolbar-DrmZwvIH.js.map → CountdownToolbar-C8tWWfGw.js.map} +1 -1
  39. package/dist/cdn/chunks/{IssuesPanel-CpyhXg9M.js → IssuesPanel-C5izyrbm.js} +3 -3
  40. package/dist/cdn/chunks/{IssuesPanel-CpyhXg9M.js.map → IssuesPanel-C5izyrbm.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModuleBrowserModal-DPQLFTti.js → ModuleBrowserModal-DySKXKFF.js} +5 -5
  42. package/dist/cdn/chunks/{ModuleBrowserModal-DPQLFTti.js.map → ModuleBrowserModal-DySKXKFF.js.map} +1 -1
  43. package/dist/cdn/chunks/{ModulePreviewCanvas-Csc6M0RA.js → ModulePreviewCanvas-qqEvLBp2.js} +2 -2
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-Csc6M0RA.js.map → ModulePreviewCanvas-qqEvLBp2.js.map} +1 -1
  45. package/dist/cdn/chunks/{NumberWithSuffix-YmcsBmCd.js → NumberWithSuffix-DttdbXsh.js} +2 -2
  46. package/dist/cdn/chunks/{NumberWithSuffix-YmcsBmCd.js.map → NumberWithSuffix-DttdbXsh.js.map} +1 -1
  47. package/dist/cdn/chunks/{ParagraphEditor-DR5AcHB0.js → ParagraphEditor-CQJ23PXU.js} +6 -6
  48. package/dist/cdn/chunks/{ParagraphEditor-DR5AcHB0.js.map → ParagraphEditor-CQJ23PXU.js.map} +1 -1
  49. package/dist/cdn/chunks/{RichTextEditorContent-52c2EuCT.js → RichTextEditorContent-C4vxiXng.js} +3 -3
  50. package/dist/cdn/chunks/{RichTextEditorContent-52c2EuCT.js.map → RichTextEditorContent-C4vxiXng.js.map} +1 -1
  51. package/dist/cdn/chunks/{SaveModuleDialog-dpRlVrrQ.js → SaveModuleDialog-D5eddgzd.js} +2 -2
  52. package/dist/cdn/chunks/{SaveModuleDialog-dpRlVrrQ.js.map → SaveModuleDialog-D5eddgzd.js.map} +1 -1
  53. package/dist/cdn/chunks/{TitleEditor-DtQTPAg3.js → TitleEditor-5TkwDrPL.js} +5 -5
  54. package/dist/cdn/chunks/{TitleEditor-DtQTPAg3.js.map → TitleEditor-5TkwDrPL.js.map} +1 -1
  55. package/dist/cdn/chunks/{blockTypeIcons-B0ktHdUG.js → blockTypeIcons-CbmN4aSw.js} +3 -3
  56. package/dist/cdn/chunks/{blockTypeIcons-B0ktHdUG.js.map → blockTypeIcons-CbmN4aSw.js.map} +1 -1
  57. package/dist/cdn/chunks/{extensions-CiewgCtw.js → extensions-B3M4IqhZ.js} +2 -2
  58. package/dist/cdn/chunks/{extensions-CiewgCtw.js.map → extensions-B3M4IqhZ.js.map} +1 -1
  59. package/dist/cdn/chunks/{features-DLu_D-6j.js → features-HBwOEo4D.js} +748 -685
  60. package/dist/cdn/chunks/features-HBwOEo4D.js.map +1 -0
  61. package/dist/cdn/chunks/{icons-B03IY-pm.js → icons-D4vTsN4p.js} +2 -2
  62. package/dist/cdn/chunks/{icons-B03IY-pm.js.map → icons-D4vTsN4p.js.map} +1 -1
  63. package/dist/cdn/chunks/{media-library-CYF18RNk.js → media-library-CfExuiSG.js} +3 -3
  64. package/dist/cdn/chunks/{media-library-CYF18RNk.js.map → media-library-CfExuiSG.js.map} +1 -1
  65. package/dist/cdn/chunks/{quality-LmsngN2B.js → quality-nh1R42eb.js} +2 -2
  66. package/dist/cdn/chunks/{quality-LmsngN2B.js.map → quality-nh1R42eb.js.map} +1 -1
  67. package/dist/cdn/chunks/{renderer-DAeNIQqa.js → renderer-BLvlUayY.js} +3 -3
  68. package/dist/cdn/chunks/{renderer-DAeNIQqa.js.map → renderer-BLvlUayY.js.map} +1 -1
  69. package/dist/cdn/chunks/{src-CModhUDN.js → src-Cks4RrLL.js} +4 -4
  70. package/dist/cdn/chunks/{src-CModhUDN.js.map → src-Cks4RrLL.js.map} +1 -1
  71. package/dist/cdn/chunks/{styles-hd_LBGaF.js → styles-CPCN13az.js} +9 -9
  72. package/dist/cdn/chunks/{styles-hd_LBGaF.js.map → styles-CPCN13az.js.map} +1 -1
  73. package/dist/cdn/editor.css +1 -1
  74. package/dist/cdn/editor.js +8 -7
  75. package/dist/cdn/editor.js.map +1 -1
  76. package/dist/{extensions-DhgbhfBX.js → extensions-gpFdCinj.js} +2 -2
  77. package/dist/index.d.ts +37 -0
  78. package/dist/{keys-WVNarXg8.js → keys-DAxnnmXs.js} +3 -3
  79. package/dist/style.css +1 -1
  80. package/dist/{styles-BWC0jc5-.js → styles-CJ6WmkYL.js} +137 -137
  81. package/dist/templatical-editor.js +7 -6
  82. package/dist/{upload-BKg6hDRW.js → upload-y4gxiFp5.js} +3 -2
  83. package/dist/{useCloudI18n-CIKI0hCd.js → useCloudI18n-DIn74fK2.js} +1 -1
  84. package/dist/{useEditorCore-FLMIhtv1.js → useEditorCore-LJJNXXqC.js} +794 -731
  85. package/dist/{useI18n-0EU_JVe7.js → useI18n-OaMLWqhY.js} +1 -1
  86. package/dist/{useMergeTag-C7v6MVah.js → useMergeTag-CZMgwVvr.js} +2 -2
  87. package/dist/{usePopoverPosition-BDqqnMeo.js → usePopoverPosition-QDY09q9H.js} +1 -1
  88. package/package.json +7 -7
  89. package/dist/cdn/chunks/features-DLu_D-6j.js.map +0 -1
  90. package/dist/timeouts-Bmi_yePw.js +0 -4
@@ -1487,15 +1487,78 @@ function Ln() {
1487
1487
  }
1488
1488
  //#endregion
1489
1489
  //#region src/keys.ts
1490
- 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("htmlBlockPreview"), Zn = Symbol("customBlockStylesheets"), Qn = Symbol("mergeTags"), $n = Symbol("mergeTagSyntax"), er = Symbol("onRequestMergeTag"), tr = Symbol("mergeTagAutocomplete"), nr = Symbol("mergeTagPicker"), rr = Symbol("logicTags"), ir = Symbol("logicPairs"), ar = Symbol("logicPicker"), or = Symbol("onRequestLogic"), sr = Symbol("onRequestMedia"), cr = Symbol("displayConditions"), lr = Symbol("allowCustomConditions"), ur = Symbol("capabilities"), dr = Symbol("keyboardReorder"), fr = Symbol("templateLint"), pr = Symbol("editorRoot"), mr = Symbol("popoverRoot"), hr = Symbol("authManager"), gr = Symbol("aiConfig"), _r = Symbol("comments"), vr = Symbol("savedModulesHeadless"), yr = Symbol("scoring"), br = Symbol("cloudTranslations");
1490
+ 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("htmlBlockPreview"), Zn = Symbol("customBlockStylesheets"), Qn = Symbol("mergeTags"), $n = Symbol("mergeTagSyntax"), er = Symbol("onRequestMergeTag"), tr = Symbol("mergeTagAutocomplete"), nr = Symbol("mergeTagPicker"), rr = Symbol("logicTags"), ir = Symbol("logicPairs"), ar = Symbol("logicPicker"), or = Symbol("onRequestLogic"), sr = Symbol("onRequestMedia"), cr = Symbol("imageUrlResolver"), lr = Symbol("displayConditions"), ur = Symbol("allowCustomConditions"), dr = Symbol("capabilities"), fr = Symbol("keyboardReorder"), pr = Symbol("templateLint"), mr = Symbol("editorRoot"), hr = Symbol("popoverRoot"), gr = Symbol("authManager"), _r = Symbol("aiConfig"), vr = Symbol("comments"), yr = Symbol("savedModulesHeadless"), br = Symbol("scoring"), xr = Symbol("cloudTranslations");
1491
1491
  function J(e, t) {
1492
1492
  let n = v(e, null);
1493
1493
  if (n == null) throw Error(`${t} requires a provider for ${e.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
1494
1494
  return n;
1495
1495
  }
1496
1496
  //#endregion
1497
+ //#region src/composables/useImageUrlResolver.ts
1498
+ function Sr(e) {
1499
+ let t = S(/* @__PURE__ */ new Map()), n = /* @__PURE__ */ new Set();
1500
+ function r(e) {
1501
+ return t.get(e);
1502
+ }
1503
+ function i(e) {
1504
+ return t.has(e) || n.has(e);
1505
+ }
1506
+ function a(r) {
1507
+ if (i(r)) return;
1508
+ let a;
1509
+ try {
1510
+ a = e(r);
1511
+ } catch {
1512
+ t.set(r, null);
1513
+ return;
1514
+ }
1515
+ if (a === null || typeof a == "string") {
1516
+ t.set(r, a);
1517
+ return;
1518
+ }
1519
+ n.add(r), Promise.resolve(a).then((e) => {
1520
+ t.set(r, typeof e == "string" ? e : null);
1521
+ }, () => {
1522
+ t.set(r, null);
1523
+ }).finally(() => n.delete(r));
1524
+ }
1525
+ return {
1526
+ get: r,
1527
+ has: i,
1528
+ lookup: a
1529
+ };
1530
+ }
1531
+ function Cr(e) {
1532
+ let t = v(cr, null), n = O(e);
1533
+ if (!t) return n;
1534
+ let r;
1535
+ function i() {
1536
+ r !== void 0 && (clearTimeout(r), r = void 0);
1537
+ }
1538
+ s() && l(i);
1539
+ let a = !0;
1540
+ return H(n, (e) => {
1541
+ i();
1542
+ let n = a;
1543
+ if (a = !1, !(!e || t.has(e))) {
1544
+ if (n) {
1545
+ t.lookup(e);
1546
+ return;
1547
+ }
1548
+ r = setTimeout(() => {
1549
+ r = void 0, t.lookup(e);
1550
+ }, 300);
1551
+ }
1552
+ }, { immediate: !0 }), O(() => {
1553
+ let e = n.value;
1554
+ if (!e) return e;
1555
+ let r = t.get(e);
1556
+ return typeof r == "string" && r.length > 0 ? r : e;
1557
+ });
1558
+ }
1559
+ //#endregion
1497
1560
  //#region src/composables/useMergeTagPicker.ts
1498
- function xr() {
1561
+ function wr() {
1499
1562
  let e = C(!1), t = C([]), n = null;
1500
1563
  function r(r) {
1501
1564
  if (n) {
@@ -1525,7 +1588,7 @@ function xr() {
1525
1588
  }
1526
1589
  //#endregion
1527
1590
  //#region src/composables/useLogicTagPicker.ts
1528
- function Sr() {
1591
+ function Tr() {
1529
1592
  let e = C(!1), t = C([]), n = C([]), r = null;
1530
1593
  function i(i, a) {
1531
1594
  if (r) {
@@ -1556,15 +1619,15 @@ function Sr() {
1556
1619
  }
1557
1620
  //#endregion
1558
1621
  //#region src/composables/useTemplateLint.ts
1559
- function Cr(e) {
1622
+ function Er(e) {
1560
1623
  return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1561
1624
  }
1562
- function wr(e) {
1563
- let t = C([]), r = C(!1), i = C(!1), a = n(null), o = Cr(e.options), s = null, c = !1;
1625
+ function Dr(e) {
1626
+ let t = C([]), r = C(!1), i = C(!1), a = n(null), o = Er(e.options), s = null, c = !1;
1564
1627
  o || l();
1565
1628
  async function l() {
1566
1629
  try {
1567
- let t = await import("./quality-LmsngN2B.js").then((e) => e.t);
1630
+ let t = await import("./quality-nh1R42eb.js").then((e) => e.t);
1568
1631
  if (c) return;
1569
1632
  a.value = { lintTemplate: t.lintTemplate }, r.value = !0, u(), s = fn(e.content, u, {
1570
1633
  debounce: e.debounce ?? 500,
@@ -1615,12 +1678,12 @@ function Y(e) {
1615
1678
  }
1616
1679
  //#endregion
1617
1680
  //#region src/utils/blockTypeLabels.ts
1618
- function Tr(e, t) {
1681
+ function Or(e, t) {
1619
1682
  return t.blocks[e] ?? e;
1620
1683
  }
1621
1684
  //#endregion
1622
1685
  //#region src/composables/useKeyboardReorder.ts
1623
- function Er(e, t) {
1686
+ function kr(e, t) {
1624
1687
  let n = C(null), r = C(""), i = null;
1625
1688
  function a(t) {
1626
1689
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1647,7 +1710,7 @@ function Er(e, t) {
1647
1710
  let r = a(n);
1648
1711
  if (!r) return "";
1649
1712
  let i = (r.sectionId ? s(r.sectionId, r.columnIndex ?? 0) : e.content.value.blocks)?.[r.index];
1650
- return i ? Tr(i.type, t.t) : "";
1713
+ return i ? Or(i.type, t.t) : "";
1651
1714
  }
1652
1715
  function s(t, n) {
1653
1716
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1716,13 +1779,13 @@ function Er(e, t) {
1716
1779
  }
1717
1780
  //#endregion
1718
1781
  //#region src/composables/useUiTheme.ts
1719
- function Dr(e) {
1782
+ function Ar(e) {
1720
1783
  let t = wn("(prefers-color-scheme: dark)");
1721
1784
  return { resolvedTheme: O(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1722
1785
  }
1723
1786
  //#endregion
1724
1787
  //#region src/composables/useThemeStyles.ts
1725
- var Or = {
1788
+ var jr = {
1726
1789
  bg: "--tpl-bg",
1727
1790
  bgElevated: "--tpl-bg-elevated",
1728
1791
  bgHover: "--tpl-bg-hover",
@@ -1746,10 +1809,10 @@ var Or = {
1746
1809
  dangerLight: "--tpl-danger-light",
1747
1810
  canvasBg: "--tpl-canvas-bg"
1748
1811
  };
1749
- function kr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1812
+ function Mr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1750
1813
  return { themeStyles: O(() => {
1751
1814
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1752
- if (a) for (let [e, t] of Object.entries(Or)) {
1815
+ if (a) for (let [e, t] of Object.entries(jr)) {
1753
1816
  let n = a[e];
1754
1817
  n && (r[t] = n);
1755
1818
  }
@@ -1758,27 +1821,27 @@ function kr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1758
1821
  }
1759
1822
  //#endregion
1760
1823
  //#region src/utils/logger.ts
1761
- var Ar = "[Templatical]";
1762
- function jr() {
1824
+ var Nr = "[Templatical]";
1825
+ function Pr() {
1763
1826
  return typeof process < "u" && !0;
1764
1827
  }
1765
- var Mr = {
1828
+ var Fr = {
1766
1829
  warn(...e) {
1767
- console.warn(Ar, ...e);
1830
+ console.warn(Nr, ...e);
1768
1831
  },
1769
1832
  error(...e) {
1770
- console.error(Ar, ...e);
1833
+ console.error(Nr, ...e);
1771
1834
  },
1772
1835
  debug(...e) {
1773
- jr() || console.debug(Ar, ...e);
1836
+ Pr() || console.debug(Nr, ...e);
1774
1837
  },
1775
1838
  info(...e) {
1776
- jr() || console.info(Ar, ...e);
1839
+ Pr() || console.info(Nr, ...e);
1777
1840
  }
1778
1841
  };
1779
1842
  //#endregion
1780
1843
  //#region src/composables/useBlockRegistry.ts
1781
- function Nr() {
1844
+ function Ir() {
1782
1845
  let e = n(/* @__PURE__ */ new Map());
1783
1846
  function t(t, n) {
1784
1847
  e.value.set(t, n), oe(e);
@@ -1818,7 +1881,7 @@ function Nr() {
1818
1881
  strictFilters: !1
1819
1882
  }).parseAndRender(t.template, e.fieldValues);
1820
1883
  } catch (t) {
1821
- return Mr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1884
+ return Fr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1822
1885
  }
1823
1886
  }
1824
1887
  function l(t) {
@@ -1836,9 +1899,9 @@ function Nr() {
1836
1899
  }
1837
1900
  //#endregion
1838
1901
  //#region src/composables/useCustomBlockStylesheets.ts
1839
- function Pr(e, t) {
1902
+ function Lr(e, t) {
1840
1903
  return O(() => {
1841
- let n = Fr(e.value.blocks);
1904
+ let n = Rr(e.value.blocks);
1842
1905
  if (n.size === 0) return [];
1843
1906
  let r = /* @__PURE__ */ new Set(), i = [];
1844
1907
  for (let e of n) {
@@ -1850,11 +1913,11 @@ function Pr(e, t) {
1850
1913
  return i;
1851
1914
  });
1852
1915
  }
1853
- function Fr(e) {
1916
+ function Rr(e) {
1854
1917
  let t = /* @__PURE__ */ new Set();
1855
- return Ir(e, t), t;
1918
+ return zr(e, t), t;
1856
1919
  }
1857
- function Ir(e, t) {
1920
+ function zr(e, t) {
1858
1921
  for (let n of e) {
1859
1922
  if (De(n)) {
1860
1923
  t.add(n.customType);
@@ -1863,13 +1926,13 @@ function Ir(e, t) {
1863
1926
  if (n.type === "section") {
1864
1927
  let e = n.children;
1865
1928
  if (!e) continue;
1866
- for (let n of e) Ir(n, t);
1929
+ for (let n of e) zr(n, t);
1867
1930
  }
1868
1931
  }
1869
1932
  }
1870
1933
  //#endregion
1871
1934
  //#region src/utils/registerBuiltInBlocks.ts
1872
- var Lr = [
1935
+ var Br = [
1873
1936
  {
1874
1937
  type: "section",
1875
1938
  createBlock: Ze
@@ -1923,8 +1986,8 @@ var Lr = [
1923
1986
  createBlock: at
1924
1987
  }
1925
1988
  ];
1926
- function Rr(e, t) {
1927
- for (let n of Lr) {
1989
+ function Vr(e, t) {
1990
+ for (let n of Br) {
1928
1991
  let r = t[n.type];
1929
1992
  r && e.registerBuiltIn(n.type, {
1930
1993
  component: r,
@@ -1934,12 +1997,12 @@ function Rr(e, t) {
1934
1997
  }
1935
1998
  //#endregion
1936
1999
  //#region src/utils/resolveHtmlBlockPreview.ts
1937
- function zr(e) {
2000
+ function Hr(e) {
1938
2001
  return typeof e == "boolean" ? e : e?.enabled ?? !1;
1939
2002
  }
1940
2003
  //#endregion
1941
2004
  //#region src/utils/keyboardShortcuts.ts
1942
- function Br(e) {
2005
+ function Ur(e) {
1943
2006
  for (let t of e.composedPath()) {
1944
2007
  if (!(t instanceof HTMLElement)) continue;
1945
2008
  if (t.isContentEditable) return !0;
@@ -1948,14 +2011,14 @@ function Br(e) {
1948
2011
  }
1949
2012
  return !1;
1950
2013
  }
1951
- function Vr(e, t) {
2014
+ function Wr(e, t) {
1952
2015
  let n = e.metaKey || e.ctrlKey;
1953
2016
  if (n && e.key.toLowerCase() === "s") {
1954
2017
  e.preventDefault(), t.onSave?.();
1955
2018
  return;
1956
2019
  }
1957
2020
  if (n && e.key.toLowerCase() === "z") {
1958
- if (Br(e)) return;
2021
+ if (Ur(e)) return;
1959
2022
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1960
2023
  return;
1961
2024
  }
@@ -1963,11 +2026,11 @@ function Vr(e, t) {
1963
2026
  t.selectBlock(null);
1964
2027
  return;
1965
2028
  }
1966
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Br(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
2029
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Ur(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1967
2030
  }
1968
2031
  //#endregion
1969
2032
  //#region src/utils/mergeTagLabelSegments.ts
1970
- function Hr(e, t, n) {
2033
+ function Gr(e, t, n) {
1971
2034
  if (!e) return [];
1972
2035
  let r = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), i = [], a = 0, o;
1973
2036
  for (; (o = r.exec(e)) !== null;) {
@@ -1994,20 +2057,20 @@ function Hr(e, t, n) {
1994
2057
  }
1995
2058
  //#endregion
1996
2059
  //#region src/components/MergeTagPreviewText.vue
1997
- var Ur = B({
2060
+ var Kr = B({
1998
2061
  name: "MergeTagPreviewText",
1999
2062
  props: { text: {
2000
2063
  type: String,
2001
2064
  required: !0
2002
2065
  } },
2003
2066
  setup(e) {
2004
- let t = v(Qn, []), n = v($n, dt.liquid), r = O(() => Hr(e.text, t, n));
2067
+ let t = v(Qn, []), n = v($n, dt.liquid), r = O(() => Gr(e.text, t, n));
2005
2068
  return () => r.value.map((e, t) => e.type === "tag" ? a("span", {
2006
2069
  key: t,
2007
2070
  class: "tpl-merge-tag-label"
2008
2071
  }, e.value) : e.value);
2009
2072
  }
2010
- }), Wr = { class: "tpl:text-center" }, Gr = ["href"], Kr = /* @__PURE__ */ B({
2073
+ }), qr = { class: "tpl:text-center" }, Jr = ["href"], Yr = /* @__PURE__ */ B({
2011
2074
  __name: "ButtonBlock",
2012
2075
  props: {
2013
2076
  block: {},
@@ -2028,17 +2091,17 @@ var Ur = B({
2028
2091
  };
2029
2092
  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;
2030
2093
  });
2031
- return (t, r) => (f(), k("div", Wr, [I("a", {
2094
+ return (t, r) => (f(), k("div", qr, [I("a", {
2032
2095
  href: e.block.url || "#",
2033
2096
  style: L(n.value),
2034
2097
  class: "tpl:cursor-default",
2035
2098
  onClick: r[0] ||= M(() => {}, ["prevent"])
2036
- }, [V(Ur, { text: e.block.text }, null, 8, ["text"])], 12, Gr)]));
2099
+ }, [V(Kr, { text: e.block.text }, null, 8, ["text"])], 12, Jr)]));
2037
2100
  }
2038
- }), qr = (e) => e === "", Jr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Yr = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Xr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Zr = (e) => {
2039
- let t = Xr(e);
2101
+ }), Xr = (e) => e === "", Zr = (...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(), $r = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), ei = (e) => {
2102
+ let t = $r(e);
2040
2103
  return t.charAt(0).toUpperCase() + t.slice(1);
2041
- }, Qr = {
2104
+ }, ti = {
2042
2105
  xmlns: "http://www.w3.org/2000/svg",
2043
2106
  width: 24,
2044
2107
  height: 24,
@@ -2048,35 +2111,35 @@ var Ur = B({
2048
2111
  "stroke-width": 2,
2049
2112
  "stroke-linecap": "round",
2050
2113
  "stroke-linejoin": "round"
2051
- }, $r = /* @__PURE__ */ Symbol("lucide-icons");
2052
- function ei() {
2053
- return v($r, {});
2114
+ }, ni = /* @__PURE__ */ Symbol("lucide-icons");
2115
+ function ri() {
2116
+ return v(ni, {});
2054
2117
  }
2055
2118
  //#endregion
2056
2119
  //#region ../../node_modules/.pnpm/@lucide+vue@1.25.0_vue@3.5.40_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
2057
- var ti = ({ 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 }) => {
2058
- let { size: f, color: p, strokeWidth: m = 2, absoluteStrokeWidth: h = !1, class: g = "" } = ei(), _ = O(() => {
2059
- let e = qr(r) || qr(i) || r === !0 || i === !0 || h === !0, t = o || s || m || Qr["stroke-width"];
2060
- return e ? Number(t) * 24 / Number(c ?? f ?? Qr.width) : t;
2120
+ var ii = ({ 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 }) => {
2121
+ let { size: f, color: p, strokeWidth: m = 2, absoluteStrokeWidth: h = !1, class: g = "" } = ri(), _ = O(() => {
2122
+ let e = Xr(r) || Xr(i) || r === !0 || i === !0 || h === !0, t = o || s || m || ti["stroke-width"];
2123
+ return e ? Number(t) * 24 / Number(c ?? f ?? ti.width) : t;
2061
2124
  });
2062
2125
  return a("svg", {
2063
- ...Qr,
2126
+ ...ti,
2064
2127
  ...u,
2065
- width: c ?? f ?? Qr.width,
2066
- height: c ?? f ?? Qr.height,
2067
- stroke: l ?? p ?? Qr.stroke,
2128
+ width: c ?? f ?? ti.width,
2129
+ height: c ?? f ?? ti.height,
2130
+ stroke: l ?? p ?? ti.stroke,
2068
2131
  "stroke-width": _.value,
2069
- class: Jr("lucide", g, ...e ? [`lucide-${Yr(Zr(e))}-icon`, `lucide-${Yr(e)}`] : ["lucide-icon"])
2132
+ class: Zr("lucide", g, ...e ? [`lucide-${Qr(ei(e))}-icon`, `lucide-${Qr(e)}`] : ["lucide-icon"])
2070
2133
  }, [...(t ?? n ?? []).map((e) => a(...e)), ...d.default ? [d.default()] : []]);
2071
- }, X = (e, t) => (n, { slots: r, attrs: i }) => a(ti, {
2134
+ }, X = (e, t) => (n, { slots: r, attrs: i }) => a(ii, {
2072
2135
  ...i,
2073
2136
  ...n,
2074
2137
  iconNode: t,
2075
2138
  name: e
2076
- }, r.default ? { default: r.default } : void 0), ni = X("bookmark", [["path", {
2139
+ }, r.default ? { default: r.default } : void 0), ai = X("bookmark", [["path", {
2077
2140
  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",
2078
2141
  key: "oz39mx"
2079
- }]]), ri = X("box", [
2142
+ }]]), oi = X("box", [
2080
2143
  ["path", {
2081
2144
  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",
2082
2145
  key: "hh9hay"
@@ -2089,22 +2152,22 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2089
2152
  d: "M12 22V12",
2090
2153
  key: "d0xqtd"
2091
2154
  }]
2092
- ]), ii = X("check", [["path", {
2155
+ ]), si = X("check", [["path", {
2093
2156
  d: "M20 6 9 17l-5-5",
2094
2157
  key: "1gmf2c"
2095
- }]]), ai = X("chevron-down", [["path", {
2158
+ }]]), ci = X("chevron-down", [["path", {
2096
2159
  d: "m6 9 6 6 6-6",
2097
2160
  key: "qrunsl"
2098
- }]]), oi = X("chevron-left", [["path", {
2161
+ }]]), li = X("chevron-left", [["path", {
2099
2162
  d: "m15 18-6-6 6-6",
2100
2163
  key: "1wnfg3"
2101
- }]]), si = X("chevron-right", [["path", {
2164
+ }]]), ui = X("chevron-right", [["path", {
2102
2165
  d: "m9 18 6-6-6-6",
2103
2166
  key: "mthhwq"
2104
- }]]), ci = X("chevron-up", [["path", {
2167
+ }]]), di = X("chevron-up", [["path", {
2105
2168
  d: "m18 15-6-6-6 6",
2106
2169
  key: "153udz"
2107
- }]]), li = X("circle-alert", [
2170
+ }]]), fi = X("circle-alert", [
2108
2171
  ["circle", {
2109
2172
  cx: "12",
2110
2173
  cy: "12",
@@ -2125,7 +2188,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2125
2188
  y2: "16",
2126
2189
  key: "4dfq90"
2127
2190
  }]
2128
- ]), ui = X("circle-check", [["circle", {
2191
+ ]), pi = X("circle-check", [["circle", {
2129
2192
  cx: "12",
2130
2193
  cy: "12",
2131
2194
  r: "10",
@@ -2133,7 +2196,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2133
2196
  }], ["path", {
2134
2197
  d: "m9 12 2 2 4-4",
2135
2198
  key: "dzmm74"
2136
- }]]), di = X("clock", [["circle", {
2199
+ }]]), mi = X("clock", [["circle", {
2137
2200
  cx: "12",
2138
2201
  cy: "12",
2139
2202
  r: "10",
@@ -2141,13 +2204,13 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2141
2204
  }], ["path", {
2142
2205
  d: "M12 6v6l4 2",
2143
2206
  key: "mmk7yg"
2144
- }]]), fi = X("code", [["path", {
2207
+ }]]), hi = X("code", [["path", {
2145
2208
  d: "m16 18 6-6-6-6",
2146
2209
  key: "eg8j8"
2147
2210
  }], ["path", {
2148
2211
  d: "m8 6-6 6 6 6",
2149
2212
  key: "ppft3o"
2150
- }]]), pi = X("copy", [["rect", {
2213
+ }]]), gi = X("copy", [["rect", {
2151
2214
  width: "14",
2152
2215
  height: "14",
2153
2216
  x: "8",
@@ -2158,7 +2221,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2158
2221
  }], ["path", {
2159
2222
  d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
2160
2223
  key: "zix9uf"
2161
- }]]), mi = X("eye-off", [
2224
+ }]]), _i = X("eye-off", [
2162
2225
  ["path", {
2163
2226
  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",
2164
2227
  key: "ct8e1f"
@@ -2175,7 +2238,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2175
2238
  d: "m2 2 20 20",
2176
2239
  key: "1ooewy"
2177
2240
  }]
2178
- ]), hi = X("eye", [["path", {
2241
+ ]), vi = X("eye", [["path", {
2179
2242
  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",
2180
2243
  key: "1nclc0"
2181
2244
  }], ["circle", {
@@ -2183,7 +2246,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2183
2246
  cy: "12",
2184
2247
  r: "3",
2185
2248
  key: "1v7zrd"
2186
- }]]), gi = X("file-image", [
2249
+ }]]), yi = X("file-image", [
2187
2250
  ["path", {
2188
2251
  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",
2189
2252
  key: "1oefj6"
@@ -2202,7 +2265,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2202
2265
  d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",
2203
2266
  key: "wt3hpn"
2204
2267
  }]
2205
- ]), _i = X("file-text", [
2268
+ ]), bi = X("file-text", [
2206
2269
  ["path", {
2207
2270
  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",
2208
2271
  key: "1oefj6"
@@ -2223,10 +2286,10 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2223
2286
  d: "M16 17H8",
2224
2287
  key: "z1uh3a"
2225
2288
  }]
2226
- ]), vi = X("funnel", [["path", {
2289
+ ]), xi = X("funnel", [["path", {
2227
2290
  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",
2228
2291
  key: "sc7q7i"
2229
- }]]), yi = X("grip-vertical", [
2292
+ }]]), Si = X("grip-vertical", [
2230
2293
  ["circle", {
2231
2294
  cx: "9",
2232
2295
  cy: "12",
@@ -2263,7 +2326,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2263
2326
  r: "1",
2264
2327
  key: "f4zoj3"
2265
2328
  }]
2266
- ]), bi = X("image-up", [
2329
+ ]), Ci = X("image-up", [
2267
2330
  ["path", {
2268
2331
  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",
2269
2332
  key: "9csbqa"
@@ -2282,7 +2345,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2282
2345
  r: "2",
2283
2346
  key: "af1f0g"
2284
2347
  }]
2285
- ]), xi = X("image", [
2348
+ ]), wi = X("image", [
2286
2349
  ["rect", {
2287
2350
  width: "18",
2288
2351
  height: "18",
@@ -2302,7 +2365,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2302
2365
  d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",
2303
2366
  key: "1xmnt7"
2304
2367
  }]
2305
- ]), Si = X("info", [
2368
+ ]), Ti = X("info", [
2306
2369
  ["circle", {
2307
2370
  cx: "12",
2308
2371
  cy: "12",
@@ -2317,31 +2380,31 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2317
2380
  d: "M12 8h.01",
2318
2381
  key: "e9boi3"
2319
2382
  }]
2320
- ]), Ci = X("loader-circle", [["path", {
2383
+ ]), Ei = X("loader-circle", [["path", {
2321
2384
  d: "M21 12a9 9 0 1 1-6.219-8.56",
2322
2385
  key: "13zald"
2323
- }]]), wi = X("message-circle", [["path", {
2386
+ }]]), Di = X("message-circle", [["path", {
2324
2387
  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",
2325
2388
  key: "1sd12s"
2326
- }]]), Ti = X("navigation", [["polygon", {
2389
+ }]]), Oi = X("navigation", [["polygon", {
2327
2390
  points: "3 11 22 2 13 21 11 13 3 11",
2328
2391
  key: "1ltx0t"
2329
- }]]), Ei = X("pencil", [["path", {
2392
+ }]]), ki = X("pencil", [["path", {
2330
2393
  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",
2331
2394
  key: "1a8usu"
2332
2395
  }], ["path", {
2333
2396
  d: "m15 5 4 4",
2334
2397
  key: "1mk7zo"
2335
- }]]), Di = X("puzzle", [["path", {
2398
+ }]]), Ai = X("puzzle", [["path", {
2336
2399
  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",
2337
2400
  key: "w46dr5"
2338
- }]]), Oi = X("redo-2", [["path", {
2401
+ }]]), ji = X("redo-2", [["path", {
2339
2402
  d: "m15 14 5-5-5-5",
2340
2403
  key: "12vg1m"
2341
2404
  }], ["path", {
2342
2405
  d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
2343
2406
  key: "6uklza"
2344
- }]]), ki = X("refresh-cw", [
2407
+ }]]), Mi = X("refresh-cw", [
2345
2408
  ["path", {
2346
2409
  d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",
2347
2410
  key: "v9h5vc"
@@ -2358,19 +2421,19 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2358
2421
  d: "M8 16H3v5",
2359
2422
  key: "1cv678"
2360
2423
  }]
2361
- ]), Ai = X("reply", [["path", {
2424
+ ]), Ni = X("reply", [["path", {
2362
2425
  d: "M20 18v-2a4 4 0 0 0-4-4H4",
2363
2426
  key: "5vmcpk"
2364
2427
  }], ["path", {
2365
2428
  d: "m9 17-5-5 5-5",
2366
2429
  key: "nvlc11"
2367
- }]]), ji = X("send", [["path", {
2430
+ }]]), Pi = X("send", [["path", {
2368
2431
  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",
2369
2432
  key: "1ffxy3"
2370
2433
  }], ["path", {
2371
2434
  d: "m21.854 2.147-10.94 10.939",
2372
2435
  key: "12cjpa"
2373
- }]]), Mi = X("share-2", [
2436
+ }]]), Fi = X("share-2", [
2374
2437
  ["circle", {
2375
2438
  cx: "18",
2376
2439
  cy: "5",
@@ -2403,13 +2466,13 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2403
2466
  y2: "10.49",
2404
2467
  key: "1n3mei"
2405
2468
  }]
2406
- ]), Ni = X("shield-check", [["path", {
2469
+ ]), Ii = X("shield-check", [["path", {
2407
2470
  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",
2408
2471
  key: "oel41y"
2409
2472
  }], ["path", {
2410
2473
  d: "m9 12 2 2 4-4",
2411
2474
  key: "dzmm74"
2412
- }]]), Pi = X("shield-x", [
2475
+ }]]), Li = X("shield-x", [
2413
2476
  ["path", {
2414
2477
  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",
2415
2478
  key: "oel41y"
@@ -2422,7 +2485,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2422
2485
  d: "m9.5 9.5 5 5",
2423
2486
  key: "18nt4w"
2424
2487
  }]
2425
- ]), Fi = X("sparkles", [
2488
+ ]), Ri = X("sparkles", [
2426
2489
  ["path", {
2427
2490
  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",
2428
2491
  key: "1s2grr"
@@ -2441,7 +2504,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2441
2504
  r: "2",
2442
2505
  key: "6kqj1y"
2443
2506
  }]
2444
- ]), Ii = X("table", [
2507
+ ]), zi = X("table", [
2445
2508
  ["path", {
2446
2509
  d: "M12 3v18",
2447
2510
  key: "108xh3"
@@ -2462,7 +2525,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2462
2525
  d: "M3 15h18",
2463
2526
  key: "5xshup"
2464
2527
  }]
2465
- ]), Li = X("trash-2", [
2528
+ ]), Bi = X("trash-2", [
2466
2529
  ["path", {
2467
2530
  d: "M10 11v6",
2468
2531
  key: "nco0om"
@@ -2483,7 +2546,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2483
2546
  d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
2484
2547
  key: "e791ji"
2485
2548
  }]
2486
- ]), Ri = X("triangle-alert", [
2549
+ ]), Vi = X("triangle-alert", [
2487
2550
  ["path", {
2488
2551
  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",
2489
2552
  key: "wmoenq"
@@ -2496,13 +2559,13 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2496
2559
  d: "M12 17h.01",
2497
2560
  key: "p32p05"
2498
2561
  }]
2499
- ]), zi = X("undo-2", [["path", {
2562
+ ]), Hi = X("undo-2", [["path", {
2500
2563
  d: "M9 14 4 9l5-5",
2501
2564
  key: "102s5s"
2502
2565
  }], ["path", {
2503
2566
  d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
2504
2567
  key: "f3b9sd"
2505
- }]]), Bi = X("upload", [
2568
+ }]]), Ui = X("upload", [
2506
2569
  ["path", {
2507
2570
  d: "M12 3v12",
2508
2571
  key: "1x0j5s"
@@ -2515,7 +2578,7 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2515
2578
  d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
2516
2579
  key: "ih7n3h"
2517
2580
  }]
2518
- ]), Vi = X("video", [["path", {
2581
+ ]), Wi = X("video", [["path", {
2519
2582
  d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
2520
2583
  key: "ftymec"
2521
2584
  }], ["rect", {
@@ -2525,20 +2588,20 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2525
2588
  height: "12",
2526
2589
  rx: "2",
2527
2590
  key: "158x01"
2528
- }]]), Hi = X("x", [["path", {
2591
+ }]]), Gi = X("x", [["path", {
2529
2592
  d: "M18 6 6 18",
2530
2593
  key: "1bl5f8"
2531
2594
  }], ["path", {
2532
2595
  d: "m6 6 12 12",
2533
2596
  key: "d8bk6v"
2534
- }]]), Ui = X("zap", [["path", {
2597
+ }]]), Ki = X("zap", [["path", {
2535
2598
  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",
2536
2599
  key: "1xq2db"
2537
- }]]), Wi = ["innerHTML"], Gi = [
2600
+ }]]), qi = ["innerHTML"], Ji = [
2538
2601
  "src",
2539
2602
  "width",
2540
2603
  "height"
2541
- ], Ki = /* @__PURE__ */ B({
2604
+ ], Yi = /* @__PURE__ */ B({
2542
2605
  __name: "CustomBlockIcon",
2543
2606
  props: {
2544
2607
  icon: {},
@@ -2554,40 +2617,40 @@ var ti = ({ name: e, iconNode: t, "icon-node": n, absoluteStrokeWidth: r, "absol
2554
2617
  height: `${n.value}px`
2555
2618
  }),
2556
2619
  innerHTML: e.icon
2557
- }, null, 12, Wi)) : i.value ? (f(), k("img", {
2620
+ }, null, 12, qi)) : i.value ? (f(), k("img", {
2558
2621
  key: 1,
2559
2622
  src: e.icon,
2560
2623
  width: n.value,
2561
2624
  height: n.value,
2562
2625
  class: "tpl:inline-block",
2563
2626
  alt: ""
2564
- }, null, 8, Gi)) : (f(), N(j(ri), {
2627
+ }, null, 8, Ji)) : (f(), N(j(oi), {
2565
2628
  key: 2,
2566
2629
  size: n.value,
2567
2630
  "stroke-width": 1.5
2568
2631
  }, null, 8, ["size"]));
2569
2632
  }
2570
- }), qi = (e, t) => {
2633
+ }), Xi = (e, t) => {
2571
2634
  let n = e.__vccOpts || e;
2572
2635
  for (let [e, r] of t) n[e] = r;
2573
2636
  return n;
2574
- }, Ji = {}, Yi = { class: "tpl-loading-track" };
2575
- function Xi(e, t) {
2576
- return f(), k("div", Yi);
2637
+ }, Zi = {}, Qi = { class: "tpl-loading-track" };
2638
+ function $i(e, t) {
2639
+ return f(), k("div", Qi);
2577
2640
  }
2578
- var Zi = /*#__PURE__*/ qi(Ji, [["render", Xi], ["__scopeId", "data-v-1ed538ec"]]);
2641
+ var ea = /*#__PURE__*/ Xi(Zi, [["render", $i], ["__scopeId", "data-v-1ed538ec"]]);
2579
2642
  //#endregion
2580
2643
  //#region src/composables/useEditorRoot.ts
2581
- function Qi() {
2582
- return v(pr, document) ?? document;
2644
+ function ta() {
2645
+ return v(mr, document) ?? document;
2583
2646
  }
2584
2647
  //#endregion
2585
2648
  //#region src/composables/useFocusTrap.ts
2586
- var $i = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2587
- function ea(e, t) {
2588
- let n = Qi(), r = null, i = null, a = null;
2649
+ var na = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2650
+ function ra(e, t) {
2651
+ let n = ta(), r = null, i = null, a = null;
2589
2652
  function o() {
2590
- return e.value ? Array.from(e.value.querySelectorAll($i)).filter((e) => e.offsetParent !== null) : [];
2653
+ return e.value ? Array.from(e.value.querySelectorAll(na)).filter((e) => e.offsetParent !== null) : [];
2591
2654
  }
2592
2655
  function s(e) {
2593
2656
  if (e.key !== "Tab") return;
@@ -2617,18 +2680,18 @@ function ea(e, t) {
2617
2680
  }
2618
2681
  //#endregion
2619
2682
  //#region src/composables/useCloudI18n.ts
2620
- function ta(e, t) {
2683
+ function ia(e, t) {
2621
2684
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
2622
2685
  }
2623
- function na(e) {
2624
- let t = e ?? v(br, null);
2686
+ function aa(e) {
2687
+ let t = e ?? v(xr, null);
2625
2688
  return {
2626
2689
  t: t ? u(t) ? t.value : t : null,
2627
- format: ta
2690
+ format: ia
2628
2691
  };
2629
2692
  }
2630
- function ra(e) {
2631
- let { t, format: n } = na(e);
2693
+ function oa(e) {
2694
+ let { t, format: n } = aa(e);
2632
2695
  if (!t) throw Error("useCloudI18nStrict() requires a cloud translations provider. Ensure the component is a descendant of CloudEditor.");
2633
2696
  return {
2634
2697
  t,
@@ -2637,7 +2700,7 @@ function ra(e) {
2637
2700
  }
2638
2701
  //#endregion
2639
2702
  //#region src/composables/useMergeTag.ts
2640
- function ia() {
2703
+ function sa() {
2641
2704
  let e = v(Qn, []), t = v($n, dt.liquid), n = v(er, null), r = v(tr, !0), i = v(nr, null), a = C(!1);
2642
2705
  function o(e) {
2643
2706
  return vt(e, t);
@@ -2677,7 +2740,7 @@ function ia() {
2677
2740
  }
2678
2741
  //#endregion
2679
2742
  //#region src/composables/useEmoji.ts
2680
- function aa() {
2743
+ function ca() {
2681
2744
  let [e, t] = dn(!1), r = n([]), i = !1;
2682
2745
  l(() => {
2683
2746
  i = !0;
@@ -2703,7 +2766,7 @@ function aa() {
2703
2766
  }
2704
2767
  //#endregion
2705
2768
  //#region src/composables/useDragDrop.ts
2706
- function oa(e) {
2769
+ function la(e) {
2707
2770
  let { onBlockMove: t, onBlockAdd: n } = e, r = C(!1), i = C(null), a = C(null);
2708
2771
  function o(e) {
2709
2772
  r.value = !0, i.value = e;
@@ -2753,7 +2816,7 @@ function oa(e) {
2753
2816
  }
2754
2817
  //#endregion
2755
2818
  //#region src/composables/useFonts.ts
2756
- var sa = [
2819
+ var ua = [
2757
2820
  {
2758
2821
  value: "Arial",
2759
2822
  label: "Arial"
@@ -2782,7 +2845,7 @@ var sa = [
2782
2845
  value: "Courier New",
2783
2846
  label: "Courier New"
2784
2847
  }
2785
- ], ca = {
2848
+ ], da = {
2786
2849
  arial: "Arial, sans-serif",
2787
2850
  helvetica: "Helvetica, sans-serif",
2788
2851
  georgia: "Georgia, serif",
@@ -2790,14 +2853,14 @@ var sa = [
2790
2853
  verdana: "Verdana, sans-serif",
2791
2854
  "trebuchet ms": "'Trebuchet MS', sans-serif",
2792
2855
  "courier new": "'Courier New', monospace"
2793
- }, la = "Arial, sans-serif";
2794
- function ua(e) {
2795
- let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? la);
2856
+ }, fa = "Arial, sans-serif";
2857
+ function pa(e) {
2858
+ let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? fa);
2796
2859
  function a(e) {
2797
2860
  n.value = e;
2798
2861
  }
2799
2862
  let o = O(() => {
2800
- let e = [...sa];
2863
+ let e = [...ua];
2801
2864
  if (!n.value) return e.sort((e, t) => e.label.localeCompare(t.label));
2802
2865
  let r = t.value.map((e) => ({
2803
2866
  value: e.name,
@@ -2810,23 +2873,23 @@ function ua(e) {
2810
2873
  return o.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2811
2874
  }
2812
2875
  function u(e) {
2813
- return sa.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2876
+ return ua.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2814
2877
  }
2815
2878
  function d() {
2816
2879
  if (e?.defaultFont) {
2817
- if (!n.value && !u(e.defaultFont)) return la;
2880
+ if (!n.value && !u(e.defaultFont)) return fa;
2818
2881
  if (c(e.defaultFont)) {
2819
2882
  let t = o.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
2820
2883
  if (t) return t.value;
2821
2884
  }
2822
2885
  }
2823
- return la;
2886
+ return fa;
2824
2887
  }
2825
2888
  let f = O(() => d());
2826
2889
  function p(e) {
2827
2890
  if (!e) return i.value;
2828
2891
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
2829
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : ca[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2892
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : da[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2830
2893
  }
2831
2894
  let m = [], h = !1;
2832
2895
  async function g() {
@@ -2842,7 +2905,7 @@ function ua(e) {
2842
2905
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
2843
2906
  });
2844
2907
  } catch (t) {
2845
- Mr.warn(`Failed to load custom font "${e.name}":`, t);
2908
+ Fr.warn(`Failed to load custom font "${e.name}":`, t);
2846
2909
  }
2847
2910
  });
2848
2911
  await Promise.allSettled(e), !h && (r.value = !0);
@@ -2869,7 +2932,7 @@ function ua(e) {
2869
2932
  }
2870
2933
  //#endregion
2871
2934
  //#region src/composables/useLogicTag.ts
2872
- function da() {
2935
+ function ma() {
2873
2936
  let e = v(rr, []), t = v(ir, []), n = v($n, dt.liquid), r = v(or, null), i = v(ar, null), a = C(!1), o = !!r || e.length > 0 || t.length > 0, s = e.length > 0 || t.length > 0;
2874
2937
  async function c() {
2875
2938
  if (r) {
@@ -2901,7 +2964,7 @@ function da() {
2901
2964
  }
2902
2965
  //#endregion
2903
2966
  //#region src/utils/mergeTagNodeSpec.ts
2904
- function fa(e, t, n) {
2967
+ function ha(e, t, n) {
2905
2968
  return St(e, n) ? {
2906
2969
  type: "logicMergeTagNode",
2907
2970
  attrs: {
@@ -2918,15 +2981,15 @@ function fa(e, t, n) {
2918
2981
  }
2919
2982
  //#endregion
2920
2983
  //#region src/utils/insertLogicTag.ts
2921
- function pa(e) {
2984
+ function ga(e) {
2922
2985
  return "before" in e && "after" in e;
2923
2986
  }
2924
- function ma(e, t, n) {
2925
- if (!pa(t)) {
2926
- e.chain().focus().insertContent(fa(t.value, t.label, n)).run();
2987
+ function _a(e, t, n) {
2988
+ if (!ga(t)) {
2989
+ e.chain().focus().insertContent(ha(t.value, t.label, n)).run();
2927
2990
  return;
2928
2991
  }
2929
- let r = fa(t.before, t.label, n), i = fa(t.after, t.label, n), { from: a, to: o } = e.state.selection;
2992
+ let r = ha(t.before, t.label, n), i = ha(t.after, t.label, n), { from: a, to: o } = e.state.selection;
2930
2993
  if (a !== o) {
2931
2994
  e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
2932
2995
  return;
@@ -2935,7 +2998,7 @@ function ma(e, t, n) {
2935
2998
  }
2936
2999
  //#endregion
2937
3000
  //#region src/utils/color.ts
2938
- function ha(e) {
3001
+ function va(e) {
2939
3002
  let t = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i.exec(e.trim());
2940
3003
  if (!t) return e;
2941
3004
  let n = (e) => Number(e).toString(16).padStart(2, "0");
@@ -2943,20 +3006,20 @@ function ha(e) {
2943
3006
  }
2944
3007
  //#endregion
2945
3008
  //#region src/utils/linkColorExtension.ts
2946
- function ga(e) {
3009
+ function ya(e) {
2947
3010
  if (!e) return null;
2948
3011
  let t = e.trim();
2949
3012
  return /^#[0-9a-f]{3,8}$/i.test(t) || /^(rgb|rgba|hsl|hsla)\(\s*[0-9.,%/\s]+\)$/i.test(t) || /^[a-z]+$/i.test(t) ? t : null;
2950
3013
  }
2951
- function _a(e) {
3014
+ function ba(e) {
2952
3015
  return e.extend({ addAttributes() {
2953
3016
  return {
2954
3017
  ...this.parent?.(),
2955
3018
  color: {
2956
3019
  default: null,
2957
- parseHTML: (e) => ga(ha(e.style.color)),
3020
+ parseHTML: (e) => ya(va(e.style.color)),
2958
3021
  renderHTML: (e) => {
2959
- let t = ga(e.color);
3022
+ let t = ya(e.color);
2960
3023
  return t ? { style: `color: ${t}` } : {};
2961
3024
  }
2962
3025
  }
@@ -2965,9 +3028,9 @@ function _a(e) {
2965
3028
  }
2966
3029
  //#endregion
2967
3030
  //#region src/composables/useRichTextLinkDialog.ts
2968
- function va(e) {
3031
+ function xa(e) {
2969
3032
  let t = C(!1), n = C(""), r = C(""), i = C(null);
2970
- ea(i, t);
3033
+ ra(i, t);
2971
3034
  function a() {
2972
3035
  let i = e.value?.getAttributes("link") ?? {};
2973
3036
  n.value = i.href || "", r.value = i.color || "", t.value = !0;
@@ -2976,7 +3039,7 @@ function va(e) {
2976
3039
  if (n.value) {
2977
3040
  let t = c(n.value);
2978
3041
  if (t !== null) {
2979
- let n = ga(r.value), i = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
3042
+ let n = ya(r.value), i = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
2980
3043
  n && typeof e.value?.commands.unsetColor == "function" && i?.unsetColor(), i?.run();
2981
3044
  }
2982
3045
  }
@@ -3023,8 +3086,8 @@ function va(e) {
3023
3086
  }
3024
3087
  //#endregion
3025
3088
  //#region src/composables/useRichTextEditor.ts
3026
- function ya(e) {
3027
- let t = v(zn, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = ia(), { canInsertLogicTag: l, isRequesting: d, requestLogicTag: f } = da(), 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, linkColor: b, linkDialogRef: x, openLinkDialog: S, insertLink: w, removeLink: ee, closeLinkDialog: T, handleLinkKeydown: E } = va(g), { start: D, stop: te } = un(() => g.value?.commands.focus("end"), 0, { immediate: !1 }), ne = n(null), O = C(!0), k = C(null), A = !1;
3089
+ function Sa(e) {
3090
+ let t = v(zn, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = sa(), { canInsertLogicTag: l, isRequesting: d, requestLogicTag: f } = ma(), 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, linkColor: b, linkDialogRef: x, openLinkDialog: S, insertLink: w, removeLink: ee, closeLinkDialog: T, handleLinkKeydown: E } = xa(g), { start: D, stop: te } = un(() => g.value?.commands.focus("end"), 0, { immediate: !1 }), ne = n(null), O = C(!0), k = C(null), A = !1;
3028
3091
  async function j() {
3029
3092
  k.value = null, O.value = !0;
3030
3093
  try {
@@ -3054,7 +3117,7 @@ function ya(e) {
3054
3117
  g.value = l, O.value = !1, D();
3055
3118
  } catch (t) {
3056
3119
  if (A) return;
3057
- Mr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), k.value = t instanceof Error ? t.message : "Failed to load editor", O.value = !1;
3120
+ Fr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), k.value = t instanceof Error ? t.message : "Failed to load editor", O.value = !1;
3058
3121
  }
3059
3122
  }
3060
3123
  function M() {
@@ -3084,7 +3147,7 @@ function ya(e) {
3084
3147
  }
3085
3148
  async function ae() {
3086
3149
  let e = await f();
3087
- A || (e && g.value ? ma(g.value, e, s) : g.value?.commands.focus());
3150
+ A || (e && g.value ? _a(g.value, e, s) : g.value?.commands.focus());
3088
3151
  }
3089
3152
  return {
3090
3153
  editor: g,
@@ -3113,9 +3176,9 @@ function ya(e) {
3113
3176
  }
3114
3177
  //#endregion
3115
3178
  //#region src/composables/useSmallScreenNotice.ts
3116
- var ba = "(max-width: 767px)";
3117
- function xa(e) {
3118
- let t = wn(ba);
3179
+ var Ca = "(max-width: 767px)";
3180
+ function wa(e) {
3181
+ let t = wn(Ca);
3119
3182
  return {
3120
3183
  isSmallScreen: t,
3121
3184
  showNotice: O(() => (P(e) ?? !0) && t.value)
@@ -3123,20 +3186,20 @@ function xa(e) {
3123
3186
  }
3124
3187
  //#endregion
3125
3188
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
3126
- var Sa = { class: "tpl:w-full" }, Ca = {
3189
+ var Ta = { class: "tpl:w-full" }, Ea = {
3127
3190
  key: 0,
3128
3191
  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)]"
3129
- }, wa = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ta = {
3192
+ }, Da = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Oa = {
3130
3193
  key: 1,
3131
3194
  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)]"
3132
- }, Ea = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Da = {
3195
+ }, ka = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Aa = {
3133
3196
  key: 2,
3134
3197
  class: "tpl:relative"
3135
- }, Oa = ["innerHTML"], ka = {
3198
+ }, ja = ["innerHTML"], Ma = {
3136
3199
  key: 0,
3137
3200
  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]",
3138
3201
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
3139
- }, Aa = /* @__PURE__ */ B({
3202
+ }, Na = /* @__PURE__ */ B({
3140
3203
  __name: "CustomBlock",
3141
3204
  props: {
3142
3205
  block: {},
@@ -3170,10 +3233,10 @@ var Sa = { class: "tpl:w-full" }, Ca = {
3170
3233
  g();
3171
3234
  }), H(() => n.block.fieldValues, () => {
3172
3235
  _();
3173
- }, { deep: !0 }), (e, t) => (f(), k("div", Sa, [u.value ? c.value ? (f(), k("div", Ta, [V(j(Ri), {
3236
+ }, { deep: !0 }), (e, t) => (f(), k("div", Ta, [u.value ? c.value ? (f(), k("div", Oa, [V(j(Vi), {
3174
3237
  size: 24,
3175
3238
  class: "tpl:text-[var(--tpl-danger)]"
3176
- }), I("span", Ea, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", Da, [I("div", { innerHTML: s.value }, null, 8, Oa), j(h) && j(m) ? (f(), k("div", ka, [j(d) ? (f(), N(Zi, {
3239
+ }), I("span", ka, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", Aa, [I("div", { innerHTML: s.value }, null, 8, ja), j(h) && j(m) ? (f(), k("div", Ma, [j(d) ? (f(), N(ea, {
3177
3240
  key: 1,
3178
3241
  class: "tpl:w-48"
3179
3242
  })) : (f(), k("button", {
@@ -3181,16 +3244,16 @@ var Sa = { class: "tpl:w-full" }, Ca = {
3181
3244
  type: "button",
3182
3245
  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)]",
3183
3246
  onClick: t[0] ||= M((...e) => j(p) && j(p)(...e), ["stop"])
3184
- }, [l.value?.icon ? (f(), N(Ki, {
3247
+ }, [l.value?.icon ? (f(), N(Yi, {
3185
3248
  key: 0,
3186
3249
  icon: l.value.icon,
3187
3250
  size: 16
3188
- }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", Ca, [V(j(Di), {
3251
+ }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", Ea, [V(j(Ai), {
3189
3252
  size: 24,
3190
3253
  class: "tpl:text-[var(--tpl-warning)]"
3191
- }), I("span", wa, D(j(a).customBlocks.definitionNotFound), 1)]))]));
3254
+ }), I("span", Da, D(j(a).customBlocks.definitionNotFound), 1)]))]));
3192
3255
  }
3193
- }), ja = { class: "tpl:w-full" }, Ma = /* @__PURE__ */ B({
3256
+ }), Pa = { class: "tpl:w-full" }, Fa = /* @__PURE__ */ B({
3194
3257
  __name: "DividerBlock",
3195
3258
  props: {
3196
3259
  block: {},
@@ -3202,21 +3265,21 @@ var Sa = { class: "tpl:w-full" }, Ca = {
3202
3265
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
3203
3266
  margin: t.block.width === "full" ? "0" : "0 auto"
3204
3267
  }));
3205
- return (e, t) => (f(), k("div", ja, [I("hr", {
3268
+ return (e, t) => (f(), k("div", Pa, [I("hr", {
3206
3269
  class: "tpl:m-0 tpl:border-none",
3207
3270
  style: L(n.value)
3208
3271
  }, null, 4)]));
3209
3272
  }
3210
- }), Na = { class: "tpl:w-full" }, Pa = ["srcdoc", "title"], Fa = {
3273
+ }), Ia = { class: "tpl:w-full" }, La = ["srcdoc", "title"], Ra = {
3211
3274
  key: 1,
3212
3275
  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)]"
3213
- }, Ia = {
3276
+ }, za = {
3214
3277
  key: 0,
3215
3278
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
3216
- }, La = {
3279
+ }, Ba = {
3217
3280
  key: 1,
3218
3281
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
3219
- }, Ra = /* @__PURE__ */ B({
3282
+ }, Va = /* @__PURE__ */ B({
3220
3283
  __name: "HtmlBlock",
3221
3284
  props: {
3222
3285
  block: {},
@@ -3237,7 +3300,7 @@ var Sa = { class: "tpl:w-full" }, Ca = {
3237
3300
  e || (c?.disconnect(), c = null);
3238
3301
  }), re(() => {
3239
3302
  c?.disconnect(), c = null;
3240
- }), (t, r) => (f(), k("div", Na, [a.value ? (f(), k("iframe", {
3303
+ }), (t, r) => (f(), k("div", Ia, [a.value ? (f(), k("iframe", {
3241
3304
  key: 0,
3242
3305
  ref_key: "iframeRef",
3243
3306
  ref: o,
@@ -3247,15 +3310,15 @@ var Sa = { class: "tpl:w-full" }, Ca = {
3247
3310
  class: "tpl:block tpl:w-full tpl:border-0",
3248
3311
  style: L({ height: `${s.value}px` }),
3249
3312
  onLoad: u
3250
- }, null, 44, Pa)) : (f(), k("div", Fa, [V(j(fi), {
3313
+ }, null, 44, La)) : (f(), k("div", Ra, [V(j(hi), {
3251
3314
  size: 24,
3252
3315
  class: "tpl:text-[var(--tpl-text-dim)]"
3253
- }), i.value ? (f(), k("span", Ia, D(j(n).html.preview), 1)) : (f(), k("span", La, D(j(n).html.empty), 1))]))]));
3316
+ }), i.value ? (f(), k("span", za, D(j(n).html.preview), 1)) : (f(), k("span", Ba, D(j(n).html.empty), 1))]))]));
3254
3317
  }
3255
3318
  });
3256
3319
  //#endregion
3257
3320
  //#region src/composables/useAliveFlag.ts
3258
- function za() {
3321
+ function Ha() {
3259
3322
  let e = { alive: !0 };
3260
3323
  return re(() => {
3261
3324
  e.alive = !1;
@@ -3263,13 +3326,13 @@ function za() {
3263
3326
  }
3264
3327
  //#endregion
3265
3328
  //#region src/composables/useImageDrop.ts
3266
- var Ba = "image/";
3267
- function Va(e) {
3329
+ var Ua = "image/";
3330
+ function Wa(e) {
3268
3331
  let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 || P(r), { isOverDropZone: a } = Dn(t, {
3269
3332
  preventDefaultForUnhandled: !0,
3270
3333
  onDrop: (e) => {
3271
3334
  if (!i()) return;
3272
- let t = (e ?? []).filter((e) => e.type.startsWith(Ba));
3335
+ let t = (e ?? []).filter((e) => e.type.startsWith(Ua));
3273
3336
  t.length > 0 && n([t[0]]);
3274
3337
  }
3275
3338
  });
@@ -3277,17 +3340,17 @@ function Va(e) {
3277
3340
  }
3278
3341
  //#endregion
3279
3342
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
3280
- var Ha = {
3343
+ var Ga = {
3281
3344
  key: 0,
3282
3345
  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)]",
3283
3346
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
3284
- }, Ua = ["href"], Wa = ["src", "alt"], Ga = ["src", "alt"], Ka = {
3347
+ }, Ka = ["href"], qa = ["src", "alt"], Ja = ["src", "alt"], Ya = {
3285
3348
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3286
3349
  style: { opacity: "0.7" }
3287
- }, qa = ["href"], Ja = ["src", "alt"], Ya = ["src", "alt"], Xa = {
3350
+ }, Xa = ["href"], Za = ["src", "alt"], Qa = ["src", "alt"], $a = {
3288
3351
  key: 4,
3289
3352
  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)]"
3290
- }, Za = ["aria-label"], Qa = { key: 1 }, $a = /* @__PURE__ */ B({
3353
+ }, eo = ["aria-label"], to = { key: 1 }, no = /* @__PURE__ */ B({
3291
3354
  __name: "ImageBlock",
3292
3355
  props: {
3293
3356
  block: {},
@@ -3295,7 +3358,7 @@ var Ha = {
3295
3358
  },
3296
3359
  emits: ["update"],
3297
3360
  setup(e, { emit: t }) {
3298
- let n = e, r = t, { t: i } = Y(), { syntax: a } = ia(), o = v(sr, null), s = O(() => !!o), c = za();
3361
+ let n = e, r = t, { t: i } = Y(), { syntax: a } = sa(), o = v(sr, null), s = O(() => !!o), c = Ha();
3299
3362
  async function l() {
3300
3363
  let e = await o?.({ accept: ["images"] });
3301
3364
  if (c.alive && e) {
@@ -3322,7 +3385,7 @@ var Ha = {
3322
3385
  }
3323
3386
  }
3324
3387
  }
3325
- let { isOver: h } = Va({
3388
+ let { isOver: h } = Wa({
3326
3389
  target: u,
3327
3390
  enabled: p,
3328
3391
  onFiles: m
@@ -3335,18 +3398,18 @@ var Ha = {
3335
3398
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
3336
3399
  marginRight: e === "center" ? "auto" : void 0
3337
3400
  };
3338
- }), y = O(() => xt(n.block.src, a));
3401
+ }), y = O(() => xt(n.block.src, a)), b = Cr(() => y.value ? void 0 : n.block.src), x = Cr(() => y.value ? n.block.placeholderUrl : void 0);
3339
3402
  return (t, n) => (f(), k("div", {
3340
3403
  ref_key: "dropZoneRef",
3341
3404
  ref: u,
3342
3405
  "data-testid": "image-drop-zone",
3343
3406
  class: "tpl:relative tpl:w-full",
3344
3407
  style: L(g.value)
3345
- }, [p.value && (j(h) || d.value) ? (f(), k("div", Ha, [d.value ? (f(), k(R, { key: 0 }, [V(j(Ci), {
3408
+ }, [p.value && (j(h) || d.value) ? (f(), k("div", Ga, [d.value ? (f(), k(R, { key: 0 }, [V(j(Ei), {
3346
3409
  class: "tpl-spinner",
3347
3410
  size: 20,
3348
3411
  "stroke-width": 2
3349
- }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Bi), {
3412
+ }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Ui), {
3350
3413
  size: 20,
3351
3414
  "stroke-width": 1.5
3352
3415
  }), 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", {
@@ -3358,25 +3421,25 @@ var Ha = {
3358
3421
  }, [I("img", {
3359
3422
  class: "tpl:border-0",
3360
3423
  loading: "lazy",
3361
- src: e.block.placeholderUrl,
3424
+ src: j(x),
3362
3425
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3363
3426
  style: L(_.value)
3364
- }, null, 12, Wa)], 8, Ua)) : (f(), k("img", {
3427
+ }, null, 12, qa)], 8, Ka)) : (f(), k("img", {
3365
3428
  key: 1,
3366
3429
  class: "tpl:border-0",
3367
- src: e.block.placeholderUrl,
3430
+ src: j(x),
3368
3431
  alt: e.block.alt,
3369
3432
  style: L(_.value)
3370
- }, null, 12, Ga))], 64)) : e.block.src && y.value ? (f(), k("div", {
3433
+ }, null, 12, Ja))], 64)) : e.block.src && y.value ? (f(), k("div", {
3371
3434
  key: 2,
3372
3435
  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)]",
3373
3436
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, _.value])
3374
- }, [V(j(xi), {
3437
+ }, [V(j(wi), {
3375
3438
  size: 32,
3376
3439
  "stroke-width": 1.5,
3377
3440
  class: "tpl:text-[var(--tpl-primary)]",
3378
3441
  style: { opacity: "0.5" }
3379
- }), I("span", Ka, [V(Ur, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [e.block.linkUrl ? (f(), k("a", {
3442
+ }), I("span", Ya, [V(Kr, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [e.block.linkUrl ? (f(), k("a", {
3380
3443
  key: 0,
3381
3444
  href: e.block.linkUrl,
3382
3445
  target: "_blank",
@@ -3385,29 +3448,29 @@ var Ha = {
3385
3448
  }, [I("img", {
3386
3449
  class: "tpl:border-0",
3387
3450
  loading: "lazy",
3388
- src: e.block.src,
3451
+ src: j(b),
3389
3452
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3390
3453
  style: L(_.value)
3391
- }, null, 12, Ja)], 8, qa)) : (f(), k("img", {
3454
+ }, null, 12, Za)], 8, Xa)) : (f(), k("img", {
3392
3455
  key: 1,
3393
3456
  class: "tpl:border-0",
3394
- src: e.block.src,
3457
+ src: j(b),
3395
3458
  alt: e.block.alt,
3396
3459
  style: L(_.value)
3397
- }, null, 12, Ya))], 64)) : (f(), k("div", Xa, [s.value ? (f(), k("button", {
3460
+ }, null, 12, Qa))], 64)) : (f(), k("div", $a, [s.value ? (f(), k("button", {
3398
3461
  key: 0,
3399
3462
  "aria-label": j(i).image.browseMedia,
3400
3463
  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)]",
3401
3464
  onClick: M(l, ["stop"])
3402
- }, [V(j(xi), {
3465
+ }, [V(j(wi), {
3403
3466
  size: 14,
3404
3467
  "stroke-width": 1.5
3405
- }), z(" " + D(j(i).image.browseMedia), 1)], 8, Za)) : (f(), k("span", Qa, D(j(i).image.clickToAdd), 1))]))], 4));
3468
+ }), z(" " + D(j(i).image.browseMedia), 1)], 8, eo)) : (f(), k("span", to, D(j(i).image.clickToAdd), 1))]))], 4));
3406
3469
  }
3407
- }), eo = { class: "tpl:w-full" }, to = ["href"], no = {
3470
+ }), ro = { class: "tpl:w-full" }, io = ["href"], ao = {
3408
3471
  key: 1,
3409
3472
  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)]"
3410
- }, ro = /* @__PURE__ */ B({
3473
+ }, oo = /* @__PURE__ */ B({
3411
3474
  __name: "MenuBlock",
3412
3475
  props: {
3413
3476
  block: {},
@@ -3426,7 +3489,7 @@ var Ha = {
3426
3489
  function a(e) {
3427
3490
  return e || t.block.linkColor || t.block.color;
3428
3491
  }
3429
- return (t, o) => (f(), k("div", eo, [i.value ? (f(), k("div", {
3492
+ return (t, o) => (f(), k("div", ro, [i.value ? (f(), k("div", {
3430
3493
  key: 0,
3431
3494
  style: L(r.value)
3432
3495
  }, [(f(!0), k(R, null, h(e.block.items, (t, n) => (f(), k(R, { key: t.id }, [I("a", {
@@ -3438,24 +3501,24 @@ var Ha = {
3438
3501
  textDecoration: t.underline ? "underline" : "none"
3439
3502
  }),
3440
3503
  onClick: o[0] ||= M(() => {}, ["prevent"])
3441
- }, [V(Ur, { text: t.text || "..." }, null, 8, ["text"])], 12, to), n < e.block.items.length - 1 ? (f(), k("span", {
3504
+ }, [V(Kr, { text: t.text || "..." }, null, 8, ["text"])], 12, io), n < e.block.items.length - 1 ? (f(), k("span", {
3442
3505
  key: 0,
3443
3506
  style: L({
3444
3507
  color: e.block.separatorColor,
3445
3508
  padding: `0 ${e.block.spacing}px`
3446
3509
  })
3447
- }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", no, [V(j(Ti), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3510
+ }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", ao, [V(j(Oi), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3448
3511
  }
3449
3512
  });
3450
3513
  //#endregion
3451
3514
  //#region src/composables/usePopoverRoot.ts
3452
- function io() {
3453
- return v(mr, C(null));
3515
+ function so() {
3516
+ return v(hr, C(null));
3454
3517
  }
3455
3518
  //#endregion
3456
3519
  //#region src/composables/usePopoverPosition.ts
3457
- function ao() {
3458
- let e = io();
3520
+ function co() {
3521
+ let e = so();
3459
3522
  function t(t) {
3460
3523
  let n = e.value?.getBoundingClientRect();
3461
3524
  return n ? {
@@ -3470,7 +3533,7 @@ function ao() {
3470
3533
  }
3471
3534
  //#endregion
3472
3535
  //#region src/utils/sanitizeRichTextHtml.ts
3473
- var oo = /* @__PURE__ */ new Set([
3536
+ var lo = /* @__PURE__ */ new Set([
3474
3537
  "http",
3475
3538
  "https",
3476
3539
  "mailto",
@@ -3480,7 +3543,7 @@ var oo = /* @__PURE__ */ new Set([
3480
3543
  "sms",
3481
3544
  "xmpp",
3482
3545
  "cid"
3483
- ]), so = /* @__PURE__ */ new Set([
3546
+ ]), uo = /* @__PURE__ */ new Set([
3484
3547
  "SCRIPT",
3485
3548
  "STYLE",
3486
3549
  "IFRAME",
@@ -3490,7 +3553,7 @@ var oo = /* @__PURE__ */ new Set([
3490
3553
  "META",
3491
3554
  "BASE",
3492
3555
  "FORM"
3493
- ]), co = /* @__PURE__ */ new Set([
3556
+ ]), fo = /* @__PURE__ */ new Set([
3494
3557
  "href",
3495
3558
  "xlink:href",
3496
3559
  "formaction",
@@ -3499,16 +3562,16 @@ var oo = /* @__PURE__ */ new Set([
3499
3562
  "background",
3500
3563
  "poster"
3501
3564
  ]);
3502
- function lo(e, t) {
3565
+ function po(e, t) {
3503
3566
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
3504
3567
  if (!n || n.startsWith("#")) return !0;
3505
3568
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
3506
3569
  if (!r) return !0;
3507
3570
  let i = r[1].toLowerCase();
3508
- return oo.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3571
+ return lo.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3509
3572
  }
3510
- function uo(e) {
3511
- if (so.has(e.tagName)) {
3573
+ function mo(e) {
3574
+ if (uo.has(e.tagName)) {
3512
3575
  e.remove();
3513
3576
  return;
3514
3577
  }
@@ -3520,29 +3583,29 @@ function uo(e) {
3520
3583
  e.removeAttribute(n);
3521
3584
  continue;
3522
3585
  }
3523
- if (co.has(t)) {
3524
- lo(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3586
+ if (fo.has(t)) {
3587
+ po(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3525
3588
  continue;
3526
3589
  }
3527
3590
  if (t === "src") {
3528
- lo(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3591
+ po(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3529
3592
  continue;
3530
3593
  }
3531
3594
  t === "srcdoc" && e.removeAttribute(n);
3532
3595
  }
3533
3596
  let n = Array.from(e.children);
3534
- for (let e of n) uo(e);
3597
+ for (let e of n) mo(e);
3535
3598
  }
3536
- function fo(e) {
3599
+ function ho(e) {
3537
3600
  if (typeof DOMParser > "u") return e;
3538
3601
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
3539
- for (let e of n) uo(e);
3602
+ for (let e of n) mo(e);
3540
3603
  return t.innerHTML;
3541
3604
  }
3542
3605
  //#endregion
3543
3606
  //#region src/composables/useEditableTextBlock.ts
3544
- function po(e) {
3545
- let t = v(Qn, []), { syntax: n } = ia(), r = O(() => fo(wt(bt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = kn(a), { toLocal: c } = ao(), l = O(() => c({
3607
+ function go(e) {
3608
+ let t = v(Qn, []), { syntax: n } = sa(), r = O(() => ho(wt(bt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = kn(a), { toLocal: c } = co(), l = O(() => c({
3546
3609
  top: o.value - 8,
3547
3610
  left: s.value
3548
3611
  }));
@@ -3563,14 +3626,14 @@ function po(e) {
3563
3626
  }
3564
3627
  //#endregion
3565
3628
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
3566
- var mo = ["innerHTML"], ho = /* @__PURE__ */ B({
3629
+ var _o = ["innerHTML"], vo = /* @__PURE__ */ B({
3567
3630
  __name: "ParagraphBlock",
3568
3631
  props: {
3569
3632
  block: {},
3570
3633
  viewport: {}
3571
3634
  },
3572
3635
  setup(e) {
3573
- let t = e, n = T(() => import("./ParagraphEditor-DR5AcHB0.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = po(() => t.block.content);
3636
+ let t = e, n = T(() => import("./ParagraphEditor-CQJ23PXU.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = go(() => t.block.content);
3574
3637
  return (t, l) => (f(), k("div", {
3575
3638
  ref_key: "blockRef",
3576
3639
  ref: i,
@@ -3589,46 +3652,46 @@ var mo = ["innerHTML"], ho = /* @__PURE__ */ B({
3589
3652
  key: 1,
3590
3653
  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",
3591
3654
  innerHTML: j(o)
3592
- }, null, 8, mo))], 544));
3655
+ }, null, 8, _o))], 544));
3593
3656
  }
3594
3657
  });
3595
3658
  //#endregion
3596
3659
  //#region src/utils/blockComponentResolver.ts
3597
- function go(e, t, n) {
3660
+ function yo(e, t, n) {
3598
3661
  if (t) {
3599
3662
  let n = t.getComponent(e);
3600
3663
  if (n) return n;
3601
3664
  }
3602
3665
  return n[e.type] ?? null;
3603
3666
  }
3604
- function _o(e) {
3667
+ function bo(e) {
3605
3668
  let { padding: t, backgroundColor: n } = e.styles, r = {
3606
3669
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
3607
3670
  backgroundColor: n || "transparent"
3608
3671
  };
3609
3672
  return e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
3610
3673
  }
3611
- function vo(e) {
3674
+ function xo(e) {
3612
3675
  if (e.type !== "section" || !e.wrapper) return null;
3613
3676
  let t = e.wrapper, n = {};
3614
3677
  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;
3615
3678
  }
3616
3679
  //#endregion
3617
3680
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
3618
- var yo = ["data-block-id", "data-block-type"], bo = ["aria-label"], xo = [
3681
+ var So = ["data-block-id", "data-block-type"], Co = ["aria-label"], wo = [
3619
3682
  "aria-label",
3620
3683
  "aria-pressed",
3621
3684
  "title"
3622
- ], So = ["aria-label", "title"], Co = ["aria-label", "title"], wo = ["aria-label", "title"], To = {
3685
+ ], To = ["aria-label", "title"], Eo = ["aria-label", "title"], Do = ["aria-label", "title"], Oo = {
3623
3686
  key: 1,
3624
3687
  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"
3625
- }, Eo = { 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)]" }, Do = {
3688
+ }, ko = { 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)]" }, Ao = {
3626
3689
  key: 2,
3627
3690
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
3628
- }, Oo = ["aria-label", "title"], ko = {
3691
+ }, jo = ["aria-label", "title"], Mo = {
3629
3692
  key: 3,
3630
3693
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
3631
- }, Ao = ["aria-label"], jo = /*#__PURE__*/ qi(/* @__PURE__ */ B({
3694
+ }, No = ["aria-label"], Po = /*#__PURE__*/ Xi(/* @__PURE__ */ B({
3632
3695
  __name: "BlockWrapper",
3633
3696
  props: {
3634
3697
  block: {},
@@ -3638,7 +3701,7 @@ var yo = ["data-block-id", "data-block-type"], bo = ["aria-label"], xo = [
3638
3701
  },
3639
3702
  emits: ["select"],
3640
3703
  setup(e, { emit: t }) {
3641
- let n = T(() => import("./BlockIssueBadge-yD4pKsU9.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(dr, 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);
3704
+ let n = T(() => import("./BlockIssueBadge-C7Ts7bT7.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(fr, 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);
3642
3705
  async function p() {
3643
3706
  await m(), l.value?.focus();
3644
3707
  }
@@ -3664,13 +3727,13 @@ var yo = ["data-block-id", "data-block-type"], bo = ["aria-label"], xo = [
3664
3727
  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 ? {
3665
3728
  desktop: a.viewport.desktop,
3666
3729
  mobile: a.viewport.mobile
3667
- }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(Vn, null), S = v(Hn, null), w = v(ur, {}), ee = O(() => !!w.savedModules), E = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3668
- let e = _o(r.block), t = {
3730
+ }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(Vn, null), S = v(Hn, null), w = v(dr, {}), ee = O(() => !!w.savedModules), E = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3731
+ let e = bo(r.block), t = {
3669
3732
  padding: e.padding,
3670
3733
  backgroundColor: e.backgroundColor
3671
3734
  };
3672
3735
  return e.borderRadius && (t.borderRadius = e.borderRadius), t;
3673
- }), ne = O(() => vo(r.block));
3736
+ }), ne = O(() => xo(r.block));
3674
3737
  function re(e) {
3675
3738
  r.previewMode || (e.target?.closest("a") && e.preventDefault(), e.stopPropagation(), i("select"));
3676
3739
  }
@@ -3713,60 +3776,60 @@ var yo = ["data-block-id", "data-block-type"], bo = ["aria-label"], xo = [
3713
3776
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
3714
3777
  title: j(a).blockActions.drag,
3715
3778
  onKeydown: h
3716
- }, [V(j(yi), {
3779
+ }, [V(j(Si), {
3717
3780
  size: 14,
3718
3781
  "stroke-width": 1.5
3719
- })], 40, xo),
3782
+ })], 40, wo),
3720
3783
  I("button", {
3721
3784
  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",
3722
3785
  "aria-label": j(a).blockActions.duplicate,
3723
3786
  title: j(a).blockActions.duplicate,
3724
3787
  onClick: M(ie, ["stop"])
3725
- }, [V(j(pi), {
3788
+ }, [V(j(gi), {
3726
3789
  size: 14,
3727
3790
  "stroke-width": 1.5
3728
- })], 8, So),
3791
+ })], 8, To),
3729
3792
  ee.value ? (f(), k("button", {
3730
3793
  key: 0,
3731
3794
  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",
3732
3795
  "aria-label": j(a).blockActions.saveAsModule,
3733
3796
  title: j(a).blockActions.saveAsModule,
3734
3797
  onClick: M(P, ["stop"])
3735
- }, [V(j(ni), {
3798
+ }, [V(j(ai), {
3736
3799
  size: 14,
3737
3800
  "stroke-width": 1.5
3738
- })], 8, Co)) : A("", !0),
3801
+ })], 8, Eo)) : A("", !0),
3739
3802
  I("button", {
3740
3803
  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",
3741
3804
  "aria-label": j(a).blockActions.delete,
3742
3805
  title: j(a).blockActions.delete,
3743
3806
  onClick: M(N, ["stop"])
3744
- }, [V(j(Li), {
3807
+ }, [V(j(Bi), {
3745
3808
  size: 14,
3746
3809
  "stroke-width": 1.5
3747
- })], 8, wo)
3748
- ], 8, bo)) : A("", !0),
3749
- g.value ? (f(), k("div", To, [I("span", Eo, [V(j(mi), {
3810
+ })], 8, Do)
3811
+ ], 8, Co)) : A("", !0),
3812
+ g.value ? (f(), k("div", Oo, [I("span", ko, [V(j(_i), {
3750
3813
  size: 12,
3751
3814
  "stroke-width": 1.5
3752
3815
  }), z(" " + D(j(s)(j(a).blockActions.hiddenOnViewport, { viewport: y.value })), 1)])])) : A("", !0),
3753
- b.value && !g.value ? (f(), k("div", Do, [I("button", {
3816
+ b.value && !g.value ? (f(), k("div", Ao, [I("button", {
3754
3817
  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)]",
3755
3818
  "aria-label": j(a).blockActions.conditionToggle,
3756
3819
  title: e.block.displayCondition?.label,
3757
3820
  onClick: M(ae, ["stop"])
3758
- }, [V(j(vi), {
3821
+ }, [V(j(xi), {
3759
3822
  size: 12,
3760
3823
  "stroke-width": 2
3761
- })], 8, Oo)])) : A("", !0),
3762
- E.value > 0 && !g.value ? (f(), k("div", ko, [I("button", {
3824
+ })], 8, jo)])) : A("", !0),
3825
+ E.value > 0 && !g.value ? (f(), k("div", Mo, [I("button", {
3763
3826
  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)]",
3764
3827
  "aria-label": j(s)(j(a).blockActions.comments, { count: String(E.value) }),
3765
3828
  onClick: r[0] ||= M((t) => j(w).comments?.openForBlock(e.block.id), ["stop"])
3766
- }, [V(j(wi), {
3829
+ }, [V(j(Di), {
3767
3830
  size: 12,
3768
3831
  "stroke-width": 2.5
3769
- }), z(" " + D(E.value), 1)], 8, Ao)])) : A("", !0),
3832
+ }), z(" " + D(E.value), 1)], 8, No)])) : A("", !0),
3770
3833
  ne.value ? (f(), k("div", {
3771
3834
  key: 4,
3772
3835
  class: "tpl-section-wrapper",
@@ -3779,31 +3842,31 @@ var yo = ["data-block-id", "data-block-type"], bo = ["aria-label"], xo = [
3779
3842
  class: "tpl-block-content",
3780
3843
  style: L(te.value)
3781
3844
  }, [o(t.$slots, "default", {}, void 0, !0)], 4))
3782
- ], 10, yo));
3845
+ ], 10, So));
3783
3846
  }
3784
3847
  }), [["__scopeId", "data-v-7d9e7893"]]);
3785
3848
  //#endregion
3786
3849
  //#region src/utils/unwrapParagraph.ts
3787
- function Mo(e) {
3850
+ function Fo(e) {
3788
3851
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
3789
3852
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
3790
3853
  }
3791
3854
  //#endregion
3792
3855
  //#region src/components/blocks/TitleBlock.vue
3793
- var No = /* @__PURE__ */ B({
3856
+ var Io = /* @__PURE__ */ B({
3794
3857
  __name: "TitleBlock",
3795
3858
  props: {
3796
3859
  block: {},
3797
3860
  viewport: {}
3798
3861
  },
3799
3862
  setup(e) {
3800
- let t = e, n = T(() => import("./TitleEditor-DtQTPAg3.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = po(() => t.block.content), l = O(() => {
3863
+ let t = e, n = T(() => import("./TitleEditor-5TkwDrPL.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = go(() => t.block.content), l = O(() => {
3801
3864
  let e = {
3802
3865
  fontSize: `${pe[t.block.level]}px`,
3803
3866
  textAlign: t.block.textAlign
3804
3867
  };
3805
3868
  return t.block.color && (e.color = t.block.color), t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
3806
- }), u = O(() => `h${t.block.level}`), p = O(() => Mo(o.value));
3869
+ }), u = O(() => `h${t.block.level}`), p = O(() => Fo(o.value));
3807
3870
  return (t, o) => (f(), k("div", {
3808
3871
  ref_key: "blockRef",
3809
3872
  ref: i,
@@ -3829,16 +3892,16 @@ var No = /* @__PURE__ */ B({
3829
3892
  });
3830
3893
  //#endregion
3831
3894
  //#region src/utils/sectionColumnDrop.ts
3832
- function Po(e) {
3895
+ function Lo(e) {
3833
3896
  return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
3834
3897
  }
3835
3898
  //#endregion
3836
3899
  //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
3837
- var Fo = { class: "tpl:w-full" }, Io = {
3900
+ var Ro = { class: "tpl:w-full" }, zo = {
3838
3901
  key: 0,
3839
3902
  "data-testid": "section-drop-hint",
3840
3903
  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)]"
3841
- }, Lo = /* @__PURE__ */ B({
3904
+ }, Bo = /* @__PURE__ */ B({
3842
3905
  __name: "SectionBlock",
3843
3906
  props: {
3844
3907
  block: {},
@@ -3846,12 +3909,12 @@ var Fo = { class: "tpl:w-full" }, Io = {
3846
3909
  },
3847
3910
  setup(e) {
3848
3911
  let t = {
3849
- title: No,
3850
- paragraph: ho,
3851
- image: $a,
3852
- button: Kr,
3853
- divider: Ma,
3854
- custom: Aa
3912
+ title: Io,
3913
+ paragraph: vo,
3914
+ image: no,
3915
+ button: Yr,
3916
+ divider: Fa,
3917
+ custom: Na
3855
3918
  }, n = e, { t: r } = Y(), i = J(zn, "SectionBlock"), a = v(Hn, null), o = v(qn, null), s = O(() => {
3856
3919
  switch (n.block.columns) {
3857
3920
  case "2": return ["50%", "50%"];
@@ -3878,7 +3941,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
3878
3941
  a[e] = r, i.updateBlock(n.block.id, { children: a });
3879
3942
  }
3880
3943
  function g(e) {
3881
- return go(e, o, t);
3944
+ return yo(e, o, t);
3882
3945
  }
3883
3946
  function _(e, t) {
3884
3947
  e.type === "custom" && i.updateBlock(e.id, {
@@ -3886,7 +3949,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
3886
3949
  dataSourceFetched: t.dataSourceFetched
3887
3950
  });
3888
3951
  }
3889
- return (t, n) => (f(), k("div", Fo, [I("div", { class: F(["tpl:flex tpl:gap-0", { "tpl:flex-col": u.value }]) }, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3952
+ return (t, n) => (f(), k("div", Ro, [I("div", { class: F(["tpl:flex tpl:gap-0", { "tpl:flex-col": u.value }]) }, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3890
3953
  key: n,
3891
3954
  class: F(["tpl:relative tpl:min-h-[60px] tpl:rounded", p(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
3892
3955
  style: L({ width: u.value ? "100%" : s.value[n] })
@@ -3895,7 +3958,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
3895
3958
  group: {
3896
3959
  name: "blocks",
3897
3960
  pull: !0,
3898
- put: (e, t, n) => j(Po)(n)
3961
+ put: (e, t, n) => j(Lo)(n)
3899
3962
  },
3900
3963
  animation: 150,
3901
3964
  "ghost-class": "tpl-ghost",
@@ -3908,7 +3971,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
3908
3971
  class: "tpl:min-h-[60px]",
3909
3972
  "onUpdate:modelValue": (e) => m(n, e)
3910
3973
  }, {
3911
- default: b(() => [(f(!0), k(R, null, h(p(n), (t) => c((f(), k("div", { key: t.id }, [V(jo, {
3974
+ default: b(() => [(f(!0), k(R, null, h(p(n), (t) => c((f(), k("div", { key: t.id }, [V(Po, {
3912
3975
  block: t,
3913
3976
  "is-selected": j(i).state.selectedBlockId === t.id,
3914
3977
  viewport: e.viewport,
@@ -3939,13 +4002,13 @@ var Fo = { class: "tpl:w-full" }, Io = {
3939
4002
  "model-value",
3940
4003
  "group",
3941
4004
  "onUpdate:modelValue"
3942
- ]), p(n).length === 0 ? (f(), k("div", Io, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))], 2)]));
4005
+ ]), p(n).length === 0 ? (f(), k("div", zo, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))], 2)]));
3943
4006
  }
3944
- }), Ro = me, zo = {
4007
+ }), Vo = me, Ho = {
3945
4008
  small: 24,
3946
4009
  medium: 32,
3947
4010
  large: 48
3948
- }, Bo = [
4011
+ }, Uo = [
3949
4012
  "facebook",
3950
4013
  "twitter",
3951
4014
  "instagram",
@@ -3963,11 +4026,11 @@ var Fo = { class: "tpl:w-full" }, Io = {
3963
4026
  "github",
3964
4027
  "dribbble",
3965
4028
  "behance"
3966
- ], Vo = [
4029
+ ], Wo = [
3967
4030
  "width",
3968
4031
  "height",
3969
4032
  "fill"
3970
- ], Ho = ["d"], Uo = /* @__PURE__ */ B({
4033
+ ], Go = ["d"], Ko = /* @__PURE__ */ B({
3971
4034
  __name: "SocialIconSvg",
3972
4035
  props: {
3973
4036
  platform: {},
@@ -3975,7 +4038,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
3975
4038
  iconSize: {}
3976
4039
  },
3977
4040
  setup(e) {
3978
- let t = e, n = O(() => Ro[t.platform]), r = O(() => zo[t.iconSize]), i = O(() => {
4041
+ let t = e, n = O(() => Vo[t.platform]), r = O(() => Ho[t.iconSize]), i = O(() => {
3979
4042
  let e = {
3980
4043
  display: "inline-flex",
3981
4044
  alignItems: "center",
@@ -4019,12 +4082,12 @@ var Fo = { class: "tpl:w-full" }, Io = {
4019
4082
  viewBox: "0 0 24 24",
4020
4083
  fill: o.value,
4021
4084
  xmlns: "http://www.w3.org/2000/svg"
4022
- }, [I("path", { d: n.value.path }, null, 8, Ho)], 8, Vo))], 4));
4085
+ }, [I("path", { d: n.value.path }, null, 8, Go)], 8, Wo))], 4));
4023
4086
  }
4024
- }), Wo = { class: "tpl:w-full" }, Go = ["href"], Ko = {
4087
+ }), qo = { class: "tpl:w-full" }, Jo = ["href"], Yo = {
4025
4088
  key: 1,
4026
4089
  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)]"
4027
- }, qo = /* @__PURE__ */ B({
4090
+ }, Xo = /* @__PURE__ */ B({
4028
4091
  __name: "SocialIconsBlock",
4029
4092
  props: {
4030
4093
  block: {},
@@ -4037,7 +4100,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
4037
4100
  gap: `${t.block.spacing}px`,
4038
4101
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
4039
4102
  })), i = O(() => t.block.icons.length > 0);
4040
- return (t, a) => (f(), k("div", Wo, [i.value ? (f(), k("div", {
4103
+ return (t, a) => (f(), k("div", qo, [i.value ? (f(), k("div", {
4041
4104
  key: 0,
4042
4105
  style: L(r.value)
4043
4106
  }, [(f(!0), k(R, null, h(e.block.icons, (t) => (f(), k("a", {
@@ -4045,7 +4108,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
4045
4108
  href: t.url || "#",
4046
4109
  class: "tpl:cursor-default",
4047
4110
  onClick: a[0] ||= M(() => {}, ["prevent"])
4048
- }, [V(Uo, {
4111
+ }, [V(Ko, {
4049
4112
  platform: t.platform,
4050
4113
  "icon-style": e.block.iconStyle,
4051
4114
  "icon-size": e.block.iconSize
@@ -4053,16 +4116,16 @@ var Fo = { class: "tpl:w-full" }, Io = {
4053
4116
  "platform",
4054
4117
  "icon-style",
4055
4118
  "icon-size"
4056
- ])], 8, Go))), 128))], 4)) : (f(), k("div", Ko, [V(j(Mi), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
4119
+ ])], 8, Jo))), 128))], 4)) : (f(), k("div", Yo, [V(j(Fi), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
4057
4120
  }
4058
- }), Jo = { class: "tpl:w-full" }, Yo = {
4121
+ }), Zo = { class: "tpl:w-full" }, Qo = {
4059
4122
  key: 0,
4060
4123
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
4061
4124
  style: {
4062
4125
  "background-color": "var(--tpl-bg-hover)",
4063
4126
  color: "var(--tpl-text-dim)"
4064
4127
  }
4065
- }, Xo = /* @__PURE__ */ B({
4128
+ }, $o = /* @__PURE__ */ B({
4066
4129
  __name: "SpacerBlock",
4067
4130
  props: {
4068
4131
  block: {},
@@ -4074,23 +4137,23 @@ var Fo = { class: "tpl:w-full" }, Io = {
4074
4137
  minHeight: `${t.block.height}px`,
4075
4138
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
4076
4139
  }));
4077
- return (t, i) => (f(), k("div", Jo, [I("div", {
4140
+ return (t, i) => (f(), k("div", Zo, [I("div", {
4078
4141
  style: L(r.value),
4079
4142
  class: F(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !j(n).state.previewMode }])
4080
- }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Yo, D(e.block.height) + "px ", 1))], 6)]));
4143
+ }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Qo, D(e.block.height) + "px ", 1))], 6)]));
4081
4144
  }
4082
- }), Zo = { class: "tpl:w-full" }, Qo = { key: 0 }, $o = [
4145
+ }), es = { class: "tpl:w-full" }, ts = { key: 0 }, ns = [
4083
4146
  "aria-label",
4084
4147
  "data-placeholder",
4085
4148
  "onBlur"
4086
- ], es = [
4149
+ ], rs = [
4087
4150
  "aria-label",
4088
4151
  "data-placeholder",
4089
4152
  "onBlur"
4090
- ], ts = {
4153
+ ], is = {
4091
4154
  key: 1,
4092
4155
  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)]"
4093
- }, ns = /*#__PURE__*/ qi(/* @__PURE__ */ B({
4156
+ }, as = /*#__PURE__*/ Xi(/* @__PURE__ */ B({
4094
4157
  __name: "TableBlock",
4095
4158
  props: {
4096
4159
  block: {},
@@ -4135,11 +4198,11 @@ var Fo = { class: "tpl:w-full" }, Io = {
4135
4198
  } : n);
4136
4199
  i.updateBlock(n.block.id, { rows: o });
4137
4200
  }
4138
- return (e, n) => (f(), k("div", Zo, [a.value ? (f(), k("table", {
4201
+ return (e, n) => (f(), k("div", es, [a.value ? (f(), k("table", {
4139
4202
  key: 0,
4140
4203
  style: L(o.value),
4141
4204
  class: "tpl-table-editable"
4142
- }, [u.value ? (f(), k("thead", Qo, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
4205
+ }, [u.value ? (f(), k("thead", ts, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
4143
4206
  key: e.id,
4144
4207
  style: L(l.value),
4145
4208
  "aria-label": j(r).table.cellPlaceholder,
@@ -4148,7 +4211,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
4148
4211
  onBlur: (t) => m(u.value.id, e.id, t),
4149
4212
  onKeydown: n[0] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4150
4213
  onClick: M(p, ["stop"])
4151
- }, null, 44, $o)), [[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", {
4214
+ }, null, 44, ns)), [[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", {
4152
4215
  key: i.id,
4153
4216
  style: L(s.value),
4154
4217
  "aria-label": j(r).table.cellPlaceholder,
@@ -4157,9 +4220,9 @@ var Fo = { class: "tpl:w-full" }, Io = {
4157
4220
  onBlur: (t) => m(e.id, i.id, t),
4158
4221
  onKeydown: n[1] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4159
4222
  onClick: M(p, ["stop"])
4160
- }, null, 44, es)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", ts, [V(j(Ii), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
4223
+ }, null, 44, rs)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", is, [V(j(zi), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
4161
4224
  }
4162
- }), [["__scopeId", "data-v-963ac422"]]), rs = /* @__PURE__ */ B({
4225
+ }), [["__scopeId", "data-v-963ac422"]]), os = /* @__PURE__ */ B({
4163
4226
  __name: "VideoPlayButton",
4164
4227
  props: { hoverEffect: {
4165
4228
  type: Boolean,
@@ -4177,7 +4240,7 @@ var Fo = { class: "tpl:w-full" }, Io = {
4177
4240
  });
4178
4241
  //#endregion
4179
4242
  //#region src/utils/videoThumbnail.ts
4180
- function is(e) {
4243
+ function ss(e) {
4181
4244
  if (!e) return {
4182
4245
  platform: "unknown",
4183
4246
  videoId: null,
@@ -4209,25 +4272,25 @@ function is(e) {
4209
4272
  thumbnailUrl: null
4210
4273
  };
4211
4274
  }
4212
- function as(e, t) {
4213
- return t || is(e).thumbnailUrl;
4275
+ function cs(e, t) {
4276
+ return t || ss(e).thumbnailUrl;
4214
4277
  }
4215
4278
  //#endregion
4216
4279
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
4217
- var os = ["src", "alt"], ss = {
4280
+ var ls = ["src", "alt"], us = {
4218
4281
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
4219
4282
  style: { opacity: "0.7" }
4220
- }, cs = ["href"], ls = ["src", "alt"], us = ["src", "alt"], ds = {
4283
+ }, ds = ["href"], fs = ["src", "alt"], ps = ["src", "alt"], ms = {
4221
4284
  key: 3,
4222
4285
  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)]"
4223
- }, fs = /* @__PURE__ */ B({
4286
+ }, hs = /* @__PURE__ */ B({
4224
4287
  __name: "VideoBlock",
4225
4288
  props: {
4226
4289
  block: {},
4227
4290
  viewport: {}
4228
4291
  },
4229
4292
  setup(e) {
4230
- let t = e, { t: n } = Y(), { syntax: r } = ia(), i = O(() => xt(t.block.url, r) || xt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : as(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
4293
+ let t = e, { t: n } = Y(), { syntax: r } = sa(), i = O(() => xt(t.block.url, r) || xt(t.block.thumbnailUrl, r)), a = Cr(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = Cr(() => i.value ? t.block.placeholderUrl : void 0), s = O(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : cs(t.block.url)), c = O(() => ({ textAlign: t.block.align })), l = O(() => {
4231
4294
  let e = t.block.align;
4232
4295
  return {
4233
4296
  maxWidth: "100%",
@@ -4236,72 +4299,72 @@ var os = ["src", "alt"], ss = {
4236
4299
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
4237
4300
  marginRight: e === "center" ? "auto" : void 0
4238
4301
  };
4239
- }), c = O(() => xt(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
4302
+ }), u = O(() => xt(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
4240
4303
  return (t, r) => (f(), k("div", {
4241
4304
  class: "tpl:w-full",
4242
- style: L(o.value)
4305
+ style: L(c.value)
4243
4306
  }, [i.value && e.block.placeholderUrl ? (f(), k("div", {
4244
4307
  key: 0,
4245
4308
  class: "tpl:relative tpl:inline-block",
4246
- style: L(s.value)
4309
+ style: L(l.value)
4247
4310
  }, [I("img", {
4248
4311
  class: "tpl:w-full tpl:border-0",
4249
- src: e.block.placeholderUrl,
4312
+ src: j(o),
4250
4313
  alt: e.block.alt
4251
- }, null, 8, os), V(rs)], 4)) : i.value ? (f(), k("div", {
4314
+ }, null, 8, ls), V(os)], 4)) : i.value ? (f(), k("div", {
4252
4315
  key: 1,
4253
4316
  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)]",
4254
- style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, s.value])
4255
- }, [V(j(Vi), {
4317
+ style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, l.value])
4318
+ }, [V(j(Wi), {
4256
4319
  size: 36,
4257
4320
  "stroke-width": 1.5,
4258
4321
  class: "tpl:text-[var(--tpl-primary)]",
4259
4322
  style: { opacity: "0.5" }
4260
- }), I("span", ss, [V(Ur, { text: c.value }, null, 8, ["text"])])], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
4323
+ }), I("span", us, [V(Kr, { text: u.value }, null, 8, ["text"])])], 4)) : s.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
4261
4324
  key: 0,
4262
4325
  href: e.block.url,
4263
4326
  target: "_blank",
4264
4327
  rel: "noopener noreferrer",
4265
4328
  class: "tpl:group tpl:relative tpl:inline-block",
4266
- style: L(s.value),
4329
+ style: L(l.value),
4267
4330
  onClick: r[0] ||= M(() => {}, ["prevent"])
4268
4331
  }, [I("img", {
4269
4332
  class: "tpl:w-full tpl:border-0",
4270
- src: a.value,
4333
+ src: s.value,
4271
4334
  alt: e.block.alt
4272
- }, null, 8, ls), V(rs, { "hover-effect": "" })], 12, cs)) : (f(), k("div", {
4335
+ }, null, 8, fs), V(os, { "hover-effect": "" })], 12, ds)) : (f(), k("div", {
4273
4336
  key: 1,
4274
4337
  class: "tpl:relative tpl:inline-block",
4275
- style: L(s.value)
4338
+ style: L(l.value)
4276
4339
  }, [I("img", {
4277
4340
  class: "tpl:w-full tpl:border-0",
4278
- src: a.value,
4341
+ src: s.value,
4279
4342
  alt: e.block.alt
4280
- }, null, 8, us), V(rs)], 4))], 64)) : (f(), k("div", ds, [V(j(Vi), {
4343
+ }, null, 8, ps), V(os)], 4))], 64)) : (f(), k("div", ms, [V(j(Wi), {
4281
4344
  size: 40,
4282
4345
  "stroke-width": 1.5,
4283
4346
  class: "tpl:text-[var(--tpl-border-light)]"
4284
4347
  }), I("span", null, D(j(n).video.addVideo), 1)]))], 4));
4285
4348
  }
4286
- }), ps = {
4287
- section: Lo,
4288
- title: No,
4289
- paragraph: ho,
4290
- image: $a,
4291
- button: Kr,
4292
- divider: Ma,
4293
- video: fs,
4294
- social: qo,
4295
- menu: ro,
4296
- table: ns,
4297
- spacer: Xo,
4298
- html: Ra,
4299
- countdown: T(() => import("./CountdownBlock-jgBPbI1p.js").then((e) => e.n))
4349
+ }), gs = {
4350
+ section: Bo,
4351
+ title: Io,
4352
+ paragraph: vo,
4353
+ image: no,
4354
+ button: Yr,
4355
+ divider: Fa,
4356
+ video: hs,
4357
+ social: Xo,
4358
+ menu: oo,
4359
+ table: as,
4360
+ spacer: $o,
4361
+ html: Va,
4362
+ countdown: T(() => import("./CountdownBlock-BUGxk8GI.js").then((e) => e.n))
4300
4363
  };
4301
- function ms(e) {
4364
+ function _s(e) {
4302
4365
  let { editor: t, config: n, translations: r, fontsManager: i } = e, { t: a, format: o } = Y(r);
4303
4366
  t.setUiTheme(n.uiTheme ?? "auto");
4304
- let { resolvedTheme: c } = Dr(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = kr({
4367
+ let { resolvedTheme: c } = Ar(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = Mr({
4305
4368
  themeOverrides: u,
4306
4369
  resolvedTheme: c,
4307
4370
  extraStyles: e.themeExtraStyles
@@ -4326,13 +4389,13 @@ function ms(e) {
4326
4389
  g && (_ = H(f.isNavigating, (e) => {
4327
4390
  e ? g.pause() : g.resume();
4328
4391
  }));
4329
- let v = Er(t, {
4392
+ let v = kr(t, {
4330
4393
  t: a,
4331
4394
  format: o
4332
- }), y = Nr();
4333
- if (Rr(y, ps), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, Aa);
4395
+ }), y = Ir();
4396
+ if (Vr(y, gs), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, Na);
4334
4397
  function b(e) {
4335
- for (let t of e) y.registerCustom(t, Aa);
4398
+ for (let t of e) y.registerCustom(t, Na);
4336
4399
  }
4337
4400
  let x = Ln();
4338
4401
  if (s() && l(x.dispose), e.containerEl) {
@@ -4343,7 +4406,7 @@ function ms(e) {
4343
4406
  }, { capture: !0 });
4344
4407
  }
4345
4408
  function S(r) {
4346
- x.isActive() && Vr(r, {
4409
+ x.isActive() && Wr(r, {
4347
4410
  history: f,
4348
4411
  selectBlock: (e) => t.selectBlock(e),
4349
4412
  getSelectedBlockId: () => t.state.selectedBlockId,
@@ -4354,17 +4417,17 @@ function ms(e) {
4354
4417
  }
4355
4418
  q(document, "keydown", S);
4356
4419
  let w = C(null);
4357
- p(pr, e.editorRoot ?? document), p(mr, 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, zr(n.htmlBlockPreview)), p(Zn, Pr(t.content, y));
4420
+ p(mr, e.editorRoot ?? document), p(hr, 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, Hr(n.htmlBlockPreview)), p(Zn, Lr(t.content, y));
4358
4421
  let ee = gt(n.mergeTags?.syntax);
4359
- p(Qn, n.mergeTags?.tags ?? []), p($n, ee), p(er, n.mergeTags?.onRequest ?? null), p(tr, n.mergeTags?.autocomplete !== !1), p(nr, xr()), p(rr, n.logicTags?.tags ?? []), p(ir, n.logicTags?.pairs ?? []), p(or, n.logicTags?.onRequest ?? null), p(ar, Sr()), p(sr, n.onRequestMedia ?? null), p(cr, n.displayConditions?.conditions ?? []), p(lr, n.displayConditions?.allowCustom ?? !1), p(ur, e.capabilities ?? {}), p(dr, v);
4360
- let T = Cr(n.lint) ? null : wr({
4422
+ p(Qn, n.mergeTags?.tags ?? []), p($n, ee), p(er, n.mergeTags?.onRequest ?? null), p(tr, n.mergeTags?.autocomplete !== !1), p(nr, wr()), p(rr, n.logicTags?.tags ?? []), p(ir, n.logicTags?.pairs ?? []), p(or, n.logicTags?.onRequest ?? null), p(ar, Tr()), p(sr, n.onRequestMedia ?? null), p(cr, n.resolveImageUrl ? Sr(n.resolveImageUrl) : null), p(lr, n.displayConditions?.conditions ?? []), p(ur, n.displayConditions?.allowCustom ?? !1), p(dr, e.capabilities ?? {}), p(fr, v);
4423
+ let T = Er(n.lint) ? null : Dr({
4361
4424
  content: t.content,
4362
4425
  options: n.lint ?? {},
4363
4426
  updateBlock: t.updateBlock,
4364
4427
  updateSettings: t.updateSettings,
4365
4428
  removeBlock: t.removeBlock
4366
4429
  });
4367
- p(fr, T);
4430
+ p(pr, T);
4368
4431
  function E() {
4369
4432
  _?.(), T?.destroy(), g?.destroy(), f.destroy();
4370
4433
  }
@@ -4388,14 +4451,14 @@ function ms(e) {
4388
4451
  }
4389
4452
  //#endregion
4390
4453
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
4391
- var hs = ["data-tpl-theme"], gs = /* @__PURE__ */ B({
4454
+ var vs = ["data-tpl-theme"], ys = /* @__PURE__ */ B({
4392
4455
  __name: "TplModal",
4393
4456
  props: { visible: { type: Boolean } },
4394
4457
  emits: ["close", "keydown"],
4395
4458
  setup(e, { emit: t }) {
4396
4459
  let n = e, r = t, i = C(null);
4397
- ea(i, O(() => n.visible));
4398
- let a = v(Gn), s = io();
4460
+ ra(i, O(() => n.visible));
4461
+ let a = v(Gn), s = so();
4399
4462
  function c(e) {
4400
4463
  e.key === "Escape" && r("close"), r("keydown", e);
4401
4464
  }
@@ -4424,11 +4487,11 @@ var hs = ["data-tpl-theme"], gs = /* @__PURE__ */ B({
4424
4487
  }, [I("div", {
4425
4488
  ref_key: "dialogRef",
4426
4489
  ref: i
4427
- }, [o(t.$slots, "default")], 512)], 40, hs)) : A("", !0)]),
4490
+ }, [o(t.$slots, "default")], 512)], 40, vs)) : A("", !0)]),
4428
4491
  _: 3
4429
4492
  })], 8, ["to"])) : A("", !0);
4430
4493
  }
4431
- }), _s = class e {
4494
+ }), bs = class e {
4432
4495
  static DEFAULT_BASE_URL = "https://templatical.com";
4433
4496
  accessToken = null;
4434
4497
  expiresAt = null;
@@ -4529,8 +4592,8 @@ var hs = ["data-tpl-theme"], gs = /* @__PURE__ */ B({
4529
4592
  return a.status === 401 && (a = await i(await this.refreshToken())), a;
4530
4593
  }
4531
4594
  };
4532
- function vs(e, t) {
4533
- return e.mode === "direct" ? new _s({
4595
+ function xs(e, t) {
4596
+ return e.mode === "direct" ? new bs({
4534
4597
  url: `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}/api/v1/auth/token`,
4535
4598
  baseUrl: e.baseUrl,
4536
4599
  requestOptions: {
@@ -4544,7 +4607,7 @@ function vs(e, t) {
4544
4607
  }
4545
4608
  },
4546
4609
  onError: t
4547
- }) : new _s({
4610
+ }) : new bs({
4548
4611
  url: e.url,
4549
4612
  baseUrl: e.baseUrl,
4550
4613
  requestOptions: e.requestOptions,
@@ -4556,16 +4619,16 @@ function vs(e, t) {
4556
4619
  function Z(e, t) {
4557
4620
  return e.replace(/\{(\w+)\}/g, (e, n) => encodeURIComponent(t[n] ?? ""));
4558
4621
  }
4559
- var ys = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ys}/templates/{template}`, bs = `${Q}/ai`, xs = `${ys}/media`, Ss = `${xs}/folders`, Cs = `${ys}/saved-modules`, $ = {
4622
+ var Ss = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Ss}/templates/{template}`, Cs = `${Q}/ai`, ws = `${Ss}/media`, Ts = `${ws}/folders`, Es = `${Ss}/saved-modules`, $ = {
4560
4623
  health: "/api/v1/health",
4561
- "projects.config": `${ys}/config`,
4562
- "broadcasting.auth": `${ys}/broadcasting/auth`,
4563
- "templates.store": `${ys}/templates`,
4624
+ "projects.config": `${Ss}/config`,
4625
+ "broadcasting.auth": `${Ss}/broadcasting/auth`,
4626
+ "templates.store": `${Ss}/templates`,
4564
4627
  "templates.show": `${Q}`,
4565
4628
  "templates.update": `${Q}`,
4566
4629
  "templates.destroy": `${Q}`,
4567
4630
  "templates.export": `${Q}/export`,
4568
- "templates.importFromBeefree": `${ys}/templates/import/from-beefree`,
4631
+ "templates.importFromBeefree": `${Ss}/templates/import/from-beefree`,
4569
4632
  "templates.sendTestEmail": `${Q}/send-test-email`,
4570
4633
  "snapshots.index": `${Q}/snapshots`,
4571
4634
  "snapshots.store": `${Q}/snapshots`,
@@ -4576,31 +4639,31 @@ var ys = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ys}/templates/{te
4576
4639
  "comments.update": `${Q}/comments/{comment}`,
4577
4640
  "comments.destroy": `${Q}/comments/{comment}`,
4578
4641
  "comments.resolve": `${Q}/comments/{comment}/resolve`,
4579
- "ai.generate": `${bs}/generate`,
4580
- "ai.conversationMessages": `${bs}/conversation-messages`,
4581
- "ai.suggestions": `${bs}/suggestions`,
4582
- "ai.rewriteText": `${bs}/rewrite-text`,
4583
- "ai.score": `${bs}/score`,
4584
- "ai.fixFinding": `${bs}/fix-finding`,
4585
- "ai.generateFromDesign": `${bs}/generate-from-design`,
4586
- "media.upload": `${xs}/upload`,
4587
- "media.browse": `${xs}/browse`,
4588
- "media.delete": `${xs}/delete`,
4589
- "media.move": `${xs}/move`,
4590
- "media.update": `${xs}/{media}`,
4591
- "media.replace": `${xs}/{media}/replace`,
4592
- "media.checkUsage": `${xs}/check-usage`,
4593
- "media.frequentlyUsed": `${xs}/frequently-used`,
4594
- "media.importFromUrl": `${xs}/import-from-url`,
4595
- "folders.index": `${Ss}`,
4596
- "folders.store": `${Ss}`,
4597
- "folders.update": `${Ss}/{mediaFolder}`,
4598
- "folders.destroy": `${Ss}/{mediaFolder}`,
4599
- "savedModules.index": `${Cs}`,
4600
- "savedModules.store": `${Cs}`,
4601
- "savedModules.update": `${Cs}/{savedModule}`,
4602
- "savedModules.destroy": `${Cs}/{savedModule}`
4603
- }, ws = class {
4642
+ "ai.generate": `${Cs}/generate`,
4643
+ "ai.conversationMessages": `${Cs}/conversation-messages`,
4644
+ "ai.suggestions": `${Cs}/suggestions`,
4645
+ "ai.rewriteText": `${Cs}/rewrite-text`,
4646
+ "ai.score": `${Cs}/score`,
4647
+ "ai.fixFinding": `${Cs}/fix-finding`,
4648
+ "ai.generateFromDesign": `${Cs}/generate-from-design`,
4649
+ "media.upload": `${ws}/upload`,
4650
+ "media.browse": `${ws}/browse`,
4651
+ "media.delete": `${ws}/delete`,
4652
+ "media.move": `${ws}/move`,
4653
+ "media.update": `${ws}/{media}`,
4654
+ "media.replace": `${ws}/{media}/replace`,
4655
+ "media.checkUsage": `${ws}/check-usage`,
4656
+ "media.frequentlyUsed": `${ws}/frequently-used`,
4657
+ "media.importFromUrl": `${ws}/import-from-url`,
4658
+ "folders.index": `${Ts}`,
4659
+ "folders.store": `${Ts}`,
4660
+ "folders.update": `${Ts}/{mediaFolder}`,
4661
+ "folders.destroy": `${Ts}/{mediaFolder}`,
4662
+ "savedModules.index": `${Es}`,
4663
+ "savedModules.store": `${Es}`,
4664
+ "savedModules.update": `${Es}/{savedModule}`,
4665
+ "savedModules.destroy": `${Es}/{savedModule}`
4666
+ }, Ds = class {
4604
4667
  authManager;
4605
4668
  constructor(e) {
4606
4669
  this.authManager = e;
@@ -4786,14 +4849,14 @@ var ys = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ys}/templates/{te
4786
4849
  };
4787
4850
  //#endregion
4788
4851
  //#region ../core/src/cloud/websocket-client.ts
4789
- function Ts(e) {
4852
+ function Os(e) {
4790
4853
  return {
4791
4854
  host: e.host,
4792
4855
  port: e.port,
4793
4856
  appKey: e.app_key
4794
4857
  };
4795
4858
  }
4796
- var Es = class {
4859
+ var ks = class {
4797
4860
  pusher = null;
4798
4861
  authManager;
4799
4862
  config;
@@ -4860,7 +4923,7 @@ var Es = class {
4860
4923
  };
4861
4924
  //#endregion
4862
4925
  //#region ../core/src/cloud/mcp-operation-handler.ts
4863
- function Ds(e, t) {
4926
+ function As(e, t) {
4864
4927
  let { operation: n, data: r } = t;
4865
4928
  switch (n) {
4866
4929
  case "add_block":
@@ -4888,11 +4951,11 @@ function Ds(e, t) {
4888
4951
  }
4889
4952
  //#endregion
4890
4953
  //#region ../core/src/cloud/editor.ts
4891
- function Os(e) {
4954
+ function js(e) {
4892
4955
  return e === "1" ? 1 : e === "3" ? 3 : 2;
4893
4956
  }
4894
- function ks(e) {
4895
- let t = new ws(e.authManager), n = S({
4957
+ function Ms(e) {
4958
+ let t = new Ds(e.authManager), n = S({
4896
4959
  template: null,
4897
4960
  content: We(e.defaultFontFamily, e.templateDefaults),
4898
4961
  selectedBlockId: null,
@@ -4998,7 +5061,7 @@ function ks(e) {
4998
5061
  let l;
4999
5062
  if (r) {
5000
5063
  let e = o(n.content.blocks, r);
5001
- if (!e || e.type !== "section" || i < 0 || i >= Os(e.columns)) return;
5064
+ if (!e || e.type !== "section" || i < 0 || i >= js(e.columns)) return;
5002
5065
  e.children[i] = e.children[i] || [], l = e.children[i];
5003
5066
  } else l = n.content.blocks;
5004
5067
  let [u] = a.blocks.splice(c, 1);
@@ -5090,11 +5153,11 @@ function ks(e) {
5090
5153
  }
5091
5154
  //#endregion
5092
5155
  //#region ../core/src/cloud/ai-chat.ts
5093
- var As = 0;
5094
- function js() {
5095
- return `msg_${Date.now()}_${++As}`;
5156
+ var Ns = 0;
5157
+ function Ps() {
5158
+ return `msg_${Date.now()}_${++Ns}`;
5096
5159
  }
5097
- function Ms(e) {
5160
+ function Fs(e) {
5098
5161
  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);
5099
5162
  function _(e, t) {
5100
5163
  let n = a.value.findIndex((t) => t.id === e);
@@ -5188,14 +5251,14 @@ function Ms(e) {
5188
5251
  let v = n();
5189
5252
  if (!v) throw Error("Template must be saved before using AI generation");
5190
5253
  o.value = !0, c.value = null, l.value = null, h.value = [];
5191
- let y = js();
5254
+ let y = Ps();
5192
5255
  a.value = [...a.value, {
5193
5256
  id: y,
5194
5257
  role: "user",
5195
5258
  content: e,
5196
5259
  timestamp: Date.now()
5197
5260
  }];
5198
- let b = js();
5261
+ let b = Ps();
5199
5262
  a.value = [...a.value, {
5200
5263
  id: b,
5201
5264
  role: "assistant",
@@ -5286,7 +5349,7 @@ function Ms(e) {
5286
5349
  }
5287
5350
  //#endregion
5288
5351
  //#region ../core/src/cloud/ai-config.ts
5289
- function Ns(e) {
5352
+ function Is(e) {
5290
5353
  function t(t) {
5291
5354
  return e !== !1 && e?.[t] !== !1;
5292
5355
  }
@@ -5297,7 +5360,7 @@ function Ns(e) {
5297
5360
  }
5298
5361
  //#endregion
5299
5362
  //#region ../core/src/cloud/template-scoring.ts
5300
- function Ps(e) {
5363
+ function Ls(e) {
5301
5364
  let { authManager: t, getTemplateId: n } = e, r = C(!1), i = C(null), a = C(null), o = C(null), s = C(""), c = C(null);
5302
5365
  async function l(e, o) {
5303
5366
  let s = n();
@@ -5442,7 +5505,7 @@ function Ps(e) {
5442
5505
  }
5443
5506
  //#endregion
5444
5507
  //#region ../core/src/cloud/design-reference.ts
5445
- function Fs(e) {
5508
+ function Rs(e) {
5446
5509
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C(!1), o = C(null);
5447
5510
  async function s(e) {
5448
5511
  let s = n();
@@ -5505,8 +5568,8 @@ function Fs(e) {
5505
5568
  }
5506
5569
  //#endregion
5507
5570
  //#region ../core/src/cloud/comments.ts
5508
- function Is(e) {
5509
- let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new ws(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5571
+ function zs(e) {
5572
+ let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new Ds(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5510
5573
  let e = 0;
5511
5574
  for (let t of c.value) e += 1 + (t.replies?.length ?? 0);
5512
5575
  return e;
@@ -5705,17 +5768,17 @@ function Is(e) {
5705
5768
  }
5706
5769
  //#endregion
5707
5770
  //#region ../core/src/cloud/comment-listener.ts
5708
- function Ls(e) {
5771
+ function Bs(e) {
5709
5772
  let { comments: t, channel: n } = e;
5710
5773
  H(n, (e, n) => {
5711
5774
  n && n.unbind("comment-broadcast"), e && e.bind("comment-broadcast", (e) => {
5712
- Rs(t, e);
5775
+ Vs(t, e);
5713
5776
  });
5714
5777
  }), l(() => {
5715
5778
  n.value?.unbind("comment-broadcast");
5716
5779
  });
5717
5780
  }
5718
- function Rs(e, t) {
5781
+ function Vs(e, t) {
5719
5782
  switch (t.action) {
5720
5783
  case "comment_created":
5721
5784
  e.applyRemoteCreate(t.comment);
@@ -5734,7 +5797,7 @@ function Rs(e, t) {
5734
5797
  }
5735
5798
  //#endregion
5736
5799
  //#region ../core/src/cloud/collaboration.ts
5737
- var zs = [
5800
+ var Hs = [
5738
5801
  "pusher:member_added",
5739
5802
  "pusher:member_removed",
5740
5803
  "client-block_locked",
@@ -5742,10 +5805,10 @@ var zs = [
5742
5805
  "client-operation",
5743
5806
  "mcp-operation"
5744
5807
  ];
5745
- function Bs(e) {
5746
- for (let t of zs) e.unbind(t);
5808
+ function Us(e) {
5809
+ for (let t of Hs) e.unbind(t);
5747
5810
  }
5748
- var Vs = [
5811
+ var Ws = [
5749
5812
  "#3b82f6",
5750
5813
  "#ef4444",
5751
5814
  "#10b981",
@@ -5757,10 +5820,10 @@ var Vs = [
5757
5820
  "#6366f1",
5758
5821
  "#14b8a6"
5759
5822
  ];
5760
- function Hs(e) {
5823
+ function Gs(e) {
5761
5824
  let { authManager: t, editor: n, channel: r } = e, i = C([]), a = C(/* @__PURE__ */ new Map()), o = 0, s = !1, c = O(() => t.userConfig?.id ?? "");
5762
5825
  function u() {
5763
- let e = Vs[o % Vs.length];
5826
+ let e = Ws[o % Ws.length];
5764
5827
  return o++, e;
5765
5828
  }
5766
5829
  function d(e) {
@@ -5802,7 +5865,7 @@ function Hs(e) {
5802
5865
  function h(e) {
5803
5866
  s = !0;
5804
5867
  try {
5805
- Ds(n, e);
5868
+ As(n, e);
5806
5869
  } finally {
5807
5870
  s = !1;
5808
5871
  }
@@ -5822,7 +5885,7 @@ function Hs(e) {
5822
5885
  return H(() => n.state.selectedBlockId, (e, t) => {
5823
5886
  s || (t && v(t), e && _(e));
5824
5887
  }), H(r, (t, n) => {
5825
- if (n && Bs(n), !t) {
5888
+ if (n && Us(n), !t) {
5826
5889
  i.value = [], a.value = /* @__PURE__ */ new Map(), o = 0;
5827
5890
  return;
5828
5891
  }
@@ -5854,7 +5917,7 @@ function Hs(e) {
5854
5917
  h(e);
5855
5918
  });
5856
5919
  }), l(() => {
5857
- r.value && Bs(r.value);
5920
+ r.value && Us(r.value);
5858
5921
  }), {
5859
5922
  collaborators: i,
5860
5923
  lockedBlocks: a,
@@ -5864,7 +5927,7 @@ function Hs(e) {
5864
5927
  }
5865
5928
  //#endregion
5866
5929
  //#region ../core/src/cloud/collaboration-broadcast.ts
5867
- function Us(e, t) {
5930
+ function Ks(e, t) {
5868
5931
  let n = e.addBlock, r = e.updateBlock, i = e.removeBlock, a = e.moveBlock, o = e.updateSettings, s = e.setContent;
5869
5932
  e.addBlock = (e, r, i, a) => {
5870
5933
  n(e, r, i, a), t._broadcastOperation({
@@ -5919,11 +5982,11 @@ function Us(e, t) {
5919
5982
  }
5920
5983
  //#endregion
5921
5984
  //#region ../core/src/cloud/web-socket.ts
5922
- function Ws(e) {
5985
+ function qs(e) {
5923
5986
  let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = null, o = null;
5924
5987
  async function s(e, s) {
5925
5988
  if (a) return;
5926
- a = new Es({
5989
+ a = new ks({
5927
5990
  authManager: t,
5928
5991
  config: s,
5929
5992
  onError: n
@@ -5951,8 +6014,8 @@ function Ws(e) {
5951
6014
  }
5952
6015
  //#endregion
5953
6016
  //#region ../core/src/cloud/saved-modules.ts
5954
- function Gs(e) {
5955
- let t = new ws(e.authManager), n = C([]), r = C(!1);
6017
+ function Js(e) {
6018
+ let t = new Ds(e.authManager), n = C([]), r = C(!1);
5956
6019
  async function i(i) {
5957
6020
  r.value = !0;
5958
6021
  try {
@@ -6000,8 +6063,8 @@ function Gs(e) {
6000
6063
  }
6001
6064
  //#endregion
6002
6065
  //#region ../core/src/cloud/snapshots.ts
6003
- function Ks(e) {
6004
- let t = new ws(e.authManager), n = C([]), r = C(!1), i = C(!1);
6066
+ function Ys(e) {
6067
+ let t = new Ds(e.authManager), n = C([]), r = C(!1), i = C(!1);
6005
6068
  async function a() {
6006
6069
  r.value = !0;
6007
6070
  try {
@@ -6033,8 +6096,8 @@ function Ks(e) {
6033
6096
  }
6034
6097
  //#endregion
6035
6098
  //#region ../core/src/cloud/test-email.ts
6036
- function qs(e) {
6037
- let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new ws(t), l = C(!1), u = C(null), d = C(null);
6099
+ function Xs(e) {
6100
+ let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new Ds(t), l = C(!1), u = C(null), d = C(null);
6038
6101
  o && H(o, (e) => {
6039
6102
  e && (d.value = t.testEmailConfig);
6040
6103
  }, { immediate: !0 });
@@ -6070,8 +6133,8 @@ function qs(e) {
6070
6133
  }
6071
6134
  //#endregion
6072
6135
  //#region ../core/src/cloud/export.ts
6073
- function Js(e) {
6074
- let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new ws(t);
6136
+ function Zs(e) {
6137
+ let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new Ds(t);
6075
6138
  function a() {
6076
6139
  let e = n?.();
6077
6140
  return {
@@ -6097,8 +6160,8 @@ function Js(e) {
6097
6160
  }
6098
6161
  //#endregion
6099
6162
  //#region ../core/src/cloud/plan-config.ts
6100
- function Ys(e) {
6101
- let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new ws(t), o = O(() => r.value?.features ?? null);
6163
+ function Qs(e) {
6164
+ let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new Ds(t), o = O(() => r.value?.features ?? null);
6102
6165
  function s(e) {
6103
6166
  return r.value?.features[e] ?? !1;
6104
6167
  }
@@ -6124,11 +6187,11 @@ function Ys(e) {
6124
6187
  }
6125
6188
  //#endregion
6126
6189
  //#region ../core/src/cloud/health-check.ts
6127
- var Xs = 5e3;
6128
- function Zs(e) {
6190
+ var $s = 5e3;
6191
+ function ec(e) {
6129
6192
  return e.authManager ? e.authManager.resolveUrl($.health) : `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}${$.health}`;
6130
6193
  }
6131
- async function Qs(e, t) {
6194
+ async function tc(e, t) {
6132
6195
  let n = performance.now();
6133
6196
  try {
6134
6197
  let r = t ? await t.authenticatedFetch($.health, {
@@ -6180,7 +6243,7 @@ async function Qs(e, t) {
6180
6243
  };
6181
6244
  }
6182
6245
  }
6183
- async function $s(e) {
6246
+ async function nc(e) {
6184
6247
  if (!e?.host || !e?.app_key) return {
6185
6248
  ok: !1,
6186
6249
  error: "WebSocket configuration not available"
@@ -6196,7 +6259,7 @@ async function $s(e) {
6196
6259
  ok: !1,
6197
6260
  error: "WebSocket connection timed out"
6198
6261
  });
6199
- }, Xs);
6262
+ }, $s);
6200
6263
  try {
6201
6264
  n = new WebSocket(t);
6202
6265
  } catch (t) {
@@ -6216,8 +6279,8 @@ async function $s(e) {
6216
6279
  };
6217
6280
  });
6218
6281
  }
6219
- async function ec(e = {}) {
6220
- let t = await Qs(Zs(e), e.authManager), n = await $s(t.wsConfig);
6282
+ async function rc(e = {}) {
6283
+ let t = await tc(ec(e), e.authManager), n = await nc(t.wsConfig);
6221
6284
  return {
6222
6285
  api: t.api,
6223
6286
  websocket: n,
@@ -6227,29 +6290,29 @@ async function ec(e = {}) {
6227
6290
  }
6228
6291
  //#endregion
6229
6292
  //#region ../core/src/cloud/mcp-listener.ts
6230
- function tc(e) {
6293
+ function ic(e) {
6231
6294
  let { editor: t, channel: n, onOperation: r } = e;
6232
6295
  H(n, (e, n) => {
6233
6296
  n && n.unbind("mcp-operation"), e && e.bind("mcp-operation", (e) => {
6234
- Ds(t, e), r?.(e);
6297
+ As(t, e), r?.(e);
6235
6298
  });
6236
6299
  });
6237
6300
  }
6238
6301
  //#endregion
6239
6302
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
6240
- var nc = {
6303
+ var ac = {
6241
6304
  key: 0,
6242
6305
  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)]"
6243
- }, rc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, ic = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, ac = { class: "tpl:flex tpl:items-center tpl:gap-1" }, oc = ["title"], sc = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, cc = {
6306
+ }, oc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, sc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, cc = { class: "tpl:flex tpl:items-center tpl:gap-1" }, lc = ["title"], uc = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, dc = {
6244
6307
  key: 0,
6245
6308
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6246
- }, lc = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, uc = {
6309
+ }, fc = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, pc = {
6247
6310
  key: 1,
6248
6311
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6249
- }, dc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, fc = {
6312
+ }, mc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, hc = {
6250
6313
  key: 2,
6251
6314
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6252
- }, pc = {
6315
+ }, gc = {
6253
6316
  key: 0,
6254
6317
  class: "tpl:self-end tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm",
6255
6318
  style: {
@@ -6258,10 +6321,10 @@ var nc = {
6258
6321
  "max-width": "85%",
6259
6322
  "box-shadow": "var(--tpl-shadow)"
6260
6323
  }
6261
- }, mc = {
6324
+ }, _c = {
6262
6325
  key: 1,
6263
6326
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6264
- }, hc = {
6327
+ }, vc = {
6265
6328
  key: 1,
6266
6329
  class: "tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm tpl:whitespace-pre-wrap",
6267
6330
  style: {
@@ -6270,21 +6333,21 @@ var nc = {
6270
6333
  color: "var(--tpl-text)",
6271
6334
  "box-shadow": "var(--tpl-shadow)"
6272
6335
  }
6273
- }, gc = {
6336
+ }, yc = {
6274
6337
  key: 0,
6275
6338
  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",
6276
6339
  style: {
6277
6340
  "background-color": "var(--tpl-danger-light)",
6278
6341
  color: "var(--tpl-danger)"
6279
6342
  }
6280
- }, _c = {
6343
+ }, bc = {
6281
6344
  key: 1,
6282
6345
  class: "tpl:absolute tpl:right-0 tpl:bottom-0 tpl:left-0 tpl:z-10 tpl:px-3 tpl:pb-3",
6283
6346
  style: {
6284
6347
  "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
6285
6348
  "backdrop-filter": "blur(2px)"
6286
6349
  }
6287
- }, vc = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, yc = ["onClick"], bc = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, xc = { 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)]" }, Sc = ["placeholder", "disabled"], Cc = ["disabled"], wc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Tc = /*@__PURE__*/ B({
6350
+ }, xc = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Sc = ["onClick"], Cc = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, wc = { 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)]" }, Tc = ["placeholder", "disabled"], Ec = ["disabled"], Dc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Oc = /*@__PURE__*/ B({
6288
6351
  __name: "AiChatSidebar",
6289
6352
  props: {
6290
6353
  visible: { type: Boolean },
@@ -6292,7 +6355,7 @@ var nc = {
6292
6355
  },
6293
6356
  emits: ["close"],
6294
6357
  setup(e, { emit: t }) {
6295
- let n = e, r = t, i = J(br, "AiChatSidebar"), a = J(zn, "AiChatSidebar"), o = J(hr, "AiChatSidebar"), s = v(Qn, []), l = za(), u = Ms({
6358
+ let n = e, r = t, i = J(xr, "AiChatSidebar"), a = J(zn, "AiChatSidebar"), o = J(gr, "AiChatSidebar"), s = v(Qn, []), l = Ha(), u = Fs({
6296
6359
  authManager: o,
6297
6360
  getTemplateId: () => a.state.template?.id ?? null,
6298
6361
  onApply: n.onApply,
@@ -6339,42 +6402,42 @@ var nc = {
6339
6402
  "leave-from-class": "tpl:translate-x-0",
6340
6403
  "leave-to-class": "tpl:translate-x-full"
6341
6404
  }, {
6342
- default: b(() => [e.visible ? (f(), k("div", nc, [
6343
- I("div", rc, [I("div", ic, [V(j(Fi), {
6405
+ default: b(() => [e.visible ? (f(), k("div", ac, [
6406
+ I("div", oc, [I("div", sc, [V(j(Ri), {
6344
6407
  size: 13,
6345
6408
  "stroke-width": 2
6346
- }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", ac, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6409
+ }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", cc, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6347
6410
  key: 0,
6348
6411
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6349
6412
  title: j(i).aiChat.clear,
6350
6413
  onClick: n[0] ||= (e) => j(u).clearChat()
6351
- }, [V(j(Li), {
6414
+ }, [V(j(Bi), {
6352
6415
  size: 14,
6353
6416
  "stroke-width": 2
6354
- })], 8, oc)) : A("", !0), I("button", {
6417
+ })], 8, lc)) : A("", !0), I("button", {
6355
6418
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6356
6419
  onClick: n[1] ||= (e) => r("close")
6357
- }, [V(j(Hi), {
6420
+ }, [V(j(Gi), {
6358
6421
  size: 14,
6359
6422
  "stroke-width": 2
6360
6423
  })])])]),
6361
- I("div", sc, [
6424
+ I("div", uc, [
6362
6425
  I("div", {
6363
6426
  ref_key: "messagesContainer",
6364
6427
  ref: p,
6365
6428
  class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
6366
- }, [j(u).isLoadingHistory.value ? (f(), k("div", cc, [V(j(Ci), {
6429
+ }, [j(u).isLoadingHistory.value ? (f(), k("div", dc, [V(j(Ei), {
6367
6430
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6368
6431
  size: 24,
6369
6432
  "stroke-width": 2
6370
- }), I("p", lc, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", uc, [V(j(Fi), {
6433
+ }), I("p", fc, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", pc, [V(j(Ri), {
6371
6434
  size: 32,
6372
6435
  "stroke-width": 1.5,
6373
6436
  class: "tpl:text-[var(--tpl-text-dim)]"
6374
- }), I("p", dc, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", fc, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6437
+ }), I("p", mc, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", hc, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6375
6438
  key: e.id,
6376
6439
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6377
- }, [e.role === "user" ? (f(), k("div", pc, D(e.content), 1)) : (f(), k("div", mc, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Zi, { key: 0 })) : (f(), k("div", hc, D(T(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6440
+ }, [e.role === "user" ? (f(), k("div", gc, D(e.content), 1)) : (f(), k("div", _c, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(ea, { key: 0 })) : (f(), k("div", vc, D(T(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6378
6441
  key: 2,
6379
6442
  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",
6380
6443
  style: {
@@ -6383,19 +6446,19 @@ var nc = {
6383
6446
  "background-color": "transparent"
6384
6447
  },
6385
6448
  onClick: n[2] ||= (e) => j(u).toggleLastRevert()
6386
- }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(Oi), {
6449
+ }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(ji), {
6387
6450
  size: 12,
6388
6451
  "stroke-width": 2
6389
- }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(zi), {
6452
+ }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Hi), {
6390
6453
  size: 12,
6391
6454
  "stroke-width": 2
6392
6455
  }), z(" " + D(j(i).aiChat.revert), 1)], 64))])) : A("", !0)]))]))), 128))]))], 512),
6393
- j(u).error.value ? (f(), k("div", gc, [V(j(li), {
6456
+ j(u).error.value ? (f(), k("div", yc, [V(j(fi), {
6394
6457
  size: 14,
6395
6458
  "stroke-width": 2,
6396
6459
  class: "tpl:mt-0.5 tpl:shrink-0"
6397
6460
  }), I("span", null, D(j(u).error.value === "ai_apply_failed" ? j(i).aiChat.applyFailed : j(i).aiChat.error), 1)])) : A("", !0),
6398
- (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", _c, [I("div", vc, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6461
+ (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", bc, [I("div", xc, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6399
6462
  key: t,
6400
6463
  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"]),
6401
6464
  style: {
@@ -6405,104 +6468,104 @@ var nc = {
6405
6468
  "box-shadow": "var(--tpl-shadow)"
6406
6469
  },
6407
6470
  onClick: (t) => E(e)
6408
- }, D(e), 11, yc))), 128))])])) : A("", !0)
6471
+ }, D(e), 11, Sc))), 128))])])) : A("", !0)
6409
6472
  ]),
6410
- I("div", bc, [I("div", xc, [c(I("textarea", {
6473
+ I("div", Cc, [I("div", wc, [c(I("textarea", {
6411
6474
  "onUpdate:modelValue": n[3] ||= (e) => d.value = e,
6412
6475
  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)]",
6413
6476
  placeholder: j(i).aiChat.inputPlaceholder,
6414
6477
  disabled: j(u).isGenerating.value,
6415
6478
  rows: "3",
6416
6479
  onKeydown: te
6417
- }, null, 40, Sc), [[ae, d.value]]), I("button", {
6480
+ }, null, 40, Tc), [[ae, d.value]]), I("button", {
6418
6481
  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)]",
6419
6482
  disabled: !d.value.trim() || j(u).isGenerating.value,
6420
6483
  onClick: ee
6421
- }, [V(j(ji), {
6484
+ }, [V(j(Pi), {
6422
6485
  size: 16,
6423
6486
  "stroke-width": 2
6424
- })], 8, Cc)]), I("p", wc, D(j(i).aiMenu.disclaimer), 1)])
6487
+ })], 8, Ec)]), I("p", Dc, D(j(i).aiMenu.disclaimer), 1)])
6425
6488
  ])) : A("", !0)]),
6426
6489
  _: 1
6427
6490
  }));
6428
6491
  }
6429
- }), Ec = /* @__PURE__ */ e({ default: () => Dc }), Dc = /*#__PURE__*/ qi(Tc, [["__scopeId", "data-v-a55e4bff"]]), Oc = 6e4, kc = 36e5, Ac = 864e5;
6430
- function jc(e, t, n, r) {
6492
+ }), kc = /* @__PURE__ */ e({ default: () => Ac }), Ac = /*#__PURE__*/ Xi(Oc, [["__scopeId", "data-v-a55e4bff"]]), jc = 6e4, Mc = 36e5, Nc = 864e5;
6493
+ function Pc(e, t, n, r) {
6431
6494
  let i = new Date(e).getTime();
6432
6495
  if (Number.isNaN(i)) return null;
6433
6496
  let a = Date.now() - i;
6434
6497
  if (a < -6e4) return null;
6435
- let o = Math.floor(a / Oc), s = Math.floor(a / kc), c = Math.floor(a / Ac);
6498
+ let o = Math.floor(a / jc), s = Math.floor(a / Mc), c = Math.floor(a / Nc);
6436
6499
  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));
6437
6500
  }
6438
6501
  //#endregion
6439
6502
  //#region src/cloud/components/CommentsSidebar.vue?vue&type=script&setup=true&lang.ts
6440
- var Mc = {
6503
+ var Fc = {
6441
6504
  key: 0,
6442
6505
  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)]"
6443
- }, Nc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Pc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, Fc = {
6506
+ }, Ic = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Lc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, Rc = {
6444
6507
  key: 0,
6445
6508
  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)]"
6446
- }, Ic = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, Lc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, Rc = {
6509
+ }, zc = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, Bc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, Vc = {
6447
6510
  key: 0,
6448
6511
  class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
6449
- }, zc = {
6512
+ }, Hc = {
6450
6513
  key: 1,
6451
6514
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:px-6 tpl:text-center"
6452
- }, Bc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Vc = {
6515
+ }, Uc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Wc = {
6453
6516
  key: 2,
6454
6517
  class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
6455
- }, Hc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Uc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Wc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Gc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Kc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, qc = {
6518
+ }, Gc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Kc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, qc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Jc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Yc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Xc = {
6456
6519
  key: 0,
6457
6520
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6458
- }, Jc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Yc = ["title", "onClick"], Xc = ["title", "onClick"], Zc = ["title", "onClick"], Qc = {
6521
+ }, Zc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Qc = ["title", "onClick"], $c = ["title", "onClick"], el = ["title", "onClick"], tl = {
6459
6522
  key: 0,
6460
6523
  class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
6461
- }, $c = {
6524
+ }, nl = {
6462
6525
  key: 0,
6463
6526
  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)]"
6464
- }, el = ["onClick"], tl = {
6527
+ }, rl = ["onClick"], il = {
6465
6528
  key: 2,
6466
6529
  class: "tpl:mt-2"
6467
- }, nl = ["onKeydown"], rl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, il = ["disabled", "onClick"], al = {
6530
+ }, al = ["onKeydown"], ol = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, sl = ["disabled", "onClick"], cl = {
6468
6531
  key: 3,
6469
6532
  class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6470
- }, ol = {
6533
+ }, ll = {
6471
6534
  key: 4,
6472
6535
  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)]"
6473
- }, sl = { class: "tpl:flex-1" }, cl = ["onClick"], ll = {
6536
+ }, ul = { class: "tpl:flex-1" }, dl = ["onClick"], fl = {
6474
6537
  key: 5,
6475
6538
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
6476
- }, ul = ["title", "onClick"], dl = ["onClick"], fl = {
6539
+ }, pl = ["title", "onClick"], ml = ["onClick"], hl = {
6477
6540
  key: 0,
6478
6541
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6479
- }, pl = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, ml = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, hl = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, gl = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, _l = {
6542
+ }, gl = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, _l = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, vl = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, yl = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, bl = {
6480
6543
  key: 0,
6481
6544
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6482
- }, vl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, yl = ["title", "onClick"], bl = ["title", "onClick"], xl = {
6545
+ }, xl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Sl = ["title", "onClick"], Cl = ["title", "onClick"], wl = {
6483
6546
  key: 0,
6484
6547
  class: "tpl:mt-1.5"
6485
- }, Sl = ["onKeydown"], Cl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, wl = ["disabled", "onClick"], Tl = {
6548
+ }, Tl = ["onKeydown"], El = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Dl = ["disabled", "onClick"], Ol = {
6486
6549
  key: 1,
6487
6550
  class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6488
- }, El = {
6551
+ }, kl = {
6489
6552
  key: 2,
6490
6553
  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)]"
6491
- }, Dl = { class: "tpl:flex-1" }, Ol = ["onClick"], kl = {
6554
+ }, Al = { class: "tpl:flex-1" }, jl = ["onClick"], Ml = {
6492
6555
  key: 0,
6493
6556
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6494
- }, Al = { class: "tpl:flex tpl:items-end tpl:gap-2" }, jl = ["placeholder", "onKeydown"], Ml = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, Nl = ["disabled", "onClick"], Pl = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Fl = {
6557
+ }, Nl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, Pl = ["placeholder", "onKeydown"], Fl = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, Il = ["disabled", "onClick"], Ll = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Rl = {
6495
6558
  key: 0,
6496
6559
  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)]"
6497
- }, Il = {
6560
+ }, zl = {
6498
6561
  key: 1,
6499
6562
  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)]"
6500
- }, Ll = ["placeholder", "disabled"], Rl = ["disabled"], zl = /*@__PURE__*/ B({
6563
+ }, Bl = ["placeholder", "disabled"], Vl = ["disabled"], Hl = /*@__PURE__*/ B({
6501
6564
  __name: "CommentsSidebar",
6502
6565
  props: { visible: { type: Boolean } },
6503
6566
  emits: ["close", "filterBlock"],
6504
6567
  setup(e, { expose: t, emit: n }) {
6505
- let r = e, i = n, { format: a } = Y(), { t: o } = ra(), s = J(zn, "CommentsSidebar"), l = J(hr, "CommentsSidebar"), u = J(_r, "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), ee = C(null), T = O(() => l.userConfig?.id ?? null), E = O(() => {
6568
+ let r = e, i = n, { format: a } = Y(), { t: o } = oa(), s = J(zn, "CommentsSidebar"), l = J(gr, "CommentsSidebar"), u = J(vr, "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), ee = C(null), T = O(() => l.userConfig?.id ?? null), E = O(() => {
6506
6569
  let e = /* @__PURE__ */ new Set();
6507
6570
  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);
6508
6571
  return e;
@@ -6570,7 +6633,7 @@ var Mc = {
6570
6633
  return e.author_identifier === T.value;
6571
6634
  }
6572
6635
  function ve(e) {
6573
- return jc(e, o.snapshotHistory) ?? e;
6636
+ return Pc(e, o.snapshotHistory) ?? e;
6574
6637
  }
6575
6638
  function ye(e) {
6576
6639
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), fe());
@@ -6597,22 +6660,22 @@ var Mc = {
6597
6660
  "leave-from-class": "tpl:translate-x-0",
6598
6661
  "leave-to-class": "tpl:translate-x-full"
6599
6662
  }, {
6600
- default: b(() => [e.visible ? (f(), k("div", Mc, [
6601
- I("div", Nc, [I("div", Pc, [
6602
- V(j(wi), {
6663
+ default: b(() => [e.visible ? (f(), k("div", Fc, [
6664
+ I("div", Ic, [I("div", Lc, [
6665
+ V(j(Di), {
6603
6666
  size: 13,
6604
6667
  "stroke-width": 2
6605
6668
  }),
6606
6669
  I("span", null, D(j(o).comments.title), 1),
6607
- j(u).unresolvedCount.value > 0 ? (f(), k("span", Fc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6670
+ j(u).unresolvedCount.value > 0 ? (f(), k("span", Rc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6608
6671
  ]), I("button", {
6609
6672
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6610
6673
  onClick: n[0] ||= (e) => i("close")
6611
- }, [V(j(Hi), {
6674
+ }, [V(j(Gi), {
6612
6675
  size: 14,
6613
6676
  "stroke-width": 2
6614
6677
  })])]),
6615
- I("div", Ic, [
6678
+ I("div", zc, [
6616
6679
  I("button", {
6617
6680
  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" : ""]),
6618
6681
  onClick: n[1] ||= (e) => M("unresolved")
@@ -6627,156 +6690,156 @@ var Mc = {
6627
6690
  onClick: n[3] ||= (e) => M("block", j(s).state.selectedBlockId ?? void 0)
6628
6691
  }, D(j(o).comments.filterBlock), 3)) : A("", !0)
6629
6692
  ]),
6630
- I("div", Lc, [j(u).isLoading.value ? (f(), k("div", Rc, [V(j(Ci), {
6693
+ I("div", Bc, [j(u).isLoading.value ? (f(), k("div", Vc, [V(j(Ei), {
6631
6694
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6632
6695
  size: 24,
6633
6696
  "stroke-width": 2
6634
- })])) : re.value.length === 0 ? (f(), k("div", zc, [V(j(wi), {
6697
+ })])) : re.value.length === 0 ? (f(), k("div", Hc, [V(j(Di), {
6635
6698
  size: 32,
6636
6699
  "stroke-width": 1.5,
6637
6700
  class: "tpl:text-[var(--tpl-text-dim)]"
6638
- }), I("p", Bc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", Vc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6701
+ }), I("p", Uc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", Wc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6639
6702
  key: e.id,
6640
6703
  class: "tpl-comment-thread"
6641
6704
  }, [
6642
- I("div", Hc, [
6643
- I("div", Uc, [I("div", Wc, [
6644
- I("span", Gc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6645
- I("span", Kc, D(ve(e.created_at)), 1),
6646
- e.updated_at === e.created_at ? A("", !0) : (f(), k("span", qc, " (" + D(j(o).comments.edited) + ") ", 1))
6647
- ]), I("div", Jc, [
6705
+ I("div", Gc, [
6706
+ I("div", Kc, [I("div", qc, [
6707
+ I("span", Jc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6708
+ I("span", Yc, D(ve(e.created_at)), 1),
6709
+ e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Xc, " (" + D(j(o).comments.edited) + ") ", 1))
6710
+ ]), I("div", Zc, [
6648
6711
  I("button", {
6649
6712
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6650
6713
  title: e.resolved_at ? j(o).comments.unresolve : j(o).comments.resolve,
6651
6714
  onClick: (t) => ge(e.id)
6652
- }, [V(j(ui), {
6715
+ }, [V(j(pi), {
6653
6716
  size: 13,
6654
6717
  "stroke-width": 2,
6655
6718
  class: "tpl-resolve-icon",
6656
6719
  style: L({ color: e.resolved_at ? "var(--tpl-primary)" : void 0 })
6657
- }, null, 8, ["style"])], 8, Yc),
6720
+ }, null, 8, ["style"])], 8, Qc),
6658
6721
  _e(e) ? (f(), k("button", {
6659
6722
  key: 0,
6660
6723
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6661
6724
  title: j(o).comments.edit,
6662
6725
  onClick: (t) => le(e)
6663
- }, [V(j(Ei), {
6726
+ }, [V(j(ki), {
6664
6727
  size: 12,
6665
6728
  "stroke-width": 2
6666
- })], 8, Xc)) : A("", !0),
6729
+ })], 8, $c)) : A("", !0),
6667
6730
  _e(e) ? (f(), k("button", {
6668
6731
  key: 1,
6669
6732
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6670
6733
  title: j(o).comments.delete,
6671
6734
  onClick: (t) => ue(e.id)
6672
- }, [V(j(Li), {
6735
+ }, [V(j(Bi), {
6673
6736
  size: 12,
6674
6737
  "stroke-width": 2
6675
- })], 8, Zc)) : A("", !0)
6738
+ })], 8, el)) : A("", !0)
6676
6739
  ])]),
6677
6740
  V(ie, { name: "tpl-resolve" }, {
6678
- default: b(() => [e.resolved_at ? (f(), k("div", Qc, [V(j(ii), {
6741
+ default: b(() => [e.resolved_at ? (f(), k("div", tl, [V(j(si), {
6679
6742
  size: 10,
6680
6743
  "stroke-width": 2.5
6681
6744
  }), I("span", null, D(j(a)(j(o).comments.resolvedBy, { name: e.resolved_by_name ?? "" })), 1)])) : A("", !0)]),
6682
6745
  _: 2
6683
6746
  }, 1024),
6684
- e.block_id && te(e.block_id) ? (f(), k("span", $c, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6747
+ e.block_id && te(e.block_id) ? (f(), k("span", nl, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6685
6748
  key: 1,
6686
6749
  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)]",
6687
6750
  onClick: (t) => j(s).selectBlock(e.block_id ?? "")
6688
- }, " Block ", 8, el)) : A("", !0),
6689
- y.value === e.id ? (f(), k("div", tl, [c(I("textarea", {
6751
+ }, " Block ", 8, rl)) : A("", !0),
6752
+ y.value === e.id ? (f(), k("div", il, [c(I("textarea", {
6690
6753
  "onUpdate:modelValue": n[4] ||= (e) => x.value = e,
6691
6754
  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)]",
6692
6755
  rows: "3",
6693
6756
  onKeydown: (t) => xe(t, e.id)
6694
- }, null, 40, nl), [[ae, x.value]]), I("div", rl, [I("button", {
6757
+ }, null, 40, al), [[ae, x.value]]), I("div", ol, [I("button", {
6695
6758
  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)]",
6696
6759
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6697
6760
  onClick: (t) => me(e.id)
6698
- }, D(j(o).comments.save), 9, il), I("button", {
6761
+ }, D(j(o).comments.save), 9, sl), I("button", {
6699
6762
  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)]",
6700
6763
  onClick: n[5] ||= (e) => B()
6701
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", al, D(e.body), 1)),
6702
- w.value === e.id ? (f(), k("div", ol, [
6703
- I("span", sl, D(j(o).comments.deleteConfirm), 1),
6764
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", cl, D(e.body), 1)),
6765
+ w.value === e.id ? (f(), k("div", ll, [
6766
+ I("span", ul, D(j(o).comments.deleteConfirm), 1),
6704
6767
  I("button", {
6705
6768
  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)]",
6706
6769
  onClick: (t) => he(e.id)
6707
- }, D(j(o).comments.delete), 9, cl),
6770
+ }, D(j(o).comments.delete), 9, dl),
6708
6771
  I("button", {
6709
6772
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6710
6773
  onClick: n[6] ||= (e) => de()
6711
6774
  }, D(j(o).comments.cancel), 1)
6712
6775
  ])) : A("", !0),
6713
- y.value !== e.id && w.value !== e.id ? (f(), k("div", ll, [I("button", {
6776
+ y.value !== e.id && w.value !== e.id ? (f(), k("div", fl, [I("button", {
6714
6777
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6715
6778
  title: j(o).comments.reply,
6716
6779
  onClick: (t) => se(e.id)
6717
- }, [V(j(Ai), {
6780
+ }, [V(j(Ni), {
6718
6781
  size: 13,
6719
6782
  "stroke-width": 2,
6720
6783
  class: "tpl:text-[var(--tpl-primary)]"
6721
- })], 8, ul), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6784
+ })], 8, pl), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6722
6785
  key: 0,
6723
6786
  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)]",
6724
6787
  onClick: (t) => oe(e.id)
6725
- }, [S.value.has(e.id) ? (f(), N(j(ci), {
6788
+ }, [S.value.has(e.id) ? (f(), N(j(di), {
6726
6789
  key: 0,
6727
6790
  size: 11,
6728
6791
  "stroke-width": 2
6729
- })) : (f(), N(j(ai), {
6792
+ })) : (f(), N(j(ci), {
6730
6793
  key: 1,
6731
6794
  size: 11,
6732
6795
  "stroke-width": 2
6733
- })), 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, dl)) : A("", !0)])) : A("", !0)
6796
+ })), 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, ml)) : A("", !0)])) : A("", !0)
6734
6797
  ]),
6735
6798
  V(ie, { name: "tpl-replies" }, {
6736
- default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", fl, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6799
+ default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", hl, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6737
6800
  key: t.id,
6738
6801
  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" : ""])
6739
6802
  }, [
6740
- I("div", pl, [I("div", ml, [
6741
- I("span", hl, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6742
- I("span", gl, D(ve(t.created_at)), 1),
6743
- t.updated_at === t.created_at ? A("", !0) : (f(), k("span", _l, " (" + D(j(o).comments.edited) + ") ", 1))
6744
- ]), I("div", vl, [_e(t) ? (f(), k("button", {
6803
+ I("div", gl, [I("div", _l, [
6804
+ I("span", vl, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6805
+ I("span", yl, D(ve(t.created_at)), 1),
6806
+ t.updated_at === t.created_at ? A("", !0) : (f(), k("span", bl, " (" + D(j(o).comments.edited) + ") ", 1))
6807
+ ]), I("div", xl, [_e(t) ? (f(), k("button", {
6745
6808
  key: 0,
6746
6809
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6747
6810
  title: j(o).comments.edit,
6748
6811
  onClick: (e) => le(t)
6749
- }, [V(j(Ei), {
6812
+ }, [V(j(ki), {
6750
6813
  size: 11,
6751
6814
  "stroke-width": 2
6752
- })], 8, yl)) : A("", !0), _e(t) ? (f(), k("button", {
6815
+ })], 8, Sl)) : A("", !0), _e(t) ? (f(), k("button", {
6753
6816
  key: 1,
6754
6817
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6755
6818
  title: j(o).comments.delete,
6756
6819
  onClick: (e) => ue(t.id)
6757
- }, [V(j(Li), {
6820
+ }, [V(j(Bi), {
6758
6821
  size: 11,
6759
6822
  "stroke-width": 2
6760
- })], 8, bl)) : A("", !0)])]),
6761
- y.value === t.id ? (f(), k("div", xl, [c(I("textarea", {
6823
+ })], 8, Cl)) : A("", !0)])]),
6824
+ y.value === t.id ? (f(), k("div", wl, [c(I("textarea", {
6762
6825
  "onUpdate:modelValue": n[7] ||= (e) => x.value = e,
6763
6826
  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)]",
6764
6827
  rows: "2",
6765
6828
  onKeydown: (e) => xe(e, t.id)
6766
- }, null, 40, Sl), [[ae, x.value]]), I("div", Cl, [I("button", {
6829
+ }, null, 40, Tl), [[ae, x.value]]), I("div", El, [I("button", {
6767
6830
  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)]",
6768
6831
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6769
6832
  onClick: (e) => me(t.id)
6770
- }, D(j(o).comments.save), 9, wl), I("button", {
6833
+ }, D(j(o).comments.save), 9, Dl), I("button", {
6771
6834
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6772
6835
  onClick: n[8] ||= (e) => B()
6773
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Tl, D(t.body), 1)),
6774
- w.value === t.id ? (f(), k("div", El, [
6775
- I("span", Dl, D(j(o).comments.deleteConfirm), 1),
6836
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Ol, D(t.body), 1)),
6837
+ w.value === t.id ? (f(), k("div", kl, [
6838
+ I("span", Al, D(j(o).comments.deleteConfirm), 1),
6776
6839
  I("button", {
6777
6840
  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)]",
6778
6841
  onClick: (e) => he(t.id)
6779
- }, D(j(o).comments.delete), 9, Ol),
6842
+ }, D(j(o).comments.delete), 9, jl),
6780
6843
  I("button", {
6781
6844
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6782
6845
  onClick: n[9] ||= (e) => de()
@@ -6786,30 +6849,30 @@ var Mc = {
6786
6849
  _: 2
6787
6850
  }, 1024),
6788
6851
  V(ie, { name: "tpl-replies" }, {
6789
- default: b(() => [_.value === e.id ? (f(), k("div", kl, [I("div", Al, [c(I("textarea", {
6852
+ default: b(() => [_.value === e.id ? (f(), k("div", Ml, [I("div", Nl, [c(I("textarea", {
6790
6853
  "onUpdate:modelValue": n[10] ||= (e) => v.value = e,
6791
6854
  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)]",
6792
6855
  placeholder: j(o).comments.replyPlaceholder,
6793
6856
  rows: "2",
6794
6857
  onKeydown: (t) => be(t, e.id)
6795
- }, null, 40, jl), [[ae, v.value]]), I("div", Ml, [I("button", {
6858
+ }, null, 40, Pl), [[ae, v.value]]), I("div", Fl, [I("button", {
6796
6859
  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)]",
6797
6860
  disabled: !v.value.trim() || j(u).isSubmitting.value,
6798
6861
  onClick: (t) => pe(e.id)
6799
- }, [V(j(ji), {
6862
+ }, [V(j(Pi), {
6800
6863
  size: 14,
6801
6864
  "stroke-width": 2
6802
- })], 8, Nl), I("button", {
6865
+ })], 8, Il), I("button", {
6803
6866
  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)]",
6804
6867
  onClick: n[11] ||= (e) => ce()
6805
- }, [V(j(Hi), {
6868
+ }, [V(j(Gi), {
6806
6869
  size: 14,
6807
6870
  "stroke-width": 2
6808
6871
  })])])])])) : A("", !0)]),
6809
6872
  _: 2
6810
6873
  }, 1024)
6811
6874
  ]))), 128))]))]),
6812
- I("div", Pl, [ne.value ? (f(), k("div", Fl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", Il, [c(I("textarea", {
6875
+ I("div", Ll, [ne.value ? (f(), k("div", Rl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", zl, [c(I("textarea", {
6813
6876
  ref_key: "newCommentInput",
6814
6877
  ref: ee,
6815
6878
  "onUpdate:modelValue": n[12] ||= (e) => g.value = e,
@@ -6818,46 +6881,46 @@ var Mc = {
6818
6881
  disabled: j(u).isSubmitting.value,
6819
6882
  rows: "2",
6820
6883
  onKeydown: ye
6821
- }, null, 40, Ll), [[ae, g.value]]), I("button", {
6884
+ }, null, 40, Bl), [[ae, g.value]]), I("button", {
6822
6885
  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)]",
6823
6886
  disabled: !g.value.trim() || j(u).isSubmitting.value,
6824
6887
  onClick: fe
6825
- }, [j(u).isSubmitting.value ? (f(), N(j(Ci), {
6888
+ }, [j(u).isSubmitting.value ? (f(), N(j(Ei), {
6826
6889
  key: 0,
6827
6890
  class: "tpl-spinner",
6828
6891
  size: 16,
6829
6892
  "stroke-width": 2
6830
- })) : (f(), N(j(ji), {
6893
+ })) : (f(), N(j(Pi), {
6831
6894
  key: 1,
6832
6895
  size: 16,
6833
6896
  "stroke-width": 2
6834
- }))], 8, Rl)]))])
6897
+ }))], 8, Vl)]))])
6835
6898
  ])) : A("", !0)]),
6836
6899
  _: 1
6837
6900
  }));
6838
6901
  }
6839
- }), Bl = /* @__PURE__ */ e({ default: () => Vl }), Vl = /*#__PURE__*/ qi(zl, [["__scopeId", "data-v-d204f573"]]), Hl = {
6902
+ }), Ul = /* @__PURE__ */ e({ default: () => Wl }), Wl = /*#__PURE__*/ Xi(Hl, [["__scopeId", "data-v-d204f573"]]), Gl = {
6840
6903
  key: 0,
6841
6904
  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)]"
6842
- }, Ul = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Wl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Gl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Kl = {
6905
+ }, Kl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, ql = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Jl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Yl = {
6843
6906
  key: 0,
6844
6907
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6845
- }, ql = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Jl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Yl = {
6908
+ }, Xl = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Zl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ql = {
6846
6909
  key: 1,
6847
6910
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6848
- }, Xl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Zl = {
6911
+ }, $l = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, eu = {
6849
6912
  key: 0,
6850
6913
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6851
- }, Ql = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, $l = ["src", "alt"], eu = {
6914
+ }, tu = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, nu = ["src", "alt"], ru = {
6852
6915
  key: 1,
6853
6916
  class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
6854
- }, tu = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, nu = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ru = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, iu = ["accept"], au = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, ou = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, su = ["placeholder"], cu = {
6917
+ }, iu = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, au = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ou = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, su = ["accept"], cu = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, lu = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, uu = ["placeholder"], du = {
6855
6918
  key: 0,
6856
6919
  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)]"
6857
- }, lu = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, uu = { class: "tpl:flex tpl:gap-2" }, du = {
6920
+ }, fu = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, pu = { class: "tpl:flex tpl:gap-2" }, mu = {
6858
6921
  key: 1,
6859
6922
  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)]"
6860
- }, fu = ["disabled"], pu = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, mu = /*@__PURE__*/ B({
6923
+ }, hu = ["disabled"], gu = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, _u = /*@__PURE__*/ B({
6861
6924
  __name: "DesignReferenceSidebar",
6862
6925
  props: {
6863
6926
  visible: { type: Boolean },
@@ -6865,8 +6928,8 @@ var Mc = {
6865
6928
  },
6866
6929
  emits: ["close", "apply"],
6867
6930
  setup(e, { emit: t }) {
6868
- let n = e, r = t, { t: i } = ra(), a = J(zn, "DesignReferenceSidebar"), o = Fs({
6869
- authManager: J(hr, "DesignReferenceSidebar"),
6931
+ let n = e, r = t, { t: i } = oa(), a = J(zn, "DesignReferenceSidebar"), o = Rs({
6932
+ authManager: J(gr, "DesignReferenceSidebar"),
6870
6933
  getTemplateId: () => a.state.template?.id ?? null,
6871
6934
  onApply: (e) => r("apply", e)
6872
6935
  }), 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);
@@ -6937,17 +7000,17 @@ var Mc = {
6937
7000
  "leave-from-class": "tpl:translate-x-0",
6938
7001
  "leave-to-class": "tpl:translate-x-full"
6939
7002
  }, {
6940
- default: b(() => [e.visible ? (f(), k("div", Hl, [I("div", Ul, [I("div", Wl, [V(j(bi), {
7003
+ default: b(() => [e.visible ? (f(), k("div", Gl, [I("div", Kl, [I("div", ql, [V(j(Ci), {
6941
7004
  size: 13,
6942
7005
  "stroke-width": 2
6943
7006
  }), I("span", null, D(j(i).designReference.title), 1)]), I("button", {
6944
7007
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6945
7008
  onClick: n[0] ||= (e) => r("close")
6946
- }, [V(j(Hi), {
7009
+ }, [V(j(Gi), {
6947
7010
  size: 14,
6948
7011
  "stroke-width": 2
6949
- })])]), I("div", Gl, [j(o).isGenerating.value ? (f(), k("div", Kl, [I("div", ql, [V(Zi), I("p", Jl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Yl, [
6950
- I("div", Xl, [I("button", {
7012
+ })])]), I("div", Jl, [j(o).isGenerating.value ? (f(), k("div", Yl, [I("div", Xl, [V(ea), I("p", Zl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Ql, [
7013
+ I("div", $l, [I("button", {
6951
7014
  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",
6952
7015
  style: L({
6953
7016
  backgroundColor: l.value === "image" ? "var(--tpl-bg)" : "transparent",
@@ -6955,7 +7018,7 @@ var Mc = {
6955
7018
  boxShadow: l.value === "image" ? "var(--tpl-shadow)" : "none"
6956
7019
  }),
6957
7020
  onClick: n[1] ||= (e) => _("image")
6958
- }, [V(j(gi), {
7021
+ }, [V(j(yi), {
6959
7022
  size: 12,
6960
7023
  "stroke-width": 2
6961
7024
  }), z(" " + D(j(i).designReference.uploadImage), 1)], 4), I("button", {
@@ -6966,23 +7029,23 @@ var Mc = {
6966
7029
  boxShadow: l.value === "pdf" ? "var(--tpl-shadow)" : "none"
6967
7030
  }),
6968
7031
  onClick: n[2] ||= (e) => _("pdf")
6969
- }, [V(j(_i), {
7032
+ }, [V(j(bi), {
6970
7033
  size: 12,
6971
7034
  "stroke-width": 2
6972
7035
  }), z(" " + D(j(i).designReference.uploadPdf), 1)], 4)]),
6973
- I("div", null, [u.value ? (f(), k("div", Zl, [I("div", Ql, [p.value ? (f(), k("img", {
7036
+ I("div", null, [u.value ? (f(), k("div", eu, [I("div", tu, [p.value ? (f(), k("img", {
6974
7037
  key: 0,
6975
7038
  src: p.value,
6976
7039
  alt: u.value.name,
6977
7040
  class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
6978
- }, null, 8, $l)) : (f(), k("div", eu, [V(j(_i), {
7041
+ }, null, 8, nu)) : (f(), k("div", ru, [V(j(bi), {
6979
7042
  size: 32,
6980
7043
  "stroke-width": 1.5,
6981
7044
  class: "tpl:text-[var(--tpl-text-dim)]"
6982
- }), I("span", tu, D(u.value.name), 1)])), I("button", {
7045
+ }), I("span", iu, D(u.value.name), 1)])), I("button", {
6983
7046
  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)]",
6984
7047
  onClick: x
6985
- }, [V(j(Hi), {
7048
+ }, [V(j(Gi), {
6986
7049
  size: 12,
6987
7050
  "stroke-width": 2
6988
7051
  })])])])) : (f(), k("div", {
@@ -6997,13 +7060,13 @@ var Mc = {
6997
7060
  onDragleave: w,
6998
7061
  onDrop: ee
6999
7062
  }, [
7000
- V(j(Bi), {
7063
+ V(j(Ui), {
7001
7064
  size: 24,
7002
7065
  "stroke-width": 1.5,
7003
7066
  class: "tpl:text-[var(--tpl-text-dim)]"
7004
7067
  }),
7005
- I("span", nu, D(j(i).designReference.dropHint), 1),
7006
- I("span", ru, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
7068
+ I("span", au, D(j(i).designReference.dropHint), 1),
7069
+ I("span", ou, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
7007
7070
  ], 36)), I("input", {
7008
7071
  ref_key: "fileInput",
7009
7072
  ref: s,
@@ -7011,14 +7074,14 @@ var Mc = {
7011
7074
  class: "tpl:hidden",
7012
7075
  accept: l.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
7013
7076
  onChange: v
7014
- }, null, 40, iu)]),
7015
- I("div", au, [I("label", ou, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
7077
+ }, null, 40, su)]),
7078
+ I("div", cu, [I("label", lu, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
7016
7079
  "onUpdate:modelValue": n[4] ||= (e) => d.value = e,
7017
7080
  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"]]),
7018
7081
  placeholder: j(i).designReference.promptPlaceholder,
7019
7082
  rows: "3"
7020
- }, null, 8, su), [[ae, d.value]])]),
7021
- m.value ? (f(), k("div", cu, [I("p", lu, D(j(i).designReference.replaceWarning), 1), I("div", uu, [I("button", {
7083
+ }, null, 8, uu), [[ae, d.value]])]),
7084
+ m.value ? (f(), k("div", du, [I("p", fu, D(j(i).designReference.replaceWarning), 1), I("div", pu, [I("button", {
7022
7085
  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)]",
7023
7086
  style: { "background-color": "transparent" },
7024
7087
  onClick: E
@@ -7026,7 +7089,7 @@ var Mc = {
7026
7089
  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)]",
7027
7090
  onClick: T
7028
7091
  }, D(j(i).designReference.replaceConfirm), 1)])])) : A("", !0),
7029
- j(o).error.value ? (f(), k("div", du, [V(j(li), {
7092
+ j(o).error.value ? (f(), k("div", mu, [V(j(fi), {
7030
7093
  size: 14,
7031
7094
  "stroke-width": 2,
7032
7095
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7036,35 +7099,35 @@ var Mc = {
7036
7099
  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)]",
7037
7100
  disabled: !g.value,
7038
7101
  onClick: T
7039
- }, [V(j(bi), {
7102
+ }, [V(j(Ci), {
7040
7103
  size: 16,
7041
7104
  "stroke-width": 2
7042
- }), z(" " + D(j(i).designReference.generate), 1)], 8, fu)),
7043
- I("p", pu, D(j(i).aiMenu.disclaimer), 1)
7105
+ }), z(" " + D(j(i).designReference.generate), 1)], 8, hu)),
7106
+ I("p", gu, D(j(i).aiMenu.disclaimer), 1)
7044
7107
  ]))])])) : A("", !0)]),
7045
7108
  _: 1
7046
7109
  }));
7047
7110
  }
7048
- }), hu = /* @__PURE__ */ e({ default: () => gu }), gu = /*#__PURE__*/ qi(mu, [["__scopeId", "data-v-bdbf8d0d"]]), _u = ["disabled", "title"], vu = ["title"], yu = {
7111
+ }), vu = /* @__PURE__ */ e({ default: () => yu }), yu = /*#__PURE__*/ Xi(_u, [["__scopeId", "data-v-bdbf8d0d"]]), bu = ["disabled", "title"], xu = ["title"], Su = {
7049
7112
  key: 0,
7050
7113
  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)]",
7051
7114
  style: {
7052
7115
  "backdrop-filter": "blur(8px)",
7053
7116
  "-webkit-backdrop-filter": "blur(8px)"
7054
7117
  }
7055
- }, bu = { 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)]" }, xu = {
7118
+ }, Cu = { 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)]" }, wu = {
7056
7119
  key: 0,
7057
7120
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:py-8"
7058
- }, Su = {
7121
+ }, Tu = {
7059
7122
  key: 1,
7060
7123
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
7061
- }, Cu = {
7124
+ }, Eu = {
7062
7125
  key: 2,
7063
7126
  class: "tpl:max-h-64 tpl:overflow-y-auto"
7064
- }, wu = ["disabled", "onClick"], Tu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, Eu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Du = {
7127
+ }, Du = ["disabled", "onClick"], Ou = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, ku = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Au = {
7065
7128
  key: 0,
7066
7129
  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)]"
7067
- }, Ou = ["disabled", "title"], ku = /*@__PURE__*/ B({
7130
+ }, ju = ["disabled", "title"], Mu = /*@__PURE__*/ B({
7068
7131
  __name: "SnapshotHistory",
7069
7132
  props: {
7070
7133
  snapshots: {},
@@ -7073,7 +7136,7 @@ var Mc = {
7073
7136
  },
7074
7137
  emits: ["load", "navigate"],
7075
7138
  setup(e, { emit: t }) {
7076
- let n = e, r = t, { format: i } = Y(), { t: a } = ra(), o = C(!1), s = C(null), c = C(-1);
7139
+ let n = e, r = t, { format: i } = Y(), { t: a } = oa(), o = C(!1), s = C(null), c = C(-1);
7077
7140
  H(() => n.snapshots.length, () => {
7078
7141
  c.value = -1;
7079
7142
  });
@@ -7092,7 +7155,7 @@ var Mc = {
7092
7155
  t !== -1 && (c.value = t, r("navigate", n.snapshots[t])), o.value = !1;
7093
7156
  }
7094
7157
  function _(e) {
7095
- let t = jc(e, a.snapshotHistory, i, 7);
7158
+ let t = Pc(e, a.snapshotHistory, i, 7);
7096
7159
  return t === null ? new Date(e).toLocaleDateString(void 0, {
7097
7160
  month: "short",
7098
7161
  day: "numeric",
@@ -7112,34 +7175,34 @@ var Mc = {
7112
7175
  disabled: !u.value,
7113
7176
  title: j(a).snapshotHistory.olderSnapshot,
7114
7177
  onClick: M(p, ["stop"])
7115
- }, [V(j(oi), {
7178
+ }, [V(j(li), {
7116
7179
  size: 14,
7117
7180
  "stroke-width": 2
7118
- })], 8, _u),
7181
+ })], 8, bu),
7119
7182
  I("button", {
7120
7183
  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)]",
7121
7184
  title: j(a).snapshotHistory.tooltip,
7122
7185
  onClick: M(m, ["stop"])
7123
- }, [V(j(di), {
7186
+ }, [V(j(mi), {
7124
7187
  size: 16,
7125
7188
  "stroke-width": 1.5
7126
- }), V(j(ai), {
7189
+ }), V(j(ci), {
7127
7190
  class: F(["tpl:transition-transform tpl:duration-150", { "tpl:rotate-180": o.value }]),
7128
7191
  size: 10,
7129
7192
  "stroke-width": 2
7130
- }, null, 8, ["class"])], 8, vu),
7193
+ }, null, 8, ["class"])], 8, xu),
7131
7194
  V(ie, { name: "tpl-dropdown" }, {
7132
- default: b(() => [o.value ? (f(), k("div", yu, [I("div", bu, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", xu, [V(j(Ci), {
7195
+ default: b(() => [o.value ? (f(), k("div", Su, [I("div", Cu, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", wu, [V(j(Ei), {
7133
7196
  class: "tpl:animate-spin tpl:text-[var(--tpl-primary)]",
7134
7197
  size: 20,
7135
7198
  "stroke-width": 2
7136
- })])) : e.snapshots.length === 0 ? (f(), k("div", Su, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", Cu, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
7199
+ })])) : e.snapshots.length === 0 ? (f(), k("div", Tu, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", Eu, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
7137
7200
  key: t.id,
7138
7201
  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)]",
7139
7202
  style: { "background-color": "transparent" },
7140
7203
  disabled: e.isRestoring,
7141
7204
  onClick: (e) => g(t.id)
7142
- }, [I("div", Tu, [I("div", Eu, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", Du, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, wu))), 128))]))])) : A("", !0)]),
7205
+ }, [I("div", Ou, [I("div", ku, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", Au, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, Du))), 128))]))])) : A("", !0)]),
7143
7206
  _: 1
7144
7207
  }),
7145
7208
  I("button", {
@@ -7147,74 +7210,74 @@ var Mc = {
7147
7210
  disabled: !l.value,
7148
7211
  title: j(a).snapshotHistory.newerSnapshot,
7149
7212
  onClick: M(d, ["stop"])
7150
- }, [V(j(si), {
7213
+ }, [V(j(ui), {
7151
7214
  size: 14,
7152
7215
  "stroke-width": 2
7153
- })], 8, Ou)
7216
+ })], 8, ju)
7154
7217
  ], 512));
7155
7218
  }
7156
- }), Au = /* @__PURE__ */ e({ default: () => ju }), ju = ku;
7219
+ }), Nu = /* @__PURE__ */ e({ default: () => Pu }), Pu = Mu;
7157
7220
  //#endregion
7158
7221
  //#region src/cloud/utils/scoringStyles.ts
7159
- function Mu(e) {
7222
+ function Fu(e) {
7160
7223
  return e >= 80 ? "var(--tpl-success)" : e >= 60 ? "var(--tpl-warning)" : "var(--tpl-danger)";
7161
7224
  }
7162
- function Nu(e) {
7225
+ function Iu(e) {
7163
7226
  return e >= 80 ? "var(--tpl-success-light)" : e >= 60 ? "var(--tpl-warning-light)" : "var(--tpl-danger-light)";
7164
7227
  }
7165
- function Pu(e) {
7228
+ function Lu(e) {
7166
7229
  return e === "high" ? "var(--tpl-danger)" : e === "medium" ? "var(--tpl-warning)" : "var(--tpl-text-muted)";
7167
7230
  }
7168
- function Fu(e) {
7231
+ function Ru(e) {
7169
7232
  return e === "high" ? "var(--tpl-danger-light)" : e === "medium" ? "var(--tpl-warning-light)" : "var(--tpl-bg-hover)";
7170
7233
  }
7171
7234
  //#endregion
7172
7235
  //#region src/cloud/components/TemplateScoringPanel.vue?vue&type=script&setup=true&lang.ts
7173
- var Iu = {
7236
+ var zu = {
7174
7237
  key: 0,
7175
7238
  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)]"
7176
- }, Lu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Ru = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, zu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Bu = ["title"], Vu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Hu = {
7239
+ }, Bu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Vu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Hu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Uu = ["title"], Wu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Gu = {
7177
7240
  key: 0,
7178
7241
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7179
- }, Uu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Wu = {
7242
+ }, Ku = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, qu = {
7180
7243
  key: 1,
7181
7244
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7182
- }, Gu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ku = {
7245
+ }, Ju = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Yu = {
7183
7246
  key: 2,
7184
7247
  class: "tpl:flex tpl:flex-col tpl:gap-4"
7185
- }, qu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Ju = {
7248
+ }, Xu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Zu = {
7186
7249
  key: 0,
7187
7250
  class: "tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
7188
- }, Yu = {
7251
+ }, Qu = {
7189
7252
  key: 0,
7190
7253
  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)]"
7191
- }, Xu = ["onClick"], Zu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Qu = {
7254
+ }, $u = ["onClick"], ed = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, td = {
7192
7255
  key: 0,
7193
7256
  class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
7194
- }, $u = {
7257
+ }, nd = {
7195
7258
  key: 0,
7196
7259
  class: "tpl:border-t tpl:border-[var(--tpl-border)]"
7197
- }, ed = {
7260
+ }, rd = {
7198
7261
  key: 0,
7199
7262
  class: "tpl:px-3 tpl:py-3 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
7200
- }, td = { class: "tpl:flex tpl:items-start tpl:gap-2" }, nd = { class: "tpl:flex-1 tpl:min-w-0" }, rd = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, id = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, ad = {
7263
+ }, id = { class: "tpl:flex tpl:items-start tpl:gap-2" }, ad = { class: "tpl:flex-1 tpl:min-w-0" }, od = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, sd = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, cd = {
7201
7264
  key: 0,
7202
7265
  class: "tpl:mt-1 tpl:text-[11px] tpl:leading-snug tpl:text-[var(--tpl-text-dim)]"
7203
- }, od = {
7266
+ }, ld = {
7204
7267
  key: 1,
7205
7268
  class: "tpl:mt-2 tpl:flex tpl:justify-center"
7206
- }, sd = ["disabled", "onClick"], cd = {
7269
+ }, ud = ["disabled", "onClick"], dd = {
7207
7270
  key: 0,
7208
7271
  class: "tpl:mt-1.5 tpl:text-[11px] tpl:text-[var(--tpl-danger)]"
7209
- }, ld = {
7272
+ }, fd = {
7210
7273
  key: 3,
7211
7274
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
7212
- }, ud = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, dd = { 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)]" }, fd = /*@__PURE__*/ B({
7275
+ }, pd = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, md = { 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)]" }, hd = /*@__PURE__*/ B({
7213
7276
  __name: "TemplateScoringPanel",
7214
7277
  props: { visible: { type: Boolean } },
7215
7278
  emits: ["close"],
7216
7279
  setup(e, { emit: t }) {
7217
- let n = e, r = t, { t: i } = ra(), a = J(zn, "TemplateScoringPanel"), o = J(yr, "TemplateScoringPanel"), s = v(Qn, []), c = C({
7280
+ let n = e, r = t, { t: i } = oa(), a = J(zn, "TemplateScoringPanel"), o = J(br, "TemplateScoringPanel"), s = v(Qn, []), c = C({
7218
7281
  spam: !0,
7219
7282
  readability: !0,
7220
7283
  accessibility: !0,
@@ -7229,10 +7292,10 @@ var Iu = {
7229
7292
  "accessibility",
7230
7293
  "bestPractices"
7231
7294
  ], p = {
7232
- spam: Pi,
7233
- readability: hi,
7234
- accessibility: Fi,
7235
- bestPractices: Ui
7295
+ spam: Li,
7296
+ readability: vi,
7297
+ accessibility: Ri,
7298
+ bestPractices: Ki
7236
7299
  };
7237
7300
  function m() {
7238
7301
  o.score(a.content.value, s);
@@ -7260,50 +7323,50 @@ var Iu = {
7260
7323
  "leave-from-class": "tpl:translate-x-0",
7261
7324
  "leave-to-class": "tpl:translate-x-full"
7262
7325
  }, {
7263
- default: b(() => [e.visible ? (f(), k("div", Iu, [I("div", Lu, [I("div", Ru, [V(j(Ni), {
7326
+ default: b(() => [e.visible ? (f(), k("div", zu, [I("div", Bu, [I("div", Vu, [V(j(Ii), {
7264
7327
  size: 13,
7265
7328
  "stroke-width": 2
7266
- }), I("span", null, D(j(i).scoring.title), 1)]), I("div", zu, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
7329
+ }), I("span", null, D(j(i).scoring.title), 1)]), I("div", Hu, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
7267
7330
  key: 0,
7268
7331
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7269
7332
  title: j(i).scoring.rescore,
7270
7333
  onClick: n[0] ||= (e) => m()
7271
- }, [V(j(ki), {
7334
+ }, [V(j(Mi), {
7272
7335
  size: 14,
7273
7336
  "stroke-width": 2
7274
- })], 8, Bu)) : A("", !0), I("button", {
7337
+ })], 8, Uu)) : A("", !0), I("button", {
7275
7338
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7276
7339
  onClick: n[1] ||= (e) => r("close")
7277
- }, [V(j(Hi), {
7340
+ }, [V(j(Gi), {
7278
7341
  size: 14,
7279
7342
  "stroke-width": 2
7280
- })])])]), I("div", Vu, [j(o).isScoring.value ? (f(), k("div", Hu, [I("p", Uu, D(j(i).scoring.scoring), 1), V(Zi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", Wu, [
7281
- V(j(li), {
7343
+ })])])]), I("div", Wu, [j(o).isScoring.value ? (f(), k("div", Gu, [I("p", Ku, D(j(i).scoring.scoring), 1), V(ea, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", qu, [
7344
+ V(j(fi), {
7282
7345
  size: 32,
7283
7346
  "stroke-width": 1.5,
7284
7347
  class: "tpl:text-[var(--tpl-danger)]"
7285
7348
  }),
7286
- I("p", Gu, D(j(i).scoring.error), 1),
7349
+ I("p", Ju, D(j(i).scoring.error), 1),
7287
7350
  I("button", {
7288
7351
  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)]",
7289
7352
  onClick: n[2] ||= (e) => m()
7290
- }, [V(j(ki), {
7353
+ }, [V(j(Mi), {
7291
7354
  size: 12,
7292
7355
  "stroke-width": 2
7293
7356
  }), z(" " + D(j(i).scoring.rescore), 1)])
7294
- ])) : j(o).scoringResult.value ? (f(), k("div", Ku, [
7357
+ ])) : j(o).scoringResult.value ? (f(), k("div", Yu, [
7295
7358
  I("div", {
7296
7359
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:p-5",
7297
- style: L({ backgroundColor: j(Nu)(j(o).scoringResult.value.score) })
7360
+ style: L({ backgroundColor: j(Iu)(j(o).scoringResult.value.score) })
7298
7361
  }, [
7299
7362
  I("span", {
7300
7363
  class: "tpl:text-4xl tpl:font-bold tpl:tabular-nums",
7301
- style: L({ color: j(Mu)(j(o).scoringResult.value.score) })
7364
+ style: L({ color: j(Fu)(j(o).scoringResult.value.score) })
7302
7365
  }, D(j(o).scoringResult.value.score), 5),
7303
- I("span", qu, D(j(i).scoring.overallScore), 1),
7304
- _() > 0 ? (f(), k("span", Ju, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7366
+ I("span", Xu, D(j(i).scoring.overallScore), 1),
7367
+ _() > 0 ? (f(), k("span", Zu, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7305
7368
  ], 4),
7306
- j(o).fixError.value ? (f(), k("div", Yu, [V(j(li), {
7369
+ j(o).fixError.value ? (f(), k("div", Qu, [V(j(fi), {
7307
7370
  size: 14,
7308
7371
  "stroke-width": 2,
7309
7372
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7318,74 +7381,74 @@ var Iu = {
7318
7381
  (f(), N(d(p[e]), {
7319
7382
  size: 14,
7320
7383
  "stroke-width": 2,
7321
- style: L({ color: j(Mu)(j(o).scoringResult.value.categories[e].score) })
7384
+ style: L({ color: j(Fu)(j(o).scoringResult.value.categories[e].score) })
7322
7385
  }, null, 8, ["style"])),
7323
- I("span", Zu, D(j(i).scoring.categories[e]), 1),
7386
+ I("span", ed, D(j(i).scoring.categories[e]), 1),
7324
7387
  I("span", {
7325
7388
  class: "tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-semibold tpl:tabular-nums",
7326
7389
  style: L({
7327
- color: j(Mu)(j(o).scoringResult.value.categories[e].score),
7328
- backgroundColor: j(Nu)(j(o).scoringResult.value.categories[e].score)
7390
+ color: j(Fu)(j(o).scoringResult.value.categories[e].score),
7391
+ backgroundColor: j(Iu)(j(o).scoringResult.value.categories[e].score)
7329
7392
  })
7330
7393
  }, D(j(o).scoringResult.value.categories[e].score), 5),
7331
- j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Qu, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7332
- V(j(ai), {
7394
+ j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", td, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7395
+ V(j(ci), {
7333
7396
  size: 12,
7334
7397
  "stroke-width": 2,
7335
7398
  class: F(["tpl:transition-transform tpl:duration-200 tpl:text-[var(--tpl-text-dim)]", c.value[e] ? "tpl:rotate-0" : "tpl:-rotate-90"])
7336
7399
  }, null, 8, ["class"])
7337
- ], 8, Xu), c.value[e] ? (f(), k("div", $u, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", ed, 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", {
7400
+ ], 8, $u), c.value[e] ? (f(), k("div", nd, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", rd, 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", {
7338
7401
  key: e.id,
7339
7402
  class: "tpl:border-t tpl:px-3 tpl:py-2.5 first:tpl:border-t-0 tpl:border-[var(--tpl-border-light)]"
7340
- }, [I("div", td, [(f(), N(d(j(e.severity === "high" ? li : e.severity === "medium" ? Ri : Si)), {
7403
+ }, [I("div", id, [(f(), N(d(j(e.severity === "high" ? fi : e.severity === "medium" ? Vi : Ti)), {
7341
7404
  size: 13,
7342
7405
  "stroke-width": 2,
7343
7406
  class: "tpl:mt-0.5 tpl:shrink-0",
7344
- style: L({ color: j(Pu)(e.severity) })
7345
- }, null, 8, ["style"])), I("div", nd, [
7346
- I("div", rd, [I("span", {
7407
+ style: L({ color: j(Lu)(e.severity) })
7408
+ }, null, 8, ["style"])), I("div", ad, [
7409
+ I("div", od, [I("span", {
7347
7410
  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",
7348
7411
  style: L({
7349
- color: j(Pu)(e.severity),
7350
- backgroundColor: j(Fu)(e.severity)
7412
+ color: j(Lu)(e.severity),
7413
+ backgroundColor: j(Ru)(e.severity)
7351
7414
  })
7352
- }, D(j(i).scoring.severity[e.severity]), 5), I("span", id, D(e.message), 1)]),
7353
- e.suggestion ? (f(), k("p", ad, D(e.suggestion), 1)) : A("", !0),
7354
- e.blockId ? (f(), k("div", od, [I("button", {
7415
+ }, D(j(i).scoring.severity[e.severity]), 5), I("span", sd, D(e.message), 1)]),
7416
+ e.suggestion ? (f(), k("p", cd, D(e.suggestion), 1)) : A("", !0),
7417
+ e.blockId ? (f(), k("div", ld, [I("button", {
7355
7418
  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)]",
7356
7419
  style: { "background-color": "transparent" },
7357
7420
  disabled: j(o).fixingFindingId.value !== null,
7358
7421
  onClick: (t) => g(e)
7359
- }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(Ci), {
7422
+ }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(Ei), {
7360
7423
  key: 0,
7361
7424
  class: "tpl-spinner",
7362
7425
  size: 11,
7363
7426
  "stroke-width": 2
7364
- })) : (f(), N(j(Fi), {
7427
+ })) : (f(), N(j(Ri), {
7365
7428
  key: 1,
7366
7429
  size: 11,
7367
7430
  "stroke-width": 2
7368
- })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, sd), j(o).fixError.value ? (f(), k("p", cd, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7431
+ })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, ud), j(o).fixError.value ? (f(), k("p", dd, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7369
7432
  ])])]))), 128))])) : A("", !0)])), 64))
7370
- ])) : (f(), k("div", ld, [V(j(Ni), {
7433
+ ])) : (f(), k("div", fd, [V(j(Ii), {
7371
7434
  size: 32,
7372
7435
  "stroke-width": 1.5,
7373
7436
  class: "tpl:text-[var(--tpl-text-dim)]"
7374
- }), I("p", ud, D(j(i).scoring.emptyState), 1)])), I("p", dd, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7437
+ }), I("p", pd, D(j(i).scoring.emptyState), 1)])), I("p", md, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7375
7438
  _: 1
7376
7439
  }));
7377
7440
  }
7378
- }), pd = /* @__PURE__ */ e({ default: () => md }), md = /*#__PURE__*/ qi(fd, [["__scopeId", "data-v-c23c73d4"]]), hd = ["aria-busy"], gd = {
7441
+ }), gd = /* @__PURE__ */ e({ default: () => _d }), _d = /*#__PURE__*/ Xi(hd, [["__scopeId", "data-v-c23c73d4"]]), vd = ["aria-busy"], yd = {
7379
7442
  id: "tpl-test-email-title",
7380
7443
  class: "tpl:mb-4 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
7381
- }, _d = { class: "tpl:mb-3" }, vd = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, yd = ["value"], bd = ["disabled"], xd = ["value"], Sd = {
7444
+ }, bd = { class: "tpl:mb-3" }, xd = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Sd = ["value"], Cd = ["disabled"], wd = ["value"], Td = {
7382
7445
  key: 0,
7383
7446
  role: "alert",
7384
7447
  class: "tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-danger)]"
7385
- }, Cd = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, wd = ["disabled"], Td = ["disabled"], Ed = {
7448
+ }, Ed = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Dd = ["disabled"], Od = ["disabled"], kd = {
7386
7449
  key: 0,
7387
7450
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
7388
- }, Dd = { key: 1 }, Od = /*@__PURE__*/ B({
7451
+ }, Ad = { key: 1 }, jd = /*@__PURE__*/ B({
7389
7452
  __name: "TestEmailModal",
7390
7453
  props: {
7391
7454
  visible: { type: Boolean },
@@ -7395,7 +7458,7 @@ var Iu = {
7395
7458
  },
7396
7459
  emits: ["send", "close"],
7397
7460
  setup(e, { emit: t }) {
7398
- let n = e, r = t, { t: i } = ra(), a = C("");
7461
+ let n = e, r = t, { t: i } = oa(), a = C("");
7399
7462
  H(() => n.visible, (e) => {
7400
7463
  e && (a.value = n.allowedEmails[0] ?? "");
7401
7464
  });
@@ -7408,7 +7471,7 @@ var Iu = {
7408
7471
  function l(e) {
7409
7472
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), o()), e.key === "Escape" && s();
7410
7473
  }
7411
- return (t, n) => (f(), N(gs, {
7474
+ return (t, n) => (f(), N(ys, {
7412
7475
  visible: e.visible,
7413
7476
  onClose: s,
7414
7477
  onKeydown: l
@@ -7424,14 +7487,14 @@ var Iu = {
7424
7487
  "box-shadow": "var(--tpl-shadow-xl)"
7425
7488
  }
7426
7489
  }, [
7427
- I("h3", gd, D(j(i).testEmail.title), 1),
7428
- I("div", _d, [I("label", vd, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7490
+ I("h3", yd, D(j(i).testEmail.title), 1),
7491
+ I("div", bd, [I("label", xd, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7429
7492
  key: 0,
7430
7493
  type: "text",
7431
7494
  value: a.value,
7432
7495
  disabled: "",
7433
7496
  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)]"
7434
- }, null, 8, yd)) : c((f(), k("select", {
7497
+ }, null, 8, Sd)) : c((f(), k("select", {
7435
7498
  key: 1,
7436
7499
  "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
7437
7500
  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)]",
@@ -7439,29 +7502,29 @@ var Iu = {
7439
7502
  }, [(f(!0), k(R, null, h(e.allowedEmails, (e) => (f(), k("option", {
7440
7503
  key: e,
7441
7504
  value: e
7442
- }, D(e), 9, xd))), 128))], 8, bd)), [[w, a.value]])]),
7443
- e.error ? (f(), k("p", Sd, D(e.error), 1)) : A("", !0),
7444
- I("div", Cd, [I("button", {
7505
+ }, D(e), 9, wd))), 128))], 8, Cd)), [[w, a.value]])]),
7506
+ e.error ? (f(), k("p", Td, D(e.error), 1)) : A("", !0),
7507
+ I("div", Ed, [I("button", {
7445
7508
  type: "button",
7446
7509
  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 }]),
7447
7510
  disabled: e.isSending,
7448
7511
  onClick: s
7449
- }, D(j(i).testEmail.cancel), 11, wd), I("button", {
7512
+ }, D(j(i).testEmail.cancel), 11, Dd), I("button", {
7450
7513
  type: "button",
7451
7514
  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)]",
7452
7515
  disabled: !a.value || e.isSending,
7453
7516
  onClick: o
7454
- }, [e.isSending ? (f(), k("span", Ed, [V(j(Ci), {
7517
+ }, [e.isSending ? (f(), k("span", kd, [V(j(Ei), {
7455
7518
  class: "tpl:animate-spin",
7456
7519
  size: 12,
7457
7520
  "stroke-width": 2
7458
- }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", Dd, D(j(i).testEmail.send), 1))], 8, Td)])
7459
- ], 8, hd)]),
7521
+ }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", Ad, D(j(i).testEmail.send), 1))], 8, Od)])
7522
+ ], 8, vd)]),
7460
7523
  _: 1
7461
7524
  }, 8, ["visible"]));
7462
7525
  }
7463
- }), kd = /* @__PURE__ */ e({ default: () => Ad }), Ad = Od;
7526
+ }), Md = /* @__PURE__ */ e({ default: () => Nd }), Nd = jd;
7464
7527
  //#endregion
7465
- export { ha as $, fe as $n, zn as $t, fs as A, mt as An, fi as At, ho as B, be as Bn, Y as Bt, ws as C, Lt as Cn, Ci as Ct, vs as D, Ct as Dn, hi as Dt, _s as E, xt as En, bi as Et, Lo as F, st as Fn, ii as Ft, Va as G, he as Gn, qn as Gt, io as H, ve as Hn, lr as Ht, No as I, W as In, X as It, Ma as J, Ee as Jn, _r as Jt, za as K, Se as Kn, ur as Kt, jo as L, We as Ln, Kr as Lt, Xo as M, ut as Mn, li as Mt, qo as N, lt as Nn, si as Nt, gs as O, yt as On, mi as Ot, Bo as P, ct as Pn, ai as Pt, _a as Q, de as Qn, cr as Qt, _o as R, ye as Rn, Mr as Rt, Ts as S, un as Sn, wi as St, Z as T, dt as Tn, xi as Tt, ro as U, Te as Un, hr as Ut, ao as V, we as Vn, gr as Vt, $a as W, _e as Wn, Kn as Wt, xa as X, xe as Xn, Jn as Xt, Aa as Y, ge as Yn, Hn as Yt, ya as Z, pe as Zn, Zn as Zt, Ls as _, Nn as _n, Mi as _t, Bl as a, Yn as an, na as at, Ns as b, an as bn, Ei as bt, ec as c, fr as cn, qi as ct, qs as d, Gn as dn, Bi as dt, Un as en, ue as er, da as et, Ks as f, J as fn, Ri as ft, Hs as g, q as gn, Ni as gt, Us as h, Dn as hn, Fi as ht, hu as i, sr as in, ia as it, ns as j, St as jn, di as jt, ms as k, ht as kn, pi as kt, Ys as l, Wn as ln, Ki as lt, Ws as m, En as mn, Ii as mt, pd as n, nr as nn, oa as nt, Ec as o, vr as on, ra as ot, Gs as p, vn as pn, Li as pt, Ra as q, Ce as qn, br as qt, Au as r, $n as rn, aa as rt, tc as s, yr as sn, ea as st, kd as t, ar as tn, ua as tt, Js as u, Rn as un, Hi as ut, Is as v, An as vn, ji as vt, $ as w, Ot as wn, Si as wt, ks as x, ln as xn, Ti as xt, Ps as y, on as yn, ki as yt, go as z, De as zn, Tr as zt };
7528
+ export { va as $, fe as $n, zn as $t, hs as A, mt as An, hi as At, vo as B, be as Bn, Y as Bt, Ds as C, Lt as Cn, Ei as Ct, xs as D, Ct as Dn, vi as Dt, bs as E, xt as En, Ci as Et, Bo as F, st as Fn, si as Ft, Wa as G, he as Gn, qn as Gt, so as H, ve as Hn, ur as Ht, Io as I, W as In, X as It, Fa as J, Ee as Jn, vr as Jt, Ha as K, Se as Kn, dr as Kt, Po as L, We as Ln, Yr as Lt, $o as M, ut as Mn, fi as Mt, Xo as N, lt as Nn, ui as Nt, ys as O, yt as On, _i as Ot, Uo as P, ct as Pn, ci as Pt, ba as Q, de as Qn, lr as Qt, bo as R, ye as Rn, Fr as Rt, Os as S, un as Sn, Di as St, Z as T, dt as Tn, wi as Tt, oo as U, Te as Un, gr as Ut, co as V, we as Vn, _r as Vt, no as W, _e as Wn, Kn as Wt, wa as X, xe as Xn, Jn as Xt, Na as Y, ge as Yn, Hn as Yt, Sa as Z, pe as Zn, Zn as Zt, Bs as _, Nn as _n, Fi as _t, Ul as a, Yn as an, aa as at, Is as b, an as bn, ki as bt, rc as c, pr as cn, Xi as ct, Xs as d, Gn as dn, Ui as dt, Un as en, ue as er, ma as et, Ys as f, J as fn, Vi as ft, Gs as g, q as gn, Ii as gt, Ks as h, Dn as hn, Ri as ht, vu as i, sr as in, sa as it, as as j, St as jn, mi as jt, _s as k, ht as kn, gi as kt, Qs as l, Wn as ln, Yi as lt, qs as m, En as mn, zi as mt, gd as n, nr as nn, la as nt, kc as o, yr as on, oa as ot, Js as p, vn as pn, Bi as pt, Va as q, Ce as qn, xr as qt, Nu as r, $n as rn, ca as rt, ic as s, br as sn, ra as st, Md as t, ar as tn, pa as tt, Zs as u, Rn as un, Gi as ut, zs as v, An as vn, Pi as vt, $ as w, Ot as wn, Ti as wt, Ms as x, ln as xn, Oi as xt, Ls as y, on as yn, Mi as yt, yo as z, De as zn, Or as zt };
7466
7529
 
7467
- //# sourceMappingURL=features-DLu_D-6j.js.map
7530
+ //# sourceMappingURL=features-HBwOEo4D.js.map