@templatical/editor 0.41.0 → 0.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AiChatSidebar-a8TPBAl2.js → AiChatSidebar-DOCvzGBe.js} +8 -8
- package/dist/{AiFeatureMenu-CroDMqRG.js → AiFeatureMenu-CfijAx4G.js} +4 -4
- package/dist/{BlockIssueBadge-D8KsGWY6.js → BlockIssueBadge-BJ3A6mqh.js} +2 -2
- package/dist/{BlockPreviewCanvas-Z9SZIgfA.js → BlockPreviewCanvas-DggfBaoJ.js} +33 -33
- package/dist/{CloudHeaderExtras-CVqHeqc6.js → CloudHeaderExtras-dFbdqBr5.js} +2 -2
- package/dist/{CloudPanels-CmEpQUJB.js → CloudPanels-DmMxhzzZ.js} +4 -4
- package/dist/{CollaboratorBar-AIQC9fEF.js → CollaboratorBar-XXk1tOC5.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-DkC-qSgq.js → CountdownToolbar-B1a_UIuB.js} +3 -3
- package/dist/{DesignReferenceSidebar-OoiYJAKS.js → DesignReferenceSidebar-DkAmsBgM.js} +6 -6
- package/dist/{IssuesPanel-Dnns3O9z.js → IssuesPanel-lTpsCV4a.js} +5 -5
- package/dist/{LogicTagInsertButton-BimKobaG.js → LogicTagInsertButton-B5YymR4U.js} +243 -219
- 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-DqpVzhy7.js → MergeTagInput-B0M_-X0K.js} +1 -1
- package/dist/{MergeTagModeToggle-BkIiAgpQ.js → MergeTagModeToggle-B-8W1tK7.js} +4 -4
- package/dist/{ParagraphEditor-DaZ03d1U.js → ParagraphEditor-BhhpXgoO.js} +35 -35
- package/dist/{RestoreVersionDialog-DHb1mPoF.js → RestoreVersionDialog-DE8aqmdi.js} +3 -3
- package/dist/{RichTextEditorContent-AEtfKvLz.js → RichTextEditorContent-AaLAArA0.js} +5 -5
- package/dist/{SaveBlockDialog-hGwLDWfE.js → SaveBlockDialog-BJ-hEwLv.js} +8 -8
- package/dist/{SavedBlocksBrowserModal-C0lYVBFi.js → SavedBlocksBrowserModal-nLI8aAQ5.js} +9 -9
- package/dist/{SavedBlocksPanels-CaTbeVDv.js → SavedBlocksPanels-RnzUMUJI.js} +1 -1
- package/dist/{SavedBlocksPickBar-DR2afid2.js → SavedBlocksPickBar-D3QA3Tgy.js} +2 -2
- package/dist/{TemplateScoringPanel-Cs0TGtRF.js → TemplateScoringPanel-C6ellAcs.js} +11 -11
- package/dist/{TemplateSettings-BD1WNP4C.js → TemplateSettings-C_0qK-zs.js} +6 -6
- package/dist/{TestEmailModal-DqoosG1u.js → TestEmailModal-CnyxLhWJ.js} +7 -7
- package/dist/{TestEmailPanel-DpozqyHF.js → TestEmailPanel-BRisIL4G.js} +1 -1
- package/dist/{TitleEditor-BCBdZLt_.js → TitleEditor-lPITPzw6.js} +12 -12
- package/dist/{ToggleSwitch-CJfQ8u57.js → ToggleSwitch-CtZ6adlX.js} +1 -1
- package/dist/{Toolbar-C7SjilzH.js → Toolbar-B6dG5_IP.js} +847 -554
- package/dist/{TplModal-CVO-2KrU.js → TplModal-BiAf7tWe.js} +2 -2
- package/dist/{VersionHistoryMenu-b0A8mS2_.js → VersionHistoryMenu-DdspCRSA.js} +5 -5
- package/dist/{VersionHistoryPanels-BzF7dmwa.js → VersionHistoryPanels-C589Jm_B.js} +1 -1
- package/dist/{VersionPreviewBanner-xB9r83r0.js → VersionPreviewBanner-XUuLe36h.js} +1 -1
- package/dist/{WrapperBlock-BDjOn3fY.js → WrapperBlock-CVQ4t1tY.js} +4 -4
- package/dist/{blockTypeIcons-B0Bq1WT1.js → blockTypeIcons-Sg8SY1NQ.js} +2 -2
- package/dist/bundle-stats.json +6 -6
- package/dist/{cdn/chunks/ca-Ckgw9yd0.js → ca--zGWn9AU.js} +14 -2
- package/dist/cdn/chunks/{AiChatSidebar-mKImUXi6.js → AiChatSidebar-DiG-EQ-E.js} +8 -8
- package/dist/cdn/chunks/AiChatSidebar-DiG-EQ-E.js.map +1 -0
- package/dist/cdn/chunks/{AiFeatureMenu-Cx3qdStQ.js → AiFeatureMenu-BXSPgOzA.js} +5 -5
- package/dist/cdn/chunks/AiFeatureMenu-BXSPgOzA.js.map +1 -0
- package/dist/cdn/chunks/{BlockIssueBadge-DS1pUf5g.js → BlockIssueBadge-ChQ0mPf5.js} +2 -2
- package/dist/cdn/chunks/BlockIssueBadge-ChQ0mPf5.js.map +1 -0
- package/dist/cdn/chunks/{BlockPreviewCanvas-D31TNib3.js → BlockPreviewCanvas-CMmv1FTA.js} +28 -28
- package/dist/cdn/chunks/BlockPreviewCanvas-CMmv1FTA.js.map +1 -0
- package/dist/cdn/chunks/{CloudHeaderExtras-0zdlKiq7.js → CloudHeaderExtras-yvFz2_e-.js} +3 -3
- package/dist/cdn/chunks/CloudHeaderExtras-yvFz2_e-.js.map +1 -0
- package/dist/cdn/chunks/{CloudPanels-DPh71yOO.js → CloudPanels-DpKck9Na.js} +4 -4
- package/dist/cdn/chunks/CloudPanels-DpKck9Na.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-lCZU8qkg.js → CollaboratorBar-Clm1ZVXQ.js} +3 -3
- package/dist/cdn/chunks/CollaboratorBar-Clm1ZVXQ.js.map +1 -0
- package/dist/cdn/chunks/{CommentsPanel-BtAGZfF6.js → CommentsPanel-CjhxGMjL.js} +2 -2
- package/dist/cdn/chunks/CommentsPanel-CjhxGMjL.js.map +1 -0
- package/dist/cdn/chunks/{CommentsSidebar-Ws07MXYj.js → CommentsSidebar-D9bqMnlt.js} +16 -16
- 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-Bu93WiS8.js → CountdownToolbar-CIRx5w1U.js} +4 -4
- package/dist/cdn/chunks/CountdownToolbar-CIRx5w1U.js.map +1 -0
- package/dist/cdn/chunks/{DesignReferenceSidebar-BlSdh5B7.js → DesignReferenceSidebar-C1-SbE_R.js} +9 -9
- package/dist/cdn/chunks/DesignReferenceSidebar-C1-SbE_R.js.map +1 -0
- package/dist/cdn/chunks/{IssuesPanel-CKkv9z9g.js → IssuesPanel-qKY6UDd-.js} +8 -8
- 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-CHc1yZ9v.js → LogicTagInsertButton-CItDS_U1.js} +250 -226
- package/dist/cdn/chunks/LogicTagInsertButton-CItDS_U1.js.map +1 -0
- package/dist/cdn/chunks/{MediaEditModal-Cw9MhjVz.js → MediaEditModal-CzUtXkpk.js} +2 -2
- package/dist/cdn/chunks/MediaEditModal-CzUtXkpk.js.map +1 -0
- package/dist/cdn/chunks/{MediaPanels-FD_aX3H5.js → MediaPanels-DOLsh7WC.js} +2 -2
- package/dist/cdn/chunks/MediaPanels-DOLsh7WC.js.map +1 -0
- package/dist/cdn/chunks/{MergeTagInput--qTYfCWk.js → MergeTagInput-B33u3nxj.js} +2 -2
- package/dist/cdn/chunks/MergeTagInput-B33u3nxj.js.map +1 -0
- package/dist/cdn/chunks/{MergeTagModeToggle-CdWIGo3Q.js → MergeTagModeToggle-Bz1CH3NT.js} +10 -10
- package/dist/cdn/chunks/MergeTagModeToggle-Bz1CH3NT.js.map +1 -0
- package/dist/cdn/chunks/{ParagraphEditor-w2qEZTkM.js → ParagraphEditor-J74SIn-m.js} +51 -51
- package/dist/cdn/chunks/ParagraphEditor-J74SIn-m.js.map +1 -0
- package/dist/cdn/chunks/{RestoreVersionDialog-cnWVN3nX.js → RestoreVersionDialog-CFE7jqDB.js} +3 -3
- package/dist/cdn/chunks/RestoreVersionDialog-CFE7jqDB.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-Fzuu9pLP.js → RichTextEditorContent-dOg1xFqv.js} +5 -5
- package/dist/cdn/chunks/RichTextEditorContent-dOg1xFqv.js.map +1 -0
- package/dist/cdn/chunks/{SaveBlockDialog-jxQtKnVs.js → SaveBlockDialog-DZOmDCC8.js} +38 -38
- package/dist/cdn/chunks/SaveBlockDialog-DZOmDCC8.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-DpXWf4Pi.js → SavedBlocksBrowserModal-B43H5zKA.js} +10 -10
- package/dist/cdn/chunks/SavedBlocksBrowserModal-B43H5zKA.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksPanels-B-ASmf1P.js → SavedBlocksPanels-uTSb2xO_.js} +2 -2
- package/dist/cdn/chunks/SavedBlocksPanels-uTSb2xO_.js.map +1 -0
- package/dist/cdn/chunks/{SavedBlocksPickBar-CEFIQ8Nd.js → SavedBlocksPickBar-BUvmGqHK.js} +3 -3
- package/dist/cdn/chunks/SavedBlocksPickBar-BUvmGqHK.js.map +1 -0
- package/dist/cdn/chunks/{TemplateScoringPanel-d_Ppowsq.js → TemplateScoringPanel-ebsrVge3.js} +19 -19
- package/dist/cdn/chunks/TemplateScoringPanel-ebsrVge3.js.map +1 -0
- package/dist/cdn/chunks/{TemplateSettings-Dr5OJ0Gi.js → TemplateSettings-BaEVdUTM.js} +9 -9
- package/dist/cdn/chunks/TemplateSettings-BaEVdUTM.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailModal-CrjzVw8e.js → TestEmailModal-ide7UP_H.js} +7 -7
- package/dist/cdn/chunks/TestEmailModal-ide7UP_H.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailPanel-k9vdulTu.js → TestEmailPanel-Cqdsnufx.js} +2 -2
- package/dist/cdn/chunks/TestEmailPanel-Cqdsnufx.js.map +1 -0
- package/dist/cdn/chunks/{TitleEditor-laILWfKh.js → TitleEditor-CoFzxLPA.js} +16 -16
- package/dist/cdn/chunks/TitleEditor-CoFzxLPA.js.map +1 -0
- package/dist/cdn/chunks/{ToggleSwitch-0dGCYnRY.js → ToggleSwitch-D-8dCEbI.js} +2 -2
- package/dist/cdn/chunks/ToggleSwitch-D-8dCEbI.js.map +1 -0
- package/dist/cdn/chunks/{Toolbar-BsiHW9gY.js → Toolbar-BDzhrmGV.js} +814 -566
- package/dist/cdn/chunks/Toolbar-BDzhrmGV.js.map +1 -0
- package/dist/cdn/chunks/{TplModal-D8DoPbFa.js → TplModal-mLMmolQp.js} +3 -3
- package/dist/cdn/chunks/TplModal-mLMmolQp.js.map +1 -0
- package/dist/cdn/chunks/{VersionHistoryMenu-B3-hNu9c.js → VersionHistoryMenu-C_bBKOYU.js} +7 -7
- package/dist/cdn/chunks/VersionHistoryMenu-C_bBKOYU.js.map +1 -0
- package/dist/cdn/chunks/{VersionHistoryPanels-zw1AtzGN.js → VersionHistoryPanels-B9LwOKxm.js} +2 -2
- package/dist/cdn/chunks/VersionHistoryPanels-B9LwOKxm.js.map +1 -0
- package/dist/cdn/chunks/{VersionPreviewBanner-PzVQSBJE.js → VersionPreviewBanner-CKyrcgxJ.js} +2 -2
- package/dist/cdn/chunks/VersionPreviewBanner-CKyrcgxJ.js.map +1 -0
- package/dist/cdn/chunks/{WrapperBlock-CpRvfAV0.js → WrapperBlock-DI8vSvTO.js} +4 -4
- package/dist/cdn/chunks/WrapperBlock-DI8vSvTO.js.map +1 -0
- package/dist/cdn/chunks/blockTypeIcons-CdfCfqHE.js +21 -0
- package/dist/cdn/chunks/blockTypeIcons-CdfCfqHE.js.map +1 -0
- package/dist/{ca-Ckgw9yd0.js → cdn/chunks/ca--zGWn9AU.js} +16 -0
- package/dist/cdn/chunks/ca--zGWn9AU.js.map +1 -0
- package/dist/cdn/chunks/ca-BTf1Zbqb.js.map +1 -1
- package/dist/cdn/chunks/{cloud-CIT4yPp4.js → cloud-De-eh1u6.js} +2 -2
- package/dist/cdn/chunks/cloud-De-eh1u6.js.map +1 -0
- package/dist/cdn/chunks/{createCloudRuntime-COUxbPvd.js → createCloudRuntime-DsaUaWvr.js} +3 -3
- package/dist/cdn/chunks/createCloudRuntime-DsaUaWvr.js.map +1 -0
- package/dist/cdn/chunks/{de-D4dweQw8.js → de-BRNLKcDl.js} +15 -1
- package/dist/cdn/chunks/de-BRNLKcDl.js.map +1 -0
- 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-CKu8HhiB.js → editor-modal-CZQArGNj.js} +88 -88
- 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/{en-VE7R7NyL.js → cdn/chunks/en-JJjqHMjy.js} +16 -0
- package/dist/cdn/chunks/en-JJjqHMjy.js.map +1 -0
- package/dist/cdn/chunks/{es-B9OhP8H3.js → es-BIh8BxV9.js} +15 -1
- package/dist/cdn/chunks/es-BIh8BxV9.js.map +1 -0
- package/dist/cdn/chunks/es-BT4LSpE2.js.map +1 -1
- package/dist/cdn/chunks/{extensions-CafoGF65.js → extensions-Dy251lPd.js} +5 -5
- 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/{fr-wrXhIi00.js → cdn/chunks/fr-C5VUZogP.js} +16 -0
- package/dist/cdn/chunks/fr-C5VUZogP.js.map +1 -0
- 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-BKkJ-5xF.js → icons-CQnjugjy.js} +86 -45
- 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-fKnVWXHC.js → ja-x5JYxaCW.js} +15 -1
- package/dist/cdn/chunks/ja-x5JYxaCW.js.map +1 -0
- 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-DeFatKJe.js → nl-UXxFyXV6.js} +15 -1
- package/dist/cdn/chunks/nl-UXxFyXV6.js.map +1 -0
- package/dist/cdn/chunks/{preRenderCustomBlocks-Dpj-_cOj.js → preRenderCustomBlocks-h4ZFBKbD.js} +2 -2
- package/dist/cdn/chunks/preRenderCustomBlocks-h4ZFBKbD.js.map +1 -0
- package/dist/cdn/chunks/pt-BR-CoCwRUi0.js.map +1 -1
- package/dist/{pt-BR-Bh1J8ey6.js → cdn/chunks/pt-BR-DHm3SP6W.js} +16 -0
- package/dist/cdn/chunks/pt-BR-DHm3SP6W.js.map +1 -0
- 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-BvYNMn1G.js → socialIcons-ZOCwCCyn.js} +3 -3
- package/dist/cdn/chunks/socialIcons-ZOCwCCyn.js.map +1 -0
- package/dist/cdn/chunks/{src-DveVYoWS.js → src-BR3I3gOW.js} +265 -224
- package/dist/cdn/chunks/src-BR3I3gOW.js.map +1 -0
- package/dist/cdn/chunks/{src-Cnc5E71L.js → src-fZSLjhjy.js} +12 -12
- package/dist/cdn/chunks/src-fZSLjhjy.js.map +1 -0
- package/dist/cdn/chunks/{src-L6HEdwFn.js → src-nhIF5-mf.js} +179 -166
- package/dist/cdn/chunks/src-nhIF5-mf.js.map +1 -0
- 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-DZmtKwJh.js → useEditorCore-D4kzTMtQ.js} +458 -446
- package/dist/cdn/chunks/useEditorCore-D4kzTMtQ.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-DF7-l66G.js → useLogicTag-J_i_hvZg.js} +2 -2
- package/dist/cdn/chunks/useLogicTag-J_i_hvZg.js.map +1 -0
- package/dist/cdn/chunks/{useMergeTag-DbIHw4NG.js → useMergeTag-C5MyHYxJ.js} +2 -2
- package/dist/cdn/chunks/useMergeTag-C5MyHYxJ.js.map +1 -0
- package/dist/cdn/chunks/{usePopoverPosition-BJRvAb-h.js → usePopoverPosition-DGXjXKjM.js} +25 -12
- package/dist/cdn/chunks/usePopoverPosition-DGXjXKjM.js.map +1 -0
- package/dist/cdn/chunks/useScrollToBlock-DgHZJvID.js.map +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +493 -464
- 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/{cloud-DsqqUfzh.js → cloud-AO_X8T9g.js} +1 -1
- package/dist/{copy-mw6PVnOJ.js → copy-BF0_pQjH.js} +1 -1
- package/dist/{createCloudRuntime-iLflkYzP.js → createCloudRuntime-D641nhri.js} +2 -2
- package/dist/{createLucideIcon-BxY5yz5u.js → createLucideIcon-C2YOVVWx.js} +8 -8
- package/dist/{de-D4dweQw8.js → de-BRNLKcDl.js} +14 -0
- 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-DbUZvK04.js → dist-iLUVPysa.js} +263 -222
- 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/{cdn/chunks/en-VE7R7NyL.js → en-JJjqHMjy.js} +14 -2
- package/dist/{es-B9OhP8H3.js → es-BIh8BxV9.js} +14 -0
- package/dist/{extensions-DDhjuVKy.js → extensions-DqQXxrvP.js} +13 -13
- package/dist/{eye-DphkRtAD.js → eye-RdXYgrQZ.js} +1 -1
- package/dist/{cdn/chunks/fr-wrXhIi00.js → fr-C5VUZogP.js} +14 -2
- package/dist/{image-up-Qi2BXD7T.js → image-up-BwdoReQt.js} +1 -1
- package/dist/{info-VSyAs02q.js → info-zFMSGrL1.js} +1 -1
- package/dist/{ja-fKnVWXHC.js → ja-x5JYxaCW.js} +14 -0
- 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/{nl-DeFatKJe.js → nl-UXxFyXV6.js} +14 -0
- 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/{preRenderCustomBlocks-BBSqQgke.js → preRenderCustomBlocks-CTstI3Q-.js} +4 -4
- package/dist/{cdn/chunks/pt-BR-Bh1J8ey6.js → pt-BR-DHm3SP6W.js} +14 -2
- 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-O7PZCW2P.js → socialIcons-CzRJskEk.js} +47 -47
- package/dist/{sparkles-Ds0RF8Iu.js → sparkles-D3vnNe7O.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/templatical-editor.js +432 -403
- 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-dcdHB_7H.js → useEditorCore-Dhit8Ygg.js} +894 -882
- package/dist/{useLogicTag-D9pvgxQR.js → useLogicTag-BaH8gey0.js} +1 -1
- package/dist/{useMergeTag-BaVFPdlq.js → useMergeTag-Cyad1yBE.js} +1 -1
- package/dist/{usePopoverPosition-DH7z3Ghm.js → usePopoverPosition-BYmd-lhR.js} +24 -11
- 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-mKImUXi6.js.map +0 -1
- package/dist/cdn/chunks/AiFeatureMenu-Cx3qdStQ.js.map +0 -1
- package/dist/cdn/chunks/BlockIssueBadge-DS1pUf5g.js.map +0 -1
- package/dist/cdn/chunks/BlockPreviewCanvas-D31TNib3.js.map +0 -1
- package/dist/cdn/chunks/CloudHeaderExtras-0zdlKiq7.js.map +0 -1
- package/dist/cdn/chunks/CloudPanels-DPh71yOO.js.map +0 -1
- package/dist/cdn/chunks/CollaboratorBar-lCZU8qkg.js.map +0 -1
- package/dist/cdn/chunks/CommentsPanel-BtAGZfF6.js.map +0 -1
- package/dist/cdn/chunks/CommentsSidebar-Ws07MXYj.js.map +0 -1
- package/dist/cdn/chunks/CountdownToolbar-Bu93WiS8.js.map +0 -1
- package/dist/cdn/chunks/DesignReferenceSidebar-BlSdh5B7.js.map +0 -1
- package/dist/cdn/chunks/IssuesPanel-CKkv9z9g.js.map +0 -1
- package/dist/cdn/chunks/LogicTagInsertButton-CHc1yZ9v.js.map +0 -1
- package/dist/cdn/chunks/MediaEditModal-Cw9MhjVz.js.map +0 -1
- package/dist/cdn/chunks/MediaPanels-FD_aX3H5.js.map +0 -1
- package/dist/cdn/chunks/MergeTagInput--qTYfCWk.js.map +0 -1
- package/dist/cdn/chunks/MergeTagModeToggle-CdWIGo3Q.js.map +0 -1
- package/dist/cdn/chunks/ParagraphEditor-w2qEZTkM.js.map +0 -1
- package/dist/cdn/chunks/RestoreVersionDialog-cnWVN3nX.js.map +0 -1
- package/dist/cdn/chunks/RichTextEditorContent-Fzuu9pLP.js.map +0 -1
- package/dist/cdn/chunks/SaveBlockDialog-jxQtKnVs.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksBrowserModal-DpXWf4Pi.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksPanels-B-ASmf1P.js.map +0 -1
- package/dist/cdn/chunks/SavedBlocksPickBar-CEFIQ8Nd.js.map +0 -1
- package/dist/cdn/chunks/TemplateScoringPanel-d_Ppowsq.js.map +0 -1
- package/dist/cdn/chunks/TemplateSettings-Dr5OJ0Gi.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-CrjzVw8e.js.map +0 -1
- package/dist/cdn/chunks/TestEmailPanel-k9vdulTu.js.map +0 -1
- package/dist/cdn/chunks/TitleEditor-laILWfKh.js.map +0 -1
- package/dist/cdn/chunks/ToggleSwitch-0dGCYnRY.js.map +0 -1
- package/dist/cdn/chunks/Toolbar-BsiHW9gY.js.map +0 -1
- package/dist/cdn/chunks/TplModal-D8DoPbFa.js.map +0 -1
- package/dist/cdn/chunks/VersionHistoryMenu-B3-hNu9c.js.map +0 -1
- package/dist/cdn/chunks/VersionHistoryPanels-zw1AtzGN.js.map +0 -1
- package/dist/cdn/chunks/VersionPreviewBanner-PzVQSBJE.js.map +0 -1
- package/dist/cdn/chunks/WrapperBlock-CpRvfAV0.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-raBjStuv.js +0 -21
- package/dist/cdn/chunks/blockTypeIcons-raBjStuv.js.map +0 -1
- package/dist/cdn/chunks/ca-Ckgw9yd0.js.map +0 -1
- package/dist/cdn/chunks/cloud-CIT4yPp4.js.map +0 -1
- package/dist/cdn/chunks/createCloudRuntime-COUxbPvd.js.map +0 -1
- package/dist/cdn/chunks/de-D4dweQw8.js.map +0 -1
- package/dist/cdn/chunks/editor-modal-CKu8HhiB.js.map +0 -1
- package/dist/cdn/chunks/en-DqzAdO8F.js +0 -2
- package/dist/cdn/chunks/en-VE7R7NyL.js.map +0 -1
- package/dist/cdn/chunks/es-B9OhP8H3.js.map +0 -1
- package/dist/cdn/chunks/extensions-CafoGF65.js.map +0 -1
- package/dist/cdn/chunks/fr-wrXhIi00.js.map +0 -1
- package/dist/cdn/chunks/icons-BKkJ-5xF.js.map +0 -1
- package/dist/cdn/chunks/ja-fKnVWXHC.js.map +0 -1
- package/dist/cdn/chunks/nl-DeFatKJe.js.map +0 -1
- package/dist/cdn/chunks/preRenderCustomBlocks-Dpj-_cOj.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-Bh1J8ey6.js.map +0 -1
- package/dist/cdn/chunks/socialIcons-BvYNMn1G.js.map +0 -1
- package/dist/cdn/chunks/src-Cnc5E71L.js.map +0 -1
- package/dist/cdn/chunks/src-DveVYoWS.js.map +0 -1
- package/dist/cdn/chunks/src-L6HEdwFn.js.map +0 -1
- package/dist/cdn/chunks/tiptap-DhLuKyDc.js.map +0 -1
- package/dist/cdn/chunks/useEditorCore-DZmtKwJh.js.map +0 -1
- package/dist/cdn/chunks/useLogicTag-DF7-l66G.js.map +0 -1
- package/dist/cdn/chunks/useMergeTag-DbIHw4NG.js.map +0 -1
- package/dist/cdn/chunks/usePopoverPosition-BJRvAb-h.js.map +0 -1
- package/dist/en-1tgLzB8q.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPanels-DOLsh7WC.js","names":["_openBlock","_createBlock","_unref","_createCommentVNode","_sfc_main","openBlock","defineComponent","unref","createCommentVNode","createBlock","defineAsyncComponent","MediaPanels_default","props","__props","MediaLibraryModal","handleSelect","asset","_cache"],"sources":["../../../src/components/MediaPanels.vue","../../../src/components/MediaPanels.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Mount point for the media library modal.\n *\n * The modal is `defineAsyncComponent` behind a `v-if` on its open state, so its\n * chunk is fetched only when the user actually opens Browse —\n * `defineAsyncComponent` triggers its `import()` on first render, not at\n * definition time. `Editor.vue` in turn lazy-loads *this* wrapper and renders\n * it only when a `MediaProvider` is configured, so a consumer without one\n * downloads none of it. A callback-only `onRequestMedia` never mounts this.\n *\n * Never static-import `MediaLibraryModal` into `Editor.vue`: that collapses\n * the modal into the main entry for every consumer. Guarded by\n * `tests/editorMediaProvider.test.ts` and `tests/cdn-chunk-granularity.test.ts`.\n *\n * The editor compiles `@templatical/media-library` into this async chunk\n * (same Vue instance as the rest of the editor). Standalone `init()` /\n * `MediaLibraryModal` in a host Vue app still live on that package.\n */\nimport { defineAsyncComponent } from \"vue\";\nimport type { MediaAsset, MediaProvider } from \"@templatical/types\";\nimport type { UseMediaFeatureReturn } from \"../composables/useMediaFeature\";\n\nconst props = defineProps<{\n feature: UseMediaFeatureReturn;\n provider: MediaProvider;\n locale?: string;\n uiTheme?: string;\n popoverTarget?: HTMLElement | null;\n}>();\n\nconst MediaLibraryModal = defineAsyncComponent(async () => {\n const m = await import(\"@templatical/media-library\");\n return m.MediaLibraryModal;\n});\n\nfunction handleSelect(asset: MediaAsset): void {\n props.feature.select(asset);\n}\n</script>\n\n<template>\n <MediaLibraryModal\n v-if=\"feature.isModalOpen.value\"\n :visible=\"feature.isModalOpen.value\"\n :provider=\"provider\"\n :accept=\"feature.accept.value\"\n :popover-target=\"popoverTarget\"\n :locale=\"locale\"\n :ui-theme=\"uiTheme\"\n :template-id=\"feature.templateId.value\"\n :on-error=\"feature.onError\"\n @select=\"handleSelect\"\n @close=\"feature.close()\"\n />\n</template>\n","<script setup lang=\"ts\">\n/**\n * Mount point for the media library modal.\n *\n * The modal is `defineAsyncComponent` behind a `v-if` on its open state, so its\n * chunk is fetched only when the user actually opens Browse —\n * `defineAsyncComponent` triggers its `import()` on first render, not at\n * definition time. `Editor.vue` in turn lazy-loads *this* wrapper and renders\n * it only when a `MediaProvider` is configured, so a consumer without one\n * downloads none of it. A callback-only `onRequestMedia` never mounts this.\n *\n * Never static-import `MediaLibraryModal` into `Editor.vue`: that collapses\n * the modal into the main entry for every consumer. Guarded by\n * `tests/editorMediaProvider.test.ts` and `tests/cdn-chunk-granularity.test.ts`.\n *\n * The editor compiles `@templatical/media-library` into this async chunk\n * (same Vue instance as the rest of the editor). Standalone `init()` /\n * `MediaLibraryModal` in a host Vue app still live on that package.\n */\nimport { defineAsyncComponent } from \"vue\";\nimport type { MediaAsset, MediaProvider } from \"@templatical/types\";\nimport type { UseMediaFeatureReturn } from \"../composables/useMediaFeature\";\n\nconst props = defineProps<{\n feature: UseMediaFeatureReturn;\n provider: MediaProvider;\n locale?: string;\n uiTheme?: string;\n popoverTarget?: HTMLElement | null;\n}>();\n\nconst MediaLibraryModal = defineAsyncComponent(async () => {\n const m = await import(\"@templatical/media-library\");\n return m.MediaLibraryModal;\n});\n\nfunction handleSelect(asset: MediaAsset): void {\n props.feature.select(asset);\n}\n</script>\n\n<template>\n <MediaLibraryModal\n v-if=\"feature.isModalOpen.value\"\n :visible=\"feature.isModalOpen.value\"\n :provider=\"provider\"\n :accept=\"feature.accept.value\"\n :popover-target=\"popoverTarget\"\n :locale=\"locale\"\n :ui-theme=\"uiTheme\"\n :template-id=\"feature.templateId.value\"\n :on-error=\"feature.onError\"\n @select=\"handleSelect\"\n @close=\"feature.close()\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;EAuBA,IAAMY,IAAQC,GAQRC,IAAoBJ,EAAqB,aAEtC,MADS,OAAO,8BAAA,CACd,iBACV;EAED,SAASK,EAAa,GAAyB;GAC7C,EAAM,QAAQ,OAAOC,CAAK;EAC5B;mBAKUH,EAAA,QAAQ,YAAY,SAD5Bb,EAAA,GAAAC,EAYEC,EAAAY,CAAA,GAAA;;GAVC,SAASD,EAAA,QAAQ,YAAY;GAC7B,UAAUA,EAAA;GACV,QAAQA,EAAA,QAAQ,OAAO;GACvB,kBAAgBA,EAAA;GAChB,QAAQA,EAAA;GACR,YAAUA,EAAA;GACV,eAAaA,EAAA,QAAQ,WAAW;GAChC,YAAUA,EAAA,QAAQ;GAClB,UAAQE;GACR,SAAK,AAAAE,EAAA,QAAA,MAAEJ,EAAA,QAAQ,MAAK"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { N as e, Q as t, S as n, at as r, b as i, ct as a, g as o, h as s, m as c, p as l } from "./draggable-IB4x6w2O.js";
|
|
2
2
|
import { t as u } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
3
3
|
import { p as d } from "./styleConstants-C_YAPdQS.js";
|
|
4
|
-
import { i as f, n as p, r as m, t as h } from "./LogicTagInsertButton-
|
|
4
|
+
import { i as f, n as p, r as m, t as h } from "./LogicTagInsertButton-CItDS_U1.js";
|
|
5
5
|
//#region src/components/MergeTagInput.vue?vue&type=script&setup=true&lang.ts
|
|
6
6
|
var g = { key: 0 }, _ = {
|
|
7
7
|
key: 0,
|
|
@@ -80,4 +80,4 @@ var g = { key: 0 }, _ = {
|
|
|
80
80
|
//#endregion
|
|
81
81
|
export { S as t };
|
|
82
82
|
|
|
83
|
-
//# sourceMappingURL=MergeTagInput
|
|
83
|
+
//# sourceMappingURL=MergeTagInput-B33u3nxj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MergeTagInput-B33u3nxj.js","names":["_unref","_openBlock","_createElementBlock","_createVNode","MergeTagSegments","_createBlock","MergeTagInsertButton","_createCommentVNode","LogicTagInsertButton","_createElementVNode","_normalizeClass","_sfc_main","openBlock","ref","defineComponent","unref","createVNode","normalizeClass","createElementBlock","createCommentVNode","createBlock","createBaseVNode","_plugin_vue_export_helper_default","inputClass","useMergeTagField","MergeTagInsertButton_default","MergeTagSegments_default","LogicTagInsertButton_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","displayClass","MergeTagInput_default","__emit","props","__props","emit","inputRef","handleFieldKeydown","value","handleKeydown","event","hasMergeTags","isEditing","segments","startEditing","clearValue","replaceMergeTagAt","canRequestMergeTag","canInsertLogicTag","isRequestingMergeTag","insertMergeTag","isRequestingLogicTag","insertLogicTag","_cache","args","handleInput","handleClick","handleBlur"],"sources":["../../../src/components/MergeTagInput.vue","../../../src/components/MergeTagInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useMergeTagField } from \"../composables/useMergeTagField\";\nimport { inputClass } from \"../constants/styleConstants\";\nimport MergeTagSegments from \"./MergeTagSegments.vue\";\nimport MergeTagInsertButton from \"./MergeTagInsertButton.vue\";\nimport LogicTagInsertButton from \"./LogicTagInsertButton.vue\";\nimport { ref } from \"vue\";\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string;\n type?: \"text\" | \"url\";\n placeholder?: string;\n pulse?: boolean;\n }>(),\n {\n type: \"text\",\n placeholder: \"\",\n pulse: false,\n },\n);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", value: string): void;\n /**\n * Keydown the autocomplete popup declined. Declared (rather than left to\n * attribute fallthrough) so a host binding `@keydown` never sees the key\n * that just picked a tag — the link dialog would submit on it.\n */\n (e: \"keydown\", event: KeyboardEvent): void;\n}>();\n\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nconst {\n segments,\n hasMergeTags,\n canRequestMergeTag,\n isRequestingMergeTag,\n canInsertLogicTag,\n isRequestingLogicTag,\n isEditing,\n startEditing,\n handleInput,\n handleKeydown: handleFieldKeydown,\n handleClick,\n handleBlur,\n clearValue,\n insertMergeTag,\n insertLogicTag,\n replaceMergeTagAt,\n} = useMergeTagField({\n modelValue: () => props.modelValue,\n emit: (value) => emit(\"update:modelValue\", value),\n elementRef: inputRef,\n});\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (!handleFieldKeydown(event)) {\n emit(\"keydown\", event);\n }\n}\n\nconst displayClass =\n \"tpl:flex tpl:w-full tpl:min-h-10 tpl:cursor-pointer tpl:items-center tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-[var(--tpl-shadow-sm)] tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3.5 tpl:py-1.5 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]\";\n</script>\n\n<template>\n <div v-if=\"hasMergeTags && !isEditing\">\n <MergeTagSegments\n :segments=\"segments\"\n :display-class=\"displayClass\"\n :pulse=\"pulse\"\n @edit=\"startEditing\"\n @clear=\"clearValue\"\n @repick=\"replaceMergeTagAt\"\n />\n <div\n v-if=\"canRequestMergeTag || canInsertLogicTag\"\n class=\"tpl:flex tpl:flex-wrap tpl:gap-1.5\"\n >\n <MergeTagInsertButton\n v-if=\"canRequestMergeTag\"\n :disabled=\"isRequestingMergeTag\"\n @insert=\"insertMergeTag\"\n />\n <LogicTagInsertButton\n v-if=\"canInsertLogicTag\"\n :disabled=\"isRequestingLogicTag\"\n @insert=\"insertLogicTag\"\n />\n </div>\n </div>\n <div v-else>\n <input\n ref=\"inputRef\"\n :type=\"type\"\n :class=\"[inputClass, { 'tpl-pulse-fill': pulse }]\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n @input=\"handleInput\"\n @keydown=\"handleKeydown\"\n @click=\"handleClick\"\n @blur=\"handleBlur\"\n />\n <div\n v-if=\"canRequestMergeTag || canInsertLogicTag\"\n class=\"tpl:flex tpl:flex-wrap tpl:gap-1.5\"\n >\n <MergeTagInsertButton\n v-if=\"canRequestMergeTag\"\n :disabled=\"isRequestingMergeTag\"\n @insert=\"insertMergeTag\"\n />\n <LogicTagInsertButton\n v-if=\"canInsertLogicTag\"\n :disabled=\"isRequestingLogicTag\"\n @insert=\"insertLogicTag\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.tpl-pulse-fill {\n animation: tpl-field-pulse 1s ease-out;\n}\n\n@keyframes tpl-field-pulse {\n 0% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--tpl-warning) 30%, transparent);\n background-color: color-mix(in srgb, var(--tpl-warning) 6%, transparent);\n }\n 40% {\n box-shadow: 0 0 0 3px\n color-mix(in srgb, var(--tpl-warning) 15%, transparent);\n background-color: color-mix(in srgb, var(--tpl-warning) 5%, transparent);\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n background-color: transparent;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tpl-pulse-fill {\n animation: none;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useMergeTagField } from \"../composables/useMergeTagField\";\nimport { inputClass } from \"../constants/styleConstants\";\nimport MergeTagSegments from \"./MergeTagSegments.vue\";\nimport MergeTagInsertButton from \"./MergeTagInsertButton.vue\";\nimport LogicTagInsertButton from \"./LogicTagInsertButton.vue\";\nimport { ref } from \"vue\";\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string;\n type?: \"text\" | \"url\";\n placeholder?: string;\n pulse?: boolean;\n }>(),\n {\n type: \"text\",\n placeholder: \"\",\n pulse: false,\n },\n);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", value: string): void;\n /**\n * Keydown the autocomplete popup declined. Declared (rather than left to\n * attribute fallthrough) so a host binding `@keydown` never sees the key\n * that just picked a tag — the link dialog would submit on it.\n */\n (e: \"keydown\", event: KeyboardEvent): void;\n}>();\n\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nconst {\n segments,\n hasMergeTags,\n canRequestMergeTag,\n isRequestingMergeTag,\n canInsertLogicTag,\n isRequestingLogicTag,\n isEditing,\n startEditing,\n handleInput,\n handleKeydown: handleFieldKeydown,\n handleClick,\n handleBlur,\n clearValue,\n insertMergeTag,\n insertLogicTag,\n replaceMergeTagAt,\n} = useMergeTagField({\n modelValue: () => props.modelValue,\n emit: (value) => emit(\"update:modelValue\", value),\n elementRef: inputRef,\n});\n\nfunction handleKeydown(event: KeyboardEvent): void {\n if (!handleFieldKeydown(event)) {\n emit(\"keydown\", event);\n }\n}\n\nconst displayClass =\n \"tpl:flex tpl:w-full tpl:min-h-10 tpl:cursor-pointer tpl:items-center tpl:flex-wrap tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:shadow-[var(--tpl-shadow-sm)] tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:px-3.5 tpl:py-1.5 tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)]\";\n</script>\n\n<template>\n <div v-if=\"hasMergeTags && !isEditing\">\n <MergeTagSegments\n :segments=\"segments\"\n :display-class=\"displayClass\"\n :pulse=\"pulse\"\n @edit=\"startEditing\"\n @clear=\"clearValue\"\n @repick=\"replaceMergeTagAt\"\n />\n <div\n v-if=\"canRequestMergeTag || canInsertLogicTag\"\n class=\"tpl:flex tpl:flex-wrap tpl:gap-1.5\"\n >\n <MergeTagInsertButton\n v-if=\"canRequestMergeTag\"\n :disabled=\"isRequestingMergeTag\"\n @insert=\"insertMergeTag\"\n />\n <LogicTagInsertButton\n v-if=\"canInsertLogicTag\"\n :disabled=\"isRequestingLogicTag\"\n @insert=\"insertLogicTag\"\n />\n </div>\n </div>\n <div v-else>\n <input\n ref=\"inputRef\"\n :type=\"type\"\n :class=\"[inputClass, { 'tpl-pulse-fill': pulse }]\"\n :value=\"modelValue\"\n :placeholder=\"placeholder\"\n @input=\"handleInput\"\n @keydown=\"handleKeydown\"\n @click=\"handleClick\"\n @blur=\"handleBlur\"\n />\n <div\n v-if=\"canRequestMergeTag || canInsertLogicTag\"\n class=\"tpl:flex tpl:flex-wrap tpl:gap-1.5\"\n >\n <MergeTagInsertButton\n v-if=\"canRequestMergeTag\"\n :disabled=\"isRequestingMergeTag\"\n @insert=\"insertMergeTag\"\n />\n <LogicTagInsertButton\n v-if=\"canInsertLogicTag\"\n :disabled=\"isRequestingLogicTag\"\n @insert=\"insertLogicTag\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.tpl-pulse-fill {\n animation: tpl-field-pulse 1s ease-out;\n}\n\n@keyframes tpl-field-pulse {\n 0% {\n box-shadow: 0 0 0 0 color-mix(in srgb, var(--tpl-warning) 30%, transparent);\n background-color: color-mix(in srgb, var(--tpl-warning) 6%, transparent);\n }\n 40% {\n box-shadow: 0 0 0 3px\n color-mix(in srgb, var(--tpl-warning) 15%, transparent);\n background-color: color-mix(in srgb, var(--tpl-warning) 5%, transparent);\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n background-color: transparent;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tpl-pulse-fill {\n animation: none;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;GA+DMiC,IACJ;;;;;;;;;;;;;EAxDF,IAAMG,IAAQC,GAcRC,IAAOH,GAUPI,IAAW1B,EAA6B,IAAI,GAE5C,EACJ,aACA,iBACA,uBACA,yBACA,sBACA,yBACA,cACA,iBACA,gBACA,eAAe2B,GACf,gBACA,eACA,eACA,mBACA,mBACA,yBACEhB,EAAiB;GACnB,kBAAkBY,EAAM;GACxB,OAAO,MAAUE,EAAK,qBAAqBG,CAAK;GAChD,YAAYF;EACd,CAAC;EAED,SAASG,EAAc,GAA4B;GACjD,AAAKF,EAAmBG,CAAK,KAC3BL,EAAK,WAAWK,CAAK;EAEzB;mBAOa3C,EAAA4C,CAAA,KAAY,CAAK5C,EAAA6C,CAAA,KAA5B5C,EAAA,GAAAC,EAwBM,OAAA0B,GAAA,CAvBJzB,EAOEC,GAAA;GANC,UAAUJ,EAAA8C,CAAA;GACV,iBAAeb;GACf,OAAOI,EAAA;GACP,QAAMrC,EAAA+C,CAAA;GACN,SAAO/C,EAAAgD,CAAA;GACP,UAAQhD,EAAAiD,CAAA;;;;;;;EAGHjD,CAAAA,GAAAA,EAAAkD,CAAA,KAAsBlD,EAAAmD,CAAA,KAD9BlD,EAAA,GAAAC,EAcM,OAdN2B,GAcM,CATI7B,EAAAkD,CAAA,KADRjD,EAAA,GAAAI,EAIEC,GAAA;;GAFC,UAAUN,EAAAoD,CAAA;GACV,UAAQpD,EAAAqD,CAAA;EAGHrD,GAAAA,MAAAA,GAAAA,CAAAA,YAAAA,UAAAA,CAAAA,KAAAA,EAAAA,IAAAA,EAAAA,GAAAA,EAAAmD,CAAA,KADRlD,EAAA,GAAAI,EAIEG,GAAA;;GAFC,UAAUR,EAAAsD,CAAA;GACV,UAAQtD,EAAAuD,CAAA;EAIftD,GAAAA,MAAAA,GAAAA,CAAAA,YAAAA,UAAAA,CAAAA,KAAAA,EAAAA,IAAAA,EAAAA,CAAAA,CAAAA,KAAAA,EAAAA,IAAAA,EAAAA,CAAAA,CAAAA,MAAAA,EAAA,GAAAC,EA2BM,OAAA4B,GAAA,CA1BJrB,EAUE,SAAA;GATI,SAAA;GAAJ,KAAI8B;GACH,MAAMF,EAAA;GACN,OAAK3B,EAAA,CAAGV,EAAAuB,CAAA,GAAU,EAAA,kBAAsBc,EAAA,MAAK,CAAA,CAAA;GAC7C,OAAOA,EAAA;GACP,aAAaA,EAAA;GACb,SAAK,AAAAmB,EAAA,QAAE,GAAAC,MAAAzD,EAAA0D,CAAA,KAAA1D,EAAA0D,CAAA,CAAA,CAAA,GAAAD,CAAA;GACP,WAASf;GACT,SAAK,AAAAc,EAAA,QAAE,GAAAC,MAAAzD,EAAA2D,CAAA,KAAA3D,EAAA2D,CAAA,CAAA,CAAA,GAAAF,CAAA;GACP,QAAI,AAAAD,EAAA,QAAE,GAAAC,MAAAzD,EAAA4D,CAAA,KAAA5D,EAAA4D,CAAA,CAAA,CAAA,GAAAH,CAAA;EAGDzD,GAAAA,MAAAA,IAAAA,CAAAA,GAAAA,EAAAkD,CAAA,KAAsBlD,EAAAmD,CAAA,KAD9BlD,EAAA,GAAAC,EAcM,OAdN8B,GAcM,CATIhC,EAAAkD,CAAA,KADRjD,EAAA,GAAAI,EAIEC,GAAA;;GAFC,UAAUN,EAAAoD,CAAA;GACV,UAAQpD,EAAAqD,CAAA;EAGHrD,GAAAA,MAAAA,GAAAA,CAAAA,YAAAA,UAAAA,CAAAA,KAAAA,EAAAA,IAAAA,EAAAA,GAAAA,EAAAmD,CAAA,KADRlD,EAAA,GAAAI,EAIEG,GAAA;;GAFC,UAAUR,EAAAsD,CAAA;GACV,UAAQtD,EAAAuD,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { E as e, F as t, N as n, S as r, at as i, f as a, g as o, h as s, lt as c, m as l, p as u, u as d, ut as f } from "./draggable-IB4x6w2O.js";
|
|
2
|
-
import { u as p } from "./src-
|
|
2
|
+
import { u as p } from "./src-BR3I3gOW.js";
|
|
3
3
|
import { F as m, O as h } from "./keys-DCWeHkSF.js";
|
|
4
4
|
import { t as g } from "./useI18n-CyO_Nmca.js";
|
|
5
|
-
import {
|
|
5
|
+
import { D as _, O as v, et as y, m as b } from "./icons-CQnjugjy.js";
|
|
6
6
|
//#region src/components/ViewportToggle.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var x = ["aria-label"], S = [
|
|
8
8
|
"aria-checked",
|
|
@@ -20,7 +20,7 @@ var x = ["aria-label"], S = [
|
|
|
20
20
|
}, {
|
|
21
21
|
value: "mobile",
|
|
22
22
|
label: m.viewport.mobile
|
|
23
|
-
}]),
|
|
23
|
+
}]), _ = a(() => `translateX(${h.value.findIndex((e) => e.value === s.viewport) * 100}%)`);
|
|
24
24
|
return (r, a) => (n(), o("div", {
|
|
25
25
|
role: "radiogroup",
|
|
26
26
|
"aria-label": i(m).viewport.label,
|
|
@@ -34,7 +34,7 @@ var x = ["aria-label"], S = [
|
|
|
34
34
|
style: c({
|
|
35
35
|
left: "4px",
|
|
36
36
|
width: `calc((100% - 8px) / ${h.value.length})`,
|
|
37
|
-
transform:
|
|
37
|
+
transform: _.value,
|
|
38
38
|
backgroundColor: "var(--tpl-bg)",
|
|
39
39
|
boxShadow: "var(--tpl-shadow)",
|
|
40
40
|
transition: "transform 120ms cubic-bezier(0.16, 1, 0.3, 1)"
|
|
@@ -51,7 +51,7 @@ var x = ["aria-label"], S = [
|
|
|
51
51
|
}),
|
|
52
52
|
title: t.label,
|
|
53
53
|
onClick: (e) => p("change", t.value)
|
|
54
|
-
}, [t.value === "desktop" ? (n(), l(i(
|
|
54
|
+
}, [t.value === "desktop" ? (n(), l(i(y), {
|
|
55
55
|
key: 0,
|
|
56
56
|
size: 18,
|
|
57
57
|
"stroke-width": 1.5
|
|
@@ -70,14 +70,14 @@ var x = ["aria-label"], S = [
|
|
|
70
70
|
__name: "MergeTagModeToggle",
|
|
71
71
|
props: { sampleMode: { type: Boolean } },
|
|
72
72
|
emits: ["change"],
|
|
73
|
-
setup(r, { emit:
|
|
74
|
-
let
|
|
73
|
+
setup(r, { emit: v }) {
|
|
74
|
+
let y = r, x = v, { t: S } = g(), C = e(h, m), E = a(() => p(C.value)), D = a(() => [{
|
|
75
75
|
value: !0,
|
|
76
76
|
label: S.mergeTagPreview.sample
|
|
77
77
|
}, {
|
|
78
78
|
value: !1,
|
|
79
79
|
label: S.mergeTagPreview.labelView
|
|
80
|
-
}]), O = a(() => `translateX(${D.value.findIndex((e) => e.value ===
|
|
80
|
+
}]), O = a(() => `translateX(${D.value.findIndex((e) => e.value === y.sampleMode) * 100}%)`);
|
|
81
81
|
return (e, a) => E.value ? (n(), o("div", {
|
|
82
82
|
key: 0,
|
|
83
83
|
role: "radiogroup",
|
|
@@ -110,7 +110,7 @@ var x = ["aria-label"], S = [
|
|
|
110
110
|
}),
|
|
111
111
|
title: e.label,
|
|
112
112
|
onClick: (t) => x("change", e.value)
|
|
113
|
-
}, [e.value ? (n(), l(i(
|
|
113
|
+
}, [e.value ? (n(), l(i(_), {
|
|
114
114
|
key: 0,
|
|
115
115
|
size: 18,
|
|
116
116
|
"stroke-width": 1.5
|
|
@@ -124,4 +124,4 @@ var x = ["aria-label"], S = [
|
|
|
124
124
|
//#endregion
|
|
125
125
|
export { C as n, E as t };
|
|
126
126
|
|
|
127
|
-
//# sourceMappingURL=MergeTagModeToggle-
|
|
127
|
+
//# sourceMappingURL=MergeTagModeToggle-Bz1CH3NT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MergeTagModeToggle-Bz1CH3NT.js","names":["_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_unref","_normalizeStyle","_createElementVNode","_Fragment","_renderList","_createBlock","_toDisplayString","_sfc_main","_openBlock","_createElementBlock","_unref","_normalizeStyle","_createElementVNode","_Fragment","_renderList","_createBlock","_toDisplayString","_createCommentVNode","_sfc_main","inject","renderList","openBlock","defineComponent","unref","computed","createElementBlock","createCommentVNode","normalizeStyle","createBlock","createBaseVNode","Fragment","toDisplayString","hasMergeTagSamples","NO_MERGE_TAGS","MERGE_TAGS_KEY","useI18n","Sparkles","Smartphone","Monitor","TextCursorInput","_hoisted_1$1","_hoisted_2$1","ViewportToggle_default","__emit","props","__props","emit","viewports","t","pillOffset","vp","_hoisted_1","_hoisted_2","MergeTagModeToggle_default","mergeTags","isAvailable","modes","m","mode"],"sources":["../../../src/components/ViewportToggle.vue","../../../src/components/ViewportToggle.vue","../../../src/components/MergeTagModeToggle.vue","../../../src/components/MergeTagModeToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from \"../composables/useI18n\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { Monitor, Smartphone } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n viewport: ViewportSize;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", viewport: ViewportSize): void;\n}>();\n\nconst { t } = useI18n();\n\nconst viewports = computed(() => [\n { value: \"desktop\" as ViewportSize, label: t.viewport.desktop },\n { value: \"mobile\" as ViewportSize, label: t.viewport.mobile },\n]);\n\nconst pillOffset = computed(() => {\n const index = viewports.value.findIndex((vp) => vp.value === props.viewport);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n role=\"radiogroup\"\n :aria-label=\"t.viewport.label\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${viewports.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${viewports.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"vp in viewports\"\n :key=\"vp.value\"\n role=\"radio\"\n :aria-checked=\"viewport === vp.value\"\n :aria-label=\"vp.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n viewport === vp.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"vp.label\"\n @click=\"emit('change', vp.value)\"\n >\n <Monitor v-if=\"vp.value === 'desktop'\" :size=\"18\" :stroke-width=\"1.5\" />\n <Smartphone v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ vp.label }}</span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from \"../composables/useI18n\";\nimport type { ViewportSize } from \"@templatical/types\";\nimport { Monitor, Smartphone } from \"@lucide/vue\";\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n viewport: ViewportSize;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", viewport: ViewportSize): void;\n}>();\n\nconst { t } = useI18n();\n\nconst viewports = computed(() => [\n { value: \"desktop\" as ViewportSize, label: t.viewport.desktop },\n { value: \"mobile\" as ViewportSize, label: t.viewport.mobile },\n]);\n\nconst pillOffset = computed(() => {\n const index = viewports.value.findIndex((vp) => vp.value === props.viewport);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n role=\"radiogroup\"\n :aria-label=\"t.viewport.label\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${viewports.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${viewports.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"vp in viewports\"\n :key=\"vp.value\"\n role=\"radio\"\n :aria-checked=\"viewport === vp.value\"\n :aria-label=\"vp.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n viewport === vp.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"vp.label\"\n @click=\"emit('change', vp.value)\"\n >\n <Monitor v-if=\"vp.value === 'desktop'\" :size=\"18\" :stroke-width=\"1.5\" />\n <Smartphone v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ vp.label }}</span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\n/**\n * Switches the previews between the two merge-tag views: **Sample** (tags\n * replaced by their `MergeTag.sample`, rendered as ordinary text) and **Label**\n * (tags shown as their label with the usual cue).\n *\n * Deliberately the same segmented control as `ViewportToggle.vue` — the two sit\n * one click apart on the same preview surfaces, so they have to read as one\n * family rather than two similar things. Kept as a separate component rather\n * than generalising the viewport one: that would mean a generic segmented\n * control with an icon map, and two call sites don't justify the indirection.\n *\n * Renders only where a preview is showing. It must never appear over the\n * editing canvas, because substitution never happens there.\n *\n * **Renders nothing at all unless some configured tag declares a `sample`.**\n * With none, the two views are identical, so the control would be inert. The\n * check lives here rather than at each call site so the guarantee holds for\n * every surface — present and future — without three `v-if`s to keep in step.\n */\nimport { hasMergeTagSamples } from \"@templatical/types\";\nimport { useI18n } from \"../composables/useI18n\";\nimport { MERGE_TAGS_KEY, NO_MERGE_TAGS } from \"../keys\";\nimport { TextCursorInput, Sparkles } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n /** `true` for Sample view, `false` for Label view. */\n sampleMode: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", sampleMode: boolean): void;\n}>();\n\nconst { t } = useI18n();\n\nconst mergeTags = inject(MERGE_TAGS_KEY, NO_MERGE_TAGS);\nconst isAvailable = computed(() => hasMergeTagSamples(mergeTags.value));\n\nconst modes = computed(() => [\n { value: true, label: t.mergeTagPreview.sample },\n { value: false, label: t.mergeTagPreview.labelView },\n]);\n\nconst pillOffset = computed(() => {\n const index = modes.value.findIndex((m) => m.value === props.sampleMode);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n v-if=\"isAvailable\"\n role=\"radiogroup\"\n :aria-label=\"t.mergeTagPreview.label\"\n data-testid=\"merge-tag-mode-toggle\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${modes.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${modes.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"mode in modes\"\n :key=\"String(mode.value)\"\n role=\"radio\"\n :aria-checked=\"sampleMode === mode.value\"\n :aria-label=\"mode.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n sampleMode === mode.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"mode.label\"\n @click=\"emit('change', mode.value)\"\n >\n <Sparkles v-if=\"mode.value\" :size=\"18\" :stroke-width=\"1.5\" />\n <TextCursorInput v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ mode.label }}</span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\n/**\n * Switches the previews between the two merge-tag views: **Sample** (tags\n * replaced by their `MergeTag.sample`, rendered as ordinary text) and **Label**\n * (tags shown as their label with the usual cue).\n *\n * Deliberately the same segmented control as `ViewportToggle.vue` — the two sit\n * one click apart on the same preview surfaces, so they have to read as one\n * family rather than two similar things. Kept as a separate component rather\n * than generalising the viewport one: that would mean a generic segmented\n * control with an icon map, and two call sites don't justify the indirection.\n *\n * Renders only where a preview is showing. It must never appear over the\n * editing canvas, because substitution never happens there.\n *\n * **Renders nothing at all unless some configured tag declares a `sample`.**\n * With none, the two views are identical, so the control would be inert. The\n * check lives here rather than at each call site so the guarantee holds for\n * every surface — present and future — without three `v-if`s to keep in step.\n */\nimport { hasMergeTagSamples } from \"@templatical/types\";\nimport { useI18n } from \"../composables/useI18n\";\nimport { MERGE_TAGS_KEY, NO_MERGE_TAGS } from \"../keys\";\nimport { TextCursorInput, Sparkles } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n /** `true` for Sample view, `false` for Label view. */\n sampleMode: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: \"change\", sampleMode: boolean): void;\n}>();\n\nconst { t } = useI18n();\n\nconst mergeTags = inject(MERGE_TAGS_KEY, NO_MERGE_TAGS);\nconst isAvailable = computed(() => hasMergeTagSamples(mergeTags.value));\n\nconst modes = computed(() => [\n { value: true, label: t.mergeTagPreview.sample },\n { value: false, label: t.mergeTagPreview.labelView },\n]);\n\nconst pillOffset = computed(() => {\n const index = modes.value.findIndex((m) => m.value === props.sampleMode);\n return `translateX(${index * 100}%)`;\n});\n</script>\n\n<template>\n <div\n v-if=\"isAvailable\"\n role=\"radiogroup\"\n :aria-label=\"t.mergeTagPreview.label\"\n data-testid=\"merge-tag-mode-toggle\"\n class=\"tpl:relative tpl:grid tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1\"\n :style=\"{\n gridTemplateColumns: `repeat(${modes.length}, 1fr)`,\n backgroundColor: 'var(--tpl-bg-hover)',\n }\"\n >\n <!-- Sliding pill -->\n <div\n class=\"tpl:absolute tpl:inset-y-1 tpl:rounded-[var(--tpl-radius-sm)]\"\n :style=\"{\n left: '4px',\n width: `calc((100% - 8px) / ${modes.length})`,\n transform: pillOffset,\n backgroundColor: 'var(--tpl-bg)',\n boxShadow: 'var(--tpl-shadow)',\n transition: 'transform 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n ></div>\n\n <button\n v-for=\"mode in modes\"\n :key=\"String(mode.value)\"\n role=\"radio\"\n :aria-checked=\"sampleMode === mode.value\"\n :aria-label=\"mode.label\"\n class=\"tpl:relative tpl:z-10 tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium\"\n :style=\"{\n color:\n sampleMode === mode.value\n ? 'var(--tpl-primary)'\n : 'var(--tpl-text-muted)',\n transition: 'color 120ms cubic-bezier(0.16, 1, 0.3, 1)',\n }\"\n :title=\"mode.label\"\n @click=\"emit('change', mode.value)\"\n >\n <Sparkles v-if=\"mode.value\" :size=\"18\" :stroke-width=\"1.5\" />\n <TextCursorInput v-else :size=\"18\" :stroke-width=\"1.5\" />\n <span>{{ mode.label }}</span>\n </button>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAMA,IAAMgD,IAAQC,GAIRC,IAAOH,GAIP,EAAE,SAAMR,EAAQ,GAEhBY,IAAYvB,QAAe,CAC/B;GAAE,OAAO;GAA2B,OAAOwB,EAAE,SAAS;EAAQ,GAC9D;GAAE,OAAO;GAA0B,OAAOA,EAAE,SAAS;EAAO,CAC9D,CAAC,GAEKC,IAAazB,QAEV,cADOuB,EAAU,MAAM,WAAW,MAAOG,EAAG,UAAUN,EAAM,QAC9C,IAAQ,IAAI,GAClC;oBAIC9C,EAAA,GAAAC,EA2CM,OAAA;GA1CJ,MAAK;GACJ,cAAYC,EAAAgD,CAAA,CAAC,CAAC,SAAS;GACxB,OAAM;GACL,OAAK/C,EAAA;IAAyC,qBAAA,UAAA8C,EAAA,MAAU,OAAM;;;EAM/D7C,GAAAA,CAAAA,EAUO,OAAA;GATL,OAAM;GACL,OAAKD,EAAA;;IAA+D,OAAA,uBAAA8C,EAAA,MAAU,OAAM;IAAwB,WAAAE,EAAA;;;;;EAU/GnD,GAAAA,MAAAA,CAAAA,IAAAA,EAAA,EAAA,GAAAC,EAoBSI,GAAA,MAAAC,EAnBM2C,EAAA,QAAN,OADTjD,EAAA,GAAAC,EAoBS,UAAA;GAlBN,KAAKmD,EAAG;GACT,MAAK;GACJ,gBAAcL,EAAA,aAAaK,EAAG;GAC9B,cAAYA,EAAG;GAChB,OAAM;GACL,OAAKjD,EAAA;IAA6B,OAAA4C,EAAA,aAAaK,EAAG,QAAA,uBAAA;;;GAOlD,OAAOA,EAAG;GACV,UAAK,MAAEJ,EAAI,UAAWI,EAAG,KAAK;EAEhB,GAAA,CAAAA,EAAG,UAAK,aAAvBpD,EAAA,GAAAO,EAAwEL,EAAAsC,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;EACjExC,CAAAA,MAAAA,EAAA,GAAAO,EAAoDL,EAAAqC,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;EAC7CnC,CAAAA,IAAAA,EAA2B,QAAA,MAAAI,EAAlB4C,EAAG,KAAK,GAAA,CAAA,CAAA,GAAA,IAAAT,CAAA;;;;;;;;;;;;EE3CvB,IAAMG,IAAQC,GAKRC,IAAOH,GAIP,EAAE,SAAMR,EAAQ,GAEhBmB,IAAYnC,EAAOe,GAAgBD,CAAa,GAChDsB,IAAc/B,QAAeQ,EAAmBsB,EAAU,KAAK,CAAC,GAEhEE,IAAQhC,QAAe,CAC3B;GAAE,OAAO;GAAM,OAAOwB,EAAE,gBAAgB;EAAO,GAC/C;GAAE,OAAO;GAAO,OAAOA,EAAE,gBAAgB;EAAU,CACrD,CAAC,GAEKC,IAAazB,QAEV,cADOgC,EAAM,MAAM,WAAW,MAAMC,EAAE,UAAUb,EAAM,UACxC,IAAQ,IAAI,GAClC;mBAKSW,EAAA,SADR/C,EAAA,GAAAC,EA6CM,OAAA;;GA3CJ,MAAK;GACJ,cAAYC,EAAAsC,CAAA,CAAC,CAAC,gBAAgB;GAC/B,eAAY;GACZ,OAAM;GACL,OAAKrC,EAAA;IAAyC,qBAAA,UAAA6C,EAAA,MAAM,OAAM;;;EAM3D5C,GAAAA,CAAAA,EAUO,OAAA;GATL,OAAM;GACL,OAAKD,EAAA;;IAA+D,OAAA,uBAAA6C,EAAA,MAAM,OAAM;IAAwB,WAAAP,EAAA;;;;;EAU3GzC,GAAAA,MAAAA,CAAAA,IAAAA,EAAA,EAAA,GAAAC,EAoBSI,GAAA,MAAAC,EAnBQ0C,EAAA,QAAR,OADThD,EAAA,GAAAC,EAoBS,UAAA;GAlBN,KAAK,OAAOiD,EAAK,KAAK;GACvB,MAAK;GACJ,gBAAcb,EAAA,eAAea,EAAK;GAClC,cAAYA,EAAK;GAClB,OAAM;GACL,OAAK/C,EAAA;IAA6B,OAAAkC,EAAA,eAAea,EAAK,QAAA,uBAAA;;;GAOtD,OAAOA,EAAK;GACZ,UAAK,MAAEZ,EAAI,UAAWY,EAAK,KAAK;EAEjB,GAAA,CAAAA,EAAK,SAArBlD,EAAA,GAAAO,EAA6DL,EAAA0B,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;EACtD5B,CAAAA,MAAAA,EAAA,GAAAO,EAAyDL,EAAA6B,CAAA,GAAA;;GAAhC,MAAM;GAAK,gBAAc;EAClD3B,CAAAA,IAAAA,EAA6B,QAAA,MAAAI,EAApB0C,EAAK,KAAK,GAAA,CAAA,CAAA,GAAA,IAAAN,CAAA"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { E as e, F as t, N as n, Q as r, R as i, S as a, at as o, b as s, c, ct as l, d as u, f as d, g as f, h as p, l as m, lt as h, m as g, p as _, q as v, u as y, ut as b, y as x } from "./draggable-IB4x6w2O.js";
|
|
2
|
-
import { G as S } from "./src-
|
|
2
|
+
import { G as S } from "./src-BR3I3gOW.js";
|
|
3
3
|
import { t as C } from "./dist-CXB2_kBa.js";
|
|
4
|
-
import {
|
|
5
|
-
import { $ as O, A as k, E as A, J as
|
|
4
|
+
import { _ as w, b as T, g as E, y as D } from "./useEditorCore-D4kzTMtQ.js";
|
|
5
|
+
import { $ as O, A as k, E as A, J as ee, Z as j, g as M, v as N } from "./keys-DCWeHkSF.js";
|
|
6
6
|
import { t as P } from "./useI18n-CyO_Nmca.js";
|
|
7
|
-
import { n as F } from "./usePopoverPosition-
|
|
8
|
-
import {
|
|
7
|
+
import { n as F } from "./usePopoverPosition-DGXjXKjM.js";
|
|
8
|
+
import { C as te, F as ne, Ht as re, S as ie, _ as ae, at as oe, b as se, dt as ce, g as le, h as ue, lt as de, ot as fe, st as pe, u as me, v as he, wt as I, z as ge, zt as _e } from "./icons-CQnjugjy.js";
|
|
9
9
|
import { t as L } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
10
10
|
import { a as ve, n as ye, o as be, s as xe } from "./styleConstants-C_YAPdQS.js";
|
|
11
|
-
import { c as R } from "./LogicTagInsertButton-
|
|
12
|
-
import { n as z, t as B } from "./RichTextEditorContent-
|
|
11
|
+
import { c as R } from "./LogicTagInsertButton-CItDS_U1.js";
|
|
12
|
+
import { n as z, t as B } from "./RichTextEditorContent-dOg1xFqv.js";
|
|
13
13
|
//#region src/components/blocks/EmojiPickerDropdown.vue?vue&type=script&setup=true&lang.ts
|
|
14
14
|
var V = [
|
|
15
15
|
"aria-label",
|
|
@@ -19,8 +19,8 @@ var V = [
|
|
|
19
19
|
__name: "EmojiPickerDropdown",
|
|
20
20
|
emits: ["insert"],
|
|
21
21
|
setup(e, { emit: i }) {
|
|
22
|
-
let a = i, { categories: u, isOpen: h, toggle: g, close: v } =
|
|
23
|
-
|
|
22
|
+
let a = i, { categories: u, isOpen: h, toggle: g, close: v } = D(), { t: x, format: S } = P(), w = r(null), E = r(null), O = d(() => h.value);
|
|
23
|
+
T(w, O), C(E, () => {
|
|
24
24
|
h.value && v();
|
|
25
25
|
});
|
|
26
26
|
function k(e) {
|
|
@@ -28,7 +28,7 @@ var V = [
|
|
|
28
28
|
}
|
|
29
29
|
return (e, r) => (n(), f("div", {
|
|
30
30
|
ref_key: "rootRef",
|
|
31
|
-
ref:
|
|
31
|
+
ref: E,
|
|
32
32
|
class: "tpl:relative"
|
|
33
33
|
}, [_("button", {
|
|
34
34
|
type: "button",
|
|
@@ -46,7 +46,7 @@ var V = [
|
|
|
46
46
|
key: 0,
|
|
47
47
|
id: "tpl-emoji-picker",
|
|
48
48
|
ref_key: "pickerRef",
|
|
49
|
-
ref:
|
|
49
|
+
ref: w,
|
|
50
50
|
role: "dialog",
|
|
51
51
|
"aria-modal": "false",
|
|
52
52
|
"aria-label": o(x).paragraphEditor.insertEmoji,
|
|
@@ -158,7 +158,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
158
158
|
"add-logic-tag"
|
|
159
159
|
],
|
|
160
160
|
setup(t, { emit: r }) {
|
|
161
|
-
let i = t, a = r, c = e(
|
|
161
|
+
let i = t, a = r, c = e(ee, null), l = e(j, null), m = O(N, "ParagraphToolbar"), v = F(), S = e(k, null), C = e(A, null), w = e(M, null), T = d(() => (S?.isOpen.value ?? !1) || (C?.isOpen.value ?? !1)), { t: E } = P(), D = m.fonts;
|
|
162
162
|
function I(e) {
|
|
163
163
|
i.editor?.chain().focus().insertContent(e).run();
|
|
164
164
|
}
|
|
@@ -279,7 +279,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
279
279
|
]),
|
|
280
280
|
s(Z),
|
|
281
281
|
s(q, {
|
|
282
|
-
icon: o(
|
|
282
|
+
icon: o(re),
|
|
283
283
|
label: o(E).paragraphEditor.bold,
|
|
284
284
|
active: t.editor.isActive("bold"),
|
|
285
285
|
"stroke-width": 2.5,
|
|
@@ -290,7 +290,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
290
290
|
"active"
|
|
291
291
|
]),
|
|
292
292
|
s(q, {
|
|
293
|
-
icon: o(
|
|
293
|
+
icon: o(ce),
|
|
294
294
|
label: o(E).paragraphEditor.italic,
|
|
295
295
|
active: t.editor.isActive("italic"),
|
|
296
296
|
onClick: r[1] ||= (e) => t.editor.chain().focus().toggleItalic().run()
|
|
@@ -300,7 +300,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
300
300
|
"active"
|
|
301
301
|
]),
|
|
302
302
|
s(q, {
|
|
303
|
-
icon: o(
|
|
303
|
+
icon: o(me),
|
|
304
304
|
label: o(E).paragraphEditor.underline,
|
|
305
305
|
active: t.editor.isActive("underline"),
|
|
306
306
|
onClick: r[2] ||= (e) => t.editor.chain().focus().toggleUnderline().run()
|
|
@@ -310,7 +310,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
310
310
|
"active"
|
|
311
311
|
]),
|
|
312
312
|
s(q, {
|
|
313
|
-
icon: o(
|
|
313
|
+
icon: o(te),
|
|
314
314
|
label: o(E).paragraphEditor.strikethrough,
|
|
315
315
|
active: t.editor.isActive("strike"),
|
|
316
316
|
onClick: r[3] ||= (e) => t.editor.chain().focus().toggleStrike().run()
|
|
@@ -321,7 +321,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
321
321
|
]),
|
|
322
322
|
s(Z),
|
|
323
323
|
s(q, {
|
|
324
|
-
icon: o(
|
|
324
|
+
icon: o(ie),
|
|
325
325
|
label: o(E).paragraphEditor.subscript,
|
|
326
326
|
active: t.editor.isActive("subscript"),
|
|
327
327
|
onClick: r[4] ||= (e) => t.editor.chain().focus().toggleSubscript().run()
|
|
@@ -331,7 +331,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
331
331
|
"active"
|
|
332
332
|
]),
|
|
333
333
|
s(q, {
|
|
334
|
-
icon: o(
|
|
334
|
+
icon: o(se),
|
|
335
335
|
label: o(E).paragraphEditor.superscript,
|
|
336
336
|
active: t.editor.isActive("superscript"),
|
|
337
337
|
onClick: r[5] ||= (e) => t.editor.chain().focus().toggleSuperscript().run()
|
|
@@ -342,7 +342,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
342
342
|
]),
|
|
343
343
|
s(Z),
|
|
344
344
|
s(q, {
|
|
345
|
-
icon: o(
|
|
345
|
+
icon: o(de),
|
|
346
346
|
label: o(E).paragraphEditor.addLink,
|
|
347
347
|
active: t.editor.isActive("link"),
|
|
348
348
|
onClick: r[6] ||= (e) => a("open-link-dialog")
|
|
@@ -353,7 +353,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
353
353
|
])
|
|
354
354
|
]), _("div", Oe, [
|
|
355
355
|
s(q, {
|
|
356
|
-
icon: o(
|
|
356
|
+
icon: o(fe),
|
|
357
357
|
label: o(E).paragraphEditor.bulletList,
|
|
358
358
|
active: t.editor.isActive("bulletList"),
|
|
359
359
|
onClick: r[7] ||= (e) => t.editor.chain().focus().toggleBulletList().run()
|
|
@@ -363,7 +363,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
363
363
|
"active"
|
|
364
364
|
]),
|
|
365
365
|
s(q, {
|
|
366
|
-
icon: o(
|
|
366
|
+
icon: o(pe),
|
|
367
367
|
label: o(E).paragraphEditor.numberedList,
|
|
368
368
|
active: t.editor.isActive("orderedList"),
|
|
369
369
|
onClick: r[8] ||= (e) => t.editor.chain().focus().toggleOrderedList().run()
|
|
@@ -374,7 +374,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
374
374
|
]),
|
|
375
375
|
s(Z),
|
|
376
376
|
s(q, {
|
|
377
|
-
icon: o(
|
|
377
|
+
icon: o(ue),
|
|
378
378
|
label: o(E).paragraphEditor.alignLeft,
|
|
379
379
|
active: t.editor.isActive({ textAlign: "left" }),
|
|
380
380
|
onClick: r[9] ||= (e) => t.editor.chain().focus().setTextAlign("left").run()
|
|
@@ -384,7 +384,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
384
384
|
"active"
|
|
385
385
|
]),
|
|
386
386
|
s(q, {
|
|
387
|
-
icon: o(
|
|
387
|
+
icon: o(he),
|
|
388
388
|
label: o(E).paragraphEditor.alignCenter,
|
|
389
389
|
active: t.editor.isActive({ textAlign: "center" }),
|
|
390
390
|
onClick: r[10] ||= (e) => t.editor.chain().focus().setTextAlign("center").run()
|
|
@@ -394,7 +394,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
394
394
|
"active"
|
|
395
395
|
]),
|
|
396
396
|
s(q, {
|
|
397
|
-
icon: o(
|
|
397
|
+
icon: o(ae),
|
|
398
398
|
label: o(E).paragraphEditor.alignRight,
|
|
399
399
|
active: t.editor.isActive({ textAlign: "right" }),
|
|
400
400
|
onClick: r[11] ||= (e) => t.editor.chain().focus().setTextAlign("right").run()
|
|
@@ -404,7 +404,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
404
404
|
"active"
|
|
405
405
|
]),
|
|
406
406
|
s(q, {
|
|
407
|
-
icon: o(
|
|
407
|
+
icon: o(le),
|
|
408
408
|
label: o(E).paragraphEditor.alignJustify,
|
|
409
409
|
active: t.editor.isActive({ textAlign: "justify" }),
|
|
410
410
|
onClick: r[12] ||= (e) => t.editor.chain().focus().setTextAlign("justify").run()
|
|
@@ -440,7 +440,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
440
440
|
]),
|
|
441
441
|
s(Z),
|
|
442
442
|
s(q, {
|
|
443
|
-
icon: o(
|
|
443
|
+
icon: o(ge),
|
|
444
444
|
label: o(E).paragraphEditor.clearFormatting,
|
|
445
445
|
onClick: r[13] ||= (e) => t.editor.chain().focus().clearNodes().unsetAllMarks().run()
|
|
446
446
|
}, null, 8, ["icon", "label"]),
|
|
@@ -452,7 +452,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
452
452
|
"aria-label": o(E).mergeTag.insert,
|
|
453
453
|
title: o(E).mergeTag.insert,
|
|
454
454
|
onClick: r[14] ||= (e) => a("add-merge-tag")
|
|
455
|
-
}, [s(o(
|
|
455
|
+
}, [s(o(ne), {
|
|
456
456
|
size: 16,
|
|
457
457
|
"stroke-width": 2
|
|
458
458
|
}), x(" " + b(o(E).mergeTag.insertShort), 1)], 8, ke)], 64)) : p("", !0),
|
|
@@ -463,11 +463,11 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
463
463
|
title: o(E).logicTag.insert,
|
|
464
464
|
"data-testid": "insert-logic-button",
|
|
465
465
|
onClick: r[15] ||= (e) => a("add-logic-tag")
|
|
466
|
-
}, [s(o(
|
|
466
|
+
}, [s(o(_e), {
|
|
467
467
|
size: 16,
|
|
468
468
|
"stroke-width": 2
|
|
469
469
|
}), x(" " + b(o(E).logicTag.insertShort), 1)], 8, Ae)], 64)) : p("", !0)
|
|
470
|
-
])], 64)) : (n(), f("div", je, [s(o(
|
|
470
|
+
])], 64)) : (n(), f("div", je, [s(o(oe), {
|
|
471
471
|
class: "tpl-spinner",
|
|
472
472
|
size: 14,
|
|
473
473
|
"stroke-width": 2
|
|
@@ -481,25 +481,25 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
481
481
|
},
|
|
482
482
|
emits: ["done"],
|
|
483
483
|
setup(t, { emit: r }) {
|
|
484
|
-
let i = t, a = r, c = F(), l = e(M, null), u = S(l?.content?.value?.settings ?? { locale: "en" }) === "rtl" ? "right" : "left", { editor: d, EditorContent: p, isLoading: m, initError: h, retry: g, showLinkDialog: _, linkUrl: y, linkColor: b, linkDialogRef: x, canRequestMergeTag: C, canInsertLogicTag:
|
|
484
|
+
let i = t, a = r, c = F(), l = e(M, null), u = S(l?.content?.value?.settings ?? { locale: "en" }) === "rtl" ? "right" : "left", { editor: d, EditorContent: p, isLoading: m, initError: h, retry: g, showLinkDialog: _, linkUrl: y, linkColor: b, linkDialogRef: x, canRequestMergeTag: C, canInsertLogicTag: T, openLinkDialog: D, insertLink: O, removeLink: k, closeLinkDialog: A, handleLinkKeydown: ee, handleAddMergeTag: j, handleAddLogicTag: N } = E({
|
|
485
485
|
blockId: () => i.block.id,
|
|
486
486
|
blockContent: () => i.block.content,
|
|
487
487
|
onDone: () => a("done"),
|
|
488
488
|
editorName: "ParagraphEditor",
|
|
489
489
|
async loadExtensions({ mergeTags: e, syntax: t, triggerChar: n, autocompleteEnabled: r, suggestionEmptyText: i }) {
|
|
490
|
-
let [{ Editor: a, EditorContent: o }, { default: s }, { default: l }, { default: d }, { default: f }, { default: p }, { default: m }, { TextStyle: h }, { default: g }, { default: _ }, { default: v }, { MergeTagNode: y, MergeTagSuggestion: b, LogicMergeTagNode: x, FontSize: S, LineHeight: C, LetterSpacing:
|
|
491
|
-
import("./tiptap-
|
|
492
|
-
import("./tiptap-
|
|
493
|
-
import("./tiptap-
|
|
494
|
-
import("./tiptap-
|
|
495
|
-
import("./tiptap-
|
|
496
|
-
import("./tiptap-
|
|
497
|
-
import("./tiptap-
|
|
498
|
-
import("./tiptap-
|
|
499
|
-
import("./tiptap-
|
|
500
|
-
import("./tiptap-
|
|
501
|
-
import("./tiptap-
|
|
502
|
-
import("./extensions-
|
|
490
|
+
let [{ Editor: a, EditorContent: o }, { default: s }, { default: l }, { default: d }, { default: f }, { default: p }, { default: m }, { TextStyle: h }, { default: g }, { default: _ }, { default: v }, { MergeTagNode: y, MergeTagSuggestion: b, LogicMergeTagNode: x, FontSize: S, LineHeight: C, LetterSpacing: T, LineBoundaryKeys: E }] = await Promise.all([
|
|
491
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.i),
|
|
492
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.a),
|
|
493
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.u),
|
|
494
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.o),
|
|
495
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.l),
|
|
496
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.c),
|
|
497
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.s),
|
|
498
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.m),
|
|
499
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.p),
|
|
500
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.f),
|
|
501
|
+
import("./tiptap-D1u8JIUW.js").then((e) => e.d),
|
|
502
|
+
import("./extensions-Dy251lPd.js")
|
|
503
503
|
]);
|
|
504
504
|
return {
|
|
505
505
|
TiptapEditor: a,
|
|
@@ -516,7 +516,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
516
516
|
d,
|
|
517
517
|
f,
|
|
518
518
|
p,
|
|
519
|
-
|
|
519
|
+
w(l).configure({
|
|
520
520
|
openOnClick: !1,
|
|
521
521
|
HTMLAttributes: {
|
|
522
522
|
target: "_blank",
|
|
@@ -533,13 +533,13 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
533
533
|
v.configure({ multicolor: !0 }),
|
|
534
534
|
S,
|
|
535
535
|
C,
|
|
536
|
-
|
|
536
|
+
T,
|
|
537
537
|
y.configure({
|
|
538
538
|
mergeTags: () => e.value,
|
|
539
539
|
syntax: t
|
|
540
540
|
}),
|
|
541
541
|
x.configure({ syntax: t }),
|
|
542
|
-
|
|
542
|
+
E,
|
|
543
543
|
...r && n && e.value.length > 0 ? [b.configure({
|
|
544
544
|
mergeTags: () => e.value,
|
|
545
545
|
char: n,
|
|
@@ -556,9 +556,9 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
556
556
|
"toolbar-position": t.toolbarPosition,
|
|
557
557
|
"is-loading": o(m),
|
|
558
558
|
"can-request-merge-tag": o(C),
|
|
559
|
-
"can-insert-logic-tag": o(
|
|
560
|
-
onOpenLinkDialog: o(
|
|
561
|
-
onAddMergeTag: o(
|
|
559
|
+
"can-insert-logic-tag": o(T),
|
|
560
|
+
onOpenLinkDialog: o(D),
|
|
561
|
+
onAddMergeTag: o(j),
|
|
562
562
|
onAddLogicTag: o(N)
|
|
563
563
|
}, null, 8, [
|
|
564
564
|
"editor",
|
|
@@ -595,7 +595,7 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
595
595
|
onClose: o(A),
|
|
596
596
|
onInsert: o(O),
|
|
597
597
|
onRemove: o(k),
|
|
598
|
-
onKeydown: o(
|
|
598
|
+
onKeydown: o(ee)
|
|
599
599
|
}, null, 8, [
|
|
600
600
|
"visible",
|
|
601
601
|
"is-editing-link",
|
|
@@ -613,4 +613,4 @@ var Ee = ["data-tpl-theme", "aria-label"], De = { class: "tpl:flex tpl:items-cen
|
|
|
613
613
|
//#endregion
|
|
614
614
|
export { Pe as default };
|
|
615
615
|
|
|
616
|
-
//# sourceMappingURL=ParagraphEditor-
|
|
616
|
+
//# sourceMappingURL=ParagraphEditor-J74SIn-m.js.map
|