@templatical/editor 0.6.7 → 0.7.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 (106) hide show
  1. package/README.md +26 -1
  2. package/dist/{AccessibilityPanel-B2MT0M58.js → AccessibilityPanel-D-PqmHdH.js} +2 -2
  3. package/dist/{AiChatSidebar-w5ek3Z76.js → AiChatSidebar-BwLECwsO.js} +1 -1
  4. package/dist/{AiFeatureMenu-ChlAWywJ.js → AiFeatureMenu-CVHKharv.js} +3 -3
  5. package/dist/{BlockA11yBadge-C0S6kPC4.js → BlockA11yBadge-BFIw0h1m.js} +2 -2
  6. package/dist/{CloudEditor-DYYaScFe.js → CloudEditor-DdZatjUe.js} +30 -21
  7. package/dist/{CollaboratorBar-Bo8vtPId.js → CollaboratorBar-VZKOv_Zn.js} +2 -2
  8. package/dist/{CommentsSidebar-BQROg36f.js → CommentsSidebar-BiRtaXYD.js} +3 -3
  9. package/dist/{CountdownBlock-Bxqe7zwL.js → CountdownBlock-Cq8A8WrM.js} +1 -1
  10. package/dist/{CountdownToolbar-CpFAnjSo.js → CountdownToolbar-CojjlZet.js} +2 -2
  11. package/dist/{DesignReferenceSidebar-CfqpcWX6.js → DesignReferenceSidebar-Ci9HIGbf.js} +2 -2
  12. package/dist/ModuleBrowserModal-D7IYx1Nh.js +206 -0
  13. package/dist/{ModulePreviewCanvas-Cw9GeGus.js → ModulePreviewCanvas-I-uMcK5G.js} +2 -2
  14. package/dist/{NumberWithSuffix-Dw8dN1Pt.js → NumberWithSuffix-CLTBb2Rj.js} +1 -1
  15. package/dist/{ParagraphEditor-DjDiUzmv.js → ParagraphEditor-BRQTNDFO.js} +156 -151
  16. package/dist/{RichTextEditorContent-CK3Om7ES.js → RichTextEditorContent-C3QSg7gd.js} +32 -28
  17. package/dist/{SaveModuleDialog-CSUPmfRP.js → SaveModuleDialog-DGGGNZfm.js} +6 -6
  18. package/dist/{SnapshotHistory-DwX2fj6N.js → SnapshotHistory-C97Iw6xw.js} +3 -3
  19. package/dist/{TemplateScoringPanel-BIAeCAEP.js → TemplateScoringPanel-V79yrEPC.js} +3 -3
  20. package/dist/{TestEmailModal-CIlBvWWn.js → TestEmailModal-B7S8H-VG.js} +3 -3
  21. package/dist/{TitleEditor-BCV5k6wj.js → TitleEditor-DhFTYzrw.js} +65 -60
  22. package/dist/{TplModal-C3Hq9b58.js → TplModal-BgABm6ju.js} +21 -17
  23. package/dist/{blockTypeIcons-iUurP50H.js → blockTypeIcons-BSf-3RJ-.js} +1 -1
  24. package/dist/bundle-stats.json +7 -7
  25. package/dist/cdn/chunks/{AccessibilityPanel-DnNB30b0.js → AccessibilityPanel-kgNBRaZV.js} +28 -28
  26. package/dist/cdn/chunks/{AccessibilityPanel-DnNB30b0.js.map → AccessibilityPanel-kgNBRaZV.js.map} +1 -1
  27. package/dist/cdn/chunks/{AiFeatureMenu-BKBh_ueF.js → AiFeatureMenu-CRkzwdMg.js} +15 -15
  28. package/dist/cdn/chunks/{AiFeatureMenu-BKBh_ueF.js.map → AiFeatureMenu-CRkzwdMg.js.map} +1 -1
  29. package/dist/cdn/chunks/{BlockA11yBadge-CnBu14Fj.js → BlockA11yBadge-BfuH2Hrg.js} +9 -9
  30. package/dist/cdn/chunks/{BlockA11yBadge-CnBu14Fj.js.map → BlockA11yBadge-BfuH2Hrg.js.map} +1 -1
  31. package/dist/cdn/chunks/{CloudEditor-CmR17piA.js → CloudEditor-h5JXI8WQ.js} +252 -243
  32. package/dist/cdn/chunks/CloudEditor-h5JXI8WQ.js.map +1 -0
  33. package/dist/cdn/chunks/{CollaboratorBar-BejZaFtY.js → CollaboratorBar-CMl3lAZU.js} +15 -15
  34. package/dist/cdn/chunks/{CollaboratorBar-BejZaFtY.js.map → CollaboratorBar-CMl3lAZU.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownBlock-CjvUEHhE.js → CountdownBlock-D1RoaOgF.js} +18 -18
  36. package/dist/cdn/chunks/{CountdownBlock-CjvUEHhE.js.map → CountdownBlock-D1RoaOgF.js.map} +1 -1
  37. package/dist/cdn/chunks/{CountdownToolbar-Caokkqsg.js → CountdownToolbar-DltwuOer.js} +42 -42
  38. package/dist/cdn/chunks/{CountdownToolbar-Caokkqsg.js.map → CountdownToolbar-DltwuOer.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-Tb9a7L-K.js → ModuleBrowserModal-3uu2mXR9.js} +36 -36
  40. package/dist/cdn/chunks/{ModuleBrowserModal-Tb9a7L-K.js.map → ModuleBrowserModal-3uu2mXR9.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-JWIEv5oS.js → ModulePreviewCanvas-K9CQFr7p.js} +37 -37
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-JWIEv5oS.js.map → ModulePreviewCanvas-K9CQFr7p.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-DrV8eumz.js → NumberWithSuffix-BIFgtqGs.js} +74 -74
  44. package/dist/cdn/chunks/{NumberWithSuffix-DrV8eumz.js.map → NumberWithSuffix-BIFgtqGs.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-CSfShBAO.js → ParagraphEditor-DlpZX_x4.js} +180 -176
  46. package/dist/cdn/chunks/ParagraphEditor-DlpZX_x4.js.map +1 -0
  47. package/dist/cdn/chunks/{RichTextEditorContent-DgqZzl8n.js → RichTextEditorContent-CPGT8h-O.js} +40 -37
  48. package/dist/cdn/chunks/RichTextEditorContent-CPGT8h-O.js.map +1 -0
  49. package/dist/cdn/chunks/{SaveModuleDialog-CxTwrIgx.js → SaveModuleDialog-_uaJscj1.js} +24 -24
  50. package/dist/cdn/chunks/{SaveModuleDialog-CxTwrIgx.js.map → SaveModuleDialog-_uaJscj1.js.map} +1 -1
  51. package/dist/cdn/chunks/TitleEditor-Kerz6US8.js +175 -0
  52. package/dist/cdn/chunks/TitleEditor-Kerz6US8.js.map +1 -0
  53. package/dist/cdn/chunks/{blockTypeIcons-DMt-2qR6.js → blockTypeIcons-BeOhGtoo.js} +7 -7
  54. package/dist/cdn/chunks/{blockTypeIcons-DMt-2qR6.js.map → blockTypeIcons-BeOhGtoo.js.map} +1 -1
  55. package/dist/cdn/chunks/{draggable-CNhyCGIO.js → draggable-P6QWzy4g.js} +1182 -1171
  56. package/dist/cdn/chunks/{draggable-CNhyCGIO.js.map → draggable-P6QWzy4g.js.map} +1 -1
  57. package/dist/cdn/chunks/{extensions-CUvwrffu.js → extensions-BZYkPlKr.js} +107 -108
  58. package/dist/cdn/chunks/extensions-BZYkPlKr.js.map +1 -0
  59. package/dist/cdn/chunks/{features-U3nzKc-R.js → features-DzIN-Nua.js} +925 -896
  60. package/dist/cdn/chunks/features-DzIN-Nua.js.map +1 -0
  61. package/dist/cdn/chunks/{icons-QcjADKIW.js → icons-Nvr6w13E.js} +2 -2
  62. package/dist/cdn/chunks/{icons-QcjADKIW.js.map → icons-Nvr6w13E.js.map} +1 -1
  63. package/dist/cdn/chunks/{media-library-Zcd_GInj.js → media-library-BzT7BoGU.js} +1189 -1183
  64. package/dist/cdn/chunks/media-library-BzT7BoGU.js.map +1 -0
  65. package/dist/cdn/chunks/{quality-8eo6DM3p.js → quality-C328caFm.js} +45 -45
  66. package/dist/cdn/chunks/{quality-8eo6DM3p.js.map → quality-C328caFm.js.map} +1 -1
  67. package/dist/cdn/chunks/{renderer-eHJyPiJH.js → renderer-DYpHh_uV.js} +20 -20
  68. package/dist/cdn/chunks/{renderer-eHJyPiJH.js.map → renderer-DYpHh_uV.js.map} +1 -1
  69. package/dist/cdn/chunks/{src-CthVYW_o.js → src-DKNTQJVO.js} +144 -144
  70. package/dist/cdn/chunks/{src-CthVYW_o.js.map → src-DKNTQJVO.js.map} +1 -1
  71. package/dist/cdn/chunks/{styles-CV5w3kjq.js → styles-DaTht5d7.js} +924 -899
  72. package/dist/cdn/chunks/styles-DaTht5d7.js.map +1 -0
  73. package/dist/cdn/chunks/{tiptap-IyIsncxY.js → tiptap-BwTCLVWl.js} +7 -7
  74. package/dist/cdn/chunks/{tiptap-IyIsncxY.js.map → tiptap-BwTCLVWl.js.map} +1 -1
  75. package/dist/cdn/editor.css +1 -1
  76. package/dist/cdn/editor.js +197 -146
  77. package/dist/cdn/editor.js.map +1 -1
  78. package/dist/{extensions-BF39Siqk.js → extensions-D-J02CiP.js} +50 -51
  79. package/dist/index.d.ts +56 -11
  80. package/dist/{keys-Bqs_0du9.js → keys-B5SJtPWf.js} +3 -3
  81. package/dist/style.css +1 -1
  82. package/dist/{styles-BgmKdc2x.js → styles-D_fEz49o.js} +497 -472
  83. package/dist/templatical-editor.js +182 -131
  84. package/dist/{useCloudI18n-CL_AwWwi.js → useCloudI18n-ByEMykjO.js} +1 -1
  85. package/dist/{useEditorCore-CnXrv71D.js → useEditorCore-uCU9Ny0M.js} +637 -619
  86. package/dist/{useI18n-CgmQftNf.js → useI18n-PEB8ioi_.js} +1 -1
  87. package/dist/{useMergeTag-vpwrZ9eQ.js → useMergeTag-C47xwU7X.js} +2 -2
  88. package/dist/usePopoverRoot-BxJrqnMD.js +8 -0
  89. package/package.json +7 -7
  90. package/dist/ModuleBrowserModal-CKhsaPnA.js +0 -206
  91. package/dist/cdn/chunks/CloudEditor-CmR17piA.js.map +0 -1
  92. package/dist/cdn/chunks/ParagraphEditor-CSfShBAO.js.map +0 -1
  93. package/dist/cdn/chunks/RichTextEditorContent-DgqZzl8n.js.map +0 -1
  94. package/dist/cdn/chunks/TitleEditor-DlqV7ODD.js +0 -171
  95. package/dist/cdn/chunks/TitleEditor-DlqV7ODD.js.map +0 -1
  96. package/dist/cdn/chunks/extensions-CUvwrffu.js.map +0 -1
  97. package/dist/cdn/chunks/features-U3nzKc-R.js.map +0 -1
  98. package/dist/cdn/chunks/media-library-Zcd_GInj.js.map +0 -1
  99. package/dist/cdn/chunks/styles-CV5w3kjq.js.map +0 -1
  100. /package/dist/{de-DcVOh9Fp.js → de-BhIWu_bO.js} +0 -0
  101. /package/dist/{de-DCaaCE5s.js → de-Di4MEjjx.js} +0 -0
  102. /package/dist/{emojiData-PQyVa4bU.js → emojiData-DX3E0XT-.js} +0 -0
  103. /package/dist/{en-DXCyK4-X.js → en-BSuzi-Pd.js} +0 -0
  104. /package/dist/{en-TZVJ_f6v.js → en-D7HRbYah.js} +0 -0
  105. /package/dist/{pt-BR-Vq7D7c11.js → pt-BR-CCVBRais.js} +0 -0
  106. /package/dist/{pt-BR-BMGasLBa.js → pt-BR-K32lt6YP.js} +0 -0
