@templatical/editor 0.5.0 → 0.5.1

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 (76) hide show
  1. package/dist/{AiFeatureMenu-vatvCD-m.js → AiFeatureMenu-D7Od4cI2.js} +1 -1
  2. package/dist/{CloudEditor-Bxe8Jt9u.js → CloudEditor-DG8fWnXI.js} +4 -4
  3. package/dist/{CollaboratorBar-Dv7VT09N.js → CollaboratorBar-BdXfCYAr.js} +1 -1
  4. package/dist/{ModuleBrowserModal-DAnqdlyq.js → ModuleBrowserModal-DpMInJoP.js} +4 -4
  5. package/dist/{ModulePreviewCanvas-CXApEVEG.js → ModulePreviewCanvas-MjIGlxVI.js} +1 -1
  6. package/dist/{ParagraphEditor-Bjdakcoz.js → ParagraphEditor-B5qZL5c2.js} +7 -7
  7. package/dist/{SaveModuleDialog-CZXltahx.js → SaveModuleDialog-BGFYMJby.js} +2 -2
  8. package/dist/{SnapshotHistory-OqEkaA0W.js → SnapshotHistory-4aWE_-GM.js} +1 -1
  9. package/dist/{TestEmailModal-CvEK6MTy.js → TestEmailModal-p-iH28wl.js} +2 -2
  10. package/dist/{TitleEditor-CxCD70Bs.js → TitleEditor-BHxJ6Oxd.js} +3 -3
  11. package/dist/{TplModal-C2Hoz1it.js → TplModal-BiUCSfou.js} +1 -1
  12. package/dist/{blockTypeIcons-DpJa9awv.js → blockTypeIcons-8GJD96Tw.js} +1 -1
  13. package/dist/bundle-stats.json +6 -6
  14. package/dist/cdn/chunks/{AiFeatureMenu-BggCm6wN.js → AiFeatureMenu-DSXAYiMk.js} +2 -2
  15. package/dist/cdn/chunks/{AiFeatureMenu-BggCm6wN.js.map → AiFeatureMenu-DSXAYiMk.js.map} +1 -1
  16. package/dist/cdn/chunks/{CloudEditor-CTNhzoZ1.js → CloudEditor-CRYF-bR3.js} +6 -6
  17. package/dist/cdn/chunks/{CloudEditor-CTNhzoZ1.js.map → CloudEditor-CRYF-bR3.js.map} +1 -1
  18. package/dist/cdn/chunks/{CollaboratorBar-De-3lvDy.js → CollaboratorBar-CTFgLtUt.js} +3 -3
  19. package/dist/cdn/chunks/{CollaboratorBar-De-3lvDy.js.map → CollaboratorBar-CTFgLtUt.js.map} +1 -1
  20. package/dist/cdn/chunks/{CountdownBlock-CUAl8R-c.js → CountdownBlock-BKg-e3Uo.js} +2 -2
  21. package/dist/cdn/chunks/{CountdownBlock-CUAl8R-c.js.map → CountdownBlock-BKg-e3Uo.js.map} +1 -1
  22. package/dist/cdn/chunks/{CountdownToolbar-3zLcGAcb.js → CountdownToolbar-CPAOXOwI.js} +3 -3
  23. package/dist/cdn/chunks/{CountdownToolbar-3zLcGAcb.js.map → CountdownToolbar-CPAOXOwI.js.map} +1 -1
  24. package/dist/cdn/chunks/{ModuleBrowserModal-CxICY31A.js → ModuleBrowserModal-B70ZM4KG.js} +5 -5
  25. package/dist/cdn/chunks/{ModuleBrowserModal-CxICY31A.js.map → ModuleBrowserModal-B70ZM4KG.js.map} +1 -1
  26. package/dist/cdn/chunks/{ModulePreviewCanvas-Cv0zciNS.js → ModulePreviewCanvas-VHhQwuFP.js} +2 -2
  27. package/dist/cdn/chunks/{ModulePreviewCanvas-Cv0zciNS.js.map → ModulePreviewCanvas-VHhQwuFP.js.map} +1 -1
  28. package/dist/cdn/chunks/{NumberWithSuffix-BaVxnNI4.js → NumberWithSuffix-DnqYqSKs.js} +2 -2
  29. package/dist/cdn/chunks/{NumberWithSuffix-BaVxnNI4.js.map → NumberWithSuffix-DnqYqSKs.js.map} +1 -1
  30. package/dist/cdn/chunks/{ParagraphEditor-BrzlI8vp.js → ParagraphEditor-oVEaeerJ.js} +21 -21
  31. package/dist/cdn/chunks/ParagraphEditor-oVEaeerJ.js.map +1 -0
  32. package/dist/cdn/chunks/{RichTextEditorContent-9vq4MRDp.js → RichTextEditorContent-CmOwLOeY.js} +2 -2
  33. package/dist/cdn/chunks/{RichTextEditorContent-9vq4MRDp.js.map → RichTextEditorContent-CmOwLOeY.js.map} +1 -1
  34. package/dist/cdn/chunks/{SaveModuleDialog-Lco3k1xX.js → SaveModuleDialog-B6kNizps.js} +2 -2
  35. package/dist/cdn/chunks/{SaveModuleDialog-Lco3k1xX.js.map → SaveModuleDialog-B6kNizps.js.map} +1 -1
  36. package/dist/cdn/chunks/{TitleEditor-BiiEtH7x.js → TitleEditor-CvZe3neh.js} +9 -9
  37. package/dist/cdn/chunks/TitleEditor-CvZe3neh.js.map +1 -0
  38. package/dist/cdn/chunks/{blockTypeIcons-DWhn7E7O.js → blockTypeIcons-Bs9B-yft.js} +3 -3
  39. package/dist/cdn/chunks/{blockTypeIcons-DWhn7E7O.js.map → blockTypeIcons-Bs9B-yft.js.map} +1 -1
  40. package/dist/cdn/chunks/{de-DEg-6TsA.js → de-BSWt7lYu.js} +4 -4
  41. package/dist/cdn/chunks/de-BSWt7lYu.js.map +1 -0
  42. package/dist/cdn/chunks/{dist-DFfcnJJB.js → dist-MGrg9tLo.js} +2 -2
  43. package/dist/cdn/chunks/{dist-DFfcnJJB.js.map → dist-MGrg9tLo.js.map} +1 -1
  44. package/dist/cdn/chunks/{en-DpHxxBnH.js → en-9-vIGlc7.js} +4 -4
  45. package/dist/cdn/chunks/en-9-vIGlc7.js.map +1 -0
  46. package/dist/cdn/chunks/{extensions-C6oPJqKD.js → extensions-D13MqxlW.js} +16 -7
  47. package/dist/cdn/chunks/{extensions-C6oPJqKD.js.map → extensions-D13MqxlW.js.map} +1 -1
  48. package/dist/cdn/chunks/{features-DV4PhoBs.js → features-BnG-dhzy.js} +18 -15
  49. package/dist/cdn/chunks/{features-DV4PhoBs.js.map → features-BnG-dhzy.js.map} +1 -1
  50. package/dist/cdn/chunks/{icons-LJ8U8lWI.js → icons-B_185qj_.js} +2 -2
  51. package/dist/cdn/chunks/{icons-LJ8U8lWI.js.map → icons-B_185qj_.js.map} +1 -1
  52. package/dist/cdn/chunks/{media-library-CWQAvfov.js → media-library-DxpFw4Tt.js} +3 -3
  53. package/dist/cdn/chunks/{media-library-CWQAvfov.js.map → media-library-DxpFw4Tt.js.map} +1 -1
  54. package/dist/cdn/chunks/{src-CVBDXDBH.js → src-Cw7KAyui.js} +4 -4
  55. package/dist/cdn/chunks/{src-CVBDXDBH.js.map → src-Cw7KAyui.js.map} +1 -1
  56. package/dist/cdn/chunks/{styles-CFnn-xE6.js → styles-DYDpAUsJ.js} +12 -12
  57. package/dist/cdn/chunks/styles-DYDpAUsJ.js.map +1 -0
  58. package/dist/cdn/chunks/{tiptap-kGWe8qnA.js → tiptap-CPAwPMop.js} +2 -2
  59. package/dist/cdn/chunks/{tiptap-kGWe8qnA.js.map → tiptap-CPAwPMop.js.map} +1 -1
  60. package/dist/cdn/editor.css +1 -1
  61. package/dist/cdn/editor.js +7 -7
  62. package/dist/{de-tDioEErp.js → de-DwLWZn6p.js} +3 -3
  63. package/dist/{en-W2p7oPaa.js → en-BrlGVpmd.js} +3 -3
  64. package/dist/{extensions-BQjnrlGT.js → extensions-Cmf6XVn9.js} +14 -5
  65. package/dist/index.d.ts +10 -10
  66. package/dist/style.css +1 -1
  67. package/dist/{styles-CdrFC7-K.js → styles-C-FrkTA9.js} +8 -8
  68. package/dist/templatical-editor.js +5 -5
  69. package/dist/{useEditorCore-JdLcaPeJ.js → useEditorCore-D0uZbPKG.js} +1717 -1714
  70. package/dist/{useMergeTag-BfFykpYl.js → useMergeTag-CEE4CG-D.js} +1 -1
  71. package/package.json +5 -5
  72. package/dist/cdn/chunks/ParagraphEditor-BrzlI8vp.js.map +0 -1
  73. package/dist/cdn/chunks/TitleEditor-BiiEtH7x.js.map +0 -1
  74. package/dist/cdn/chunks/de-DEg-6TsA.js.map +0 -1
  75. package/dist/cdn/chunks/en-DpHxxBnH.js.map +0 -1
  76. package/dist/cdn/chunks/styles-CFnn-xE6.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { L as e, M as t, Mt as n, Ot as r, P as i, S as a, _ as o, d as s, h as c, m as l, p as u } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { D as d, t as f } from "./keys-BeW4IrXP.js";
