@templatical/editor 0.26.3 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/{AiChatSidebar-CMBz6Wix.js → AiChatSidebar-iVJDzqjr.js} +60 -60
- package/dist/AiFeatureMenu-DrLGc2H2.js +57 -0
- package/dist/{BlockIssueBadge-Buk3_6QF.js → BlockIssueBadge-BHysq7XQ.js} +11 -11
- package/dist/BlockPreviewCanvas-2WASf5A4.js +121 -0
- package/dist/CloudHeaderExtras-DWApyc4P.js +59 -0
- package/dist/CloudPanels-DvOhGdRj.js +232 -0
- package/dist/{CollaboratorBar-BGwbg9aN.js → CollaboratorBar-C6MC0UCk.js} +21 -21
- package/dist/ColorPicker-Di8L5TLQ.js +501 -0
- package/dist/CommentsPanel-D5wQB1Kf.js +18 -0
- package/dist/CommentsSidebar-BoTIxpLE.js +481 -0
- package/dist/{cdn/chunks/CountdownBlock-vLTkTI9e.js → CountdownBlock-BFX8iU90.js} +19 -21
- package/dist/{cdn/chunks/CountdownToolbar-DPjcgcVR.js → CountdownToolbar-d9QM4m5x.js} +52 -53
- package/dist/{DesignReferenceSidebar-Bx96XFmK.js → DesignReferenceSidebar-DKsx2TiL.js} +72 -71
- package/dist/{IssuesPanel-Do7RLXsP.js → IssuesPanel-flKKwKpM.js} +38 -38
- package/dist/{LoadingTrack-BexpNuTV.js → LoadingTrack-C2T8ixEL.js} +3 -3
- package/dist/{MergeTagModeToggle-P-UguQHc.js → MergeTagModeToggle-PKCoKAoF.js} +43 -43
- package/dist/{MergeTagSuggestion-BJ43ihWR.js → MergeTagSuggestion-DGha0WRp.js} +46 -46
- package/dist/{cdn/chunks/NumberWithSuffix-BXrRdfq1.js → NumberWithSuffix-D9mPtMJB.js} +42 -44
- package/dist/{ParagraphEditor-6WN5jmXr.js → ParagraphEditor-iwTjkjtx.js} +200 -198
- package/dist/RestoreVersionDialog-DyMPGfsr.js +86 -0
- package/dist/{RichTextEditorContent-fbYJXAio.js → RichTextEditorContent-BVXG9oF4.js} +44 -44
- package/dist/SaveBlockDialog-BMCAIfK9.js +266 -0
- package/dist/{SavedBlocksBrowserModal-GMrajvfV.js → SavedBlocksBrowserModal-p5ma1qay.js} +116 -115
- package/dist/{cdn/chunks/SavedBlocksPanels-CUtYoi5Z.js → SavedBlocksPanels-BsiSstsZ.js} +9 -11
- package/dist/{SavedBlocksPickBar-Dk_IaMO9.js → SavedBlocksPickBar-fU4Mjm-8.js} +17 -17
- package/dist/{TemplateScoringPanel-BZUsb3FD.js → TemplateScoringPanel-Bv_bBsJi.js} +87 -87
- package/dist/TestEmailModal-EFYcrmTk.js +206 -0
- package/dist/{cdn/chunks/TestEmailPanel-B8y7JabA.js → TestEmailPanel-ljriUqs1.js} +4 -6
- package/dist/TitleEditor-BqRW7HTz.js +198 -0
- package/dist/TplModal-CTC9-w6B.js +49 -0
- package/dist/VersionHistoryMenu-Cq4rH56t.js +155 -0
- package/dist/VersionHistoryPanels-GkxkBiSi.js +46 -0
- package/dist/VersionPreviewBanner-BdtTu9mI.js +38 -0
- package/dist/{blockTypeIcons-C7wRSaT3.js → blockTypeIcons-CIrMr1SJ.js} +6 -6
- package/dist/bundle-stats.json +8 -8
- package/dist/{ca-D1zgI9fQ.js → ca-CEuJ6IRr.js} +73 -106
- package/dist/cdn/chunks/{AiChatSidebar-CQ8KUmNB.js → AiChatSidebar-DTUoBH5a.js} +54 -54
- package/dist/cdn/chunks/AiChatSidebar-DTUoBH5a.js.map +1 -0
- package/dist/cdn/chunks/AiFeatureMenu-BQz9Kczt.js +57 -0
- package/dist/cdn/chunks/AiFeatureMenu-BQz9Kczt.js.map +1 -0
- package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js → BlockIssueBadge-UzSSOM_2.js} +13 -13
- package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js.map → BlockIssueBadge-UzSSOM_2.js.map} +1 -1
- package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js → BlockPreviewCanvas-40ocpXDD.js} +42 -42
- package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js.map → BlockPreviewCanvas-40ocpXDD.js.map} +1 -1
- package/dist/cdn/chunks/CloudHeaderExtras-F_ySlW1S.js +60 -0
- package/dist/cdn/chunks/CloudHeaderExtras-F_ySlW1S.js.map +1 -0
- package/dist/cdn/chunks/CloudPanels-C34bcHpc.js +232 -0
- package/dist/cdn/chunks/CloudPanels-C34bcHpc.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-G_sZDZXw.js → CollaboratorBar-WBtrPPnM.js} +22 -22
- package/dist/cdn/chunks/CollaboratorBar-WBtrPPnM.js.map +1 -0
- package/dist/cdn/chunks/ColorPicker-CxKYd_8N.js +502 -0
- package/dist/cdn/chunks/ColorPicker-CxKYd_8N.js.map +1 -0
- package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js +20 -0
- package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js.map +1 -0
- package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js +460 -0
- package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js.map +1 -0
- package/dist/{CountdownBlock-DuyvGcr8.js → cdn/chunks/CountdownBlock-BYSrJWxg.js} +25 -23
- package/dist/cdn/chunks/{CountdownBlock-vLTkTI9e.js.map → CountdownBlock-BYSrJWxg.js.map} +1 -1
- package/dist/{CountdownToolbar-CBE9wRaV.js → cdn/chunks/CountdownToolbar-pVbkPNVo.js} +66 -63
- package/dist/cdn/chunks/{CountdownToolbar-DPjcgcVR.js.map → CountdownToolbar-pVbkPNVo.js.map} +1 -1
- package/dist/cdn/chunks/{DesignReferenceSidebar-B-HFXV0W.js → DesignReferenceSidebar-sZWciECR.js} +64 -64
- package/dist/cdn/chunks/DesignReferenceSidebar-sZWciECR.js.map +1 -0
- package/dist/cdn/chunks/{IssuesPanel-DKTS4QVb.js → IssuesPanel-CHtetM9i.js} +36 -36
- package/dist/cdn/chunks/IssuesPanel-CHtetM9i.js.map +1 -0
- package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js → LoadingTrack-Dp_QZvAK.js} +3 -3
- package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js.map → LoadingTrack-Dp_QZvAK.js.map} +1 -1
- package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js → MergeTagModeToggle-ZwW-5EeN.js} +39 -39
- package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js.map → MergeTagModeToggle-ZwW-5EeN.js.map} +1 -1
- package/dist/cdn/chunks/{MergeTagSuggestion-Dn8dExNa.js → MergeTagSuggestion-DhllqTA3.js} +47 -47
- package/dist/cdn/chunks/MergeTagSuggestion-DhllqTA3.js.map +1 -0
- package/dist/{NumberWithSuffix-D37ZWiZh.js → cdn/chunks/NumberWithSuffix-mm6AfIv4.js} +37 -35
- package/dist/cdn/chunks/NumberWithSuffix-mm6AfIv4.js.map +1 -0
- package/dist/cdn/chunks/{ParagraphEditor-CZ5Z6AgG.js → ParagraphEditor-BBcIQQK2.js} +234 -233
- package/dist/cdn/chunks/ParagraphEditor-BBcIQQK2.js.map +1 -0
- package/dist/cdn/chunks/RestoreVersionDialog-DNUZHFa_.js +87 -0
- package/dist/cdn/chunks/RestoreVersionDialog-DNUZHFa_.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-DtL49Jpo.js → RichTextEditorContent-Cl-acKAD.js} +44 -44
- package/dist/cdn/chunks/RichTextEditorContent-Cl-acKAD.js.map +1 -0
- package/dist/cdn/chunks/SaveBlockDialog-BXTZ729e.js +265 -0
- package/dist/cdn/chunks/SaveBlockDialog-BXTZ729e.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-BkQXEUE2.js → SavedBlocksBrowserModal-BqGNBpRR.js} +114 -113
- package/dist/cdn/chunks/SavedBlocksBrowserModal-BqGNBpRR.js.map +1 -0
- package/dist/{SavedBlocksPanels-DEPmNhi6.js → cdn/chunks/SavedBlocksPanels-nbK0UQTp.js} +11 -9
- package/dist/cdn/chunks/{SavedBlocksPanels-CUtYoi5Z.js.map → SavedBlocksPanels-nbK0UQTp.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPickBar-C80qJykl.js → SavedBlocksPickBar-B9mbw3Gk.js} +17 -17
- package/dist/cdn/chunks/SavedBlocksPickBar-B9mbw3Gk.js.map +1 -0
- package/dist/cdn/chunks/{TemplateScoringPanel-NucRtAP0.js → TemplateScoringPanel-Xdkp2EMY.js} +81 -81
- package/dist/cdn/chunks/TemplateScoringPanel-Xdkp2EMY.js.map +1 -0
- package/dist/cdn/chunks/TestEmailModal-DE6fi3he.js +206 -0
- package/dist/cdn/chunks/TestEmailModal-DE6fi3he.js.map +1 -0
- package/dist/{TestEmailPanel-DubocPxf.js → cdn/chunks/TestEmailPanel-CAjQDXle.js} +6 -4
- package/dist/cdn/chunks/{TestEmailPanel-B8y7JabA.js.map → TestEmailPanel-CAjQDXle.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-C8WDXf4P.js → TitleEditor-BP0ewaWF.js} +83 -83
- package/dist/cdn/chunks/TitleEditor-BP0ewaWF.js.map +1 -0
- package/dist/cdn/chunks/TplModal-C4kJduTr.js +50 -0
- package/dist/cdn/chunks/TplModal-C4kJduTr.js.map +1 -0
- package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js +148 -0
- package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js.map +1 -0
- package/dist/cdn/chunks/VersionHistoryPanels-DMq2PRee.js +48 -0
- package/dist/cdn/chunks/VersionHistoryPanels-DMq2PRee.js.map +1 -0
- package/dist/cdn/chunks/VersionPreviewBanner-04CL1SGY.js +40 -0
- package/dist/cdn/chunks/VersionPreviewBanner-04CL1SGY.js.map +1 -0
- package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js → blockTypeIcons-hX_W4dqo.js} +2 -2
- package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js.map → blockTypeIcons-hX_W4dqo.js.map} +1 -1
- package/dist/cdn/chunks/{ca-D1zgI9fQ.js → ca-CEuJ6IRr.js} +74 -107
- package/dist/cdn/chunks/ca-CEuJ6IRr.js.map +1 -0
- package/dist/{cloud-qINCmQbn.js → cdn/chunks/cloud-BA0OpRh-.js} +400 -609
- package/dist/cdn/chunks/cloud-BA0OpRh-.js.map +1 -0
- package/dist/cdn/chunks/createCloudRuntime-gXA8_QRU.js +344 -0
- package/dist/cdn/chunks/createCloudRuntime-gXA8_QRU.js.map +1 -0
- package/dist/{de-uVoSP1xF.js → cdn/chunks/de-BytZwgn6.js} +4 -88
- package/dist/cdn/chunks/de-BytZwgn6.js.map +1 -0
- package/dist/{de-DHra3lvx.js → cdn/chunks/de-aRxhZF_K.js} +75 -106
- package/dist/cdn/chunks/de-aRxhZF_K.js.map +1 -0
- package/dist/cdn/chunks/{dist-B2HKGHnc.js → dist-CM8TB0VD.js} +136 -136
- package/dist/cdn/chunks/{dist-B2HKGHnc.js.map → dist-CM8TB0VD.js.map} +1 -1
- package/dist/cdn/chunks/{dist-C6z8AjBC.js → dist-CYLJiSiH.js} +63 -63
- package/dist/cdn/chunks/{dist-C6z8AjBC.js.map → dist-CYLJiSiH.js.map} +1 -1
- package/dist/cdn/chunks/{draggable-DCs9qL-b.js → draggable-BfpsXFg7.js} +916 -905
- package/dist/cdn/chunks/{draggable-DCs9qL-b.js.map → draggable-BfpsXFg7.js.map} +1 -1
- package/dist/cdn/chunks/{en-DE_y1YWU.js → en-BCgVx9zM.js} +4 -3
- package/dist/cdn/chunks/{en-DE_y1YWU.js.map → en-BCgVx9zM.js.map} +1 -1
- package/dist/{en-DlqX2YWZ.js → cdn/chunks/en-BX4V_7YO.js} +75 -106
- package/dist/cdn/chunks/en-BX4V_7YO.js.map +1 -0
- package/dist/{en-CjhsJxb-.js → cdn/chunks/en-DyOSV0lY.js} +4 -88
- package/dist/cdn/chunks/en-DyOSV0lY.js.map +1 -0
- package/dist/{es-Cuss2snv.js → cdn/chunks/es-CA9uQ-5x.js} +75 -106
- package/dist/cdn/chunks/es-CA9uQ-5x.js.map +1 -0
- package/dist/cdn/chunks/{extensions-qhcN3RMT.js → extensions-CMcVw2uu.js} +53 -53
- package/dist/cdn/chunks/{extensions-qhcN3RMT.js.map → extensions-CMcVw2uu.js.map} +1 -1
- package/dist/{fr-Cm85vB2g.js → cdn/chunks/fr-iBuE60Ap.js} +75 -106
- package/dist/cdn/chunks/fr-iBuE60Ap.js.map +1 -0
- package/dist/cdn/chunks/{icons-CvYN6zrM.js → icons-C36Ha5VU.js} +11 -11
- package/dist/cdn/chunks/{icons-CvYN6zrM.js.map → icons-C36Ha5VU.js.map} +1 -1
- package/dist/{keys-fwF3qZax.js → cdn/chunks/keys-CbQuRX85.js} +6 -4
- package/dist/cdn/chunks/keys-CbQuRX85.js.map +1 -0
- package/dist/cdn/chunks/logger-ByvdoAwq.js +23 -0
- package/dist/cdn/chunks/logger-ByvdoAwq.js.map +1 -0
- package/dist/{nl-dmiIX7oT.js → cdn/chunks/nl-Btw4ojNo.js} +75 -106
- package/dist/cdn/chunks/nl-Btw4ojNo.js.map +1 -0
- package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js +23 -0
- package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js.map +1 -0
- package/dist/{pt-BR-CTzHTqJD.js → cdn/chunks/pt-BR-C1WLSGDh.js} +4 -88
- package/dist/cdn/chunks/pt-BR-C1WLSGDh.js.map +1 -0
- package/dist/{pt-BR-CaIG-7EM.js → cdn/chunks/pt-BR-GjVsCqbN.js} +75 -106
- package/dist/cdn/chunks/pt-BR-GjVsCqbN.js.map +1 -0
- package/dist/cdn/chunks/src-B_QJduQD.js.map +1 -1
- package/dist/cdn/chunks/{src-xkGep9eN.js → src-CoHDh8Ua.js} +1485 -1483
- package/dist/cdn/chunks/src-CoHDh8Ua.js.map +1 -0
- package/dist/cdn/chunks/{src-BwbnXShT.js → src-Ct4Fsx3t.js} +148 -134
- package/dist/cdn/chunks/src-Ct4Fsx3t.js.map +1 -0
- package/dist/cdn/chunks/styleConstants-9oK5kn21.js +59 -0
- package/dist/cdn/chunks/styleConstants-9oK5kn21.js.map +1 -0
- package/dist/cdn/chunks/timeouts-DHPZQ0G3.js +6 -0
- package/dist/cdn/chunks/timeouts-DHPZQ0G3.js.map +1 -0
- package/dist/cdn/chunks/{tiptap-C44S1Cmh.js → tiptap-DmpGap5g.js} +40 -40
- package/dist/cdn/chunks/{tiptap-C44S1Cmh.js.map → tiptap-DmpGap5g.js.map} +1 -1
- package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js → useAliveFlag-Dtm174fG.js} +2 -2
- package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js.map → useAliveFlag-Dtm174fG.js.map} +1 -1
- package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js → useCloudI18n-NVa1aeY8.js} +5 -5
- package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js.map → useCloudI18n-NVa1aeY8.js.map} +1 -1
- package/dist/cdn/chunks/{useEditorCore-CcgxY-Gy.js → useEditorCore-DC8gmfs6.js} +1434 -1147
- package/dist/cdn/chunks/useEditorCore-DC8gmfs6.js.map +1 -0
- package/dist/cdn/chunks/{useI18n-UMs0F71x.js → useI18n-DVWCJJFH.js} +5 -5
- package/dist/cdn/chunks/{useI18n-UMs0F71x.js.map → useI18n-DVWCJJFH.js.map} +1 -1
- package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js → useMergeTag-BfZBRPQp.js} +4 -4
- package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js.map → useMergeTag-BfZBRPQp.js.map} +1 -1
- package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js → usePopoverPosition-BC-HA7TK.js} +3 -3
- package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js.map → usePopoverPosition-BC-HA7TK.js.map} +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +5119 -284
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{check-On4TSac-.js → check-DZbmkMQe.js} +1 -1
- package/dist/{chevron-down-69EiBGoB.js → chevron-down-nYScOLeZ.js} +1 -1
- package/dist/{chevron-up-Dh3MG1Dw.js → chevron-up-CpYpDLnc.js} +1 -1
- package/dist/{circle-alert-cilwzafX.js → circle-alert-CuuK6thq.js} +1 -1
- package/dist/{clock-Dt0APH92.js → clock-DxkrtqOr.js} +1 -1
- package/dist/cloud-BAefVBb_.js +1444 -0
- package/dist/createCloudRuntime-Bt8W-ajI.js +342 -0
- package/dist/{createLucideIcon-C8WzBYCv.js → createLucideIcon-L-wQXW_R.js} +9 -9
- package/dist/{cdn/chunks/de-uVoSP1xF.js → de-BytZwgn6.js} +2 -90
- package/dist/{cdn/chunks/de-DHra3lvx.js → de-aRxhZF_K.js} +73 -108
- package/dist/dist-B5iReTtK.js +251 -0
- package/dist/{dist-Cl8J0IES.js → dist-Ck9roB6K.js} +42 -42
- package/dist/{dist-BpKxrUi2.js → dist-CqcGTIiX.js} +46 -46
- package/dist/{cdn/chunks/en-DlqX2YWZ.js → en-BX4V_7YO.js} +73 -108
- package/dist/{cdn/chunks/en-CjhsJxb-.js → en-DyOSV0lY.js} +2 -90
- package/dist/{cdn/chunks/es-Cuss2snv.js → es-CA9uQ-5x.js} +73 -108
- package/dist/{extensions-Cwg9S-0f.js → extensions-CX87G4aL.js} +42 -42
- package/dist/{cdn/chunks/fr-Cm85vB2g.js → fr-iBuE60Ap.js} +73 -108
- package/dist/{image-up-Ceggh_R3.js → image-up-DouZRGVt.js} +1 -1
- package/dist/index.d.ts +499 -23
- package/dist/{info-DO5odBcZ.js → info-puX5V6Iq.js} +1 -1
- package/dist/{cdn/chunks/keys-Cmc2Yl3D.js → keys-BxixS0TN.js} +4 -6
- package/dist/{list-checks-BSkPKbuI.js → list-checks-jw-ZlvWY.js} +1 -1
- package/dist/{loader-circle-bO7o7_HD.js → loader-circle-DqTxB7Kr.js} +1 -1
- package/dist/logger-BBlvSn6q.js +21 -0
- package/dist/{message-circle-BEkAk65X.js → message-circle-BZ7YpB22.js} +1 -1
- package/dist/{cdn/chunks/nl-dmiIX7oT.js → nl-Btw4ojNo.js} +73 -108
- package/dist/{pencil-t6m0EtKL.js → pencil-DmbRhTJu.js} +1 -1
- package/dist/preRenderCustomBlocks-BebjKtmw.js +21 -0
- package/dist/{cdn/chunks/pt-BR-CTzHTqJD.js → pt-BR-C1WLSGDh.js} +2 -90
- package/dist/{cdn/chunks/pt-BR-CaIG-7EM.js → pt-BR-GjVsCqbN.js} +73 -108
- package/dist/{refresh-cw-CkOYVzK5.js → refresh-cw-OK_O-cL0.js} +1 -1
- package/dist/{runtime-dom.esm-bundler-CepEmvwF.js → runtime-dom.esm-bundler-BgKXIPLV.js} +144 -144
- package/dist/{scan-line-DwSVj25O.js → scan-line-DyaSTsJ5.js} +1 -1
- package/dist/{send-CWsWN8PQ.js → send-B-wasJJC.js} +1 -1
- package/dist/{shield-check-qje8Kufw.js → shield-check-DUIyRrTo.js} +1 -1
- package/dist/{sparkles-DumaWRW-.js → sparkles-DYEMATWC.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/styleConstants-9oK5kn21.js +57 -0
- package/dist/templatical-editor.js +5319 -289
- package/dist/{text-align-start-Ir8Ah4mT.js → text-align-start-CzjLeBLe.js} +1 -1
- package/dist/timeouts-DHPZQ0G3.js +4 -0
- package/dist/{trash-2-CklAFCmO.js → trash-2-C0shEPry.js} +1 -1
- package/dist/{triangle-alert-BBi4n93g.js → triangle-alert-Fw0ce8oQ.js} +1 -1
- package/dist/{upload-sVqqppuv.js → upload-D69C2CBx.js} +3 -4
- package/dist/{useAliveFlag-cvyBxHp7.js → useAliveFlag-BGIAZii_.js} +1 -1
- package/dist/{useCloudI18n-DKVm6PCa.js → useCloudI18n-CAZTZ9_a.js} +2 -2
- package/dist/{useEditorCore-P4UkhcyS.js → useEditorCore-CFLzobo_.js} +1604 -1320
- package/dist/{useI18n-DoVKdCTH.js → useI18n-BfXff_Sy.js} +2 -2
- package/dist/{useMergeTag-CYZk7dZD.js → useMergeTag-Dd4I7kge.js} +3 -3
- package/dist/usePopoverPosition-CxhCX3SQ.js +59 -0
- package/dist/{vue.runtime.esm-bundler-D1diBMsm.js → vue.runtime.esm-bundler-DzEsDRtY.js} +447 -436
- package/dist/{x-Mby7KlhS.js → x-BjTlFqRv.js} +1 -1
- package/package.json +8 -8
- package/dist/AiFeatureMenu-Cy-PVrNT.js +0 -63
- package/dist/BlockPreviewCanvas-BZKslwGI.js +0 -121
- package/dist/CloudEditor-CPRkQCRa.js +0 -1188
- package/dist/ColorPicker-ClETsjA3.js +0 -550
- package/dist/CommentsSidebar-CdRCCSDD.js +0 -435
- package/dist/SaveBlockDialog-21vDlEBS.js +0 -265
- package/dist/SnapshotHistory-Cb4WW2gf.js +0 -128
- package/dist/TestEmailModal-BHDKmd6B.js +0 -205
- package/dist/TitleEditor-Cy4B3UNe.js +0 -198
- package/dist/TplModal-Dv9zgSWI.js +0 -49
- package/dist/cdn/chunks/AiChatSidebar-CQ8KUmNB.js.map +0 -1
- package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js +0 -63
- package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js.map +0 -1
- package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js +0 -1166
- package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js.map +0 -1
- package/dist/cdn/chunks/CollaboratorBar-G_sZDZXw.js.map +0 -1
- package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js +0 -552
- package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js.map +0 -1
- package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js +0 -412
- package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js.map +0 -1
- package/dist/cdn/chunks/DesignReferenceSidebar-B-HFXV0W.js.map +0 -1
- package/dist/cdn/chunks/IssuesPanel-DKTS4QVb.js.map +0 -1
- package/dist/cdn/chunks/MergeTagSuggestion-Dn8dExNa.js.map +0 -1
- package/dist/cdn/chunks/NumberWithSuffix-BXrRdfq1.js.map +0 -1
- package/dist/cdn/chunks/ParagraphEditor-CZ5Z6AgG.js.map +0 -1
- package/dist/cdn/chunks/RichTextEditorContent-DtL49Jpo.js.map +0 -1
- package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js +0 -264
- package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksBrowserModal-BkQXEUE2.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksPickBar-C80qJykl.js.map +0 -1
- package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js +0 -121
- package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js.map +0 -1
- package/dist/cdn/chunks/TemplateScoringPanel-NucRtAP0.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js +0 -205
- package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js.map +0 -1
- package/dist/cdn/chunks/TitleEditor-C8WDXf4P.js.map +0 -1
- package/dist/cdn/chunks/TplModal-Ce0QuHyo.js +0 -50
- package/dist/cdn/chunks/TplModal-Ce0QuHyo.js.map +0 -1
- package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +0 -1
- package/dist/cdn/chunks/cloud-DcC8bPwn.js +0 -1787
- package/dist/cdn/chunks/cloud-DcC8bPwn.js.map +0 -1
- package/dist/cdn/chunks/de-DHra3lvx.js.map +0 -1
- package/dist/cdn/chunks/de-uVoSP1xF.js.map +0 -1
- package/dist/cdn/chunks/en-CjhsJxb-.js.map +0 -1
- package/dist/cdn/chunks/en-DlqX2YWZ.js.map +0 -1
- package/dist/cdn/chunks/es-Cuss2snv.js.map +0 -1
- package/dist/cdn/chunks/fr-Cm85vB2g.js.map +0 -1
- package/dist/cdn/chunks/keys-Cmc2Yl3D.js.map +0 -1
- package/dist/cdn/chunks/nl-dmiIX7oT.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-CTzHTqJD.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +0 -1
- package/dist/cdn/chunks/src-BwbnXShT.js.map +0 -1
- package/dist/cdn/chunks/src-xkGep9eN.js.map +0 -1
- package/dist/cdn/chunks/styles-DLAfU4Uf.js +0 -4140
- package/dist/cdn/chunks/styles-DLAfU4Uf.js.map +0 -1
- package/dist/cdn/chunks/timeouts-SsLMC4a3.js +0 -6
- package/dist/cdn/chunks/timeouts-SsLMC4a3.js.map +0 -1
- package/dist/cdn/chunks/useEditorCore-CcgxY-Gy.js.map +0 -1
- package/dist/styles-Dx__pP9O.js +0 -4318
- package/dist/usePopoverPosition-C0dPEF4X.js +0 -308
package/README.md
CHANGED
|
@@ -85,7 +85,9 @@ See the [Shadow DOM guide](https://docs.templatical.com/guide/shadow-dom) for tr
|
|
|
85
85
|
|
|
86
86
|
## Cloud features
|
|
87
87
|
|
|
88
|
-
For AI
|
|
88
|
+
For AI features and real-time collaboration, use `initCloud()` instead. See the [Cloud guide](https://docs.templatical.com/cloud/getting-started).
|
|
89
|
+
|
|
90
|
+
Comments, version history, saved blocks, test email and rendering are **not** cloud-only — configure each against your own backend with `init()`. See [Bring your own backend](https://docs.templatical.com/backend/).
|
|
89
91
|
|
|
90
92
|
## Documentation
|
|
91
93
|
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as
|
|
3
|
-
import { m as ie, p as ae } from "./dist-
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import { t as
|
|
9
|
-
import { t as
|
|
10
|
-
import { t as
|
|
11
|
-
import { t as
|
|
12
|
-
import { t as
|
|
1
|
+
import { B as e, Dt as t, L as n, S as r, T as ee, X as i, c as a, d as o, g as s, h as c, j as l, k as u, kt as d, l as f, r as p, rt as m, u as h, v as g, z as te } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
|
|
2
|
+
import { a as ne, t as re } from "./runtime-dom.esm-bundler-BgKXIPLV.js";
|
|
3
|
+
import { m as ie, p as ae } from "./dist-CqcGTIiX.js";
|
|
4
|
+
import { T as oe, W as _, h as se, i as v, l as ce } from "./keys-BxixS0TN.js";
|
|
5
|
+
import { t as y } from "./createLucideIcon-L-wQXW_R.js";
|
|
6
|
+
import { t as le } from "./circle-alert-CuuK6thq.js";
|
|
7
|
+
import { t as ue } from "./loader-circle-DqTxB7Kr.js";
|
|
8
|
+
import { t as de } from "./send-B-wasJJC.js";
|
|
9
|
+
import { t as b } from "./sparkles-DYEMATWC.js";
|
|
10
|
+
import { t as fe } from "./trash-2-C0shEPry.js";
|
|
11
|
+
import { t as pe } from "./x-BjTlFqRv.js";
|
|
12
|
+
import { t as me } from "./LoadingTrack-C2T8ixEL.js";
|
|
13
13
|
import { t as x } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
14
|
-
import { t as S } from "./useAliveFlag-
|
|
15
|
-
import {
|
|
16
|
-
var w =
|
|
14
|
+
import { t as S } from "./useAliveFlag-BGIAZii_.js";
|
|
15
|
+
import { f as C } from "./cloud-BAefVBb_.js";
|
|
16
|
+
var w = y("redo-2", [["path", {
|
|
17
17
|
d: "m15 14 5-5-5-5",
|
|
18
18
|
key: "12vg1m"
|
|
19
19
|
}], ["path", {
|
|
20
20
|
d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
|
|
21
21
|
key: "6uklza"
|
|
22
|
-
}]]), T =
|
|
22
|
+
}]]), T = y("undo-2", [["path", {
|
|
23
23
|
d: "M9 14 4 9l5-5",
|
|
24
24
|
key: "102s5s"
|
|
25
25
|
}], ["path", {
|
|
@@ -72,20 +72,20 @@ var w = v("redo-2", [["path", {
|
|
|
72
72
|
"background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
|
|
73
73
|
"backdrop-filter": "blur(2px)"
|
|
74
74
|
}
|
|
75
|
-
}, _e = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, ve = ["onClick"], ye = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, be = { class: "tpl-ai-input-wrapper tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, xe = ["placeholder", "disabled"], Se = ["disabled"], Ce = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, B = /*#__PURE__*/ x(/* @__PURE__ */
|
|
75
|
+
}, _e = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, ve = ["onClick"], ye = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, be = { class: "tpl-ai-input-wrapper tpl-focus-ring-host tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, xe = ["placeholder", "disabled"], Se = ["disabled"], Ce = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, B = /*#__PURE__*/ x(/* @__PURE__ */ g({
|
|
76
76
|
__name: "AiChatSidebar",
|
|
77
77
|
props: {
|
|
78
78
|
visible: { type: Boolean },
|
|
79
79
|
onApply: { type: Function }
|
|
80
80
|
},
|
|
81
81
|
emits: ["close"],
|
|
82
|
-
setup(
|
|
83
|
-
let x =
|
|
82
|
+
setup(g, { emit: y }) {
|
|
83
|
+
let x = g, B = y, V = _(ce, "AiChatSidebar"), H = _(se, "AiChatSidebar"), we = _(v, "AiChatSidebar"), U = r(oe, []), W = S(), G = C({
|
|
84
84
|
authManager: we,
|
|
85
85
|
getTemplateId: () => H.state.template?.id ?? null,
|
|
86
86
|
onApply: x.onApply,
|
|
87
87
|
onError: void 0
|
|
88
|
-
}), K =
|
|
88
|
+
}), K = i(""), q = i(null), J = i(!1), Y = i(0), { pause: X, resume: Te } = ae(() => {
|
|
89
89
|
let e = G.suggestions.value?.length ?? 0;
|
|
90
90
|
Y.value < e ? Y.value++ : X();
|
|
91
91
|
}, 150, { immediate: !1 }), { start: Ee } = ie(() => Te(), 100, { immediate: !1 });
|
|
@@ -97,7 +97,7 @@ var w = v("redo-2", [["path", {
|
|
|
97
97
|
Y.value = 0, Ee();
|
|
98
98
|
});
|
|
99
99
|
function Z() {
|
|
100
|
-
|
|
100
|
+
ee(() => {
|
|
101
101
|
q.value && (q.value.scrollTop = q.value.scrollHeight);
|
|
102
102
|
});
|
|
103
103
|
}
|
|
@@ -120,7 +120,7 @@ var w = v("redo-2", [["path", {
|
|
|
120
120
|
function Oe(e) {
|
|
121
121
|
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Q());
|
|
122
122
|
}
|
|
123
|
-
return (n,
|
|
123
|
+
return (n, r) => (u(), f(re, {
|
|
124
124
|
"enter-active-class": "tpl-ai-slide-enter-active",
|
|
125
125
|
"enter-from-class": "tpl:translate-x-full",
|
|
126
126
|
"enter-to-class": "tpl:translate-x-0",
|
|
@@ -128,65 +128,65 @@ var w = v("redo-2", [["path", {
|
|
|
128
128
|
"leave-from-class": "tpl:translate-x-0",
|
|
129
129
|
"leave-to-class": "tpl:translate-x-full"
|
|
130
130
|
}, {
|
|
131
|
-
default:
|
|
132
|
-
|
|
131
|
+
default: te(() => [g.visible ? (u(), o("div", E, [
|
|
132
|
+
a("div", D, [a("div", O, [s(m(b), {
|
|
133
133
|
size: 13,
|
|
134
134
|
"stroke-width": 2
|
|
135
|
-
}),
|
|
135
|
+
}), a("span", null, d(m(V).aiChat.title), 1)]), a("div", k, [(m(G).messages.value?.length ?? 0) > 0 ? (u(), o("button", {
|
|
136
136
|
key: 0,
|
|
137
|
-
class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:
|
|
138
|
-
title:
|
|
139
|
-
onClick:
|
|
140
|
-
}, [
|
|
137
|
+
class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:text-[var(--tpl-text-muted)]",
|
|
138
|
+
title: m(V).aiChat.clear,
|
|
139
|
+
onClick: r[0] ||= (e) => m(G).clearChat()
|
|
140
|
+
}, [s(m(fe), {
|
|
141
141
|
size: 14,
|
|
142
142
|
"stroke-width": 2
|
|
143
|
-
})], 8, A)) :
|
|
144
|
-
class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:
|
|
145
|
-
onClick:
|
|
146
|
-
}, [
|
|
143
|
+
})], 8, A)) : h("", !0), a("button", {
|
|
144
|
+
class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:text-[var(--tpl-text-muted)]",
|
|
145
|
+
onClick: r[1] ||= (e) => B("close")
|
|
146
|
+
}, [s(m(pe), {
|
|
147
147
|
size: 14,
|
|
148
148
|
"stroke-width": 2
|
|
149
149
|
})])])]),
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
a("div", j, [
|
|
151
|
+
a("div", {
|
|
152
152
|
ref_key: "messagesContainer",
|
|
153
153
|
ref: q,
|
|
154
154
|
class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
|
|
155
|
-
}, [
|
|
155
|
+
}, [m(G).isLoadingHistory.value ? (u(), o("div", M, [s(m(ue), {
|
|
156
156
|
class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
|
|
157
157
|
size: 24,
|
|
158
158
|
"stroke-width": 2
|
|
159
|
-
}),
|
|
159
|
+
}), a("p", N, d(m(V).aiChat.loadingHistory), 1)])) : (m(G).messages.value?.length ?? 0) === 0 ? (u(), o("div", P, [s(m(b), {
|
|
160
160
|
size: 32,
|
|
161
161
|
"stroke-width": 1.5,
|
|
162
162
|
class: "tpl:text-[var(--tpl-text-dim)]"
|
|
163
|
-
}),
|
|
163
|
+
}), a("p", F, d(m(V).aiChat.placeholder), 1)])) : (u(), o("div", I, [(u(!0), o(p, null, l(m(G).messages.value, (e, t) => (u(), o("div", {
|
|
164
164
|
key: e.id,
|
|
165
165
|
class: "tpl:flex tpl:flex-col tpl:gap-2"
|
|
166
|
-
}, [e.role === "user" ? (
|
|
166
|
+
}, [e.role === "user" ? (u(), o("div", L, d(e.content), 1)) : (u(), o("div", R, [!$(e.content) && m(G).isGenerating.value && t === (m(G).messages.value?.length ?? 0) - 1 ? (u(), f(me, { key: 0 })) : (u(), o("div", z, d($(e.content) || m(V).aiChat.applied), 1)), e.id === m(G).lastApplyMessageId.value && !m(G).isGenerating.value ? (u(), o("button", {
|
|
167
167
|
key: 2,
|
|
168
|
-
class: "tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:self-start tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all
|
|
168
|
+
class: "tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:self-start tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all",
|
|
169
169
|
style: {
|
|
170
170
|
"border-color": "var(--tpl-border)",
|
|
171
171
|
color: "var(--tpl-text-muted)",
|
|
172
172
|
"background-color": "transparent"
|
|
173
173
|
},
|
|
174
|
-
onClick:
|
|
175
|
-
}, [
|
|
174
|
+
onClick: r[2] ||= (e) => m(G).toggleLastRevert()
|
|
175
|
+
}, [m(G).isLastChangeReverted.value ? (u(), o(p, { key: 0 }, [s(m(w), {
|
|
176
176
|
size: 12,
|
|
177
177
|
"stroke-width": 2
|
|
178
|
-
}),
|
|
178
|
+
}), c(" " + d(m(V).aiChat.reapply), 1)], 64)) : (u(), o(p, { key: 1 }, [s(m(T), {
|
|
179
179
|
size: 12,
|
|
180
180
|
"stroke-width": 2
|
|
181
|
-
}),
|
|
182
|
-
|
|
181
|
+
}), c(" " + d(m(V).aiChat.revert), 1)], 64))])) : h("", !0)]))]))), 128))]))], 512),
|
|
182
|
+
m(G).error.value ? (u(), o("div", he, [s(m(le), {
|
|
183
183
|
size: 14,
|
|
184
184
|
"stroke-width": 2,
|
|
185
185
|
class: "tpl:mt-0.5 tpl:shrink-0"
|
|
186
|
-
}),
|
|
187
|
-
(
|
|
186
|
+
}), a("span", null, d(m(G).error.value === "ai_apply_failed" ? m(V).aiChat.applyFailed : m(V).aiChat.error), 1)])) : h("", !0),
|
|
187
|
+
(m(G).suggestions.value?.length ?? 0) > 0 ? (u(), o("div", ge, [a("div", _e, [(u(!0), o(p, null, l(m(G).suggestions.value ?? [], (e, n) => (u(), o("button", {
|
|
188
188
|
key: n,
|
|
189
|
-
class: t(["tpl-suggestion-btn tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:text-left tpl:text-xs tpl:leading-snug tpl:transition-all tpl:duration-300 tpl:ease-out", (
|
|
189
|
+
class: t(["tpl-suggestion-btn tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:text-left tpl:text-xs tpl:leading-snug tpl:transition-all tpl:duration-300 tpl:ease-out", (m(G).suggestions.value?.length ?? 0) - 1 - n < Y.value ? "tpl:translate-y-0 tpl:opacity-100" : "tpl:pointer-events-none tpl:-translate-y-2 tpl:opacity-0"]),
|
|
190
190
|
style: {
|
|
191
191
|
"border-color": "var(--tpl-border)",
|
|
192
192
|
color: "var(--tpl-primary)",
|
|
@@ -194,27 +194,27 @@ var w = v("redo-2", [["path", {
|
|
|
194
194
|
"box-shadow": "var(--tpl-shadow)"
|
|
195
195
|
},
|
|
196
196
|
onClick: (t) => De(e)
|
|
197
|
-
},
|
|
197
|
+
}, d(e), 11, ve))), 128))])])) : h("", !0)
|
|
198
198
|
]),
|
|
199
|
-
|
|
200
|
-
"onUpdate:modelValue":
|
|
199
|
+
a("div", ye, [a("div", be, [e(a("textarea", {
|
|
200
|
+
"onUpdate:modelValue": r[3] ||= (e) => K.value = e,
|
|
201
201
|
class: "tpl:max-h-32 tpl:min-h-[64px] tpl:flex-1 tpl:resize-none tpl:border-none tpl:bg-transparent tpl:font-sans tpl:text-sm tpl:outline-none tpl:text-[var(--tpl-text)]",
|
|
202
|
-
placeholder:
|
|
203
|
-
disabled:
|
|
202
|
+
placeholder: m(V).aiChat.inputPlaceholder,
|
|
203
|
+
disabled: m(G).isGenerating.value,
|
|
204
204
|
rows: "3",
|
|
205
205
|
onKeydown: Oe
|
|
206
|
-
}, null, 40, xe), [[
|
|
207
|
-
class: "tpl-ai-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:
|
|
208
|
-
disabled: !K.value.trim() ||
|
|
206
|
+
}, null, 40, xe), [[ne, K.value]]), a("button", {
|
|
207
|
+
class: "tpl-ai-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
|
|
208
|
+
disabled: !K.value.trim() || m(G).isGenerating.value,
|
|
209
209
|
onClick: Q
|
|
210
|
-
}, [
|
|
210
|
+
}, [s(m(de), {
|
|
211
211
|
size: 16,
|
|
212
212
|
"stroke-width": 2
|
|
213
|
-
})], 8, Se)]),
|
|
214
|
-
])) :
|
|
213
|
+
})], 8, Se)]), a("p", Ce, d(m(V).aiMenu.disclaimer), 1)])
|
|
214
|
+
])) : h("", !0)]),
|
|
215
215
|
_: 1
|
|
216
216
|
}));
|
|
217
217
|
}
|
|
218
|
-
}), [["__scopeId", "data-v-
|
|
218
|
+
}), [["__scopeId", "data-v-82649117"]]);
|
|
219
219
|
//#endregion
|
|
220
220
|
export { B as default };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Ot as e, P as t, c as n, d as r, j as i, k as a, kt as o, l as s, r as c, s as l, v as u } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
|
|
2
|
+
import "./useEditorCore-CFLzobo_.js";
|
|
3
|
+
import { W as d, t as f } from "./keys-BxixS0TN.js";
|
|
4
|
+
import { t as p } from "./image-up-DouZRGVt.js";
|
|
5
|
+
import { t as m } from "./shield-check-DUIyRrTo.js";
|
|
6
|
+
import { t as h } from "./sparkles-DYEMATWC.js";
|
|
7
|
+
import { t as g } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
8
|
+
import { n as _ } from "./useCloudI18n-CAZTZ9_a.js";
|
|
9
|
+
//#region src/cloud/components/AiFeatureMenu.vue?vue&type=script&setup=true&lang.ts
|
|
10
|
+
var v = { class: "tpl-ai-feature-menu tpl:w-[280px] tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:py-1 tpl:bg-[var(--tpl-bg)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]" }, y = ["onClick"], b = { class: "tpl:flex tpl:min-w-0 tpl:flex-col tpl:gap-0.5" }, x = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, S = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text-muted)]" }, C = /*#__PURE__*/ g(/* @__PURE__ */ u({
|
|
11
|
+
__name: "AiFeatureMenu",
|
|
12
|
+
props: { activeFeature: {} },
|
|
13
|
+
emits: ["select"],
|
|
14
|
+
setup(u, { emit: g }) {
|
|
15
|
+
let C = g, { t: w } = _(), T = d(f, "AiFeatureMenu"), E = {
|
|
16
|
+
"ai-chat": "chat",
|
|
17
|
+
"design-reference": "designToTemplate",
|
|
18
|
+
scoring: "scoring"
|
|
19
|
+
}, D = [
|
|
20
|
+
{
|
|
21
|
+
key: "ai-chat",
|
|
22
|
+
icon: h
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
key: "design-reference",
|
|
26
|
+
icon: p
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
key: "scoring",
|
|
30
|
+
icon: m
|
|
31
|
+
}
|
|
32
|
+
], O = l(() => D.filter((e) => T.isFeatureEnabled(E[e.key])));
|
|
33
|
+
function k(e) {
|
|
34
|
+
return e === "ai-chat" ? w.aiMenu.aiAssistant : e === "design-reference" ? w.aiMenu.designToTemplate : w.aiMenu.templateScore;
|
|
35
|
+
}
|
|
36
|
+
function A(e) {
|
|
37
|
+
return e === "ai-chat" ? w.aiMenu.aiAssistantDesc : e === "design-reference" ? w.aiMenu.designToTemplateDesc : w.aiMenu.templateScoreDesc;
|
|
38
|
+
}
|
|
39
|
+
return (l, d) => (a(), r("div", v, [(a(!0), r(c, null, i(O.value, (i) => (a(), r("button", {
|
|
40
|
+
key: i.key,
|
|
41
|
+
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",
|
|
42
|
+
style: e({ backgroundColor: u.activeFeature === i.key ? "var(--tpl-primary-light)" : "transparent" }),
|
|
43
|
+
onClick: (e) => C("select", i.key)
|
|
44
|
+
}, [n("div", {
|
|
45
|
+
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)]",
|
|
46
|
+
style: e({
|
|
47
|
+
backgroundColor: u.activeFeature === i.key ? "var(--tpl-primary)" : "var(--tpl-bg-active)",
|
|
48
|
+
color: u.activeFeature === i.key ? "var(--tpl-bg)" : "var(--tpl-text-muted)"
|
|
49
|
+
})
|
|
50
|
+
}, [(a(), s(t(i.icon), {
|
|
51
|
+
size: 15,
|
|
52
|
+
"stroke-width": 2
|
|
53
|
+
}))], 4), n("div", b, [n("span", x, o(k(i.key)), 1), n("span", S, o(A(i.key)), 1)])], 12, y))), 128))]));
|
|
54
|
+
}
|
|
55
|
+
}), [["__scopeId", "data-v-bf59b787"]]);
|
|
56
|
+
//#endregion
|
|
57
|
+
export { C as default };
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as u } from "./useI18n-
|
|
4
|
-
import { t as d } from "./circle-alert-
|
|
5
|
-
import { t as f } from "./triangle-alert-
|
|
1
|
+
import { Dt as e, S as t, d as n, k as r, l as i, rt as a, s as o, u as s, v as c } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
|
|
2
|
+
import { z as l } from "./keys-BxixS0TN.js";
|
|
3
|
+
import { t as u } from "./useI18n-BfXff_Sy.js";
|
|
4
|
+
import { t as d } from "./circle-alert-CuuK6thq.js";
|
|
5
|
+
import { t as f } from "./triangle-alert-Fw0ce8oQ.js";
|
|
6
6
|
//#region src/components/canvas/BlockIssueBadge.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var p = ["title", "aria-label"], m = /* @__PURE__ */
|
|
7
|
+
var p = ["title", "aria-label"], m = /* @__PURE__ */ c({
|
|
8
8
|
__name: "BlockIssueBadge",
|
|
9
9
|
props: { blockId: {} },
|
|
10
|
-
setup(
|
|
11
|
-
let m =
|
|
12
|
-
return (
|
|
10
|
+
setup(c) {
|
|
11
|
+
let m = c, { t: h } = u(), g = t(l, null), _ = o(() => (g?.issues.value ?? []).filter((e) => e.blockId === m.blockId)), v = o(() => _.value.some((e) => e.severity === "error") ? "error" : _.value.some((e) => e.severity === "warning") ? "warning" : null), y = o(() => v.value === "error" ? h.issues.badgeError : h.issues.badgeWarning);
|
|
12
|
+
return (t, o) => v.value ? (r(), n("span", {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: e(["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)]", v.value === "error" ? "tpl:text-[var(--tpl-danger)]" : "tpl:text-[var(--tpl-warning)]"]),
|
|
15
15
|
title: y.value,
|
|
16
16
|
"aria-label": y.value,
|
|
17
17
|
role: "img"
|
|
18
|
-
}, [v.value === "error" ? (
|
|
18
|
+
}, [v.value === "error" ? (r(), i(a(d), {
|
|
19
19
|
key: 0,
|
|
20
20
|
size: 14,
|
|
21
21
|
"stroke-width": 2.25,
|
|
22
22
|
fill: "currentColor",
|
|
23
23
|
stroke: "var(--tpl-bg)"
|
|
24
|
-
})) : (
|
|
24
|
+
})) : (r(), i(a(f), {
|
|
25
25
|
key: 1,
|
|
26
26
|
size: 14,
|
|
27
27
|
"stroke-width": 2.25,
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
+
import { A as t, N as n, Ot as r, P as i, S as a, c as o, d as s, j as c, k as l, l as u, r as d, rt as f, s as p, v as m } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
|
|
3
|
+
import { R as h, a as g, b as _, d as v, f as y, g as b, h as x, i as S, l as C, m as w, n as T, p as E, r as D, v as O, y as k } from "./useEditorCore-CFLzobo_.js";
|
|
4
|
+
import { O as A, U as j, d as M, h as N, s as P } from "./keys-BxixS0TN.js";
|
|
5
|
+
import { n as F, t as I } from "./emailFrameWidth-BmFCN2dp.js";
|
|
6
|
+
//#region src/components/blocks/PreviewSectionBlock.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var L = { class: "tpl:w-full" }, R = { class: "tpl:flex tpl:gap-0" }, z = /* @__PURE__ */ m({
|
|
8
|
+
name: "PreviewSectionBlock",
|
|
9
|
+
__name: "PreviewSectionBlock",
|
|
10
|
+
props: {
|
|
11
|
+
block: {},
|
|
12
|
+
viewport: {}
|
|
13
|
+
},
|
|
14
|
+
setup(e) {
|
|
15
|
+
let t = {
|
|
16
|
+
title: C,
|
|
17
|
+
paragraph: w,
|
|
18
|
+
image: b,
|
|
19
|
+
video: T,
|
|
20
|
+
button: h,
|
|
21
|
+
divider: k,
|
|
22
|
+
social: g,
|
|
23
|
+
menu: x,
|
|
24
|
+
table: D,
|
|
25
|
+
spacer: S,
|
|
26
|
+
html: O,
|
|
27
|
+
custom: _
|
|
28
|
+
}, m = e, y = a(P, null), A = p(() => {
|
|
29
|
+
switch (m.block.columns) {
|
|
30
|
+
case "2": return ["50%", "50%"];
|
|
31
|
+
case "3": return [
|
|
32
|
+
"33.33%",
|
|
33
|
+
"33.33%",
|
|
34
|
+
"33.33%"
|
|
35
|
+
];
|
|
36
|
+
case "1-2": return ["33.33%", "66.67%"];
|
|
37
|
+
case "2-1": return ["66.67%", "33.33%"];
|
|
38
|
+
default: return ["100%"];
|
|
39
|
+
}
|
|
40
|
+
}), j = p(() => {
|
|
41
|
+
let e = A.value.length, t = [...m.block.children];
|
|
42
|
+
for (; t.length < e;) t.push([]);
|
|
43
|
+
return t.slice(0, e);
|
|
44
|
+
});
|
|
45
|
+
function M(e) {
|
|
46
|
+
return j.value[e] || [];
|
|
47
|
+
}
|
|
48
|
+
function N(e) {
|
|
49
|
+
return E(e, y, t);
|
|
50
|
+
}
|
|
51
|
+
return (e, t) => {
|
|
52
|
+
let a = n("PreviewSectionBlock", !0);
|
|
53
|
+
return l(), s("div", L, [o("div", R, [(l(!0), s(d, null, c(j.value, (e, t) => (l(), s("div", {
|
|
54
|
+
key: t,
|
|
55
|
+
style: r({ width: A.value[t] })
|
|
56
|
+
}, [(l(!0), s(d, null, c(M(t), (e) => (l(), s("div", {
|
|
57
|
+
key: e.id,
|
|
58
|
+
style: r(f(v)(e))
|
|
59
|
+
}, [e.type === "section" ? (l(), u(a, {
|
|
60
|
+
key: 0,
|
|
61
|
+
block: e,
|
|
62
|
+
viewport: "desktop"
|
|
63
|
+
}, null, 8, ["block"])) : (l(), u(i(N(e)), {
|
|
64
|
+
key: 1,
|
|
65
|
+
block: e,
|
|
66
|
+
viewport: "desktop"
|
|
67
|
+
}, null, 8, ["block"]))], 4))), 128))], 4))), 128))])]);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}), B = /*@__PURE__*/ m({
|
|
71
|
+
__name: "BlockPreviewCanvas",
|
|
72
|
+
props: {
|
|
73
|
+
blocks: {},
|
|
74
|
+
viewport: { default: "desktop" },
|
|
75
|
+
applyConditionFilter: {
|
|
76
|
+
type: Boolean,
|
|
77
|
+
default: !0
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
setup(e) {
|
|
81
|
+
let n = e, o = a(P), m = a(N, null), L = a(M, null), R = a(A, null);
|
|
82
|
+
t(j, p(() => R?.value ?? !1));
|
|
83
|
+
let B = p(() => n.applyConditionFilter ? n.blocks.filter((e) => !L?.isHidden(e.id)) : n.blocks), V = p(() => F(m?.content.value.settings, n.viewport)), H = p(() => m ? y(m.content.value.settings) : {}), U = {
|
|
84
|
+
section: z,
|
|
85
|
+
title: C,
|
|
86
|
+
paragraph: w,
|
|
87
|
+
image: b,
|
|
88
|
+
video: T,
|
|
89
|
+
button: h,
|
|
90
|
+
divider: k,
|
|
91
|
+
social: g,
|
|
92
|
+
menu: x,
|
|
93
|
+
table: D,
|
|
94
|
+
spacer: S,
|
|
95
|
+
html: O,
|
|
96
|
+
custom: _
|
|
97
|
+
};
|
|
98
|
+
function W(e) {
|
|
99
|
+
return E(e, o, U);
|
|
100
|
+
}
|
|
101
|
+
return (t, n) => (l(), s("div", {
|
|
102
|
+
"data-testid": "block-preview-canvas",
|
|
103
|
+
class: "tpl:pointer-events-none tpl:mx-auto tpl:select-none tpl:rounded-lg",
|
|
104
|
+
style: r({
|
|
105
|
+
width: `${V.value}px`,
|
|
106
|
+
transition: f(I),
|
|
107
|
+
backgroundColor: "var(--tpl-canvas-bg)",
|
|
108
|
+
boxShadow: "var(--tpl-shadow-sm)",
|
|
109
|
+
...H.value
|
|
110
|
+
})
|
|
111
|
+
}, [(l(!0), s(d, null, c(B.value, (t) => (l(), s("div", {
|
|
112
|
+
key: t.id,
|
|
113
|
+
style: r(f(v)(t))
|
|
114
|
+
}, [(l(), u(i(W(t)), {
|
|
115
|
+
block: t,
|
|
116
|
+
viewport: e.viewport
|
|
117
|
+
}, null, 8, ["block", "viewport"]))], 4))), 128))], 4));
|
|
118
|
+
}
|
|
119
|
+
}), V = /* @__PURE__ */ e({ default: () => H }), H = B;
|
|
120
|
+
//#endregion
|
|
121
|
+
export { V as n, H as t };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Dt as e, _ as t, c as n, d as r, g as i, h as a, k as o, kt as s, l as c, r as l, rt as u, u as d, v as f, z as p } from "./vue.runtime.esm-bundler-DzEsDRtY.js";
|
|
2
|
+
import { c as m, t as h } from "./runtime-dom.esm-bundler-BgKXIPLV.js";
|
|
3
|
+
import { t as g } from "./sparkles-DYEMATWC.js";
|
|
4
|
+
import { n as _ } from "./useCloudI18n-CAZTZ9_a.js";
|
|
5
|
+
//#region src/cloud/components/CloudHeaderExtras.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var v = {
|
|
7
|
+
key: 0,
|
|
8
|
+
"data-testid": "cloud-template-usage",
|
|
9
|
+
class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
|
|
10
|
+
}, y = ["aria-expanded"], b = {
|
|
11
|
+
key: 0,
|
|
12
|
+
class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
|
|
13
|
+
}, x = /* @__PURE__ */ f({
|
|
14
|
+
__name: "CloudHeaderExtras",
|
|
15
|
+
props: {
|
|
16
|
+
part: {},
|
|
17
|
+
cloud: {}
|
|
18
|
+
},
|
|
19
|
+
setup(f) {
|
|
20
|
+
let x = t(() => import("./CollaboratorBar-C6MC0UCk.js")), S = t(() => import("./AiFeatureMenu-DrLGc2H2.js")), { t: C, format: w } = _();
|
|
21
|
+
return (t, _) => f.part === "left" && f.cloud.featureFlags.templateLimit.value !== null ? (o(), r("span", v, s(u(w)(u(C).header.templatesUsed, {
|
|
22
|
+
used: f.cloud.featureFlags.templateCount.value,
|
|
23
|
+
max: f.cloud.featureFlags.templateLimit.value
|
|
24
|
+
})), 1)) : f.part === "center" && f.cloud.collaboration && f.cloud.isCollaborationEnabled.value ? (o(), c(u(x), {
|
|
25
|
+
key: 1,
|
|
26
|
+
collaborators: f.cloud.collaboration.collaborators.value,
|
|
27
|
+
"is-connected": f.cloud.websocket.isConnected.value
|
|
28
|
+
}, null, 8, ["collaborators", "is-connected"])) : f.part === "right" ? (o(), r(l, { key: 2 }, [f.cloud.featureFlags.canUseAiGeneration.value && f.cloud.featureFlags.hasTemplateSaved.value ? (o(), r("div", {
|
|
29
|
+
key: 0,
|
|
30
|
+
ref: (e) => f.cloud.panelState.aiMenuRef.value = e,
|
|
31
|
+
class: "tpl:relative"
|
|
32
|
+
}, [n("button", {
|
|
33
|
+
type: "button",
|
|
34
|
+
"data-testid": "ai-menu-trigger",
|
|
35
|
+
"aria-expanded": f.cloud.panelState.aiMenuOpen.value,
|
|
36
|
+
class: e(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", f.cloud.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
|
|
37
|
+
onClick: _[0] ||= m((...e) => f.cloud.panelState.toggleAiMenu && f.cloud.panelState.toggleAiMenu(...e), ["stop"])
|
|
38
|
+
}, [i(u(g), {
|
|
39
|
+
size: 16,
|
|
40
|
+
"stroke-width": 2,
|
|
41
|
+
class: "tpl-ai-btn-icon"
|
|
42
|
+
}), a(" " + s(u(C).aiChat.button), 1)], 10, y), i(h, {
|
|
43
|
+
"enter-active-class": "tpl:transition-all tpl:ease-out",
|
|
44
|
+
"enter-from-class": "tpl:scale-95 tpl:opacity-0",
|
|
45
|
+
"enter-to-class": "tpl:scale-100 tpl:opacity-100",
|
|
46
|
+
"leave-active-class": "tpl:transition-all tpl:duration-100 tpl:ease-in",
|
|
47
|
+
"leave-from-class": "tpl:scale-100 tpl:opacity-100",
|
|
48
|
+
"leave-to-class": "tpl:scale-95 tpl:opacity-0"
|
|
49
|
+
}, {
|
|
50
|
+
default: p(() => [f.cloud.panelState.aiMenuOpen.value ? (o(), r("div", b, [i(u(S), {
|
|
51
|
+
"active-feature": f.cloud.panelState.activeAiFeature.value,
|
|
52
|
+
onSelect: f.cloud.panelState.handleAiFeatureSelect
|
|
53
|
+
}, null, 8, ["active-feature", "onSelect"])])) : d("", !0)]),
|
|
54
|
+
_: 1
|
|
55
|
+
})], 512)) : d("", !0)], 64)) : d("", !0);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//#endregion
|
|
59
|
+
export { x as default };
|