@@ -1,28 +1,29 @@
1
- import { A as e, B as t, O as n, S as r, X as i, _ as a, at as o, b as s, f as c, h as l, k as u, m as d, n as f, o as p, ot as m, p as h, rt as g, st as _, t as v, v as y, z as b } from "./vue.runtime.esm-bundler-Bxqkjqhc.js";
2
- import { r as x } from "./timeouts-BSGxjuUF.js";
3
- import { L as S, t as C, x as w } from "./useEditorCore-CnXrv71D.js";
4
- import { a as T, c as E, i as D, l as O, n as k, o as ee, r as te, s as ne, t as re } from "./styles-BgmKdc2x.js";
5
- import { t as ie } from "./_plugin-vue_export-helper-B0hnzhyu.js";
1
+ import { A as e, B as t, O as n, S as r, X as i, _ as a, at as o, b as s, f as c, h as l, k as u, m as d, n as f, o as p, ot as m, p as ee, rt as h, st as g, t as _, v, z as y } from "./vue.runtime.esm-bundler-Bxqkjqhc.js";
2
+ import { r as b } from "./timeouts-BSGxjuUF.js";
3
+ import { L as x, t as te, x as S } from "./useEditorCore-uCU9Ny0M.js";
4
+ import { a as ne, c as re, i as ie, l as ae, n as oe, o as C, r as w, s as T, t as E } from "./styles-D_fEz49o.js";
5
+ import { t as D } from "./_plugin-vue_export-helper-B0hnzhyu.js";
6
6
  //#region src/Editor.vue?vue&type=script&setup=true&lang.ts