4
4
  import { t as p } from "./_plugin-vue_export-helper-GRmvIR5A.js";
5
5
  import { t as m } from "./image-up-10kxuulB.js";
@@ -1,14 +1,14 @@
1
1
  import { A as e, Dt as t, H as n, M as r, Mt as i, N as a, Ot as o, P as s, Q as c, S as l, V as u, Y as d, _ as f, b as p, c as m, d as h, et as g, g as _, h as v, it as y, j as b, m as x, p as S, t as C, u as w, v as T, x as E, y as D, z as O } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
2
  import { t as k } from "./timeouts-BSGxjuUF.js";
3
3
  import { E as A, i as j } from "./dist-e0ylhlSV.js";
4
- import { P as M, S as N, t as P } from "./useEditorCore-JdLcaPeJ.js";
4
+ import { P as M, S as N, t as P } from "./useEditorCore-D0uZbPKG.js";
5
5
  import { s as F, t as I } from "./dist-CuyhAnuE.js";
6
6
  import { C as L, S as R, b as z, c as B, l as ee, r as te, s as V, t as H } from "./keys-BeW4IrXP.js";
7
7
  import { t as U } from "./useI18n-Jp3X6Q0t.js";
8
8
  import { n as W, t as G } from "./_plugin-vue_export-helper-GRmvIR5A.js";
