@templatical/editor 0.14.0 → 0.15.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-J8iO_sX7.js → AiChatSidebar-BIKvYREk.js} +57 -56
- package/dist/{AiFeatureMenu-F2diEDgV.js → AiFeatureMenu-QbD82crt.js} +20 -20
- package/dist/{BlockIssueBadge-a-qlByxF.js → BlockIssueBadge-B3xVgMTh.js} +11 -11
- package/dist/{CloudEditor-CDjtwb4i.js → CloudEditor-DptuSf7A.js} +470 -468
- package/dist/{CollaboratorBar-B_EnJLtW.js → CollaboratorBar-DrA_K69w.js} +20 -20
- package/dist/{CommentsSidebar-DaP9BA_r.js → CommentsSidebar-D_tSGvTX.js} +154 -153
- package/dist/CountdownBlock-apiYUhkQ.js +92 -0
- package/dist/CountdownToolbar-CS0axcjz.js +210 -0
- package/dist/{DesignReferenceSidebar-BHRlTqlT.js → DesignReferenceSidebar-DWYK9nTk.js} +58 -57
- package/dist/{IssuesPanel-u7ee3Wrl.js → IssuesPanel-CR1MPaDE.js} +40 -40
- package/dist/{LoadingTrack-CV3ID80N.js → LoadingTrack-DsecR8Rw.js} +1 -1
- package/dist/MergeTagSuggestion-CH2SUxBo.js +1327 -0
- package/dist/{ModuleBrowserModal-DOsdaS6s.js → ModuleBrowserModal-D45rBj5C.js} +60 -59
- package/dist/{ModulePreviewCanvas-Cx4MOJ0X.js → ModulePreviewCanvas-BiQ6B2-l.js} +29 -29
- package/dist/{NumberWithSuffix-D2mW_DhT.js → NumberWithSuffix-CrA6quxx.js} +143 -142
- package/dist/{ParagraphEditor-DMzkVnST.js → ParagraphEditor-1NaUJpZO.js} +247 -246
- package/dist/{RichTextEditorContent-CRCxCwKf.js → RichTextEditorContent-BqLHIZY7.js} +45 -44
- package/dist/{SaveModuleDialog-DuEKgumL.js → SaveModuleDialog-B0sPOTgO.js} +38 -37
- package/dist/{SnapshotHistory-CVgiNJtE.js → SnapshotHistory-DslVzmSb.js} +34 -33
- package/dist/{TemplateScoringPanel-lm0_9nYi.js → TemplateScoringPanel-CZ62rGHz.js} +83 -82
- package/dist/{TestEmailModal-WBMdiW5S.js → TestEmailModal-DWGniJVu.js} +22 -21
- package/dist/{TitleEditor-eyT0h-Sa.js → TitleEditor-D4t_gZZJ.js} +44 -44
- package/dist/{TplModal-tjQ7OB0g.js → TplModal-Br2VG6cn.js} +14 -13
- package/dist/{blockTypeIcons-DdB3uTKD.js → blockTypeIcons-CXhCS5WV.js} +2 -2
- package/dist/bundle-stats.json +8 -8
- package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js → AiFeatureMenu-3Slo_LGA.js} +5 -5
- package/dist/cdn/chunks/{AiFeatureMenu-D7rB2SBs.js.map → AiFeatureMenu-3Slo_LGA.js.map} +1 -1
- package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js → BlockIssueBadge-BxwEiiF3.js} +3 -3
- package/dist/cdn/chunks/{BlockIssueBadge-DHOe0pgx.js.map → BlockIssueBadge-BxwEiiF3.js.map} +1 -1
- package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js → CloudEditor-DFIFWD9G.js} +89 -89
- package/dist/cdn/chunks/{CloudEditor-DNed_Ym0.js.map → CloudEditor-DFIFWD9G.js.map} +1 -1
- package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js → CollaboratorBar-Cu3vuN66.js} +4 -4
- package/dist/cdn/chunks/{CollaboratorBar-sj_9Lee3.js.map → CollaboratorBar-Cu3vuN66.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js → CountdownBlock-BEVAJQtQ.js} +3 -3
- package/dist/cdn/chunks/{CountdownBlock-C1Ikjpn4.js.map → CountdownBlock-BEVAJQtQ.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js → CountdownToolbar-CI2sQZv5.js} +4 -4
- package/dist/cdn/chunks/{CountdownToolbar-j1G_X8rB.js.map → CountdownToolbar-CI2sQZv5.js.map} +1 -1
- package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js → IssuesPanel-BdeDoTcn.js} +4 -4
- package/dist/cdn/chunks/{IssuesPanel-CTOf3PsH.js.map → IssuesPanel-BdeDoTcn.js.map} +1 -1
- package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js +213 -0
- package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js.map +1 -0
- package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js → ModuleBrowserModal-Dz-I5zfj.js} +6 -6
- package/dist/cdn/chunks/{ModuleBrowserModal-DCh88-rr.js.map → ModuleBrowserModal-Dz-I5zfj.js.map} +1 -1
- package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js → ModulePreviewCanvas-BfinyuAN.js} +3 -3
- package/dist/cdn/chunks/{ModulePreviewCanvas-DJqvTKmg.js.map → ModulePreviewCanvas-BfinyuAN.js.map} +1 -1
- package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js → NumberWithSuffix-CDjEa08X.js} +6 -6
- package/dist/cdn/chunks/{NumberWithSuffix-Bu45XWSl.js.map → NumberWithSuffix-CDjEa08X.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js → ParagraphEditor-B3fG0vge.js} +22 -22
- package/dist/cdn/chunks/{ParagraphEditor-DwZqLJp2.js.map → ParagraphEditor-B3fG0vge.js.map} +1 -1
- package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js → RichTextEditorContent-C6YPCp9j.js} +4 -4
- package/dist/cdn/chunks/{RichTextEditorContent-CIuZ-2DV.js.map → RichTextEditorContent-C6YPCp9j.js.map} +1 -1
- package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js → SaveModuleDialog-C6UIIVAM.js} +3 -3
- package/dist/cdn/chunks/{SaveModuleDialog-Bep0X2s_.js.map → SaveModuleDialog-C6UIIVAM.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js → TitleEditor-BiZbLYF1.js} +10 -10
- package/dist/cdn/chunks/{TitleEditor-DO1-h3RY.js.map → TitleEditor-BiZbLYF1.js.map} +1 -1
- package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js → blockTypeIcons-BernVG06.js} +3 -3
- package/dist/cdn/chunks/{blockTypeIcons-8o24HVJu.js.map → blockTypeIcons-BernVG06.js.map} +1 -1
- package/dist/cdn/chunks/{draggable-kPCz_3zM.js → draggable-kG-D5Xsm.js} +6 -6
- package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +1 -0
- package/dist/cdn/chunks/extensions-Drp8UDc6.js +421 -0
- package/dist/cdn/chunks/extensions-Drp8UDc6.js.map +1 -0
- package/dist/cdn/chunks/{features-CkTMVylx.js → features-Dpczf9Su.js} +884 -835
- package/dist/cdn/chunks/features-Dpczf9Su.js.map +1 -0
- package/dist/cdn/chunks/{icons-9zjCuoJx.js → icons-CuxnJiGQ.js} +26 -26
- package/dist/cdn/chunks/{icons-9zjCuoJx.js.map → icons-CuxnJiGQ.js.map} +1 -1
- package/dist/cdn/chunks/{liquid.browser-DKKBzRQu.js → liquid.browser-BJOEu6Cg.js} +693 -678
- package/dist/cdn/chunks/liquid.browser-BJOEu6Cg.js.map +1 -0
- package/dist/cdn/chunks/{media-library-DMRIPx4g.js → media-library-CiYl_BO7.js} +33 -33
- package/dist/cdn/chunks/{media-library-DMRIPx4g.js.map → media-library-CiYl_BO7.js.map} +1 -1
- package/dist/cdn/chunks/{pusher-CdEqyLwF.js → pusher-CIwiKF8H.js} +4 -4
- package/dist/cdn/chunks/{pusher-CdEqyLwF.js.map → pusher-CIwiKF8H.js.map} +1 -1
- package/dist/cdn/chunks/{quality-CyeUgs_c.js → quality-CNjGxBG0.js} +112 -112
- package/dist/cdn/chunks/{quality-CyeUgs_c.js.map → quality-CNjGxBG0.js.map} +1 -1
- package/dist/cdn/chunks/{renderer-BIKUEKDD.js → renderer-CFkg8h-K.js} +20 -20
- package/dist/cdn/chunks/renderer-CFkg8h-K.js.map +1 -0
- package/dist/cdn/chunks/{src-pDy_imWG.js → src-DRpKu4Dy.js} +5 -5
- package/dist/cdn/chunks/{src-pDy_imWG.js.map → src-DRpKu4Dy.js.map} +1 -1
- package/dist/cdn/chunks/{styles-D4Bd3SCx.js → styles-B7wryV0l.js} +1484 -1344
- package/dist/cdn/chunks/styles-B7wryV0l.js.map +1 -0
- package/dist/cdn/chunks/{tiptap-BlLFFU3M.js → tiptap-DF9PEiqH.js} +6859 -6823
- package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +1 -0
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +35 -35
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{check-CYJwFmjy.js → check-rl7ok6uJ.js} +1 -1
- package/dist/{chevron-down-C5l-DzAA.js → chevron-down-BKe__NOD.js} +1 -1
- package/dist/{circle-alert-wf5HUFZY.js → circle-alert-C8xmpMsK.js} +1 -1
- package/dist/{clock-Bj0bQw-K.js → clock-BW4JuDCN.js} +1 -1
- package/dist/{cloud-CoFDm9YA.js → cloud-BQusL53H.js} +208 -208
- package/dist/createLucideIcon-Dx-EjR9r.js +43 -0
- package/dist/{dist-CLpPNKy9.js → dist-B5Sov3sS.js} +7 -7
- package/dist/dist-BEWiuOMi.js +251 -0
- package/dist/{dist-CrQZ_af9.js → dist-BFmE-7hB.js} +2 -2
- package/dist/{dist-U5vfDdYI.js → dist-BMoa33wT.js} +2 -2
- package/dist/{dist-BctFrpeA.js → dist-BibU4HNl.js} +74 -65
- package/dist/{dist-Dd3ibRZm.js → dist-BsCGIDSt.js} +103 -102
- package/dist/dist-CNLKj9wa.js +5 -0
- package/dist/{dist-BX3gGwL8.js → dist-CNXDNYQn.js} +728 -694
- package/dist/{dist-Bn703mnA.js → dist-COG3IdPK.js} +3 -3
- package/dist/{dist-B7w6xTU6.js → dist-CQZxDvFw.js} +3 -3
- package/dist/{dist-34OcyoK1.js → dist-CRsjOQM-.js} +2 -2
- package/dist/dist-CTT6WYJ6.js +134 -0
- package/dist/dist-Cqa6aeAJ.js +5 -0
- package/dist/{dist-ChMninLH.js → dist-SXJJ2v41.js} +2 -2
- package/dist/{dist-CyjyYg52.js → dist-itdjZraK.js} +28 -23
- package/dist/extensions-DwaZAqm6.js +423 -0
- package/dist/{image-up-x8-WXfsx.js → image-up-BwBCmQ4P.js} +1 -1
- package/dist/{info-RS_fGcGi.js → info-TCn7uWR5.js} +1 -1
- package/dist/{keys-DgYXDafq.js → keys-Cv8-8GsD.js} +1 -1
- package/dist/{liquid.browser-CVjP5Mex.js → liquid.browser-DZLtv26k.js} +692 -677
- package/dist/{list-checks-Bf7XdDyv.js → list-checks-CSrOWNgq.js} +1 -1
- package/dist/{loader-circle-CLZ0_FvW.js → loader-circle-BLmicnPG.js} +1 -1
- package/dist/{message-circle-B-1bN9ab.js → message-circle-C9hHMQCI.js} +1 -1
- package/dist/{refresh-cw-CWKWqJYG.js → refresh-cw-D1JQ1LNa.js} +1 -1
- package/dist/runtime-dom.esm-bundler-BzuoCyNp.js +523 -0
- package/dist/{scan-line-BtK5dEai.js → scan-line-DgijVq9y.js} +1 -1
- package/dist/{send-Cn1IUdzh.js → send-DjPdq69F.js} +1 -1
- package/dist/{shield-check-CrvMk4Ea.js → shield-check-Bqluu8FS.js} +1 -1
- package/dist/{sparkles-CgfjwvnG.js → sparkles-M4azPVSP.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/styles-D7fQ7f_1.js +4164 -0
- package/dist/templatical-editor.js +127 -126
- package/dist/{text-align-start-C3r_Rnvy.js → text-align-start-CMya5pCQ.js} +11 -11
- package/dist/{trash-2-CjERg4x9.js → trash-2-C-81rkLS.js} +1 -1
- package/dist/{triangle-alert-Chkny574.js → triangle-alert-BuRWnynk.js} +1 -1
- package/dist/{upload-e5kDRkPb.js → upload-CWBIoLd4.js} +1 -1
- package/dist/{useAliveFlag-cUQj9rmB.js → useAliveFlag-CECL_OUb.js} +1 -1
- package/dist/{useCloudI18n-CYJKqXtI.js → useCloudI18n-AKCy98qD.js} +2 -2
- package/dist/{useEditorCore-8JxXDOA4.js → useEditorCore-vcWLdnjN.js} +1406 -1364
- package/dist/{useI18n-BWqM8i78.js → useI18n-C-TDeJBt.js} +2 -2
- package/dist/{useMergeTag-NHC4ylza.js → useMergeTag-DSrBY0-2.js} +5 -5
- package/dist/usePopoverRoot-DKUDnr55.js +8 -0
- package/dist/{vue.runtime.esm-bundler-BPa483TZ.js → vue.runtime.esm-bundler-l0XAqiyv.js} +626 -1147
- package/dist/{x-DiPIbccg.js → x-CQSvXnGR.js} +1 -1
- package/package.json +26 -26
- package/dist/CountdownBlock-DtAokAVw.js +0 -92
- package/dist/CountdownToolbar-Dtqgwy0g.js +0 -210
- package/dist/cdn/chunks/draggable-kPCz_3zM.js.map +0 -1
- package/dist/cdn/chunks/extensions-iwBXnEwq.js +0 -605
- package/dist/cdn/chunks/extensions-iwBXnEwq.js.map +0 -1
- package/dist/cdn/chunks/features-CkTMVylx.js.map +0 -1
- package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +0 -1
- package/dist/cdn/chunks/renderer-BIKUEKDD.js.map +0 -1
- package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +0 -1
- package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +0 -1
- package/dist/createLucideIcon-Bad2kKE0.js +0 -43
- package/dist/dist-CADDCv0o.js +0 -5
- package/dist/dist-CGvz7vkq.js +0 -5
- package/dist/dist-DuCzdgDA.js +0 -382
- package/dist/extensions-J439b7y7.js +0 -1720
- package/dist/styles-BUwDOWd3.js +0 -4022
- package/dist/usePopoverRoot-B1sdY4es.js +0 -8
package/dist/bundle-stats.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
3
|
-
"initialGzipBytes":
|
|
4
|
-
"initialRawBytes":
|
|
5
|
-
"initialFileCount":
|
|
6
|
-
"lazyGzipBytes":
|
|
7
|
-
"lazyRawBytes":
|
|
8
|
-
"lazyFileCount":
|
|
9
|
-
"generatedAt": "2026-07-
|
|
2
|
+
"version": "0.15.0",
|
|
3
|
+
"initialGzipBytes": 280514,
|
|
4
|
+
"initialRawBytes": 1008779,
|
|
5
|
+
"initialFileCount": 42,
|
|
6
|
+
"lazyGzipBytes": 180737,
|
|
7
|
+
"lazyRawBytes": 608421,
|
|
8
|
+
"lazyFileCount": 44,
|
|
9
|
+
"generatedAt": "2026-07-15T17:57:20.460Z"
|
|
10
10
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as e, M as t, P as n, ct as r, f as i, g as a, m as o, p as s, st as c, u as l, x as u } from "./draggable-
|
|
2
|
-
import { Ct as d, Rt as f, at as p,
|
|
1
|
+
import { L as e, M as t, P as n, ct as r, f as i, g as a, m as o, p as s, st as c, u as l, x as u } from "./draggable-kG-D5Xsm.js";
|
|
2
|
+
import { Ct as d, Rt as f, at as p, ft as m, ln as h, pt as g, rt as _ } from "./features-Dpczf9Su.js";
|
|
3
3
|
//#region src/cloud/components/AiFeatureMenu.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var v = {
|
|
5
5
|
class: "tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]",
|
|
@@ -12,14 +12,14 @@ var v = {
|
|
|
12
12
|
props: { activeFeature: {} },
|
|
13
13
|
emits: ["select"],
|
|
14
14
|
setup(u, { emit: p }) {
|
|
15
|
-
let C = p, { t: w } = _(), T =
|
|
15
|
+
let C = p, { t: w } = _(), T = h(f, "AiFeatureMenu"), E = {
|
|
16
16
|
"ai-chat": "chat",
|
|
17
17
|
"design-reference": "designToTemplate",
|
|
18
18
|
scoring: "scoring"
|
|
19
19
|
}, D = [
|
|
20
20
|
{
|
|
21
21
|
key: "ai-chat",
|
|
22
|
-
icon:
|
|
22
|
+
icon: m
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
key: "design-reference",
|
|
@@ -56,4 +56,4 @@ var v = {
|
|
|
56
56
|
//#endregion
|
|
57
57
|
export { C as default };
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=AiFeatureMenu-
|
|
59
|
+
//# sourceMappingURL=AiFeatureMenu-3Slo_LGA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiFeatureMenu-
|
|
1
|
+
{"version":3,"file":"AiFeatureMenu-3Slo_LGA.js","names":[],"sources":["../../../src/cloud/components/AiFeatureMenu.vue","../../../src/cloud/components/AiFeatureMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useCloudI18nStrict } from \"../../composables\";\nimport { AI_CONFIG_KEY, requireInject } from \"../../keys\";\nimport type { AiConfig } from \"@templatical/types\";\nimport { ImageUp, ShieldCheck, Sparkles } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nexport type AiFeature = \"ai-chat\" | \"design-reference\" | \"scoring\";\n\ndefineProps<{\n activeFeature: AiFeature | null;\n}>();\n\nconst emit = defineEmits<{\n (e: \"select\", feature: AiFeature): void;\n}>();\n\nconst { t: cloudT } = useCloudI18nStrict();\n\nconst aiConfig = requireInject(AI_CONFIG_KEY, \"AiFeatureMenu\");\n\nconst configKeyMap: Record<AiFeature, keyof AiConfig> = {\n \"ai-chat\": \"chat\",\n \"design-reference\": \"designToTemplate\",\n scoring: \"scoring\",\n};\n\nconst allFeatures: { key: AiFeature; icon: typeof Sparkles }[] = [\n { key: \"ai-chat\", icon: Sparkles },\n { key: \"design-reference\", icon: ImageUp },\n { key: \"scoring\", icon: ShieldCheck },\n];\n\nconst features = computed(() =>\n allFeatures.filter((f) => aiConfig.isFeatureEnabled(configKeyMap[f.key])),\n);\n\nfunction getTitle(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistant;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplate;\n return cloudT.aiMenu.templateScore;\n}\n\nfunction getDescription(key: AiFeature): string {\n if (key === \"ai-chat\") return cloudT.aiMenu.aiAssistantDesc;\n if (key === \"design-reference\") return cloudT.aiMenu.designToTemplateDesc;\n return cloudT.aiMenu.templateScoreDesc;\n}\n</script>\n\n<template>\n <div\n class=\"tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]\"\n style=\"backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px)\"\n >\n <button\n v-for=\"feature in features\"\n :key=\"feature.key\"\n class=\"tpl-ai-feature-menu-item tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-start tpl:gap-3 tpl:border-none tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-colors tpl:duration-100\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary-light)'\n : 'transparent',\n }\"\n @click=\"emit('select', feature.key)\"\n >\n <div\n class=\"tpl:mt-0.5 tpl:flex tpl:size-7 tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n backgroundColor:\n activeFeature === feature.key\n ? 'var(--tpl-primary)'\n : 'var(--tpl-bg-active)',\n color:\n activeFeature === feature.key\n ? 'var(--tpl-bg)'\n : 'var(--tpl-text-muted)',\n }\"\n >\n <component :is=\"feature.icon\" :size=\"15\" :stroke-width=\"2\" />\n </div>\n <div class=\"tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5\">\n <span class=\"tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]\">\n {{ getTitle(feature.key) }}\n </span>\n <span\n class=\"tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]\"\n >\n {{ getDescription(feature.key) }}\n </span>\n </div>\n </button>\n </div>\n</template>\n\n<style scoped>\n.tpl-ai-feature-menu-item:hover {\n background-color: var(--tpl-bg-hover) !important;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;EAaA,IAAM,IAAO,GAIP,EAAE,GAAG,MAAW,EAAmB,GAEnC,IAAW,EAAc,GAAe,eAAe,GAEvD,IAAkD;GACtD,WAAW;GACX,oBAAoB;GACpB,SAAS;EACX,GAEM,IAA2D;GAC/D;IAAE,KAAK;IAAW,MAAM;GAAS;GACjC;IAAE,KAAK;IAAoB,MAAM;GAAQ;GACzC;IAAE,KAAK;IAAW,MAAM;GAAY;EACtC,GAEM,IAAW,QACf,EAAY,QAAQ,MAAM,EAAS,iBAAiB,EAAa,EAAE,IAAI,CAAC,CAC1E;EAEA,SAAS,EAAS,GAAwB;GAGxC,OAFI,MAAQ,YAAkB,EAAO,OAAO,cACxC,MAAQ,qBAA2B,EAAO,OAAO,mBAC9C,EAAO,OAAO;EACvB;EAEA,SAAS,EAAe,GAAwB;GAG9C,OAFI,MAAQ,YAAkB,EAAO,OAAO,kBACxC,MAAQ,qBAA2B,EAAO,OAAO,uBAC9C,EAAO,OAAO;EACvB;yBAIE,EA0CM,OA1CN,GA0CM,EAAA,EAAA,EAAA,GAtCJ,EAqCS,GAAA,MAAA,EApCW,EAAA,QAAX,YADT,EAqCS,UAAA;GAnCN,KAAK,EAAQ;GACd,OAAM;GACL,OAAK,EAAA,EAAA,iBAAuC,EAAA,kBAAkB,EAAQ,MAAA,6BAAA,cAAA,CAAA;GAMtE,UAAK,MAAE,EAAI,UAAW,EAAQ,GAAG;MAElC,EAcM,OAAA;GAbJ,OAAM;GACL,OAAK,EAAA;qBAA2C,EAAA,kBAAkB,EAAQ,MAAA,uBAAA;WAA8G,EAAA,kBAAkB,EAAQ,MAAA,kBAAA;;YAWnN,EAA6D,EAA7C,EAAQ,IAAI,GAAA;GAAG,MAAM;GAAK,gBAAc;YAE1D,EASM,OATN,GASM,CARJ,EAEO,QAFP,GAEO,EADF,EAAS,EAAQ,GAAG,CAAA,GAAA,CAAA,GAEzB,EAIO,QAJP,GAIO,EADF,EAAe,EAAQ,GAAG,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { M as e, T as t, f as n, g as r, h as i, it as a, m as o, ot as s, x as c } from "./draggable-
|
|
2
|
-
import { Lt as l, an as u, kt as d, lt as f } from "./features-
|
|
1
|
+
import { M as e, T as t, f as n, g as r, h as i, it as a, m as o, ot as s, x as c } from "./draggable-kG-D5Xsm.js";
|
|
2
|
+
import { Lt as l, an as u, kt as d, lt as f } from "./features-Dpczf9Su.js";
|
|
3
3
|
//#region src/components/canvas/BlockIssueBadge.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var p = ["title", "aria-label"], m = /* @__PURE__ */ c({
|
|
5
5
|
__name: "BlockIssueBadge",
|
|
@@ -30,4 +30,4 @@ var p = ["title", "aria-label"], m = /* @__PURE__ */ c({
|
|
|
30
30
|
//#endregion
|
|
31
31
|
export { m as default };
|
|
32
32
|
|
|
33
|
-
//# sourceMappingURL=BlockIssueBadge-
|
|
33
|
+
//# sourceMappingURL=BlockIssueBadge-BxwEiiF3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockIssueBadge-
|
|
1
|
+
{"version":3,"file":"BlockIssueBadge-BxwEiiF3.js","names":[],"sources":["../../../src/components/canvas/BlockIssueBadge.vue","../../../src/components/canvas/BlockIssueBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from \"vue\";\nimport { CircleAlert, TriangleAlert } from \"@lucide/vue\";\nimport { useI18n } from \"../../composables/useI18n\";\nimport { TEMPLATE_LINT_KEY } from \"../../keys\";\n\nconst props = defineProps<{ blockId: string }>();\nconst { t } = useI18n();\nconst lint = inject(TEMPLATE_LINT_KEY, null);\n\nconst blockIssues = computed(() =>\n (lint?.issues.value ?? []).filter((i) => i.blockId === props.blockId),\n);\n\nconst severity = computed<\"error\" | \"warning\" | null>(() => {\n if (blockIssues.value.some((i) => i.severity === \"error\")) return \"error\";\n if (blockIssues.value.some((i) => i.severity === \"warning\")) return \"warning\";\n return null;\n});\n\nconst tooltip = computed(() =>\n severity.value === \"error\" ? t.issues.badgeError : t.issues.badgeWarning,\n);\n</script>\n\n<template>\n <span\n v-if=\"severity\"\n class=\"tpl:absolute tpl:top-1 tpl:right-1 tpl:z-10 tpl:flex tpl:size-5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-sm)] tpl:ring-1 tpl:ring-[var(--tpl-border)]\"\n :class=\"\n severity === 'error'\n ? 'tpl:text-[var(--tpl-danger)]'\n : 'tpl:text-[var(--tpl-warning)]'\n \"\n :title=\"tooltip\"\n :aria-label=\"tooltip\"\n role=\"img\"\n >\n <CircleAlert\n v-if=\"severity === 'error'\"\n :size=\"14\"\n :stroke-width=\"2.25\"\n fill=\"currentColor\"\n stroke=\"var(--tpl-bg)\"\n />\n <TriangleAlert\n v-else\n :size=\"14\"\n :stroke-width=\"2.25\"\n fill=\"currentColor\"\n stroke=\"var(--tpl-bg)\"\n />\n </span>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, inject } from \"vue\";\nimport { CircleAlert, TriangleAlert } from \"@lucide/vue\";\nimport { useI18n } from \"../../composables/useI18n\";\nimport { TEMPLATE_LINT_KEY } from \"../../keys\";\n\nconst props = defineProps<{ blockId: string }>();\nconst { t } = useI18n();\nconst lint = inject(TEMPLATE_LINT_KEY, null);\n\nconst blockIssues = computed(() =>\n (lint?.issues.value ?? []).filter((i) => i.blockId === props.blockId),\n);\n\nconst severity = computed<\"error\" | \"warning\" | null>(() => {\n if (blockIssues.value.some((i) => i.severity === \"error\")) return \"error\";\n if (blockIssues.value.some((i) => i.severity === \"warning\")) return \"warning\";\n return null;\n});\n\nconst tooltip = computed(() =>\n severity.value === \"error\" ? t.issues.badgeError : t.issues.badgeWarning,\n);\n</script>\n\n<template>\n <span\n v-if=\"severity\"\n class=\"tpl:absolute tpl:top-1 tpl:right-1 tpl:z-10 tpl:flex tpl:size-5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-sm)] tpl:ring-1 tpl:ring-[var(--tpl-border)]\"\n :class=\"\n severity === 'error'\n ? 'tpl:text-[var(--tpl-danger)]'\n : 'tpl:text-[var(--tpl-warning)]'\n \"\n :title=\"tooltip\"\n :aria-label=\"tooltip\"\n role=\"img\"\n >\n <CircleAlert\n v-if=\"severity === 'error'\"\n :size=\"14\"\n :stroke-width=\"2.25\"\n fill=\"currentColor\"\n stroke=\"var(--tpl-bg)\"\n />\n <TriangleAlert\n v-else\n :size=\"14\"\n :stroke-width=\"2.25\"\n fill=\"currentColor\"\n stroke=\"var(--tpl-bg)\"\n />\n </span>\n</template>\n"],"mappings":";;;;;;;EAMA,IAAM,IAAQ,GACR,EAAE,SAAM,EAAQ,GAChB,IAAO,EAAO,GAAmB,IAAI,GAErC,IAAc,SACjB,GAAM,OAAO,SAAS,CAAC,EAAA,CAAG,QAAQ,MAAM,EAAE,YAAY,EAAM,OAAO,CACtE,GAEM,IAAW,QACX,EAAY,MAAM,MAAM,MAAM,EAAE,aAAa,OAAO,IAAU,UAC9D,EAAY,MAAM,MAAM,MAAM,EAAE,aAAa,SAAS,IAAU,YAC7D,IACR,GAEK,IAAU,QACd,EAAS,UAAU,UAAU,EAAE,OAAO,aAAa,EAAE,OAAO,YAC9D;mBAKU,EAAA,SAAA,EAAA,GADR,EA0BO,QAAA;;GAxBL,OAAK,EAAA,CAAC,yNACS,EAAA,UAAQ,UAAA,iCAAA,+BAAA,CAAA;GAKtB,OAAO,EAAA;GACP,cAAY,EAAA;GACb,MAAK;MAGG,EAAA,UAAQ,WAAA,EAAA,GADhB,EAME,EAAA,CAAA,GAAA;;GAJC,MAAM;GACN,gBAAc;GACf,MAAK;GACL,QAAO;cAET,EAME,EAAA,CAAA,GAAA;;GAJC,MAAM;GACN,gBAAc;GACf,MAAK;GACL,QAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as O } from "./draggable-
|
|
2
|
-
import { $ as ee, A as k,
|
|
3
|
-
import { S as xe, x as Se } from "./icons-
|
|
4
|
-
import { a as Ce, c as we, d as Te, f as Ee, i as De, l as Oe, n as ke, o as Ae, r as je, s as Me, t as Ne, u as Pe } from "./styles-
|
|
1
|
+
import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as O } from "./draggable-kG-D5Xsm.js";
|
|
2
|
+
import { $ as ee, A as k, An as te, Bt as A, E as j, Ft as M, Gt as ne, In as N, Lt as P, Mt as F, Ot as I, Rt as re, S as L, Ut as ie, Wt as R, Y as z, Yn as B, _ as V, at as H, b as ae, bt as U, c as W, d as G, f as K, ft as q, g as oe, h as se, ht as J, in as ce, kt as Y, l as X, lt as Z, m as le, p as ue, rn as de, rt as Q, s as fe, tn as pe, u as me, un as he, v as ge, x as _e, y as ve, yn as ye, yt as be } from "./features-Dpczf9Su.js";
|
|
3
|
+
import { S as xe, x as Se } from "./icons-CuxnJiGQ.js";
|
|
4
|
+
import { a as Ce, c as we, d as Te, f as Ee, i as De, l as Oe, n as ke, o as Ae, r as je, s as Me, t as Ne, u as Pe } from "./styles-B7wryV0l.js";
|
|
5
5
|
import { d as $ } from "./styleConstants-lGobwiLH.js";
|
|
6
6
|
//#region src/cloud/composables/useSnapshotPreview.ts
|
|
7
7
|
function Fe(t) {
|
|
@@ -86,7 +86,7 @@ function Ie() {
|
|
|
86
86
|
function g(t) {
|
|
87
87
|
l.value = !1, e.value = e.value === t ? null : t;
|
|
88
88
|
}
|
|
89
|
-
return
|
|
89
|
+
return he(u, () => {
|
|
90
90
|
l.value = !1;
|
|
91
91
|
}), {
|
|
92
92
|
activePanel: e,
|
|
@@ -109,9 +109,9 @@ function Ie() {
|
|
|
109
109
|
//#endregion
|
|
110
110
|
//#region src/cloud/composables/useCollabUndoWarning.ts
|
|
111
111
|
function Le(e) {
|
|
112
|
-
let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } =
|
|
112
|
+
let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = ye(() => {
|
|
113
113
|
a.value = !1;
|
|
114
|
-
},
|
|
114
|
+
}, B, { immediate: !1 });
|
|
115
115
|
function s() {
|
|
116
116
|
i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
|
|
117
117
|
}
|
|
@@ -123,7 +123,7 @@ function Le(e) {
|
|
|
123
123
|
//#endregion
|
|
124
124
|
//#region src/cloud/composables/useCloudFeatureFlags.ts
|
|
125
125
|
function Re(e) {
|
|
126
|
-
let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = f(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = f(() => t.hasFeature("test_email")), o = f(() => !!r.state.template?.id), s = f(() => t.hasFeature("white_label")), l = f(() => t.config.value?.limits.max_templates ?? null), u = f(() => t.config.value?.template_count ?? 0), d = c(!1), p = c("idle"), m = c(""), { start: h } =
|
|
126
|
+
let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = f(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = f(() => t.hasFeature("test_email")), o = f(() => !!r.state.template?.id), s = f(() => t.hasFeature("white_label")), l = f(() => t.config.value?.limits.max_templates ?? null), u = f(() => t.config.value?.template_count ?? 0), d = c(!1), p = c("idle"), m = c(""), { start: h } = ye(() => {
|
|
127
127
|
p.value = "idle";
|
|
128
128
|
}, 3e3, { immediate: !1 });
|
|
129
129
|
return {
|
|
@@ -175,7 +175,7 @@ function ze(e) {
|
|
|
175
175
|
let t = f(e);
|
|
176
176
|
if (t) return s?.(t), null;
|
|
177
177
|
try {
|
|
178
|
-
let { MediaApiClient: t } = await import("./src-
|
|
178
|
+
let { MediaApiClient: t } = await import("./src-DRpKu4Dy.js");
|
|
179
179
|
return l(await new t(a).uploadMedia(e));
|
|
180
180
|
} catch (e) {
|
|
181
181
|
return s?.(e), null;
|
|
@@ -210,17 +210,17 @@ function Be(e) {
|
|
|
210
210
|
}), _ = X({
|
|
211
211
|
authManager: g,
|
|
212
212
|
onError: t.onError
|
|
213
|
-
}), v = c(/* @__PURE__ */ new Map()), y =
|
|
213
|
+
}), v = c(/* @__PURE__ */ new Map()), y = _e({
|
|
214
214
|
authManager: g,
|
|
215
215
|
defaultFontFamily: t.fonts?.defaultFont,
|
|
216
216
|
templateDefaults: t.templateDefaults,
|
|
217
217
|
onError: t.onError,
|
|
218
218
|
lockedBlocks: v
|
|
219
|
-
}), b =
|
|
219
|
+
}), b = le({
|
|
220
220
|
authManager: g,
|
|
221
221
|
onError: t.onError
|
|
222
222
|
});
|
|
223
|
-
t.mcp?.enabled &&
|
|
223
|
+
t.mcp?.enabled && fe({
|
|
224
224
|
editor: y,
|
|
225
225
|
channel: b.channel,
|
|
226
226
|
onOperation: t.mcp.onOperation
|
|
@@ -290,7 +290,7 @@ function Be(e) {
|
|
|
290
290
|
planConfigInstance: _,
|
|
291
291
|
aiConfig: D,
|
|
292
292
|
editor: y
|
|
293
|
-
}),
|
|
293
|
+
}), N = ze({
|
|
294
294
|
onRequestMedia: t.onRequestMedia,
|
|
295
295
|
mediaLibraryOpen: E.mediaLibraryOpen,
|
|
296
296
|
mediaLibraryAccept: E.mediaLibraryAccept,
|
|
@@ -302,19 +302,19 @@ function Be(e) {
|
|
|
302
302
|
onBlockMove: y.moveBlock,
|
|
303
303
|
onBlockAdd: y.addBlock
|
|
304
304
|
});
|
|
305
|
-
let
|
|
305
|
+
let P = me({
|
|
306
306
|
authManager: g,
|
|
307
307
|
getFontsConfig: () => t.fonts,
|
|
308
308
|
canUseCustomFonts: () => _.hasFeature("custom_fonts")
|
|
309
|
-
}),
|
|
309
|
+
}), F = G({
|
|
310
310
|
authManager: g,
|
|
311
311
|
getTemplateId: () => y.state.template?.id ?? null,
|
|
312
312
|
save: () => y.save(),
|
|
313
|
-
exportHtml: (e) =>
|
|
313
|
+
exportHtml: (e) => P.exportHtml(e),
|
|
314
314
|
onError: t.onError,
|
|
315
315
|
isAuthReady: l,
|
|
316
316
|
onBeforeTestEmail: t.onBeforeTestEmail
|
|
317
|
-
}),
|
|
317
|
+
}), I = ge({
|
|
318
318
|
authManager: g,
|
|
319
319
|
getTemplateId: () => y.state.template?.id ?? null,
|
|
320
320
|
getSocketId: () => b.getSocketId(),
|
|
@@ -324,13 +324,13 @@ function Be(e) {
|
|
|
324
324
|
hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
|
|
325
325
|
});
|
|
326
326
|
V({
|
|
327
|
-
comments:
|
|
327
|
+
comments: I,
|
|
328
328
|
channel: b.channel
|
|
329
329
|
});
|
|
330
|
-
let
|
|
330
|
+
let L = ue({
|
|
331
331
|
authManager: g,
|
|
332
332
|
onError: t.onError
|
|
333
|
-
}), R = c(!1), z = c(null), B = c(!1), H =
|
|
333
|
+
}), R = c(!1), z = c(null), B = c(!1), H = ve({
|
|
334
334
|
authManager: g,
|
|
335
335
|
getTemplateId: () => y.state.template?.id ?? null
|
|
336
336
|
});
|
|
@@ -339,11 +339,11 @@ function Be(e) {
|
|
|
339
339
|
o()?.filterByBlock(e);
|
|
340
340
|
});
|
|
341
341
|
}
|
|
342
|
-
a(
|
|
342
|
+
a(pe, N.handleRequestMedia), a(A, g), a(re, D), a(ne, I), a(de, L), a(ce, H), a(ie, {
|
|
343
343
|
plan: _,
|
|
344
344
|
ai: D,
|
|
345
345
|
comments: {
|
|
346
|
-
getBlockCount: (e) =>
|
|
346
|
+
getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
|
|
347
347
|
openForBlock: U
|
|
348
348
|
},
|
|
349
349
|
savedModules: {
|
|
@@ -353,7 +353,7 @@ function Be(e) {
|
|
|
353
353
|
openBrowser: () => {
|
|
354
354
|
B.value = !0;
|
|
355
355
|
},
|
|
356
|
-
moduleCount: f(() =>
|
|
356
|
+
moduleCount: f(() => L.modules.value.length)
|
|
357
357
|
}
|
|
358
358
|
});
|
|
359
359
|
function K(e) {
|
|
@@ -371,8 +371,8 @@ function Be(e) {
|
|
|
371
371
|
if (d) return;
|
|
372
372
|
if (!e.api.ok) throw Error("Health check failed: API is not reachable");
|
|
373
373
|
if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
|
|
374
|
-
if (e.websocket.ok ||
|
|
375
|
-
r.setCustomFontsEnabled(_.hasFeature("custom_fonts")), t.customBlocks?.length && _.hasFeature("custom_blocks") && C.registerCustomBlocks(t.customBlocks), t.theme && _.hasFeature("theme_customization") && (C.themeOverrides.value = t.theme), t.modules !== !1 && _.hasFeature("saved_modules") &&
|
|
374
|
+
if (e.websocket.ok || M.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
|
|
375
|
+
r.setCustomFontsEnabled(_.hasFeature("custom_fonts")), t.customBlocks?.length && _.hasFeature("custom_blocks") && C.registerCustomBlocks(t.customBlocks), t.theme && _.hasFeature("theme_customization") && (C.themeOverrides.value = t.theme), t.modules !== !1 && _.hasFeature("saved_modules") && L.loadModules(), i("ready");
|
|
376
376
|
} catch (e) {
|
|
377
377
|
if (d) return;
|
|
378
378
|
let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
|
|
@@ -398,11 +398,11 @@ function Be(e) {
|
|
|
398
398
|
core: C,
|
|
399
399
|
aiConfig: D,
|
|
400
400
|
featureFlags: te,
|
|
401
|
-
mediaLib:
|
|
402
|
-
exporter:
|
|
403
|
-
testEmail:
|
|
404
|
-
commentsInstance:
|
|
405
|
-
savedModulesHeadless:
|
|
401
|
+
mediaLib: N,
|
|
402
|
+
exporter: P,
|
|
403
|
+
testEmail: F,
|
|
404
|
+
commentsInstance: I,
|
|
405
|
+
savedModulesHeadless: L,
|
|
406
406
|
scoringInstance: H,
|
|
407
407
|
panelState: E,
|
|
408
408
|
snapshotPreview: T,
|
|
@@ -422,7 +422,7 @@ function Be(e) {
|
|
|
422
422
|
//#region src/utils/preRenderCustomBlocks.ts
|
|
423
423
|
async function Ve(e, t) {
|
|
424
424
|
let n = async (e) => {
|
|
425
|
-
if (
|
|
425
|
+
if (N(e)) {
|
|
426
426
|
let n = e;
|
|
427
427
|
try {
|
|
428
428
|
n.renderedHtml = await t.renderCustomBlock(n);
|
|
@@ -442,7 +442,7 @@ async function Ve(e, t) {
|
|
|
442
442
|
function He(e) {
|
|
443
443
|
let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
|
|
444
444
|
function u() {
|
|
445
|
-
return
|
|
445
|
+
return L(i.config.value.websocket);
|
|
446
446
|
}
|
|
447
447
|
async function d(e) {
|
|
448
448
|
let i = await n.create(e);
|
|
@@ -528,7 +528,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
528
528
|
class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
|
|
529
529
|
onClick: a[2] ||= _((e) => n("cancel"), ["self"])
|
|
530
530
|
}, [x("div", Ge, [
|
|
531
|
-
x("header", Ke, [D(h(
|
|
531
|
+
x("header", Ke, [D(h(Z), {
|
|
532
532
|
size: 18,
|
|
533
533
|
"stroke-width": 2,
|
|
534
534
|
class: "tpl:text-[var(--tpl-warning)]"
|
|
@@ -595,7 +595,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
595
595
|
},
|
|
596
596
|
emits: ["save"],
|
|
597
597
|
setup(e) {
|
|
598
|
-
let t = u(() => import("./CollaboratorBar-
|
|
598
|
+
let t = u(() => import("./CollaboratorBar-Cu3vuN66.js")), n = u(() => import("./features-Dpczf9Su.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-3Slo_LGA.js")), { t: a, format: o } = Q();
|
|
599
599
|
return (c, l) => (i(), p("header", et, [
|
|
600
600
|
x("div", tt, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", nt, d(h(o)(h(a).header.templatesUsed, {
|
|
601
601
|
used: e.featureFlags.templateCount.value,
|
|
@@ -643,7 +643,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
643
643
|
}, [D(h(Y), {
|
|
644
644
|
size: 12,
|
|
645
645
|
"stroke-width": 2.5
|
|
646
|
-
}), T(" " + d(h(a).header.saveFailed), 1)], 8, at)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", ot, [D(h(
|
|
646
|
+
}), T(" " + d(h(a).header.saveFailed), 1)], 8, at)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", ot, [D(h(F), {
|
|
647
647
|
size: 12,
|
|
648
648
|
"stroke-width": 2.5
|
|
649
649
|
}), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", st, [l[4] ||= x("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + d(h(a).header.unsaved), 1)])) : m("", !0),
|
|
@@ -757,9 +757,9 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
757
757
|
"module-insert"
|
|
758
758
|
],
|
|
759
759
|
setup(e, { expose: t, emit: n }) {
|
|
760
|
-
let r = u(() => import("./features-
|
|
760
|
+
let r = u(() => import("./features-Dpczf9Su.js").then((e) => e.o)), a = u(() => import("./features-Dpczf9Su.js").then((e) => e.a)), o = u(() => import("./features-Dpczf9Su.js").then((e) => e.i)), s = u(() => import("./features-Dpczf9Su.js").then((e) => e.n)), l = u(() => import("./features-Dpczf9Su.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-C6UIIVAM.js")), f = u(() => import("./ModuleBrowserModal-Dz-I5zfj.js")), g = u(async () => {
|
|
761
761
|
try {
|
|
762
|
-
return (await import("./src-
|
|
762
|
+
return (await import("./src-DRpKu4Dy.js")).MediaLibraryModal;
|
|
763
763
|
} catch {
|
|
764
764
|
throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
|
|
765
765
|
}
|
|
@@ -920,7 +920,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
920
920
|
__name: "CollabUndoToast",
|
|
921
921
|
props: { visible: { type: Boolean } },
|
|
922
922
|
setup(e) {
|
|
923
|
-
let { t } =
|
|
923
|
+
let { t } = P();
|
|
924
924
|
return (n, r) => e.visible ? (i(), p("div", At, d(h(t).history.collabWarning), 1)) : m("", !0);
|
|
925
925
|
}
|
|
926
926
|
}), Mt = ["data-tpl-theme"], Nt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Pt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Ft = ["aria-label"], It = /*#__PURE__*/ H(/* @__PURE__ */ E({
|
|
@@ -935,7 +935,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
935
935
|
emits: ["ready"],
|
|
936
936
|
setup(e, { expose: r, emit: o }) {
|
|
937
937
|
let l = e;
|
|
938
|
-
a(
|
|
938
|
+
a(R, l.cloudTranslations);
|
|
939
939
|
let u = o, f = c(null), w = c(null), E = Be({
|
|
940
940
|
config: l.config,
|
|
941
941
|
translations: l.translations,
|
|
@@ -944,7 +944,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
944
944
|
getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null,
|
|
945
945
|
editorRoot: l.shadowRoot,
|
|
946
946
|
containerEl: w
|
|
947
|
-
}), { isInitializing: O, isAuthReady: ee, initError: k, planConfigInstance: A, websocket: j, collaboration:
|
|
947
|
+
}), { isInitializing: O, isAuthReady: ee, initError: k, planConfigInstance: A, websocket: j, collaboration: M, isCollaborationEnabled: ne, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: re, testEmail: L, commentsInstance: ie, savedModulesHeadless: B, panelState: V, snapshotPreview: H, collabWarning: ae, showSaveModuleDialog: U, showModuleBrowserModal: W, saveModulePreSelectedBlockId: G, setThemeOverrides: K, setUiTheme: q } = E, { showNotice: oe } = z(() => l.config.smallScreenNotice);
|
|
948
948
|
async function se(e) {
|
|
949
949
|
try {
|
|
950
950
|
await L.sendTestEmail(e), V.testEmailModalOpen.value = !1;
|
|
@@ -958,22 +958,22 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
958
958
|
function ce(e, t) {
|
|
959
959
|
for (let n = 0; n < e.content.length; n++) {
|
|
960
960
|
let r = te(e.content[n]), i = t === void 0 ? void 0 : t + n;
|
|
961
|
-
|
|
961
|
+
N.addBlock(r, void 0, void 0, i);
|
|
962
962
|
}
|
|
963
963
|
W.value = !1;
|
|
964
964
|
}
|
|
965
965
|
let Y = He({
|
|
966
966
|
config: l.config,
|
|
967
|
-
editor:
|
|
967
|
+
editor: N,
|
|
968
968
|
websocket: j,
|
|
969
969
|
planConfigInstance: A,
|
|
970
970
|
snapshotPreview: H,
|
|
971
|
-
core:
|
|
972
|
-
exporter:
|
|
973
|
-
featureFlags:
|
|
971
|
+
core: P,
|
|
972
|
+
exporter: re,
|
|
973
|
+
featureFlags: F,
|
|
974
974
|
isDestroyed: E.isDestroyed
|
|
975
975
|
}), X = Ue({
|
|
976
|
-
issues:
|
|
976
|
+
issues: P.templateLint ? P.templateLint.issues : c([]),
|
|
977
977
|
planConfig: A.config
|
|
978
978
|
});
|
|
979
979
|
async function Z() {
|
|
@@ -984,8 +984,8 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
984
984
|
}), g(() => {
|
|
985
985
|
E.destroy();
|
|
986
986
|
}), r({
|
|
987
|
-
getContent: () =>
|
|
988
|
-
setContent: (e) =>
|
|
987
|
+
getContent: () => N.content.value,
|
|
988
|
+
setContent: (e) => N.setContent(e),
|
|
989
989
|
setTheme: q,
|
|
990
990
|
setThemeOverrides: K,
|
|
991
991
|
create: Y.createTemplate,
|
|
@@ -995,9 +995,9 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
995
995
|
}), (t, r) => (i(), p("div", {
|
|
996
996
|
ref_key: "rootEl",
|
|
997
997
|
ref: w,
|
|
998
|
-
class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(
|
|
999
|
-
"data-tpl-theme": h(
|
|
1000
|
-
style: C(h(
|
|
998
|
+
class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(N).state.darkMode }]),
|
|
999
|
+
"data-tpl-theme": h(P).resolvedTheme.value,
|
|
1000
|
+
style: C(h(P).themeStyles.value),
|
|
1001
1001
|
onDragover: r[9] ||= _(() => {}, ["prevent"]),
|
|
1002
1002
|
onDrop: r[10] ||= _(() => {}, ["prevent"])
|
|
1003
1003
|
}, [
|
|
@@ -1010,7 +1010,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1010
1010
|
"leave-from-class": "tpl:opacity-100",
|
|
1011
1011
|
"leave-to-class": "tpl:opacity-0"
|
|
1012
1012
|
}, {
|
|
1013
|
-
default: s(() => [D(yt, { visible: h(O) || h(
|
|
1013
|
+
default: s(() => [D(yt, { visible: h(O) || h(N).state.isLoading }, null, 8, ["visible"])]),
|
|
1014
1014
|
_: 1
|
|
1015
1015
|
}),
|
|
1016
1016
|
D(y, {
|
|
@@ -1033,18 +1033,18 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1033
1033
|
_: 1
|
|
1034
1034
|
}),
|
|
1035
1035
|
D(mt, {
|
|
1036
|
-
editor: h(
|
|
1037
|
-
core: h(
|
|
1038
|
-
"feature-flags": h(
|
|
1036
|
+
editor: h(N),
|
|
1037
|
+
core: h(P),
|
|
1038
|
+
"feature-flags": h(F),
|
|
1039
1039
|
"panel-state": h(V),
|
|
1040
1040
|
"snapshot-preview": h(H),
|
|
1041
|
-
"comments-instance": h(
|
|
1041
|
+
"comments-instance": h(ie),
|
|
1042
1042
|
"test-email": h(L),
|
|
1043
1043
|
websocket: h(j),
|
|
1044
|
-
collaboration: h(
|
|
1045
|
-
"is-collaboration-enabled": h(
|
|
1046
|
-
"is-saving": h(
|
|
1047
|
-
"is-save-disabled": h(
|
|
1044
|
+
collaboration: h(M),
|
|
1045
|
+
"is-collaboration-enabled": h(ne),
|
|
1046
|
+
"is-saving": h(N).state.isSaving || h(F).isSaveExporting.value,
|
|
1047
|
+
"is-save-disabled": h(N).state.isSaving || h(F).isSaveExporting.value || !h(N).state.isDirty,
|
|
1048
1048
|
onSave: Z
|
|
1049
1049
|
}, null, 8, [
|
|
1050
1050
|
"editor",
|
|
@@ -1087,15 +1087,15 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1087
1087
|
default: s(() => [D(jt, { visible: h(ae).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
|
|
1088
1088
|
_: 1
|
|
1089
1089
|
}),
|
|
1090
|
-
n(D(Oe, null, null, 512), [[S, !h(
|
|
1090
|
+
n(D(Oe, null, null, 512), [[S, !h(N).state.previewMode]]),
|
|
1091
1091
|
x("div", {
|
|
1092
|
-
class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(
|
|
1092
|
+
class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(H).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
|
|
1093
1093
|
style: {
|
|
1094
1094
|
transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
1095
1095
|
"background-color": "var(--tpl-canvas-bg)"
|
|
1096
1096
|
}
|
|
1097
1097
|
}, [x("div", Nt, [D(y, { name: "tpl-restore-btn" }, {
|
|
1098
|
-
default: s(() => [h(
|
|
1098
|
+
default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
|
|
1099
1099
|
key: 0,
|
|
1100
1100
|
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",
|
|
1101
1101
|
style: {
|
|
@@ -1104,20 +1104,20 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1104
1104
|
"border-color": "var(--tpl-warning)",
|
|
1105
1105
|
"backdrop-filter": "blur(8px)"
|
|
1106
1106
|
},
|
|
1107
|
-
onClick: r[0] ||= (e) => h(
|
|
1107
|
+
onClick: r[0] ||= (e) => h(P).conditionPreview.reset()
|
|
1108
1108
|
}, [D(h(xe), {
|
|
1109
1109
|
size: 13,
|
|
1110
1110
|
"stroke-width": 2
|
|
1111
|
-
}), T(" " + d(h(
|
|
1111
|
+
}), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
|
|
1112
1112
|
_: 1
|
|
1113
1113
|
})]), x("main", Pt, [D(Te, {
|
|
1114
|
-
viewport: h(
|
|
1115
|
-
content: h(
|
|
1116
|
-
"selected-block-id": h(
|
|
1117
|
-
"dark-mode": h(
|
|
1118
|
-
"preview-mode": h(
|
|
1119
|
-
"locked-blocks": h(
|
|
1120
|
-
onSelectBlock: h(
|
|
1114
|
+
viewport: h(N).state.viewport,
|
|
1115
|
+
content: h(N).content.value,
|
|
1116
|
+
"selected-block-id": h(N).state.selectedBlockId,
|
|
1117
|
+
"dark-mode": h(N).state.darkMode,
|
|
1118
|
+
"preview-mode": h(N).state.previewMode,
|
|
1119
|
+
"locked-blocks": h(M)?.lockedBlocks.value ?? void 0,
|
|
1120
|
+
onSelectBlock: h(N).selectBlock,
|
|
1121
1121
|
onOpenAiChat: r[1] ||= (e) => h(V).aiChatOpen.value = !0,
|
|
1122
1122
|
onOpenDesignReference: r[2] ||= (e) => h(V).designReferenceOpen.value = !0
|
|
1123
1123
|
}, null, 8, [
|
|
@@ -1129,43 +1129,43 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1129
1129
|
"locked-blocks",
|
|
1130
1130
|
"onSelectBlock"
|
|
1131
1131
|
])])], 2),
|
|
1132
|
-
e.config.branding !== !1 && !h(
|
|
1132
|
+
e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(je, {
|
|
1133
1133
|
key: 0,
|
|
1134
|
-
"position-class": [h(
|
|
1134
|
+
"position-class": [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
|
|
1135
1135
|
}, null, 8, ["position-class"])) : m("", !0),
|
|
1136
1136
|
x("div", {
|
|
1137
1137
|
class: "tpl-sr-only",
|
|
1138
1138
|
role: "status",
|
|
1139
1139
|
"aria-live": "polite",
|
|
1140
1140
|
"aria-atomic": "true",
|
|
1141
|
-
"aria-label": h(
|
|
1142
|
-
}, d(h(
|
|
1141
|
+
"aria-label": h(P).t.landmarks.reorderAnnouncements
|
|
1142
|
+
}, d(h(P).keyboardReorder.announcement.value), 9, Ft),
|
|
1143
1143
|
n(D(we, {
|
|
1144
|
-
"selected-block": h(
|
|
1145
|
-
settings: h(
|
|
1144
|
+
"selected-block": h(N).selectedBlock.value,
|
|
1145
|
+
settings: h(N).content.value.settings,
|
|
1146
1146
|
"shifted-left": h(V).rightPanelOpen.value,
|
|
1147
|
-
onUpdateBlock: r[3] ||= (e) => h(
|
|
1148
|
-
onDeleteBlock: r[4] ||= (e) => h(
|
|
1149
|
-
onDuplicateBlock: r[5] ||= (e) => h(
|
|
1150
|
-
onUpdateSettings: h(
|
|
1147
|
+
onUpdateBlock: r[3] ||= (e) => h(N).updateBlock(h(N).selectedBlock.value.id, e),
|
|
1148
|
+
onDeleteBlock: r[4] ||= (e) => h(P).blockActions.deleteBlock(h(N).selectedBlock.value.id),
|
|
1149
|
+
onDuplicateBlock: r[5] ||= (e) => h(P).blockActions.duplicateBlock(h(N).selectedBlock.value),
|
|
1150
|
+
onUpdateSettings: h(N).updateSettings
|
|
1151
1151
|
}, null, 8, [
|
|
1152
1152
|
"selected-block",
|
|
1153
1153
|
"settings",
|
|
1154
1154
|
"shifted-left",
|
|
1155
1155
|
"onUpdateSettings"
|
|
1156
|
-
]), [[S, !h(
|
|
1156
|
+
]), [[S, !h(N).state.previewMode]]),
|
|
1157
1157
|
!h(O) && h(ee) ? (i(), v(ht, {
|
|
1158
1158
|
key: 1,
|
|
1159
1159
|
ref_key: "cloudPanelsRef",
|
|
1160
1160
|
ref: f,
|
|
1161
1161
|
config: l.config,
|
|
1162
|
-
editor: h(
|
|
1163
|
-
core: h(
|
|
1162
|
+
editor: h(N),
|
|
1163
|
+
core: h(P),
|
|
1164
1164
|
"panel-state": h(V),
|
|
1165
1165
|
"plan-config-instance": h(A),
|
|
1166
1166
|
"test-email": h(L),
|
|
1167
|
-
"media-lib": h(
|
|
1168
|
-
"saved-modules-headless": h(
|
|
1167
|
+
"media-lib": h(I),
|
|
1168
|
+
"saved-modules-headless": h(B),
|
|
1169
1169
|
"show-save-module-dialog": h(U),
|
|
1170
1170
|
"save-module-pre-selected-block-id": h(G),
|
|
1171
1171
|
"show-module-browser-modal": h(W),
|
|
@@ -1188,7 +1188,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1188
1188
|
"show-module-browser-modal"
|
|
1189
1189
|
])) : m("", !0),
|
|
1190
1190
|
x("div", {
|
|
1191
|
-
ref: (e) => h(
|
|
1191
|
+
ref: (e) => h(P).popoverRoot.value = e,
|
|
1192
1192
|
class: "tpl-popover-root"
|
|
1193
1193
|
}, null, 512),
|
|
1194
1194
|
D(ke),
|
|
@@ -1200,4 +1200,4 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
|
|
|
1200
1200
|
//#endregion
|
|
1201
1201
|
export { It as default };
|
|
1202
1202
|
|
|
1203
|
-
//# sourceMappingURL=CloudEditor-
|
|
1203
|
+
//# sourceMappingURL=CloudEditor-DFIFWD9G.js.map
|