7
- var ae = ["data-tpl-theme"], oe = {
7
+ var O = ["data-tpl-theme"], k = {
8
8
  class: "tpl-header tpl:absolute tpl:top-0 tpl:right-0 tpl:left-0 tpl:z-50 tpl:grid tpl:h-14 tpl:grid-cols-[1fr_auto_1fr] tpl:items-center tpl:px-4 tpl:shadow-[var(--tpl-shadow-md)] tpl:border-b tpl:border-[var(--tpl-border)]",
9
9
  style: {
10
10
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
11
11
  "backdrop-filter": "blur(12px)",
12
12
  "-webkit-backdrop-filter": "blur(12px)"
13
13
  }
14
- }, A = { class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, j = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, M = { class: "tpl:flex tpl:justify-center tpl:p-8" }, N = ["aria-label"], P = /* @__PURE__ */ ie(/* @__PURE__ */ s({
14
+ }, A = { class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, se = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, ce = { class: "tpl:flex tpl:justify-center tpl:p-8" }, j = ["aria-label"], M = /* @__PURE__ */ D(/* @__PURE__ */ s({
15
15
  __name: "Editor",
16
16
  props: {
17
17
  config: {},
18
18
  translations: {},
19
- fontsManager: {}
19
+ fontsManager: {},
20
+ shadowRoot: {}
20
21
  },
21
22
  setup(r, { expose: i }) {
22
- let s = r, f = S({
23
+ let s = r, f = x({
23
24
  content: s.config.content,
24
25
  templateDefaults: s.config.templateDefaults
25
- }), x = C({
26
+ }), b = te({
26
27
  editor: f,
27
28
  config: {
28
29
  uiTheme: s.config.uiTheme,
@@ -32,67 +33,68 @@ var ae = ["data-tpl-theme"], oe = {
32
33
  mergeTags: s.config.mergeTags,
33
34
  displayConditions: s.config.displayConditions,
34
35
  onRequestMedia: s.config.onRequestMedia,
35
- accessibility: E(s.config),
36
+ accessibility: re(s.config),
36
37
  onSave: s.config.onSave ? () => s.config.onSave(JSON.parse(JSON.stringify(f.state.content))) : void 0
37
38
  },
38
39
  translations: s.translations,
39
40
  fontsManager: s.fontsManager,
40
- autoSaveOptions: s.config.onChange ? { onChange: () => s.config.onChange(JSON.parse(JSON.stringify(f.state.content))) } : null
41
+ autoSaveOptions: s.config.onChange ? { onChange: () => s.config.onChange(JSON.parse(JSON.stringify(f.state.content))) } : null,
42
+ editorRoot: s.shadowRoot
41
43
  });
42
44
  return n(async () => {
43
45
  await s.fontsManager.loadCustomFonts();
44
46
  }), u(() => {
45
- s.fontsManager.cleanupFontLinks(), x.destroy();
47
+ s.fontsManager.cleanupFontLinks(), b.destroy();
46
48
  }), i({
47
49
  getContent: () => f.content.value,
48
50
  setContent: (e) => f.setContent(e),
49
51
  setTheme: (e) => f.setUiTheme(e),
50
- renderCustomBlock: x.registry.renderCustomBlock
52
+ renderCustomBlock: b.registry.renderCustomBlock
51
53
  }), (n, i) => (e(), l("div", {
52
- class: o(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": g(f).state.darkMode }]),
53
- "data-tpl-theme": g(x).resolvedTheme.value,
54
- style: m(g(x).themeStyles.value)
54
+ class: o(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(f).state.darkMode }]),
55
+ "data-tpl-theme": h(b).resolvedTheme.value,
56
+ style: m(h(b).themeStyles.value)
55
57
  }, [
56
- c("header", oe, [
58
+ c("header", k, [
57
59
  i[5] ||= c("div", { class: "tpl:flex tpl:items-center tpl:gap-2.5" }, null, -1),
58
60
  c("div", A, [
59
- y(D, {
60
- viewport: g(f).state.viewport,
61
- onChange: g(f).setViewport
61
+ v(ie, {
62
+ viewport: h(f).state.viewport,
63
+ onChange: h(f).setViewport
62
64
  }, null, 8, ["viewport", "onChange"]),
63
- y(k, {
64
- "dark-mode": g(f).state.darkMode,
65
- onChange: g(f).setDarkMode
65
+ v(oe, {
66
+ "dark-mode": h(f).state.darkMode,
67
+ onChange: h(f).setDarkMode
66
68
  }, null, 8, ["dark-mode", "onChange"]),
67
- y(te, {
68
- "preview-mode": g(f).state.previewMode,
69
- onChange: g(f).setPreviewMode
69
+ v(w, {
70
+ "preview-mode": h(f).state.previewMode,
71
+ onChange: h(f).setPreviewMode
70
72
  }, null, 8, ["preview-mode", "onChange"])
71
73
  ]),
72
74
  i[6] ||= c("div", { class: "tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, null, -1)
73
75
  ]),
74
- t(y(ee, null, null, 512), [[p, !g(f).state.previewMode]]),
76
+ t(v(C, null, null, 512), [[p, !h(f).state.previewMode]]),
75
77
  c("div", {
76
- class: o(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto tpl:bg-[var(--tpl-canvas-bg)]", [g(f).state.previewMode ? "tpl:left-0 tpl:right-0" : "tpl:left-12 tpl:right-[320px]", "tpl:top-14"]]),
78
+ class: o(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto tpl:bg-[var(--tpl-canvas-bg)]", [h(f).state.previewMode ? "tpl:left-0 tpl:right-0" : "tpl:left-12 tpl:right-[320px]", "tpl:top-14"]]),
77
79
  style: { transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)" }
78
- }, [c("div", j, [y(v, { name: "tpl-restore-btn" }, {
79
- default: b(() => [g(x).conditionPreview.hasHiddenBlocks.value ? (e(), l("button", {
80
+ }, [c("div", se, [v(_, { name: "tpl-restore-btn" }, {
81
+ default: y(() => [h(b).conditionPreview.hasHiddenBlocks.value ? (e(), l("button", {
80
82
  key: 0,
81
83
  class: "tpl:absolute tpl:left-1/2 tpl:top-2 tpl:-translate-x-1/2 tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-full tpl:border tpl:px-3.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:whitespace-nowrap tpl:shadow-md tpl:hover:opacity-80 tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)] tpl:border-[var(--tpl-warning)]",
82
84
  style: { "backdrop-filter": "blur(8px)" },
83
- onClick: i[0] ||= (e) => g(x).conditionPreview.reset()
84
- }, [y(g(O), {
85
+ onClick: i[0] ||= (e) => h(b).conditionPreview.reset()
86
+ }, [v(h(ae), {
85
87
  size: 13,
86
88
  "stroke-width": 2
87
- }), a(" " + _(g(x).t.blockSettings.restoreHiddenBlocks), 1)])) : d("", !0)]),
89
+ }), a(" " + g(h(b).t.blockSettings.restoreHiddenBlocks), 1)])) : d("", !0)]),
88
90
  _: 1
89
- })]), c("div", M, [y(ne, {
90
- viewport: g(f).state.viewport,
91
- content: g(f).content.value,
92
- "selected-block-id": g(f).state.selectedBlockId,
93
- "dark-mode": g(f).state.darkMode,
94
- "preview-mode": g(f).state.previewMode,
95
- onSelectBlock: g(f).selectBlock
91
+ })]), c("div", ce, [v(T, {
92
+ viewport: h(f).state.viewport,
93
+ content: h(f).content.value,
94
+ "selected-block-id": h(f).state.selectedBlockId,
95
+ "dark-mode": h(f).state.darkMode,
96
+ "preview-mode": h(f).state.previewMode,
97
+ onSelectBlock: h(f).selectBlock
96
98
  }, null, 8, [
97
99
  "viewport",
98
100
  "content",
@@ -101,83 +103,87 @@ var ae = ["data-tpl-theme"], oe = {
101
103
  "preview-mode",
102
104
  "onSelectBlock"
103
105
  ])])], 2),
104
- r.config.branding === !1 ? d("", !0) : (e(), h(re, {
106
+ r.config.branding === !1 ? d("", !0) : (e(), ee(E, {
105
107
  key: 0,
106
- "position-class": [g(f).state.previewMode ? "tpl:left-0 tpl:right-0" : "tpl:left-12 tpl:right-[320px]"]
108
+ "position-class": [h(f).state.previewMode ? "tpl:left-0 tpl:right-0" : "tpl:left-12 tpl:right-[320px]"]
107
109
  }, null, 8, ["position-class"])),
108
110
  c("div", {
109
111
  class: "tpl-sr-only",
110
112
  role: "status",
111
113
  "aria-live": "polite",
112
114
  "aria-atomic": "true",
113
- "aria-label": g(x).t.landmarks.reorderAnnouncements
114
- }, _(g(x).keyboardReorder.announcement.value), 9, N),
115
- t(y(T, {
116
- "selected-block": g(f).selectedBlock.value,
117
- settings: g(f).content.value.settings,
118
- onUpdateBlock: i[1] ||= (e) => g(f).updateBlock(g(f).state.selectedBlockId, e),
115
+ "aria-label": h(b).t.landmarks.reorderAnnouncements
116
+ }, g(h(b).keyboardReorder.announcement.value), 9, j),
117
+ t(v(ne, {
118
+ "selected-block": h(f).selectedBlock.value,
119
+ settings: h(f).content.value.settings,
120
+ onUpdateBlock: i[1] ||= (e) => h(f).updateBlock(h(f).state.selectedBlockId, e),
119
121
  onDeleteBlock: i[2] ||= () => {
120
- g(f).state.selectedBlockId && g(x).blockActions.deleteBlock(g(f).state.selectedBlockId);
122
+ h(f).state.selectedBlockId && h(b).blockActions.deleteBlock(h(f).state.selectedBlockId);
121
123
  },
122
124
  onDuplicateBlock: i[3] ||= () => {
123
- g(f).selectedBlock.value && g(x).blockActions.duplicateBlock(g(f).selectedBlock.value);
125
+ h(f).selectedBlock.value && h(b).blockActions.duplicateBlock(h(f).selectedBlock.value);
124
126
  },
125
- onUpdateSettings: i[4] ||= (e) => g(f).updateSettings(e)
126
- }, null, 8, ["selected-block", "settings"]), [[p, !g(f).state.previewMode]])
127
- ], 14, ae));
127
+ onUpdateSettings: i[4] ||= (e) => h(f).updateSettings(e)
128
+ }, null, 8, ["selected-block", "settings"]), [[p, !h(f).state.previewMode]]),
129
+ c("div", {
130
+ ref: (e) => h(b).popoverRoot.value = e,
131
+ class: "tpl-popover-root"
132
+ }, null, 512)
133
+ ], 14, O));
128
134
  }
129
- }), [["__scopeId", "data-v-9ffdcb5e"]]), F = /* @__PURE__ */ Object.assign({
130
- "./locales/de.ts": () => import("./de-DcVOh9Fp.js"),
131
- "./locales/en.ts": () => import("./en-TZVJ_f6v.js"),
132
- "./locales/pt-BR.ts": () => import("./pt-BR-BMGasLBa.js")
133
- }), I = /* @__PURE__ */ Object.assign({
134
- "./locales/cloud/de.ts": () => import("./de-DCaaCE5s.js"),
135
- "./locales/cloud/en.ts": () => import("./en-DXCyK4-X.js"),
136
- "./locales/cloud/pt-BR.ts": () => import("./pt-BR-Vq7D7c11.js")
135
+ }), [["__scopeId", "data-v-13f953c6"]]), N = /* @__PURE__ */ Object.assign({
136
+ "./locales/de.ts": () => import("./de-BhIWu_bO.js"),
137
+ "./locales/en.ts": () => import("./en-D7HRbYah.js"),
138
+ "./locales/pt-BR.ts": () => import("./pt-BR-K32lt6YP.js")
139
+ }), P = /* @__PURE__ */ Object.assign({
140
+ "./locales/cloud/de.ts": () => import("./de-Di4MEjjx.js"),
141
+ "./locales/cloud/en.ts": () => import("./en-BSuzi-Pd.js"),
142
+ "./locales/cloud/pt-BR.ts": () => import("./pt-BR-CCVBRais.js")
137
143
  });
138
- function L(e) {
144
+ function F(e) {
139
145
  return Object.keys(e).map((e) => e.match(/\/([^/]+)\.ts$/)?.[1]).filter((e) => !!e);
140
146
  }
141
- var R = L(F), z = L(I);
142
- function B(e) {
147
+ var I = F(N), L = F(P);
148
+ function R(e) {
143
149
  return e.trim().replace(/_/g, "-").toLowerCase();
144
150
  }
145
- function V(e, t) {
146
- let n = B(e);
147
- return t.find((e) => B(e) === n);
151
+ function z(e, t) {
152
+ let n = R(e);
153
+ return t.find((e) => R(e) === n);
148
154
  }
149
- function H(e) {
150
- return B(e).split("-")[0];
155
+ function B(e) {
156
+ return R(e).split("-")[0];
151
157
  }
152
- function U(e, t) {
153
- return V(e, t) ?? V(H(e), t);
158
+ function V(e, t) {
159
+ return z(e, t) ?? z(B(e), t);
154
160
  }
155
- function W(e, t) {
156
- return U(e, t) ?? "en";
161
+ function H(e, t) {
162
+ return V(e, t) ?? "en";
157
163
  }
158
- async function G(e) {
159
- let t = F[`./locales/${W(e, R)}.ts`];
164
+ async function U(e) {
165
+ let t = N[`./locales/${H(e, I)}.ts`];
160
166
  return (await t()).default;
161
167
  }
162
- async function K(e) {
163
- let t = I[`./locales/cloud/${W(e, z)}.ts`];
168
+ async function W(e) {
169
+ let t = P[`./locales/cloud/${H(e, L)}.ts`];
164
170
  return (await t()).default;
165
171
  }
166
- function se(e) {
167
- return U(e, R) !== void 0;
172
+ function G(e) {
173
+ return V(e, I) !== void 0;
168
174
  }
169
- function ce(e) {
170
- return U(e, z) !== void 0;
171
- }
172
- function le() {
173
- return [...R];
175
+ function le(e) {
176
+ return V(e, L) !== void 0;
174
177
  }
175
178
  function ue() {
176
- return [...z];
179
+ return [...I];
180
+ }
181
+ function de() {
182
+ return [...L];
177
183
  }
178
184
  //#endregion
179
185
  //#region src/utils/toMjml.ts
180
- async function q(e) {
186
+ async function fe(e) {
181
187
  let t;
182
188
  try {
183
189
  t = await import("@templatical/renderer");
@@ -187,86 +193,131 @@ async function q(e) {
187
193
  return t.renderToMjml(e.getContent(), { renderCustomBlock: e.renderCustomBlock });
188
194
  }
189
195
  //#endregion
190
- //#region src/index.ts
191
- var J = null, Y = i(null);
192
- async function de(e) {
196
+ //#region \0virtual:editor-css
197
+ var pe = "@import\"https://fonts.bunny.net/css?family=geist:400,500,600\";.tpl-loading-track[data-v-1ed538ec]{height:3px;width:100%;border-radius:9999px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--tpl-primary) 10%,transparent) 15%,color-mix(in srgb,var(--tpl-primary) 30%,transparent) 30%,var(--tpl-primary) 50%,color-mix(in srgb,var(--tpl-primary) 30%,transparent) 70%,color-mix(in srgb,var(--tpl-primary) 10%,transparent) 85%,transparent 100%);background-size:200% 100%;animation:tpl-loading-flow-1ed538ec 3s ease-in-out infinite}@keyframes tpl-loading-flow-1ed538ec{0%{background-position:100% 0}to{background-position:-100% 0}}.tpl-block--idle[data-v-850614e7]{outline:1.5px dashed color-mix(in srgb,var(--tpl-primary) 30%,transparent);outline-offset:-1px;transition:outline .15s cubic-bezier(.16,1,.3,1),box-shadow .15s cubic-bezier(.16,1,.3,1)}.tpl-block--idle[data-v-850614e7]:hover{outline:1.5px solid color-mix(in srgb,var(--tpl-primary) 50%,transparent);outline-offset:-1px;box-shadow:0 0 8px color-mix(in srgb,var(--tpl-primary) 8%,transparent)}.tpl-block--selected[data-v-850614e7]{outline:2px solid color-mix(in srgb,var(--tpl-primary) 60%,transparent);outline-offset:-1px;box-shadow:0 0 12px color-mix(in srgb,var(--tpl-primary) 15%,transparent);transition:outline .15s cubic-bezier(.16,1,.3,1),box-shadow .15s cubic-bezier(.16,1,.3,1)}.tpl-block-action-btn[data-v-850614e7]{color:var(--tpl-text-muted);background-color:transparent}.tpl-block-action-btn[data-v-850614e7]:hover{background-color:var(--tpl-bg-hover);color:var(--tpl-text)}.tpl-block-action-btn[data-v-850614e7]:active{transform:scale(.9)}.tpl-block-delete-btn[data-v-850614e7]:hover{background-color:var(--tpl-danger-light);color:var(--tpl-danger)}.tpl-condition-toggle[data-v-850614e7]:hover{background-color:var(--tpl-bg-hover)!important}.tpl-condition-toggle[data-v-850614e7]:active{transform:scale(.9)}.tpl-block-hidden-overlay[data-v-850614e7]{background-color:color-mix(in srgb,var(--tpl-bg) 60%,transparent)}.tpl-table-editable[data-v-4f49860b] th[contenteditable],.tpl-table-editable[data-v-4f49860b] td[contenteditable]{outline:none;cursor:text;min-width:2rem}.tpl-table-editable[data-v-4f49860b] th[contenteditable]:empty:before,.tpl-table-editable[data-v-4f49860b] td[contenteditable]:empty:before{content:attr(data-placeholder);color:var(--tpl-text-dim);pointer-events:none}.tpl-table-editable[data-v-4f49860b] th[contenteditable]:focus,.tpl-table-editable[data-v-4f49860b] td[contenteditable]:focus{outline:2px solid var(--tpl-primary);outline-offset:-2px;border-radius:1px}hex-color-picker{--hcp-width: 200px}hex-color-picker::part(hue){border-radius:var(--tpl-radius-sm, 7px)}hex-color-picker::part(saturation){border-radius:var(--tpl-radius-sm, 7px) var(--tpl-radius-sm, 7px) 0 0}.tpl-canvas--dark-mode[data-v-14168e8c] img,.tpl-canvas--dark-mode[data-v-14168e8c] .tpl-block-actions,.tpl-canvas--dark-mode[data-v-14168e8c] .tpl-condition-toggle,.tpl-canvas--dark-mode[data-v-14168e8c] .tpl-block-hidden-overlay{filter:invert(1) hue-rotate(180deg)}.tpl-pulse-fill[data-v-358207dd]{animation:tpl-field-pulse-358207dd 1s ease-out}@keyframes tpl-field-pulse-358207dd{0%{box-shadow:0 0 color-mix(in srgb,var(--tpl-warning) 30%,transparent);background-color:color-mix(in srgb,var(--tpl-warning) 6%,transparent)}40%{box-shadow:0 0 0 3px color-mix(in srgb,var(--tpl-warning) 15%,transparent);background-color:color-mix(in srgb,var(--tpl-warning) 5%,transparent)}to{box-shadow:0 0 0 0 transparent;background-color:transparent}}@media(prefers-reduced-motion:reduce){.tpl-pulse-fill[data-v-358207dd]{animation:none}}input[type=number][data-v-9a9c8a07]::-webkit-outer-spin-button,input[type=number][data-v-9a9c8a07]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number][data-v-9a9c8a07]{-moz-appearance:textfield}.tpl-collapsible[data-v-2ac88283]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s cubic-bezier(.16,1,.3,1)}.tpl-collapsible--open[data-v-2ac88283]{grid-template-rows:1fr}.tpl-collapsible>div[data-v-2ac88283]{overflow:hidden}.tpl-icon-enter-active[data-v-af87d02a],.tpl-icon-leave-active[data-v-af87d02a]{transition:opacity .12s cubic-bezier(.16,1,.3,1),transform .12s cubic-bezier(.16,1,.3,1)}.tpl-icon-enter-from[data-v-af87d02a],.tpl-icon-leave-to[data-v-af87d02a]{opacity:0;transform:scale(.8)}.tpl-preview-toggle[data-v-af87d02a]:hover{background-color:var(--tpl-bg-hover)}.tpl-preview-toggle[data-v-af87d02a]:active{transform:scale(.92)}.tpl-icon-enter-active[data-v-f8694f76],.tpl-icon-leave-active[data-v-f8694f76]{transition:opacity .12s cubic-bezier(.16,1,.3,1),transform .12s cubic-bezier(.16,1,.3,1)}.tpl-icon-enter-from[data-v-f8694f76],.tpl-icon-leave-to[data-v-f8694f76]{opacity:0;transform:scale(.8)}.tpl-dark-mode-toggle[data-v-f8694f76]:hover{background-color:var(--tpl-bg-hover)}.tpl-dark-mode-toggle[data-v-f8694f76]:active{transform:scale(.92)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tpl-comet-angle:0deg;--tpl-comet-start:100%}}}@layer theme{:root,:host{--tpl-radius-sm:.25rem;--tpl-radius-md:.375rem;--tpl-radius-lg:.5rem;--tpl-shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tpl-shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tpl-shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tpl-shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a}}.tpl\\:pointer-events-auto{pointer-events:auto}.tpl\\:pointer-events-none{pointer-events:none}.tpl\\:invisible{visibility:hidden}.tpl\\:absolute{position:absolute}.tpl\\:fixed{position:fixed}.tpl\\:relative{position:relative}.tpl\\:sticky{position:sticky}.tpl\\:inset-0{inset:0}.tpl\\:inset-y-1{inset-block:.25rem}.tpl\\:-top-0\\.5{top:-.125rem}.tpl\\:-top-1{top:-.25rem}.tpl\\:top-0{top:0}.tpl\\:top-1{top:.25rem}.tpl\\:top-1\\.5{top:.375rem}.tpl\\:top-1\\/2{top:50%}.tpl\\:top-2{top:.5rem}.tpl\\:top-14{top:3.5rem}.tpl\\:top-16{top:4rem}.tpl\\:top-\\[104px\\]{top:104px}.tpl\\:top-full{top:100%}.tpl\\:-right-1{right:-.25rem}.tpl\\:-right-2{right:-.5rem}.tpl\\:right-0{right:0}.tpl\\:right-1{right:.25rem}.tpl\\:right-1\\.5{right:.375rem}.tpl\\:right-2{right:.5rem}.tpl\\:right-2\\.5{right:.625rem}.tpl\\:right-\\[320px\\]{right:320px}.tpl\\:right-\\[360px\\]{right:360px}.tpl\\:right-\\[680px\\]{right:680px}.tpl\\:bottom-0{bottom:0}.tpl\\:bottom-full{bottom:100%}.tpl\\:-left-1{left:-.25rem}.tpl\\:left-0{left:0}.tpl\\:left-1\\.5{left:.375rem}.tpl\\:left-1\\/2{left:50%}.tpl\\:left-2\\.5{left:.625rem}.tpl\\:left-3{left:.75rem}.tpl\\:left-12{left:3rem}.tpl\\:z-10{z-index:10}.tpl\\:z-40{z-index:40}.tpl\\:z-50{z-index:50}.tpl\\:z-\\[4\\]{z-index:4}.tpl\\:z-\\[5\\]{z-index:5}.tpl\\:z-\\[9999\\]{z-index:9999}.tpl\\:z-\\[10000\\]{z-index:10000}.tpl\\:m-0{margin:0}.tpl\\:m-6{margin:1.5rem}.tpl\\:mx-0\\.5{margin-inline:.125rem}.tpl\\:mx-1{margin-inline:.25rem}.tpl\\:mx-1\\.5{margin-inline:.375rem}.tpl\\:mx-3{margin-inline:.75rem}.tpl\\:mx-4{margin-inline:1rem}.tpl\\:mx-auto{margin-inline:auto}.tpl\\:mt-0\\.5{margin-top:.125rem}.tpl\\:mt-1{margin-top:.25rem}.tpl\\:mt-1\\.5{margin-top:.375rem}.tpl\\:mt-2{margin-top:.5rem}.tpl\\:mt-3{margin-top:.75rem}.tpl\\:mt-4{margin-top:1rem}.tpl\\:\\!mb-0{margin-bottom:0!important}.tpl\\:mb-1{margin-bottom:.25rem}.tpl\\:mb-1\\.5{margin-bottom:.375rem}.tpl\\:mb-2{margin-bottom:.5rem}.tpl\\:mb-2\\.5{margin-bottom:.625rem}.tpl\\:mb-3{margin-bottom:.75rem}.tpl\\:mb-3\\.5{margin-bottom:.875rem}.tpl\\:mb-4{margin-bottom:1rem}.tpl\\:mb-px{margin-bottom:1px}.tpl\\:-ml-48{margin-left:-12rem}.tpl\\:ml-0{margin-left:0}.tpl\\:ml-1{margin-left:.25rem}.tpl\\:ml-5{margin-left:1.25rem}.tpl\\:ml-auto{margin-left:auto}.tpl\\:\\!flex{display:flex!important}.tpl\\:block{display:block}.tpl\\:flex{display:flex}.tpl\\:grid{display:grid}.tpl\\:hidden{display:none}.tpl\\:inline{display:inline}.tpl\\:inline-block{display:inline-block}.tpl\\:inline-flex{display:inline-flex}.tpl\\:aspect-square{aspect-ratio:1}.tpl\\:size-1\\.5{width:.375rem;height:.375rem}.tpl\\:size-2{width:.5rem;height:.5rem}.tpl\\:size-3{width:.75rem;height:.75rem}.tpl\\:size-3\\.5{width:.875rem;height:.875rem}.tpl\\:size-4{width:1rem;height:1rem}.tpl\\:size-4\\.5{width:1.125rem;height:1.125rem}.tpl\\:size-5{width:1.25rem;height:1.25rem}.tpl\\:size-6{width:1.5rem;height:1.5rem}.tpl\\:size-7{width:1.75rem;height:1.75rem}.tpl\\:size-8{width:2rem;height:2rem}.tpl\\:size-10{width:2.5rem;height:2.5rem}.tpl\\:size-12{width:3rem;height:3rem}.tpl\\:size-16{width:4rem;height:4rem}.tpl\\:size-full{width:100%;height:100%}.tpl\\:h-0{height:0}.tpl\\:h-2\\.5{height:.625rem}.tpl\\:h-3{height:.75rem}.tpl\\:h-4{height:1rem}.tpl\\:h-5{height:1.25rem}.tpl\\:h-6{height:1.5rem}.tpl\\:h-7{height:1.75rem}.tpl\\:h-8{height:2rem}.tpl\\:h-9{height:2.25rem}.tpl\\:h-10{height:2.5rem}.tpl\\:h-12{height:3rem}.tpl\\:h-14{height:3.5rem}.tpl\\:h-32{height:8rem}.tpl\\:h-44{height:11rem}.tpl\\:h-\\[32px\\]{height:32px}.tpl\\:h-auto{height:auto}.tpl\\:h-full{height:100%}.tpl\\:max-h-24{max-height:6rem}.tpl\\:max-h-32{max-height:8rem}.tpl\\:max-h-40{max-height:10rem}.tpl\\:max-h-48{max-height:12rem}.tpl\\:max-h-56{max-height:14rem}.tpl\\:max-h-64{max-height:16rem}.tpl\\:max-h-\\[50vh\\]{max-height:50vh}.tpl\\:max-h-\\[80vh\\]{max-height:80vh}.tpl\\:max-h-\\[90vh\\]{max-height:90vh}.tpl\\:min-h-0{min-height:0}.tpl\\:min-h-6{min-height:1.5rem}.tpl\\:min-h-10{min-height:2.5rem}.tpl\\:min-h-\\[1\\.5em\\]{min-height:1.5em}.tpl\\:min-h-\\[1em\\]{min-height:1em}.tpl\\:min-h-\\[5rem\\]{min-height:5rem}.tpl\\:min-h-\\[48px\\]{min-height:48px}.tpl\\:min-h-\\[60px\\]{min-height:60px}.tpl\\:min-h-\\[64px\\]{min-height:64px}.tpl\\:min-h-\\[68px\\]{min-height:68px}.tpl\\:min-h-\\[72px\\]{min-height:72px}.tpl\\:min-h-\\[80px\\]{min-height:80px}.tpl\\:min-h-\\[100px\\]{min-height:100px}.tpl\\:min-h-\\[120px\\]{min-height:120px}.tpl\\:min-h-\\[150px\\]{min-height:150px}.tpl\\:min-h-\\[400px\\]{min-height:400px}.tpl\\:w-1\\/2{width:50%}.tpl\\:w-1\\/3{width:33.3333%}.tpl\\:w-2\\/3{width:66.6667%}.tpl\\:w-3\\/4{width:75%}.tpl\\:w-5\\/6{width:83.3333%}.tpl\\:w-8{width:2rem}.tpl\\:w-9{width:2.25rem}.tpl\\:w-10{width:2.5rem}.tpl\\:w-12{width:3rem}.tpl\\:w-16{width:4rem}.tpl\\:w-20{width:5rem}.tpl\\:w-28{width:7rem}.tpl\\:w-32{width:8rem}.tpl\\:w-36{width:9rem}.tpl\\:w-40{width:10rem}.tpl\\:w-48{width:12rem}.tpl\\:w-52{width:13rem}.tpl\\:w-56{width:14rem}.tpl\\:w-72{width:18rem}.tpl\\:w-\\[280px\\]{width:280px}.tpl\\:w-\\[300px\\]{width:300px}.tpl\\:w-\\[320px\\]{width:320px}.tpl\\:w-\\[360px\\]{width:360px}.tpl\\:w-\\[400px\\]{width:400px}.tpl\\:w-\\[600px\\]{width:600px}.tpl\\:w-full{width:100%}.tpl\\:w-px{width:1px}.tpl\\:max-w-2xl{max-width:42rem}.tpl\\:max-w-\\[220px\\]{max-width:220px}.tpl\\:max-w-\\[240px\\]{max-width:240px}.tpl\\:max-w-\\[320px\\]{max-width:320px}.tpl\\:max-w-\\[600px\\]{max-width:600px}.tpl\\:max-w-\\[1000px\\]{max-width:1000px}.tpl\\:max-w-full{max-width:100%}.tpl\\:max-w-md{max-width:28rem}.tpl\\:max-w-sm{max-width:24rem}.tpl\\:min-w-0{min-width:0}.tpl\\:min-w-6{min-width:1.5rem}.tpl\\:min-w-\\[20px\\]{min-width:20px}.tpl\\:min-w-\\[200px\\]{min-width:200px}.tpl\\:flex-1{flex:1}.tpl\\:shrink-0{flex-shrink:0}.tpl\\:origin-top-right{transform-origin:100% 0}.tpl\\:-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-x-0{--tw-translate-x: 0rem ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-x-4{--tw-translate-x: 1rem ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:-translate-y-2{--tw-translate-y: -.5rem ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-y-0{--tw-translate-y: 0rem ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-y-1{--tw-translate-y: .25rem ;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:translate-y-\\[-8px\\]{--tw-translate-y:-8px;translate:var(--tw-translate-x) var(--tw-translate-y)}.tpl\\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.tpl\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.tpl\\:-rotate-90{rotate:-90deg}.tpl\\:rotate-0{rotate:0deg}.tpl\\:rotate-45{rotate:45deg}.tpl\\:rotate-90{rotate:90deg}.tpl\\:rotate-180{rotate:180deg}.tpl\\:animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.tpl\\:animate-spin{animation:1s linear infinite spin}.tpl\\:cursor-default{cursor:default}.tpl\\:cursor-grab{cursor:grab}.tpl\\:cursor-help{cursor:help}.tpl\\:cursor-not-allowed{cursor:not-allowed}.tpl\\:cursor-pointer{cursor:pointer}.tpl\\:resize-none{resize:none}.tpl\\:resize-y{resize:vertical}.tpl\\:list-none{list-style-type:none}.tpl\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tpl\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.tpl\\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.tpl\\:grid-cols-\\[1fr_auto_1fr\\]{grid-template-columns:1fr auto 1fr}.tpl\\:flex-col{flex-direction:column}.tpl\\:flex-wrap{flex-wrap:wrap}.tpl\\:items-center{align-items:center}.tpl\\:items-end{align-items:flex-end}.tpl\\:items-start{align-items:flex-start}.tpl\\:items-stretch{align-items:stretch}.tpl\\:justify-between{justify-content:space-between}.tpl\\:justify-center{justify-content:center}.tpl\\:justify-end{justify-content:flex-end}.tpl\\:gap-0{gap:0}.tpl\\:gap-0\\.5{gap:.125rem}.tpl\\:gap-1{gap:.25rem}.tpl\\:gap-1\\.5{gap:.375rem}.tpl\\:gap-2{gap:.5rem}.tpl\\:gap-2\\.5{gap:.625rem}.tpl\\:gap-3{gap:.75rem}.tpl\\:gap-4{gap:1rem}.tpl\\:gap-5{gap:1.25rem}.tpl\\:gap-6{gap:1.5rem}.tpl\\:gap-10{gap:2.5rem}:where(.tpl\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem * var(--tw-space-y-reverse));margin-block-end:calc(.25rem * calc(1 - var(--tw-space-y-reverse)))}:where(.tpl\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.5rem * var(--tw-space-y-reverse));margin-block-end:calc(.5rem * calc(1 - var(--tw-space-y-reverse)))}:where(.tpl\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.75rem * var(--tw-space-y-reverse));margin-block-end:calc(.75rem * calc(1 - var(--tw-space-y-reverse)))}.tpl\\:gap-x-1{column-gap:.25rem}:where(.tpl\\:-space-x-1\\.5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-.375rem * var(--tw-space-x-reverse));margin-inline-end:calc(-.375rem * calc(1 - var(--tw-space-x-reverse)))}.tpl\\:gap-y-0\\.5{row-gap:.125rem}.tpl\\:self-end{align-self:flex-end}.tpl\\:self-start{align-self:flex-start}.tpl\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tpl\\:overflow-auto{overflow:auto}.tpl\\:overflow-hidden{overflow:hidden}.tpl\\:overflow-x-auto{overflow-x:auto}.tpl\\:overflow-y-auto{overflow-y:auto}.tpl\\:rounded{border-radius:.25rem}.tpl\\:rounded-\\[calc\\(var\\(--tpl-radius-sm\\)-2px\\)\\]{border-radius:calc(var(--tpl-radius-sm) - 2px)}.tpl\\:rounded-\\[var\\(--tpl-radius\\)\\]{border-radius:var(--tpl-radius)}.tpl\\:rounded-\\[var\\(--tpl-radius-lg\\)\\]{border-radius:var(--tpl-radius-lg)}.tpl\\:rounded-\\[var\\(--tpl-radius-md\\)\\]{border-radius:var(--tpl-radius-md)}.tpl\\:rounded-\\[var\\(--tpl-radius-sm\\)\\]{border-radius:var(--tpl-radius-sm)}.tpl\\:rounded-full{border-radius:3.40282e38px}.tpl\\:rounded-lg{border-radius:.5rem}.tpl\\:rounded-md{border-radius:.375rem}.tpl\\:rounded-sm{border-radius:.25rem}.tpl\\:rounded-xl{border-radius:.75rem}.tpl\\:rounded-l-\\[var\\(--tpl-radius-sm\\)\\]{border-top-left-radius:var(--tpl-radius-sm);border-bottom-left-radius:var(--tpl-radius-sm)}.tpl\\:rounded-tl-lg{border-top-left-radius:.5rem}.tpl\\:rounded-r-\\[var\\(--tpl-radius-sm\\)\\]{border-top-right-radius:var(--tpl-radius-sm);border-bottom-right-radius:var(--tpl-radius-sm)}.tpl\\:rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.tpl\\:border{border-style:var(--tw-border-style);border-width:1px}.tpl\\:border-0{border-style:var(--tw-border-style);border-width:0}.tpl\\:border-2{border-style:var(--tw-border-style);border-width:2px}.tpl\\:border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.tpl\\:border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.tpl\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.tpl\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.tpl\\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.tpl\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.tpl\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.tpl\\:border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.tpl\\:border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.tpl\\:border-dashed{--tw-border-style:dashed;border-style:dashed}.tpl\\:border-none{--tw-border-style:none;border-style:none}.tpl\\:border-\\[var\\(--tpl-bg\\)\\]{border-color:var(--tpl-bg)}.tpl\\:border-\\[var\\(--tpl-border\\)\\]{border-color:var(--tpl-border)}.tpl\\:border-\\[var\\(--tpl-border-light\\)\\]{border-color:var(--tpl-border-light)}.tpl\\:border-\\[var\\(--tpl-danger\\)\\]{border-color:var(--tpl-danger)}.tpl\\:border-\\[var\\(--tpl-primary\\)\\]{border-color:var(--tpl-primary)}.tpl\\:border-\\[var\\(--tpl-primary-hover\\)\\]{border-color:var(--tpl-primary-hover)}.tpl\\:border-\\[var\\(--tpl-warning\\)\\]{border-color:var(--tpl-warning)}.tpl\\:border-transparent{border-color:#0000}.tpl\\:border-b-\\[var\\(--tpl-border-light\\)\\]{border-bottom-color:var(--tpl-border-light)}.tpl\\:border-l-transparent{border-left-color:#0000}.tpl\\:bg-\\[var\\(--tpl-bg\\)\\]{background-color:var(--tpl-bg)}.tpl\\:bg-\\[var\\(--tpl-bg-active\\)\\]{background-color:var(--tpl-bg-active)}.tpl\\:bg-\\[var\\(--tpl-bg-elevated\\)\\]{background-color:var(--tpl-bg-elevated)}.tpl\\:bg-\\[var\\(--tpl-bg-hover\\)\\]{background-color:var(--tpl-bg-hover)}.tpl\\:bg-\\[var\\(--tpl-border\\)\\]{background-color:var(--tpl-border)}.tpl\\:bg-\\[var\\(--tpl-canvas-bg\\)\\]{background-color:var(--tpl-canvas-bg)}.tpl\\:bg-\\[var\\(--tpl-danger\\)\\]{background-color:var(--tpl-danger)}.tpl\\:bg-\\[var\\(--tpl-danger-light\\)\\]{background-color:var(--tpl-danger-light)}.tpl\\:bg-\\[var\\(--tpl-primary\\)\\]{background-color:var(--tpl-primary)}.tpl\\:bg-\\[var\\(--tpl-primary-light\\)\\]{background-color:var(--tpl-primary-light)}.tpl\\:bg-\\[var\\(--tpl-warning-light\\)\\]{background-color:var(--tpl-warning-light)}.tpl\\:bg-black\\/30{background-color:oklab(0% none none/.3)}.tpl\\:bg-black\\/40{background-color:oklab(0% none none/.4)}.tpl\\:bg-transparent{background-color:#0000}.tpl\\:bg-white\\/90{background-color:#ffffffe6}.tpl\\:object-contain{object-fit:contain}.tpl\\:object-cover{object-fit:cover}.tpl\\:p-0{padding:0}.tpl\\:p-0\\.5{padding:.125rem}.tpl\\:p-1{padding:.25rem}.tpl\\:p-1\\.5{padding:.375rem}.tpl\\:p-2{padding:.5rem}.tpl\\:p-3{padding:.75rem}.tpl\\:p-4{padding:1rem}.tpl\\:p-5{padding:1.25rem}.tpl\\:p-6{padding:1.5rem}.tpl\\:p-8{padding:2rem}.tpl\\:px-0\\.5{padding-inline:.125rem}.tpl\\:px-1{padding-inline:.25rem}.tpl\\:px-1\\.5{padding-inline:.375rem}.tpl\\:px-2{padding-inline:.5rem}.tpl\\:px-2\\.5{padding-inline:.625rem}.tpl\\:px-3{padding-inline:.75rem}.tpl\\:px-3\\.5{padding-inline:.875rem}.tpl\\:px-4{padding-inline:1rem}.tpl\\:px-5{padding-inline:1.25rem}.tpl\\:px-6{padding-inline:1.5rem}.tpl\\:px-8{padding-inline:2rem}.tpl\\:px-10{padding-inline:2.5rem}.tpl\\:py-0{padding-block:0}.tpl\\:py-0\\.5{padding-block:.125rem}.tpl\\:py-1{padding-block:.25rem}.tpl\\:py-1\\.5{padding-block:.375rem}.tpl\\:py-2{padding-block:.5rem}.tpl\\:py-2\\.5{padding-block:.625rem}.tpl\\:py-3{padding-block:.75rem}.tpl\\:py-3\\.5{padding-block:.875rem}.tpl\\:py-4{padding-block:1rem}.tpl\\:py-5{padding-block:1.25rem}.tpl\\:py-6{padding-block:1.5rem}.tpl\\:py-8{padding-block:2rem}.tpl\\:py-10{padding-block:2.5rem}.tpl\\:py-12{padding-block:3rem}.tpl\\:py-16{padding-block:4rem}.tpl\\:py-\\[5px\\]{padding-block:5px}.tpl\\:py-\\[7px\\]{padding-block:7px}.tpl\\:py-px{padding-block:1px}.tpl\\:pt-1{padding-top:.25rem}.tpl\\:pt-2{padding-top:.5rem}.tpl\\:pt-3{padding-top:.75rem}.tpl\\:pt-4{padding-top:1rem}.tpl\\:pr-2{padding-right:.5rem}.tpl\\:pr-3{padding-right:.75rem}.tpl\\:pr-4{padding-right:1rem}.tpl\\:pr-6{padding-right:1.5rem}.tpl\\:pr-7{padding-right:1.75rem}.tpl\\:pr-8{padding-right:2rem}.tpl\\:pb-1{padding-bottom:.25rem}.tpl\\:pb-2{padding-bottom:.5rem}.tpl\\:pb-3{padding-bottom:.75rem}.tpl\\:pb-4{padding-bottom:1rem}.tpl\\:pl-2{padding-left:.5rem}.tpl\\:pl-2\\.5{padding-left:.625rem}.tpl\\:pl-3{padding-left:.75rem}.tpl\\:pl-8{padding-left:2rem}.tpl\\:pl-9{padding-left:2.25rem}.tpl\\:pl-\\[18px\\]{padding-left:18px}.tpl\\:text-center{text-align:center}.tpl\\:text-left{text-align:left}.tpl\\:font-\\[inherit\\]{font-family:inherit}.tpl\\:font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.tpl\\:font-sans{font-family:Geist,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tpl\\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,calc(2.5 / 2.25))}.tpl\\:text-base{font-size:1rem;line-height:var(--tw-leading, 1.5 )}.tpl\\:text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75 / 1.125))}.tpl\\:text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25 / .875))}.tpl\\:text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1 / .75))}.tpl\\:text-\\[0\\.8em\\]{font-size:.8em}.tpl\\:text-\\[0\\.9em\\]{font-size:.9em}.tpl\\:text-\\[1em\\]{font-size:1em}.tpl\\:text-\\[8px\\]{font-size:8px}.tpl\\:text-\\[9px\\]{font-size:9px}.tpl\\:text-\\[10px\\]{font-size:10px}.tpl\\:text-\\[11px\\]{font-size:11px}.tpl\\:text-\\[12px\\]{font-size:12px}.tpl\\:text-\\[13px\\]{font-size:13px}.tpl\\:text-\\[length\\:inherit\\]{font-size:inherit}.tpl\\:leading-normal{--tw-leading:1.5;line-height:1.5}.tpl\\:leading-relaxed{--tw-leading:1.625;line-height:1.625}.tpl\\:leading-snug{--tw-leading:1.375;line-height:1.375}.tpl\\:leading-tight{--tw-leading:1.25;line-height:1.25}.tpl\\:font-\\[var\\(--tpl-font-family\\)\\]{--tw-font-weight:var(--tpl-font-family);font-weight:var(--tpl-font-family)}.tpl\\:font-bold{--tw-font-weight:700;font-weight:700}.tpl\\:font-medium{--tw-font-weight:500;font-weight:500}.tpl\\:font-normal{--tw-font-weight:400;font-weight:400}.tpl\\:font-semibold{--tw-font-weight:600;font-weight:600}.tpl\\:tracking-wide{--tw-tracking:.025em;letter-spacing:.025em}.tpl\\:tracking-wider{--tw-tracking:.05em;letter-spacing:.05em}.tpl\\:whitespace-nowrap{white-space:nowrap}.tpl\\:whitespace-pre-wrap{white-space:pre-wrap}.tpl\\:text-\\[var\\(--tpl-bg\\)\\]{color:var(--tpl-bg)}.tpl\\:text-\\[var\\(--tpl-border\\)\\]{color:var(--tpl-border)}.tpl\\:text-\\[var\\(--tpl-border-light\\)\\]{color:var(--tpl-border-light)}.tpl\\:text-\\[var\\(--tpl-danger\\)\\]{color:var(--tpl-danger)}.tpl\\:text-\\[var\\(--tpl-primary\\)\\]{color:var(--tpl-primary)}.tpl\\:text-\\[var\\(--tpl-primary-hover\\)\\]{color:var(--tpl-primary-hover)}.tpl\\:text-\\[var\\(--tpl-success\\)\\]{color:var(--tpl-success)}.tpl\\:text-\\[var\\(--tpl-text\\)\\]{color:var(--tpl-text)}.tpl\\:text-\\[var\\(--tpl-text-dim\\)\\]{color:var(--tpl-text-dim)}.tpl\\:text-\\[var\\(--tpl-text-muted\\)\\]{color:var(--tpl-text-muted)}.tpl\\:text-\\[var\\(--tpl-warning\\)\\]{color:var(--tpl-warning)}.tpl\\:text-white{color:#fff}.tpl\\:normal-case{text-transform:none}.tpl\\:uppercase{text-transform:uppercase}.tpl\\:italic{font-style:italic}.tpl\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tpl\\:no-underline{text-decoration-line:none}.tpl\\:underline{text-decoration-line:underline}.tpl\\:accent-\\[var\\(--tpl-primary\\)\\]{accent-color:var(--tpl-primary)}.tpl\\:opacity-0{opacity:0}.tpl\\:opacity-50{opacity:.5}.tpl\\:opacity-60{opacity:.6}.tpl\\:opacity-70{opacity:.7}.tpl\\:opacity-90{opacity:.9}.tpl\\:opacity-100{opacity:1}.tpl\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-\\[var\\(--tpl-ring\\)\\]{--tw-shadow:var(--tpl-ring);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-\\[var\\(--tpl-shadow\\)\\]{--tw-shadow:var(--tpl-shadow);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-\\[var\\(--tpl-shadow-lg\\)\\]{--tw-shadow:var(--tpl-shadow-lg);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-\\[var\\(--tpl-shadow-md\\)\\]{--tw-shadow:var(--tpl-shadow-md);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-\\[var\\(--tpl-shadow-sm\\)\\]{--tw-shadow:var(--tpl-shadow-sm);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:ring-\\[var\\(--tpl-border\\)\\]{--tw-ring-color:var(--tpl-border)}.tpl\\:backdrop-blur-\\[2px\\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.tpl\\:transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.tpl\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.tpl\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.tpl\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.tpl\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.tpl\\:duration-\\[80ms\\]{--tw-duration:80ms;transition-duration:80ms}.tpl\\:duration-\\[120ms\\]{--tw-duration:.12s;transition-duration:.12s}.tpl\\:ease-\\[cubic-bezier\\(0\\.16\\,1\\,0\\.3\\,1\\)\\]{--tw-ease:cubic-bezier(.16,1,.3,1);transition-timing-function:cubic-bezier(.16,1,.3,1)}.tpl\\:ease-in{--tw-ease:cubic-bezier(.4, 0, 1, 1);transition-timing-function:cubic-bezier(.4,0,1,1)}.tpl\\:ease-out{--tw-ease:cubic-bezier(0, 0, .2, 1);transition-timing-function:cubic-bezier(0,0,.2,1)}.tpl\\:outline-none{--tw-outline-style:none;outline-style:none}.tpl\\:select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.tpl\\:group-hover\\:bg-black\\/40:is(:where(.tpl\\:group):hover *){background-color:oklab(0% none none/.4)}.tpl\\:group-hover\\:opacity-100:is(:where(.tpl\\:group):hover *){opacity:1}}.tpl\\:placeholder\\:text-\\[var\\(--tpl-text-dim\\)\\]::placeholder{color:var(--tpl-text-dim)}.tpl\\:last\\:mb-0:last-child{margin-bottom:0}@media(hover:hover){.tpl\\:hover\\:z-10:hover{z-index:10}.tpl\\:hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.tpl\\:hover\\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.tpl\\:hover\\:border-\\[var\\(--tpl-danger\\)\\]:hover{border-color:var(--tpl-danger)}.tpl\\:hover\\:border-\\[var\\(--tpl-primary\\)\\]:hover{border-color:var(--tpl-primary)}.tpl\\:hover\\:bg-\\[var\\(--tpl-bg-active\\)\\]:hover{background-color:var(--tpl-bg-active)}.tpl\\:hover\\:bg-\\[var\\(--tpl-bg-hover\\)\\]:hover{background-color:var(--tpl-bg-hover)}.tpl\\:hover\\:bg-\\[var\\(--tpl-danger-light\\)\\]:hover{background-color:var(--tpl-danger-light)}.tpl\\:hover\\:bg-\\[var\\(--tpl-primary-hover\\)\\]:hover{background-color:var(--tpl-primary-hover)}.tpl\\:hover\\:text-\\[var\\(--tpl-danger\\)\\]:hover{color:var(--tpl-danger)}.tpl\\:hover\\:text-\\[var\\(--tpl-primary\\)\\]:hover{color:var(--tpl-primary)}.tpl\\:hover\\:text-\\[var\\(--tpl-text\\)\\]:hover{color:var(--tpl-text)}.tpl\\:hover\\:underline:hover{text-decoration-line:underline}.tpl\\:hover\\:opacity-80:hover{opacity:.8}.tpl\\:hover\\:opacity-90:hover{opacity:.9}}.tpl\\:focus\\:border-\\[var\\(--tpl-primary\\)\\]:focus{border-color:var(--tpl-primary)}.tpl\\:focus\\:shadow-\\[0_0_0_3px_var\\(--tpl-primary-light\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--tpl-primary-light));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:focus\\:shadow-\\[var\\(--tpl-ring\\)\\]:focus{--tw-shadow:var(--tpl-ring);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.tpl\\:active\\:cursor-grabbing:active{cursor:grabbing}.tpl\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.tpl\\:disabled\\:opacity-30:disabled{opacity:.3}.tpl\\:disabled\\:opacity-40:disabled{opacity:.4}.tpl\\:disabled\\:opacity-50:disabled{opacity:.5}@layer base,components;.tpl{--tpl-bg:var(--tpl-user-bg,oklch(99.5% .002 60));--tpl-bg-elevated:var(--tpl-user-bg-elevated,oklch(98% .004 60));--tpl-bg-hover:var(--tpl-user-bg-hover,oklch(96% .006 60));--tpl-bg-active:var(--tpl-user-bg-active,oklch(93.5% .008 60));--tpl-border:var(--tpl-user-border,oklch(92% .006 60));--tpl-border-light:var(--tpl-user-border-light,oklch(86% .01 60));--tpl-text:var(--tpl-user-text,oklch(18% .01 60));--tpl-text-muted:var(--tpl-user-text-muted,oklch(50% .015 60));--tpl-text-dim:var(--tpl-user-text-dim,oklch(68% .012 60));--tpl-primary:var(--tpl-user-primary,oklch(70% .16 55));--tpl-primary-hover:var(--tpl-user-primary-hover,oklch(63% .17 55));--tpl-primary-light:var(--tpl-user-primary-light,oklch(95% .04 55));--tpl-secondary:var(--tpl-user-secondary,oklch(60% .118 184.71));--tpl-secondary-hover:var(--tpl-user-secondary-hover,oklch(53.2% .105 186.39));--tpl-secondary-light:var(--tpl-user-secondary-light,oklch(93.8% .03 186.82));--tpl-success:var(--tpl-user-success,oklch(62.8% .194 155.1));--tpl-success-light:var(--tpl-user-success-light,oklch(93.6% .043 163.51));--tpl-warning:var(--tpl-user-warning,oklch(76.9% .168 70.08));--tpl-warning-light:var(--tpl-user-warning-light,oklch(95% .038 73.59));--tpl-danger:var(--tpl-user-danger,oklch(63.7% .237 25.33));--tpl-danger-light:var(--tpl-user-danger-light,oklch(93.6% .032 17.72));--tpl-canvas-bg:var(--tpl-user-canvas-bg,oklch(97.5% .003 60));--tpl-radius:var(--tpl-user-radius,10px);--tpl-radius-sm:var(--tpl-user-radius-sm,7px);--tpl-radius-lg:var(--tpl-user-radius-lg,14px);--tpl-font-family:var(--tpl-user-font-family,\"Geist\", ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");--tpl-shadow-sm:var(--tpl-user-shadow-sm,0 1px 2px #00000008);--tpl-shadow:var(--tpl-user-shadow,0 1px 2px #0000000a, 0 1px 3px #00000008);--tpl-shadow-md:var(--tpl-user-shadow-md,0 2px 8px #0000000f, 0 1px 3px #0000000a);--tpl-shadow-lg:var(--tpl-user-shadow-lg,0 4px 16px #00000014, 0 2px 6px #0000000a);--tpl-shadow-xl:var(--tpl-user-shadow-xl,0 8px 32px #0000001a, 0 4px 12px #0000000f);--tpl-overlay:var(--tpl-user-overlay,#00000080);--tpl-ring:var(--tpl-user-ring,0 0 0 3px var(--tpl-primary-light));--tpl-transition:var(--tpl-user-transition,.12s cubic-bezier(.16, 1, .3, 1))}.tpl[data-tpl-theme=dark]{--tpl-bg:var(--tpl-user-dark-bg,oklch(16% .005 60));--tpl-bg-elevated:var(--tpl-user-dark-bg-elevated,oklch(21% .006 60));--tpl-bg-hover:var(--tpl-user-dark-bg-hover,oklch(26% .007 60));--tpl-bg-active:var(--tpl-user-dark-bg-active,oklch(30% .008 60));--tpl-border:var(--tpl-user-dark-border,oklch(30% .006 60));--tpl-border-light:var(--tpl-user-dark-border-light,oklch(38% .008 60));--tpl-text:var(--tpl-user-dark-text,oklch(93% .005 60));--tpl-text-muted:var(--tpl-user-dark-text-muted,oklch(65% .01 60));--tpl-text-dim:var(--tpl-user-dark-text-dim,oklch(50% .008 60));--tpl-primary:var(--tpl-user-dark-primary,oklch(73% .15 55));--tpl-primary-hover:var(--tpl-user-dark-primary-hover,oklch(78% .14 55));--tpl-primary-light:var(--tpl-user-dark-primary-light,oklch(28% .05 55));--tpl-secondary:var(--tpl-user-dark-secondary,oklch(63% .11 184.71));--tpl-secondary-hover:var(--tpl-user-dark-secondary-hover,oklch(68% .1 186.39));--tpl-secondary-light:var(--tpl-user-dark-secondary-light,oklch(25% .03 186.82));--tpl-success:var(--tpl-user-dark-success,oklch(65% .18 155.1));--tpl-success-light:var(--tpl-user-dark-success-light,oklch(25% .04 163.51));--tpl-warning:var(--tpl-user-dark-warning,oklch(78% .16 70.08));--tpl-warning-light:var(--tpl-user-dark-warning-light,oklch(28% .04 73.59));--tpl-danger:var(--tpl-user-dark-danger,oklch(65% .22 25.33));--tpl-danger-light:var(--tpl-user-dark-danger-light,oklch(25% .04 17.72));--tpl-canvas-bg:var(--tpl-user-dark-canvas-bg,oklch(10% .003 60));--tpl-shadow-sm:var(--tpl-user-dark-shadow-sm,0 1px 2px #0003);--tpl-shadow:var(--tpl-user-dark-shadow,0 1px 2px #0000004d, 0 1px 3px #0003);--tpl-shadow-md:var(--tpl-user-dark-shadow-md,0 2px 8px #00000059, 0 1px 3px #00000040);--tpl-shadow-lg:var(--tpl-user-dark-shadow-lg,0 4px 16px #0006, 0 2px 6px #0000004d);--tpl-shadow-xl:var(--tpl-user-dark-shadow-xl,0 8px 32px #00000080, 0 4px 12px #00000059);--tpl-overlay:var(--tpl-user-dark-overlay,#000000b3);--tpl-ring:var(--tpl-user-dark-ring,0 0 0 3px var(--tpl-primary-light))}.tpl[data-tpl-theme=dark] .tpl-canvas-wrapper{--tpl-bg-elevated:oklch(98% .004 60);--tpl-border-light:oklch(86% .01 60);--tpl-text:oklch(18% .01 60);--tpl-text-muted:oklch(50% .015 60);--tpl-text-dim:oklch(68% .012 60);--tpl-primary-light:oklch(95% .04 55);--tpl-primary-hover:oklch(60% .16 55);color:var(--tpl-text)}.tpl{height:100%;font-family:Geist,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:.875rem;line-height:var(--tw-leading,calc(1.25 / .875));--tw-leading:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--tpl-bg);min-height:600px;color:var(--tpl-text);line-height:1.5;font-family:var(--tpl-font-family);flex-direction:column;display:flex}.tpl button,.tpl input,.tpl select,.tpl textarea{font-family:inherit}.tpl button{cursor:pointer;background:0 0;border:none}.tpl button:focus-visible,.tpl input:focus-visible,.tpl select:focus-visible,.tpl textarea:focus-visible{box-shadow:var(--tpl-ring);outline:none}.tpl ::-webkit-scrollbar{width:6px;height:6px}.tpl ::-webkit-scrollbar-track{background:0 0}.tpl ::-webkit-scrollbar-thumb{background-color:var(--tpl-border-light)}@supports (color:color-mix(in lab,red,red)){.tpl ::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--tpl-border-light) 60%,transparent)}}.tpl ::-webkit-scrollbar-thumb{border-radius:.25rem}.tpl ::-webkit-scrollbar-thumb:hover{background-color:var(--tpl-border-light)}@keyframes tpl-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes tpl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tpl-dot-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.tpl-popover-root{z-index:var(--z-modal);position:relative}.tpl-pulse{animation:2s infinite tpl-pulse}.tpl-spinner{animation:1s linear infinite tpl-spin}.tpl-dot{animation:1.2s ease-in-out infinite tpl-dot-bounce}@keyframes tpl-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes tpl-scale-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes tpl-slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes tpl-slide-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tpl-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tpl-fade-in{animation:.2s cubic-bezier(.16,1,.3,1) tpl-fade-in}.tpl-scale-in{animation:.15s cubic-bezier(.16,1,.3,1) tpl-scale-in}.tpl-slide-in-right{animation:.25s cubic-bezier(.16,1,.3,1) tpl-slide-in-right}.tpl-slide-in-up{animation:.2s cubic-bezier(.16,1,.3,1) tpl-slide-in-up}.tpl-shimmer{background:linear-gradient(90deg,var(--tpl-bg-hover) 25%,var(--tpl-bg-active) 50%,var(--tpl-bg-hover) 75%);background-size:200% 100%;animation:1.5s linear infinite tpl-shimmer}.tpl-preview-mode .tpl-block--idle,.tpl-preview-mode .tpl-block--idle:hover,.tpl-preview-mode .tpl-block--selected{box-shadow:none!important;outline:none!important}.tpl-preview-mode .tpl-block{cursor:default;pointer-events:none}.tpl-preview-mode .tpl-block-actions,.tpl-preview-mode .tpl-block-hidden-overlay,.tpl-preview-mode .tpl-condition-toggle,.tpl-preview-mode .tpl-comment-indicator,.tpl-preview-mode .tpl-collab-lock{display:none}.tpl-ghost{border:none!important;border-top:2px dotted var(--tpl-primary)!important;background-color:#0000!important;justify-content:center!important;align-items:center!important;width:100%!important;height:0!important;min-height:0!important;max-height:0!important;margin:12px 0!important;padding:0!important;display:flex!important;position:relative!important;overflow:visible!important}@supports (color:color-mix(in lab,red,red)){.tpl-ghost{border-top:2px dotted color-mix(in srgb,var(--tpl-primary) 50%,transparent)!important}}.tpl-ghost{box-shadow:none!important;border-radius:0!important}.tpl-ghost>*{display:none!important}.tpl-ghost:before{content:var(--tpl-drop-text,\"Drop here\");white-space:nowrap!important;color:var(--tpl-primary)!important;background-color:var(--tpl-primary)!important;padding:2px 8px!important;font-size:12px!important;font-weight:500!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}@supports (color:color-mix(in lab,red,red)){.tpl-ghost:before{background-color:color-mix(in srgb,var(--tpl-primary) 15%,var(--tpl-bg))!important}}.tpl-ghost:before{border-radius:var(--tpl-radius-sm)!important;box-shadow:none!important}.tpl-canvas-empty .tpl-ghost,.tpl-sidebar-rail .tpl-ghost{display:none!important}.tpl-dragging{opacity:.8;box-shadow:var(--tpl-shadow-xl)}.tpl-block--lifted{outline:2px dashed var(--tpl-primary)!important;outline-offset:2px!important;box-shadow:var(--tpl-shadow-xl),0 0 0 4px var(--tpl-primary)!important}@supports (color:color-mix(in lab,red,red)){.tpl-block--lifted{box-shadow:var(--tpl-shadow-xl),0 0 0 4px color-mix(in srgb,var(--tpl-primary) 20%,transparent)!important}}.tpl-block--lifted{transition:transform .15s cubic-bezier(.16,1,.3,1),box-shadow .15s cubic-bezier(.16,1,.3,1);transform:scale(1.01)}.tpl-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tpl-text-toolbar-btn{cursor:pointer;--tw-border-style:none;width:2rem;height:2rem;transition-property:all;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s);--tw-duration:.15s;color:var(--tpl-text);background-color:#0000;border-style:none;border-radius:.25rem;justify-content:center;align-items:center;padding:0;transition-duration:.15s;display:flex}.tpl-text-toolbar-btn:hover{background-color:var(--tpl-bg-active)}.tpl-text-toolbar-btn--active{box-shadow:inset 0 0 0 1.5px var(--tpl-primary-hover);background-color:var(--tpl-primary)!important;color:var(--tpl-bg)!important}.tpl-text-toolbar-btn--active svg{stroke-width:2.75px}.tpl-text-content,.tpl-text-editable .tiptap{--tw-outline-style:none;outline-style:none}.tpl-text-editable{border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:1px;border-color:var(--tpl-primary);border-radius:.25rem;min-height:1.5em;padding:.5rem}.tpl-text-content p,.tpl-text-editable .tiptap p{margin:0 0 .5rem}:is(.tpl-text-content p,.tpl-text-editable .tiptap p):last-child{margin-bottom:0}.tpl-text-content ul,.tpl-text-content ol,.tpl-text-editable .tiptap ul,.tpl-text-editable .tiptap ol{margin-block:.5rem;padding-left:1.5rem}.tpl-text-content li,.tpl-text-editable .tiptap li{margin-block:.25rem}.tpl-text-content s,.tpl-text-editable .tiptap s{text-decoration-line:line-through}.tpl-text-content sub,.tpl-text-editable .tiptap sub{vertical-align:sub;font-size:.75em}.tpl-text-content sup,.tpl-text-editable .tiptap sup{vertical-align:super;font-size:.75em}.tpl-text-content a,.tpl-text-editable a{color:var(--tpl-primary);text-decoration-line:underline}.tpl-text-content span[data-merge-tag],.tpl-text-editable span[data-merge-tag]{--tw-font-weight:500;background-color:var(--tpl-primary);border-radius:.25rem;align-items:center;margin-inline:.125rem;padding-block:.125rem;padding-inline:.375rem;font-size:.9em;font-weight:500;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.tpl-text-content span[data-merge-tag],.tpl-text-editable span[data-merge-tag]{background-color:color-mix(in srgb,var(--tpl-primary) 20%,transparent)}}.tpl-text-content span[data-merge-tag],.tpl-text-editable span[data-merge-tag]{color:var(--tpl-primary)}.tpl-text-content span[data-logic-merge-tag],.tpl-text-editable span[data-logic-merge-tag]{--tw-font-weight:700;--tw-tracking:.025em;letter-spacing:.025em;text-transform:uppercase;border:1.5px solid var(--tpl-primary);background-color:#0000;border-radius:.25rem;align-items:center;margin-inline:.125rem;padding-block:.125rem;padding-inline:.375rem;font-size:.8em;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.tpl-text-content span[data-logic-merge-tag],.tpl-text-editable span[data-logic-merge-tag]{border:1.5px solid color-mix(in srgb,var(--tpl-primary) 50%,transparent)}}.tpl-text-content span[data-logic-merge-tag],.tpl-text-editable span[data-logic-merge-tag]{color:var(--tpl-primary)}.tpl-tooltip{position:relative}.tpl-tooltip:after{content:attr(data-tooltip);border-radius:var(--tpl-radius-sm);background-color:var(--tpl-text);color:var(--tpl-bg);white-space:normal;text-align:center;pointer-events:none;opacity:0;text-transform:none;z-index:50;max-width:220px;padding:4px 10px;font-size:12px;font-weight:500;line-height:1.4;transition:opacity .15s;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tpl-tooltip:before{content:\"\";border:4px solid #0000;border-bottom-color:var(--tpl-text);pointer-events:none;opacity:0;z-index:50;transition:opacity .15s;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.tpl-tooltip:hover:after,.tpl-tooltip:hover:before{opacity:1}.tpl.tpl-media-overlay{background-color:var(--tpl-overlay);-webkit-backdrop-filter:blur(8px);height:100%;min-height:0;color:var(--tpl-text);flex-direction:row;justify-content:center;align-items:center;display:flex}.tpl.tpl-text-toolbar{flex-direction:row;height:auto;min-height:0;display:flex}.tpl.tpl-link-dialog{background-color:var(--tpl-overlay);flex-direction:row;justify-content:center;align-items:center;height:100%;min-height:0;display:flex}.tpl-upload-zone-active{border-color:var(--tpl-primary)!important;background-color:var(--tpl-primary-light)!important}@property --tpl-comet-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}@property --tpl-comet-start{syntax:\"<percentage>\";inherits:false;initial-value:100%}@keyframes tpl-ai-comet{0%{--tpl-comet-angle:0deg;--tpl-comet-start:100%}1%{--tpl-comet-angle:24deg;--tpl-comet-start:88%}5%{--tpl-comet-angle:120deg;--tpl-comet-start:60%}25%{--tpl-comet-angle:600deg;--tpl-comet-start:60%}33%{--tpl-comet-angle:720deg;--tpl-comet-start:100%}to{--tpl-comet-angle:720deg;--tpl-comet-start:100%}}.tpl-ai-btn--idle{background-color:var(--tpl-primary-light);color:var(--tpl-primary-hover);box-shadow:none;z-index:0;position:relative}.tpl-ai-btn--idle:before{content:\"\";border-radius:inherit;background:conic-gradient(from var(--tpl-comet-angle),transparent 0%,transparent var(--tpl-comet-start),var(--tpl-primary) 80%,var(--tpl-primary) 90%,var(--tpl-primary) 97%,transparent 100%);padding:2px;position:absolute;inset:-2px}@supports (color:color-mix(in lab,red,red)){.tpl-ai-btn--idle:before{background:conic-gradient(from var(--tpl-comet-angle),transparent 0%,transparent var(--tpl-comet-start),color-mix(in srgb,var(--tpl-primary) 40%,transparent) 80%,var(--tpl-primary) 90%,var(--tpl-primary) 97%,transparent 100%)}}.tpl-ai-btn--idle:before{z-index:-1;pointer-events:none;animation:20s linear 3s infinite tpl-ai-comet;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.tpl-ai-btn--idle:hover{background-color:var(--tpl-primary);color:var(--tpl-bg);transform:translateY(-1px);box-shadow:0 0 0 3px var(--tpl-primary),0 4px 16px var(--tpl-primary)!important}@supports (color:color-mix(in lab,red,red)){.tpl-ai-btn--idle:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--tpl-primary) 20%,transparent),0 4px 16px color-mix(in srgb,var(--tpl-primary) 30%,transparent)!important}}.tpl-ai-btn--idle:hover:before{animation:none}.tpl-ai-btn--active{background-color:var(--tpl-primary-light);color:var(--tpl-primary-hover);border:1px solid var(--tpl-primary)}.tpl-ai-btn--active .tpl-ai-btn-icon{fill:var(--tpl-primary)}@supports (color:color-mix(in lab,red,red)){.tpl-ai-btn--active .tpl-ai-btn-icon{fill:color-mix(in srgb,var(--tpl-primary) 25%,transparent)}}.tpl-ai-btn--active:hover{background-color:var(--tpl-primary-light)}@supports (color:color-mix(in lab,red,red)){.tpl-ai-btn--active:hover{background-color:color-mix(in srgb,var(--tpl-primary-light) 80%,var(--tpl-primary))}}.tpl-merge-tag-delete:hover{color:var(--tpl-danger)!important}@media(prefers-reduced-motion:reduce){.tpl-pulse,.tpl-dot,.tpl-shimmer,.tpl-fade-in,.tpl-scale-in,.tpl-slide-in-right,.tpl-slide-in-up,.tpl-ai-btn--idle:before{animation:none}.tpl-shimmer{background:var(--tpl-bg-hover)}.tpl *,.tpl :before,.tpl :after{transition-duration:.01ms!important}.tpl-spinner{animation:1s linear infinite tpl-spin}}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}.tpl-restore-btn-enter-active[data-v-13f953c6]{transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.tpl-restore-btn-leave-active[data-v-13f953c6]{transition:opacity .15s ease-in,transform .15s ease-in}.tpl-restore-btn-enter-from[data-v-13f953c6],.tpl-restore-btn-leave-to[data-v-13f953c6]{opacity:0;transform:translateY(-8px) scale(.9)}.tpl-restore-btn-enter-to[data-v-13f953c6],.tpl-restore-btn-leave-from[data-v-13f953c6]{opacity:1;transform:translateY(0) scale(1)}.tpl-restore-btn-enter-active[data-v-c00ce9ab]{transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.tpl-restore-btn-leave-active[data-v-c00ce9ab]{transition:opacity .15s ease-in,transform .15s ease-in}.tpl-restore-btn-enter-from[data-v-c00ce9ab],.tpl-restore-btn-leave-to[data-v-c00ce9ab]{opacity:0;transform:translateY(-8px) scale(.9)}.tpl-restore-btn-enter-to[data-v-c00ce9ab],.tpl-restore-btn-leave-from[data-v-c00ce9ab]{opacity:1;transform:translateY(0) scale(1)}.tpl-ai-feature-menu-item[data-v-07839fa3]:hover{background-color:var(--tpl-bg-hover)!important}.tpl-ai-slide-enter-active[data-v-a55e4bff]{transition:transform .28s cubic-bezier(.16,1,.3,1)}.tpl-ai-slide-leave-active[data-v-a55e4bff]{transition:transform .2s cubic-bezier(.16,1,.3,1)}.tpl-ai-input-wrapper[data-v-a55e4bff]:focus-within{border-color:var(--tpl-primary);box-shadow:var(--tpl-ring)}.tpl-ai-send-btn[data-v-a55e4bff]:not(:disabled):hover{transform:scale(1.05)}.tpl-suggestion-btn[data-v-a55e4bff]:hover{border-color:var(--tpl-primary)!important;background-color:var(--tpl-primary-light)!important}.tpl-comments-slide-enter-active[data-v-d204f573]{transition:transform .28s cubic-bezier(.16,1,.3,1)}.tpl-comments-slide-leave-active[data-v-d204f573]{transition:transform .2s cubic-bezier(.16,1,.3,1)}.tpl-comments-input-wrapper[data-v-d204f573]:focus-within{border-color:var(--tpl-primary);box-shadow:var(--tpl-ring)}.tpl-comments-send-btn[data-v-d204f573]:not(:disabled):hover{transform:scale(1.05)}.tpl-comment-filter[data-v-d204f573]{color:var(--tpl-text-muted);background-color:transparent}.tpl-comment-filter[data-v-d204f573]:hover{background-color:var(--tpl-bg-hover);color:var(--tpl-text)}.tpl-comment-filter--active[data-v-d204f573]{background-color:var(--tpl-primary-light);color:var(--tpl-primary)}.tpl-comment-action[data-v-d204f573]{color:var(--tpl-text-dim);background-color:transparent}.tpl-comment-action[data-v-d204f573]:hover{background-color:var(--tpl-bg-hover);color:var(--tpl-text)}.tpl-comment-delete[data-v-d204f573]:hover{background-color:var(--tpl-danger-light);color:var(--tpl-danger)}.tpl-comment-card[data-v-d204f573],.tpl-comment-reply-card[data-v-d204f573]{border-color:var(--tpl-border);background-color:var(--tpl-bg)}.tpl-resolve-enter-active[data-v-d204f573],.tpl-resolve-leave-active[data-v-d204f573]{transition:opacity .3s ease,transform .3s ease}.tpl-resolve-enter-from[data-v-d204f573],.tpl-resolve-leave-to[data-v-d204f573]{opacity:0;transform:translateY(-4px)}.tpl-resolve-icon[data-v-d204f573]{transition:color .3s ease,transform .2s ease}.tpl-resolve-icon[data-v-d204f573]:active{transform:scale(1.3)}.tpl-replies-enter-active[data-v-d204f573],.tpl-replies-leave-active[data-v-d204f573]{transition:opacity .25s ease,transform .25s ease}.tpl-replies-enter-from[data-v-d204f573],.tpl-replies-leave-to[data-v-d204f573]{opacity:0;transform:translateY(-4px)}.tpl-design-slide-enter-active[data-v-bdbf8d0d]{transition:transform .28s cubic-bezier(.16,1,.3,1)}.tpl-design-slide-leave-active[data-v-bdbf8d0d]{transition:transform .2s cubic-bezier(.16,1,.3,1)}.tpl-design-prompt-input[data-v-bdbf8d0d]:focus{border-color:var(--tpl-primary);box-shadow:var(--tpl-ring)}.tpl-design-dropzone[data-v-bdbf8d0d]:hover{border-color:var(--tpl-primary)!important;background-color:var(--tpl-primary-light)!important}.tpl-scoring-slide-enter-active[data-v-3a059e8d]{transition:transform .28s cubic-bezier(.16,1,.3,1)}.tpl-scoring-slide-leave-active[data-v-3a059e8d]{transition:transform .2s cubic-bezier(.16,1,.3,1)}.tpl-scoring-fix-btn[data-v-3a059e8d]:not(:disabled):hover{border-color:var(--tpl-primary)!important;background-color:var(--tpl-primary-light)!important}.tpl-module-delete-btn:hover{color:var(--tpl-danger)!important}\n/*$vite$:1*/", K = null;
198
+ function me() {
199
+ if (K === null) {
200
+ let e = new CSSStyleSheet();
201
+ e.replaceSync(pe), K = e;
202
+ }
203
+ return K;
204
+ }
205
+ function he(e) {
206
+ return () => {};
207
+ }
208
+ function q(e, t) {
209
+ if (!t) return {
210
+ target: e,
211
+ shadowRoot: null,
212
+ cleanup: () => {}
213
+ };
214
+ let n = e.shadowRoot ?? e.attachShadow({ mode: "open" });
215
+ for (n.adoptedStyleSheets = [me()]; n.firstChild;) n.removeChild(n.firstChild);
216
+ let r = document.createElement("div");
217
+ return r.className = "tpl-editor-host", r.style.cssText = "display:block;height:100%;width:100%;", n.appendChild(r), {
218
+ target: r,
219
+ shadowRoot: n,
220
+ cleanup: he(n)
221
+ };
222
+ }
223
+ var J = /* @__PURE__ */ new Map(), Y = null;
224
+ function X(e) {
225
+ let t = J.get(e);
226
+ t && (t.cleanup(), t.app.unmount(), J.delete(e), Y === e && (Y = null));
227
+ }
228
+ async function ge(e) {
193
229
  let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
194
230
  if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
195
- let n = await G(e.locale ?? "en"), i = w(e.fonts);
196
- J && Q(), J = f({ setup() {
197
- return () => r(P, {
231
+ let n = await U(e.locale ?? "en"), a = S(e.fonts);
232
+ X(t);
233
+ let o = q(t, e.shadowDom ?? !0), s = i(null), c = f({ setup() {
234
+ return () => r(M, {
198
235
  config: e,
199
236
  translations: n,
200
- fontsManager: i,
201
- ref: Y
237
+ fontsManager: a,
238
+ shadowRoot: o.shadowRoot ?? void 0,
239
+ ref: s
202
240
  });
203
- } }), J.mount(t);
204
- let a = {
241
+ } });
242
+ c.mount(o.target), J.set(t, {
243
+ app: c,
244
+ editorRef: s,
245
+ cleanup: o.cleanup
246
+ }), Y = t;
247
+ let l = {
205
248
  getContent() {
206
- return Y.value ? JSON.parse(JSON.stringify(Y.value.getContent())) : JSON.parse(JSON.stringify(e.content));
249
+ return s.value ? JSON.parse(JSON.stringify(s.value.getContent())) : JSON.parse(JSON.stringify(e.content));
207
250
  },
208
251
  setContent(t) {
209
- Y.value && Y.value.setContent(t), e.content = t;
252
+ s.value && s.value.setContent(t), e.content = t;
210
253
  },
211
254
  setTheme(e) {
212
- Y.value && Y.value.setTheme(e);
255
+ s.value && s.value.setTheme(e);
213
256
  },
214
- unmount: Q,
257
+ unmount: () => X(t),
215
258
  renderCustomBlock(e) {
216
- return Y.value ? Y.value.renderCustomBlock(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Editor not ready"));
259
+ return s.value ? s.value.renderCustomBlock(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Editor not ready"));
217
260
  },
218
- toMjml: () => q(a)
261
+ toMjml: () => fe(l)
219
262
  };
220
- return a;
263
+ return l;
221
264
  }
222
- var X = null, Z = i(null);
223
- async function fe(e) {
265
+ var Z = /* @__PURE__ */ new Map(), Q = null;
266
+ function $(e) {
267
+ let t = Z.get(e);
268
+ t && (t.cleanup(), t.app.unmount(), Z.delete(e), Q === e && (Q = null));
269
+ }
270
+ async function _e(e) {
224
271
  let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
225
272
  if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
226
- let { default: n } = await import("./CloudEditor-DYYaScFe.js"), [i, a] = await Promise.all([G(e.locale ?? "en"), K(e.locale ?? "en")]), o = w(e.fonts);
227
- return X && $(), await new Promise((s, c) => {
228
- let l = setTimeout(() => {
229
- c(/* @__PURE__ */ Error("[Templatical] Cloud editor initialization timed out"));
230
- }, x);
231
- X = f({ setup() {
273
+ let { default: n } = await import("./CloudEditor-DdZatjUe.js"), [a, o] = await Promise.all([U(e.locale ?? "en"), W(e.locale ?? "en")]), s = S(e.fonts);
274
+ $(t);
275
+ let c = q(t, e.shadowDom ?? !0), l = i(null);
276
+ return await new Promise((i, u) => {
277
+ let d = setTimeout(() => {
278
+ u(/* @__PURE__ */ Error("[Templatical] Cloud editor initialization timed out"));
279
+ }, b), p = f({ setup() {
232
280
  return () => r(n, {
233
281
  config: e,
234
- translations: i,
235
- cloudTranslations: a,
236
- fontsManager: o,
237
- ref: Z,
282
+ translations: a,
283
+ cloudTranslations: o,
284
+ fontsManager: s,
285
+ shadowRoot: c.shadowRoot ?? void 0,
286
+ ref: l,
238
287
  onReady: () => {
239
- clearTimeout(l), s();
288
+ clearTimeout(d), i();
240
289
  }
241
290
  });
242
- } }), X.mount(t);
291
+ } });
292
+ p.mount(c.target), Z.set(t, {
293
+ app: p,
294
+ editorRef: l,
295
+ cleanup: c.cleanup
296
+ }), Q = t;
243
297
  }), {
244
298
  getContent() {
245
- return Z.value ? JSON.parse(JSON.stringify(Z.value.getContent())) : JSON.parse(JSON.stringify(e.content));
299
+ return l.value ? JSON.parse(JSON.stringify(l.value.getContent())) : JSON.parse(JSON.stringify(e.content));
246
300
  },
247
301
  setContent(e) {
248
- Z.value && Z.value.setContent(e);
302
+ l.value && l.value.setContent(e);
249
303
  },
250
304
  setTheme(e) {
251
- Z.value && Z.value.setTheme(e);
305
+ l.value && l.value.setTheme(e);
252
306
  },
253
- unmount: $,
307
+ unmount: () => $(t),
254
308
  create(e) {
255
- return Z.value ? Z.value.create(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
309
+ return l.value ? l.value.create(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
256
310
  },
257
311
  load(e) {
258
- return Z.value ? Z.value.load(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
312
+ return l.value ? l.value.load(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
259
313
  },
260
314
  save() {
261
- return Z.value ? Z.value.save() : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
315
+ return l.value ? l.value.save() : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
262
316
  }
263
317
  };
264
318
  }
265
- function Q() {
266
- J && (J.unmount(), J = null, Y.value = null);
267
- }
268
- function $() {
269
- X && (X.unmount(), X = null, Z.value = null);
319
+ function ve() {
320
+ Y && X(Y);
270
321
  }
271
322
  //#endregion
272
- export { H as getBaseLocale, ue as getSupportedCloudLocales, le as getSupportedLocales, de as init, fe as initCloud, ce as isCloudLocaleSupported, se as isLocaleSupported, Q as unmount, w as useFonts };
323
+ export { B as getBaseLocale, de as getSupportedCloudLocales, ue as getSupportedLocales, ge as init, _e as initCloud, le as isCloudLocaleSupported, G as isLocaleSupported, ve as unmount, S as useFonts };
@@ -1,5 +1,5 @@
1
1
  import { G as e, w as t } from "./vue.runtime.esm-bundler-Bxqkjqhc.js";
2
- import { l as n } from "./keys-Bqs_0du9.js";
2
+ import { l as n } from "./keys-B5SJtPWf.js";
3
3
  //#region src/composables/useCloudI18n.ts
4
4
  function r(e, t) {
5
5
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);