@aswin.dev/editor 0.6.3 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/AccessibilityPanel-COL6Wm7p.js +108 -0
- package/dist/AiChatSidebar-DWGPVtvC.js +229 -0
- package/dist/AiFeatureMenu-duUFSfDf.js +63 -0
- package/dist/BlockA11yBadge-Qs6HtXid.js +34 -0
- package/dist/CloudEditor-CFldoCOb.js +1207 -0
- package/dist/CollaboratorBar-Bw-lbt61.js +95 -0
- package/dist/CommentsSidebar-BaD5F53-.js +436 -0
- package/dist/CountdownBlock-DaYGxKqo.js +92 -0
- package/dist/CountdownToolbar-Dg4F8MTk.js +210 -0
- package/dist/DesignReferenceSidebar-BSH7uNP_.js +276 -0
- package/dist/LoadingTrack-Ba2pfF57.js +10 -0
- package/dist/ModuleBrowserModal-6phxZSKI.js +206 -0
- package/dist/ModulePreviewCanvas-BW8L3eQX.js +108 -0
- package/dist/NumberWithSuffix-BpUzQOJt.js +422 -0
- package/dist/ParagraphEditor-DNSzAB-I.js +695 -0
- package/dist/RichTextEditorContent-CrqPQdnk.js +137 -0
- package/dist/SaveModuleDialog-zMQTpez7.js +123 -0
- package/dist/SnapshotHistory-Do-A5rYU.js +122 -0
- package/dist/TemplateScoringPanel-CS7o62zS.js +256 -0
- package/dist/TestEmailModal-DGj_9V1u.js +94 -0
- package/dist/TitleEditor-C7IDnAoS.js +172 -0
- package/dist/TplModal-BAsVzcTb.js +44 -0
- package/dist/_plugin-vue_export-helper-BVAJ4lgT.js +8 -0
- package/dist/accessibility-BU09xZrQ.js +27 -0
- package/dist/blockTypeIcons-C6LDKvmd.js +140 -0
- package/dist/bundle-stats.json +10 -0
- package/dist/check-DJrpDKO_.js +7 -0
- package/dist/chevron-down-C5oBUhT8.js +7 -0
- package/dist/chevron-right-BqCptpdp.js +10 -0
- package/dist/circle-alert-ZQQc98HC.js +25 -0
- package/dist/clock-ik2pRJKG.js +12 -0
- package/dist/cloud-6ZmAvF0j.js +1791 -0
- package/dist/createLucideIcon-ClREiSx3.js +43 -0
- package/dist/de-DWcgp-7T.js +729 -0
- package/dist/de-GOtR9DwW.js +207 -0
- package/dist/dist-BUzw1buG.js +35 -0
- package/dist/dist-BZyY-SS4.js +74 -0
- package/dist/dist-BadNx4qo.js +5 -0
- package/dist/dist-BesOh2mk.js +35 -0
- package/dist/dist-Bz3M4RXG.js +2082 -0
- package/dist/dist-C04s_fLA.js +563 -0
- package/dist/dist-C3T2AKtB.js +776 -0
- package/dist/dist-C9ckKEZL.js +519 -0
- package/dist/dist-CBItRG-Z.js +47 -0
- package/dist/dist-COSzWQUs.js +5 -0
- package/dist/dist-CivF9P8b.js +382 -0
- package/dist/dist-DXa1uAMh.js +10658 -0
- package/dist/dist-DtiDUrX-.js +189 -0
- package/dist/dist-Dzt5foyL.js +61 -0
- package/dist/emojiData-DrBuvEoP.js +17 -0
- package/dist/en-Cxd4fhNm.js +729 -0
- package/dist/en-dFFQVzNn.js +207 -0
- package/dist/extensions-D__hOlV1.js +799 -0
- package/dist/formatRelativeTime-BhhO8yCl.js +12 -0
- package/dist/image-up-DT7gcJLN.js +23 -0
- package/dist/index.d.ts +352 -0
- package/dist/info-BSPGcsSM.js +19 -0
- package/dist/keys-CvX8D-8C.js +10 -0
- package/dist/liquid.browser-BvCyLQII.js +3277 -0
- package/dist/loader-circle-Balo8p3d.js +7 -0
- package/dist/message-circle-B39qAHxs.js +7 -0
- package/dist/pencil-BZJPNYWR.js +10 -0
- package/dist/readableTextColor-DVuzNX1y.js +30 -0
- package/dist/refresh-cw-DwDqGUM0.js +29 -0
- package/dist/rolldown-runtime-BZGGJVDF.js +20 -0
- package/dist/scan-line-CzfFJO1o.js +25 -0
- package/dist/send-D2eSo4GH.js +10 -0
- package/dist/shield-check-jkpgcC0-.js +10 -0
- package/dist/sparkles-Chm5CZfb.js +23 -0
- package/dist/style.css +2 -0
- package/dist/styleConstants-34eUKPOZ.js +55 -0
- package/dist/styles-B4tjX5SP.js +5224 -0
- package/dist/templatical-editor.js +312 -0
- package/dist/text-align-start-CzBnJsW8.js +43 -0
- package/dist/timeouts-BSGxjuUF.js +4 -0
- package/dist/trash-2-CtK2apEH.js +25 -0
- package/dist/triangle-alert-KpDVNbpn.js +17 -0
- package/dist/useCloudI18n-DOKSZql1.js +23 -0
- package/dist/useEditorCore-wslttMH-.js +9517 -0
- package/dist/useI18n-C2xQZ6K9.js +17 -0
- package/dist/useMergeTag-DX0XG5V9.js +34 -0
- package/dist/vue.runtime.esm-bundler-CjauPXjj.js +5775 -0
- package/dist/x-BkaOMosX.js +10 -0
- package/package.json +10 -10
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { At as e, C as t, Ft as n, M as r, N as i, P as a, T as o, U as s, W as c, _ as l, b as u, et as d, f, g as p, h as m, j as ee, jt as h, l as g, m as _, n as v, st as y, t as te, v as b, x } from "./vue.runtime.esm-bundler-CjauPXjj.js";
|
|
2
|
+
import { r as S } from "./timeouts-BSGxjuUF.js";
|
|
3
|
+
import { f as ne, r as re } from "./dist-C04s_fLA.js";
|
|
4
|
+
import { L as C, S as w, t as ie, z as ae } from "./useEditorCore-wslttMH-.js";
|
|
5
|
+
import { w as oe } from "./keys-CvX8D-8C.js";
|
|
6
|
+
import { a as se, c as ce, d as le, f as ue, h as de, i as fe, l as pe, m as me, n as he, o as T, p as E, r as D, s as O, t as k, u as A } from "./styles-B4tjX5SP.js";
|
|
7
|
+
import { t as j } from "./_plugin-vue_export-helper-BVAJ4lgT.js";
|
|
8
|
+
//#region src/Editor.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
+
var M = ["data-tpl-theme"], N = {
|
|
10
|
+
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)]",
|
|
11
|
+
style: {
|
|
12
|
+
"background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
|
|
13
|
+
"backdrop-filter": "blur(12px)",
|
|
14
|
+
"-webkit-backdrop-filter": "blur(12px)"
|
|
15
|
+
}
|
|
16
|
+
}, P = { class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, F = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, I = { class: "tpl:flex tpl:justify-center tpl:p-8" }, L = ["aria-label"], R = /* @__PURE__ */ j(/* @__PURE__ */ t({
|
|
17
|
+
__name: "Editor",
|
|
18
|
+
props: {
|
|
19
|
+
config: {},
|
|
20
|
+
translations: {},
|
|
21
|
+
fontsManager: {}
|
|
22
|
+
},
|
|
23
|
+
setup(t, { expose: o }) {
|
|
24
|
+
let v = d(null), S = t, w = ae({
|
|
25
|
+
content: S.config.content,
|
|
26
|
+
templateDefaults: S.config.templateDefaults
|
|
27
|
+
}), T = ie({
|
|
28
|
+
editor: w,
|
|
29
|
+
config: {
|
|
30
|
+
uiTheme: S.config.uiTheme,
|
|
31
|
+
theme: S.config.theme,
|
|
32
|
+
blockDefaults: S.config.blockDefaults,
|
|
33
|
+
customBlocks: S.config.customBlocks,
|
|
34
|
+
mergeTags: S.config.mergeTags,
|
|
35
|
+
displayConditions: S.config.displayConditions,
|
|
36
|
+
onRequestMedia: S.config.onRequestMedia,
|
|
37
|
+
editorType: S.config.editorType,
|
|
38
|
+
accessibility: me(S.config),
|
|
39
|
+
onSave: S.config.onSave ? () => S.config.onSave(JSON.parse(JSON.stringify(w.state.content))) : void 0
|
|
40
|
+
},
|
|
41
|
+
translations: S.translations,
|
|
42
|
+
fontsManager: S.fontsManager,
|
|
43
|
+
autoSaveOptions: S.config.onChange ? { onChange: () => S.config.onChange(JSON.parse(JSON.stringify(w.state.content))) } : null
|
|
44
|
+
});
|
|
45
|
+
ee(async () => {
|
|
46
|
+
if (await S.fontsManager.loadCustomFonts(), C(S.config.editorType) === "popup" && !w.content.value.settings.popup) {
|
|
47
|
+
let e = ne();
|
|
48
|
+
w.updateSettings({
|
|
49
|
+
popup: e,
|
|
50
|
+
width: re[e.design.sizePreset]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}), r(() => {
|
|
54
|
+
S.fontsManager.cleanupFontLinks(), T.destroy();
|
|
55
|
+
});
|
|
56
|
+
let j = d("blocks");
|
|
57
|
+
a(oe, j);
|
|
58
|
+
let R = _(() => C(S.config.editorType) === "popup"), z = _(() => R.value && j.value === "displayRules"), B = _(() => R.value && j.value === "schedule"), V = _(() => j.value === "design"), H = _(() => R.value && (z.value || B.value || V.value)), U = _(() => {
|
|
59
|
+
if (w.state.previewMode) return ["tpl:left-0", "tpl:right-0"];
|
|
60
|
+
if (!R.value) return ["tpl:left-12", "tpl:right-[320px]"];
|
|
61
|
+
let e;
|
|
62
|
+
e = j.value === "blocks" ? "tpl:left-[272px]" : V.value ? "tpl:left-[392px]" : "tpl:left-[72px]";
|
|
63
|
+
let t = H.value ? "tpl:right-0" : "tpl:right-[320px]";
|
|
64
|
+
return [e, t];
|
|
65
|
+
}), W = _(() => z.value || B.value);
|
|
66
|
+
return o({
|
|
67
|
+
getContent: () => w.content.value,
|
|
68
|
+
setContent: (e) => w.setContent(e),
|
|
69
|
+
setTheme: (e) => w.setUiTheme(e),
|
|
70
|
+
renderCustomBlock: T.registry.renderCustomBlock,
|
|
71
|
+
startTour: (e) => v.value?.start(e),
|
|
72
|
+
dismissTour: () => v.value?.dismiss(),
|
|
73
|
+
resetTourDismissed: () => fe(S.config.tour),
|
|
74
|
+
isTourDismissed: () => S.config.tour ? se(S.config.tour) : !0
|
|
75
|
+
}), (r, a) => (i(), b("div", {
|
|
76
|
+
class: e(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": y(w).state.darkMode }]),
|
|
77
|
+
"data-tpl-theme": y(T).resolvedTheme.value,
|
|
78
|
+
style: h(y(T).themeStyles.value)
|
|
79
|
+
}, [
|
|
80
|
+
m("header", N, [
|
|
81
|
+
a[5] ||= m("div", { class: "tpl:flex tpl:items-center tpl:gap-2.5" }, null, -1),
|
|
82
|
+
m("div", P, [
|
|
83
|
+
x(A, {
|
|
84
|
+
viewport: y(w).state.viewport,
|
|
85
|
+
onChange: y(w).setViewport
|
|
86
|
+
}, null, 8, ["viewport", "onChange"]),
|
|
87
|
+
x(ce, {
|
|
88
|
+
"dark-mode": y(w).state.darkMode,
|
|
89
|
+
onChange: y(w).setDarkMode
|
|
90
|
+
}, null, 8, ["dark-mode", "onChange"]),
|
|
91
|
+
x(pe, {
|
|
92
|
+
"preview-mode": y(w).state.previewMode,
|
|
93
|
+
onChange: y(w).setPreviewMode
|
|
94
|
+
}, null, 8, ["preview-mode", "onChange"])
|
|
95
|
+
]),
|
|
96
|
+
a[6] ||= m("div", { class: "tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, null, -1)
|
|
97
|
+
]),
|
|
98
|
+
c(x(ue, null, null, 512), [[g, !y(w).state.previewMode]]),
|
|
99
|
+
m("div", {
|
|
100
|
+
class: e(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [...U.value, "tpl:top-14"]]),
|
|
101
|
+
style: h({
|
|
102
|
+
transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
103
|
+
backgroundColor: W.value ? "var(--tpl-bg)" : "var(--tpl-canvas-bg)"
|
|
104
|
+
})
|
|
105
|
+
}, [R.value && j.value === "displayRules" ? (i(), p(he, { key: 0 })) : R.value && j.value === "schedule" ? (i(), p(k, {
|
|
106
|
+
key: 1,
|
|
107
|
+
layout: "standalone"
|
|
108
|
+
})) : (i(), b(f, { key: 2 }, [m("div", F, [x(te, { name: "tpl-restore-btn" }, {
|
|
109
|
+
default: s(() => [y(T).conditionPreview.hasHiddenBlocks.value ? (i(), b("button", {
|
|
110
|
+
key: 0,
|
|
111
|
+
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)]",
|
|
112
|
+
style: { "backdrop-filter": "blur(8px)" },
|
|
113
|
+
onClick: a[0] ||= (e) => y(T).conditionPreview.reset()
|
|
114
|
+
}, [x(y(de), {
|
|
115
|
+
size: 13,
|
|
116
|
+
"stroke-width": 2
|
|
117
|
+
}), u(" " + n(y(T).t.blockSettings.restoreHiddenBlocks), 1)])) : l("", !0)]),
|
|
118
|
+
_: 1
|
|
119
|
+
})]), m("div", I, [x(E, {
|
|
120
|
+
viewport: y(w).state.viewport,
|
|
121
|
+
content: y(w).content.value,
|
|
122
|
+
"selected-block-id": y(w).state.selectedBlockId,
|
|
123
|
+
"dark-mode": y(w).state.darkMode,
|
|
124
|
+
"preview-mode": y(w).state.previewMode,
|
|
125
|
+
"multi-page-canvas": t.config.multiPageCanvas ?? !1,
|
|
126
|
+
onSelectBlock: y(w).selectBlock
|
|
127
|
+
}, null, 8, [
|
|
128
|
+
"viewport",
|
|
129
|
+
"content",
|
|
130
|
+
"selected-block-id",
|
|
131
|
+
"dark-mode",
|
|
132
|
+
"preview-mode",
|
|
133
|
+
"multi-page-canvas",
|
|
134
|
+
"onSelectBlock"
|
|
135
|
+
])])], 64))], 6),
|
|
136
|
+
t.config.branding === !1 ? l("", !0) : (i(), p(O, {
|
|
137
|
+
key: 0,
|
|
138
|
+
"position-class": U.value
|
|
139
|
+
}, null, 8, ["position-class"])),
|
|
140
|
+
m("div", {
|
|
141
|
+
class: "tpl-sr-only",
|
|
142
|
+
role: "status",
|
|
143
|
+
"aria-live": "polite",
|
|
144
|
+
"aria-atomic": "true",
|
|
145
|
+
"aria-label": y(T).t.landmarks.reorderAnnouncements
|
|
146
|
+
}, n(y(T).keyboardReorder.announcement.value), 9, L),
|
|
147
|
+
c(x(le, {
|
|
148
|
+
"selected-block": y(w).selectedBlock.value,
|
|
149
|
+
settings: y(w).content.value.settings,
|
|
150
|
+
onUpdateBlock: a[1] ||= (e) => y(w).updateBlock(y(w).state.selectedBlockId, e),
|
|
151
|
+
onDeleteBlock: a[2] ||= () => {
|
|
152
|
+
y(w).state.selectedBlockId && y(T).blockActions.deleteBlock(y(w).state.selectedBlockId);
|
|
153
|
+
},
|
|
154
|
+
onDuplicateBlock: a[3] ||= () => {
|
|
155
|
+
y(w).selectedBlock.value && y(T).blockActions.duplicateBlock(y(w).selectedBlock.value);
|
|
156
|
+
},
|
|
157
|
+
onUpdateSettings: a[4] ||= (e) => y(w).updateSettings(e)
|
|
158
|
+
}, null, 8, ["selected-block", "settings"]), [[g, !y(w).state.previewMode && !H.value]]),
|
|
159
|
+
t.config.tour ? (i(), p(D, {
|
|
160
|
+
key: 1,
|
|
161
|
+
ref_key: "editorTourRef",
|
|
162
|
+
ref: v,
|
|
163
|
+
"tour-config": t.config.tour,
|
|
164
|
+
"dark-mode": y(w).state.darkMode
|
|
165
|
+
}, null, 8, ["tour-config", "dark-mode"])) : l("", !0)
|
|
166
|
+
], 14, M));
|
|
167
|
+
}
|
|
168
|
+
}), [["__scopeId", "data-v-8467ac4c"]]), z = /* @__PURE__ */ Object.assign({
|
|
169
|
+
"./locales/de.ts": () => import("./de-DWcgp-7T.js"),
|
|
170
|
+
"./locales/en.ts": () => import("./en-Cxd4fhNm.js")
|
|
171
|
+
}), B = /* @__PURE__ */ Object.assign({
|
|
172
|
+
"./locales/cloud/de.ts": () => import("./de-GOtR9DwW.js"),
|
|
173
|
+
"./locales/cloud/en.ts": () => import("./en-dFFQVzNn.js")
|
|
174
|
+
});
|
|
175
|
+
function V(e) {
|
|
176
|
+
return Object.keys(e).map((e) => e.match(/\/([^/]+)\.ts$/)?.[1]).filter((e) => !!e);
|
|
177
|
+
}
|
|
178
|
+
var H = V(z), U = V(B);
|
|
179
|
+
function W(e) {
|
|
180
|
+
return e.split("-")[0].toLowerCase();
|
|
181
|
+
}
|
|
182
|
+
function G(e, t) {
|
|
183
|
+
let n = W(e);
|
|
184
|
+
return t.includes(n) ? n : "en";
|
|
185
|
+
}
|
|
186
|
+
async function K(e) {
|
|
187
|
+
let t = z[`./locales/${G(e, H)}.ts`];
|
|
188
|
+
return (await t()).default;
|
|
189
|
+
}
|
|
190
|
+
async function ge(e) {
|
|
191
|
+
let t = B[`./locales/cloud/${G(e, U)}.ts`];
|
|
192
|
+
return (await t()).default;
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/utils/toMjml.ts
|
|
196
|
+
async function _e(e) {
|
|
197
|
+
let t;
|
|
198
|
+
try {
|
|
199
|
+
t = await import("@aswin.dev/renderer");
|
|
200
|
+
} catch {
|
|
201
|
+
throw Error("[Templatical] toMjml() requires the @aswin.dev/renderer package. Please install it.");
|
|
202
|
+
}
|
|
203
|
+
return t.renderToMjml(e.getContent(), { renderCustomBlock: e.renderCustomBlock });
|
|
204
|
+
}
|
|
205
|
+
//#endregion
|
|
206
|
+
//#region src/index.ts
|
|
207
|
+
var q = null, J = d(null);
|
|
208
|
+
async function Y(e) {
|
|
209
|
+
let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
|
|
210
|
+
if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
|
|
211
|
+
let n = await K(e.locale ?? "en"), r = w(e.fonts);
|
|
212
|
+
q && Q(), q = v({ setup() {
|
|
213
|
+
return () => o(R, {
|
|
214
|
+
config: e,
|
|
215
|
+
translations: n,
|
|
216
|
+
fontsManager: r,
|
|
217
|
+
ref: J
|
|
218
|
+
});
|
|
219
|
+
} }), q.mount(t);
|
|
220
|
+
let i = {
|
|
221
|
+
getContent() {
|
|
222
|
+
return J.value ? JSON.parse(JSON.stringify(J.value.getContent())) : JSON.parse(JSON.stringify(e.content));
|
|
223
|
+
},
|
|
224
|
+
setContent(t) {
|
|
225
|
+
J.value && J.value.setContent(t), e.content = t;
|
|
226
|
+
},
|
|
227
|
+
setTheme(e) {
|
|
228
|
+
J.value && J.value.setTheme(e);
|
|
229
|
+
},
|
|
230
|
+
unmount: Q,
|
|
231
|
+
startTour(e) {
|
|
232
|
+
J.value?.startTour?.(e);
|
|
233
|
+
},
|
|
234
|
+
dismissTour() {
|
|
235
|
+
J.value?.dismissTour?.();
|
|
236
|
+
},
|
|
237
|
+
resetTourDismissed() {
|
|
238
|
+
J.value?.resetTourDismissed?.();
|
|
239
|
+
},
|
|
240
|
+
isTourDismissed() {
|
|
241
|
+
return J.value?.isTourDismissed?.() ?? !0;
|
|
242
|
+
},
|
|
243
|
+
renderCustomBlock(e) {
|
|
244
|
+
return J.value ? J.value.renderCustomBlock(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Editor not ready"));
|
|
245
|
+
},
|
|
246
|
+
toMjml: () => _e(i)
|
|
247
|
+
};
|
|
248
|
+
return i;
|
|
249
|
+
}
|
|
250
|
+
var X = null, Z = d(null);
|
|
251
|
+
async function ve(e) {
|
|
252
|
+
let t = typeof e.container == "string" ? document.querySelector(e.container) : e.container;
|
|
253
|
+
if (!t) throw Error(`[Templatical] Container element not found: ${e.container}`);
|
|
254
|
+
let { default: n } = await import("./CloudEditor-CFldoCOb.js"), [r, i] = await Promise.all([K(e.locale ?? "en"), ge(e.locale ?? "en")]), a = w(e.fonts);
|
|
255
|
+
return X && $(), await new Promise((s, c) => {
|
|
256
|
+
let l = setTimeout(() => {
|
|
257
|
+
c(/* @__PURE__ */ Error("[Templatical] Cloud editor initialization timed out"));
|
|
258
|
+
}, S);
|
|
259
|
+
X = v({ setup() {
|
|
260
|
+
return () => o(n, {
|
|
261
|
+
config: e,
|
|
262
|
+
translations: r,
|
|
263
|
+
cloudTranslations: i,
|
|
264
|
+
fontsManager: a,
|
|
265
|
+
ref: Z,
|
|
266
|
+
onReady: () => {
|
|
267
|
+
clearTimeout(l), s();
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
} }), X.mount(t);
|
|
271
|
+
}), {
|
|
272
|
+
getContent() {
|
|
273
|
+
return Z.value ? JSON.parse(JSON.stringify(Z.value.getContent())) : JSON.parse(JSON.stringify(e.content));
|
|
274
|
+
},
|
|
275
|
+
setContent(e) {
|
|
276
|
+
Z.value && Z.value.setContent(e);
|
|
277
|
+
},
|
|
278
|
+
setTheme(e) {
|
|
279
|
+
Z.value && Z.value.setTheme(e);
|
|
280
|
+
},
|
|
281
|
+
unmount: $,
|
|
282
|
+
startTour(e) {
|
|
283
|
+
Z.value?.startTour?.(e);
|
|
284
|
+
},
|
|
285
|
+
dismissTour() {
|
|
286
|
+
Z.value?.dismissTour?.();
|
|
287
|
+
},
|
|
288
|
+
resetTourDismissed() {
|
|
289
|
+
Z.value?.resetTourDismissed?.();
|
|
290
|
+
},
|
|
291
|
+
isTourDismissed() {
|
|
292
|
+
return Z.value?.isTourDismissed?.() ?? !0;
|
|
293
|
+
},
|
|
294
|
+
create(e) {
|
|
295
|
+
return Z.value ? Z.value.create(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
|
|
296
|
+
},
|
|
297
|
+
load(e) {
|
|
298
|
+
return Z.value ? Z.value.load(e) : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
|
|
299
|
+
},
|
|
300
|
+
save() {
|
|
301
|
+
return Z.value ? Z.value.save() : Promise.reject(/* @__PURE__ */ Error("[Templatical] Cloud editor not ready"));
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
function Q() {
|
|
306
|
+
q && (q.unmount(), q = null, J.value = null);
|
|
307
|
+
}
|
|
308
|
+
function $() {
|
|
309
|
+
X && (X.unmount(), X = null, Z.value = null);
|
|
310
|
+
}
|
|
311
|
+
//#endregion
|
|
312
|
+
export { T as DEFAULT_EDITOR_TOUR_STORAGE_KEY, Y as init, ve as initCloud, Q as unmount, w as useFonts };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { t as e } from "./createLucideIcon-ClREiSx3.js";
|
|
2
|
+
var t = e("text-align-center", [
|
|
3
|
+
["path", {
|
|
4
|
+
d: "M21 5H3",
|
|
5
|
+
key: "1fi0y6"
|
|
6
|
+
}],
|
|
7
|
+
["path", {
|
|
8
|
+
d: "M17 12H7",
|
|
9
|
+
key: "16if0g"
|
|
10
|
+
}],
|
|
11
|
+
["path", {
|
|
12
|
+
d: "M19 19H5",
|
|
13
|
+
key: "vjpgq2"
|
|
14
|
+
}]
|
|
15
|
+
]), n = e("text-align-end", [
|
|
16
|
+
["path", {
|
|
17
|
+
d: "M21 5H3",
|
|
18
|
+
key: "1fi0y6"
|
|
19
|
+
}],
|
|
20
|
+
["path", {
|
|
21
|
+
d: "M21 12H9",
|
|
22
|
+
key: "dn1m92"
|
|
23
|
+
}],
|
|
24
|
+
["path", {
|
|
25
|
+
d: "M21 19H7",
|
|
26
|
+
key: "4cu937"
|
|
27
|
+
}]
|
|
28
|
+
]), r = e("text-align-start", [
|
|
29
|
+
["path", {
|
|
30
|
+
d: "M21 5H3",
|
|
31
|
+
key: "1fi0y6"
|
|
32
|
+
}],
|
|
33
|
+
["path", {
|
|
34
|
+
d: "M15 12H3",
|
|
35
|
+
key: "6jk70r"
|
|
36
|
+
}],
|
|
37
|
+
["path", {
|
|
38
|
+
d: "M17 19H3",
|
|
39
|
+
key: "z6ezky"
|
|
40
|
+
}]
|
|
41
|
+
]);
|
|
42
|
+
//#endregion
|
|
43
|
+
export { n, t as r, r as t };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { t as e } from "./createLucideIcon-ClREiSx3.js";
|
|
2
|
+
var t = e("trash-2", [
|
|
3
|
+
["path", {
|
|
4
|
+
d: "M10 11v6",
|
|
5
|
+
key: "nco0om"
|
|
6
|
+
}],
|
|
7
|
+
["path", {
|
|
8
|
+
d: "M14 11v6",
|
|
9
|
+
key: "outv1u"
|
|
10
|
+
}],
|
|
11
|
+
["path", {
|
|
12
|
+
d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
|
|
13
|
+
key: "miytrc"
|
|
14
|
+
}],
|
|
15
|
+
["path", {
|
|
16
|
+
d: "M3 6h18",
|
|
17
|
+
key: "d0wm0j"
|
|
18
|
+
}],
|
|
19
|
+
["path", {
|
|
20
|
+
d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
|
|
21
|
+
key: "e791ji"
|
|
22
|
+
}]
|
|
23
|
+
]);
|
|
24
|
+
//#endregion
|
|
25
|
+
export { t };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { t as e } from "./createLucideIcon-ClREiSx3.js";
|
|
2
|
+
var t = e("triangle-alert", [
|
|
3
|
+
["path", {
|
|
4
|
+
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
5
|
+
key: "wmoenq"
|
|
6
|
+
}],
|
|
7
|
+
["path", {
|
|
8
|
+
d: "M12 9v4",
|
|
9
|
+
key: "juzpu7"
|
|
10
|
+
}],
|
|
11
|
+
["path", {
|
|
12
|
+
d: "M12 17h.01",
|
|
13
|
+
key: "p32p05"
|
|
14
|
+
}]
|
|
15
|
+
]);
|
|
16
|
+
//#endregion
|
|
17
|
+
export { t };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { D as e, Y as t } from "./vue.runtime.esm-bundler-CjauPXjj.js";
|
|
2
|
+
import { l as n } from "./keys-CvX8D-8C.js";
|
|
3
|
+
//#region src/composables/useCloudI18n.ts
|
|
4
|
+
function r(e, t) {
|
|
5
|
+
return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
|
|
6
|
+
}
|
|
7
|
+
function i(i) {
|
|
8
|
+
let a = i ?? e(n, null);
|
|
9
|
+
return {
|
|
10
|
+
t: a ? t(a) ? a.value : a : null,
|
|
11
|
+
format: r
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function a(e) {
|
|
15
|
+
let { t, format: n } = i(e);
|
|
16
|
+
if (!t) throw Error("useCloudI18nStrict() requires a cloud translations provider. Ensure the component is a descendant of CloudEditor.");
|
|
17
|
+
return {
|
|
18
|
+
t,
|
|
19
|
+
format: n
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { a as n, i as t };
|