@templatical/editor 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AiChatSidebar-DqSoJAXx.js → AiChatSidebar-DOCvzGBe.js} +7 -7
- package/dist/{AiFeatureMenu-CoBvE72q.js → AiFeatureMenu-xCJeD07B.js} +4 -4
- package/dist/{BlockIssueBadge-D8KsGWY6.js → BlockIssueBadge-BJ3A6mqh.js} +2 -2
- package/dist/{BlockPreviewCanvas-W6-MRpWz.js → BlockPreviewCanvas-BQXfqhzu.js} +2 -2
- package/dist/{CloudHeaderExtras-AbsNuL9T.js → CloudHeaderExtras-TFmBJ0Ry.js} +2 -2
- package/dist/{CloudPanels-BNL6rSeB.js → CloudPanels-BnSBbYnw.js} +4 -4
- package/dist/{CollaboratorBar-DlZ-wOL_.js → CollaboratorBar-7ry8EdUh.js} +2 -2
- package/dist/{CommentsPanel-9k1q-79y.js → CommentsPanel-CGEhbjx0.js} +1 -1
- package/dist/{CommentsSidebar-Bc7nORmD.js → CommentsSidebar-CUpst9ou.js} +10 -10
- package/dist/{CountdownToolbar-Bnq25sR-.js → CountdownToolbar-B1a_UIuB.js} +3 -3
- package/dist/{DesignReferenceSidebar-Cl5eE8Kn.js → DesignReferenceSidebar-DkAmsBgM.js} +5 -5
- package/dist/{IssuesPanel-Dnns3O9z.js → IssuesPanel-lTpsCV4a.js} +5 -5
- package/dist/{LogicTagInsertButton-SI6irEtn.js → LogicTagInsertButton-B5YymR4U.js} +3 -3
- package/dist/{MediaEditModal-C-InB-H2.js → MediaEditModal-B1X8qtJb.js} +1 -1
- package/dist/{MediaPanels-CTosUpeo.js → MediaPanels-DO30L1KS.js} +1 -1
- package/dist/{MergeTagInput-BMQGNh1k.js → MergeTagInput-B0M_-X0K.js} +1 -1
- package/dist/{MergeTagModeToggle-Cm9s-w6o.js → MergeTagModeToggle-B-8W1tK7.js} +3 -3
- package/dist/{ParagraphEditor-CnBPQCVo.js → ParagraphEditor-DVGeU0Am.js} +20 -20
- package/dist/{RestoreVersionDialog-B13whpxH.js → RestoreVersionDialog-DOhgYkiA.js} +3 -3
- package/dist/{RichTextEditorContent-DOvhgc-7.js → RichTextEditorContent-AaLAArA0.js} +4 -4
- package/dist/{SaveBlockDialog-b5yrQfoN.js → SaveBlockDialog-36MzPD2S.js} +8 -8
- package/dist/{SavedBlocksBrowserModal-DpqK4Zqp.js → SavedBlocksBrowserModal-B5nFKszf.js} +9 -9
- package/dist/{SavedBlocksPanels-C2wURIlT.js → SavedBlocksPanels-BZkbP7eB.js} +1 -1
- package/dist/{SavedBlocksPickBar-Bx9_SXVA.js → SavedBlocksPickBar-ChoCMdu7.js} +2 -2
- package/dist/{TemplateScoringPanel-Cs0TGtRF.js → TemplateScoringPanel-C6ellAcs.js} +11 -11
- package/dist/{TemplateSettings-Gn9ps1R6.js → TemplateSettings-C_0qK-zs.js} +5 -5
- package/dist/{TestEmailModal-DaIaklcg.js → TestEmailModal-CKW-VArm.js} +6 -6
- package/dist/{TestEmailPanel-CKSvzakC.js → TestEmailPanel-BylYzjyM.js} +1 -1
- package/dist/{TitleEditor-C66Jk73n.js → TitleEditor-DoQ286_n.js} +9 -9
- package/dist/{ToggleSwitch-BqttX9lY.js → ToggleSwitch-CtZ6adlX.js} +1 -1
- package/dist/{Toolbar-DVsKYQaC.js → Toolbar-B6dG5_IP.js} +20 -20
- package/dist/{TplModal-DRQln7xH.js → TplModal-DHwQXySQ.js} +1 -1
- package/dist/{VersionHistoryMenu-b0A8mS2_.js → VersionHistoryMenu-DdspCRSA.js} +5 -5
- package/dist/{VersionHistoryPanels-Df5WjNah.js → VersionHistoryPanels-C6QxmRUH.js} +1 -1
- package/dist/{VersionPreviewBanner-xB9r83r0.js → VersionPreviewBanner-XUuLe36h.js} +1 -1
- package/dist/{WrapperBlock-B0cUORGz.js → WrapperBlock-BumDudbj.js} +1 -1
- package/dist/{blockTypeIcons-DfQNZnl7.js → blockTypeIcons-Sg8SY1NQ.js} +2 -2
- package/dist/bundle-stats.json +6 -6
- package/dist/cdn/chunks/{AiChatSidebar-DD17BwXn.js → AiChatSidebar-DiG-EQ-E.js} +4 -4
- package/dist/cdn/chunks/AiChatSidebar-DiG-EQ-E.js.map +1 -0
- package/dist/cdn/chunks/{AiFeatureMenu-Di381OsL.js → AiFeatureMenu-4TgzmLb3.js} +3 -3
- package/dist/cdn/chunks/AiFeatureMenu-4TgzmLb3.js.map +1 -0
- package/dist/cdn/chunks/{BlockIssueBadge-BR_N3nRh.js → BlockIssueBadge-ChQ0mPf5.js} +2 -2
- package/dist/cdn/chunks/BlockIssueBadge-ChQ0mPf5.js.map +1 -0
- package/dist/cdn/chunks/{BlockPreviewCanvas-BXpcAiiY.js → BlockPreviewCanvas-BpvK3Sh9.js} +3 -3
- package/dist/cdn/chunks/BlockPreviewCanvas-BpvK3Sh9.js.map +1 -0
- package/dist/cdn/chunks/{CloudHeaderExtras-BEM2eWfF.js → CloudHeaderExtras-DqgOaWym.js} +3 -3
- package/dist/cdn/chunks/CloudHeaderExtras-DqgOaWym.js.map +1 -0
- package/dist/cdn/chunks/{CloudPanels-D7nK1-bm.js → CloudPanels-INOiwkET.js} +4 -4
- package/dist/cdn/chunks/CloudPanels-INOiwkET.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-D1SUwahw.js → CollaboratorBar-CQ9EpYKQ.js} +3 -3
- package/dist/cdn/chunks/CollaboratorBar-CQ9EpYKQ.js.map +1 -0
- package/dist/cdn/chunks/{CommentsPanel-qsLMAlJU.js → CommentsPanel-CjhxGMjL.js} +2 -2
- package/dist/cdn/chunks/CommentsPanel-CjhxGMjL.js.map +1 -0
- package/dist/cdn/chunks/{CommentsSidebar-CTwEE-s_.js → CommentsSidebar-D9bqMnlt.js} +2 -2
- package/dist/cdn/chunks/CommentsSidebar-D9bqMnlt.js.map +1 -0
- package/dist/cdn/chunks/CountdownBlock-sVDjKkRw.js.map +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-BJTcnIQ-.js → CountdownToolbar-CIRx5w1U.js} +4 -4
- package/dist/cdn/chunks/CountdownToolbar-CIRx5w1U.js.map +1 -0
- package/dist/cdn/chunks/{DesignReferenceSidebar-Dl3eEGtS.js → DesignReferenceSidebar-C1-SbE_R.js} +2 -2
- package/dist/cdn/chunks/DesignReferenceSidebar-C1-SbE_R.js.map +1 -0
- package/dist/cdn/chunks/{IssuesPanel-L9Gq_T8n.js → IssuesPanel-qKY6UDd-.js} +2 -2
- package/dist/cdn/chunks/IssuesPanel-qKY6UDd-.js.map +1 -0
- package/dist/cdn/chunks/LoadingTrack-_7DH_5aw.js.map +1 -1
- package/dist/cdn/chunks/{LogicTagInsertButton-3pIbVE9p.js → LogicTagInsertButton-CItDS_U1.js} +2 -2
- package/dist/cdn/chunks/LogicTagInsertButton-CItDS_U1.js.map +1 -0
- package/dist/cdn/chunks/{MediaEditModal-rTjYl-fV.js → MediaEditModal-CzUtXkpk.js} +2 -2
- package/dist/cdn/chunks/MediaEditModal-CzUtXkpk.js.map +1 -0
- package/dist/cdn/chunks/{MediaPanels-DMXRQVqg.js → MediaPanels-DOLsh7WC.js} +2 -2
- package/dist/cdn/chunks/MediaPanels-DOLsh7WC.js.map +1 -0
- package/dist/cdn/chunks/{MergeTagInput-JcBzr77a.js → MergeTagInput-B33u3nxj.js} +2 -2
- package/dist/cdn/chunks/MergeTagInput-B33u3nxj.js.map +1 -0
- package/dist/cdn/chunks/{MergeTagModeToggle-CYmueXS2.js → MergeTagModeToggle-Bz1CH3NT.js} +2 -2
- package/dist/cdn/chunks/MergeTagModeToggle-Bz1CH3NT.js.map +1 -0
- package/dist/cdn/chunks/{ParagraphEditor-DbjFDnYm.js → ParagraphEditor-B6A4yQ0A.js} +24 -24
- package/dist/cdn/chunks/ParagraphEditor-B6A4yQ0A.js.map +1 -0
- package/dist/cdn/chunks/{RestoreVersionDialog-pANCWcce.js → RestoreVersionDialog-B9rujl9w.js} +3 -3
- package/dist/cdn/chunks/RestoreVersionDialog-B9rujl9w.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-BtM1or8A.js → RichTextEditorContent-dOg1xFqv.js} +4 -4
- package/dist/cdn/chunks/RichTextEditorContent-dOg1xFqv.js.map +1 -0
- package/dist/cdn/chunks/{SaveBlockDialog-CGM3mrGj.js → SaveBlockDialog-BNAeb6--.js} +6 -6
- package/dist/cdn/chunks/SaveBlockDialog-BNAeb6--.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-C6Z8AvtD.js → SavedBlocksBrowserModal--FoVqEnT.js} +6 -6
- package/dist/cdn/chunks/SavedBlocksBrowserModal--FoVqEnT.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksPanels-DNwKmnhp.js → SavedBlocksPanels-qKyPnVgk.js} +2 -2
- package/dist/cdn/chunks/SavedBlocksPanels-qKyPnVgk.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksPickBar-D2p1ufB4.js → SavedBlocksPickBar-BvLwca4B.js} +3 -3
- package/dist/cdn/chunks/SavedBlocksPickBar-BvLwca4B.js.map +1 -0
- package/dist/cdn/chunks/{TemplateScoringPanel-BDB4RErx.js → TemplateScoringPanel-ebsrVge3.js} +2 -2
- package/dist/cdn/chunks/TemplateScoringPanel-ebsrVge3.js.map +1 -0
- package/dist/cdn/chunks/{TemplateSettings-DVN1t3yF.js → TemplateSettings-BaEVdUTM.js} +4 -4
- package/dist/cdn/chunks/TemplateSettings-BaEVdUTM.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailModal-DZBCmBtT.js → TestEmailModal-DpYirvEL.js} +6 -6
- package/dist/cdn/chunks/TestEmailModal-DpYirvEL.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailPanel-1ibwYCUl.js → TestEmailPanel-PAT70a2g.js} +2 -2
- package/dist/cdn/chunks/TestEmailPanel-PAT70a2g.js.map +1 -0
- package/dist/cdn/chunks/{TitleEditor-BRl2qKbd.js → TitleEditor-Dc7YB6Uy.js} +8 -8
- package/dist/cdn/chunks/TitleEditor-Dc7YB6Uy.js.map +1 -0
- package/dist/cdn/chunks/{ToggleSwitch-niSL2uog.js → ToggleSwitch-D-8dCEbI.js} +2 -2
- package/dist/cdn/chunks/ToggleSwitch-D-8dCEbI.js.map +1 -0
- package/dist/cdn/chunks/{Toolbar-tTl0P-rr.js → Toolbar-BDzhrmGV.js} +32 -32
- package/dist/cdn/chunks/Toolbar-BDzhrmGV.js.map +1 -0
- package/dist/cdn/chunks/{TplModal-C_eIPykE.js → TplModal-BbHRUc1Y.js} +2 -2
- package/dist/cdn/chunks/TplModal-BbHRUc1Y.js.map +1 -0
- package/dist/cdn/chunks/{VersionHistoryMenu-Ww57XAzj.js → VersionHistoryMenu-C_bBKOYU.js} +2 -2
- package/dist/cdn/chunks/VersionHistoryMenu-C_bBKOYU.js.map +1 -0
- package/dist/cdn/chunks/{VersionHistoryPanels-w0EG_qVW.js → VersionHistoryPanels-BoJsPIKa.js} +2 -2
- package/dist/cdn/chunks/VersionHistoryPanels-BoJsPIKa.js.map +1 -0
- package/dist/cdn/chunks/{VersionPreviewBanner-Bbd4C-AN.js → VersionPreviewBanner-CKyrcgxJ.js} +2 -2
- package/dist/cdn/chunks/VersionPreviewBanner-CKyrcgxJ.js.map +1 -0
- package/dist/cdn/chunks/{WrapperBlock-Ch4KeMIb.js → WrapperBlock-CGg6rBnx.js} +2 -2
- package/dist/cdn/chunks/WrapperBlock-CGg6rBnx.js.map +1 -0
- package/dist/cdn/chunks/{blockTypeIcons-CyPXFh7L.js → blockTypeIcons-CdfCfqHE.js} +2 -2
- package/dist/cdn/chunks/blockTypeIcons-CdfCfqHE.js.map +1 -0
- package/dist/cdn/chunks/ca--zGWn9AU.js.map +1 -1
- package/dist/cdn/chunks/ca-BTf1Zbqb.js.map +1 -1
- package/dist/cdn/chunks/cloud-De-eh1u6.js.map +1 -1
- package/dist/cdn/chunks/createCloudRuntime-DsaUaWvr.js.map +1 -1
- package/dist/cdn/chunks/de-BRNLKcDl.js.map +1 -1
- package/dist/cdn/chunks/de-mMY5yQJu.js.map +1 -1
- package/dist/cdn/chunks/de-xzrh9PA3.js.map +1 -1
- package/dist/cdn/chunks/dist-BRZhN8qJ.js.map +1 -1
- package/dist/cdn/chunks/dist-CXB2_kBa.js.map +1 -1
- package/dist/cdn/chunks/draggable-IB4x6w2O.js.map +1 -1
- package/dist/cdn/chunks/{editor-modal-BdI0iA5r.js → editor-modal-CZQArGNj.js} +4 -4
- package/dist/cdn/chunks/editor-modal-CZQArGNj.js.map +1 -0
- package/dist/cdn/chunks/emojiData-6m0DBh7O.js.map +1 -1
- package/dist/cdn/chunks/en-9unxBjV8.js +2 -0
- package/dist/cdn/chunks/en-ChVeGQBY.js.map +1 -1
- package/dist/cdn/chunks/en-JJjqHMjy.js.map +1 -1
- package/dist/cdn/chunks/es-BIh8BxV9.js.map +1 -1
- package/dist/cdn/chunks/es-BT4LSpE2.js.map +1 -1
- package/dist/cdn/chunks/{extensions-DK_9-6Bd.js → extensions-Dy251lPd.js} +3 -3
- package/dist/cdn/chunks/extensions-Dy251lPd.js.map +1 -0
- package/dist/cdn/chunks/formatAbsoluteDateTime-DMmop3C-.js.map +1 -1
- package/dist/cdn/chunks/formatRelativeTime-CtUU-QZ8.js.map +1 -1
- package/dist/cdn/chunks/fr-C5VUZogP.js.map +1 -1
- package/dist/cdn/chunks/fr-CI7OJoql.js.map +1 -1
- package/dist/cdn/chunks/htmlparser-ClUZ6waR.js.map +1 -1
- package/dist/cdn/chunks/{icons-Bad3WZ3G.js → icons-CQnjugjy.js} +38 -38
- package/dist/cdn/chunks/icons-CQnjugjy.js.map +1 -0
- package/dist/cdn/chunks/ja-DhlWUfke.js.map +1 -1
- package/dist/cdn/chunks/ja-x5JYxaCW.js.map +1 -1
- package/dist/cdn/chunks/keys-DCWeHkSF.js.map +1 -1
- package/dist/cdn/chunks/liquid.browser-BypTT2oc.js.map +1 -1
- package/dist/cdn/chunks/logger-ByvdoAwq.js.map +1 -1
- package/dist/cdn/chunks/nl-D8y5OWGB.js.map +1 -1
- package/dist/cdn/chunks/nl-UXxFyXV6.js.map +1 -1
- package/dist/cdn/chunks/preRenderCustomBlocks-h4ZFBKbD.js.map +1 -1
- package/dist/cdn/chunks/pt-BR-CoCwRUi0.js.map +1 -1
- package/dist/cdn/chunks/pt-BR-DHm3SP6W.js.map +1 -1
- package/dist/cdn/chunks/pt-BR-DMCbUBvJ.js.map +1 -1
- package/dist/cdn/chunks/pusher-BbIHJKf3.js.map +1 -1
- package/dist/cdn/chunks/readableTextColor-f8Kykfnh.js.map +1 -1
- package/dist/cdn/chunks/socialIcons-ZOCwCCyn.js.map +1 -1
- package/dist/cdn/chunks/src-BR3I3gOW.js.map +1 -1
- package/dist/cdn/chunks/{src-BxoLKnkl.js → src-CG5WUNg7.js} +4 -4
- package/dist/cdn/chunks/src-CG5WUNg7.js.map +1 -0
- package/dist/cdn/chunks/src-fZSLjhjy.js.map +1 -1
- package/dist/cdn/chunks/styleConstants-C_YAPdQS.js.map +1 -1
- package/dist/cdn/chunks/templateSettingsFields-YCFVBVYh.js.map +1 -1
- package/dist/cdn/chunks/timeouts-DHPZQ0G3.js.map +1 -1
- package/dist/cdn/chunks/{tiptap-DhLuKyDc.js → tiptap-D1u8JIUW.js} +1916 -1917
- package/dist/cdn/chunks/tiptap-D1u8JIUW.js.map +1 -0
- package/dist/cdn/chunks/useAliveFlag-DAlQLbM2.js.map +1 -1
- package/dist/cdn/chunks/useCloudI18n-CrjWbpbu.js.map +1 -1
- package/dist/cdn/chunks/{useEditorCore-yd40TFKy.js → useEditorCore-DoX2RgTl.js} +6 -6
- package/dist/cdn/chunks/useEditorCore-DoX2RgTl.js.map +1 -0
- package/dist/cdn/chunks/useEditorRoot-CshefZLP.js.map +1 -1
- package/dist/cdn/chunks/useI18n-CyO_Nmca.js.map +1 -1
- package/dist/cdn/chunks/useLogicTag-J_i_hvZg.js.map +1 -1
- package/dist/cdn/chunks/useMergeTag-C5MyHYxJ.js.map +1 -1
- package/dist/cdn/chunks/usePopoverPosition-DGXjXKjM.js.map +1 -1
- package/dist/cdn/chunks/useScrollToBlock-DgHZJvID.js.map +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +495 -466
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{check-eqb2JhqU.js → check-BMx_TLAS.js} +1 -1
- package/dist/{chevron-down-Dkr-7Ywl.js → chevron-down-KZf5mh9_.js} +1 -1
- package/dist/{chevron-right-Bge4XF_B.js → chevron-right-BLZ60Vxw.js} +1 -1
- package/dist/{chevron-up-CQAyl0kC.js → chevron-up-B9ynB8eU.js} +1 -1
- package/dist/{circle-alert-CYgTHKWr.js → circle-alert-pjvFFDrF.js} +1 -1
- package/dist/{clock-BgSJZJP5.js → clock-CiiTBfF3.js} +1 -1
- package/dist/{copy-mw6PVnOJ.js → copy-BF0_pQjH.js} +1 -1
- package/dist/{createLucideIcon-BxY5yz5u.js → createLucideIcon-C2YOVVWx.js} +8 -8
- package/dist/{dist-CQSVro7b.js → dist-B0dkvy7z.js} +1 -1
- package/dist/{dist-BJM3eFyT.js → dist-BPWuzECC.js} +1 -1
- package/dist/{dist-EDkj3Ub1.js → dist-BUHovM4k.js} +1 -1
- package/dist/{dist-BmsLcnrO.js → dist-BwoEME8p.js} +1 -1
- package/dist/{dist-DerFNpDY.js → dist-C2Ge44fD.js} +760 -761
- package/dist/{dist-BdHF7nyq.js → dist-CIxmOOSG.js} +5 -5
- package/dist/{dist-wyXxj3R1.js → dist-CJ7RZARo.js} +1 -1
- package/dist/{dist-Bl4rxpX9.js → dist-CxmLZQso.js} +1 -1
- package/dist/{dist-DyrEOKEJ.js → dist-DRmafAUz.js} +1 -1
- package/dist/{dist-Djmzp6wi.js → dist-DdOAotfz.js} +1 -1
- package/dist/{dist-BxVnMgXZ.js → dist-W_ERo6c_.js} +1 -1
- package/dist/{dist-DQbOebGW.js → dist-p-LkiWIQ.js} +1 -1
- package/dist/{editor-modal-qzmEVcIk.js → editor-modal-99FB40dl.js} +16 -16
- package/dist/en-BvOjRLiw.js +2 -0
- package/dist/{extensions-DoT2-_pz.js → extensions-DqQXxrvP.js} +3 -3
- package/dist/{eye-DphkRtAD.js → eye-RdXYgrQZ.js} +1 -1
- package/dist/{image-up-Qi2BXD7T.js → image-up-BwdoReQt.js} +1 -1
- package/dist/{info-VSyAs02q.js → info-zFMSGrL1.js} +1 -1
- package/dist/{link-CNuozGqD.js → link-D7orqFBT.js} +1 -1
- package/dist/{list-BA0I5Wmu.js → list-BGt4Pgxc.js} +1 -1
- package/dist/{loader-circle-z5eeqasv.js → loader-circle-BVBgkRGz.js} +1 -1
- package/dist/{message-circle-BsQ9hEup.js → message-circle-D8YLsarv.js} +1 -1
- package/dist/{package-OkXfuRoO.js → package-CuFvk0L5.js} +1 -1
- package/dist/{pencil-DFVFA7Dj.js → pencil-DRYbmZW7.js} +1 -1
- package/dist/{plus-D8bkVjZ7.js → plus-Dv0b3kh0.js} +1 -1
- package/dist/{refresh-cw-DPB7YFuz.js → refresh-cw-gYTIS5bJ.js} +1 -1
- package/dist/{search-C-dCgqIa.js → search-D84_Ki_a.js} +1 -1
- package/dist/{send-Cm2fy2zm.js → send-Cn-8_H_U.js} +1 -1
- package/dist/{shield-check-COgBYFDF.js → shield-check-BOoVWJtD.js} +1 -1
- package/dist/{smartphone-v0u_MOEV.js → smartphone-4Ej3PBw5.js} +1 -1
- package/dist/{socialIcons-CACVa6m_.js → socialIcons-CzRJskEk.js} +1 -1
- package/dist/{sparkles-Ds0RF8Iu.js → sparkles-D3vnNe7O.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/templatical-editor.js +404 -375
- package/dist/{text-align-start-DiavaIm6.js → text-align-start-Ci2h_Xly.js} +1 -1
- package/dist/{trash-DnOkfu2V.js → trash-wmi4UKvv.js} +1 -1
- package/dist/{triangle-alert-DGLAyXnh.js → triangle-alert-DJ0r2wmQ.js} +1 -1
- package/dist/{upload-BBDme2cy.js → upload-XMde-TXf.js} +1 -1
- package/dist/{useEditorCore-LyNoGs0m.js → useEditorCore-CAhRAya8.js} +12 -12
- package/dist/{useScrollToBlock-Dj4v3rxr.js → useScrollToBlock-B4F7KCrf.js} +1 -1
- package/dist/{x-3BHV3Q6K.js → x-BWrtpVl-.js} +1 -1
- package/package.json +10 -10
- package/dist/cdn/chunks/AiChatSidebar-DD17BwXn.js.map +0 -1
- package/dist/cdn/chunks/AiFeatureMenu-Di381OsL.js.map +0 -1
- package/dist/cdn/chunks/BlockIssueBadge-BR_N3nRh.js.map +0 -1
- package/dist/cdn/chunks/BlockPreviewCanvas-BXpcAiiY.js.map +0 -1
- package/dist/cdn/chunks/CloudHeaderExtras-BEM2eWfF.js.map +0 -1
- package/dist/cdn/chunks/CloudPanels-D7nK1-bm.js.map +0 -1
- package/dist/cdn/chunks/CollaboratorBar-D1SUwahw.js.map +0 -1
- package/dist/cdn/chunks/CommentsPanel-qsLMAlJU.js.map +0 -1
- package/dist/cdn/chunks/CommentsSidebar-CTwEE-s_.js.map +0 -1
- package/dist/cdn/chunks/CountdownToolbar-BJTcnIQ-.js.map +0 -1
- package/dist/cdn/chunks/DesignReferenceSidebar-Dl3eEGtS.js.map +0 -1
- package/dist/cdn/chunks/IssuesPanel-L9Gq_T8n.js.map +0 -1
- package/dist/cdn/chunks/LogicTagInsertButton-3pIbVE9p.js.map +0 -1
- package/dist/cdn/chunks/MediaEditModal-rTjYl-fV.js.map +0 -1
- package/dist/cdn/chunks/MediaPanels-DMXRQVqg.js.map +0 -1
- package/dist/cdn/chunks/MergeTagInput-JcBzr77a.js.map +0 -1
- package/dist/cdn/chunks/MergeTagModeToggle-CYmueXS2.js.map +0 -1
- package/dist/cdn/chunks/ParagraphEditor-DbjFDnYm.js.map +0 -1
- package/dist/cdn/chunks/RestoreVersionDialog-pANCWcce.js.map +0 -1
- package/dist/cdn/chunks/RichTextEditorContent-BtM1or8A.js.map +0 -1
- package/dist/cdn/chunks/SaveBlockDialog-CGM3mrGj.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksBrowserModal-C6Z8AvtD.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksPanels-DNwKmnhp.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksPickBar-D2p1ufB4.js.map +0 -1
- package/dist/cdn/chunks/TemplateScoringPanel-BDB4RErx.js.map +0 -1
- package/dist/cdn/chunks/TemplateSettings-DVN1t3yF.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-DZBCmBtT.js.map +0 -1
- package/dist/cdn/chunks/TestEmailPanel-1ibwYCUl.js.map +0 -1
- package/dist/cdn/chunks/TitleEditor-BRl2qKbd.js.map +0 -1
- package/dist/cdn/chunks/ToggleSwitch-niSL2uog.js.map +0 -1
- package/dist/cdn/chunks/Toolbar-tTl0P-rr.js.map +0 -1
- package/dist/cdn/chunks/TplModal-C_eIPykE.js.map +0 -1
- package/dist/cdn/chunks/VersionHistoryMenu-Ww57XAzj.js.map +0 -1
- package/dist/cdn/chunks/VersionHistoryPanels-w0EG_qVW.js.map +0 -1
- package/dist/cdn/chunks/VersionPreviewBanner-Bbd4C-AN.js.map +0 -1
- package/dist/cdn/chunks/WrapperBlock-Ch4KeMIb.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-CyPXFh7L.js.map +0 -1
- package/dist/cdn/chunks/editor-modal-BdI0iA5r.js.map +0 -1
- package/dist/cdn/chunks/en-Cs-nw16K.js +0 -2
- package/dist/cdn/chunks/extensions-DK_9-6Bd.js.map +0 -1
- package/dist/cdn/chunks/icons-Bad3WZ3G.js.map +0 -1
- package/dist/cdn/chunks/src-BxoLKnkl.js.map +0 -1
- package/dist/cdn/chunks/tiptap-DhLuKyDc.js.map +0 -1
- package/dist/cdn/chunks/useEditorCore-yd40TFKy.js.map +0 -1
- package/dist/en-1tgLzB8q.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja-x5JYxaCW.js","names":[],"sources":["../../../src/i18n/locales/ja.ts"],"sourcesContent":["import type en from \"./en\";\n\nconst translations: typeof en = {\n footer: {\n poweredBy: \"提供元:\",\n openSource: \"オープンソース\",\n },\n header: {\n save: \"保存\",\n saving: \"保存中...\",\n saved: \"保存済み\",\n unsaved: \"未保存\",\n saveFailed: \"保存に失敗しました\",\n saveNoTemplate: \"先にテンプレートを読み込むか作成してください\",\n templateName: \"テンプレート名\",\n rename: \"テンプレート名を変更\",\n untitled: \"無題\",\n updatedAt: \"更新: {time}\",\n createdAt: \"作成: {time}\",\n updatedJustNow: \"たった今更新\",\n createdJustNow: \"たった今作成\",\n },\n time: {\n justNow: \"たった今\",\n minutesAgo: \"{minutes}分前\",\n hoursAgo: \"{hours}時間前\",\n daysAgo: \"{days}日前\",\n },\n history: {\n collabWarning:\n \"元に戻すと、共同編集者の最近の変更にも影響する場合があります\",\n undo: \"元に戻す\",\n redo: \"やり直す\",\n },\n viewport: {\n label: \"表示サイズ\",\n desktop: \"デスクトップ\",\n mobile: \"モバイル\",\n },\n darkMode: {\n enable: \"ダークモードでプレビュー\",\n disable: \"ライトモードでプレビュー\",\n },\n previewMode: {\n enable: \"プレビューモード\",\n disable: \"プレビューを終了\",\n },\n blocks: {\n section: \"セクション\",\n image: \"画像\",\n title: \"見出し\",\n paragraph: \"テキスト\",\n button: \"ボタン\",\n divider: \"区切り線\",\n video: \"動画\",\n social: \"ソーシャルアイコン\",\n spacer: \"余白\",\n html: \"HTML\",\n menu: \"メニュー\",\n table: \"表\",\n countdown: \"カウントダウン\",\n },\n blockDefaults: {\n title: \"見出しを入力\",\n paragraph: \"文章を入力してください\",\n button: \"こちらをクリック\",\n },\n sidebar: {\n content: \"コンテンツ\",\n settings: \"設定\",\n noSelection: \"要素が選択されていません\",\n noSelectionHint: \"キャンバス上のブロックを選択すると編集できます\",\n },\n toolbar: {\n duplicate: \"複製\",\n delete: \"削除\",\n },\n titleEditor: {\n toolbar: \"見出しの書式\",\n bold: \"太字 (Ctrl+B)\",\n italic: \"斜体 (Ctrl+I)\",\n addLink: \"リンクを追加\",\n },\n paragraphEditor: {\n toolbar: \"文章の書式\",\n bold: \"太字 (Ctrl+B)\",\n italic: \"斜体 (Ctrl+I)\",\n underline: \"下線 (Ctrl+U)\",\n strikethrough: \"取り消し線\",\n subscript: \"下付き文字\",\n superscript: \"上付き文字\",\n addLink: \"リンクを追加\",\n bulletList: \"箇条書き\",\n numberedList: \"番号付きリスト\",\n alignLeft: \"左揃え\",\n alignCenter: \"中央揃え\",\n alignRight: \"右揃え\",\n alignJustify: \"両端揃え\",\n clearFormatting: \"書式をクリア\",\n insertEmoji: \"絵文字を挿入\",\n fontFamily: \"フォント\",\n defaultFont: \"標準\",\n fontSize: \"文字サイズ\",\n defaultSize: \"標準\",\n textColor: \"文字色\",\n highlightColor: \"ハイライト色\",\n lineHeight: \"行間\",\n letterSpacing: \"文字間隔\",\n emojiItemLabel: \"絵文字 {emoji} を挿入\",\n },\n blockActions: {\n drag: \"ドラッグで並べ替え、またはスペースキーでキーボード操作を開始\",\n dragLifted:\n \"{block} を移動中。上下キーで位置を変更し、スペースキーまたは Enter キーで確定、Esc キーでキャンセルします。\",\n duplicate: \"ブロックを複製\",\n delete: \"ブロックを削除\",\n hiddenOnViewport: \"{viewport} では非表示\",\n saveAsBlock: \"ブロックとして保存\",\n conditionToggle: \"表示条件を切り替え\",\n comments: \"コメント ({count})\",\n lifted: \"{block} を持ち上げました。{total} 個中 {position} 番目です。\",\n moved: \"{block} を {total} 個中 {position} 番目に移動しました。\",\n dropped: \"{block} を {total} 個中 {position} 番目に配置しました。\",\n cancelled:\n \"移動をキャンセルしました。{block} を {position} 番目に戻しました。\",\n },\n section: {\n dropHere: \"ここにブロックをドロップ\",\n columns: \"列\",\n column1: \"1列\",\n column2: \"2列\",\n column3: \"3列\",\n ratio12: \"比率 1:2\",\n ratio21: \"比率 2:1\",\n borderRadius: \"角の丸み\",\n wrapperEnable: \"外枠を追加\",\n wrapperLayoutConflict:\n \"このエディタはすでにメール全体に外枠を付けています。このセクションに外枠を追加することはできないため、プレビューと出力は失敗します。\",\n stackOnMobile: \"モバイルでは縦に並べる\",\n },\n linkDialog: {\n editLink: \"リンクを編集\",\n insertLink: \"リンクを挿入\",\n updateLink: \"リンクを更新\",\n removeLink: \"リンクを削除\",\n cancel: \"キャンセル\",\n urlPlaceholder: \"https://example.com\",\n urlLabel: \"URL\",\n colorLabel: \"リンクの色\",\n },\n title: {\n level: \"見出しレベル\",\n heading1: \"見出し 1 (36px)\",\n heading2: \"見出し 2 (28px)\",\n heading3: \"見出し 3 (22px)\",\n heading4: \"見出し 4 (18px)\",\n fontFamily: \"フォント\",\n inheritFont: \"テンプレートのフォントを使用\",\n color: \"色\",\n align: \"配置\",\n alignLeft: \"左揃え\",\n alignCenter: \"中央揃え\",\n alignRight: \"右揃え\",\n },\n emoji: {\n smileys: \"スマイリー\",\n gestures: \"ジェスチャー\",\n objects: \"オブジェクト\",\n },\n image: {\n imageUrl: \"画像のURL\",\n imageUrlPlaceholder: \"https://...\",\n altText: \"代替テキスト\",\n altTextPlaceholder: \"画像の説明\",\n width: \"幅\",\n fullWidth: \"全幅\",\n widthCustom: \"カスタム\",\n height: \"高さ\",\n heightAuto: \"自動\",\n heightCustom: \"カスタム\",\n borderRadius: \"角の丸み\",\n linkUrl: \"リンク先URL\",\n openInNewTab: \"新しいタブで開く\",\n placeholderUrl: \"プレースホルダー画像のURL\",\n optional: \"(任意)\",\n placeholderUrlPlaceholder: \"https://... (編集中のみ)\",\n placeholderUrlTooltip:\n \"画像のURLに差し込み項目を使う場合、編集中のレイアウト確認用に実際の画像を指定できます。最終的な出力には含まれません。\",\n clickToAdd: \"クリックして画像のURLを追加\",\n browseMedia: \"画像を選択\",\n dropToUpload: \"画像をドロップしてアップロード\",\n uploading: \"アップロード中…\",\n decorative: \"装飾用の画像\",\n decorativeHint:\n \"スクリーンリーダーには読み上げられません。余白や装飾として使う画像にのみ指定してください。\",\n },\n video: {\n videoUrl: \"動画のURL\",\n videoUrlPlaceholder: \"https://youtube.com/...\",\n openInNewTab: \"新しいタブで開く\",\n customThumbnail: \"独自のサムネイル\",\n optional: \"(任意)\",\n thumbnailPlaceholder: \"動画のURLから自動生成\",\n altText: \"代替テキスト\",\n altTextPlaceholder: \"動画の説明\",\n width: \"幅\",\n fullWidth: \"全幅\",\n height: \"高さ\",\n heightAuto: \"自動\",\n heightCustom: \"カスタム\",\n placeholderUrl: \"プレースホルダーサムネイルのURL\",\n placeholderUrlPlaceholder: \"https://... (編集中のみ)\",\n placeholderUrlTooltip:\n \"動画のURLに差し込み項目を使う場合、編集中のレイアウト確認用に実際のサムネイルを指定できます。最終的な出力には含まれません。\",\n addVideo: \"動画のURLを追加\",\n },\n button: {\n fontFamily: \"フォント\",\n inheritFont: \"テンプレートのフォントを使用\",\n text: \"テキスト\",\n url: \"URL\",\n urlPlaceholder: \"https://...\",\n openInNewTab: \"新しいタブで開く\",\n background: \"背景\",\n textColor: \"文字色\",\n borderRadius: \"角の丸み\",\n fontSize: \"文字サイズ\",\n width: \"幅\",\n widthAuto: \"内容に合わせる\",\n fullWidth: \"全幅\",\n widthCustom: \"カスタム\",\n },\n divider: {\n style: \"線の種類\",\n solid: \"実線\",\n dashed: \"破線\",\n dotted: \"点線\",\n color: \"色\",\n thickness: \"太さ\",\n },\n social: {\n icons: \"アイコン\",\n addIcon: \"アイコンを追加\",\n addIcons: \"ソーシャルアイコンを追加\",\n removeIcon: \"削除\",\n urlPlaceholder: \"https://...\",\n style: \"スタイル\",\n styleSolid: \"塗りつぶし\",\n styleOutlined: \"枠線\",\n styleRounded: \"角丸\",\n styleSquare: \"四角\",\n styleCircle: \"丸\",\n size: \"サイズ\",\n sizeSmall: \"小\",\n sizeMedium: \"中\",\n sizeLarge: \"大\",\n spacing: \"間隔\",\n align: \"配置\",\n platforms: {\n facebook: \"Facebook\",\n twitter: \"X (Twitter)\",\n instagram: \"Instagram\",\n linkedin: \"LinkedIn\",\n youtube: \"YouTube\",\n tiktok: \"TikTok\",\n pinterest: \"Pinterest\",\n email: \"メール\",\n website: \"ウェブサイト\",\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n discord: \"Discord\",\n snapchat: \"Snapchat\",\n reddit: \"Reddit\",\n github: \"GitHub\",\n dribbble: \"Dribbble\",\n behance: \"Behance\",\n },\n },\n menu: {\n items: \"メニュー項目\",\n addItem: \"項目を追加\",\n removeItem: \"削除\",\n text: \"テキスト\",\n urlPlaceholder: \"https://example.com\",\n openInNewTab: \"新しいタブで開く\",\n bold: \"太字\",\n underline: \"下線\",\n color: \"色\",\n linkColor: \"リンクの色\",\n fontSize: \"文字サイズ\",\n fontFamily: \"フォント\",\n separator: \"区切り\",\n separatorColor: \"区切りの色\",\n spacing: \"間隔\",\n textAlign: \"配置\",\n addLinks: \"メニューのリンクを追加\",\n },\n table: {\n dimensions: \"行と列\",\n rows: \"行\",\n columns: \"列\",\n hasHeaderRow: \"見出し行\",\n headerBackgroundColor: \"見出しの背景色\",\n noHeaderBg: \"背景なし\",\n borderColor: \"枠線の色\",\n borderWidth: \"枠線の太さ\",\n cellPadding: \"セル内の余白\",\n fontFamily: \"フォント\",\n fontSize: \"文字サイズ\",\n color: \"文字色\",\n textAlign: \"配置\",\n cellPlaceholder: \"テキストを入力...\",\n empty: \"表を追加\",\n },\n paragraph: {\n paragraphSpacing: \"段落の間隔\",\n },\n spacer: {\n height: \"高さ\",\n },\n countdown: {\n targetDate: \"目標日時\",\n timezone: \"タイムゾーン\",\n display: \"表示\",\n days: \"日\",\n hours: \"時間\",\n minutes: \"分\",\n seconds: \"秒\",\n separator: \"区切り文字\",\n fontFamily: \"フォント\",\n inheritFont: \"標準\",\n digitFontSize: \"数字のサイズ\",\n digitColor: \"数字の色\",\n labelColor: \"単位の色\",\n labelFontSize: \"単位のサイズ\",\n background: \"背景\",\n labels: \"単位の表示\",\n expiry: \"終了時のメッセージ\",\n expiredMessagePlaceholder: \"このオファーは終了しました\",\n expiredImageUrl: \"終了時の画像URL\",\n hideOnExpiry: \"終了後は非表示\",\n setDate: \"設定パネルで目標日時を指定してください\",\n hidden: \"非表示 (終了済み)\",\n },\n customBlocks: {\n definitionNotFound: \"不明なブロックです。このブロックは登録されていません\",\n renderError:\n \"このブロックを表示できませんでした。ブロックのテンプレートにエラーがないか確認してください。\",\n fields: {\n required: \"必須\",\n addItem: \"項目を追加\",\n removeItem: \"削除\",\n maxItemsReached: \"追加できる項目の上限に達しました\",\n minItemsRequired: \"少なくとも {count} 項目必要です\",\n },\n toolbar: {\n noDefinition:\n \"プロパティを編集するには、SDKの設定でこのブロックを登録してください\",\n },\n dataSource: {\n fetchButton: \"コンテンツを読み込む\",\n changeButton: \"変更\",\n fetching: \"読み込み中...\",\n readOnlyTooltip: \"この値はデータソースから読み込まれます\",\n fetchError: \"コンテンツを読み込めませんでした\",\n },\n },\n html: {\n content: \"HTMLコンテンツ\",\n preview: \"カスタムHTMLブロック\",\n empty: \"パネルでHTMLコンテンツを追加してください\",\n sanitizationHint:\n \"HTMLは無加工で出力されます。安全な内容であることを確認してください。\",\n },\n blockSettings: {\n spacing: \"余白\",\n padding: \"内側の余白\",\n background: \"背景\",\n borderWidth: \"枠線の太さ\",\n borderStyle: \"枠線のスタイル\",\n borderColor: \"枠線の色\",\n border: \"枠線\",\n borderSide: \"辺\",\n linkSides: \"すべての辺に同じ枠線\",\n unlinkSides: \"辺ごとに設定\",\n linkCorners: \"すべての角に同じ丸み\",\n unlinkCorners: \"角ごとに設定\",\n cornerTopLeft: \"左上\",\n cornerTopRight: \"右上\",\n cornerBottomRight: \"右下\",\n cornerBottomLeft: \"左下\",\n color: \"色\",\n display: \"表示\",\n showOnDesktop: \"デスクトップで表示\",\n showOnMobile: \"モバイルで表示\",\n hiddenOnDevice: \"{device} では非表示\",\n displayCondition: \"表示条件\",\n selectCondition: \"条件を選択\",\n removeCondition: \"条件を削除\",\n noCondition: \"常に表示\",\n conditionApplied: \"条件を適用しました\",\n customCondition: \"カスタム条件\",\n customConditionLabel: \"条件名\",\n customConditionBefore: \"前 (条件の開始)\",\n customConditionAfter: \"後 (条件の終了)\",\n applyCondition: \"適用\",\n cancelCondition: \"キャンセル\",\n customBadge: \"カスタム\",\n restoreHiddenBlocks: \"非表示のブロックをすべて表示\",\n },\n templateSettings: {\n layout: \"レイアウト\",\n widthPreset: \"幅のプリセット\",\n customWidth: \"カスタム幅\",\n appearance: \"外観\",\n backgroundColor: \"背景色\",\n textColor: \"文字色\",\n linkColor: \"リンクの色\",\n linkUnderline: \"リンクに下線を付ける\",\n fontFamily: \"フォント\",\n preheaderText: \"プレヘッダーテキスト\",\n preheaderTextPlaceholder: \"受信トレイで件名の後に表示される文章...\",\n preheaderTextHint:\n \"メールソフトのプレビューで件名の後に表示されます。差し込み項目を使用できます。\",\n language: \"言語\",\n contentLocale: \"メール本文の言語\",\n contentLocaleHint:\n \"BCP 47形式の言語コード (例: ja、en、de)。生成されるメールのlang属性に設定し、スクリーンリーダーが正しく読み上げられるようにします。\",\n contentDirection: \"右から左に表示\",\n contentDirectionHint:\n \"エディターの言語とは独立した、メール本文の文字方向です。未設定の場合は本文の言語 (アラビア語、ヘブライ語など) に従います。\",\n tips: \"ヒント\",\n tip1: \"メールテンプレートの標準的な幅は600pxです\",\n tip2: \"互換性を高めるにはWebセーフフォントを使用してください\",\n tip3: \"明るい背景のほうが読みやすくなります\",\n },\n spacingControl: {\n lockAll: \"四辺の値を揃える\",\n unlock: \"四辺の値を個別に設定\",\n top: \"上\",\n right: \"右\",\n bottom: \"下\",\n left: \"左\",\n decreaseTop: \"上の余白を減らす\",\n increaseTop: \"上の余白を増やす\",\n decreaseLeft: \"左の余白を減らす\",\n increaseLeft: \"左の余白を増やす\",\n decreaseRight: \"右の余白を減らす\",\n increaseRight: \"右の余白を増やす\",\n decreaseBottom: \"下の余白を減らす\",\n increaseBottom: \"下の余白を増やす\",\n },\n colorPicker: {\n pickColor: \"色を選択\",\n hexValue: \"16進数の色コード\",\n notSet: \"未設定\",\n clear: \"色の指定を解除\",\n transparent: \"透明\",\n presetColors: \"プリセットの色\",\n },\n mergeTag: {\n editAsText: \"テキストとして編集\",\n fieldGroup: \"差し込み項目を含む値\",\n remove: \"差し込み項目を削除\",\n insert: \"差し込み項目を挿入\",\n insertShort: \"差し込み項目\",\n editValue: \"差し込み項目の値を編集\",\n changeTag: \"差し込み項目を変更: {label}\",\n unknownLabel: \"差し込み項目\",\n deleteMergeTag: \"差し込み項目を削除\",\n suggestionEmpty: \"一致する差し込み項目がありません\",\n picker: {\n title: \"差し込み項目を挿入\",\n changeTitle: \"差し込み項目を変更\",\n searchPlaceholder: \"差し込み項目を検索\",\n searchAriaLabel: \"差し込み項目を検索\",\n noResults: \"一致する差し込み項目がありません\",\n empty: \"差し込み項目が設定されていません\",\n otherGroup: \"その他\",\n close: \"閉じる\",\n groupCount: \"{count}\",\n sample: \"プレビュー: {sample}\",\n },\n },\n logicTag: {\n insert: \"ロジックを挿入\",\n insertShort: \"ロジック\",\n picker: {\n title: \"ロジックを挿入\",\n searchPlaceholder: \"ロジックタグを検索\",\n searchAriaLabel: \"ロジックタグを検索\",\n noResults: \"一致するロジックタグがありません\",\n empty: \"ロジックタグが設定されていません\",\n otherGroup: \"その他\",\n close: \"閉じる\",\n },\n },\n canvas: {\n noBlocks: \"ブロックがありません\",\n dragHint: \"サイドバーからブロックをドラッグして作成を始めましょう\",\n dropHere: \"ここにドロップ\",\n aiHintChat: \"または\",\n aiHintChatSuffix: \"を使ってテンプレート全体を数秒で生成できます\",\n aiHintDesign:\n \"既存のデザインがありますか?スクリーンショット、画像、PDFをアップロードすると\",\n aiHintDesignSuffix: \"がすぐに再現します\",\n },\n savedBlocks: {\n title: \"保存済みブロック\",\n saveAsBlock: \"ブロックとして保存\",\n name: \"名前\",\n namePlaceholder: \"例: ヘッダー、フッター、CTA...\",\n save: \"ブロックを保存\",\n saving: \"保存中...\",\n cancel: \"キャンセル\",\n empty: \"保存済みブロックはまだありません\",\n emptyHint: \"テンプレートのブロックを保存すると、後で再利用できます。\",\n noResults: \"検索に一致する保存済みブロックがありません\",\n search: \"保存済みブロックを検索...\",\n loading: \"保存済みブロックを読み込み中…\",\n category: \"カテゴリー\",\n categoryPlaceholder: \"例: ヘッダー、キャンペーン... (任意)\",\n allCategories: \"すべてのカテゴリー\",\n filterByCategory: \"カテゴリーで絞り込む\",\n insert: \"挿入\",\n rename: \"名前を変更\",\n delete: \"削除\",\n deleteConfirm: \"この保存済みブロックを削除しますか?\",\n blockCount: \"{count} 個のブロック\",\n browse: \"保存済みブロックを参照\",\n selectToPreview: \"プレビューする保存済みブロックを選択\",\n insertAtBeginning: \"先頭\",\n insertAfterBlock: \"{block} の後\",\n insertAtEnd: \"末尾\",\n insertPosition: \"挿入位置\",\n close: \"閉じる\",\n pickToolbar: \"保存するブロックの選択\",\n pickCount: \"{count} 個のブロックを選択中\",\n pickHint: \"ブロックをクリックして選択・選択解除\",\n savingCount: \"{count} 個のブロックを保存:\",\n reorderHint: \"ドラッグで並べ替えられます。この順序で保存されます\",\n reorderHandle: \"{block} を並べ替え。{total} 個中 {position} 番目\",\n reorderAnnouncement:\n \"{block} を {total} 個中 {position} 番目に移動しました\",\n expand: \"展開\",\n collapse: \"折りたたむ\",\n expandPreview: \"{block} のプレビューを展開\",\n collapsePreview: \"{block} のプレビューを折りたたむ\",\n },\n comments: {\n button: \"コメント\",\n title: \"コメント\",\n close: \"閉じる\",\n placeholder: \"コメントを入力...\",\n replyPlaceholder: \"返信を入力...\",\n reply: \"返信\",\n resolve: \"解決済みにする\",\n unresolve: \"未解決に戻す\",\n delete: \"削除\",\n edit: \"編集\",\n cancel: \"キャンセル\",\n save: \"保存\",\n noComments: \"コメントはまだありません\",\n noCommentsHint:\n \"テンプレートや特定のブロックにコメントを追加すると会話を始められます。\",\n deleteConfirm: \"このコメントを削除しますか?\",\n filterAll: \"すべて\",\n filterUnresolved: \"未解決\",\n filterBlock: \"このブロック\",\n jumpToBlock: \"ブロックへ移動\",\n ownedByYou: \"あなた\",\n edited: \"編集済み\",\n resolvedBy: \"{name} が解決しました\",\n replyOne: \"{count} 件の返信\",\n replyMany: \"{count} 件の返信\",\n missingBlock: \"ブロックが見つかりません\",\n saveTemplateFirst:\n \"このブロックにコメントする前にテンプレートを保存してください。\",\n },\n versionHistory: {\n tooltip: \"バージョン履歴\",\n dropdownTitle: \"バージョン履歴\",\n empty: \"履歴はまだありません\",\n auto: \"自動\",\n olderVersion: \"古いバージョン\",\n newerVersion: \"新しいバージョン\",\n },\n versionPreview: {\n message: \"このテンプレートの以前のバージョンをプレビューしています。\",\n cancel: \"キャンセル\",\n restore: \"このバージョンを復元\",\n restoreConfirm: {\n title: \"このバージョンを復元しますか?\",\n unsavedWithSave:\n \"未保存の変更があります。先に保存すれば履歴に残ります。保存せずに復元すると失われます。\",\n unsavedNoSave:\n \"未保存の変更があり、保存先がありません。このバージョンを復元すると変更は失われます。\",\n saveAndRestore: \"保存してから復元\",\n restoreAnyway: \"保存せずに復元\",\n cancel: \"キャンセル\",\n },\n },\n previewResolution: {\n resolving: \"プレビューを生成中…\",\n failed:\n \"プレビューを生成できませんでした。差し込み前のテンプレートを表示します。\",\n hint: \"プレビューにはバックエンドで解決したデータを使用します。\",\n },\n mergeTagPreview: {\n label: \"差し込み項目の表示\",\n sample: \"サンプル\",\n labelView: \"ラベル\",\n },\n testEmail: {\n title: \"テストメールを送信\",\n recipientLabel: \"宛先\",\n recipientPlaceholder: \"you@example.com\",\n invalidAddress: \"有効なメールアドレスを入力してください。\",\n preview: \"プレビュー\",\n previewHint:\n \"差し込み項目は未解決のまま表示されます。実際の値はバックエンドで設定されます。\",\n previewHintSample:\n \"差し込み項目にはサンプル値が表示されます。実際の値はバックエンドで設定されます。\",\n recipientNotAllowed: \"このアドレスは許可された宛先に含まれていません。\",\n send: \"送信\",\n sending: \"送信中...\",\n cancel: \"キャンセル\",\n success: \"テストメールを送信しました\",\n button: \"テスト\",\n },\n sidebarNav: {\n browseSavedBlocks: \"保存済みブロックを参照\",\n palette: \"ブロック一覧\",\n insertBlock: \"{block} ブロックを挿入\",\n },\n landmarks: {\n canvas: \"メール編集エリア\",\n blockToolbar: \"ブロックのプロパティ\",\n rightSidebar: \"ブロックのプロパティとテンプレートの設定\",\n reorderAnnouncements: \"ブロックの並べ替えに関する通知\",\n },\n errors: {\n editorLoading: \"エディターを読み込み中...\",\n editorLoadFailed: \"エディターを読み込めませんでした。\",\n retry: \"再試行\",\n },\n issues: {\n panelTitle: \"問題\",\n panelTabLabel: \"問題\",\n groupErrors: \"エラー\",\n groupWarnings: \"警告\",\n groupInfo: \"情報\",\n jump: \"ブロックへ移動\",\n fix: \"修正\",\n emptyState: \"問題は見つかりませんでした。\",\n badgeError: \"エラーあり\",\n badgeWarning: \"警告あり\",\n issueCountTooltip: \"{count} 件の問題\",\n },\n smallScreen: {\n title: \"より大きな画面で開いてください\",\n message:\n \"この画面ではエディターに十分なスペースがありません。タブレットかデスクトップで開いて編集してください。\",\n },\n};\n\nexport default translations;\n"],"mappings":";AAEA,IAAM,IAA0B;CAC9B,QAAQ;EACN,WAAW;EACX,YAAY;CACd;CACA,QAAQ;EACN,MAAM;EACN,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,cAAc;EACd,QAAQ;EACR,UAAU;EACV,WAAW;EACX,WAAW;EACX,gBAAgB;EAChB,gBAAgB;CAClB;CACA,MAAM;EACJ,SAAS;EACT,YAAY;EACZ,UAAU;EACV,SAAS;CACX;CACA,SAAS;EACP,eACE;EACF,MAAM;EACN,MAAM;CACR;CACA,UAAU;EACR,OAAO;EACP,SAAS;EACT,QAAQ;CACV;CACA,UAAU;EACR,QAAQ;EACR,SAAS;CACX;CACA,aAAa;EACX,QAAQ;EACR,SAAS;CACX;CACA,QAAQ;EACN,SAAS;EACT,OAAO;EACP,OAAO;EACP,WAAW;EACX,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,MAAM;EACN,MAAM;EACN,OAAO;EACP,WAAW;CACb;CACA,eAAe;EACb,OAAO;EACP,WAAW;EACX,QAAQ;CACV;CACA,SAAS;EACP,SAAS;EACT,UAAU;EACV,aAAa;EACb,iBAAiB;CACnB;CACA,SAAS;EACP,WAAW;EACX,QAAQ;CACV;CACA,aAAa;EACX,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;CACX;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,QAAQ;EACR,WAAW;EACX,eAAe;EACf,WAAW;EACX,aAAa;EACb,SAAS;EACT,YAAY;EACZ,cAAc;EACd,WAAW;EACX,aAAa;EACb,YAAY;EACZ,cAAc;EACd,iBAAiB;EACjB,aAAa;EACb,YAAY;EACZ,aAAa;EACb,UAAU;EACV,aAAa;EACb,WAAW;EACX,gBAAgB;EAChB,YAAY;EACZ,eAAe;EACf,gBAAgB;CAClB;CACA,cAAc;EACZ,MAAM;EACN,YACE;EACF,WAAW;EACX,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,iBAAiB;EACjB,UAAU;EACV,QAAQ;EACR,OAAO;EACP,SAAS;EACT,WACE;CACJ;CACA,SAAS;EACP,UAAU;EACV,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,cAAc;EACd,eAAe;EACf,uBACE;EACF,eAAe;CACjB;CACA,YAAY;EACV,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,QAAQ;EACR,gBAAgB;EAChB,UAAU;EACV,YAAY;CACd;CACA,OAAO;EACL,OAAO;EACP,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,YAAY;EACZ,aAAa;EACb,OAAO;EACP,OAAO;EACP,WAAW;EACX,aAAa;EACb,YAAY;CACd;CACA,OAAO;EACL,SAAS;EACT,UAAU;EACV,SAAS;CACX;CACA,OAAO;EACL,UAAU;EACV,qBAAqB;EACrB,SAAS;EACT,oBAAoB;EACpB,OAAO;EACP,WAAW;EACX,aAAa;EACb,QAAQ;EACR,YAAY;EACZ,cAAc;EACd,cAAc;EACd,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,2BAA2B;EAC3B,uBACE;EACF,YAAY;EACZ,aAAa;EACb,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBACE;CACJ;CACA,OAAO;EACL,UAAU;EACV,qBAAqB;EACrB,cAAc;EACd,iBAAiB;EACjB,UAAU;EACV,sBAAsB;EACtB,SAAS;EACT,oBAAoB;EACpB,OAAO;EACP,WAAW;EACX,QAAQ;EACR,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,2BAA2B;EAC3B,uBACE;EACF,UAAU;CACZ;CACA,QAAQ;EACN,YAAY;EACZ,aAAa;EACb,MAAM;EACN,KAAK;EACL,gBAAgB;EAChB,cAAc;EACd,YAAY;EACZ,WAAW;EACX,cAAc;EACd,UAAU;EACV,OAAO;EACP,WAAW;EACX,WAAW;EACX,aAAa;CACf;CACA,SAAS;EACP,OAAO;EACP,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,WAAW;CACb;CACA,QAAQ;EACN,OAAO;EACP,SAAS;EACT,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,OAAO;EACP,YAAY;EACZ,eAAe;EACf,cAAc;EACd,aAAa;EACb,aAAa;EACb,MAAM;EACN,WAAW;EACX,YAAY;EACZ,WAAW;EACX,SAAS;EACT,OAAO;EACP,WAAW;GACT,UAAU;GACV,SAAS;GACT,WAAW;GACX,UAAU;GACV,SAAS;GACT,QAAQ;GACR,WAAW;GACX,OAAO;GACP,SAAS;GACT,UAAU;GACV,UAAU;GACV,SAAS;GACT,UAAU;GACV,QAAQ;GACR,QAAQ;GACR,UAAU;GACV,SAAS;EACX;CACF;CACA,MAAM;EACJ,OAAO;EACP,SAAS;EACT,YAAY;EACZ,MAAM;EACN,gBAAgB;EAChB,cAAc;EACd,MAAM;EACN,WAAW;EACX,OAAO;EACP,WAAW;EACX,UAAU;EACV,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,SAAS;EACT,WAAW;EACX,UAAU;CACZ;CACA,OAAO;EACL,YAAY;EACZ,MAAM;EACN,SAAS;EACT,cAAc;EACd,uBAAuB;EACvB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,aAAa;EACb,YAAY;EACZ,UAAU;EACV,OAAO;EACP,WAAW;EACX,iBAAiB;EACjB,OAAO;CACT;CACA,WAAW,EACT,kBAAkB,QACpB;CACA,QAAQ,EACN,QAAQ,KACV;CACA,WAAW;EACT,YAAY;EACZ,UAAU;EACV,SAAS;EACT,MAAM;EACN,OAAO;EACP,SAAS;EACT,SAAS;EACT,WAAW;EACX,YAAY;EACZ,aAAa;EACb,eAAe;EACf,YAAY;EACZ,YAAY;EACZ,eAAe;EACf,YAAY;EACZ,QAAQ;EACR,QAAQ;EACR,2BAA2B;EAC3B,iBAAiB;EACjB,cAAc;EACd,SAAS;EACT,QAAQ;CACV;CACA,cAAc;EACZ,oBAAoB;EACpB,aACE;EACF,QAAQ;GACN,UAAU;GACV,SAAS;GACT,YAAY;GACZ,iBAAiB;GACjB,kBAAkB;EACpB;EACA,SAAS,EACP,cACE,sCACJ;EACA,YAAY;GACV,aAAa;GACb,cAAc;GACd,UAAU;GACV,iBAAiB;GACjB,YAAY;EACd;CACF;CACA,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,kBACE;CACJ;CACA,eAAe;EACb,SAAS;EACT,SAAS;EACT,YAAY;EACZ,aAAa;EACb,aAAa;EACb,aAAa;EACb,QAAQ;EACR,YAAY;EACZ,WAAW;EACX,aAAa;EACb,aAAa;EACb,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,OAAO;EACP,SAAS;EACT,eAAe;EACf,cAAc;EACd,gBAAgB;EAChB,kBAAkB;EAClB,iBAAiB;EACjB,iBAAiB;EACjB,aAAa;EACb,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB;EACtB,uBAAuB;EACvB,sBAAsB;EACtB,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,qBAAqB;CACvB;CACA,kBAAkB;EAChB,QAAQ;EACR,aAAa;EACb,aAAa;EACb,YAAY;EACZ,iBAAiB;EACjB,WAAW;EACX,WAAW;EACX,eAAe;EACf,YAAY;EACZ,eAAe;EACf,0BAA0B;EAC1B,mBACE;EACF,UAAU;EACV,eAAe;EACf,mBACE;EACF,kBAAkB;EAClB,sBACE;EACF,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;CACR;CACA,gBAAgB;EACd,SAAS;EACT,QAAQ;EACR,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;EACN,aAAa;EACb,aAAa;EACb,cAAc;EACd,cAAc;EACd,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;CAClB;CACA,aAAa;EACX,WAAW;EACX,UAAU;EACV,QAAQ;EACR,OAAO;EACP,aAAa;EACb,cAAc;CAChB;CACA,UAAU;EACR,YAAY;EACZ,YAAY;EACZ,QAAQ;EACR,QAAQ;EACR,aAAa;EACb,WAAW;EACX,WAAW;EACX,cAAc;EACd,gBAAgB;EAChB,iBAAiB;EACjB,QAAQ;GACN,OAAO;GACP,aAAa;GACb,mBAAmB;GACnB,iBAAiB;GACjB,WAAW;GACX,OAAO;GACP,YAAY;GACZ,OAAO;GACP,YAAY;GACZ,QAAQ;EACV;CACF;CACA,UAAU;EACR,QAAQ;EACR,aAAa;EACb,QAAQ;GACN,OAAO;GACP,mBAAmB;GACnB,iBAAiB;GACjB,WAAW;GACX,OAAO;GACP,YAAY;GACZ,OAAO;EACT;CACF;CACA,QAAQ;EACN,UAAU;EACV,UAAU;EACV,UAAU;EACV,YAAY;EACZ,kBAAkB;EAClB,cACE;EACF,oBAAoB;CACtB;CACA,aAAa;EACX,OAAO;EACP,aAAa;EACb,MAAM;EACN,iBAAiB;EACjB,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,WAAW;EACX,WAAW;EACX,QAAQ;EACR,SAAS;EACT,UAAU;EACV,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EACR,QAAQ;EACR,eAAe;EACf,YAAY;EACZ,QAAQ;EACR,iBAAiB;EACjB,mBAAmB;EACnB,kBAAkB;EAClB,aAAa;EACb,gBAAgB;EAChB,OAAO;EACP,aAAa;EACb,WAAW;EACX,UAAU;EACV,aAAa;EACb,aAAa;EACb,eAAe;EACf,qBACE;EACF,QAAQ;EACR,UAAU;EACV,eAAe;EACf,iBAAiB;CACnB;CACA,UAAU;EACR,QAAQ;EACR,OAAO;EACP,OAAO;EACP,aAAa;EACb,kBAAkB;EAClB,OAAO;EACP,SAAS;EACT,WAAW;EACX,QAAQ;EACR,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,gBACE;EACF,eAAe;EACf,WAAW;EACX,kBAAkB;EAClB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,QAAQ;EACR,YAAY;EACZ,UAAU;EACV,WAAW;EACX,cAAc;EACd,mBACE;CACJ;CACA,gBAAgB;EACd,SAAS;EACT,eAAe;EACf,OAAO;EACP,MAAM;EACN,cAAc;EACd,cAAc;CAChB;CACA,gBAAgB;EACd,SAAS;EACT,QAAQ;EACR,SAAS;EACT,gBAAgB;GACd,OAAO;GACP,iBACE;GACF,eACE;GACF,gBAAgB;GAChB,eAAe;GACf,QAAQ;EACV;CACF;CACA,mBAAmB;EACjB,WAAW;EACX,QACE;EACF,MAAM;CACR;CACA,iBAAiB;EACf,OAAO;EACP,QAAQ;EACR,WAAW;CACb;CACA,WAAW;EACT,OAAO;EACP,gBAAgB;EAChB,sBAAsB;EACtB,gBAAgB;EAChB,SAAS;EACT,aACE;EACF,mBACE;EACF,qBAAqB;EACrB,MAAM;EACN,SAAS;EACT,QAAQ;EACR,SAAS;EACT,QAAQ;CACV;CACA,YAAY;EACV,mBAAmB;EACnB,SAAS;EACT,aAAa;CACf;CACA,WAAW;EACT,QAAQ;EACR,cAAc;EACd,cAAc;EACd,sBAAsB;CACxB;CACA,QAAQ;EACN,eAAe;EACf,kBAAkB;EAClB,OAAO;CACT;CACA,QAAQ;EACN,YAAY;EACZ,eAAe;EACf,aAAa;EACb,eAAe;EACf,WAAW;EACX,MAAM;EACN,KAAK;EACL,YAAY;EACZ,YAAY;EACZ,cAAc;EACd,mBAAmB;CACrB;CACA,aAAa;EACX,OAAO;EACP,SACE;CACJ;AACF"}
|
|
1
|
+
{"version":3,"file":"ja-x5JYxaCW.js","names":["translations"],"sources":["../../../src/i18n/locales/ja.ts"],"sourcesContent":["import type en from \"./en\";\n\nconst translations: typeof en = {\n footer: {\n poweredBy: \"提供元:\",\n openSource: \"オープンソース\",\n },\n header: {\n save: \"保存\",\n saving: \"保存中...\",\n saved: \"保存済み\",\n unsaved: \"未保存\",\n saveFailed: \"保存に失敗しました\",\n saveNoTemplate: \"先にテンプレートを読み込むか作成してください\",\n templateName: \"テンプレート名\",\n rename: \"テンプレート名を変更\",\n untitled: \"無題\",\n updatedAt: \"更新: {time}\",\n createdAt: \"作成: {time}\",\n updatedJustNow: \"たった今更新\",\n createdJustNow: \"たった今作成\",\n },\n time: {\n justNow: \"たった今\",\n minutesAgo: \"{minutes}分前\",\n hoursAgo: \"{hours}時間前\",\n daysAgo: \"{days}日前\",\n },\n history: {\n collabWarning:\n \"元に戻すと、共同編集者の最近の変更にも影響する場合があります\",\n undo: \"元に戻す\",\n redo: \"やり直す\",\n },\n viewport: {\n label: \"表示サイズ\",\n desktop: \"デスクトップ\",\n mobile: \"モバイル\",\n },\n darkMode: {\n enable: \"ダークモードでプレビュー\",\n disable: \"ライトモードでプレビュー\",\n },\n previewMode: {\n enable: \"プレビューモード\",\n disable: \"プレビューを終了\",\n },\n blocks: {\n section: \"セクション\",\n image: \"画像\",\n title: \"見出し\",\n paragraph: \"テキスト\",\n button: \"ボタン\",\n divider: \"区切り線\",\n video: \"動画\",\n social: \"ソーシャルアイコン\",\n spacer: \"余白\",\n html: \"HTML\",\n menu: \"メニュー\",\n table: \"表\",\n countdown: \"カウントダウン\",\n },\n blockDefaults: {\n title: \"見出しを入力\",\n paragraph: \"文章を入力してください\",\n button: \"こちらをクリック\",\n },\n sidebar: {\n content: \"コンテンツ\",\n settings: \"設定\",\n noSelection: \"要素が選択されていません\",\n noSelectionHint: \"キャンバス上のブロックを選択すると編集できます\",\n },\n toolbar: {\n duplicate: \"複製\",\n delete: \"削除\",\n },\n titleEditor: {\n toolbar: \"見出しの書式\",\n bold: \"太字 (Ctrl+B)\",\n italic: \"斜体 (Ctrl+I)\",\n addLink: \"リンクを追加\",\n },\n paragraphEditor: {\n toolbar: \"文章の書式\",\n bold: \"太字 (Ctrl+B)\",\n italic: \"斜体 (Ctrl+I)\",\n underline: \"下線 (Ctrl+U)\",\n strikethrough: \"取り消し線\",\n subscript: \"下付き文字\",\n superscript: \"上付き文字\",\n addLink: \"リンクを追加\",\n bulletList: \"箇条書き\",\n numberedList: \"番号付きリスト\",\n alignLeft: \"左揃え\",\n alignCenter: \"中央揃え\",\n alignRight: \"右揃え\",\n alignJustify: \"両端揃え\",\n clearFormatting: \"書式をクリア\",\n insertEmoji: \"絵文字を挿入\",\n fontFamily: \"フォント\",\n defaultFont: \"標準\",\n fontSize: \"文字サイズ\",\n defaultSize: \"標準\",\n textColor: \"文字色\",\n highlightColor: \"ハイライト色\",\n lineHeight: \"行間\",\n letterSpacing: \"文字間隔\",\n emojiItemLabel: \"絵文字 {emoji} を挿入\",\n },\n blockActions: {\n drag: \"ドラッグで並べ替え、またはスペースキーでキーボード操作を開始\",\n dragLifted:\n \"{block} を移動中。上下キーで位置を変更し、スペースキーまたは Enter キーで確定、Esc キーでキャンセルします。\",\n duplicate: \"ブロックを複製\",\n delete: \"ブロックを削除\",\n hiddenOnViewport: \"{viewport} では非表示\",\n saveAsBlock: \"ブロックとして保存\",\n conditionToggle: \"表示条件を切り替え\",\n comments: \"コメント ({count})\",\n lifted: \"{block} を持ち上げました。{total} 個中 {position} 番目です。\",\n moved: \"{block} を {total} 個中 {position} 番目に移動しました。\",\n dropped: \"{block} を {total} 個中 {position} 番目に配置しました。\",\n cancelled:\n \"移動をキャンセルしました。{block} を {position} 番目に戻しました。\",\n },\n section: {\n dropHere: \"ここにブロックをドロップ\",\n columns: \"列\",\n column1: \"1列\",\n column2: \"2列\",\n column3: \"3列\",\n ratio12: \"比率 1:2\",\n ratio21: \"比率 2:1\",\n borderRadius: \"角の丸み\",\n wrapperEnable: \"外枠を追加\",\n wrapperLayoutConflict:\n \"このエディタはすでにメール全体に外枠を付けています。このセクションに外枠を追加することはできないため、プレビューと出力は失敗します。\",\n stackOnMobile: \"モバイルでは縦に並べる\",\n },\n linkDialog: {\n editLink: \"リンクを編集\",\n insertLink: \"リンクを挿入\",\n updateLink: \"リンクを更新\",\n removeLink: \"リンクを削除\",\n cancel: \"キャンセル\",\n urlPlaceholder: \"https://example.com\",\n urlLabel: \"URL\",\n colorLabel: \"リンクの色\",\n },\n title: {\n level: \"見出しレベル\",\n heading1: \"見出し 1 (36px)\",\n heading2: \"見出し 2 (28px)\",\n heading3: \"見出し 3 (22px)\",\n heading4: \"見出し 4 (18px)\",\n fontFamily: \"フォント\",\n inheritFont: \"テンプレートのフォントを使用\",\n color: \"色\",\n align: \"配置\",\n alignLeft: \"左揃え\",\n alignCenter: \"中央揃え\",\n alignRight: \"右揃え\",\n },\n emoji: {\n smileys: \"スマイリー\",\n gestures: \"ジェスチャー\",\n objects: \"オブジェクト\",\n },\n image: {\n imageUrl: \"画像のURL\",\n imageUrlPlaceholder: \"https://...\",\n altText: \"代替テキスト\",\n altTextPlaceholder: \"画像の説明\",\n width: \"幅\",\n fullWidth: \"全幅\",\n widthCustom: \"カスタム\",\n height: \"高さ\",\n heightAuto: \"自動\",\n heightCustom: \"カスタム\",\n borderRadius: \"角の丸み\",\n linkUrl: \"リンク先URL\",\n openInNewTab: \"新しいタブで開く\",\n placeholderUrl: \"プレースホルダー画像のURL\",\n optional: \"(任意)\",\n placeholderUrlPlaceholder: \"https://... (編集中のみ)\",\n placeholderUrlTooltip:\n \"画像のURLに差し込み項目を使う場合、編集中のレイアウト確認用に実際の画像を指定できます。最終的な出力には含まれません。\",\n clickToAdd: \"クリックして画像のURLを追加\",\n browseMedia: \"画像を選択\",\n dropToUpload: \"画像をドロップしてアップロード\",\n uploading: \"アップロード中…\",\n decorative: \"装飾用の画像\",\n decorativeHint:\n \"スクリーンリーダーには読み上げられません。余白や装飾として使う画像にのみ指定してください。\",\n },\n video: {\n videoUrl: \"動画のURL\",\n videoUrlPlaceholder: \"https://youtube.com/...\",\n openInNewTab: \"新しいタブで開く\",\n customThumbnail: \"独自のサムネイル\",\n optional: \"(任意)\",\n thumbnailPlaceholder: \"動画のURLから自動生成\",\n altText: \"代替テキスト\",\n altTextPlaceholder: \"動画の説明\",\n width: \"幅\",\n fullWidth: \"全幅\",\n height: \"高さ\",\n heightAuto: \"自動\",\n heightCustom: \"カスタム\",\n placeholderUrl: \"プレースホルダーサムネイルのURL\",\n placeholderUrlPlaceholder: \"https://... (編集中のみ)\",\n placeholderUrlTooltip:\n \"動画のURLに差し込み項目を使う場合、編集中のレイアウト確認用に実際のサムネイルを指定できます。最終的な出力には含まれません。\",\n addVideo: \"動画のURLを追加\",\n },\n button: {\n fontFamily: \"フォント\",\n inheritFont: \"テンプレートのフォントを使用\",\n text: \"テキスト\",\n url: \"URL\",\n urlPlaceholder: \"https://...\",\n openInNewTab: \"新しいタブで開く\",\n background: \"背景\",\n textColor: \"文字色\",\n borderRadius: \"角の丸み\",\n fontSize: \"文字サイズ\",\n width: \"幅\",\n widthAuto: \"内容に合わせる\",\n fullWidth: \"全幅\",\n widthCustom: \"カスタム\",\n },\n divider: {\n style: \"線の種類\",\n solid: \"実線\",\n dashed: \"破線\",\n dotted: \"点線\",\n color: \"色\",\n thickness: \"太さ\",\n },\n social: {\n icons: \"アイコン\",\n addIcon: \"アイコンを追加\",\n addIcons: \"ソーシャルアイコンを追加\",\n removeIcon: \"削除\",\n urlPlaceholder: \"https://...\",\n style: \"スタイル\",\n styleSolid: \"塗りつぶし\",\n styleOutlined: \"枠線\",\n styleRounded: \"角丸\",\n styleSquare: \"四角\",\n styleCircle: \"丸\",\n size: \"サイズ\",\n sizeSmall: \"小\",\n sizeMedium: \"中\",\n sizeLarge: \"大\",\n spacing: \"間隔\",\n align: \"配置\",\n platforms: {\n facebook: \"Facebook\",\n twitter: \"X (Twitter)\",\n instagram: \"Instagram\",\n linkedin: \"LinkedIn\",\n youtube: \"YouTube\",\n tiktok: \"TikTok\",\n pinterest: \"Pinterest\",\n email: \"メール\",\n website: \"ウェブサイト\",\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n discord: \"Discord\",\n snapchat: \"Snapchat\",\n reddit: \"Reddit\",\n github: \"GitHub\",\n dribbble: \"Dribbble\",\n behance: \"Behance\",\n },\n },\n menu: {\n items: \"メニュー項目\",\n addItem: \"項目を追加\",\n removeItem: \"削除\",\n text: \"テキスト\",\n urlPlaceholder: \"https://example.com\",\n openInNewTab: \"新しいタブで開く\",\n bold: \"太字\",\n underline: \"下線\",\n color: \"色\",\n linkColor: \"リンクの色\",\n fontSize: \"文字サイズ\",\n fontFamily: \"フォント\",\n separator: \"区切り\",\n separatorColor: \"区切りの色\",\n spacing: \"間隔\",\n textAlign: \"配置\",\n addLinks: \"メニューのリンクを追加\",\n },\n table: {\n dimensions: \"行と列\",\n rows: \"行\",\n columns: \"列\",\n hasHeaderRow: \"見出し行\",\n headerBackgroundColor: \"見出しの背景色\",\n noHeaderBg: \"背景なし\",\n borderColor: \"枠線の色\",\n borderWidth: \"枠線の太さ\",\n cellPadding: \"セル内の余白\",\n fontFamily: \"フォント\",\n fontSize: \"文字サイズ\",\n color: \"文字色\",\n textAlign: \"配置\",\n cellPlaceholder: \"テキストを入力...\",\n empty: \"表を追加\",\n },\n paragraph: {\n paragraphSpacing: \"段落の間隔\",\n },\n spacer: {\n height: \"高さ\",\n },\n countdown: {\n targetDate: \"目標日時\",\n timezone: \"タイムゾーン\",\n display: \"表示\",\n days: \"日\",\n hours: \"時間\",\n minutes: \"分\",\n seconds: \"秒\",\n separator: \"区切り文字\",\n fontFamily: \"フォント\",\n inheritFont: \"標準\",\n digitFontSize: \"数字のサイズ\",\n digitColor: \"数字の色\",\n labelColor: \"単位の色\",\n labelFontSize: \"単位のサイズ\",\n background: \"背景\",\n labels: \"単位の表示\",\n expiry: \"終了時のメッセージ\",\n expiredMessagePlaceholder: \"このオファーは終了しました\",\n expiredImageUrl: \"終了時の画像URL\",\n hideOnExpiry: \"終了後は非表示\",\n setDate: \"設定パネルで目標日時を指定してください\",\n hidden: \"非表示 (終了済み)\",\n },\n customBlocks: {\n definitionNotFound: \"不明なブロックです。このブロックは登録されていません\",\n renderError:\n \"このブロックを表示できませんでした。ブロックのテンプレートにエラーがないか確認してください。\",\n fields: {\n required: \"必須\",\n addItem: \"項目を追加\",\n removeItem: \"削除\",\n maxItemsReached: \"追加できる項目の上限に達しました\",\n minItemsRequired: \"少なくとも {count} 項目必要です\",\n },\n toolbar: {\n noDefinition:\n \"プロパティを編集するには、SDKの設定でこのブロックを登録してください\",\n },\n dataSource: {\n fetchButton: \"コンテンツを読み込む\",\n changeButton: \"変更\",\n fetching: \"読み込み中...\",\n readOnlyTooltip: \"この値はデータソースから読み込まれます\",\n fetchError: \"コンテンツを読み込めませんでした\",\n },\n },\n html: {\n content: \"HTMLコンテンツ\",\n preview: \"カスタムHTMLブロック\",\n empty: \"パネルでHTMLコンテンツを追加してください\",\n sanitizationHint:\n \"HTMLは無加工で出力されます。安全な内容であることを確認してください。\",\n },\n blockSettings: {\n spacing: \"余白\",\n padding: \"内側の余白\",\n background: \"背景\",\n borderWidth: \"枠線の太さ\",\n borderStyle: \"枠線のスタイル\",\n borderColor: \"枠線の色\",\n border: \"枠線\",\n borderSide: \"辺\",\n linkSides: \"すべての辺に同じ枠線\",\n unlinkSides: \"辺ごとに設定\",\n linkCorners: \"すべての角に同じ丸み\",\n unlinkCorners: \"角ごとに設定\",\n cornerTopLeft: \"左上\",\n cornerTopRight: \"右上\",\n cornerBottomRight: \"右下\",\n cornerBottomLeft: \"左下\",\n color: \"色\",\n display: \"表示\",\n showOnDesktop: \"デスクトップで表示\",\n showOnMobile: \"モバイルで表示\",\n hiddenOnDevice: \"{device} では非表示\",\n displayCondition: \"表示条件\",\n selectCondition: \"条件を選択\",\n removeCondition: \"条件を削除\",\n noCondition: \"常に表示\",\n conditionApplied: \"条件を適用しました\",\n customCondition: \"カスタム条件\",\n customConditionLabel: \"条件名\",\n customConditionBefore: \"前 (条件の開始)\",\n customConditionAfter: \"後 (条件の終了)\",\n applyCondition: \"適用\",\n cancelCondition: \"キャンセル\",\n customBadge: \"カスタム\",\n restoreHiddenBlocks: \"非表示のブロックをすべて表示\",\n },\n templateSettings: {\n layout: \"レイアウト\",\n widthPreset: \"幅のプリセット\",\n customWidth: \"カスタム幅\",\n appearance: \"外観\",\n backgroundColor: \"背景色\",\n textColor: \"文字色\",\n linkColor: \"リンクの色\",\n linkUnderline: \"リンクに下線を付ける\",\n fontFamily: \"フォント\",\n preheaderText: \"プレヘッダーテキスト\",\n preheaderTextPlaceholder: \"受信トレイで件名の後に表示される文章...\",\n preheaderTextHint:\n \"メールソフトのプレビューで件名の後に表示されます。差し込み項目を使用できます。\",\n language: \"言語\",\n contentLocale: \"メール本文の言語\",\n contentLocaleHint:\n \"BCP 47形式の言語コード (例: ja、en、de)。生成されるメールのlang属性に設定し、スクリーンリーダーが正しく読み上げられるようにします。\",\n contentDirection: \"右から左に表示\",\n contentDirectionHint:\n \"エディターの言語とは独立した、メール本文の文字方向です。未設定の場合は本文の言語 (アラビア語、ヘブライ語など) に従います。\",\n tips: \"ヒント\",\n tip1: \"メールテンプレートの標準的な幅は600pxです\",\n tip2: \"互換性を高めるにはWebセーフフォントを使用してください\",\n tip3: \"明るい背景のほうが読みやすくなります\",\n },\n spacingControl: {\n lockAll: \"四辺の値を揃える\",\n unlock: \"四辺の値を個別に設定\",\n top: \"上\",\n right: \"右\",\n bottom: \"下\",\n left: \"左\",\n decreaseTop: \"上の余白を減らす\",\n increaseTop: \"上の余白を増やす\",\n decreaseLeft: \"左の余白を減らす\",\n increaseLeft: \"左の余白を増やす\",\n decreaseRight: \"右の余白を減らす\",\n increaseRight: \"右の余白を増やす\",\n decreaseBottom: \"下の余白を減らす\",\n increaseBottom: \"下の余白を増やす\",\n },\n colorPicker: {\n pickColor: \"色を選択\",\n hexValue: \"16進数の色コード\",\n notSet: \"未設定\",\n clear: \"色の指定を解除\",\n transparent: \"透明\",\n presetColors: \"プリセットの色\",\n },\n mergeTag: {\n editAsText: \"テキストとして編集\",\n fieldGroup: \"差し込み項目を含む値\",\n remove: \"差し込み項目を削除\",\n insert: \"差し込み項目を挿入\",\n insertShort: \"差し込み項目\",\n editValue: \"差し込み項目の値を編集\",\n changeTag: \"差し込み項目を変更: {label}\",\n unknownLabel: \"差し込み項目\",\n deleteMergeTag: \"差し込み項目を削除\",\n suggestionEmpty: \"一致する差し込み項目がありません\",\n picker: {\n title: \"差し込み項目を挿入\",\n changeTitle: \"差し込み項目を変更\",\n searchPlaceholder: \"差し込み項目を検索\",\n searchAriaLabel: \"差し込み項目を検索\",\n noResults: \"一致する差し込み項目がありません\",\n empty: \"差し込み項目が設定されていません\",\n otherGroup: \"その他\",\n close: \"閉じる\",\n groupCount: \"{count}\",\n sample: \"プレビュー: {sample}\",\n },\n },\n logicTag: {\n insert: \"ロジックを挿入\",\n insertShort: \"ロジック\",\n picker: {\n title: \"ロジックを挿入\",\n searchPlaceholder: \"ロジックタグを検索\",\n searchAriaLabel: \"ロジックタグを検索\",\n noResults: \"一致するロジックタグがありません\",\n empty: \"ロジックタグが設定されていません\",\n otherGroup: \"その他\",\n close: \"閉じる\",\n },\n },\n canvas: {\n noBlocks: \"ブロックがありません\",\n dragHint: \"サイドバーからブロックをドラッグして作成を始めましょう\",\n dropHere: \"ここにドロップ\",\n aiHintChat: \"または\",\n aiHintChatSuffix: \"を使ってテンプレート全体を数秒で生成できます\",\n aiHintDesign:\n \"既存のデザインがありますか?スクリーンショット、画像、PDFをアップロードすると\",\n aiHintDesignSuffix: \"がすぐに再現します\",\n },\n savedBlocks: {\n title: \"保存済みブロック\",\n saveAsBlock: \"ブロックとして保存\",\n name: \"名前\",\n namePlaceholder: \"例: ヘッダー、フッター、CTA...\",\n save: \"ブロックを保存\",\n saving: \"保存中...\",\n cancel: \"キャンセル\",\n empty: \"保存済みブロックはまだありません\",\n emptyHint: \"テンプレートのブロックを保存すると、後で再利用できます。\",\n noResults: \"検索に一致する保存済みブロックがありません\",\n search: \"保存済みブロックを検索...\",\n loading: \"保存済みブロックを読み込み中…\",\n category: \"カテゴリー\",\n categoryPlaceholder: \"例: ヘッダー、キャンペーン... (任意)\",\n allCategories: \"すべてのカテゴリー\",\n filterByCategory: \"カテゴリーで絞り込む\",\n insert: \"挿入\",\n rename: \"名前を変更\",\n delete: \"削除\",\n deleteConfirm: \"この保存済みブロックを削除しますか?\",\n blockCount: \"{count} 個のブロック\",\n browse: \"保存済みブロックを参照\",\n selectToPreview: \"プレビューする保存済みブロックを選択\",\n insertAtBeginning: \"先頭\",\n insertAfterBlock: \"{block} の後\",\n insertAtEnd: \"末尾\",\n insertPosition: \"挿入位置\",\n close: \"閉じる\",\n pickToolbar: \"保存するブロックの選択\",\n pickCount: \"{count} 個のブロックを選択中\",\n pickHint: \"ブロックをクリックして選択・選択解除\",\n savingCount: \"{count} 個のブロックを保存:\",\n reorderHint: \"ドラッグで並べ替えられます。この順序で保存されます\",\n reorderHandle: \"{block} を並べ替え。{total} 個中 {position} 番目\",\n reorderAnnouncement:\n \"{block} を {total} 個中 {position} 番目に移動しました\",\n expand: \"展開\",\n collapse: \"折りたたむ\",\n expandPreview: \"{block} のプレビューを展開\",\n collapsePreview: \"{block} のプレビューを折りたたむ\",\n },\n comments: {\n button: \"コメント\",\n title: \"コメント\",\n close: \"閉じる\",\n placeholder: \"コメントを入力...\",\n replyPlaceholder: \"返信を入力...\",\n reply: \"返信\",\n resolve: \"解決済みにする\",\n unresolve: \"未解決に戻す\",\n delete: \"削除\",\n edit: \"編集\",\n cancel: \"キャンセル\",\n save: \"保存\",\n noComments: \"コメントはまだありません\",\n noCommentsHint:\n \"テンプレートや特定のブロックにコメントを追加すると会話を始められます。\",\n deleteConfirm: \"このコメントを削除しますか?\",\n filterAll: \"すべて\",\n filterUnresolved: \"未解決\",\n filterBlock: \"このブロック\",\n jumpToBlock: \"ブロックへ移動\",\n ownedByYou: \"あなた\",\n edited: \"編集済み\",\n resolvedBy: \"{name} が解決しました\",\n replyOne: \"{count} 件の返信\",\n replyMany: \"{count} 件の返信\",\n missingBlock: \"ブロックが見つかりません\",\n saveTemplateFirst:\n \"このブロックにコメントする前にテンプレートを保存してください。\",\n },\n versionHistory: {\n tooltip: \"バージョン履歴\",\n dropdownTitle: \"バージョン履歴\",\n empty: \"履歴はまだありません\",\n auto: \"自動\",\n olderVersion: \"古いバージョン\",\n newerVersion: \"新しいバージョン\",\n },\n versionPreview: {\n message: \"このテンプレートの以前のバージョンをプレビューしています。\",\n cancel: \"キャンセル\",\n restore: \"このバージョンを復元\",\n restoreConfirm: {\n title: \"このバージョンを復元しますか?\",\n unsavedWithSave:\n \"未保存の変更があります。先に保存すれば履歴に残ります。保存せずに復元すると失われます。\",\n unsavedNoSave:\n \"未保存の変更があり、保存先がありません。このバージョンを復元すると変更は失われます。\",\n saveAndRestore: \"保存してから復元\",\n restoreAnyway: \"保存せずに復元\",\n cancel: \"キャンセル\",\n },\n },\n previewResolution: {\n resolving: \"プレビューを生成中…\",\n failed:\n \"プレビューを生成できませんでした。差し込み前のテンプレートを表示します。\",\n hint: \"プレビューにはバックエンドで解決したデータを使用します。\",\n },\n mergeTagPreview: {\n label: \"差し込み項目の表示\",\n sample: \"サンプル\",\n labelView: \"ラベル\",\n },\n testEmail: {\n title: \"テストメールを送信\",\n recipientLabel: \"宛先\",\n recipientPlaceholder: \"you@example.com\",\n invalidAddress: \"有効なメールアドレスを入力してください。\",\n preview: \"プレビュー\",\n previewHint:\n \"差し込み項目は未解決のまま表示されます。実際の値はバックエンドで設定されます。\",\n previewHintSample:\n \"差し込み項目にはサンプル値が表示されます。実際の値はバックエンドで設定されます。\",\n recipientNotAllowed: \"このアドレスは許可された宛先に含まれていません。\",\n send: \"送信\",\n sending: \"送信中...\",\n cancel: \"キャンセル\",\n success: \"テストメールを送信しました\",\n button: \"テスト\",\n },\n sidebarNav: {\n browseSavedBlocks: \"保存済みブロックを参照\",\n palette: \"ブロック一覧\",\n insertBlock: \"{block} ブロックを挿入\",\n },\n landmarks: {\n canvas: \"メール編集エリア\",\n blockToolbar: \"ブロックのプロパティ\",\n rightSidebar: \"ブロックのプロパティとテンプレートの設定\",\n reorderAnnouncements: \"ブロックの並べ替えに関する通知\",\n },\n errors: {\n editorLoading: \"エディターを読み込み中...\",\n editorLoadFailed: \"エディターを読み込めませんでした。\",\n retry: \"再試行\",\n },\n issues: {\n panelTitle: \"問題\",\n panelTabLabel: \"問題\",\n groupErrors: \"エラー\",\n groupWarnings: \"警告\",\n groupInfo: \"情報\",\n jump: \"ブロックへ移動\",\n fix: \"修正\",\n emptyState: \"問題は見つかりませんでした。\",\n badgeError: \"エラーあり\",\n badgeWarning: \"警告あり\",\n issueCountTooltip: \"{count} 件の問題\",\n },\n smallScreen: {\n title: \"より大きな画面で開いてください\",\n message:\n \"この画面ではエディターに十分なスペースがありません。タブレットかデスクトップで開いて編集してください。\",\n },\n};\n\nexport default translations;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys-DCWeHkSF.js","names":[],"sources":["../../../src/keys.ts"],"sourcesContent":["import {\n inject,\n shallowRef,\n type InjectionKey,\n type ComputedRef,\n type Ref,\n type ShallowRef,\n} from \"vue\";\nimport type {\n UseHistoryReturn,\n UseBlockActionsReturn,\n UseConditionPreviewReturn,\n} from \"@templatical/core\";\nimport type {\n BlockDefaults,\n CustomBlockDefinition,\n DisplayCondition,\n LogicPair,\n LogicTag,\n MergeTag,\n MergeTagRequestContext,\n ResolvePreview,\n SyntaxPreset,\n TemplateContent,\n} from \"@templatical/types\";\nimport type { Translations, CloudTranslations } from \"./i18n\";\nimport type {\n AuthManager,\n UseAiConfigReturn,\n UseTemplateScoringReturn,\n} from \"@templatical/core/cloud\";\nimport type { UseSavedBlocksReturn } from \"@templatical/core\";\nimport type { BaseEditorReturn } from \"./composables/useEditorCore\";\nimport type { ImageUrlResolver } from \"./composables/useImageUrlResolver\";\nimport type { UseFontsReturn } from \"./composables/useFonts\";\nimport type { UseBlockRegistryReturn } from \"./composables/useBlockRegistry\";\nimport type { UseKeyboardReorderReturn } from \"./composables/useKeyboardReorder\";\nimport type { EditorCapabilities } from \"./types/editor-capabilities\";\nimport type { OnRequestMedia } from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Shared keys (provided by useEditorCore, consumed by all components)\n// ---------------------------------------------------------------------------\n\nexport const TRANSLATIONS_KEY: InjectionKey<Translations> =\n Symbol(\"translations\");\n\nexport const EDITOR_KEY: InjectionKey<BaseEditorReturn> = Symbol(\"editor\");\n\nexport const HISTORY_KEY: InjectionKey<UseHistoryReturn> = Symbol(\"history\");\n\nexport const BLOCK_ACTIONS_KEY: InjectionKey<UseBlockActionsReturn> =\n Symbol(\"blockActions\");\n\nexport const CONDITION_PREVIEW_KEY: InjectionKey<UseConditionPreviewReturn> =\n Symbol(\"conditionPreview\");\n\n/**\n * Whether the hand-toggled display-condition filter applies on this surface —\n * provided per-surface, exactly like `USE_MERGE_TAG_SAMPLES_KEY`, and for the\n * same reason: the rule folds in both `previewMode` and whether a resolver owns\n * the preview, so a component that re-derived it from `CONDITION_PREVIEW_KEY`\n * plus the editor's `previewMode` could get one half wrong on its own.\n *\n * Absent means \"applies\" — a surface with no provider filters as it always has.\n */\nexport const APPLIES_CONDITION_FILTER_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"appliesConditionFilter\");\n\nexport const FONTS_MANAGER_KEY: InjectionKey<UseFontsReturn> =\n Symbol(\"fontsManager\");\n\nexport const THEME_STYLES_KEY: InjectionKey<\n ComputedRef<Record<string, string>>\n> = Symbol(\"themeStyles\");\n\nexport const UI_THEME_KEY: InjectionKey<ComputedRef<string>> =\n Symbol(\"tplUiTheme\");\n\n/**\n * The editor's UI locale, exactly as the consumer passed it to\n * `init({ locale })` — unresolved, so it may be unsupported or malformed.\n *\n * For `Intl` formatting only. Translated *strings* come from\n * `TRANSLATIONS_KEY`, which is already resolved to a supported bundle; this is\n * for the labels `Intl` builds itself (dates), where the browser's own locale\n * would otherwise win and disagree with the surrounding chrome. Always format\n * through `formatAbsoluteDateTime`, which guards the malformed case.\n *\n * Not the template's `settings.locale` — that is the *email's* language and\n * belongs to content, not chrome.\n */\nexport const UI_LOCALE_KEY: InjectionKey<string | undefined> =\n Symbol(\"tplUiLocale\");\n\n// A ref, not a plain object: the recipient-facing half of these defaults\n// (video alt, countdown labels) tracks the template's own `settings.locale`,\n// which the author can change while the editor is open. Read it at insert\n// time — a value destructured at setup goes stale.\nexport const BLOCK_DEFAULTS_KEY: InjectionKey<ComputedRef<BlockDefaults>> =\n Symbol(\"blockDefaults\");\n\nexport const BLOCK_REGISTRY_KEY: InjectionKey<UseBlockRegistryReturn> =\n Symbol(\"blockRegistry\");\n\nexport const CUSTOM_BLOCK_DEFINITIONS_KEY: InjectionKey<\n CustomBlockDefinition[]\n> = Symbol(\"customBlockDefinitions\");\n\n/**\n * Consumer-supplied block-palette allowlist + order (`config.paletteBlocks`).\n * `undefined` means the default full palette. Consumed by `Sidebar.vue`.\n */\nexport const PALETTE_BLOCKS_KEY: InjectionKey<string[] | undefined> =\n Symbol(\"paletteBlocks\");\n\n/**\n * Whether HTML blocks render a live sandboxed-iframe preview in the canvas\n * (`config.htmlBlockPreview`), normalized to a boolean. `false` (the default)\n * keeps the static placeholder card. Consumed by `HtmlBlock.vue`.\n */\nexport const HTML_BLOCK_PREVIEW_KEY: InjectionKey<boolean> =\n Symbol(\"htmlBlockPreview\");\n\n/**\n * Embedder layout overlay (`config.layout`). Provided by `useEditorCore`.\n * `undefined` when the host configured none. Consumed by preview surfaces\n * and the section toolbar; never written into editor content.\n */\nexport const LAYOUT_KEY: InjectionKey<TemplateContent | undefined> =\n Symbol(\"layout\");\n\n/**\n * Whether the section toolbar offers Add wrapper (`config.sectionWrapper`).\n * Provided by `useEditorCore`. `undefined` when the host configured none,\n * which is on (`!== false`). Consumed by `SectionToolbar`. Own key — not\n * folded into `LAYOUT_KEY`.\n */\nexport const SECTION_WRAPPER_KEY: InjectionKey<boolean | undefined> =\n Symbol(\"sectionWrapper\");\n\n/**\n * Consumer-supplied color-picker palette (`config.colors`), normalized to\n * `{ presets, allowCustom, allowCustomIgnored }` by `resolveColorsConfig`.\n * Provided by `useEditorCore`, consumed by every `ColorPicker`. The inject\n * default (`DEFAULT_RESOLVED_COLORS` = `{ presets: [], allowCustom: true,\n * allowCustomIgnored: false }`) makes an unconfigured picker render exactly\n * as before.\n */\nexport const COLORS_KEY: InjectionKey<\n import(\"./utils/resolveColorsConfig\").ResolvedColors\n> = Symbol(\"colors\");\n\n/**\n * The template settings the panel may render (`config.templateSettings.fields`),\n * resolved to a set of `TemplateSettings` member names by\n * `resolveTemplateSettingsFields`. Provided by `useEditorCore`, consumed by\n * `TemplateSettings.vue` for its cards and by `RightSidebar.vue` for the\n * Settings tab.\n *\n * Consumers inject with `ALL_TEMPLATE_SETTINGS_FIELDS` as the default, never an\n * empty set: the key is absent for anyone who configured nothing, and this\n * config only ever narrows.\n */\nexport const TEMPLATE_SETTINGS_FIELDS_KEY: InjectionKey<\n ReadonlySet<import(\"./utils/templateSettingsFields\").TemplateSettingsField>\n> = Symbol(\"templateSettingsFields\");\n\nexport const CUSTOM_BLOCK_STYLESHEETS_KEY: InjectionKey<ComputedRef<string[]>> =\n Symbol(\"customBlockStylesheets\");\n\n/**\n * The configured merge tags, as a ref so `editor.setMergeTags()` repaints\n * everything that renders one. `useEditorCore` is the only writer.\n *\n * `shallowRef`, not `ref`: the list is replaced wholesale, and a deep proxy\n * would make an in-place `push` by a consumer holding the original array\n * behave differently from the same push today. Consumers must go through\n * `setMergeTags`.\n */\nexport const MERGE_TAGS_KEY: InjectionKey<ShallowRef<MergeTag[]>> =\n Symbol(\"mergeTags\");\n\n/**\n * Inject default for {@link MERGE_TAGS_KEY} — headless callers and tests mount\n * components with no editor above them. Shared rather than allocated per call,\n * and never written: an editor always provides its own ref.\n */\nexport const NO_MERGE_TAGS: ShallowRef<MergeTag[]> = shallowRef([]);\n\nexport const MERGE_TAG_SYNTAX_KEY: InjectionKey<SyntaxPreset> =\n Symbol(\"mergeTagSyntax\");\n\nexport const ON_REQUEST_MERGE_TAG_KEY: InjectionKey<\n ((context?: MergeTagRequestContext) => Promise<MergeTag | null>) | null\n> = Symbol(\"onRequestMergeTag\");\n\nexport const MERGE_TAG_AUTOCOMPLETE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagAutocomplete\",\n);\n\n/**\n * Whether a merge tag's tooltip reveals the raw token behind its label.\n * Resolved once from `mergeTags.showRawValue` and read by every surface that\n * renders a tag, so a chip in a sidebar field and a chip on the canvas cannot\n * disagree about whether the token is visible.\n */\nexport const MERGE_TAG_SHOW_RAW_VALUE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagShowRawValue\",\n);\n\n/**\n * The user's choice between the previews' two merge-tag views: `true` for\n * Sample (tags replaced by their `MergeTag.sample`, rendered as ordinary text)\n * and `false` for Label (tags shown as their label with the usual cue).\n *\n * Session state owned by `useEditorCore` and driven by a toggle that exists\n * only on preview surfaces. Defaults to Sample.\n */\nexport const MERGE_TAG_SAMPLE_MODE_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagSampleMode\");\n\n/**\n * Whether **the current render surface** substitutes samples.\n *\n * Provided per surface rather than globally, and that is the whole point:\n * substitution must never happen while editing, so `Canvas.vue` folds in its\n * `previewMode` flag and provides `false` whenever the canvas is editable, no\n * matter what the mode ref says. Preview surfaces provide the mode directly.\n *\n * Block components inject **this** key. They must never read\n * `MERGE_TAG_SAMPLE_MODE_KEY`, which would bypass the editing guard.\n */\nexport const USE_MERGE_TAG_SAMPLES_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"useMergeTagSamples\");\n\n/**\n * The `resolvePreview` seam — resolved content plus its loading and failure\n * state. Provided by `useEditorCore` so every preview surface shares one\n * lifecycle; `null` when the consumer configured no hook.\n *\n * Surfaces read `content` from here instead of `editor.content`, and gate the\n * Sample/Label toggle on `supersedesSamples`.\n */\n/**\n * The raw `config.resolvePreview` hook.\n *\n * Provided alongside PREVIEW_RESOLUTION_KEY because the test-email dialog needs\n * its **own** resolution instance — it resolves for the selected recipient,\n * which the editor's canvas has no notion of — and so cannot reuse the shared\n * one. `undefined` when the consumer configured no hook.\n */\nexport const RESOLVE_PREVIEW_KEY: InjectionKey<ResolvePreview | undefined> =\n Symbol(\"resolvePreview\");\n\nexport const PREVIEW_RESOLUTION_KEY: InjectionKey<\n import(\"./composables/usePreviewResolution\").UsePreviewResolutionReturn | null\n> = Symbol(\"previewResolution\");\n\n/**\n * Singleton state for the built-in merge tag picker modal. Provided by\n * `useEditorCore`, consumed by `useMergeTag.requestMergeTag()` (to open\n * the modal as a fall-through when only `mergeTags.tags` is configured)\n * and by `MergeTagPickerModal.vue` (to render and resolve).\n */\nexport const MERGE_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useMergeTagPicker\").UseMergeTagPickerReturn\n> = Symbol(\"mergeTagPicker\");\n\n/**\n * One \"a merge tag request is in flight\" flag per editor, provided by\n * `useEditorCore` and injected by every `useMergeTag()` call.\n *\n * Shared, not per-call: `useRichTextEditor.handleClickOutside` suppresses\n * editor teardown while this is set, because the picker modal mounts in the\n * popover root — outside `.tpl-text-editor-wrapper`. A ref private to one\n * `useMergeTag()` instance leaves that guard blind to a picker opened from\n * any other host (the link dialog's URL field), so the click on a picker row\n * tears the block out of edit mode and the pending insert then no-ops on its\n * own disposal guard. Falls back to a private ref for headless callers.\n */\nexport const MERGE_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagRequesting\");\n\n/** Logic-tag counterpart of {@link MERGE_TAG_REQUESTING_KEY}. */\nexport const LOGIC_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"logicTagRequesting\");\n\n// ---------------------------------------------------------------------------\n// Logic tags — a standalone feature, separate from merge tags. Native\n// highlighting (LogicMergeTagNode) is always on; these drive the dedicated\n// logic picker + insertion.\n// ---------------------------------------------------------------------------\n\nexport const LOGIC_TAGS_KEY: InjectionKey<LogicTag[]> = Symbol(\"logicTags\");\n\nexport const LOGIC_PAIRS_KEY: InjectionKey<LogicPair[]> = Symbol(\"logicPairs\");\n\n/**\n * Singleton state for the built-in logic picker modal. Provided by\n * `useEditorCore`, consumed by `useLogicTag.requestLogicTag()` (to open the modal)\n * and by `LogicTagPickerModal.vue` (to render and resolve).\n */\nexport const LOGIC_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useLogicTagPicker\").UseLogicTagPickerReturn\n> = Symbol(\"logicPicker\");\n\nexport const ON_REQUEST_LOGIC_TAG_KEY: InjectionKey<\n (() => Promise<LogicTag | LogicPair | null>) | null\n> = Symbol(\"onRequestLogic\");\n\nexport const ON_REQUEST_MEDIA_KEY: InjectionKey<OnRequestMedia | null> =\n Symbol(\"onRequestMedia\");\n\n/**\n * Whether a dropped image file may be uploaded. Distinct from Browse: a\n * read-only provider (`create: false`) still opens the library, but the\n * drop zone must not highlight. True when a host `onRequestMedia` is set\n * (the callback receives `files`) or when `provider.create` is a function.\n *\n * `null` when neither a provider nor a callback is configured — image\n * fields stay URL-only and drop is off. Injected as a computed; consumed\n * by ImageBlock / ImageToolbar / ImageField with a `null` default.\n */\nexport const CAN_DROP_MEDIA_KEY: InjectionKey<ComputedRef<boolean> | null> =\n Symbol(\"canDropMedia\");\n\n/**\n * Per-editor display-only image URL resolver (`config.resolveImageUrl`),\n * wrapped with a per-src cache by `createImageUrlResolver`. `null` when the\n * host doesn't resolve — the canvas then displays canonical src values\n * verbatim. Consumed via `useResolvedImageSrc` in image-displaying blocks.\n */\nexport const IMAGE_URL_RESOLVER_KEY: InjectionKey<ImageUrlResolver | null> =\n Symbol(\"imageUrlResolver\");\n\nexport const DISPLAY_CONDITIONS_KEY: InjectionKey<DisplayCondition[]> =\n Symbol(\"displayConditions\");\n\nexport const ALLOW_CUSTOM_CONDITIONS_KEY: InjectionKey<boolean> = Symbol(\n \"allowCustomConditions\",\n);\n\nexport const CAPABILITIES_KEY: InjectionKey<EditorCapabilities> =\n Symbol(\"capabilities\");\n\nexport const KEYBOARD_REORDER_KEY: InjectionKey<UseKeyboardReorderReturn> =\n Symbol(\"keyboardReorder\");\n\nexport const TEMPLATE_LINT_KEY: InjectionKey<\n import(\"./composables/useTemplateLint\").UseTemplateLintReturn | null\n> = Symbol(\"templateLint\");\n\n/**\n * The editor's effective DOM root — `Document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true`. Composables that read `document.activeElement`,\n * popup mount targets, etc. should inject this and use the root-aware API\n * (both `Document` and `ShadowRoot` expose `activeElement` etc.).\n */\nexport const EDITOR_ROOT_KEY: InjectionKey<Document | ShadowRoot> =\n Symbol(\"editorRoot\");\n\n/**\n * Mount target for popovers, toolbars, and modal dialogs — never\n * `document.body`. Provided by `useEditorCore` as a ref bound\n * to a `<div class=\"tpl-popover-root\" />` rendered at the top level of the\n * editor template. Teleports use `:to=\"popoverRoot\"` so popups land inside\n * the editor's effective root — `document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true` — instead of escaping the shadow boundary.\n *\n * Null until the editor's template mounts; consumers must guard with\n * `v-if=\"popoverRoot\"` before passing to `<Teleport>`.\n */\nexport const POPOVER_ROOT_KEY: InjectionKey<Ref<HTMLElement | null>> =\n Symbol(\"popoverRoot\");\n\n/**\n * Reactive saved-blocks state, provided by `useSavedBlocksFeature` when a\n * `SavedBlocksProvider` is configured. Shared by OSS and Cloud — the storage\n * transport lives behind the provider, so this key is not cloud-specific.\n */\nexport const SAVED_BLOCKS_KEY: InjectionKey<UseSavedBlocksReturn> =\n Symbol(\"savedBlocks\");\n\n// ---------------------------------------------------------------------------\n// Cloud-only keys (provided by createCloudRuntime, consumed by cloud components)\n// ---------------------------------------------------------------------------\n\nexport const AUTH_MANAGER_KEY: InjectionKey<AuthManager> =\n Symbol(\"authManager\");\n\nexport const AI_CONFIG_KEY: InjectionKey<UseAiConfigReturn> =\n Symbol(\"aiConfig\");\n\n// Comments are deliberately not injected: the panel takes `useCommentsFeature`'s\n// return as a **prop** the way `TestEmailPanel` and `SavedBlocksPanels` do, and the\n// per-block indicators read the comments entry on `CAPABILITIES_KEY`. Nothing\n// injects the composable itself.\n\nexport const SCORING_KEY: InjectionKey<UseTemplateScoringReturn> =\n Symbol(\"scoring\");\n\nexport const CLOUD_TRANSLATIONS_KEY: InjectionKey<CloudTranslations> =\n Symbol(\"cloudTranslations\");\n\n// ---------------------------------------------------------------------------\n// Helper for required injections with explicit null default + throw\n// ---------------------------------------------------------------------------\n\nexport function requireInject<T>(\n key: InjectionKey<T>,\n componentName: string,\n): T {\n const value = inject(key, null) as T | null;\n if (value === null || value === undefined) {\n throw new Error(\n `${componentName} requires a provider for ${key.description ?? \"unknown key\"}. Ensure it renders inside the editor, below Editor.vue.`,\n );\n }\n return value;\n}\n"],"mappings":";;AA4CA,IAAa,IACX,OAAO,cAAc,GAEV,IAA6C,OAAO,QAAQ,GAE5D,IAA8C,OAAO,SAAS,GAE9D,IACX,OAAO,cAAc,GAEV,IACX,OAAO,kBAAkB,GAWd,IACX,OAAO,wBAAwB,GAEpB,IACX,OAAO,cAAc,GAEV,IAET,OAAO,aAAa,GAEX,IACX,OAAO,YAAY,GAeR,IACX,OAAO,aAAa,GAMT,IACX,OAAO,eAAe,GAEX,IACX,OAAO,eAAe,GAEX,IAET,OAAO,wBAAwB,GAMtB,IACX,OAAO,eAAe,GAOX,IACX,OAAO,kBAAkB,GAOd,IACX,OAAO,QAAQ,GAQJ,IACX,OAAO,gBAAgB,GAUZ,IAET,OAAO,QAAQ,GAaN,IAET,OAAO,wBAAwB,GAEtB,IACX,OAAO,wBAAwB,GAWpB,IACX,OAAO,WAAW,GAOP,IAAwC,EAAW,CAAC,CAAC,GAErD,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAEjB,IAAoD,OAC/D,sBACF,GAQa,IAAsD,OACjE,sBACF,GAUa,KACX,OAAO,oBAAoB,GAahB,IACX,OAAO,oBAAoB,GAkBhB,IACX,OAAO,gBAAgB,GAEZ,IAET,OAAO,mBAAmB,GAQjB,IAET,OAAO,gBAAgB,GAcd,IACX,OAAO,oBAAoB,GAGhB,IACX,OAAO,oBAAoB,GAQhB,IAA2C,OAAO,WAAW,GAE7D,IAA6C,OAAO,YAAY,GAOhE,IAET,OAAO,aAAa,GAEX,IAET,OAAO,gBAAgB,GAEd,IACX,OAAO,gBAAgB,GAYZ,IACX,OAAO,cAAc,GAQV,IACX,OAAO,kBAAkB,GAEd,IACX,OAAO,mBAAmB,GAEf,IAAqD,OAChE,uBACF,GAEa,IACX,OAAO,cAAc,GAEV,IACX,OAAO,iBAAiB,GAEb,IAET,OAAO,cAAc,GAQZ,IACX,OAAO,YAAY,GAaR,IACX,OAAO,aAAa,GAOT,IACX,OAAO,aAAa,GAMT,IACX,OAAO,aAAa,GAET,IACX,OAAO,UAAU,GAON,IACX,OAAO,SAAS,GAEL,IACX,OAAO,mBAAmB;AAM5B,SAAgB,EACd,GACA,GACG;CACH,IAAM,IAAQ,EAAO,GAAK,IAAI;CAC9B,IAAI,KAAU,MACZ,MAAU,MACR,GAAG,EAAc,2BAA2B,EAAI,eAAe,cAAc,yDAC/E;CAEF,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"keys-DCWeHkSF.js","names":["inject","shallowRef","TRANSLATIONS_KEY","EDITOR_KEY","HISTORY_KEY","BLOCK_ACTIONS_KEY","CONDITION_PREVIEW_KEY","APPLIES_CONDITION_FILTER_KEY","FONTS_MANAGER_KEY","THEME_STYLES_KEY","UI_THEME_KEY","UI_LOCALE_KEY","BLOCK_DEFAULTS_KEY","BLOCK_REGISTRY_KEY","CUSTOM_BLOCK_DEFINITIONS_KEY","PALETTE_BLOCKS_KEY","HTML_BLOCK_PREVIEW_KEY","LAYOUT_KEY","SECTION_WRAPPER_KEY","COLORS_KEY","TEMPLATE_SETTINGS_FIELDS_KEY","CUSTOM_BLOCK_STYLESHEETS_KEY","MERGE_TAGS_KEY","NO_MERGE_TAGS","MERGE_TAG_SYNTAX_KEY","ON_REQUEST_MERGE_TAG_KEY","MERGE_TAG_AUTOCOMPLETE_KEY","MERGE_TAG_SHOW_RAW_VALUE_KEY","MERGE_TAG_SAMPLE_MODE_KEY","USE_MERGE_TAG_SAMPLES_KEY","RESOLVE_PREVIEW_KEY","PREVIEW_RESOLUTION_KEY","MERGE_TAG_PICKER_KEY","MERGE_TAG_REQUESTING_KEY","LOGIC_TAG_REQUESTING_KEY","LOGIC_TAGS_KEY","LOGIC_PAIRS_KEY","LOGIC_TAG_PICKER_KEY","ON_REQUEST_LOGIC_TAG_KEY","ON_REQUEST_MEDIA_KEY","CAN_DROP_MEDIA_KEY","IMAGE_URL_RESOLVER_KEY","DISPLAY_CONDITIONS_KEY","ALLOW_CUSTOM_CONDITIONS_KEY","CAPABILITIES_KEY","KEYBOARD_REORDER_KEY","TEMPLATE_LINT_KEY","EDITOR_ROOT_KEY","POPOVER_ROOT_KEY","SAVED_BLOCKS_KEY","AUTH_MANAGER_KEY","AI_CONFIG_KEY","SCORING_KEY","CLOUD_TRANSLATIONS_KEY","requireInject","value","key","componentName"],"sources":["../../../src/keys.ts"],"sourcesContent":["import {\n inject,\n shallowRef,\n type InjectionKey,\n type ComputedRef,\n type Ref,\n type ShallowRef,\n} from \"vue\";\nimport type {\n UseHistoryReturn,\n UseBlockActionsReturn,\n UseConditionPreviewReturn,\n} from \"@templatical/core\";\nimport type {\n BlockDefaults,\n CustomBlockDefinition,\n DisplayCondition,\n LogicPair,\n LogicTag,\n MergeTag,\n MergeTagRequestContext,\n ResolvePreview,\n SyntaxPreset,\n TemplateContent,\n} from \"@templatical/types\";\nimport type { Translations, CloudTranslations } from \"./i18n\";\nimport type {\n AuthManager,\n UseAiConfigReturn,\n UseTemplateScoringReturn,\n} from \"@templatical/core/cloud\";\nimport type { UseSavedBlocksReturn } from \"@templatical/core\";\nimport type { BaseEditorReturn } from \"./composables/useEditorCore\";\nimport type { ImageUrlResolver } from \"./composables/useImageUrlResolver\";\nimport type { UseFontsReturn } from \"./composables/useFonts\";\nimport type { UseBlockRegistryReturn } from \"./composables/useBlockRegistry\";\nimport type { UseKeyboardReorderReturn } from \"./composables/useKeyboardReorder\";\nimport type { EditorCapabilities } from \"./types/editor-capabilities\";\nimport type { OnRequestMedia } from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Shared keys (provided by useEditorCore, consumed by all components)\n// ---------------------------------------------------------------------------\n\nexport const TRANSLATIONS_KEY: InjectionKey<Translations> =\n Symbol(\"translations\");\n\nexport const EDITOR_KEY: InjectionKey<BaseEditorReturn> = Symbol(\"editor\");\n\nexport const HISTORY_KEY: InjectionKey<UseHistoryReturn> = Symbol(\"history\");\n\nexport const BLOCK_ACTIONS_KEY: InjectionKey<UseBlockActionsReturn> =\n Symbol(\"blockActions\");\n\nexport const CONDITION_PREVIEW_KEY: InjectionKey<UseConditionPreviewReturn> =\n Symbol(\"conditionPreview\");\n\n/**\n * Whether the hand-toggled display-condition filter applies on this surface —\n * provided per-surface, exactly like `USE_MERGE_TAG_SAMPLES_KEY`, and for the\n * same reason: the rule folds in both `previewMode` and whether a resolver owns\n * the preview, so a component that re-derived it from `CONDITION_PREVIEW_KEY`\n * plus the editor's `previewMode` could get one half wrong on its own.\n *\n * Absent means \"applies\" — a surface with no provider filters as it always has.\n */\nexport const APPLIES_CONDITION_FILTER_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"appliesConditionFilter\");\n\nexport const FONTS_MANAGER_KEY: InjectionKey<UseFontsReturn> =\n Symbol(\"fontsManager\");\n\nexport const THEME_STYLES_KEY: InjectionKey<\n ComputedRef<Record<string, string>>\n> = Symbol(\"themeStyles\");\n\nexport const UI_THEME_KEY: InjectionKey<ComputedRef<string>> =\n Symbol(\"tplUiTheme\");\n\n/**\n * The editor's UI locale, exactly as the consumer passed it to\n * `init({ locale })` — unresolved, so it may be unsupported or malformed.\n *\n * For `Intl` formatting only. Translated *strings* come from\n * `TRANSLATIONS_KEY`, which is already resolved to a supported bundle; this is\n * for the labels `Intl` builds itself (dates), where the browser's own locale\n * would otherwise win and disagree with the surrounding chrome. Always format\n * through `formatAbsoluteDateTime`, which guards the malformed case.\n *\n * Not the template's `settings.locale` — that is the *email's* language and\n * belongs to content, not chrome.\n */\nexport const UI_LOCALE_KEY: InjectionKey<string | undefined> =\n Symbol(\"tplUiLocale\");\n\n// A ref, not a plain object: the recipient-facing half of these defaults\n// (video alt, countdown labels) tracks the template's own `settings.locale`,\n// which the author can change while the editor is open. Read it at insert\n// time — a value destructured at setup goes stale.\nexport const BLOCK_DEFAULTS_KEY: InjectionKey<ComputedRef<BlockDefaults>> =\n Symbol(\"blockDefaults\");\n\nexport const BLOCK_REGISTRY_KEY: InjectionKey<UseBlockRegistryReturn> =\n Symbol(\"blockRegistry\");\n\nexport const CUSTOM_BLOCK_DEFINITIONS_KEY: InjectionKey<\n CustomBlockDefinition[]\n> = Symbol(\"customBlockDefinitions\");\n\n/**\n * Consumer-supplied block-palette allowlist + order (`config.paletteBlocks`).\n * `undefined` means the default full palette. Consumed by `Sidebar.vue`.\n */\nexport const PALETTE_BLOCKS_KEY: InjectionKey<string[] | undefined> =\n Symbol(\"paletteBlocks\");\n\n/**\n * Whether HTML blocks render a live sandboxed-iframe preview in the canvas\n * (`config.htmlBlockPreview`), normalized to a boolean. `false` (the default)\n * keeps the static placeholder card. Consumed by `HtmlBlock.vue`.\n */\nexport const HTML_BLOCK_PREVIEW_KEY: InjectionKey<boolean> =\n Symbol(\"htmlBlockPreview\");\n\n/**\n * Embedder layout overlay (`config.layout`). Provided by `useEditorCore`.\n * `undefined` when the host configured none. Consumed by preview surfaces\n * and the section toolbar; never written into editor content.\n */\nexport const LAYOUT_KEY: InjectionKey<TemplateContent | undefined> =\n Symbol(\"layout\");\n\n/**\n * Whether the section toolbar offers Add wrapper (`config.sectionWrapper`).\n * Provided by `useEditorCore`. `undefined` when the host configured none,\n * which is on (`!== false`). Consumed by `SectionToolbar`. Own key — not\n * folded into `LAYOUT_KEY`.\n */\nexport const SECTION_WRAPPER_KEY: InjectionKey<boolean | undefined> =\n Symbol(\"sectionWrapper\");\n\n/**\n * Consumer-supplied color-picker palette (`config.colors`), normalized to\n * `{ presets, allowCustom, allowCustomIgnored }` by `resolveColorsConfig`.\n * Provided by `useEditorCore`, consumed by every `ColorPicker`. The inject\n * default (`DEFAULT_RESOLVED_COLORS` = `{ presets: [], allowCustom: true,\n * allowCustomIgnored: false }`) makes an unconfigured picker render exactly\n * as before.\n */\nexport const COLORS_KEY: InjectionKey<\n import(\"./utils/resolveColorsConfig\").ResolvedColors\n> = Symbol(\"colors\");\n\n/**\n * The template settings the panel may render (`config.templateSettings.fields`),\n * resolved to a set of `TemplateSettings` member names by\n * `resolveTemplateSettingsFields`. Provided by `useEditorCore`, consumed by\n * `TemplateSettings.vue` for its cards and by `RightSidebar.vue` for the\n * Settings tab.\n *\n * Consumers inject with `ALL_TEMPLATE_SETTINGS_FIELDS` as the default, never an\n * empty set: the key is absent for anyone who configured nothing, and this\n * config only ever narrows.\n */\nexport const TEMPLATE_SETTINGS_FIELDS_KEY: InjectionKey<\n ReadonlySet<import(\"./utils/templateSettingsFields\").TemplateSettingsField>\n> = Symbol(\"templateSettingsFields\");\n\nexport const CUSTOM_BLOCK_STYLESHEETS_KEY: InjectionKey<ComputedRef<string[]>> =\n Symbol(\"customBlockStylesheets\");\n\n/**\n * The configured merge tags, as a ref so `editor.setMergeTags()` repaints\n * everything that renders one. `useEditorCore` is the only writer.\n *\n * `shallowRef`, not `ref`: the list is replaced wholesale, and a deep proxy\n * would make an in-place `push` by a consumer holding the original array\n * behave differently from the same push today. Consumers must go through\n * `setMergeTags`.\n */\nexport const MERGE_TAGS_KEY: InjectionKey<ShallowRef<MergeTag[]>> =\n Symbol(\"mergeTags\");\n\n/**\n * Inject default for {@link MERGE_TAGS_KEY} — headless callers and tests mount\n * components with no editor above them. Shared rather than allocated per call,\n * and never written: an editor always provides its own ref.\n */\nexport const NO_MERGE_TAGS: ShallowRef<MergeTag[]> = shallowRef([]);\n\nexport const MERGE_TAG_SYNTAX_KEY: InjectionKey<SyntaxPreset> =\n Symbol(\"mergeTagSyntax\");\n\nexport const ON_REQUEST_MERGE_TAG_KEY: InjectionKey<\n ((context?: MergeTagRequestContext) => Promise<MergeTag | null>) | null\n> = Symbol(\"onRequestMergeTag\");\n\nexport const MERGE_TAG_AUTOCOMPLETE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagAutocomplete\",\n);\n\n/**\n * Whether a merge tag's tooltip reveals the raw token behind its label.\n * Resolved once from `mergeTags.showRawValue` and read by every surface that\n * renders a tag, so a chip in a sidebar field and a chip on the canvas cannot\n * disagree about whether the token is visible.\n */\nexport const MERGE_TAG_SHOW_RAW_VALUE_KEY: InjectionKey<boolean> = Symbol(\n \"mergeTagShowRawValue\",\n);\n\n/**\n * The user's choice between the previews' two merge-tag views: `true` for\n * Sample (tags replaced by their `MergeTag.sample`, rendered as ordinary text)\n * and `false` for Label (tags shown as their label with the usual cue).\n *\n * Session state owned by `useEditorCore` and driven by a toggle that exists\n * only on preview surfaces. Defaults to Sample.\n */\nexport const MERGE_TAG_SAMPLE_MODE_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagSampleMode\");\n\n/**\n * Whether **the current render surface** substitutes samples.\n *\n * Provided per surface rather than globally, and that is the whole point:\n * substitution must never happen while editing, so `Canvas.vue` folds in its\n * `previewMode` flag and provides `false` whenever the canvas is editable, no\n * matter what the mode ref says. Preview surfaces provide the mode directly.\n *\n * Block components inject **this** key. They must never read\n * `MERGE_TAG_SAMPLE_MODE_KEY`, which would bypass the editing guard.\n */\nexport const USE_MERGE_TAG_SAMPLES_KEY: InjectionKey<ComputedRef<boolean>> =\n Symbol(\"useMergeTagSamples\");\n\n/**\n * The `resolvePreview` seam — resolved content plus its loading and failure\n * state. Provided by `useEditorCore` so every preview surface shares one\n * lifecycle; `null` when the consumer configured no hook.\n *\n * Surfaces read `content` from here instead of `editor.content`, and gate the\n * Sample/Label toggle on `supersedesSamples`.\n */\n/**\n * The raw `config.resolvePreview` hook.\n *\n * Provided alongside PREVIEW_RESOLUTION_KEY because the test-email dialog needs\n * its **own** resolution instance — it resolves for the selected recipient,\n * which the editor's canvas has no notion of — and so cannot reuse the shared\n * one. `undefined` when the consumer configured no hook.\n */\nexport const RESOLVE_PREVIEW_KEY: InjectionKey<ResolvePreview | undefined> =\n Symbol(\"resolvePreview\");\n\nexport const PREVIEW_RESOLUTION_KEY: InjectionKey<\n import(\"./composables/usePreviewResolution\").UsePreviewResolutionReturn | null\n> = Symbol(\"previewResolution\");\n\n/**\n * Singleton state for the built-in merge tag picker modal. Provided by\n * `useEditorCore`, consumed by `useMergeTag.requestMergeTag()` (to open\n * the modal as a fall-through when only `mergeTags.tags` is configured)\n * and by `MergeTagPickerModal.vue` (to render and resolve).\n */\nexport const MERGE_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useMergeTagPicker\").UseMergeTagPickerReturn\n> = Symbol(\"mergeTagPicker\");\n\n/**\n * One \"a merge tag request is in flight\" flag per editor, provided by\n * `useEditorCore` and injected by every `useMergeTag()` call.\n *\n * Shared, not per-call: `useRichTextEditor.handleClickOutside` suppresses\n * editor teardown while this is set, because the picker modal mounts in the\n * popover root — outside `.tpl-text-editor-wrapper`. A ref private to one\n * `useMergeTag()` instance leaves that guard blind to a picker opened from\n * any other host (the link dialog's URL field), so the click on a picker row\n * tears the block out of edit mode and the pending insert then no-ops on its\n * own disposal guard. Falls back to a private ref for headless callers.\n */\nexport const MERGE_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"mergeTagRequesting\");\n\n/** Logic-tag counterpart of {@link MERGE_TAG_REQUESTING_KEY}. */\nexport const LOGIC_TAG_REQUESTING_KEY: InjectionKey<Ref<boolean>> =\n Symbol(\"logicTagRequesting\");\n\n// ---------------------------------------------------------------------------\n// Logic tags — a standalone feature, separate from merge tags. Native\n// highlighting (LogicMergeTagNode) is always on; these drive the dedicated\n// logic picker + insertion.\n// ---------------------------------------------------------------------------\n\nexport const LOGIC_TAGS_KEY: InjectionKey<LogicTag[]> = Symbol(\"logicTags\");\n\nexport const LOGIC_PAIRS_KEY: InjectionKey<LogicPair[]> = Symbol(\"logicPairs\");\n\n/**\n * Singleton state for the built-in logic picker modal. Provided by\n * `useEditorCore`, consumed by `useLogicTag.requestLogicTag()` (to open the modal)\n * and by `LogicTagPickerModal.vue` (to render and resolve).\n */\nexport const LOGIC_TAG_PICKER_KEY: InjectionKey<\n import(\"./composables/useLogicTagPicker\").UseLogicTagPickerReturn\n> = Symbol(\"logicPicker\");\n\nexport const ON_REQUEST_LOGIC_TAG_KEY: InjectionKey<\n (() => Promise<LogicTag | LogicPair | null>) | null\n> = Symbol(\"onRequestLogic\");\n\nexport const ON_REQUEST_MEDIA_KEY: InjectionKey<OnRequestMedia | null> =\n Symbol(\"onRequestMedia\");\n\n/**\n * Whether a dropped image file may be uploaded. Distinct from Browse: a\n * read-only provider (`create: false`) still opens the library, but the\n * drop zone must not highlight. True when a host `onRequestMedia` is set\n * (the callback receives `files`) or when `provider.create` is a function.\n *\n * `null` when neither a provider nor a callback is configured — image\n * fields stay URL-only and drop is off. Injected as a computed; consumed\n * by ImageBlock / ImageToolbar / ImageField with a `null` default.\n */\nexport const CAN_DROP_MEDIA_KEY: InjectionKey<ComputedRef<boolean> | null> =\n Symbol(\"canDropMedia\");\n\n/**\n * Per-editor display-only image URL resolver (`config.resolveImageUrl`),\n * wrapped with a per-src cache by `createImageUrlResolver`. `null` when the\n * host doesn't resolve — the canvas then displays canonical src values\n * verbatim. Consumed via `useResolvedImageSrc` in image-displaying blocks.\n */\nexport const IMAGE_URL_RESOLVER_KEY: InjectionKey<ImageUrlResolver | null> =\n Symbol(\"imageUrlResolver\");\n\nexport const DISPLAY_CONDITIONS_KEY: InjectionKey<DisplayCondition[]> =\n Symbol(\"displayConditions\");\n\nexport const ALLOW_CUSTOM_CONDITIONS_KEY: InjectionKey<boolean> = Symbol(\n \"allowCustomConditions\",\n);\n\nexport const CAPABILITIES_KEY: InjectionKey<EditorCapabilities> =\n Symbol(\"capabilities\");\n\nexport const KEYBOARD_REORDER_KEY: InjectionKey<UseKeyboardReorderReturn> =\n Symbol(\"keyboardReorder\");\n\nexport const TEMPLATE_LINT_KEY: InjectionKey<\n import(\"./composables/useTemplateLint\").UseTemplateLintReturn | null\n> = Symbol(\"templateLint\");\n\n/**\n * The editor's effective DOM root — `Document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true`. Composables that read `document.activeElement`,\n * popup mount targets, etc. should inject this and use the root-aware API\n * (both `Document` and `ShadowRoot` expose `activeElement` etc.).\n */\nexport const EDITOR_ROOT_KEY: InjectionKey<Document | ShadowRoot> =\n Symbol(\"editorRoot\");\n\n/**\n * Mount target for popovers, toolbars, and modal dialogs — never\n * `document.body`. Provided by `useEditorCore` as a ref bound\n * to a `<div class=\"tpl-popover-root\" />` rendered at the top level of the\n * editor template. Teleports use `:to=\"popoverRoot\"` so popups land inside\n * the editor's effective root — `document` in light-DOM mode, `ShadowRoot`\n * when `shadowDom: true` — instead of escaping the shadow boundary.\n *\n * Null until the editor's template mounts; consumers must guard with\n * `v-if=\"popoverRoot\"` before passing to `<Teleport>`.\n */\nexport const POPOVER_ROOT_KEY: InjectionKey<Ref<HTMLElement | null>> =\n Symbol(\"popoverRoot\");\n\n/**\n * Reactive saved-blocks state, provided by `useSavedBlocksFeature` when a\n * `SavedBlocksProvider` is configured. Shared by OSS and Cloud — the storage\n * transport lives behind the provider, so this key is not cloud-specific.\n */\nexport const SAVED_BLOCKS_KEY: InjectionKey<UseSavedBlocksReturn> =\n Symbol(\"savedBlocks\");\n\n// ---------------------------------------------------------------------------\n// Cloud-only keys (provided by createCloudRuntime, consumed by cloud components)\n// ---------------------------------------------------------------------------\n\nexport const AUTH_MANAGER_KEY: InjectionKey<AuthManager> =\n Symbol(\"authManager\");\n\nexport const AI_CONFIG_KEY: InjectionKey<UseAiConfigReturn> =\n Symbol(\"aiConfig\");\n\n// Comments are deliberately not injected: the panel takes `useCommentsFeature`'s\n// return as a **prop** the way `TestEmailPanel` and `SavedBlocksPanels` do, and the\n// per-block indicators read the comments entry on `CAPABILITIES_KEY`. Nothing\n// injects the composable itself.\n\nexport const SCORING_KEY: InjectionKey<UseTemplateScoringReturn> =\n Symbol(\"scoring\");\n\nexport const CLOUD_TRANSLATIONS_KEY: InjectionKey<CloudTranslations> =\n Symbol(\"cloudTranslations\");\n\n// ---------------------------------------------------------------------------\n// Helper for required injections with explicit null default + throw\n// ---------------------------------------------------------------------------\n\nexport function requireInject<T>(\n key: InjectionKey<T>,\n componentName: string,\n): T {\n const value = inject(key, null) as T | null;\n if (value === null || value === undefined) {\n throw new Error(\n `${componentName} requires a provider for ${key.description ?? \"unknown key\"}. Ensure it renders inside the editor, below Editor.vue.`,\n );\n }\n return value;\n}\n"],"mappings":";;AA4CA,IAAaE,IACX,OAAO,cAAc,GAEVC,IAA6C,OAAO,QAAQ,GAE5DC,IAA8C,OAAO,SAAS,GAE9DC,IACX,OAAO,cAAc,GAEVC,IACX,OAAO,kBAAkB,GAWdC,IACX,OAAO,wBAAwB,GAEpBC,IACX,OAAO,cAAc,GAEVC,IAET,OAAO,aAAa,GAEXC,IACX,OAAO,YAAY,GAeRC,IACX,OAAO,aAAa,GAMTC,IACX,OAAO,eAAe,GAEXC,IACX,OAAO,eAAe,GAEXC,IAET,OAAO,wBAAwB,GAMtBC,IACX,OAAO,eAAe,GAOXC,IACX,OAAO,kBAAkB,GAOdC,IACX,OAAO,QAAQ,GAQJC,IACX,OAAO,gBAAgB,GAUZC,IAET,OAAO,QAAQ,GAaNC,IAET,OAAO,wBAAwB,GAEtBC,IACX,OAAO,wBAAwB,GAWpBC,IACX,OAAO,WAAW,GAOPC,IAAwCtB,EAAW,CAAC,CAAC,GAErDuB,IACX,OAAO,gBAAgB,GAEZC,IAET,OAAO,mBAAmB,GAEjBC,IAAoD,OAC/D,sBACF,GAQaC,IAAsD,OACjE,sBACF,GAUaC,KACX,OAAO,oBAAoB,GAahBC,IACX,OAAO,oBAAoB,GAkBhBC,IACX,OAAO,gBAAgB,GAEZC,IAET,OAAO,mBAAmB,GAQjBC,IAET,OAAO,gBAAgB,GAcdC,IACX,OAAO,oBAAoB,GAGhBC,IACX,OAAO,oBAAoB,GAQhBC,IAA2C,OAAO,WAAW,GAE7DC,IAA6C,OAAO,YAAY,GAOhEC,IAET,OAAO,aAAa,GAEXC,IAET,OAAO,gBAAgB,GAEdC,IACX,OAAO,gBAAgB,GAYZC,IACX,OAAO,cAAc,GAQVC,IACX,OAAO,kBAAkB,GAEdC,IACX,OAAO,mBAAmB,GAEfC,IAAqD,OAChE,uBACF,GAEaC,IACX,OAAO,cAAc,GAEVC,IACX,OAAO,iBAAiB,GAEbC,IAET,OAAO,cAAc,GAQZC,IACX,OAAO,YAAY,GAaRC,IACX,OAAO,aAAa,GAOTC,IACX,OAAO,aAAa,GAMTC,IACX,OAAO,aAAa,GAETC,IACX,OAAO,UAAU,GAONC,IACX,OAAO,SAAS,GAELC,IACX,OAAO,mBAAmB;AAM5B,SAAgBC,EACd,GACA,GACG;CACH,IAAMC,IAAQvD,EAAOwD,GAAK,IAAI;CAC9B,IAAID,KAAU,MACZ,MAAU,MACR,GAAGE,EAAc,2BAA2BD,EAAI,eAAe,cAAc,yDAC/E;CAEF,OAAOD;AACT"}
|