9
9
  import { t as K } from "./check-Om8IxvJb.js";
10
10
  import { t as q } from "./circle-alert-De74azaX.js";
11
- import { a as J, c as ne, i as Y, n as X, o as re, r as ie, s as ae, t as oe } from "./styles-CdrFC7-K.js";
11
+ import { a as J, c as ne, i as Y, n as X, o as re, r as ie, s as ae, t as oe } from "./styles-C-FrkTA9.js";
12
12
  import { t as Z } from "./clock-Dr7rX_PG.js";
13
13
  import { t as se } from "./loader-circle-IS16T05j.js";
14
14
  import { t as ce } from "./message-circle-3R472hDc.js";
@@ -512,7 +512,7 @@ var Le = {
512
512
  },
513
513
  emits: ["save"],
514
514
  setup(e) {
515
- let n = E(() => import("./CollaboratorBar-Dv7VT09N.js")), a = E(() => import("./SnapshotHistory-OqEkaA0W.js")), s = E(() => import("./AiFeatureMenu-vatvCD-m.js")), { t: c, format: l } = Q();
515
+ let n = E(() => import("./CollaboratorBar-BdXfCYAr.js")), a = E(() => import("./SnapshotHistory-4aWE_-GM.js")), s = E(() => import("./AiFeatureMenu-D7Od4cI2.js")), { t: c, format: l } = Q();
516
516
  return (d, m) => (r(), f("header", Le, [
517
517
  x("div", Re, [e.featureFlags.templateLimit.value === null ? _("", !0) : (r(), f("span", ze, i(y(l)(y(c).header.templatesUsed, {
518
518
  used: e.featureFlags.templateCount.value,
@@ -674,7 +674,7 @@ var Le = {
674
674
  "module-insert"
675
675
  ],
676
676
  setup(e, { expose: t, emit: n }) {
677
- let i = E(() => import("./AiChatSidebar-Cg206ewI.js")), a = E(() => import("./CommentsSidebar-BAma2apG.js")), o = E(() => import("./DesignReferenceSidebar-B8DDnLHQ.js")), s = E(() => import("./TemplateScoringPanel-BmAHdgLF.js")), l = E(() => import("./TestEmailModal-CvEK6MTy.js")), u = E(() => import("./SaveModuleDialog-CZXltahx.js")), d = E(() => import("./ModuleBrowserModal-DAnqdlyq.js")), m = E(async () => (await import("@templatical/media-library")).MediaLibraryModal), g = n;
677
+ let i = E(() => import("./AiChatSidebar-Cg206ewI.js")), a = E(() => import("./CommentsSidebar-BAma2apG.js")), o = E(() => import("./DesignReferenceSidebar-B8DDnLHQ.js")), s = E(() => import("./TemplateScoringPanel-BmAHdgLF.js")), l = E(() => import("./TestEmailModal-p-iH28wl.js")), u = E(() => import("./SaveModuleDialog-BGFYMJby.js")), d = E(() => import("./ModuleBrowserModal-DpMInJoP.js")), m = E(async () => (await import("@templatical/media-library")).MediaLibraryModal), g = n;
678
678
  function b(e, t, n) {
679
679
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
680
680
  }
@@ -1,5 +1,5 @@
1
1
  import { M as e, Mt as t, Ot as n, P as r, S as i, _ as a, d as o, g as s, h as c, it as l, m as u, p as d } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { n as f } from "./_plugin-vue_export-helper-GRmvIR5A.js";
4
4
  import { n as p } from "./useCloudI18n-D0Fi0hBU.js";
5
5
  import { t as m } from "./readableTextColor-Uc7ntzXo.js";
@@ -1,13 +1,13 @@
1
1
  import { H as e, L as t, M as n, Mt as r, Ot as i, P as a, Q as o, S as s, V as ee, _ as c, b as l, d as u, g as te, h as d, it as f, m as p, o as ne, p as m, s as re, u as h, x as ie, z as ae } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { D as g, S as oe, p as se } from "./keys-BeW4IrXP.js";
4
4
  import { t as ce } from "./useI18n-Jp3X6Q0t.js";
5
5
  import { n as _ } from "./_plugin-vue_export-helper-GRmvIR5A.js";
6
- import { n as v, t as y } from "./blockTypeIcons-DpJa9awv.js";
6
+ import { n as v, t as y } from "./blockTypeIcons-8GJD96Tw.js";
7
7
  import { t as le } from "./trash-2-cEVwp-r_.js";
8
8
  import { t as ue } from "./x-BNc1bVzp.js";
9
9
  import { n as de } from "./useCloudI18n-D0Fi0hBU.js";
10
- import { t as fe } from "./TplModal-C2Hoz1it.js";
10
+ import { t as fe } from "./TplModal-BiUCSfou.js";
11
11
  var pe = _("search", [["path", {
12
12
  d: "m21 21-4.34-4.34",
13
13
  key: "14j7rj"
@@ -53,7 +53,7 @@ var pe = _("search", [["path", {
53
53
  props: { visible: { type: Boolean } },
54
54
  emits: ["close", "insert"],
55
55
  setup(s, { emit: _ }) {
56
- let B = s, V = _, Ee = ie(() => import("./ModulePreviewCanvas-CXApEVEG.js")), { t: De } = ce(), { t: H } = de(), U = g(oe, "ModuleBrowserModal"), W = g(se, "ModuleBrowserModal"), G = o(""), K = o(null), q = o(null), J = o("end"), Y = m(() => {
56
+ let B = s, V = _, Ee = ie(() => import("./ModulePreviewCanvas-MjIGlxVI.js")), { t: De } = ce(), { t: H } = de(), U = g(oe, "ModuleBrowserModal"), W = g(se, "ModuleBrowserModal"), G = o(""), K = o(null), q = o(null), J = o("end"), Y = m(() => {
57
57
  let e = U.modules.value;
58
58
  if (!G.value) return e;
59
59
  let t = G.value.toLowerCase();
@@ -1,5 +1,5 @@
1
1
  import { E as e, I as t, L as n, M as r, Ot as i, P as a, S as o, _ as s, d as c, h as l, it as u, m as d, p as f } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import { N as p, _ as m, a as h, f as g, g as _, h as v, i as y, m as b, n as x, p as S, r as C, u as w, v as T, y as E } from "./useEditorCore-JdLcaPeJ.js";
2
+ import { N as p, _ as m, a as h, f as g, g as _, h as v, i as y, m as b, n as x, p as S, r as C, u as w, v as T, y as E } from "./useEditorCore-D0uZbPKG.js";
3
3
  import { o as D } from "./keys-BeW4IrXP.js";
4
4
  //#region src/components/blocks/PreviewSectionBlock.vue?vue&type=script&setup=true&lang.ts
5
5
  var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__PURE__ */ o({
@@ -1,5 +1,5 @@
1
1
  import { Dt as e, E as t, L as n, M as r, Mt as i, Ot as a, P as o, Q as s, S as c, _ as l, b as u, d, f, g as p, h as m, it as h, l as g, m as _, p as v, q as y, u as b, y as x } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import { C as S, b as C, w } from "./useEditorCore-JdLcaPeJ.js";
2
+ import { C as S, b as C, w } from "./useEditorCore-D0uZbPKG.js";
3
3
  import { t as T } from "./dist-CuyhAnuE.js";
4
4
  import { D as E, E as D, m as O, w as k } from "./keys-BeW4IrXP.js";
5
5
  import { t as A } from "./useI18n-Jp3X6Q0t.js";
@@ -294,7 +294,7 @@ var Z = /* @__PURE__ */ M(de, [["render", pe]]), me = [
294
294
  editor: {},
295
295
  toolbarPosition: {},
296
296
  isLoading: { type: Boolean },
297
- mergeTagEnabled: { type: Boolean }
297
+ canRequestMergeTag: { type: Boolean }
298
298
  },
299
299
  emits: ["open-link-dialog", "add-merge-tag"],
300
300
  setup(e, { emit: n }) {
@@ -551,7 +551,7 @@ var Z = /* @__PURE__ */ M(de, [["render", pe]]), me = [
551
551
  }, null, 8, ["icon", "label"]),
552
552
  u(Z),
553
553
  u(le, { onInsert: S }),
554
- e.mergeTagEnabled ? (r(), l(d, { key: 0 }, [u(Z), _("button", {
554
+ e.canRequestMergeTag ? (r(), l(d, { key: 0 }, [u(Z), _("button", {
555
555
  type: "button",
556
556
  class: "tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]",
557
557
  "aria-label": h(y).mergeTag.add,
@@ -575,7 +575,7 @@ var Z = /* @__PURE__ */ M(de, [["render", pe]]), me = [
575
575
  },
576
576
  emits: ["done"],
577
577
  setup(e, { emit: t }) {
578
- let n = e, i = t, { editor: a, EditorContent: o, isLoading: s, initError: c, retry: d, showLinkDialog: f, linkUrl: p, linkDialogRef: m, mergeTagEnabled: g, openLinkDialog: _, insertLink: v, removeLink: b, closeLinkDialog: x, handleLinkKeydown: S, handleAddMergeTag: w } = C({
578
+ let n = e, i = t, { editor: a, EditorContent: o, isLoading: s, initError: c, retry: d, showLinkDialog: f, linkUrl: p, linkDialogRef: m, canRequestMergeTag: g, openLinkDialog: _, insertLink: v, removeLink: b, closeLinkDialog: x, handleLinkKeydown: S, handleAddMergeTag: w } = C({
579
579
  blockId: () => n.block.id,
580
580
  blockContent: () => n.block.content,
581
581
  onDone: () => i("done"),
@@ -593,7 +593,7 @@ var Z = /* @__PURE__ */ M(de, [["render", pe]]), me = [
593
593
  import("./dist--8ZUsIQD.js"),
594
594
  import("./dist-DPsMHsAW.js"),
595
595
  import("./dist-BOSn1353.js"),
596
- import("./extensions-BQjnrlGT.js")
596
+ import("./extensions-Cmf6XVn9.js")
597
597
  ]);
598
598
  return {
599
599
  TiptapEditor: a,
@@ -642,14 +642,14 @@ var Z = /* @__PURE__ */ M(de, [["render", pe]]), me = [
642
642
  editor: h(a),
643
643
  "toolbar-position": e.toolbarPosition,
644
644
  "is-loading": h(s),
645
- "merge-tag-enabled": h(g),
645
+ "can-request-merge-tag": h(g),
646
646
  onOpenLinkDialog: h(_),
647
647
  onAddMergeTag: h(w)
648
648
  }, null, 8, [
649
649
  "editor",
650
650
  "toolbar-position",
651
651
  "is-loading",
652
- "merge-tag-enabled",
652
+ "can-request-merge-tag",
653
653
  "onOpenLinkDialog",
654
654
  "onAddMergeTag"
655
655
  ]),
@@ -1,10 +1,10 @@
1
1
  import { Dt as e, H as t, M as n, Mt as r, Ot as i, P as a, Q as o, S as s, V as c, _ as l, b as u, d, g as f, h as p, it as m, m as h, p as g, s as _, y as v, z as y } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { D as b, S as x, p as S } from "./keys-BeW4IrXP.js";
4
4
  import { t as ee } from "./useI18n-Jp3X6Q0t.js";
5
5
  import { t as te } from "./loader-circle-IS16T05j.js";
6
6
  import { n as ne } from "./useCloudI18n-D0Fi0hBU.js";
7
- import { t as C } from "./TplModal-C2Hoz1it.js";
7
+ import { t as C } from "./TplModal-BiUCSfou.js";
8
8
  //#region src/cloud/components/SaveModuleDialog.vue?vue&type=script&setup=true&lang.ts
9
9
  var w = ["aria-busy"], T = {
10
10
  id: "tpl-save-module-title",
@@ -1,5 +1,5 @@
1
1
  import { Dt as e, M as t, Mt as n, P as r, Q as i, S as a, V as o, _ as s, b as c, d as l, g as u, it as d, m as f, p, t as m, u as h, z as g } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { t as _ } from "./dist-CuyhAnuE.js";
4
4
  import { t as v } from "./useI18n-Jp3X6Q0t.js";
5
5
  import { n as y } from "./_plugin-vue_export-helper-GRmvIR5A.js";
@@ -1,8 +1,8 @@
1
1
  import { Dt as e, H as t, M as n, Mt as r, P as i, Q as a, S as o, V as s, _ as c, b as l, d as u, g as d, h as f, it as p, m, o as h, y as g, z as _ } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import "./useEditorCore-JdLcaPeJ.js";
2
+ import "./useEditorCore-D0uZbPKG.js";
3
3
  import { t as v } from "./loader-circle-IS16T05j.js";
4
4
  import { n as y } from "./useCloudI18n-D0Fi0hBU.js";
5
- import { t as b } from "./TplModal-C2Hoz1it.js";
5
+ import { t as b } from "./TplModal-BiUCSfou.js";
6
6
  //#region src/cloud/components/TestEmailModal.vue?vue&type=script&setup=true&lang.ts
7
7
  var x = ["aria-busy"], S = {
8
8
  id: "tpl-test-email-title",
@@ -1,5 +1,5 @@
1
1
  import { Dt as e, E as t, M as n, Mt as r, Ot as i, S as a, _ as o, b as s, d as c, f as l, g as u, h as d, it as f, m as p, q as m, y as h } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import { b as g } from "./useEditorCore-JdLcaPeJ.js";
2
+ import { b as g } from "./useEditorCore-D0uZbPKG.js";
3
3
  import { E as _, w as v } from "./keys-BeW4IrXP.js";
4
4
  import { t as y } from "./useI18n-Jp3X6Q0t.js";
5
5
  import { a as b, i as x, n as S, r as C, t as w } from "./RichTextEditorContent-jxPxfbfZ.js";
@@ -20,7 +20,7 @@ var ee = { class: "tpl-text-editor-wrapper tpl:relative" }, D = ["data-tpl-theme
20
20
  },
21
21
  emits: ["done"],
22
22
  setup(a, { emit: P }) {
23
- let F = a, I = P, L = t(v, null), R = t(_, null), { t: z } = y(), { editor: B, EditorContent: V, isLoading: H, initError: U, retry: W, showLinkDialog: G, linkUrl: K, linkDialogRef: q, mergeTagEnabled: J, openLinkDialog: Y, insertLink: X, removeLink: Z, closeLinkDialog: Q, handleLinkKeydown: te, handleAddMergeTag: $ } = g({
23
+ let F = a, I = P, L = t(v, null), R = t(_, null), { t: z } = y(), { editor: B, EditorContent: V, isLoading: H, initError: U, retry: W, showLinkDialog: G, linkUrl: K, linkDialogRef: q, canRequestMergeTag: J, openLinkDialog: Y, insertLink: X, removeLink: Z, closeLinkDialog: Q, handleLinkKeydown: te, handleAddMergeTag: $ } = g({
24
24
  blockId: () => F.block.id,
25
25
  blockContent: () => F.block.content,
26
26
  onDone: () => I("done"),
@@ -30,7 +30,7 @@ var ee = { class: "tpl-text-editor-wrapper tpl:relative" }, D = ["data-tpl-theme
30
30
  import("./dist-QoJxR1uP.js").then((e) => e.r),
31
31
  import("./dist-BMMiVjHs.js"),
32
32
  import("./dist--e2w6FN-.js"),
33
- import("./extensions-BQjnrlGT.js")
33
+ import("./extensions-Cmf6XVn9.js")
34
34
  ]);
35
35
  return {
36
36
  TiptapEditor: a,
@@ -1,5 +1,5 @@
1
1
  import { E as e, F as t, M as n, Q as r, S as i, V as a, _ as o, b as s, f as c, g as l, h as u, it as d, m as f, p, t as m, u as h } from "./vue.runtime.esm-bundler-DpvJL-nX.js";
2
- import { w as g } from "./useEditorCore-JdLcaPeJ.js";
2
+ import { w as g } from "./useEditorCore-D0uZbPKG.js";
3
3
  import { E as _ } from "./keys-BeW4IrXP.js";
4
4
  //#region src/cloud/components/TplModal.vue?vue&type=script&setup=true&lang.ts
5
5
  var v = ["data-tpl-theme"], y = /* @__PURE__ */ i({
@@ -1,4 +1,4 @@
1
- import { D as e, E as t, M as n, O as r, k as i } from "./useEditorCore-JdLcaPeJ.js";
1
+ import { D as e, E as t, M as n, O as r, k as i } from "./useEditorCore-D0uZbPKG.js";
2
2
  import { n as a } from "./_plugin-vue_export-helper-GRmvIR5A.js";
3
3
  var o = a("columns-3", [
4
4
  ["rect", {
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "0.5.0",
3
- "initialGzipBytes": 211828,
4
- "initialRawBytes": 717448,
2
+ "version": "0.5.1",
3
+ "initialGzipBytes": 211834,
4
+ "initialRawBytes": 717521,
5
5
  "initialFileCount": 30,
6
- "lazyGzipBytes": 251056,
7
- "lazyRawBytes": 877684,
6
+ "lazyGzipBytes": 251195,
7
+ "lazyRawBytes": 878051,
8
8
  "lazyFileCount": 43,
9
- "generatedAt": "2026-05-04T08:26:40.733Z"
9
+ "generatedAt": "2026-05-05T12:07:02.563Z"
10
10
  }
@@ -1,5 +1,5 @@
1
1
  import { F as e, N as t, R as n, S as r, _ as i, ct as a, d as o, h as s, lt as c, m as l, p as u } from "./draggable-Bcb86AsV.js";
2
- import { $ as d, Nt as f, Qt as p, ct as m, st as h, tt as g, vt as _ } from "./features-DV4PhoBs.js";
2
+ import { $ as d, Nt as f, Qt as p, ct as m, st as h, tt as g, vt as _ } from "./features-BnG-dhzy.js";
3
3
  //#region src/cloud/components/AiFeatureMenu.vue?vue&type=script&setup=true&lang.ts
4
4
  var v = {
5
5
  class: "tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]",
@@ -56,4 +56,4 @@ var v = {
56
56
  //#endregion
57
57
  export { C as default };
58
58
 
59
- //# sourceMappingURL=AiFeatureMenu-BggCm6wN.js.map
59
+ //# sourceMappingURL=AiFeatureMenu-DSXAYiMk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiFeatureMenu-BggCm6wN.js","names":[],"sources":["../../../src/cloud/components/AiFeatureMenu.vue","../../../src/cloud/components/AiFeatureMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAaA,IAAM,IAAO,GAIP,EAAE,GAAG,MAAW,GAAoB,EAEpC,IAAW,EAAc,GAAe,gBAAgB,EAExD,IAAkD;GACtD,WAAW;GACX,oBAAoB;GACpB,SAAS;GACV,EAEK,IAA2D;GAC/D;IAAE,KAAK;IAAW,MAAM;IAAU;GAClC;IAAE,KAAK;IAAoB,MAAM;IAAS;GAC1C;IAAE,KAAK;IAAW,MAAM;IAAa;GACtC,EAEK,IAAW,QACf,EAAY,QAAQ,MAAM,EAAS,iBAAiB,EAAa,EAAE,KAAK,CAAC,CAC1E;EAED,SAAS,EAAS,GAAwB;AAGxC,UAFI,MAAQ,YAAkB,EAAO,OAAO,cACxC,MAAQ,qBAA2B,EAAO,OAAO,mBAC9C,EAAO,OAAO;;EAGvB,SAAS,EAAe,GAAwB;AAG9C,UAFI,MAAQ,YAAkB,EAAO,OAAO,kBACxC,MAAQ,qBAA2B,EAAO,OAAO,uBAC9C,EAAO,OAAO;;yBAKrB,EA0CM,OA1CN,GA0CM,EAAA,EAAA,GAAA,EAtCJ,EAqCS,GAAA,MAAA,EApCW,EAAA,QAAX,YADT,EAqCS,UAAA;GAnCN,KAAK,EAAQ;GACd,OAAM;GACL,OAAK,EAAA,EAAA,iBAAuC,EAAA,kBAAkB,EAAQ,MAAA,6BAAA,eAAA,CAAA;GAMtE,UAAK,MAAE,EAAI,UAAW,EAAQ,IAAG;MAElC,EAcM,OAAA;GAbJ,OAAM;GACL,OAAK,EAAA;qBAA2C,EAAA,kBAAkB,EAAQ,MAAA,uBAAA;WAA8G,EAAA,kBAAkB,EAAQ,MAAA,kBAAA;;YAWnN,EAA6D,EAA7C,EAAQ,KAAI,EAAA;GAAG,MAAM;GAAK,gBAAc;YAE1D,EASM,OATN,GASM,CARJ,EAEO,QAFP,GAEO,EADF,EAAS,EAAQ,IAAG,CAAA,EAAA,EAAA,EAEzB,EAIO,QAJP,GAIO,EADF,EAAe,EAAQ,IAAG,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA"}
1
+ {"version":3,"file":"AiFeatureMenu-DSXAYiMk.js","names":[],"sources":["../../../src/cloud/components/AiFeatureMenu.vue","../../../src/cloud/components/AiFeatureMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAaA,IAAM,IAAO,GAIP,EAAE,GAAG,MAAW,GAAoB,EAEpC,IAAW,EAAc,GAAe,gBAAgB,EAExD,IAAkD;GACtD,WAAW;GACX,oBAAoB;GACpB,SAAS;GACV,EAEK,IAA2D;GAC/D;IAAE,KAAK;IAAW,MAAM;IAAU;GAClC;IAAE,KAAK;IAAoB,MAAM;IAAS;GAC1C;IAAE,KAAK;IAAW,MAAM;IAAa;GACtC,EAEK,IAAW,QACf,EAAY,QAAQ,MAAM,EAAS,iBAAiB,EAAa,EAAE,KAAK,CAAC,CAC1E;EAED,SAAS,EAAS,GAAwB;AAGxC,UAFI,MAAQ,YAAkB,EAAO,OAAO,cACxC,MAAQ,qBAA2B,EAAO,OAAO,mBAC9C,EAAO,OAAO;;EAGvB,SAAS,EAAe,GAAwB;AAG9C,UAFI,MAAQ,YAAkB,EAAO,OAAO,kBACxC,MAAQ,qBAA2B,EAAO,OAAO,uBAC9C,EAAO,OAAO;;yBAKrB,EA0CM,OA1CN,GA0CM,EAAA,EAAA,GAAA,EAtCJ,EAqCS,GAAA,MAAA,EApCW,EAAA,QAAX,YADT,EAqCS,UAAA;GAnCN,KAAK,EAAQ;GACd,OAAM;GACL,OAAK,EAAA,EAAA,iBAAuC,EAAA,kBAAkB,EAAQ,MAAA,6BAAA,eAAA,CAAA;GAMtE,UAAK,MAAE,EAAI,UAAW,EAAQ,IAAG;MAElC,EAcM,OAAA;GAbJ,OAAM;GACL,OAAK,EAAA;qBAA2C,EAAA,kBAAkB,EAAQ,MAAA,uBAAA;WAA8G,EAAA,kBAAkB,EAAQ,MAAA,kBAAA;;YAWnN,EAA6D,EAA7C,EAAQ,KAAI,EAAA;GAAG,MAAM;GAAK,gBAAc;YAE1D,EASM,OATN,GASM,CARJ,EAEO,QAFP,GAEO,EADF,EAAS,EAAQ,IAAG,CAAA,EAAA,EAAA,EAEzB,EAIO,QAJP,GAIO,EADF,EAAe,EAAQ,IAAG,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA"}
@@ -1,7 +1,7 @@
1
1
  import { $ as e, B as t, F as n, H as r, M as i, N as a, P as o, S as s, U as c, X as l, _ as u, at as d, b as f, c as p, ct as m, d as h, g, h as _, j as v, lt as y, m as b, n as x, p as S, st as C, tt as w, u as T, v as E, x as D, y as O } from "./draggable-Bcb86AsV.js";
2
- import { $ as k, $t as A, At as j, Bt as M, C as N, Ct as P, D as F, Dt as I, Ft as ee, Jt as L, Mt as R, Nn as z, Nt as B, Rt as V, S as H, Y as U, Yt as W, _ as G, b as te, bn as K, c as ne, d as re, f as q, g as ie, h as ae, hn as J, ht as Y, k as oe, l as se, m as ce, mt as X, p as Z, qt as le, sn as Q, st as ue, tt as de, u as fe, ut as pe, v as me, wt as he, x as ge, y as _e, zt as ve } from "./features-DV4PhoBs.js";
3
- import { S as ye, x as be } from "./icons-LJ8U8lWI.js";
4
- import { a as xe, i as Se, n as Ce, o as we, r as Te, s as Ee, t as De } from "./styles-CFnn-xE6.js";
2
+ import { $ as k, $t as A, At as j, Bt as M, C as N, Ct as P, D as F, Dt as I, Ft as ee, Jt as L, Mt as R, Nn as z, Nt as B, Rt as V, S as H, Y as U, Yt as W, _ as G, b as te, bn as K, c as ne, d as re, f as q, g as ie, h as ae, hn as J, ht as Y, k as oe, l as se, m as ce, mt as X, p as Z, qt as le, sn as Q, st as ue, tt as de, u as fe, ut as pe, v as me, wt as he, x as ge, y as _e, zt as ve } from "./features-BnG-dhzy.js";
3
+ import { S as ye, x as be } from "./icons-B_185qj_.js";
4
+ import { a as xe, i as Se, n as Ce, o as we, r as Te, s as Ee, t as De } from "./styles-DYDpAUsJ.js";
5
5
  import { d as $ } from "./styleConstants-DP1VOca8.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
7
  function Oe(t) {
@@ -483,7 +483,7 @@ var Ie = {
483
483
  },
484
484
  emits: ["save"],
485
485
  setup(e) {
486
- let t = D(() => import("./CollaboratorBar-De-3lvDy.js")), n = D(() => import("./features-DV4PhoBs.js").then((e) => e.r)), i = D(() => import("./AiFeatureMenu-BggCm6wN.js")), { t: o, format: s } = k();
486
+ let t = D(() => import("./CollaboratorBar-CTFgLtUt.js")), n = D(() => import("./features-BnG-dhzy.js").then((e) => e.r)), i = D(() => import("./AiFeatureMenu-DSXAYiMk.js")), { t: o, format: s } = k();
487
487
  return (c, l) => (a(), u("header", Ie, [
488
488
  b("div", Le, [e.featureFlags.templateLimit.value === null ? g("", !0) : (a(), u("span", Re, y(d(s)(d(o).header.templatesUsed, {
489
489
  used: e.featureFlags.templateCount.value,
@@ -645,7 +645,7 @@ var Ie = {
645
645
  "module-insert"
646
646
  ],
647
647
  setup(t, { expose: n, emit: r }) {
648
- let i = D(() => import("./features-DV4PhoBs.js").then((e) => e.s)), o = D(() => import("./features-DV4PhoBs.js").then((e) => e.o)), s = D(() => import("./features-DV4PhoBs.js").then((e) => e.a)), c = D(() => import("./features-DV4PhoBs.js").then((e) => e.n)), l = D(() => import("./features-DV4PhoBs.js").then((e) => e.t)), p = D(() => import("./SaveModuleDialog-Lco3k1xX.js")), m = D(() => import("./ModuleBrowserModal-CxICY31A.js")), v = D(async () => (await import("./src-CVBDXDBH.js")).MediaLibraryModal), y = r;
648
+ let i = D(() => import("./features-BnG-dhzy.js").then((e) => e.s)), o = D(() => import("./features-BnG-dhzy.js").then((e) => e.o)), s = D(() => import("./features-BnG-dhzy.js").then((e) => e.a)), c = D(() => import("./features-BnG-dhzy.js").then((e) => e.n)), l = D(() => import("./features-BnG-dhzy.js").then((e) => e.t)), p = D(() => import("./SaveModuleDialog-B6kNizps.js")), m = D(() => import("./ModuleBrowserModal-B70ZM4KG.js")), v = D(async () => (await import("./src-Cw7KAyui.js")).MediaLibraryModal), y = r;
649
649
  function b(e, t, n) {
650
650
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
651
651
  }
@@ -1047,4 +1047,4 @@ var Ie = {
1047
1047
  //#endregion
1048
1048
  export { vt as default };
1049
1049
 
1050
- //# sourceMappingURL=CloudEditor-CTNhzoZ1.js.map
1050
+ //# sourceMappingURL=CloudEditor-CRYF-bR3.js.map