@templatical/editor 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/{AiChatSidebar-D30WPhbv.js → AiChatSidebar-BMwpZx-6.js} +14 -14
  2. package/dist/{AiFeatureMenu-B5CJX5zr.js → AiFeatureMenu-xgaIGUCo.js} +8 -8
  3. package/dist/{BlockIssueBadge-CkB4Yyz2.js → BlockIssueBadge-3kNs6WoD.js} +5 -5
  4. package/dist/{CloudEditor-nT-R769W.js → CloudEditor-Dm9hiaui.js} +159 -156
  5. package/dist/{CollaboratorBar-CwhlXODK.js → CollaboratorBar-Cz_evoU4.js} +4 -4
  6. package/dist/{CommentsSidebar-gpZMMI5w.js → CommentsSidebar-jFZj_CTo.js} +13 -13
  7. package/dist/{CountdownBlock-BNvuXucv.js → CountdownBlock-S-SCyVye.js} +4 -4
  8. package/dist/{CountdownToolbar-Dl82DAmI.js → CountdownToolbar-Ckdo-3P-.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-Bs5AMxVd.js → DesignReferenceSidebar-B9QNPZNV.js} +10 -10
  10. package/dist/{IssuesPanel-CqQa2BtU.js → IssuesPanel-_E_fbSM8.js} +8 -8
  11. package/dist/{LoadingTrack-xCOLUR3o.js → LoadingTrack-BZ5KJyZ_.js} +2 -2
  12. package/dist/{ModuleBrowserModal-BWWgF0LC.js → ModuleBrowserModal-BB22urqi.js} +10 -10
  13. package/dist/{ModulePreviewCanvas-D7Tk5HOt.js → ModulePreviewCanvas-CH5OdXv8.js} +3 -3
  14. package/dist/{NumberWithSuffix-DVy5HxMi.js → NumberWithSuffix-BHDXHMpo.js} +3 -3
  15. package/dist/{ParagraphEditor-DVSGdMOo.js → ParagraphEditor-BmY7LLgN.js} +26 -26
  16. package/dist/{RichTextEditorContent-DN-fRjMa.js → RichTextEditorContent-COijbaWp.js} +8 -8
  17. package/dist/{SaveModuleDialog-CkEYkyVD.js → SaveModuleDialog-D5WN-je_.js} +7 -7
  18. package/dist/{SnapshotHistory-Nx9wrlbF.js → SnapshotHistory-BQ55Rhri.js} +9 -9
  19. package/dist/{TemplateScoringPanel-BG9M-29t.js → TemplateScoringPanel-Dhf_Qgr7.js} +15 -15
  20. package/dist/{TestEmailModal-CRjtEs6S.js → TestEmailModal-DH_Viz_m.js} +5 -5
  21. package/dist/{TitleEditor-CvtV4pCA.js → TitleEditor-Dn613K8o.js} +12 -12
  22. package/dist/{TplModal-BudEYVcJ.js → TplModal-Dxa3rhHI.js} +4 -4
  23. package/dist/{blockTypeIcons-Dd-UvfnC.js → blockTypeIcons-CrcSCTD6.js} +2 -2
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-DKOv8VnB.js → AiFeatureMenu-CCsgxyN9.js} +4 -4
  26. package/dist/cdn/chunks/{AiFeatureMenu-DKOv8VnB.js.map → AiFeatureMenu-CCsgxyN9.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-DpiSTwM7.js → BlockIssueBadge-Lc3NWFV8.js} +3 -3
  28. package/dist/cdn/chunks/{BlockIssueBadge-DpiSTwM7.js.map → BlockIssueBadge-Lc3NWFV8.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-xc_uOEgn.js → CloudEditor-KkwvBhyt.js} +131 -128
  30. package/dist/cdn/chunks/CloudEditor-KkwvBhyt.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-VWfPri_h.js → CollaboratorBar-BGIGiFSm.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-VWfPri_h.js.map → CollaboratorBar-BGIGiFSm.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-BKsCWboK.js → CountdownBlock-gqnpxKp_.js} +4 -4
  34. package/dist/cdn/chunks/{CountdownBlock-BKsCWboK.js.map → CountdownBlock-gqnpxKp_.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-BLtECDNb.js → CountdownToolbar-xHpaWQE2.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-BLtECDNb.js.map → CountdownToolbar-xHpaWQE2.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-BW2piyvs.js → IssuesPanel-DHTTHu65.js} +4 -4
  38. package/dist/cdn/chunks/{IssuesPanel-BW2piyvs.js.map → IssuesPanel-DHTTHu65.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-TLlKpvjX.js → ModuleBrowserModal-DDTjrKph.js} +6 -6
  40. package/dist/cdn/chunks/{ModuleBrowserModal-TLlKpvjX.js.map → ModuleBrowserModal-DDTjrKph.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-wu7y-vrh.js → ModulePreviewCanvas-DeFq0hVi.js} +3 -3
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-wu7y-vrh.js.map → ModulePreviewCanvas-DeFq0hVi.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-DxoUtTMr.js → NumberWithSuffix-D4wtmU9O.js} +3 -3
  44. package/dist/cdn/chunks/{NumberWithSuffix-DxoUtTMr.js.map → NumberWithSuffix-D4wtmU9O.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-DvxIO2LN.js → ParagraphEditor-CwY8GeWa.js} +20 -20
  46. package/dist/cdn/chunks/{ParagraphEditor-DvxIO2LN.js.map → ParagraphEditor-CwY8GeWa.js.map} +1 -1
  47. package/dist/cdn/chunks/{RichTextEditorContent-Dm9GXJmo.js → RichTextEditorContent-C_bMURGF.js} +5 -5
  48. package/dist/cdn/chunks/{RichTextEditorContent-Dm9GXJmo.js.map → RichTextEditorContent-C_bMURGF.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-BRAdVcYM.js → SaveModuleDialog-DEi8PSP6.js} +3 -3
  50. package/dist/cdn/chunks/{SaveModuleDialog-BRAdVcYM.js.map → SaveModuleDialog-DEi8PSP6.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-D3gPRd0x.js → TitleEditor-Betpo8AZ.js} +9 -9
  52. package/dist/cdn/chunks/{TitleEditor-D3gPRd0x.js.map → TitleEditor-Betpo8AZ.js.map} +1 -1
  53. package/dist/cdn/chunks/{blockTypeIcons-C2cm4RjU.js → blockTypeIcons-Xz6OBq3U.js} +3 -3
  54. package/dist/cdn/chunks/{blockTypeIcons-C2cm4RjU.js.map → blockTypeIcons-Xz6OBq3U.js.map} +1 -1
  55. package/dist/cdn/chunks/{draggable-BwWMFq33.js → draggable-BTGr7_-X.js} +1271 -1270
  56. package/dist/cdn/chunks/draggable-BTGr7_-X.js.map +1 -0
  57. package/dist/cdn/chunks/{extensions-SS1ywPUR.js → extensions-D_j4UWxi.js} +108 -105
  58. package/dist/cdn/chunks/{extensions-SS1ywPUR.js.map → extensions-D_j4UWxi.js.map} +1 -1
  59. package/dist/cdn/chunks/{features-CwZTdcbt.js → features-A28DQtjE.js} +831 -820
  60. package/dist/cdn/chunks/features-A28DQtjE.js.map +1 -0
  61. package/dist/cdn/chunks/{icons-CbNEr1kc.js → icons-C9D3N0-J.js} +12 -12
  62. package/dist/cdn/chunks/{icons-CbNEr1kc.js.map → icons-C9D3N0-J.js.map} +1 -1
  63. package/dist/cdn/chunks/{liquid.browser-rMoPo2t_.js → liquid.browser-DUDc3U21.js} +10 -10
  64. package/dist/cdn/chunks/{liquid.browser-rMoPo2t_.js.map → liquid.browser-DUDc3U21.js.map} +1 -1
  65. package/dist/cdn/chunks/{media-library-BRpHZOl7.js → media-library-CH1Wx5wP.js} +13 -9
  66. package/dist/cdn/chunks/media-library-CH1Wx5wP.js.map +1 -0
  67. package/dist/cdn/chunks/pusher-CHo5Cua0.js.map +1 -1
  68. package/dist/cdn/chunks/{quality-BqJqIPRU.js → quality-D4NeyFej.js} +530 -530
  69. package/dist/cdn/chunks/{quality-BqJqIPRU.js.map → quality-D4NeyFej.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-CGVYkdUi.js → renderer-BQnGfLhL.js} +62 -61
  71. package/dist/cdn/chunks/renderer-BQnGfLhL.js.map +1 -0
  72. package/dist/cdn/chunks/{src-CvzfrFlT.js → src-BkKEyLw1.js} +6 -6
  73. package/dist/cdn/chunks/{src-CvzfrFlT.js.map → src-BkKEyLw1.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-2P5yvfsS.js → styles-BDVaiw3K.js} +150 -150
  75. package/dist/cdn/chunks/{styles-2P5yvfsS.js.map → styles-BDVaiw3K.js.map} +1 -1
  76. package/dist/cdn/chunks/{tiptap-BBbH3IT9.js → tiptap-P5abGB13.js} +4437 -2580
  77. package/dist/cdn/chunks/tiptap-P5abGB13.js.map +1 -0
  78. package/dist/cdn/editor.css +1 -1
  79. package/dist/cdn/editor.js +100 -100
  80. package/dist/cdn/editor.js.map +1 -1
  81. package/dist/{check-ChQyfxJ3.js → check-KooI2jyS.js} +1 -1
  82. package/dist/{chevron-down-DJjo0jSV.js → chevron-down-mnlFgueW.js} +1 -1
  83. package/dist/{circle-alert-CPH6l3Lc.js → circle-alert-D89_hB8j.js} +1 -1
  84. package/dist/{clock-DHl_BIkU.js → clock-BaadyUrg.js} +1 -1
  85. package/dist/{cloud-BBC7bv8q.js → cloud-D-FScaHx.js} +80 -74
  86. package/dist/{createLucideIcon-XgXOJ05E.js → createLucideIcon-D-6fpD2L.js} +3 -3
  87. package/dist/{dist-DXaxGLsw.js → dist-BttO3Zdx.js} +44 -44
  88. package/dist/{dist-C8wMh_gi.js → dist-C1WcikEF.js} +5 -5
  89. package/dist/dist-CjULgTep.js +4072 -0
  90. package/dist/{dist-GAmhYvUK.js → dist-D6L_WdRL.js} +96 -86
  91. package/dist/{dist-DYO-w_Jf.js → dist-DaajG7Fo.js} +5 -5
  92. package/dist/dist-Df4eV6Zi.js +5 -0
  93. package/dist/{dist-D8C6jIXM.js → dist-Dnqx5UF3.js} +171 -158
  94. package/dist/{dist-CUpJmrjt.js → dist-Drp5bNAu.js} +5 -5
  95. package/dist/dist-WJ1fVd5b.js +5 -0
  96. package/dist/{dist-BxP6TB0l.js → dist-XA2i70J5.js} +8 -8
  97. package/dist/{dist-UK-lbEBc.js → dist-b52vYHb5.js} +2 -2
  98. package/dist/{dist-CNLAS2v2.js → dist-cl33Ip6W.js} +3 -3
  99. package/dist/{dist-C0jo8wtG.js → dist-sqf7pq5q.js} +16 -16
  100. package/dist/{dist-BzuC8o3y.js → dist-zInT3Lf6.js} +78 -60
  101. package/dist/{extensions-C87ZSllQ.js → extensions-DA-w1gVg.js} +128 -125
  102. package/dist/{image-up-CPBCOMit.js → image-up-DjwfAom6.js} +1 -1
  103. package/dist/{info-DIY9mguM.js → info-Db3HlTr8.js} +1 -1
  104. package/dist/{keys-Vt3XipJl.js → keys-BjmL5YCT.js} +1 -1
  105. package/dist/{liquid.browser-IgQrXHPQ.js → liquid.browser--qtl1Fqy.js} +9 -9
  106. package/dist/{list-checks-CSCyu3fH.js → list-checks-BlAB0X8a.js} +1 -1
  107. package/dist/{loader-circle-Rz_4vJLH.js → loader-circle-EVqyIxjU.js} +1 -1
  108. package/dist/{message-circle-D-umK_MU.js → message-circle-BuI5pBVG.js} +1 -1
  109. package/dist/{refresh-cw-CvWF4jfR.js → refresh-cw-C2vM_6zQ.js} +1 -1
  110. package/dist/{scan-line-wanvAFDr.js → scan-line-AUIh_SHI.js} +1 -1
  111. package/dist/{send-BhbhbIFT.js → send-nrbwF7xg.js} +1 -1
  112. package/dist/{shield-check-CXPPMWth.js → shield-check-B55Ozmva.js} +1 -1
  113. package/dist/{sparkles-CrUN0KWY.js → sparkles-oh1NUSFq.js} +1 -1
  114. package/dist/style.css +1 -1
  115. package/dist/{styles-DOjWbqA9.js → styles-Byhh107n.js} +41 -41
  116. package/dist/templatical-editor.js +81 -80
  117. package/dist/{text-align-end-Bkq8oBrD.js → text-align-start-B2MqzZwU.js} +11 -11
  118. package/dist/{trash-2-BpY5BCLT.js → trash-2-DH8RBwAx.js} +1 -1
  119. package/dist/{triangle-alert-MwJBKR2e.js → triangle-alert-BQHjCt3B.js} +1 -1
  120. package/dist/{useAliveFlag-BLyG8L4d.js → useAliveFlag-B_b9ubwD.js} +1 -1
  121. package/dist/{useCloudI18n-sRfoQCZY.js → useCloudI18n-BHCrmQgj.js} +2 -2
  122. package/dist/{useEditorCore-DxApq2hZ.js → useEditorCore-BEgc3KFu.js} +370 -377
  123. package/dist/{useI18n-lF6hYgZu.js → useI18n-Bb9-ha9X.js} +2 -2
  124. package/dist/{useMergeTag-CZVI7Xe5.js → useMergeTag-HykzEtBn.js} +3 -3
  125. package/dist/usePopoverRoot-BZDkRRry.js +8 -0
  126. package/dist/{vue.runtime.esm-bundler-BDSGA5hA.js → vue.runtime.esm-bundler-MzYCkFSH.js} +1306 -1305
  127. package/dist/{x-rcnxRG8Y.js → x-DgCCENgP.js} +1 -1
  128. package/package.json +27 -27
  129. package/dist/cdn/chunks/CloudEditor-xc_uOEgn.js.map +0 -1
  130. package/dist/cdn/chunks/draggable-BwWMFq33.js.map +0 -1
  131. package/dist/cdn/chunks/features-CwZTdcbt.js.map +0 -1
  132. package/dist/cdn/chunks/media-library-BRpHZOl7.js.map +0 -1
  133. package/dist/cdn/chunks/renderer-CGVYkdUi.js.map +0 -1
  134. package/dist/cdn/chunks/tiptap-BBbH3IT9.js.map +0 -1
  135. package/dist/dist-BDgf2G-V.js +0 -2243
  136. package/dist/dist-D5lmdi1F.js +0 -5
  137. package/dist/dist-DILjuzSv.js +0 -5
  138. package/dist/usePopoverRoot-p2BanBI7.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"BlockIssueBadge-DpiSTwM7.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,GAAG,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
