@templatical/editor 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-J8iO_sX7.js} +14 -14
- package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-F2diEDgV.js} +10 -10
- package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-a-qlByxF.js} +5 -5
- package/dist/{CloudEditor-DaEfipBn.js → CloudEditor-CDjtwb4i.js} +236 -234
- package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-B_EnJLtW.js} +4 -4
- package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-DaP9BA_r.js} +18 -18
- package/dist/{CountdownBlock-DO9fziwf.js → CountdownBlock-DtAokAVw.js} +3 -3
- package/dist/{CountdownToolbar-BeII06yJ.js → CountdownToolbar-Dtqgwy0g.js} +3 -3
- package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-BHRlTqlT.js} +10 -10
- package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-u7ee3Wrl.js} +11 -11
- package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-CV3ID80N.js} +1 -1
- package/dist/ModuleBrowserModal-DOsdaS6s.js +201 -0
- package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-Cx4MOJ0X.js} +3 -3
- package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-D2mW_DhT.js} +4 -4
- package/dist/{ParagraphEditor-CZ-cmhX3.js → ParagraphEditor-DMzkVnST.js} +153 -133
- package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-CRCxCwKf.js} +7 -7
- package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-DuEKgumL.js} +8 -8
- package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-CVgiNJtE.js} +12 -12
- package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-lm0_9nYi.js} +25 -25
- package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-WBMdiW5S.js} +5 -5
- package/dist/{TitleEditor-DbNOcvhR.js → TitleEditor-eyT0h-Sa.js} +71 -55
- package/dist/{TplModal-BYb-X5Bj.js → TplModal-tjQ7OB0g.js} +4 -4
- package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-DdB3uTKD.js} +5 -5
- package/dist/bundle-stats.json +6 -6
- package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-D7rB2SBs.js} +8 -8
- package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-D7rB2SBs.js.map} +1 -1
- package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-DHOe0pgx.js} +5 -5
- package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-DHOe0pgx.js.map} +1 -1
- package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DNed_Ym0.js} +208 -206
- package/dist/cdn/chunks/CloudEditor-DNed_Ym0.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-sj_9Lee3.js} +4 -4
- package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-sj_9Lee3.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-C1Ikjpn4.js} +3 -3
- package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-C1Ikjpn4.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-j1G_X8rB.js} +4 -4
- package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-j1G_X8rB.js.map} +1 -1
- package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-CTOf3PsH.js} +11 -11
- package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-CTOf3PsH.js.map} +1 -1
- package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-DCh88-rr.js} +11 -8
- package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-DCh88-rr.js.map} +1 -1
- package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-DJqvTKmg.js} +21 -21
- package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-DJqvTKmg.js.map} +1 -1
- package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-Bu45XWSl.js} +5 -5
- package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-Bu45XWSl.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-DwZqLJp2.js} +130 -110
- package/dist/cdn/chunks/ParagraphEditor-DwZqLJp2.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-CIuZ-2DV.js} +4 -4
- package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-CIuZ-2DV.js.map} +1 -1
- package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-Bep0X2s_.js} +6 -6
- package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-Bep0X2s_.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-DO1-h3RY.js} +62 -46
- package/dist/cdn/chunks/TitleEditor-DO1-h3RY.js.map +1 -0
- package/dist/cdn/chunks/blockTypeIcons-8o24HVJu.js +22 -0
- package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-8o24HVJu.js.map} +1 -1
- package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
- package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
- package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kPCz_3zM.js} +14 -5
- package/dist/cdn/chunks/{draggable-Bci-fq8y.js.map → draggable-kPCz_3zM.js.map} +1 -1
- package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
- package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
- package/dist/cdn/chunks/{extensions-CuUjSmuA.js → extensions-iwBXnEwq.js} +16 -16
- package/dist/cdn/chunks/{extensions-CuUjSmuA.js.map → extensions-iwBXnEwq.js.map} +1 -1
- package/dist/cdn/chunks/{features-DU6lA8l1.js → features-CkTMVylx.js} +940 -812
- package/dist/cdn/chunks/features-CkTMVylx.js.map +1 -0
- package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-9zjCuoJx.js} +158 -152
- package/dist/cdn/chunks/icons-9zjCuoJx.js.map +1 -0
- package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +1 -1
- package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-DMRIPx4g.js} +552 -550
- package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-DMRIPx4g.js.map} +1 -1
- package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
- package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
- package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CdEqyLwF.js} +6 -3
- package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CdEqyLwF.js.map} +1 -1
- package/dist/cdn/chunks/quality-CyeUgs_c.js +2176 -0
- package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CyeUgs_c.js.map} +1 -1
- package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-BIKUEKDD.js} +39 -30
- package/dist/cdn/chunks/{renderer-CZKO-Tav.js.map → renderer-BIKUEKDD.js.map} +1 -1
- package/dist/cdn/chunks/{src-DsqSXXjk.js → src-pDy_imWG.js} +11 -11
- package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-pDy_imWG.js.map} +1 -1
- package/dist/cdn/chunks/{styles-DiAdtiz9.js → styles-D4Bd3SCx.js} +1197 -822
- package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +1 -0
- package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-BlLFFU3M.js} +2233 -2213
- package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +1 -0
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +117 -115
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{check-BRzXxFHr.js → check-CYJwFmjy.js} +1 -1
- package/dist/{chevron-down-DmEgzmYT.js → chevron-down-C5l-DzAA.js} +1 -1
- package/dist/{circle-alert-BStvZr3O.js → circle-alert-wf5HUFZY.js} +1 -1
- package/dist/{clock-Blwp_1R6.js → clock-Bj0bQw-K.js} +1 -1
- package/dist/{cloud-_olro76D.js → cloud-CoFDm9YA.js} +1 -1
- package/dist/{createLucideIcon-CmPAC-gt.js → createLucideIcon-Bad2kKE0.js} +4 -4
- package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
- package/dist/{dist-BwgjpLfr.js → dist-34OcyoK1.js} +1 -1
- package/dist/{dist-Cz79qrLL.js → dist-B7w6xTU6.js} +1 -1
- package/dist/{dist-DULfKmTh.js → dist-BX3gGwL8.js} +5 -5
- package/dist/{dist-412xXefB.js → dist-Bn703mnA.js} +1 -1
- package/dist/{dist-u0iIJH3V.js → dist-CADDCv0o.js} +1 -1
- package/dist/{dist-BNEdeWub.js → dist-CGvz7vkq.js} +1 -1
- package/dist/{dist-BlG7k25W.js → dist-CLpPNKy9.js} +1 -1
- package/dist/{dist-BCQZZUE9.js → dist-ChMninLH.js} +1 -1
- package/dist/{dist-b7Ak-CuM.js → dist-CrQZ_af9.js} +1 -1
- package/dist/{dist-DhKTdU52.js → dist-CyjyYg52.js} +1426 -1406
- package/dist/{dist-D6x1cQeh.js → dist-Dd3ibRZm.js} +2 -2
- package/dist/{dist-Cgry6fNv.js → dist-DuCzdgDA.js} +1 -1
- package/dist/{dist-o73iaGqy.js → dist-U5vfDdYI.js} +1 -1
- package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
- package/dist/{extensions-XPlNAKIL.js → extensions-J439b7y7.js} +5 -5
- package/dist/{image-up-BFPbw_Zq.js → image-up-x8-WXfsx.js} +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/{info-B_qLEBN2.js → info-RS_fGcGi.js} +1 -1
- package/dist/keys-DgYXDafq.js +10 -0
- package/dist/{list-checks-CGg7JxPm.js → list-checks-Bf7XdDyv.js} +1 -1
- package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-CLZ0_FvW.js} +1 -1
- package/dist/{message-circle-C3cHsCJl.js → message-circle-B-1bN9ab.js} +1 -1
- package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
- package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-CWKWqJYG.js} +1 -1
- package/dist/scan-line-BtK5dEai.js +31 -0
- package/dist/{send-k7npFJNO.js → send-Cn1IUdzh.js} +1 -1
- package/dist/{shield-check-CV6GbmCu.js → shield-check-CrvMk4Ea.js} +1 -1
- package/dist/{sparkles-C965Xop4.js → sparkles-CgfjwvnG.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/{styles-D0RCAWhB.js → styles-BUwDOWd3.js} +1221 -846
- package/dist/templatical-editor.js +95 -93
- package/dist/{text-align-start-Bxnps8fH.js → text-align-start-C3r_Rnvy.js} +1 -1
- package/dist/{trash-2-DpGb7fIt.js → trash-2-CjERg4x9.js} +1 -1
- package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-Chkny574.js} +1 -1
- package/dist/{upload-BF7sxd1_.js → upload-e5kDRkPb.js} +1 -1
- package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-cUQj9rmB.js} +1 -1
- package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-CYJKqXtI.js} +2 -2
- package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-8JxXDOA4.js} +1031 -903
- package/dist/{useI18n-CTs_bP9d.js → useI18n-BWqM8i78.js} +2 -2
- package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-NHC4ylza.js} +3 -3
- package/dist/usePopoverRoot-B1sdY4es.js +8 -0
- package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-BPa483TZ.js} +13 -4
- package/dist/{x-CGjkjdKK.js → x-DiPIbccg.js} +1 -1
- package/package.json +12 -12
- package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
- package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
- package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
- package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
- package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
- package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
- package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
- package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
- package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
- package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
- package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
- package/dist/keys-mFiJ5N0_.js +0 -10
- package/dist/scan-line-XYEqim_E.js +0 -25
- package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { A as e, B as t, L as n, M as r, O as i, Q as a, X as o, _ as s, at as c, b as l, c as u, d, f, g as p, h as m, j as h, k as g, l as _, m as v, o as y, ot as b, p as x, q as S, rt as C, st as w, t as T, v as E, y as D, z as O } from "./vue.runtime.esm-bundler-
|
|
1
|
+
import { A as e, B as t, L as n, M as r, O as i, Q as a, X as o, _ as s, at as c, b as l, c as u, d, f, g as p, h as m, j as h, k as g, l as _, m as v, o as y, ot as b, p as x, q as S, rt as C, st as w, t as T, v as E, y as D, z as O } from "./vue.runtime.esm-bundler-BPa483TZ.js";
|
|
2
2
|
import { t as k } from "./timeouts-Bmi_yePw.js";
|
|
3
3
|
import { D as A, a as j } from "./dist-BctFrpeA.js";
|
|
4
|
-
import {
|
|
5
|
-
import { l as
|
|
6
|
-
import {
|
|
7
|
-
import { t as
|
|
8
|
-
import { t as
|
|
9
|
-
import { t as
|
|
10
|
-
import { t as
|
|
11
|
-
import { a as
|
|
12
|
-
import { t as
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import { t as
|
|
16
|
-
import { t as Y } from "./
|
|
17
|
-
import { t as X } from "./
|
|
4
|
+
import { I as M, b as ee, t as N, w as P } from "./useEditorCore-8JxXDOA4.js";
|
|
5
|
+
import { l as F, t as I } from "./dist-DuCzdgDA.js";
|
|
6
|
+
import { D as L, M as R, c as z, j as te, l as ne, r as B, s as re, t as ie } from "./keys-DgYXDafq.js";
|
|
7
|
+
import { t as V } from "./useI18n-BWqM8i78.js";
|
|
8
|
+
import { t as H } from "./createLucideIcon-Bad2kKE0.js";
|
|
9
|
+
import { t as U } from "./check-CYJwFmjy.js";
|
|
10
|
+
import { t as W } from "./circle-alert-wf5HUFZY.js";
|
|
11
|
+
import { a as G, c as ae, d as oe, f as K, i as q, l as se, n as ce, o as le, p as ue, r as de, s as fe, t as pe, u as me } from "./styles-BUwDOWd3.js";
|
|
12
|
+
import { t as he } from "./clock-Bj0bQw-K.js";
|
|
13
|
+
import { t as J } from "./loader-circle-CLZ0_FvW.js";
|
|
14
|
+
import { t as ge } from "./message-circle-B-1bN9ab.js";
|
|
15
|
+
import { t as _e } from "./send-Cn1IUdzh.js";
|
|
16
|
+
import { t as Y } from "./sparkles-CgfjwvnG.js";
|
|
17
|
+
import { t as X } from "./triangle-alert-Chkny574.js";
|
|
18
18
|
import { t as Z } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
19
|
-
import { n as Q } from "./useCloudI18n-
|
|
19
|
+
import { n as Q } from "./useCloudI18n-CYJKqXtI.js";
|
|
20
20
|
import { d as $ } from "./styleConstants-lGobwiLH.js";
|
|
21
|
-
import { _ as
|
|
22
|
-
var
|
|
21
|
+
import { _ as ve, a as ye, c as be, d as xe, f as Se, g as Ce, h as we, l as Te, m as Ee, n as De, o as Oe, p as ke, r as Ae, s as je, t as Me, v as Ne, y as Pe } from "./cloud-CoFDm9YA.js";
|
|
22
|
+
var Fe = H("save", [
|
|
23
23
|
["path", {
|
|
24
24
|
d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
|
|
25
25
|
key: "1c8476"
|
|
@@ -35,14 +35,14 @@ var Pe = U("save", [
|
|
|
35
35
|
]);
|
|
36
36
|
//#endregion
|
|
37
37
|
//#region src/cloud/composables/useSnapshotPreview.ts
|
|
38
|
-
function
|
|
38
|
+
function Ie(e) {
|
|
39
39
|
let { authManager: t, editor: n, history: r, conditionPreview: i, autoSave: s, onError: c } = e, l = a(null), u = o(null), f = o(null), p = !1;
|
|
40
40
|
S(() => {
|
|
41
41
|
p = !0;
|
|
42
42
|
});
|
|
43
43
|
let m = d(() => u.value !== null), h = d(() => l.value?.snapshots.value ?? []), g = d(() => l.value?.isLoading.value ?? !1), _ = d(() => l.value?.isRestoring.value ?? !1);
|
|
44
44
|
function v() {
|
|
45
|
-
n.state.template?.id && !l.value && (l.value =
|
|
45
|
+
n.state.template?.id && !l.value && (l.value = Ce({
|
|
46
46
|
authManager: t,
|
|
47
47
|
templateId: n.state.template.id,
|
|
48
48
|
onRestore: y,
|
|
@@ -94,7 +94,7 @@ function Fe(e) {
|
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region src/cloud/composables/useCloudPanelState.ts
|
|
97
|
-
function
|
|
97
|
+
function Le() {
|
|
98
98
|
let e = o(null), t = d({
|
|
99
99
|
get: () => e.value === "ai-chat",
|
|
100
100
|
set: (t) => e.value = t ? "ai-chat" : null
|
|
@@ -117,7 +117,7 @@ function Ie() {
|
|
|
117
117
|
function g(t) {
|
|
118
118
|
l.value = !1, e.value = e.value === t ? null : t;
|
|
119
119
|
}
|
|
120
|
-
return
|
|
120
|
+
return I(u, () => {
|
|
121
121
|
l.value = !1;
|
|
122
122
|
}), {
|
|
123
123
|
activePanel: e,
|
|
@@ -139,8 +139,8 @@ function Ie() {
|
|
|
139
139
|
}
|
|
140
140
|
//#endregion
|
|
141
141
|
//#region src/cloud/composables/useCollabUndoWarning.ts
|
|
142
|
-
function
|
|
143
|
-
let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } =
|
|
142
|
+
function Re(e) {
|
|
143
|
+
let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = F(() => {
|
|
144
144
|
a.value = !1;
|
|
145
145
|
}, k, { immediate: !1 });
|
|
146
146
|
function c() {
|
|
@@ -153,8 +153,8 @@ function Le(e) {
|
|
|
153
153
|
}
|
|
154
154
|
//#endregion
|
|
155
155
|
//#region src/cloud/composables/useCloudFeatureFlags.ts
|
|
156
|
-
function
|
|
157
|
-
let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = d(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = d(() => t.hasFeature("test_email")), s = d(() => !!r.state.template?.id), c = d(() => t.hasFeature("white_label")), l = d(() => t.config.value?.limits.max_templates ?? null), u = d(() => t.config.value?.template_count ?? 0), f = o(!1), p = o("idle"), m = o(""), { start: h } =
|
|
156
|
+
function ze(e) {
|
|
157
|
+
let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = d(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = d(() => t.hasFeature("test_email")), s = d(() => !!r.state.template?.id), c = d(() => t.hasFeature("white_label")), l = d(() => t.config.value?.limits.max_templates ?? null), u = d(() => t.config.value?.template_count ?? 0), f = o(!1), p = o("idle"), m = o(""), { start: h } = F(() => {
|
|
158
158
|
p.value = "idle";
|
|
159
159
|
}, 3e3, { immediate: !1 });
|
|
160
160
|
return {
|
|
@@ -172,7 +172,7 @@ function Re(e) {
|
|
|
172
172
|
}
|
|
173
173
|
//#endregion
|
|
174
174
|
//#region src/cloud/composables/useCloudMediaLibrary.ts
|
|
175
|
-
function
|
|
175
|
+
function Be(e) {
|
|
176
176
|
let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r, authManager: i, getMediaConfig: a, onError: o } = e, s = null;
|
|
177
177
|
function c(e) {
|
|
178
178
|
return {
|
|
@@ -234,30 +234,30 @@ function ze(e) {
|
|
|
234
234
|
}
|
|
235
235
|
//#endregion
|
|
236
236
|
//#region src/cloud/composables/useCloudInitialization.ts
|
|
237
|
-
function
|
|
238
|
-
let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new
|
|
237
|
+
function Ve(e) {
|
|
238
|
+
let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new Me({
|
|
239
239
|
...t.auth,
|
|
240
240
|
onError: t.onError
|
|
241
|
-
}), v =
|
|
241
|
+
}), v = Ee({
|
|
242
242
|
authManager: _,
|
|
243
243
|
onError: t.onError
|
|
244
|
-
}), y = o(/* @__PURE__ */ new Map()), b =
|
|
244
|
+
}), y = o(/* @__PURE__ */ new Map()), b = xe({
|
|
245
245
|
authManager: _,
|
|
246
246
|
defaultFontFamily: t.fonts?.defaultFont,
|
|
247
247
|
templateDefaults: t.templateDefaults,
|
|
248
248
|
onError: t.onError,
|
|
249
249
|
lockedBlocks: y
|
|
250
|
-
}), x =
|
|
250
|
+
}), x = Pe({
|
|
251
251
|
authManager: _,
|
|
252
252
|
onError: t.onError
|
|
253
253
|
});
|
|
254
|
-
t.mcp?.enabled &&
|
|
254
|
+
t.mcp?.enabled && ke({
|
|
255
255
|
editor: b,
|
|
256
256
|
channel: x.channel,
|
|
257
257
|
onOperation: t.mcp.onOperation
|
|
258
258
|
});
|
|
259
259
|
let S = null;
|
|
260
|
-
t.collaboration?.enabled && (S =
|
|
260
|
+
t.collaboration?.enabled && (S = Oe({
|
|
261
261
|
authManager: _,
|
|
262
262
|
editor: b,
|
|
263
263
|
channel: x.channel,
|
|
@@ -268,8 +268,8 @@ function Be(e) {
|
|
|
268
268
|
onBlockUnlocked: t.collaboration.onBlockUnlocked
|
|
269
269
|
}), n(() => S.lockedBlocks.value, (e) => {
|
|
270
270
|
y.value = e;
|
|
271
|
-
}, { immediate: !0 }),
|
|
272
|
-
let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w =
|
|
271
|
+
}, { immediate: !0 }), je(b, S));
|
|
272
|
+
let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = N({
|
|
273
273
|
editor: b,
|
|
274
274
|
config: {
|
|
275
275
|
uiTheme: t.uiTheme,
|
|
@@ -278,9 +278,10 @@ function Be(e) {
|
|
|
278
278
|
customBlocks: [],
|
|
279
279
|
paletteBlocks: t.paletteBlocks,
|
|
280
280
|
mergeTags: t.mergeTags,
|
|
281
|
+
logicTags: t.logicTags,
|
|
281
282
|
displayConditions: t.displayConditions,
|
|
282
283
|
onRequestMedia: null,
|
|
283
|
-
lint:
|
|
284
|
+
lint: K(t),
|
|
284
285
|
onSave: () => {
|
|
285
286
|
p.value?.().catch((e) => {
|
|
286
287
|
t.onError?.(e);
|
|
@@ -301,13 +302,13 @@ function Be(e) {
|
|
|
301
302
|
keyboardOptions: { onBeforeUndo: () => g?.showCollabUndoWarning() },
|
|
302
303
|
editorRoot: e.editorRoot,
|
|
303
304
|
containerEl: e.containerEl
|
|
304
|
-
}), T =
|
|
305
|
+
}), T = Re({
|
|
305
306
|
isCollaborationEnabled: C,
|
|
306
307
|
getCollaboratorCount: () => S?.collaborators.value.length ?? 0,
|
|
307
308
|
canUndo: w.history.canUndo
|
|
308
309
|
});
|
|
309
310
|
g = T;
|
|
310
|
-
let E =
|
|
311
|
+
let E = Ie({
|
|
311
312
|
authManager: _,
|
|
312
313
|
editor: b,
|
|
313
314
|
history: w.history,
|
|
@@ -316,11 +317,11 @@ function Be(e) {
|
|
|
316
317
|
onError: t.onError
|
|
317
318
|
});
|
|
318
319
|
m = E;
|
|
319
|
-
let D =
|
|
320
|
+
let D = Le(), O = ye(t.ai), k = ze({
|
|
320
321
|
planConfigInstance: v,
|
|
321
322
|
aiConfig: O,
|
|
322
323
|
editor: b
|
|
323
|
-
}), A =
|
|
324
|
+
}), A = Be({
|
|
324
325
|
onRequestMedia: t.onRequestMedia,
|
|
325
326
|
mediaLibraryOpen: D.mediaLibraryOpen,
|
|
326
327
|
mediaLibraryAccept: D.mediaLibraryAccept,
|
|
@@ -328,15 +329,15 @@ function Be(e) {
|
|
|
328
329
|
getMediaConfig: () => v.config.value?.media ?? null,
|
|
329
330
|
onError: t.onError
|
|
330
331
|
});
|
|
331
|
-
|
|
332
|
+
P({
|
|
332
333
|
onBlockMove: b.moveBlock,
|
|
333
334
|
onBlockAdd: b.addBlock
|
|
334
335
|
});
|
|
335
|
-
let j =
|
|
336
|
+
let j = Se({
|
|
336
337
|
authManager: _,
|
|
337
338
|
getFontsConfig: () => t.fonts,
|
|
338
339
|
canUseCustomFonts: () => v.hasFeature("custom_fonts")
|
|
339
|
-
}),
|
|
340
|
+
}), ee = Ne({
|
|
340
341
|
authManager: _,
|
|
341
342
|
getTemplateId: () => b.state.template?.id ?? null,
|
|
342
343
|
save: () => b.save(),
|
|
@@ -344,7 +345,7 @@ function Be(e) {
|
|
|
344
345
|
onError: t.onError,
|
|
345
346
|
isAuthReady: l,
|
|
346
347
|
onBeforeTestEmail: t.onBeforeTestEmail
|
|
347
|
-
}),
|
|
348
|
+
}), F = Te({
|
|
348
349
|
authManager: _,
|
|
349
350
|
getTemplateId: () => b.state.template?.id ?? null,
|
|
350
351
|
getSocketId: () => x.getSocketId(),
|
|
@@ -353,56 +354,56 @@ function Be(e) {
|
|
|
353
354
|
isAuthReady: l,
|
|
354
355
|
hasCommentingFeature: () => t.commenting !== !1 && v.hasFeature("commenting")
|
|
355
356
|
});
|
|
356
|
-
|
|
357
|
-
comments:
|
|
357
|
+
be({
|
|
358
|
+
comments: F,
|
|
358
359
|
channel: x.channel
|
|
359
360
|
});
|
|
360
|
-
let
|
|
361
|
+
let I = we({
|
|
361
362
|
authManager: _,
|
|
362
363
|
onError: t.onError
|
|
363
|
-
}),
|
|
364
|
+
}), z = o(!1), V = o(null), H = o(!1), U = ve({
|
|
364
365
|
authManager: _,
|
|
365
366
|
getTemplateId: () => b.state.template?.id ?? null
|
|
366
367
|
});
|
|
367
|
-
function
|
|
368
|
+
function W(e) {
|
|
368
369
|
D.commentsOpen.value = !0, queueMicrotask(() => {
|
|
369
370
|
s()?.filterByBlock(e);
|
|
370
371
|
});
|
|
371
372
|
}
|
|
372
|
-
h(
|
|
373
|
+
h(L, A.handleRequestMedia), h(B, _), h(ie, O), h(ne, F), h(te, I), h(R, U), h(re, {
|
|
373
374
|
plan: v,
|
|
374
375
|
ai: O,
|
|
375
376
|
comments: {
|
|
376
|
-
getBlockCount: (e) =>
|
|
377
|
-
openForBlock:
|
|
377
|
+
getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
|
|
378
|
+
openForBlock: W
|
|
378
379
|
},
|
|
379
380
|
savedModules: {
|
|
380
381
|
openSaveDialog: (e) => {
|
|
381
|
-
|
|
382
|
+
V.value = e ?? null, z.value = !0;
|
|
382
383
|
},
|
|
383
384
|
openBrowser: () => {
|
|
384
|
-
|
|
385
|
+
H.value = !0;
|
|
385
386
|
},
|
|
386
|
-
moduleCount: d(() =>
|
|
387
|
+
moduleCount: d(() => I.modules.value.length)
|
|
387
388
|
}
|
|
388
389
|
});
|
|
389
|
-
function
|
|
390
|
+
function G(e) {
|
|
390
391
|
v.hasFeature("theme_customization") && (w.themeOverrides.value = e);
|
|
391
392
|
}
|
|
392
|
-
function
|
|
393
|
+
function ae(e) {
|
|
393
394
|
b.setUiTheme(e);
|
|
394
395
|
}
|
|
395
|
-
async function
|
|
396
|
+
async function oe() {
|
|
396
397
|
c.value = !0, u.value = null;
|
|
397
398
|
try {
|
|
398
399
|
if (await _.initialize(), f) return;
|
|
399
400
|
l.value = !0;
|
|
400
|
-
let e = await
|
|
401
|
+
let e = await De({ authManager: _ });
|
|
401
402
|
if (f) return;
|
|
402
403
|
if (!e.api.ok) throw Error("Health check failed: API is not reachable");
|
|
403
404
|
if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
|
|
404
|
-
if (e.websocket.ok ||
|
|
405
|
-
i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") &&
|
|
405
|
+
if (e.websocket.ok || M.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await v.fetchConfig(), f) return;
|
|
406
|
+
i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") && I.loadModules(), a("ready");
|
|
406
407
|
} catch (e) {
|
|
407
408
|
if (f) return;
|
|
408
409
|
let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
|
|
@@ -411,7 +412,7 @@ function Be(e) {
|
|
|
411
412
|
f || (c.value = !1);
|
|
412
413
|
}
|
|
413
414
|
}
|
|
414
|
-
function
|
|
415
|
+
function q() {
|
|
415
416
|
f = !0, i.cleanupFontLinks(), x.disconnect(), w.destroy(), t.onUnmount?.();
|
|
416
417
|
}
|
|
417
418
|
return {
|
|
@@ -430,27 +431,27 @@ function Be(e) {
|
|
|
430
431
|
featureFlags: k,
|
|
431
432
|
mediaLib: A,
|
|
432
433
|
exporter: j,
|
|
433
|
-
testEmail:
|
|
434
|
-
commentsInstance:
|
|
435
|
-
savedModulesHeadless:
|
|
436
|
-
scoringInstance:
|
|
434
|
+
testEmail: ee,
|
|
435
|
+
commentsInstance: F,
|
|
436
|
+
savedModulesHeadless: I,
|
|
437
|
+
scoringInstance: U,
|
|
437
438
|
panelState: D,
|
|
438
439
|
snapshotPreview: E,
|
|
439
440
|
collabWarning: T,
|
|
440
|
-
showSaveModuleDialog:
|
|
441
|
-
showModuleBrowserModal:
|
|
442
|
-
saveModulePreSelectedBlockId:
|
|
441
|
+
showSaveModuleDialog: z,
|
|
442
|
+
showModuleBrowserModal: H,
|
|
443
|
+
saveModulePreSelectedBlockId: V,
|
|
443
444
|
onSaveHook: p,
|
|
444
|
-
initialize:
|
|
445
|
-
destroy:
|
|
446
|
-
setThemeOverrides:
|
|
447
|
-
setUiTheme:
|
|
448
|
-
openCommentsForBlock:
|
|
445
|
+
initialize: oe,
|
|
446
|
+
destroy: q,
|
|
447
|
+
setThemeOverrides: G,
|
|
448
|
+
setUiTheme: ae,
|
|
449
|
+
openCommentsForBlock: W
|
|
449
450
|
};
|
|
450
451
|
}
|
|
451
452
|
//#endregion
|
|
452
453
|
//#region src/utils/preRenderCustomBlocks.ts
|
|
453
|
-
async function
|
|
454
|
+
async function He(e, t) {
|
|
454
455
|
let n = async (e) => {
|
|
455
456
|
if (A(e)) {
|
|
456
457
|
let n = e;
|
|
@@ -469,10 +470,10 @@ async function Ve(e, t) {
|
|
|
469
470
|
}
|
|
470
471
|
//#endregion
|
|
471
472
|
//#region src/cloud/composables/useCloudLifecycle.ts
|
|
472
|
-
function
|
|
473
|
+
function Ue(e) {
|
|
473
474
|
let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
|
|
474
475
|
function u() {
|
|
475
|
-
return
|
|
476
|
+
return Ae(i.config.value.websocket);
|
|
476
477
|
}
|
|
477
478
|
async function d(e) {
|
|
478
479
|
let i = await n.create(e);
|
|
@@ -485,7 +486,7 @@ function He(e) {
|
|
|
485
486
|
async function p() {
|
|
486
487
|
c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
|
|
487
488
|
try {
|
|
488
|
-
if (await
|
|
489
|
+
if (await He(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
|
|
489
490
|
let e = await n.save();
|
|
490
491
|
if (l()) throw Error("Component unmounted during save");
|
|
491
492
|
a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
|
|
@@ -512,7 +513,7 @@ function He(e) {
|
|
|
512
513
|
}
|
|
513
514
|
//#endregion
|
|
514
515
|
//#region src/cloud/composables/useCloudSaveGate.ts
|
|
515
|
-
function
|
|
516
|
+
function We(e) {
|
|
516
517
|
let t = o(!1), n = null, r = d(() => e.planConfig.value?.accessibility?.blockOnError === !0), i = d(() => r.value ? e.issues.value.filter((e) => e.severity === "error") : []), a = d(() => i.value.length > 0);
|
|
517
518
|
async function s(e) {
|
|
518
519
|
return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
|
|
@@ -535,7 +536,7 @@ function Ue(e) {
|
|
|
535
536
|
}
|
|
536
537
|
//#endregion
|
|
537
538
|
//#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
|
|
538
|
-
var
|
|
539
|
+
var Ge = ["aria-label"], Ke = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl:max-w-md tpl:flex-col tpl:gap-4 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:p-5 tpl:shadow-[var(--tpl-shadow-md)]" }, qe = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Je = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ye = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Xe = { class: "tpl:m-0 tpl:flex tpl:max-h-64 tpl:list-none tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-2" }, Ze = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Qe = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, $e = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, et = /* @__PURE__ */ l({
|
|
539
540
|
__name: "CloudSaveGateModal",
|
|
540
541
|
props: {
|
|
541
542
|
open: { type: Boolean },
|
|
@@ -557,18 +558,18 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
557
558
|
"aria-label": C(a).saveGate.title,
|
|
558
559
|
class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
|
|
559
560
|
onClick: o[2] ||= u((e) => i("cancel"), ["self"])
|
|
560
|
-
}, [f("div",
|
|
561
|
-
f("header",
|
|
561
|
+
}, [f("div", Ke, [
|
|
562
|
+
f("header", qe, [E(C(X), {
|
|
562
563
|
size: 18,
|
|
563
564
|
"stroke-width": 2,
|
|
564
565
|
class: "tpl:text-[var(--tpl-warning)]"
|
|
565
|
-
}), f("h2",
|
|
566
|
-
f("p",
|
|
567
|
-
f("ul",
|
|
566
|
+
}), f("h2", Je, w(C(a).saveGate.title), 1)]),
|
|
567
|
+
f("p", Ye, w(C(a).saveGate.body), 1),
|
|
568
|
+
f("ul", Xe, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
|
|
568
569
|
key: `${t.ruleId}-${t.blockId ?? "template"}`,
|
|
569
570
|
class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
|
|
570
|
-
}, [f("span",
|
|
571
|
-
f("footer",
|
|
571
|
+
}, [f("span", Ze, w(t.message), 1), f("span", Qe, w(t.ruleId), 1)]))), 128))]),
|
|
572
|
+
f("footer", $e, [f("button", {
|
|
572
573
|
type: "button",
|
|
573
574
|
class: "tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]",
|
|
574
575
|
onClick: o[0] ||= (e) => i("cancel")
|
|
@@ -577,11 +578,11 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
577
578
|
class: "tpl:rounded-md tpl:bg-[var(--tpl-danger)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-white",
|
|
578
579
|
onClick: o[1] ||= (e) => i("confirm")
|
|
579
580
|
}, w(C(a).saveGate.confirm), 1)])
|
|
580
|
-
])], 8,
|
|
581
|
+
])], 8, Ge)) : v("", !0)]),
|
|
581
582
|
_: 1
|
|
582
583
|
}));
|
|
583
584
|
}
|
|
584
|
-
}),
|
|
585
|
+
}), tt = {
|
|
585
586
|
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",
|
|
586
587
|
style: {
|
|
587
588
|
"background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
|
|
@@ -590,24 +591,24 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
590
591
|
"box-shadow": "var(--tpl-shadow-md)",
|
|
591
592
|
"border-bottom": "1px solid var(--tpl-border)"
|
|
592
593
|
}
|
|
593
|
-
},
|
|
594
|
+
}, nt = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, rt = {
|
|
594
595
|
key: 0,
|
|
595
596
|
class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
|
|
596
|
-
},
|
|
597
|
+
}, it = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, at = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, ot = ["data-tooltip"], st = {
|
|
597
598
|
key: 1,
|
|
598
599
|
"aria-live": "polite",
|
|
599
600
|
class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
|
|
600
|
-
},
|
|
601
|
+
}, ct = {
|
|
601
602
|
key: 2,
|
|
602
603
|
"aria-live": "polite",
|
|
603
604
|
class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
|
|
604
|
-
},
|
|
605
|
+
}, lt = ["aria-label", "aria-expanded"], ut = {
|
|
605
606
|
key: 0,
|
|
606
607
|
class: "tpl:inline-flex tpl:size-4.5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[10px] tpl:font-semibold tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]"
|
|
607
|
-
},
|
|
608
|
+
}, dt = ["aria-expanded"], ft = {
|
|
608
609
|
key: 0,
|
|
609
610
|
class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
|
|
610
|
-
},
|
|
611
|
+
}, pt = ["disabled"], mt = ["disabled"], ht = /* @__PURE__ */ l({
|
|
611
612
|
__name: "CloudHeader",
|
|
612
613
|
props: {
|
|
613
614
|
editor: {},
|
|
@@ -625,22 +626,22 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
625
626
|
},
|
|
626
627
|
emits: ["save"],
|
|
627
628
|
setup(t) {
|
|
628
|
-
let n = D(() => import("./CollaboratorBar-
|
|
629
|
-
return (l, d) => (e(), m("header",
|
|
630
|
-
f("div",
|
|
629
|
+
let n = D(() => import("./CollaboratorBar-B_EnJLtW.js")), r = D(() => import("./SnapshotHistory-CVgiNJtE.js")), i = D(() => import("./AiFeatureMenu-F2diEDgV.js")), { t: a, format: o } = Q();
|
|
630
|
+
return (l, d) => (e(), m("header", tt, [
|
|
631
|
+
f("div", nt, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", rt, w(C(o)(C(a).header.templatesUsed, {
|
|
631
632
|
used: t.featureFlags.templateCount.value,
|
|
632
633
|
max: t.featureFlags.templateLimit.value
|
|
633
634
|
})), 1))]),
|
|
634
|
-
f("div",
|
|
635
|
-
E(
|
|
635
|
+
f("div", it, [
|
|
636
|
+
E(le, {
|
|
636
637
|
viewport: t.editor.state.viewport,
|
|
637
638
|
onChange: t.editor.setViewport
|
|
638
639
|
}, null, 8, ["viewport", "onChange"]),
|
|
639
|
-
E(
|
|
640
|
+
E(q, {
|
|
640
641
|
"dark-mode": t.editor.state.darkMode,
|
|
641
642
|
onChange: t.editor.setDarkMode
|
|
642
643
|
}, null, 8, ["dark-mode", "onChange"]),
|
|
643
|
-
E(
|
|
644
|
+
E(G, {
|
|
644
645
|
"preview-mode": t.editor.state.previewMode,
|
|
645
646
|
onChange: t.editor.setPreviewMode
|
|
646
647
|
}, null, 8, ["preview-mode", "onChange"]),
|
|
@@ -664,7 +665,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
664
665
|
"onNavigate"
|
|
665
666
|
])) : v("", !0)
|
|
666
667
|
]),
|
|
667
|
-
f("div",
|
|
668
|
+
f("div", at, [
|
|
668
669
|
t.featureFlags.saveStatus.value === "error" ? (e(), m("div", {
|
|
669
670
|
key: 0,
|
|
670
671
|
"aria-live": "assertive",
|
|
@@ -673,10 +674,10 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
673
674
|
}, [E(C(W), {
|
|
674
675
|
size: 12,
|
|
675
676
|
"stroke-width": 2.5
|
|
676
|
-
}), s(" " + w(C(a).header.saveFailed), 1)], 8,
|
|
677
|
+
}), s(" " + w(C(a).header.saveFailed), 1)], 8, ot)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", st, [E(C(U), {
|
|
677
678
|
size: 12,
|
|
678
679
|
"stroke-width": 2.5
|
|
679
|
-
}), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div",
|
|
680
|
+
}), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", ct, [d[4] ||= f("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), s(" " + w(C(a).header.unsaved), 1)])) : v("", !0),
|
|
680
681
|
t.commentsInstance.isEnabled.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("button", {
|
|
681
682
|
key: 3,
|
|
682
683
|
"aria-label": t.commentsInstance.unresolvedCount.value > 0 ? `${C(a).comments.button} (${t.commentsInstance.unresolvedCount.value})` : C(a).comments.button,
|
|
@@ -689,13 +690,13 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
689
690
|
}),
|
|
690
691
|
onClick: d[0] ||= (e) => t.panelState.commentsOpen.value = !t.panelState.commentsOpen.value
|
|
691
692
|
}, [
|
|
692
|
-
E(C(
|
|
693
|
+
E(C(ge), {
|
|
693
694
|
size: 16,
|
|
694
695
|
"stroke-width": 2
|
|
695
696
|
}),
|
|
696
697
|
s(" " + w(C(a).comments.button) + " ", 1),
|
|
697
|
-
t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span",
|
|
698
|
-
], 14,
|
|
698
|
+
t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", ut, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
|
|
699
|
+
], 14, lt)) : v("", !0),
|
|
699
700
|
t.featureFlags.canUseAiGeneration.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("div", {
|
|
700
701
|
key: 4,
|
|
701
702
|
ref: (e) => t.panelState.aiMenuRef.value = e,
|
|
@@ -704,11 +705,11 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
704
705
|
"aria-expanded": t.panelState.aiMenuOpen.value,
|
|
705
706
|
class: c(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", t.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
|
|
706
707
|
onClick: d[1] ||= u((...e) => t.panelState.toggleAiMenu && t.panelState.toggleAiMenu(...e), ["stop"])
|
|
707
|
-
}, [E(C(
|
|
708
|
+
}, [E(C(Y), {
|
|
708
709
|
size: 16,
|
|
709
710
|
"stroke-width": 2,
|
|
710
711
|
class: "tpl-ai-btn-icon"
|
|
711
|
-
}), s(" " + w(C(a).aiChat.button), 1)], 10,
|
|
712
|
+
}), s(" " + w(C(a).aiChat.button), 1)], 10, dt), E(T, {
|
|
712
713
|
"enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
|
|
713
714
|
"enter-from-class": "tpl:scale-95 tpl:opacity-0",
|
|
714
715
|
"enter-to-class": "tpl:scale-100 tpl:opacity-100",
|
|
@@ -716,7 +717,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
716
717
|
"leave-from-class": "tpl:scale-100 tpl:opacity-100",
|
|
717
718
|
"leave-to-class": "tpl:scale-95 tpl:opacity-0"
|
|
718
719
|
}, {
|
|
719
|
-
default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div",
|
|
720
|
+
default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", ft, [E(C(i), {
|
|
720
721
|
"active-feature": t.panelState.activeAiFeature.value,
|
|
721
722
|
onSelect: t.panelState.handleAiFeatureSelect
|
|
722
723
|
}, null, 8, ["active-feature", "onSelect"])])) : v("", !0)]),
|
|
@@ -732,16 +733,16 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
732
733
|
},
|
|
733
734
|
disabled: t.testEmail.isSending.value || !t.featureFlags.hasTemplateSaved.value,
|
|
734
735
|
onClick: d[2] ||= (e) => t.panelState.testEmailModalOpen.value = !0
|
|
735
|
-
}, [t.testEmail.isSending.value ? (e(), x(C(
|
|
736
|
+
}, [t.testEmail.isSending.value ? (e(), x(C(J), {
|
|
736
737
|
key: 1,
|
|
737
738
|
class: "tpl-spinner",
|
|
738
739
|
size: 16,
|
|
739
740
|
"stroke-width": 2
|
|
740
|
-
})) : (e(), x(C(
|
|
741
|
+
})) : (e(), x(C(_e), {
|
|
741
742
|
key: 0,
|
|
742
743
|
size: 16,
|
|
743
744
|
"stroke-width": 2
|
|
744
|
-
})), s(" " + w(C(a).testEmail.button), 1)], 10,
|
|
745
|
+
})), s(" " + w(C(a).testEmail.button), 1)], 10, pt)) : v("", !0),
|
|
745
746
|
f("button", {
|
|
746
747
|
class: c(C($)),
|
|
747
748
|
style: {
|
|
@@ -751,20 +752,20 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
751
752
|
},
|
|
752
753
|
disabled: t.isSaveDisabled,
|
|
753
754
|
onClick: d[3] ||= (e) => l.$emit("save")
|
|
754
|
-
}, [t.isSaving ? (e(), x(C(
|
|
755
|
+
}, [t.isSaving ? (e(), x(C(J), {
|
|
755
756
|
key: 1,
|
|
756
757
|
class: "tpl-spinner",
|
|
757
758
|
size: 16,
|
|
758
759
|
"stroke-width": 2
|
|
759
|
-
})) : (e(), x(C(
|
|
760
|
+
})) : (e(), x(C(Fe), {
|
|
760
761
|
key: 0,
|
|
761
762
|
size: 16,
|
|
762
763
|
"stroke-width": 2
|
|
763
|
-
})), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10,
|
|
764
|
+
})), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, mt)
|
|
764
765
|
])
|
|
765
766
|
]));
|
|
766
767
|
}
|
|
767
|
-
}),
|
|
768
|
+
}), gt = /* @__PURE__ */ l({
|
|
768
769
|
__name: "CloudPanels",
|
|
769
770
|
props: {
|
|
770
771
|
config: {},
|
|
@@ -787,7 +788,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
787
788
|
"module-insert"
|
|
788
789
|
],
|
|
789
790
|
setup(t, { expose: n, emit: r }) {
|
|
790
|
-
let i = D(() => import("./AiChatSidebar-
|
|
791
|
+
let i = D(() => import("./AiChatSidebar-J8iO_sX7.js")), a = D(() => import("./CommentsSidebar-DaP9BA_r.js")), s = D(() => import("./DesignReferenceSidebar-BHRlTqlT.js")), c = D(() => import("./TemplateScoringPanel-lm0_9nYi.js")), l = D(() => import("./TestEmailModal-WBMdiW5S.js")), u = D(() => import("./SaveModuleDialog-DuEKgumL.js")), d = D(() => import("./ModuleBrowserModal-DOsdaS6s.js")), f = D(async () => {
|
|
791
792
|
try {
|
|
792
793
|
return (await import("@templatical/media-library")).MediaLibraryModal;
|
|
793
794
|
} catch {
|
|
@@ -869,23 +870,23 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
869
870
|
])
|
|
870
871
|
], 64));
|
|
871
872
|
}
|
|
872
|
-
}),
|
|
873
|
+
}), _t = {
|
|
873
874
|
key: 0,
|
|
874
875
|
class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
|
|
875
|
-
},
|
|
876
|
+
}, vt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, yt = { class: "tpl:flex tpl:w-12 tpl:shrink-0 tpl:flex-col tpl:items-center tpl:gap-4 tpl:py-5 tpl:border-r tpl:border-[var(--tpl-border)]" }, bt = /* @__PURE__ */ l({
|
|
876
877
|
__name: "CloudLoadingOverlay",
|
|
877
878
|
props: { visible: { type: Boolean } },
|
|
878
879
|
setup(t) {
|
|
879
|
-
return (n, i) => t.visible ? (e(), m("div",
|
|
880
|
+
return (n, i) => t.visible ? (e(), m("div", _t, [i[1] ||= p("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), f("div", vt, [f("div", yt, [(e(), m(_, null, r(5, (e) => f("div", {
|
|
880
881
|
key: e,
|
|
881
882
|
class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
|
|
882
883
|
})), 64))]), i[0] ||= p("<div class=\"tpl:flex tpl:flex-1 tpl:items-start tpl:justify-center tpl:overflow-auto tpl:p-8 tpl:bg-[var(--tpl-canvas-bg)]\"><div class=\"tpl:w-full tpl:max-w-[600px] tpl:rounded-[var(--tpl-radius)] tpl:p-6 tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-sm)]\"><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-3/4 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-5/6 tpl:rounded\"></div></div><div class=\"tpl:py-4\"><div class=\"tpl-shimmer tpl:h-44 tpl:w-full tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-2/3 tpl:rounded\"></div></div><div class=\"tpl:flex tpl:justify-center tpl:py-4\"><div class=\"tpl-shimmer tpl:h-10 tpl:w-36 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/2 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/3 tpl:rounded\"></div></div></div></div><div class=\"tpl:flex tpl:w-[320px] tpl:shrink-0 tpl:flex-col tpl:gap-4 tpl:p-4 tpl:border-l tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-8 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div></div>", 2)])])) : v("", !0);
|
|
883
884
|
}
|
|
884
|
-
}),
|
|
885
|
+
}), xt = {
|
|
885
886
|
key: 0,
|
|
886
887
|
role: "alert",
|
|
887
888
|
class: "tpl-error tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-6 tpl:px-8 tpl:bg-[var(--tpl-bg)]"
|
|
888
|
-
},
|
|
889
|
+
}, St = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, Ct = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, wt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Tt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Et = /* @__PURE__ */ l({
|
|
889
890
|
__name: "CloudErrorOverlay",
|
|
890
891
|
props: {
|
|
891
892
|
error: {},
|
|
@@ -900,13 +901,13 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
900
901
|
function o(e) {
|
|
901
902
|
return "isNotFound" in e && !!e.isNotFound;
|
|
902
903
|
}
|
|
903
|
-
return (n, s) => t.visible && t.error ? (e(), m("div",
|
|
904
|
-
f("div",
|
|
904
|
+
return (n, s) => t.visible && t.error ? (e(), m("div", xt, [
|
|
905
|
+
f("div", St, [E(C(W), {
|
|
905
906
|
size: 32,
|
|
906
907
|
"stroke-width": 1.5,
|
|
907
908
|
class: "tpl:text-[var(--tpl-danger)]"
|
|
908
909
|
})]),
|
|
909
|
-
f("div",
|
|
910
|
+
f("div", Ct, [f("h2", wt, w(C(i).error.title), 1), f("p", Tt, w(a(t.error)), 1)]),
|
|
910
911
|
o(t.error) ? v("", !0) : (e(), m("button", {
|
|
911
912
|
key: 0,
|
|
912
913
|
class: "tpl-btn tpl-btn-primary tpl:inline-flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-4 tpl:py-2.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
|
|
@@ -914,20 +915,20 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
914
915
|
}, w(C(i).error.retry), 1))
|
|
915
916
|
])) : v("", !0);
|
|
916
917
|
}
|
|
917
|
-
}),
|
|
918
|
+
}), Dt = {
|
|
918
919
|
key: 0,
|
|
919
920
|
class: "tpl-preview-banner tpl:absolute tpl:top-14 tpl:right-0 tpl:left-0 tpl:z-40 tpl:flex tpl:items-center tpl:justify-center tpl:gap-4 tpl:px-4 tpl:py-3 tpl:bg-[var(--tpl-primary-light)] tpl:border-b tpl:border-[var(--tpl-primary)]"
|
|
920
|
-
},
|
|
921
|
+
}, Ot = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, kt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, At = /* @__PURE__ */ l({
|
|
921
922
|
__name: "SnapshotPreviewBanner",
|
|
922
923
|
props: { visible: { type: Boolean } },
|
|
923
924
|
emits: ["cancel", "confirm"],
|
|
924
925
|
setup(t, { emit: n }) {
|
|
925
926
|
let r = n, { t: i } = Q();
|
|
926
|
-
return (n, a) => t.visible ? (e(), m("div",
|
|
927
|
+
return (n, a) => t.visible ? (e(), m("div", Dt, [f("div", Ot, [E(C(he), {
|
|
927
928
|
size: 18,
|
|
928
929
|
"stroke-width": 2,
|
|
929
930
|
class: "tpl:text-[var(--tpl-primary)]"
|
|
930
|
-
}), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div",
|
|
931
|
+
}), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", kt, [f("button", {
|
|
931
932
|
class: "tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-150 tpl:text-[var(--tpl-text-muted)] tpl:border tpl:border-[var(--tpl-border)]",
|
|
932
933
|
style: { "background-color": "transparent" },
|
|
933
934
|
onClick: a[0] ||= (e) => r("cancel")
|
|
@@ -936,7 +937,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
936
937
|
onClick: a[1] ||= (e) => r("confirm")
|
|
937
938
|
}, w(C(i).snapshotPreview.restore), 1)])])) : v("", !0);
|
|
938
939
|
}
|
|
939
|
-
}),
|
|
940
|
+
}), jt = {
|
|
940
941
|
key: 0,
|
|
941
942
|
role: "status",
|
|
942
943
|
"aria-live": "polite",
|
|
@@ -946,14 +947,14 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
946
947
|
color: "var(--tpl-text)",
|
|
947
948
|
border: "1px solid var(--tpl-warning)"
|
|
948
949
|
}
|
|
949
|
-
},
|
|
950
|
+
}, Mt = /* @__PURE__ */ l({
|
|
950
951
|
__name: "CollabUndoToast",
|
|
951
952
|
props: { visible: { type: Boolean } },
|
|
952
953
|
setup(t) {
|
|
953
|
-
let { t: n } =
|
|
954
|
-
return (r, i) => t.visible ? (e(), m("div",
|
|
954
|
+
let { t: n } = V();
|
|
955
|
+
return (r, i) => t.visible ? (e(), m("div", jt, w(C(n).history.collabWarning), 1)) : v("", !0);
|
|
955
956
|
}
|
|
956
|
-
}),
|
|
957
|
+
}), Nt = ["data-tpl-theme"], Pt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Ft = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, It = ["aria-label"], Lt = /*#__PURE__*/ Z(/* @__PURE__ */ l({
|
|
957
958
|
__name: "CloudEditor",
|
|
958
959
|
props: {
|
|
959
960
|
config: {},
|
|
@@ -965,8 +966,8 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
965
966
|
emits: ["ready"],
|
|
966
967
|
setup(n, { expose: r, emit: a }) {
|
|
967
968
|
let l = n;
|
|
968
|
-
h(
|
|
969
|
-
let d = a, p = o(null), _ = o(null), S =
|
|
969
|
+
h(z, l.cloudTranslations);
|
|
970
|
+
let d = a, p = o(null), _ = o(null), S = Ve({
|
|
970
971
|
config: l.config,
|
|
971
972
|
translations: l.translations,
|
|
972
973
|
fontsManager: l.fontsManager,
|
|
@@ -974,36 +975,36 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
974
975
|
getCommentsSidebar: () => p.value ? { filterByBlock: p.value.filterCommentsByBlock } : null,
|
|
975
976
|
editorRoot: l.shadowRoot,
|
|
976
977
|
containerEl: _
|
|
977
|
-
}), { isInitializing: D, isAuthReady: k, initError: A, planConfigInstance: M, websocket: N, collaboration:
|
|
978
|
-
async function
|
|
978
|
+
}), { isInitializing: D, isAuthReady: k, initError: A, planConfigInstance: M, websocket: N, collaboration: P, isCollaborationEnabled: F, editor: I, core: L, featureFlags: R, mediaLib: te, exporter: ne, testEmail: B, commentsInstance: re, savedModulesHeadless: ie, panelState: V, snapshotPreview: H, collabWarning: U, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: le } = S, { showNotice: he } = ee(() => l.config.smallScreenNotice);
|
|
979
|
+
async function J(e) {
|
|
979
980
|
try {
|
|
980
|
-
await
|
|
981
|
+
await B.sendTestEmail(e), V.testEmailModalOpen.value = !1;
|
|
981
982
|
} catch {}
|
|
982
983
|
}
|
|
983
|
-
async function
|
|
984
|
+
async function ge() {
|
|
984
985
|
try {
|
|
985
|
-
await
|
|
986
|
+
await H.confirmRestoreSnapshot();
|
|
986
987
|
} catch {}
|
|
987
988
|
}
|
|
988
|
-
function
|
|
989
|
+
function _e(e, t) {
|
|
989
990
|
for (let n = 0; n < e.content.length; n++) {
|
|
990
991
|
let r = j(e.content[n]), i = t === void 0 ? void 0 : t + n;
|
|
991
|
-
|
|
992
|
+
I.addBlock(r, void 0, void 0, i);
|
|
992
993
|
}
|
|
993
|
-
|
|
994
|
+
G.value = !1;
|
|
994
995
|
}
|
|
995
|
-
let Y =
|
|
996
|
+
let Y = Ue({
|
|
996
997
|
config: l.config,
|
|
997
|
-
editor:
|
|
998
|
+
editor: I,
|
|
998
999
|
websocket: N,
|
|
999
1000
|
planConfigInstance: M,
|
|
1000
|
-
snapshotPreview:
|
|
1001
|
-
core:
|
|
1002
|
-
exporter:
|
|
1003
|
-
featureFlags:
|
|
1001
|
+
snapshotPreview: H,
|
|
1002
|
+
core: L,
|
|
1003
|
+
exporter: ne,
|
|
1004
|
+
featureFlags: R,
|
|
1004
1005
|
isDestroyed: S.isDestroyed
|
|
1005
|
-
}), X =
|
|
1006
|
-
issues:
|
|
1006
|
+
}), X = We({
|
|
1007
|
+
issues: L.templateLint ? L.templateLint.issues : o([]),
|
|
1007
1008
|
planConfig: M.config
|
|
1008
1009
|
});
|
|
1009
1010
|
async function Z() {
|
|
@@ -1014,24 +1015,24 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1014
1015
|
}), g(() => {
|
|
1015
1016
|
S.destroy();
|
|
1016
1017
|
}), r({
|
|
1017
|
-
getContent: () =>
|
|
1018
|
-
setContent: (e) =>
|
|
1018
|
+
getContent: () => I.content.value,
|
|
1019
|
+
setContent: (e) => I.setContent(e),
|
|
1019
1020
|
setTheme: le,
|
|
1020
|
-
setThemeOverrides:
|
|
1021
|
+
setThemeOverrides: q,
|
|
1021
1022
|
create: Y.createTemplate,
|
|
1022
1023
|
load: Y.loadTemplate,
|
|
1023
1024
|
save: Y.saveTemplate,
|
|
1024
|
-
sendTestEmail:
|
|
1025
|
+
sendTestEmail: B.sendTestEmail
|
|
1025
1026
|
}), (r, i) => (e(), m("div", {
|
|
1026
1027
|
ref_key: "rootEl",
|
|
1027
1028
|
ref: _,
|
|
1028
|
-
class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(
|
|
1029
|
-
"data-tpl-theme": C(
|
|
1030
|
-
style: b(C(
|
|
1029
|
+
class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(I).state.darkMode }]),
|
|
1030
|
+
"data-tpl-theme": C(L).resolvedTheme.value,
|
|
1031
|
+
style: b(C(L).themeStyles.value),
|
|
1031
1032
|
onDragover: i[9] ||= u(() => {}, ["prevent"]),
|
|
1032
1033
|
onDrop: i[10] ||= u(() => {}, ["prevent"])
|
|
1033
1034
|
}, [
|
|
1034
|
-
E(
|
|
1035
|
+
E(me),
|
|
1035
1036
|
E(T, {
|
|
1036
1037
|
"enter-active-class": "tpl:transition-opacity tpl:duration-200",
|
|
1037
1038
|
"enter-from-class": "tpl:opacity-100",
|
|
@@ -1040,7 +1041,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1040
1041
|
"leave-from-class": "tpl:opacity-100",
|
|
1041
1042
|
"leave-to-class": "tpl:opacity-0"
|
|
1042
1043
|
}, {
|
|
1043
|
-
default: O(() => [E(
|
|
1044
|
+
default: O(() => [E(bt, { visible: C(D) || C(I).state.isLoading }, null, 8, ["visible"])]),
|
|
1044
1045
|
_: 1
|
|
1045
1046
|
}),
|
|
1046
1047
|
E(T, {
|
|
@@ -1051,7 +1052,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1051
1052
|
"leave-from-class": "tpl:opacity-100",
|
|
1052
1053
|
"leave-to-class": "tpl:opacity-0"
|
|
1053
1054
|
}, {
|
|
1054
|
-
default: O(() => [E(
|
|
1055
|
+
default: O(() => [E(Et, {
|
|
1055
1056
|
error: C(A),
|
|
1056
1057
|
visible: !!C(A) && !C(D),
|
|
1057
1058
|
onRetry: C(S).initialize
|
|
@@ -1062,19 +1063,19 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1062
1063
|
])]),
|
|
1063
1064
|
_: 1
|
|
1064
1065
|
}),
|
|
1065
|
-
E(
|
|
1066
|
-
editor: C(
|
|
1067
|
-
core: C(
|
|
1068
|
-
"feature-flags": C(
|
|
1069
|
-
"panel-state": C(
|
|
1070
|
-
"snapshot-preview": C(
|
|
1071
|
-
"comments-instance": C(
|
|
1072
|
-
"test-email": C(
|
|
1066
|
+
E(ht, {
|
|
1067
|
+
editor: C(I),
|
|
1068
|
+
core: C(L),
|
|
1069
|
+
"feature-flags": C(R),
|
|
1070
|
+
"panel-state": C(V),
|
|
1071
|
+
"snapshot-preview": C(H),
|
|
1072
|
+
"comments-instance": C(re),
|
|
1073
|
+
"test-email": C(B),
|
|
1073
1074
|
websocket: C(N),
|
|
1074
|
-
collaboration: C(
|
|
1075
|
-
"is-collaboration-enabled": C(
|
|
1076
|
-
"is-saving": C(
|
|
1077
|
-
"is-save-disabled": C(
|
|
1075
|
+
collaboration: C(P),
|
|
1076
|
+
"is-collaboration-enabled": C(F),
|
|
1077
|
+
"is-saving": C(I).state.isSaving || C(R).isSaveExporting.value,
|
|
1078
|
+
"is-save-disabled": C(I).state.isSaving || C(R).isSaveExporting.value || !C(I).state.isDirty,
|
|
1078
1079
|
onSave: Z
|
|
1079
1080
|
}, null, 8, [
|
|
1080
1081
|
"editor",
|
|
@@ -1090,7 +1091,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1090
1091
|
"is-saving",
|
|
1091
1092
|
"is-save-disabled"
|
|
1092
1093
|
]),
|
|
1093
|
-
E(
|
|
1094
|
+
E(et, {
|
|
1094
1095
|
open: C(X).modalOpen.value,
|
|
1095
1096
|
issues: C(X).blockingIssues.value,
|
|
1096
1097
|
onCancel: C(X).cancel,
|
|
@@ -1101,10 +1102,10 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1101
1102
|
"onCancel",
|
|
1102
1103
|
"onConfirm"
|
|
1103
1104
|
]),
|
|
1104
|
-
E(
|
|
1105
|
-
visible: C(
|
|
1106
|
-
onCancel: C(
|
|
1107
|
-
onConfirm:
|
|
1105
|
+
E(At, {
|
|
1106
|
+
visible: C(H).isPreviewingSnapshot.value,
|
|
1107
|
+
onCancel: C(H).cancelPreview,
|
|
1108
|
+
onConfirm: ge
|
|
1108
1109
|
}, null, 8, ["visible", "onCancel"]),
|
|
1109
1110
|
E(T, {
|
|
1110
1111
|
"enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
|
|
@@ -1114,18 +1115,18 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1114
1115
|
"leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
|
|
1115
1116
|
"leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
|
|
1116
1117
|
}, {
|
|
1117
|
-
default: O(() => [E(
|
|
1118
|
+
default: O(() => [E(Mt, { visible: C(U).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
|
|
1118
1119
|
_: 1
|
|
1119
1120
|
}),
|
|
1120
|
-
t(E(
|
|
1121
|
+
t(E(se, null, null, 512), [[y, !C(I).state.previewMode]]),
|
|
1121
1122
|
f("div", {
|
|
1122
|
-
class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(
|
|
1123
|
+
class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(I).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(H).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
|
|
1123
1124
|
style: {
|
|
1124
1125
|
transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
1125
1126
|
"background-color": "var(--tpl-canvas-bg)"
|
|
1126
1127
|
}
|
|
1127
|
-
}, [f("div",
|
|
1128
|
-
default: O(() => [C(
|
|
1128
|
+
}, [f("div", Pt, [E(T, { name: "tpl-restore-btn" }, {
|
|
1129
|
+
default: O(() => [C(L).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
|
|
1129
1130
|
key: 0,
|
|
1130
1131
|
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",
|
|
1131
1132
|
style: {
|
|
@@ -1134,22 +1135,22 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1134
1135
|
"border-color": "var(--tpl-warning)",
|
|
1135
1136
|
"backdrop-filter": "blur(8px)"
|
|
1136
1137
|
},
|
|
1137
|
-
onClick: i[0] ||= (e) => C(
|
|
1138
|
-
}, [E(C(
|
|
1138
|
+
onClick: i[0] ||= (e) => C(L).conditionPreview.reset()
|
|
1139
|
+
}, [E(C(ue), {
|
|
1139
1140
|
size: 13,
|
|
1140
1141
|
"stroke-width": 2
|
|
1141
|
-
}), s(" " + w(C(
|
|
1142
|
+
}), s(" " + w(C(L).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
|
|
1142
1143
|
_: 1
|
|
1143
|
-
})]), f("main",
|
|
1144
|
-
viewport: C(
|
|
1145
|
-
content: C(
|
|
1146
|
-
"selected-block-id": C(
|
|
1147
|
-
"dark-mode": C(
|
|
1148
|
-
"preview-mode": C(
|
|
1149
|
-
"locked-blocks": C(
|
|
1150
|
-
onSelectBlock: C(
|
|
1151
|
-
onOpenAiChat: i[1] ||= (e) => C(
|
|
1152
|
-
onOpenDesignReference: i[2] ||= (e) => C(
|
|
1144
|
+
})]), f("main", Ft, [E(oe, {
|
|
1145
|
+
viewport: C(I).state.viewport,
|
|
1146
|
+
content: C(I).content.value,
|
|
1147
|
+
"selected-block-id": C(I).state.selectedBlockId,
|
|
1148
|
+
"dark-mode": C(I).state.darkMode,
|
|
1149
|
+
"preview-mode": C(I).state.previewMode,
|
|
1150
|
+
"locked-blocks": C(P)?.lockedBlocks.value ?? void 0,
|
|
1151
|
+
onSelectBlock: C(I).selectBlock,
|
|
1152
|
+
onOpenAiChat: i[1] ||= (e) => C(V).aiChatOpen.value = !0,
|
|
1153
|
+
onOpenDesignReference: i[2] ||= (e) => C(V).designReferenceOpen.value = !0
|
|
1153
1154
|
}, null, 8, [
|
|
1154
1155
|
"viewport",
|
|
1155
1156
|
"content",
|
|
@@ -1159,51 +1160,51 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1159
1160
|
"locked-blocks",
|
|
1160
1161
|
"onSelectBlock"
|
|
1161
1162
|
])])], 2),
|
|
1162
|
-
n.config.branding !== !1 && !C(
|
|
1163
|
+
n.config.branding !== !1 && !C(R).isWhiteLabeled.value ? (e(), x(de, {
|
|
1163
1164
|
key: 0,
|
|
1164
|
-
"position-class": [C(
|
|
1165
|
+
"position-class": [C(I).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
|
|
1165
1166
|
}, null, 8, ["position-class"])) : v("", !0),
|
|
1166
1167
|
f("div", {
|
|
1167
1168
|
class: "tpl-sr-only",
|
|
1168
1169
|
role: "status",
|
|
1169
1170
|
"aria-live": "polite",
|
|
1170
1171
|
"aria-atomic": "true",
|
|
1171
|
-
"aria-label": C(
|
|
1172
|
-
}, w(C(
|
|
1173
|
-
t(E(
|
|
1174
|
-
"selected-block": C(
|
|
1175
|
-
settings: C(
|
|
1176
|
-
"shifted-left": C(
|
|
1177
|
-
onUpdateBlock: i[3] ||= (e) => C(
|
|
1178
|
-
onDeleteBlock: i[4] ||= (e) => C(
|
|
1179
|
-
onDuplicateBlock: i[5] ||= (e) => C(
|
|
1180
|
-
onUpdateSettings: C(
|
|
1172
|
+
"aria-label": C(L).t.landmarks.reorderAnnouncements
|
|
1173
|
+
}, w(C(L).keyboardReorder.announcement.value), 9, It),
|
|
1174
|
+
t(E(ae, {
|
|
1175
|
+
"selected-block": C(I).selectedBlock.value,
|
|
1176
|
+
settings: C(I).content.value.settings,
|
|
1177
|
+
"shifted-left": C(V).rightPanelOpen.value,
|
|
1178
|
+
onUpdateBlock: i[3] ||= (e) => C(I).updateBlock(C(I).selectedBlock.value.id, e),
|
|
1179
|
+
onDeleteBlock: i[4] ||= (e) => C(L).blockActions.deleteBlock(C(I).selectedBlock.value.id),
|
|
1180
|
+
onDuplicateBlock: i[5] ||= (e) => C(L).blockActions.duplicateBlock(C(I).selectedBlock.value),
|
|
1181
|
+
onUpdateSettings: C(I).updateSettings
|
|
1181
1182
|
}, null, 8, [
|
|
1182
1183
|
"selected-block",
|
|
1183
1184
|
"settings",
|
|
1184
1185
|
"shifted-left",
|
|
1185
1186
|
"onUpdateSettings"
|
|
1186
|
-
]), [[y, !C(
|
|
1187
|
-
!C(D) && C(k) ? (e(), x(
|
|
1187
|
+
]), [[y, !C(I).state.previewMode]]),
|
|
1188
|
+
!C(D) && C(k) ? (e(), x(gt, {
|
|
1188
1189
|
key: 1,
|
|
1189
1190
|
ref_key: "cloudPanelsRef",
|
|
1190
1191
|
ref: p,
|
|
1191
1192
|
config: l.config,
|
|
1192
|
-
editor: C(
|
|
1193
|
-
core: C(
|
|
1194
|
-
"panel-state": C(
|
|
1193
|
+
editor: C(I),
|
|
1194
|
+
core: C(L),
|
|
1195
|
+
"panel-state": C(V),
|
|
1195
1196
|
"plan-config-instance": C(M),
|
|
1196
|
-
"test-email": C(
|
|
1197
|
-
"media-lib": C(
|
|
1198
|
-
"saved-modules-headless": C(
|
|
1199
|
-
"show-save-module-dialog": C(
|
|
1200
|
-
"save-module-pre-selected-block-id": C(
|
|
1201
|
-
"show-module-browser-modal": C(
|
|
1202
|
-
"onUpdate:showSaveModuleDialog": i[6] ||= (e) =>
|
|
1203
|
-
"onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) =>
|
|
1204
|
-
"onUpdate:showModuleBrowserModal": i[8] ||= (e) =>
|
|
1205
|
-
onSendTestEmail:
|
|
1206
|
-
onModuleInsert:
|
|
1197
|
+
"test-email": C(B),
|
|
1198
|
+
"media-lib": C(te),
|
|
1199
|
+
"saved-modules-headless": C(ie),
|
|
1200
|
+
"show-save-module-dialog": C(W),
|
|
1201
|
+
"save-module-pre-selected-block-id": C(K),
|
|
1202
|
+
"show-module-browser-modal": C(G),
|
|
1203
|
+
"onUpdate:showSaveModuleDialog": i[6] ||= (e) => W.value = e,
|
|
1204
|
+
"onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => K.value = e,
|
|
1205
|
+
"onUpdate:showModuleBrowserModal": i[8] ||= (e) => G.value = e,
|
|
1206
|
+
onSendTestEmail: J,
|
|
1207
|
+
onModuleInsert: _e
|
|
1207
1208
|
}, null, 8, [
|
|
1208
1209
|
"config",
|
|
1209
1210
|
"editor",
|
|
@@ -1218,13 +1219,14 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1218
1219
|
"show-module-browser-modal"
|
|
1219
1220
|
])) : v("", !0),
|
|
1220
1221
|
f("div", {
|
|
1221
|
-
ref: (e) => C(
|
|
1222
|
+
ref: (e) => C(L).popoverRoot.value = e,
|
|
1222
1223
|
class: "tpl-popover-root"
|
|
1223
1224
|
}, null, 512),
|
|
1224
|
-
E(
|
|
1225
|
-
|
|
1226
|
-
|
|
1225
|
+
E(ce),
|
|
1226
|
+
E(pe),
|
|
1227
|
+
C(he) ? (e(), x(fe, { key: 2 })) : v("", !0)
|
|
1228
|
+
], 46, Nt));
|
|
1227
1229
|
}
|
|
1228
|
-
}), [["__scopeId", "data-v-
|
|
1230
|
+
}), [["__scopeId", "data-v-3fc6c906"]]);
|
|
1229
1231
|
//#endregion
|
|
1230
|
-
export {
|
|
1232
|
+
export { Lt as default };
|