+ {"version":3,"file":"BlockIssueBadge-Lc3NWFV8.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,GAAG,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 ee } from "./draggable-BwWMFq33.js";
2
- import { $t as O, A as k, At as A, Bn as j, Dn as M, Dt as N, E as P, Et as F, Ft as I, Ht as L, It as te, Nt as R, Qt as z, Rt as B, S as V, Sn as H, Ut as U, Vt as ne, Z as W, _ as G, _t as K, an as q, b as re, c as ie, d as ae, en as J, f as Y, g as X, h as oe, l as se, m as ce, mn as Z, p as le, pt as ue, rt as de, s as fe, st as pe, tt as Q, u as me, ut as he, v as ge, vt as _e, x as ve, y as ye } from "./features-CwZTdcbt.js";
3
- import { S as be, x as xe } from "./icons-CbNEr1kc.js";
4
- import { a as Se, c as Ce, i as we, l as Te, n as Ee, o as De, r as Oe, s as ke, t as Ae, u as je } from "./styles-2P5yvfsS.js";
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-BTGr7_-X.js";
2
+ import { $t as k, A, At as j, Cn as M, Dt as N, E as P, Et as F, Ft as I, Hn as L, Ht as R, It as z, Nt as ee, Qt as B, Rt as te, S as V, Ut as H, Vt as U, Z as ne, _ as W, _t as G, an as K, b as re, c as ie, d as ae, en as oe, f as q, g as J, h as Y, kn as X, l as se, m as ce, mn as Z, p as le, pt as ue, rt as de, s as fe, st as pe, tt as Q, u as me, ut as he, v as ge, vt as _e, x as ve, y as ye } from "./features-A28DQtjE.js";
3
+ import { S as be, x as xe } from "./icons-C9D3N0-J.js";
4
+ import { a as Se, c as Ce, i as we, l as Te, n as Ee, o as De, r as Oe, s as ke, t as Ae, u as je } from "./styles-BDVaiw3K.js";
5
5
  import { d as $ } from "./styleConstants-lGobwiLH.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
7
  function Me(t) {
@@ -11,7 +11,7 @@ function Me(t) {
11
11
  });
12
12
  let h = f(() => d.value !== null), g = f(() => u.value?.snapshots.value ?? []), _ = f(() => u.value?.isLoading.value ?? !1), v = f(() => u.value?.isRestoring.value ?? !1);
13
13
  function y() {
14
- i.state.template?.id && !u.value && (u.value = Y({
14
+ i.state.template?.id && !u.value && (u.value = q({
15
15
  authManager: n,
16
16
  templateId: i.state.template.id,
17
17
  onRestore: b,
@@ -33,6 +33,8 @@ function Me(t) {
33
33
  async function S() {
34
34
  if (!(!d.value || !u.value)) try {
35
35
  if (await u.value.restoreSnapshot(d.value.id), m || (await u.value.loadSnapshots(), m)) return;
36
+ } catch (e) {
37
+ throw !m && p.value && i.setContent(p.value, !1), e;
36
38
  } finally {
37
39
  m || (d.value = null, p.value = null, s?.resume());
38
40
  }
@@ -84,7 +86,7 @@ function Ne() {
84
86
  function g(t) {
85
87
  l.value = !1, e.value = e.value === t ? null : t;
86
88
  }
87
- return q(u, () => {
89
+ return K(u, () => {
88
90
  l.value = !1;
89
91
  }), {
90
92
  activePanel: e,
@@ -109,7 +111,7 @@ function Ne() {
109
111
  function Pe(e) {
110
112
  let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = Z(() => {
111
113
  a.value = !1;
112
- }, j, { immediate: !1 });
114
+ }, L, { immediate: !1 });
113
115
  function s() {
114
116
  i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
115
117
  }
@@ -197,7 +199,7 @@ function Le(e) {
197
199
  onOperation: t.mcp.onOperation
198
200
  });
199
201
  let x = null;
200
- t.collaboration?.enabled && (x = X({
202
+ t.collaboration?.enabled && (x = J({
201
203
  authManager: g,
202
204
  editor: y,
203
205
  channel: b.channel,
@@ -206,10 +208,10 @@ function Le(e) {
206
208
  onCollaboratorLeft: t.collaboration.onCollaboratorLeft,
207
209
  onBlockLocked: t.collaboration.onBlockLocked,
208
210
  onBlockUnlocked: t.collaboration.onBlockUnlocked
209
- }), ee(() => x.lockedBlocks.value, (e) => {
211
+ }), O(() => x.lockedBlocks.value, (e) => {
210
212
  v.value = e;
211
- }, { immediate: !0 }), oe(y, x));
212
- let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = k({
213
+ }, { immediate: !0 }), Y(y, x));
214
+ let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = A({
213
215
  editor: y,
214
216
  config: {
215
217
  uiTheme: t.uiTheme,
@@ -255,32 +257,32 @@ function Le(e) {
255
257
  onError: t.onError
256
258
  });
257
259
  m = T;
258
- let E = Ne(), D = re(t.ai), A = Fe({
260
+ let E = Ne(), D = re(t.ai), j = Fe({
259
261
  planConfigInstance: _,
260
262
  aiConfig: D,
261
263
  editor: y
262
- }), j = Ie({
264
+ }), M = Ie({
263
265
  onRequestMedia: t.onRequestMedia,
264
266
  mediaLibraryOpen: E.mediaLibraryOpen,
265
267
  mediaLibraryAccept: E.mediaLibraryAccept
266
268
  });
267
- W({
269
+ ne({
268
270
  onBlockMove: y.moveBlock,
269
271
  onBlockAdd: y.addBlock
270
272
  });
271
- let M = me({
273
+ let N = me({
272
274
  authManager: g,
273
275
  getFontsConfig: () => t.fonts,
274
276
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
275
- }), N = ae({
277
+ }), F = ae({
276
278
  authManager: g,
277
279
  getTemplateId: () => y.state.template?.id ?? null,
278
280
  save: () => y.save(),
279
- exportHtml: (e) => M.exportHtml(e),
281
+ exportHtml: (e) => N.exportHtml(e),
280
282
  onError: t.onError,
281
283
  isAuthReady: l,
282
284
  onBeforeTestEmail: t.onBeforeTestEmail
283
- }), F = ge({
285
+ }), I = ge({
284
286
  authManager: g,
285
287
  getTemplateId: () => y.state.template?.id ?? null,
286
288
  getSocketId: () => b.getSocketId(),
@@ -289,14 +291,14 @@ function Le(e) {
289
291
  isAuthReady: l,
290
292
  hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
291
293
  });
292
- G({
293
- comments: F,
294
+ W({
295
+ comments: I,
294
296
  channel: b.channel
295
297
  });
296
- let I = le({
298
+ let L = le({
297
299
  authManager: g,
298
300
  onError: t.onError
299
- }), L = c(!1), V = c(null), H = c(!1), K = ye({
301
+ }), R = c(!1), V = c(null), G = c(!1), K = ye({
300
302
  authManager: g,
301
303
  getTemplateId: () => y.state.template?.id ?? null
302
304
  });
@@ -305,24 +307,24 @@ function Le(e) {
305
307
  o()?.filterByBlock(e);
306
308
  });
307
309
  }
308
- a(z, j.handleRequestMedia), a(B, g), a(te, D), a(U, F), a(O, I), a(J, K), a(ne, {
310
+ a(B, M.handleRequestMedia), a(te, g), a(z, D), a(H, I), a(k, L), a(oe, K), a(U, {
309
311
  plan: _,
310
312
  ai: D,
311
313
  comments: {
312
- getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
314
+ getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
313
315
  openForBlock: q
314
316
  },
315
317
  savedModules: {
316
318
  openSaveDialog: (e) => {
317
- V.value = e ?? null, L.value = !0;
319
+ V.value = e ?? null, R.value = !0;
318
320
  },
319
321
  openBrowser: () => {
320
- H.value = !0;
322
+ G.value = !0;
321
323
  },
322
- moduleCount: f(() => I.modules.value.length)
324
+ moduleCount: f(() => L.modules.value.length)
323
325
  }
324
326
  });
325
- function Y(e) {
327
+ function X(e) {
326
328
  _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
327
329
  }
328
330
  function Z(e) {
@@ -337,8 +339,8 @@ function Le(e) {
337
339
  if (d) return;
338
340
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
339
341
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
340
- if (e.websocket.ok || R.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
341
- 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") && I.loadModules(), i("ready");
342
+ if (e.websocket.ok || ee.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
343
+ 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");
342
344
  } catch (e) {
343
345
  if (d) return;
344
346
  let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
@@ -363,23 +365,23 @@ function Le(e) {
363
365
  editor: y,
364
366
  core: C,
365
367
  aiConfig: D,
366
- featureFlags: A,
367
- mediaLib: j,
368
- exporter: M,
369
- testEmail: N,
370
- commentsInstance: F,
371
- savedModulesHeadless: I,
368
+ featureFlags: j,
369
+ mediaLib: M,
370
+ exporter: N,
371
+ testEmail: F,
372
+ commentsInstance: I,
373
+ savedModulesHeadless: L,
372
374
  scoringInstance: K,
373
375
  panelState: E,
374
376
  snapshotPreview: T,
375
377
  collabWarning: w,
376
- showSaveModuleDialog: L,
377
- showModuleBrowserModal: H,
378
+ showSaveModuleDialog: R,
379
+ showModuleBrowserModal: G,
378
380
  saveModulePreSelectedBlockId: V,
379
381
  onSaveHook: p,
380
382
  initialize: ue,
381
383
  destroy: de,
382
- setThemeOverrides: Y,
384
+ setThemeOverrides: X,
383
385
  setUiTheme: Z,
384
386
  openCommentsForBlock: q
385
387
  };
@@ -388,7 +390,7 @@ function Le(e) {
388
390
  //#region src/utils/preRenderCustomBlocks.ts
389
391
  async function Re(e, t) {
390
392
  let n = async (e) => {
391
- if (M(e)) {
393
+ if (X(e)) {
392
394
  let n = e;
393
395
  try {
394
396
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -561,7 +563,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
561
563
  },
562
564
  emits: ["save"],
563
565
  setup(e) {
564
- let t = u(() => import("./CollaboratorBar-VWfPri_h.js")), n = u(() => import("./features-CwZTdcbt.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-DKOv8VnB.js")), { t: a, format: o } = Q();
566
+ let t = u(() => import("./CollaboratorBar-BGIGiFSm.js")), n = u(() => import("./features-A28DQtjE.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-CCsgxyN9.js")), { t: a, format: o } = Q();
565
567
  return (c, l) => (i(), p("header", Ze, [
566
568
  x("div", Qe, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", $e, d(h(o)(h(a).header.templatesUsed, {
567
569
  used: e.featureFlags.templateCount.value,
@@ -609,7 +611,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
609
611
  }, [D(h(N), {
610
612
  size: 12,
611
613
  "stroke-width": 2.5
612
- }), T(" " + d(h(a).header.saveFailed), 1)], 8, nt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", rt, [D(h(A), {
614
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, nt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", rt, [D(h(j), {
613
615
  size: 12,
614
616
  "stroke-width": 2.5
615
617
  }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", it, [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),
@@ -625,7 +627,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
625
627
  }),
626
628
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
627
629
  }, [
628
- D(h(K), {
630
+ D(h(G), {
629
631
  size: 16,
630
632
  "stroke-width": 2
631
633
  }),
@@ -723,9 +725,9 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
723
725
  "module-insert"
724
726
  ],
725
727
  setup(e, { expose: t, emit: n }) {
726
- let r = u(() => import("./features-CwZTdcbt.js").then((e) => e.o)), a = u(() => import("./features-CwZTdcbt.js").then((e) => e.a)), o = u(() => import("./features-CwZTdcbt.js").then((e) => e.i)), s = u(() => import("./features-CwZTdcbt.js").then((e) => e.n)), l = u(() => import("./features-CwZTdcbt.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-BRAdVcYM.js")), f = u(() => import("./ModuleBrowserModal-TLlKpvjX.js")), g = u(async () => {
728
+ let r = u(() => import("./features-A28DQtjE.js").then((e) => e.o)), a = u(() => import("./features-A28DQtjE.js").then((e) => e.a)), o = u(() => import("./features-A28DQtjE.js").then((e) => e.i)), s = u(() => import("./features-A28DQtjE.js").then((e) => e.n)), l = u(() => import("./features-A28DQtjE.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-DEi8PSP6.js")), f = u(() => import("./ModuleBrowserModal-DDTjrKph.js")), g = u(async () => {
727
729
  try {
728
- return (await import("./src-CvzfrFlT.js")).MediaLibraryModal;
730
+ return (await import("./src-BkKEyLw1.js")).MediaLibraryModal;
729
731
  } catch {
730
732
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
731
733
  }
@@ -889,7 +891,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
889
891
  let { t } = I();
890
892
  return (n, r) => e.visible ? (i(), p("div", Dt, d(h(t).history.collabWarning), 1)) : m("", !0);
891
893
  }
892
- }), kt = ["data-tpl-theme"], At = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, jt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Mt = ["aria-label"], Nt = /* @__PURE__ */ de(/* @__PURE__ */ E({
894
+ }), kt = ["data-tpl-theme"], At = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, jt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Mt = ["aria-label"], Nt = /*#__PURE__*/ de(/* @__PURE__ */ E({
893
895
  __name: "CloudEditor",
894
896
  props: {
895
897
  config: {},
@@ -901,7 +903,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
901
903
  emits: ["ready"],
902
904
  setup(e, { expose: r, emit: o }) {
903
905
  let l = e;
904
- a(L, l.cloudTranslations);
906
+ a(R, l.cloudTranslations);
905
907
  let u = o, f = c(null), _ = c(null), w = Le({
906
908
  config: l.config,
907
909
  translations: l.translations,
@@ -910,32 +912,37 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
910
912
  getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null,
911
913
  editorRoot: l.shadowRoot,
912
914
  containerEl: _
913
- }), { isInitializing: E, isAuthReady: ee, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: te, testEmail: R, commentsInstance: z, savedModulesHeadless: B, panelState: V, snapshotPreview: U, collabWarning: ne, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: re } = w;
914
- async function ie(e) {
915
+ }), { isInitializing: E, isAuthReady: O, initError: k, planConfigInstance: A, websocket: j, collaboration: N, isCollaborationEnabled: P, editor: F, core: I, featureFlags: L, mediaLib: z, exporter: ee, testEmail: B, commentsInstance: te, savedModulesHeadless: V, panelState: H, snapshotPreview: U, collabWarning: ne, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: re, setUiTheme: ie } = w;
916
+ async function ae(e) {
917
+ try {
918
+ await B.sendTestEmail(e), H.testEmailModalOpen.value = !1;
919
+ } catch {}
920
+ }
921
+ async function oe() {
915
922
  try {
916
- await R.sendTestEmail(e), V.testEmailModalOpen.value = !1;
923
+ await U.confirmRestoreSnapshot();
917
924
  } catch {}
918
925
  }
919
- function ae(e, t) {
926
+ function q(e, t) {
920
927
  for (let n = 0; n < e.content.length; n++) {
921
- let r = H(e.content[n]), i = t === void 0 ? void 0 : t + n;
922
- N.addBlock(r, void 0, void 0, i);
928
+ let r = M(e.content[n]), i = t === void 0 ? void 0 : t + n;
929
+ F.addBlock(r, void 0, void 0, i);
923
930
  }
924
931
  G.value = !1;
925
932
  }
926
933
  let J = ze({
927
934
  config: l.config,
928
- editor: N,
929
- websocket: A,
930
- planConfigInstance: k,
935
+ editor: F,
936
+ websocket: j,
937
+ planConfigInstance: A,
931
938
  snapshotPreview: U,
932
- core: P,
933
- exporter: te,
934
- featureFlags: F,
939
+ core: I,
940
+ exporter: ee,
941
+ featureFlags: L,
935
942
  isDestroyed: w.isDestroyed
936
943
  }), Y = Be({
937
- issues: P.templateLint ? P.templateLint.issues : c([]),
938
- planConfig: k.config
944
+ issues: I.templateLint ? I.templateLint.issues : c([]),
945
+ planConfig: A.config
939
946
  });
940
947
  async function X() {
941
948
  await Y.tryRunSave(() => J.saveTemplate().catch((e) => l.config.onError?.(e)));
@@ -945,20 +952,20 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
945
952
  }), g(() => {
946
953
  w.destroy();
947
954
  }), r({
948
- getContent: () => N.content.value,
949
- setContent: (e) => N.setContent(e),
950
- setTheme: re,
951
- setThemeOverrides: q,
955
+ getContent: () => F.content.value,
956
+ setContent: (e) => F.setContent(e),
957
+ setTheme: ie,
958
+ setThemeOverrides: re,
952
959
  create: J.createTemplate,
953
960
  load: J.loadTemplate,
954
961
  save: J.saveTemplate,
955
- sendTestEmail: R.sendTestEmail
962
+ sendTestEmail: B.sendTestEmail
956
963
  }), (t, r) => (i(), p("div", {
957
964
  ref_key: "rootEl",
958
965
  ref: _,
959
- class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(N).state.darkMode }]),
960
- "data-tpl-theme": h(P).resolvedTheme.value,
961
- style: C(h(P).themeStyles.value)
966
+ class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(F).state.darkMode }]),
967
+ "data-tpl-theme": h(I).resolvedTheme.value,
968
+ style: C(h(I).themeStyles.value)
962
969
  }, [
963
970
  D(Ce),
964
971
  D(y, {
@@ -969,7 +976,7 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
969
976
  "leave-from-class": "tpl:opacity-100",
970
977
  "leave-to-class": "tpl:opacity-0"
971
978
  }, {
972
- default: s(() => [D(gt, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
979
+ default: s(() => [D(gt, { visible: h(E) || h(F).state.isLoading }, null, 8, ["visible"])]),
973
980
  _: 1
974
981
  }),
975
982
  D(y, {
@@ -981,8 +988,8 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
981
988
  "leave-to-class": "tpl:opacity-0"
982
989
  }, {
983
990
  default: s(() => [D(St, {
984
- error: h(O),
985
- visible: !!h(O) && !h(E),
991
+ error: h(k),
992
+ visible: !!h(k) && !h(E),
986
993
  onRetry: h(w).initialize
987
994
  }, null, 8, [
988
995
  "error",
@@ -992,18 +999,18 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
992
999
  _: 1
993
1000
  }),
994
1001
  D(dt, {
995
- editor: h(N),
996
- core: h(P),
997
- "feature-flags": h(F),
998
- "panel-state": h(V),
1002
+ editor: h(F),
1003
+ core: h(I),
1004
+ "feature-flags": h(L),
1005
+ "panel-state": h(H),
999
1006
  "snapshot-preview": h(U),
1000
- "comments-instance": h(z),
1001
- "test-email": h(R),
1002
- websocket: h(A),
1003
- collaboration: h(j),
1004
- "is-collaboration-enabled": h(M),
1005
- "is-saving": h(N).state.isSaving || h(F).isSaveExporting.value,
1006
- "is-save-disabled": h(N).state.isSaving || h(F).isSaveExporting.value || !h(N).state.isDirty,
1007
+ "comments-instance": h(te),
1008
+ "test-email": h(B),
1009
+ websocket: h(j),
1010
+ collaboration: h(N),
1011
+ "is-collaboration-enabled": h(P),
1012
+ "is-saving": h(F).state.isSaving || h(L).isSaveExporting.value,
1013
+ "is-save-disabled": h(F).state.isSaving || h(L).isSaveExporting.value || !h(F).state.isDirty,
1007
1014
  onSave: X
1008
1015
  }, null, 8, [
1009
1016
  "editor",
@@ -1033,12 +1040,8 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1033
1040
  D(Et, {
1034
1041
  visible: h(U).isPreviewingSnapshot.value,
1035
1042
  onCancel: h(U).cancelPreview,
1036
- onConfirm: h(U).confirmRestoreSnapshot
1037
- }, null, 8, [
1038
- "visible",
1039
- "onCancel",
1040
- "onConfirm"
1041
- ]),
1043
+ onConfirm: oe
1044
+ }, null, 8, ["visible", "onCancel"]),
1042
1045
  D(y, {
1043
1046
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
1044
1047
  "enter-from-class": "tpl:translate-y-[-8px] tpl:opacity-0",
@@ -1050,15 +1053,15 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1050
1053
  default: s(() => [D(Ot, { visible: h(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1051
1054
  _: 1
1052
1055
  }),
1053
- n(D(ke, null, null, 512), [[S, !h(N).state.previewMode]]),
1056
+ n(D(ke, null, null, 512), [[S, !h(F).state.previewMode]]),
1054
1057
  x("div", {
1055
- 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(U).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1058
+ class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(F).state.previewMode ? "tpl:left-0 tpl:right-0" : h(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(U).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1056
1059
  style: {
1057
1060
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1058
1061
  "background-color": "var(--tpl-canvas-bg)"
1059
1062
  }
1060
1063
  }, [x("div", At, [D(y, { name: "tpl-restore-btn" }, {
1061
- default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1064
+ default: s(() => [h(I).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1062
1065
  key: 0,
1063
1066
  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",
1064
1067
  style: {
@@ -1067,22 +1070,22 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1067
1070
  "border-color": "var(--tpl-warning)",
1068
1071
  "backdrop-filter": "blur(8px)"
1069
1072
  },
1070
- onClick: r[0] ||= (e) => h(P).conditionPreview.reset()
1073
+ onClick: r[0] ||= (e) => h(I).conditionPreview.reset()
1071
1074
  }, [D(h(be), {
1072
1075
  size: 13,
1073
1076
  "stroke-width": 2
1074
- }), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1077
+ }), T(" " + d(h(I).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1075
1078
  _: 1
1076
1079
  })]), x("main", jt, [D(Te, {
1077
- viewport: h(N).state.viewport,
1078
- content: h(N).content.value,
1079
- "selected-block-id": h(N).state.selectedBlockId,
1080
- "dark-mode": h(N).state.darkMode,
1081
- "preview-mode": h(N).state.previewMode,
1082
- "locked-blocks": h(j)?.lockedBlocks.value ?? void 0,
1083
- onSelectBlock: h(N).selectBlock,
1084
- onOpenAiChat: r[1] ||= (e) => h(V).aiChatOpen.value = !0,
1085
- onOpenDesignReference: r[2] ||= (e) => h(V).designReferenceOpen.value = !0
1080
+ viewport: h(F).state.viewport,
1081
+ content: h(F).content.value,
1082
+ "selected-block-id": h(F).state.selectedBlockId,
1083
+ "dark-mode": h(F).state.darkMode,
1084
+ "preview-mode": h(F).state.previewMode,
1085
+ "locked-blocks": h(N)?.lockedBlocks.value ?? void 0,
1086
+ onSelectBlock: h(F).selectBlock,
1087
+ onOpenAiChat: r[1] ||= (e) => h(H).aiChatOpen.value = !0,
1088
+ onOpenDesignReference: r[2] ||= (e) => h(H).designReferenceOpen.value = !0
1086
1089
  }, null, 8, [
1087
1090
  "viewport",
1088
1091
  "content",
@@ -1092,51 +1095,51 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1092
1095
  "locked-blocks",
1093
1096
  "onSelectBlock"
1094
1097
  ])])], 2),
1095
- e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(Ee, {
1098
+ e.config.branding !== !1 && !h(L).isWhiteLabeled.value ? (i(), v(Ee, {
1096
1099
  key: 0,
1097
- "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]"]
1100
+ "position-class": [h(F).state.previewMode ? "tpl:left-0 tpl:right-0" : h(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1098
1101
  }, null, 8, ["position-class"])) : m("", !0),
1099
1102
  x("div", {
1100
1103
  class: "tpl-sr-only",
1101
1104
  role: "status",
1102
1105
  "aria-live": "polite",
1103
1106
  "aria-atomic": "true",
1104
- "aria-label": h(P).t.landmarks.reorderAnnouncements
1105
- }, d(h(P).keyboardReorder.announcement.value), 9, Mt),
1107
+ "aria-label": h(I).t.landmarks.reorderAnnouncements
1108
+ }, d(h(I).keyboardReorder.announcement.value), 9, Mt),
1106
1109
  n(D(De, {
1107
- "selected-block": h(N).selectedBlock.value,
1108
- settings: h(N).content.value.settings,
1109
- "shifted-left": h(V).rightPanelOpen.value,
1110
- onUpdateBlock: r[3] ||= (e) => h(N).updateBlock(h(N).selectedBlock.value.id, e),
1111
- onDeleteBlock: r[4] ||= (e) => h(P).blockActions.deleteBlock(h(N).selectedBlock.value.id),
1112
- onDuplicateBlock: r[5] ||= (e) => h(P).blockActions.duplicateBlock(h(N).selectedBlock.value),
1113
- onUpdateSettings: h(N).updateSettings
1110
+ "selected-block": h(F).selectedBlock.value,
1111
+ settings: h(F).content.value.settings,
1112
+ "shifted-left": h(H).rightPanelOpen.value,
1113
+ onUpdateBlock: r[3] ||= (e) => h(F).updateBlock(h(F).selectedBlock.value.id, e),
1114
+ onDeleteBlock: r[4] ||= (e) => h(I).blockActions.deleteBlock(h(F).selectedBlock.value.id),
1115
+ onDuplicateBlock: r[5] ||= (e) => h(I).blockActions.duplicateBlock(h(F).selectedBlock.value),
1116
+ onUpdateSettings: h(F).updateSettings
1114
1117
  }, null, 8, [
1115
1118
  "selected-block",
1116
1119
  "settings",
1117
1120
  "shifted-left",
1118
1121
  "onUpdateSettings"
1119
- ]), [[S, !h(N).state.previewMode]]),
1120
- !h(E) && h(ee) ? (i(), v(ft, {
1122
+ ]), [[S, !h(F).state.previewMode]]),
1123
+ !h(E) && h(O) ? (i(), v(ft, {
1121
1124
  key: 1,
1122
1125
  ref_key: "cloudPanelsRef",
1123
1126
  ref: f,
1124
1127
  config: l.config,
1125
- editor: h(N),
1126
- core: h(P),
1127
- "panel-state": h(V),
1128
- "plan-config-instance": h(k),
1129
- "test-email": h(R),
1130
- "media-lib": h(I),
1131
- "saved-modules-headless": h(B),
1128
+ editor: h(F),
1129
+ core: h(I),
1130
+ "panel-state": h(H),
1131
+ "plan-config-instance": h(A),
1132
+ "test-email": h(B),
1133
+ "media-lib": h(z),
1134
+ "saved-modules-headless": h(V),
1132
1135
  "show-save-module-dialog": h(W),
1133
1136
  "save-module-pre-selected-block-id": h(K),
1134
1137
  "show-module-browser-modal": h(G),
1135
1138
  "onUpdate:showSaveModuleDialog": r[6] ||= (e) => W.value = e,
1136
1139
  "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => K.value = e,
1137
1140
  "onUpdate:showModuleBrowserModal": r[8] ||= (e) => G.value = e,
1138
- onSendTestEmail: ie,
1139
- onModuleInsert: ae
1141
+ onSendTestEmail: ae,
1142
+ onModuleInsert: q
1140
1143
  }, null, 8, [
1141
1144
  "config",
1142
1145
  "editor",
@@ -1151,14 +1154,14 @@ var Ve = ["aria-label"], He = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1151
1154
  "show-module-browser-modal"
1152
1155
  ])) : m("", !0),
1153
1156
  x("div", {
1154
- ref: (e) => h(P).popoverRoot.value = e,
1157
+ ref: (e) => h(I).popoverRoot.value = e,
1155
1158
  class: "tpl-popover-root"
1156
1159
  }, null, 512),
1157
1160
  D(Ae)
1158
1161
  ], 14, kt));
1159
1162
  }
1160
- }), [["__scopeId", "data-v-ae54dc42"]]);
1163
+ }), [["__scopeId", "data-v-3a8bb0e8"]]);
1161
1164
  //#endregion
1162
1165
  export { Nt as default };
1163
1166
 
1164
- //# sourceMappingURL=CloudEditor-xc_uOEgn.js.map
1167
+ //# sourceMappingURL=CloudEditor-KkwvBhyt.js.map