@jackuait/blok 0.11.1 → 0.12.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/LICENSE +13 -1
- package/NOTICE +10 -0
- package/README.md +7 -1
- package/codemod/migrate-editorjs-to-blok.js +51 -1
- package/codemod/test.js +95 -0
- package/dist/blok.cjs +1 -1
- package/dist/blok.iife.js +31 -30
- package/dist/blok.mjs +2 -2
- package/dist/chunks/_basePickBy-CLCgPLk_.cjs +1 -0
- package/dist/chunks/_basePickBy-cIM18c5w.mjs +166 -0
- package/dist/chunks/_baseUniq-C3lUNj_l.mjs +682 -0
- package/dist/chunks/_baseUniq-Cm3XBb1f.cjs +1 -0
- package/dist/chunks/arc-BSr2jl4o.mjs +80 -0
- package/dist/chunks/arc-C-l7V0ww.cjs +1 -0
- package/dist/chunks/architecture-YZFGNWBL-C5uKTSqd.mjs +3 -0
- package/dist/chunks/architecture-YZFGNWBL-DopZbt9d.cjs +1 -0
- package/dist/chunks/architectureDiagram-Q4EWVU46-B3EkmUoA.cjs +36 -0
- package/dist/chunks/architectureDiagram-Q4EWVU46-DL5lPOq_.mjs +4066 -0
- package/dist/chunks/blockDiagram-DXYQGD6D-ChnytJiO.cjs +132 -0
- package/dist/chunks/blockDiagram-DXYQGD6D-DjFfRgP_.mjs +3074 -0
- package/dist/chunks/blok-B4ebnd6l.mjs +13853 -0
- package/dist/chunks/blok-k8Yo4v2F.cjs +17 -0
- package/dist/chunks/c4Diagram-AHTNJAMY-D9cwQ5dP.cjs +10 -0
- package/dist/chunks/c4Diagram-AHTNJAMY-DDydXzN1.mjs +2956 -0
- package/dist/chunks/channel-1VaVTmSI.mjs +5 -0
- package/dist/chunks/channel-DTKWBt5v.cjs +1 -0
- package/dist/chunks/chunk-2KRD3SAO-Dcv71dz8.cjs +1 -0
- package/dist/chunks/chunk-2KRD3SAO-DslQvmzC.mjs +20 -0
- package/dist/chunks/chunk-336JU56O-CUNPhOYK.mjs +49 -0
- package/dist/chunks/chunk-336JU56O-DsJvvQpB.cjs +1 -0
- package/dist/chunks/chunk-426QAEUC-Ciny2-Rz.mjs +13 -0
- package/dist/chunks/chunk-426QAEUC-DEYJ0OiL.cjs +1 -0
- package/dist/chunks/chunk-4BX2VUAB-D1dKBLiS.cjs +1 -0
- package/dist/chunks/chunk-4BX2VUAB-ljY9_i7D.mjs +19 -0
- package/dist/chunks/chunk-4TB4RGXK-C-eXrWWX.cjs +206 -0
- package/dist/chunks/chunk-4TB4RGXK-orLiGd4g.mjs +3250 -0
- package/dist/chunks/chunk-55IACEB6-BOy3ofgp.cjs +1 -0
- package/dist/chunks/chunk-55IACEB6-BPnDY27B.mjs +8 -0
- package/dist/chunks/chunk-5FUZZQ4R-D3UGwLBL.cjs +62 -0
- package/dist/chunks/chunk-5FUZZQ4R-D5gG1Dk4.mjs +3786 -0
- package/dist/chunks/chunk-5PVQY5BW-BCwqe25T.cjs +2 -0
- package/dist/chunks/chunk-5PVQY5BW-DVKx7m4a.mjs +1122 -0
- package/dist/chunks/chunk-67CJDMHE-BU_rrdV4.mjs +20 -0
- package/dist/chunks/chunk-67CJDMHE-VKwQfp25.cjs +1 -0
- package/dist/chunks/chunk-7N4EOEYR-BpM-QbmS.cjs +1 -0
- package/dist/chunks/chunk-7N4EOEYR-Cx6N1y9w.mjs +29 -0
- package/dist/chunks/chunk-AA7GKIK3-DCAy6uIg.mjs +24 -0
- package/dist/chunks/chunk-AA7GKIK3-RcaBhHiZ.cjs +1 -0
- package/dist/chunks/chunk-BSJP7CBP-BHijZ5f8.mjs +83 -0
- package/dist/chunks/chunk-BSJP7CBP-wiZ2ll8-.cjs +1 -0
- package/dist/chunks/chunk-CIAEETIT-0sn8TZoo.cjs +1 -0
- package/dist/chunks/chunk-CIAEETIT-BWpztfre.mjs +20 -0
- package/dist/chunks/chunk-EDXVE4YY-BJAhHZ3a.mjs +26 -0
- package/dist/chunks/chunk-EDXVE4YY-CXhcVSEI.cjs +1 -0
- package/dist/chunks/chunk-ENJZ2VHE-BgpbBBSF.cjs +10 -0
- package/dist/chunks/chunk-ENJZ2VHE-COIAdqL4.mjs +566 -0
- package/dist/chunks/chunk-FMBD7UC4-CUTvay8e.mjs +5 -0
- package/dist/chunks/chunk-FMBD7UC4-DCJ-fphu.cjs +15 -0
- package/dist/chunks/chunk-FOC6F5B3-3FOtyf3P.mjs +20 -0
- package/dist/chunks/chunk-FOC6F5B3-C2-FyqYn.cjs +1 -0
- package/dist/chunks/chunk-ICPOFSXX-BUWZvUuu.cjs +122 -0
- package/dist/chunks/chunk-ICPOFSXX-Dn5WbEeN.mjs +3290 -0
- package/dist/chunks/chunk-K5T4RW27-CX5gsk1T.cjs +94 -0
- package/dist/chunks/chunk-K5T4RW27-De7GqZCP.mjs +16372 -0
- package/dist/chunks/chunk-KGLVRYIC-Cwvjry7S.cjs +1 -0
- package/dist/chunks/chunk-KGLVRYIC-sDQUxLS7.mjs +20 -0
- package/dist/chunks/chunk-LIHQZDEY-BC8om0l2.cjs +1 -0
- package/dist/chunks/chunk-LIHQZDEY-BoY9X2Wj.mjs +55 -0
- package/dist/chunks/chunk-ORNJ4GCN-CYLjqcXc.mjs +25 -0
- package/dist/chunks/chunk-ORNJ4GCN-CoC7A1vn.cjs +1 -0
- package/dist/chunks/chunk-OYMX7WX6-Bbwq_g2w.mjs +2038 -0
- package/dist/chunks/chunk-OYMX7WX6-D3csU8-J.cjs +231 -0
- package/dist/chunks/chunk-QZHKN3VN-Bs3XaH0U.mjs +12 -0
- package/dist/chunks/chunk-QZHKN3VN-Db_x7kn8.cjs +1 -0
- package/dist/chunks/chunk-U2HBQHQK-CEwYxA8R.cjs +70 -0
- package/dist/chunks/chunk-U2HBQHQK-DLyzqElq.mjs +1875 -0
- package/dist/chunks/chunk-X2U36JSP-BY9JBwLQ.cjs +1 -0
- package/dist/chunks/chunk-X2U36JSP-UKGkP2m1.mjs +68 -0
- package/dist/chunks/chunk-XPW4576I-2i_ZgZLs.mjs +1146 -0
- package/dist/chunks/chunk-XPW4576I-Ym5mFsxv.cjs +32 -0
- package/dist/chunks/chunk-YZCP3GAM-C2GbOoUx.mjs +60 -0
- package/dist/chunks/chunk-YZCP3GAM-WMeXt5aH.cjs +1 -0
- package/dist/chunks/chunk-ZZ45TVLE-CeD1lNAB.cjs +1 -0
- package/dist/chunks/chunk-ZZ45TVLE-DyYus02Y.mjs +33 -0
- package/dist/chunks/classDiagram-6PBFFD2Q-DNHZ3qE5.mjs +30 -0
- package/dist/chunks/classDiagram-6PBFFD2Q-DWcC9USb.cjs +1 -0
- package/dist/chunks/classDiagram-v2-HSJHXN6E-BXKTiJNh.cjs +1 -0
- package/dist/chunks/classDiagram-v2-HSJHXN6E-GgfA5-jG.mjs +30 -0
- package/dist/chunks/clone-DeEumpiC.mjs +8 -0
- package/dist/chunks/clone-gX2HWen_.cjs +1 -0
- package/dist/chunks/constants-BsyOzSoJ.mjs +3432 -0
- package/dist/chunks/constants-DGaNl2M0.cjs +457 -0
- package/dist/chunks/cose-bilkent-S5V4N54A-BuQ-Gx1y.mjs +2246 -0
- package/dist/chunks/cose-bilkent-S5V4N54A-CdxjlgEx.cjs +1 -0
- package/dist/chunks/dagre-BVQ5RQE_.mjs +1483 -0
- package/dist/chunks/dagre-D9QEFKwC.cjs +1 -0
- package/dist/chunks/dagre-KV5264BT-BxQkkVxZ.mjs +298 -0
- package/dist/chunks/dagre-KV5264BT-Dz_FEBZU.cjs +4 -0
- package/dist/chunks/diagram-5BDNPKRD-Cf9AymAx.cjs +10 -0
- package/dist/chunks/diagram-5BDNPKRD-joiZwmh1.mjs +112 -0
- package/dist/chunks/diagram-G4DWMVQ6-3CAnipxw.cjs +24 -0
- package/dist/chunks/diagram-G4DWMVQ6-DrvbpYBX.mjs +546 -0
- package/dist/chunks/diagram-MMDJMWI5-B3CwY62T.mjs +234 -0
- package/dist/chunks/diagram-MMDJMWI5-DMrk0xwH.cjs +43 -0
- package/dist/chunks/diagram-TYMM5635-B3g66i1E.mjs +144 -0
- package/dist/chunks/diagram-TYMM5635-BAuYHtjV.cjs +24 -0
- package/dist/chunks/erDiagram-SMLLAGMA-4Ks-44BH.cjs +85 -0
- package/dist/chunks/erDiagram-SMLLAGMA-Bw6U_hHz.mjs +1712 -0
- package/dist/chunks/flowDiagram-DWJPFMVM-D2yMfIFs.mjs +4175 -0
- package/dist/chunks/flowDiagram-DWJPFMVM-O6dDtont.cjs +162 -0
- package/dist/chunks/ganttDiagram-T4ZO3ILL-D-ymktbJ.cjs +292 -0
- package/dist/chunks/ganttDiagram-T4ZO3ILL-SEs0Ez0p.mjs +3083 -0
- package/dist/chunks/gitGraph-7Q5UKJZL-BLhgGqhG.cjs +1 -0
- package/dist/chunks/gitGraph-7Q5UKJZL-DbRxS8Lo.mjs +3 -0
- package/dist/chunks/gitGraphDiagram-UUTBAWPF-BSuqMw-A.cjs +106 -0
- package/dist/chunks/gitGraphDiagram-UUTBAWPF-BpVIPN2N.mjs +792 -0
- package/dist/chunks/graphlib-C2L_nEcM.cjs +1 -0
- package/dist/chunks/graphlib-Cpp6Todw.mjs +225 -0
- package/dist/chunks/i18next-loader-BJAXtkt3.cjs +1 -0
- package/dist/chunks/i18next-loader-dnJtS6Nb.mjs +35 -0
- package/dist/chunks/info-OMHHGYJF-BRxQdcvB.mjs +3 -0
- package/dist/chunks/info-OMHHGYJF-Cb4wPKNP.cjs +1 -0
- package/dist/chunks/infoDiagram-42DDH7IO-BNAE_Dp2.cjs +2 -0
- package/dist/chunks/infoDiagram-42DDH7IO-JYmpv-Gn.mjs +29 -0
- package/dist/chunks/isEmpty-BYDpYNyM.cjs +1 -0
- package/dist/chunks/isEmpty-Bgy1eL0m.mjs +35 -0
- package/dist/chunks/ishikawaDiagram-UXIWVN3A-Ca_1igMn.cjs +70 -0
- package/dist/chunks/ishikawaDiagram-UXIWVN3A-ClkZz1Tc.mjs +719 -0
- package/dist/chunks/journeyDiagram-VCZTEJTY-BTzeo896.mjs +885 -0
- package/dist/chunks/journeyDiagram-VCZTEJTY-D69nfb5v.cjs +139 -0
- package/dist/chunks/kanban-definition-6JOO6SKY-BTSuFyjj.cjs +89 -0
- package/dist/chunks/kanban-definition-6JOO6SKY-C2Jk5rDA.mjs +980 -0
- package/dist/chunks/lightweight-i18n-T_Nc45AF.cjs +1 -0
- package/dist/chunks/lightweight-i18n-qpzXlOVm.mjs +344 -0
- package/dist/chunks/line-CjJKN63i.cjs +1 -0
- package/dist/chunks/line-zarcRAiW.mjs +34 -0
- package/dist/chunks/linear-CDUWrVHa.cjs +1 -0
- package/dist/chunks/linear-CXe29GGg.mjs +289 -0
- package/dist/chunks/mdast-util-math-BfFBcnFx.cjs +5 -0
- package/dist/chunks/mdast-util-math-CqPx3t0S.mjs +151 -0
- package/dist/chunks/mermaid-parser.core-BXANIhlc.mjs +57 -0
- package/dist/chunks/mermaid-parser.core-DMmP6uoD.cjs +3 -0
- package/dist/chunks/mermaid.core-A4e6ZJqs.mjs +977 -0
- package/dist/chunks/mermaid.core-C66G0J-z.cjs +10 -0
- package/dist/chunks/messages--BWLKiOP2.mjs +319 -0
- package/dist/chunks/messages--LI6Qp0h.mjs +319 -0
- package/dist/chunks/messages-4TiLLTpr2.cjs +1 -0
- package/dist/chunks/messages-7ul_s8GB2.mjs +319 -0
- package/dist/chunks/messages-8BZGqPD1.cjs +1 -0
- package/dist/chunks/messages-96ztlozp.cjs +1 -0
- package/dist/chunks/messages-B-_ZQLp5.mjs +319 -0
- package/dist/chunks/messages-B1YSYW3Y.cjs +1 -0
- package/dist/chunks/messages-B3E33lPt2.mjs +319 -0
- package/dist/chunks/messages-BABN8cuN.mjs +319 -0
- package/dist/chunks/messages-BDAXqxYw.cjs +1 -0
- package/dist/chunks/messages-BE0YZo6f.cjs +1 -0
- package/dist/chunks/messages-BIg9D7T52.cjs +1 -0
- package/dist/chunks/messages-BKtPvquH2.mjs +319 -0
- package/dist/chunks/messages-BMKq6Ps12.cjs +1 -0
- package/dist/chunks/messages-BMqvMau_2.mjs +319 -0
- package/dist/chunks/messages-BNmaVDtf.mjs +319 -0
- package/dist/chunks/messages-BRRMkfZY2.cjs +1 -0
- package/dist/chunks/messages-BUg0EGM6.cjs +1 -0
- package/dist/chunks/messages-BV88VXs-2.mjs +319 -0
- package/dist/chunks/messages-BVAjj_W_2.mjs +319 -0
- package/dist/chunks/messages-BWd6mmTm.mjs +319 -0
- package/dist/chunks/messages-BXce9Dbm.mjs +319 -0
- package/dist/chunks/messages-B_OU8dr_.mjs +319 -0
- package/dist/chunks/messages-B_VpqVFy.mjs +319 -0
- package/dist/chunks/messages-B_t9669l.mjs +319 -0
- package/dist/chunks/messages-Begh-7SQ.cjs +1 -0
- package/dist/chunks/messages-BfTeMiOT.cjs +1 -0
- package/dist/chunks/messages-BguYUD04.cjs +1 -0
- package/dist/chunks/messages-Bi5NKhkL.cjs +1 -0
- package/dist/chunks/messages-BliJJjNK2.cjs +1 -0
- package/dist/chunks/messages-BmSnovX9.cjs +1 -0
- package/dist/chunks/messages-BoZAdwRU2.mjs +319 -0
- package/dist/chunks/messages-Bp-PMdAJ.mjs +319 -0
- package/dist/chunks/messages-BphoNqXl2.mjs +319 -0
- package/dist/chunks/messages-Bs5HM4rw2.cjs +1 -0
- package/dist/chunks/messages-BtZSlvVR.cjs +1 -0
- package/dist/chunks/messages-Btg_N5Nj2.cjs +1 -0
- package/dist/chunks/messages-C67MLHmh.cjs +1 -0
- package/dist/chunks/messages-C6RXCX1D2.mjs +319 -0
- package/dist/chunks/messages-C6Zo4thu.mjs +319 -0
- package/dist/chunks/messages-C7QEUxQf2.cjs +1 -0
- package/dist/chunks/messages-CB-RDoMj2.cjs +1 -0
- package/dist/chunks/messages-CBOtPEE5.cjs +1 -0
- package/dist/chunks/messages-CBoKI_4k2.mjs +319 -0
- package/dist/chunks/messages-CCMMPgcH.mjs +319 -0
- package/dist/chunks/messages-CFvaU-9Q2.mjs +319 -0
- package/dist/chunks/messages-CHDxRwD8.mjs +319 -0
- package/dist/chunks/messages-CJWSRA8r.cjs +1 -0
- package/dist/chunks/messages-CJaj0WrV.mjs +319 -0
- package/dist/chunks/messages-CLnZAk7s.mjs +319 -0
- package/dist/chunks/messages-CNWWk9zU.cjs +1 -0
- package/dist/chunks/messages-CO4IPaU22.mjs +319 -0
- package/dist/chunks/messages-CQii-Hly.mjs +319 -0
- package/dist/chunks/messages-CSPoZeJd.cjs +1 -0
- package/dist/chunks/messages-CThWJOaj2.cjs +1 -0
- package/dist/chunks/messages-CWbag2W1.mjs +319 -0
- package/dist/chunks/messages-CWfPtitC.mjs +319 -0
- package/dist/chunks/messages-CYh8BT-U2.cjs +1 -0
- package/dist/chunks/messages-CZAwmrBN2.mjs +319 -0
- package/dist/chunks/messages-CcmzbJED2.mjs +319 -0
- package/dist/chunks/messages-Cdp2ao16.cjs +1 -0
- package/dist/chunks/messages-CeSGFPaX.mjs +319 -0
- package/dist/chunks/messages-CfmN_C_V2.cjs +1 -0
- package/dist/chunks/messages-CgTWiYXl.mjs +319 -0
- package/dist/chunks/messages-CiqFmj282.mjs +319 -0
- package/dist/chunks/messages-Cj1I1bdS.mjs +319 -0
- package/dist/chunks/messages-CktwPONk2.cjs +1 -0
- package/dist/chunks/messages-ClMbt_082.cjs +1 -0
- package/dist/chunks/messages-ClfpoVLB.cjs +1 -0
- package/dist/chunks/messages-CmcpUpmY2.cjs +1 -0
- package/dist/chunks/messages-CnNUiCOF2.cjs +1 -0
- package/dist/chunks/messages-Cq-tyBQ7.cjs +1 -0
- package/dist/chunks/messages-Cqs6tnMT.mjs +319 -0
- package/dist/chunks/messages-CrPQatEP.cjs +1 -0
- package/dist/chunks/messages-CtNhn2A72.cjs +1 -0
- package/dist/chunks/messages-Cw-JQsbB.cjs +1 -0
- package/dist/chunks/messages-CxLZNPP22.mjs +319 -0
- package/dist/chunks/messages-D2to7PFh.mjs +319 -0
- package/dist/chunks/messages-D7GNxw46.cjs +1 -0
- package/dist/chunks/messages-DDqbUQPS2.cjs +1 -0
- package/dist/chunks/messages-DIsfRggy.mjs +319 -0
- package/dist/chunks/messages-DLvqdeVe.mjs +319 -0
- package/dist/chunks/messages-DMukq8ei2.cjs +1 -0
- package/dist/chunks/messages-DOJ7TGKc.mjs +319 -0
- package/dist/chunks/messages-DPpKBEMV.mjs +319 -0
- package/dist/chunks/messages-DWDt4hEW.mjs +319 -0
- package/dist/chunks/messages-DYPc3t5L.cjs +1 -0
- package/dist/chunks/messages-DYRRi1JW.mjs +319 -0
- package/dist/chunks/messages-DYbP7_iL.cjs +1 -0
- package/dist/chunks/messages-D_gbD8W22.mjs +319 -0
- package/dist/chunks/messages-DaQ1XgNk.mjs +319 -0
- package/dist/chunks/messages-DjW1_-Ba2.mjs +319 -0
- package/dist/chunks/messages-Dop11yxi.mjs +319 -0
- package/dist/chunks/messages-DoyFY1Ye.mjs +319 -0
- package/dist/chunks/messages-DpjZ6YjX.cjs +1 -0
- package/dist/chunks/messages-DprfonW1.mjs +319 -0
- package/dist/chunks/messages-Dq8w46wu.cjs +1 -0
- package/dist/chunks/messages-DqbBTg1F2.mjs +319 -0
- package/dist/chunks/messages-DsGOj3A62.cjs +1 -0
- package/dist/chunks/messages-Dt6sbdaY.mjs +319 -0
- package/dist/chunks/messages-Dv3xqn-c.mjs +319 -0
- package/dist/chunks/messages-DwZCK3WR2.cjs +1 -0
- package/dist/chunks/messages-G-grLA6L2.cjs +1 -0
- package/dist/chunks/messages-HmyGBKiy2.cjs +1 -0
- package/dist/chunks/messages-IsKrH6md2.mjs +319 -0
- package/dist/chunks/messages-L1H9KlM8.cjs +1 -0
- package/dist/chunks/messages-OwCNaUA2.cjs +1 -0
- package/dist/chunks/messages-Q1fgq2tw.cjs +1 -0
- package/dist/chunks/messages-RLMDvD9N.mjs +319 -0
- package/dist/chunks/messages-SGrUP3jU2.mjs +319 -0
- package/dist/chunks/messages-TET2HqbJ.mjs +319 -0
- package/dist/chunks/messages-UR9AknuE.cjs +1 -0
- package/dist/chunks/messages-UXbrSqP4.mjs +319 -0
- package/dist/chunks/messages-UlQUIo4t.cjs +1 -0
- package/dist/chunks/messages-VO5bBaDw2.cjs +1 -0
- package/dist/chunks/messages-Vz-ouTEN.mjs +319 -0
- package/dist/chunks/messages-Z5hg0_Dz2.mjs +319 -0
- package/dist/chunks/messages-bBZDrpto2.mjs +319 -0
- package/dist/chunks/messages-ipwQdTtE.cjs +1 -0
- package/dist/chunks/messages-jXbN1DEs.mjs +319 -0
- package/dist/chunks/messages-kon7ablY2.cjs +1 -0
- package/dist/chunks/messages-oeTrLt0-.cjs +1 -0
- package/dist/chunks/messages-qga5_rrO.cjs +1 -0
- package/dist/chunks/messages-sEnNaZIo.cjs +1 -0
- package/dist/chunks/messages-szOBKu5g.cjs +1 -0
- package/dist/chunks/messages-tZ7nZ7qL.cjs +1 -0
- package/dist/chunks/messages-u_dR89Qy.mjs +319 -0
- package/dist/chunks/messages-wDo4f3f9.cjs +1 -0
- package/dist/chunks/messages-wxVdFEgz2.mjs +319 -0
- package/dist/chunks/messages-x3ljzuuQ2.cjs +1 -0
- package/dist/chunks/messages-x6wDbfws2.mjs +319 -0
- package/dist/chunks/messages-ygmjC_Dc.cjs +1 -0
- package/dist/chunks/messages-zPVJyoxM.cjs +1 -0
- package/dist/chunks/micromark-extension-math-Cm8w3ABm.cjs +1 -0
- package/dist/chunks/micromark-extension-math-cDSPzUWY.mjs +169 -0
- package/dist/chunks/mindmap-definition-QFDTVHPH-DLO594eM.cjs +96 -0
- package/dist/chunks/mindmap-definition-QFDTVHPH-QxqvL96A.mjs +1013 -0
- package/dist/chunks/notifier-CfO3Icvp.cjs +1 -0
- package/dist/chunks/notifier-DMdYq9FS.mjs +73 -0
- package/dist/chunks/ordinal-DgAmiD5I.mjs +65 -0
- package/dist/chunks/ordinal-mgpK7IL3.cjs +1 -0
- package/dist/chunks/packet-4T2RLAQJ-BQYK4Pey.cjs +1 -0
- package/dist/chunks/packet-4T2RLAQJ-BwgNXqij.mjs +3 -0
- package/dist/chunks/pie-ZZUOXDRM-BLh1-ocA.cjs +1 -0
- package/dist/chunks/pie-ZZUOXDRM-CrDtyZu4.mjs +3 -0
- package/dist/chunks/pieDiagram-DEJITSTG-CGduyUgA.mjs +179 -0
- package/dist/chunks/pieDiagram-DEJITSTG-Do5jGsL7.cjs +30 -0
- package/dist/chunks/prism-bash-OGjZLOVe.cjs +1 -0
- package/dist/chunks/prism-bash-oISNNULp.mjs +175 -0
- package/dist/chunks/prism-c-1g9CdJOp.cjs +1 -0
- package/dist/chunks/prism-c-MtM8JocP.mjs +54 -0
- package/dist/chunks/prism-cpp-CORR584T.cjs +1 -0
- package/dist/chunks/prism-cpp-DswQJFJz.mjs +63 -0
- package/dist/chunks/prism-csharp-BqZp_TTb.cjs +1 -0
- package/dist/chunks/prism-csharp-GIfQrsqe.mjs +236 -0
- package/dist/chunks/prism-css-BLyqeHZR.mjs +55 -0
- package/dist/chunks/prism-css-DmF38Kcs.cjs +1 -0
- package/dist/chunks/prism-dart-CFseeodJ.cjs +1 -0
- package/dist/chunks/prism-dart-DbCi1QVI.mjs +52 -0
- package/dist/chunks/prism-docker-BOsXo4aW.cjs +1 -0
- package/dist/chunks/prism-docker-CUCbqggk.mjs +75 -0
- package/dist/chunks/prism-go-DVHXGmKb.mjs +20 -0
- package/dist/chunks/prism-go-DsEyoP6D.cjs +1 -0
- package/dist/chunks/prism-graphql-DGEYZFbw.mjs +114 -0
- package/dist/chunks/prism-graphql-DqXh7GRP.cjs +1 -0
- package/dist/chunks/prism-java-CzQtfd6W.mjs +99 -0
- package/dist/chunks/prism-java-DQn4zrh0.cjs +1 -0
- package/dist/chunks/prism-javascript-CAkVOGaq.mjs +101 -0
- package/dist/chunks/prism-javascript-UQPp4ffL.cjs +1 -0
- package/dist/chunks/prism-json-B-63BF6R.cjs +1 -0
- package/dist/chunks/prism-json-BSGjg8pt.mjs +25 -0
- package/dist/chunks/prism-kotlin-D9r_epW6.mjs +64 -0
- package/dist/chunks/prism-kotlin-DmCIViWe.cjs +1 -0
- package/dist/chunks/prism-latex-Bcpg2uQr.cjs +1 -0
- package/dist/chunks/prism-latex-o70KNu9w.mjs +43 -0
- package/dist/chunks/prism-lua-7od8jpGg.mjs +17 -0
- package/dist/chunks/prism-lua-DyMxrgA_.cjs +1 -0
- package/dist/chunks/prism-markdown-BY8dZr_8.cjs +1 -0
- package/dist/chunks/prism-markdown-CI62y6qt.mjs +251 -0
- package/dist/chunks/prism-markup-DFqZi51m.mjs +116 -0
- package/dist/chunks/prism-markup-OdaHxDBn.cjs +1 -0
- package/dist/chunks/prism-markup-templating-Cnde-rJf.cjs +1 -0
- package/dist/chunks/prism-markup-templating-DTIDwO2f.mjs +39 -0
- package/dist/chunks/prism-php-BFUaOiLc.mjs +277 -0
- package/dist/chunks/prism-php-D8NgAYtH.cjs +1 -0
- package/dist/chunks/prism-python-CTRSlrPP.mjs +59 -0
- package/dist/chunks/prism-python-vAqxHcox.cjs +1 -0
- package/dist/chunks/prism-r-AA_ZuQPX.mjs +19 -0
- package/dist/chunks/prism-r-BsUW1w_m.cjs +1 -0
- package/dist/chunks/prism-ruby-BttDevO3.mjs +156 -0
- package/dist/chunks/prism-ruby-D7wGSPCx.cjs +1 -0
- package/dist/chunks/prism-rust-1wrW82hd.mjs +92 -0
- package/dist/chunks/prism-rust-C65Pn3Oc.cjs +1 -0
- package/dist/chunks/prism-scala-C26iL30s.mjs +43 -0
- package/dist/chunks/prism-scala-DuAsLUh6.cjs +1 -0
- package/dist/chunks/prism-sql-CSv-2hNx.mjs +29 -0
- package/dist/chunks/prism-sql-DHhl_Wd1.cjs +1 -0
- package/dist/chunks/prism-swift-2HH6IALG.cjs +1 -0
- package/dist/chunks/prism-swift-ik83oO-E.mjs +94 -0
- package/dist/chunks/prism-typescript-ChaS5gh3.mjs +38 -0
- package/dist/chunks/prism-typescript-Cuqi9QKv.cjs +1 -0
- package/dist/chunks/prism-yaml-BT2oArqa.cjs +1 -0
- package/dist/chunks/prism-yaml-YI3VZVAw.mjs +68 -0
- package/dist/chunks/quadrantDiagram-34T5L4WZ-BdwmsqYk.cjs +7 -0
- package/dist/chunks/quadrantDiagram-34T5L4WZ-BiqiWPbj.mjs +1960 -0
- package/dist/chunks/radar-PYXPWWZC-CYtB39az.mjs +3 -0
- package/dist/chunks/radar-PYXPWWZC-Drac9aGm.cjs +1 -0
- package/dist/chunks/requirementDiagram-MS252O5E-Cko4AhA2.mjs +2224 -0
- package/dist/chunks/requirementDiagram-MS252O5E-DBRLVWVl.cjs +84 -0
- package/dist/chunks/sankeyDiagram-XADWPNL6-BFWIr9AZ.mjs +909 -0
- package/dist/chunks/sankeyDiagram-XADWPNL6-Dq3Fi6gG.cjs +10 -0
- package/dist/chunks/sequenceDiagram-FGHM5R23-BKKZAG9O.cjs +157 -0
- package/dist/chunks/sequenceDiagram-FGHM5R23-DHFzzYeT.mjs +4181 -0
- package/dist/chunks/stateDiagram-FHFEXIEX-B1vJTyiJ.mjs +218 -0
- package/dist/chunks/stateDiagram-FHFEXIEX-DsHbgVAE.cjs +1 -0
- package/dist/chunks/stateDiagram-v2-QKLJ7IA2-DC206QSk.mjs +28 -0
- package/dist/chunks/stateDiagram-v2-QKLJ7IA2-DzkxV3pL.cjs +1 -0
- package/dist/chunks/timeline-definition-GMOUNBTQ-BlXvHIKp.mjs +1084 -0
- package/dist/chunks/timeline-definition-GMOUNBTQ-durCMWAX.cjs +120 -0
- package/dist/chunks/tools-CPzDYrWa.cjs +115 -0
- package/dist/chunks/tools-JNr7LO1_.mjs +13853 -0
- package/dist/chunks/treeView-SZITEDCU-BpLDxB8w.cjs +1 -0
- package/dist/chunks/treeView-SZITEDCU-DIbHFtMw.mjs +3 -0
- package/dist/chunks/treemap-W4RFUUIX-4t60SvLo.mjs +3 -0
- package/dist/chunks/treemap-W4RFUUIX-jpjSZokO.cjs +1 -0
- package/dist/chunks/vennDiagram-DHZGUBPP-BVxAvXiG.mjs +1876 -0
- package/dist/chunks/vennDiagram-DHZGUBPP-Dtpe6giP.cjs +34 -0
- package/dist/chunks/wardley-RL74JXVD-CBBTKC3H.cjs +1 -0
- package/dist/chunks/wardley-RL74JXVD-g5DNBeQ1.mjs +3 -0
- package/dist/chunks/wardleyDiagram-NUSXRM2D-BGORQqtQ.mjs +594 -0
- package/dist/chunks/wardleyDiagram-NUSXRM2D-ClsU-9PV.cjs +20 -0
- package/dist/chunks/xychartDiagram-5P7HB3ND-DplTzQI6.mjs +2017 -0
- package/dist/chunks/xychartDiagram-5P7HB3ND-EO18s7Fo.cjs +7 -0
- package/dist/full.cjs +1 -1
- package/dist/full.mjs +9 -9
- package/dist/locales.mjs +175 -68
- package/dist/markdown.cjs +2 -2
- package/dist/markdown.mjs +392 -384
- package/dist/messages-28LGzsNB.mjs +319 -0
- package/dist/messages-35X8GsGw2.mjs +319 -0
- package/dist/messages-5ygX-4B92.mjs +319 -0
- package/dist/messages-83AcZNii.mjs +319 -0
- package/dist/messages-B-OvX3Vz2.mjs +319 -0
- package/dist/messages-B56oJj_X2.mjs +319 -0
- package/dist/messages-B7peBJXJ2.mjs +319 -0
- package/dist/messages-BGwTNk0S2.mjs +319 -0
- package/dist/messages-BH-SS-wY.mjs +319 -0
- package/dist/messages-BPX8V6tu.mjs +319 -0
- package/dist/messages-BUp8P-0d.mjs +319 -0
- package/dist/messages-BX3WM02N2.mjs +319 -0
- package/dist/messages-BZrMZvRb2.mjs +319 -0
- package/dist/messages-B_0akf3T.mjs +319 -0
- package/dist/messages-BaE65Wtr.mjs +319 -0
- package/dist/messages-BdSGtvzM.mjs +319 -0
- package/dist/messages-BerXSWcD.mjs +319 -0
- package/dist/messages-BqKaz7yB2.mjs +319 -0
- package/dist/messages-BrqBJ6W_2.mjs +319 -0
- package/dist/messages-BvgGIpxE2.mjs +319 -0
- package/dist/messages-BxSe3rKx.mjs +319 -0
- package/dist/messages-ByD9AIJL2.mjs +319 -0
- package/dist/messages-CDJS_Tu2.mjs +319 -0
- package/dist/messages-CF9R29jb.mjs +319 -0
- package/dist/messages-CIbK29nM.mjs +319 -0
- package/dist/messages-CMD0tgb2.mjs +319 -0
- package/dist/messages-CMW0tO_d2.mjs +319 -0
- package/dist/messages-CMrYQJ5x2.mjs +319 -0
- package/dist/messages-CQZJnkss2.mjs +319 -0
- package/dist/messages-CRnolvNg.mjs +319 -0
- package/dist/messages-CS74u2hS2.mjs +319 -0
- package/dist/messages-CTxao0S32.mjs +319 -0
- package/dist/messages-CZl83L7T.mjs +319 -0
- package/dist/messages-C_kloJSr.mjs +319 -0
- package/dist/messages-Cfe_CPBW.mjs +319 -0
- package/dist/messages-Ch0oiQp5.mjs +319 -0
- package/dist/messages-Cigiz7tI.mjs +319 -0
- package/dist/messages-Cjac781Z.mjs +319 -0
- package/dist/messages-CqVFa1ZA.mjs +319 -0
- package/dist/messages-CwDgZL5-.mjs +319 -0
- package/dist/messages-Czd64cAx.mjs +319 -0
- package/dist/messages-CzxMz1wI.mjs +319 -0
- package/dist/messages-D2SkVxgV.mjs +319 -0
- package/dist/messages-D4ZsN52E2.mjs +319 -0
- package/dist/messages-DG0aBs1m2.mjs +319 -0
- package/dist/messages-DIkQAMxZ2.mjs +319 -0
- package/dist/messages-DJBc5_b_2.mjs +319 -0
- package/dist/messages-DN8oOcrS.mjs +319 -0
- package/dist/messages-DV5yhL0q.mjs +319 -0
- package/dist/messages-DVI1iDTn2.mjs +319 -0
- package/dist/messages-DVzrCNrY.mjs +319 -0
- package/dist/messages-DXwJOr-H2.mjs +319 -0
- package/dist/messages-D_edVQrv.mjs +319 -0
- package/dist/messages-DbODRieP.mjs +319 -0
- package/dist/messages-KMQrhAva.mjs +319 -0
- package/dist/messages-L4NsHX-g.mjs +319 -0
- package/dist/messages-PPuF4CRy.mjs +319 -0
- package/dist/messages-UTJEPSiL.mjs +319 -0
- package/dist/messages-Wa5EXypv2.mjs +319 -0
- package/dist/messages-Wfxn9jZh.mjs +319 -0
- package/dist/messages-XieI4326.mjs +319 -0
- package/dist/messages-ZASZzduy.mjs +319 -0
- package/dist/messages-Z_3X1FJJ2.mjs +319 -0
- package/dist/messages-huyV3ICu.mjs +319 -0
- package/dist/messages-rd6zBwaX2.mjs +319 -0
- package/dist/messages-sBpTj74Q.mjs +319 -0
- package/dist/messages-twD0eDdc.mjs +319 -0
- package/dist/react.cjs +1 -1
- package/dist/react.mjs +25 -26
- package/dist/tools.cjs +1 -1
- package/dist/tools.mjs +3 -3
- package/dist/vendor.LICENSE.txt +141 -899
- package/package.json +11 -5
- package/src/components/block-tunes/block-tune-copy-link.ts +2 -2
- package/src/components/constants/data-attributes.ts +2 -0
- package/src/components/dom.ts +4 -2
- package/src/components/i18n/locales/am/messages.json +109 -1
- package/src/components/i18n/locales/ar/messages.json +109 -1
- package/src/components/i18n/locales/az/messages.json +109 -1
- package/src/components/i18n/locales/bg/messages.json +109 -1
- package/src/components/i18n/locales/bn/messages.json +109 -1
- package/src/components/i18n/locales/bs/messages.json +109 -1
- package/src/components/i18n/locales/cs/messages.json +109 -1
- package/src/components/i18n/locales/da/messages.json +109 -1
- package/src/components/i18n/locales/de/messages.json +110 -2
- package/src/components/i18n/locales/dv/messages.json +109 -1
- package/src/components/i18n/locales/el/messages.json +109 -1
- package/src/components/i18n/locales/en/messages.json +108 -1
- package/src/components/i18n/locales/es/messages.json +109 -1
- package/src/components/i18n/locales/et/messages.json +109 -1
- package/src/components/i18n/locales/fa/messages.json +109 -1
- package/src/components/i18n/locales/fi/messages.json +109 -1
- package/src/components/i18n/locales/fil/messages.json +109 -1
- package/src/components/i18n/locales/fr/messages.json +110 -2
- package/src/components/i18n/locales/gu/messages.json +109 -1
- package/src/components/i18n/locales/he/messages.json +109 -1
- package/src/components/i18n/locales/hi/messages.json +109 -1
- package/src/components/i18n/locales/hr/messages.json +109 -1
- package/src/components/i18n/locales/hu/messages.json +109 -1
- package/src/components/i18n/locales/hy/messages.json +109 -1
- package/src/components/i18n/locales/id/messages.json +109 -1
- package/src/components/i18n/locales/it/messages.json +109 -1
- package/src/components/i18n/locales/ja/messages.json +109 -1
- package/src/components/i18n/locales/ka/messages.json +109 -1
- package/src/components/i18n/locales/km/messages.json +109 -1
- package/src/components/i18n/locales/kn/messages.json +109 -1
- package/src/components/i18n/locales/ko/messages.json +109 -1
- package/src/components/i18n/locales/ku/messages.json +109 -1
- package/src/components/i18n/locales/lo/messages.json +109 -1
- package/src/components/i18n/locales/lt/messages.json +109 -1
- package/src/components/i18n/locales/lv/messages.json +109 -1
- package/src/components/i18n/locales/mk/messages.json +109 -1
- package/src/components/i18n/locales/ml/messages.json +109 -1
- package/src/components/i18n/locales/mn/messages.json +109 -1
- package/src/components/i18n/locales/mr/messages.json +109 -1
- package/src/components/i18n/locales/ms/messages.json +109 -1
- package/src/components/i18n/locales/my/messages.json +109 -1
- package/src/components/i18n/locales/ne/messages.json +109 -1
- package/src/components/i18n/locales/nl/messages.json +110 -2
- package/src/components/i18n/locales/no/messages.json +109 -1
- package/src/components/i18n/locales/pa/messages.json +109 -1
- package/src/components/i18n/locales/pl/messages.json +109 -1
- package/src/components/i18n/locales/ps/messages.json +109 -1
- package/src/components/i18n/locales/pt/messages.json +109 -1
- package/src/components/i18n/locales/ro/messages.json +109 -1
- package/src/components/i18n/locales/ru/messages.json +109 -1
- package/src/components/i18n/locales/sd/messages.json +109 -1
- package/src/components/i18n/locales/si/messages.json +109 -1
- package/src/components/i18n/locales/sk/messages.json +109 -1
- package/src/components/i18n/locales/sl/messages.json +109 -1
- package/src/components/i18n/locales/sq/messages.json +109 -1
- package/src/components/i18n/locales/sr/messages.json +109 -1
- package/src/components/i18n/locales/sv/messages.json +109 -1
- package/src/components/i18n/locales/sw/messages.json +109 -1
- package/src/components/i18n/locales/ta/messages.json +109 -1
- package/src/components/i18n/locales/te/messages.json +109 -1
- package/src/components/i18n/locales/th/messages.json +109 -1
- package/src/components/i18n/locales/tr/messages.json +109 -1
- package/src/components/i18n/locales/ug/messages.json +109 -1
- package/src/components/i18n/locales/uk/messages.json +109 -1
- package/src/components/i18n/locales/ur/messages.json +109 -1
- package/src/components/i18n/locales/vi/messages.json +109 -1
- package/src/components/i18n/locales/yi/messages.json +109 -1
- package/src/components/i18n/locales/zh/messages.json +109 -1
- package/src/components/icons/index.ts +59 -0
- package/src/components/inline-tools/inline-tool-code.ts +1 -1
- package/src/components/modules/api/toolbar.ts +6 -4
- package/src/components/modules/blockEvents/index.ts +9 -0
- package/src/components/modules/blockManager/operations.ts +14 -1
- package/src/components/modules/drag/DragController.ts +24 -3
- package/src/components/modules/paste/handlers/files-handler.ts +41 -4
- package/src/components/modules/paste/index.ts +159 -3
- package/src/components/modules/paste/tool-registry.ts +22 -12
- package/src/components/modules/toolbar/blockSettings.ts +14 -2
- package/src/components/modules/toolbar/index.ts +49 -16
- package/src/components/modules/toolbar/inline/selection-validator.ts +17 -0
- package/src/components/modules/toolbar/plus-button.ts +4 -2
- package/src/components/modules/toolbar/positioning.ts +27 -0
- package/src/components/modules/toolbar/settings-toggler.ts +16 -5
- package/src/components/modules/toolbar/tooltip.ts +59 -15
- package/src/components/modules/ui.ts +23 -8
- package/src/components/ui/toolbox.ts +92 -7
- package/src/components/utils/data-model-transform.ts +71 -1
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.const.ts +5 -4
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.ts +1 -0
- package/src/components/utils/popover/components/popover-item/popover-item-separator/popover-item-separator.const.ts +1 -1
- package/src/components/utils/popover/components/search-input/search-input.const.ts +3 -3
- package/src/components/utils/popover/popover-abstract.ts +137 -2
- package/src/components/utils/popover/popover-desktop.ts +260 -14
- package/src/components/utils/popover/popover-inline.ts +3 -2
- package/src/components/utils/popover/popover-nested-position.ts +132 -0
- package/src/components/utils/popover/popover-position.ts +46 -5
- package/src/components/utils/popover/popover.const.ts +6 -3
- package/src/components/utils/tooltip.ts +52 -8
- package/src/components/utils/top-layer.ts +137 -0
- package/src/playground/block-states-gallery.ts +123 -0
- package/src/playground/icon-gallery.ts +346 -0
- package/src/styles/checklist.css +70 -0
- package/src/styles/colors.css +723 -0
- package/src/styles/database.css +1176 -0
- package/src/styles/emoji-picker.css +58 -0
- package/src/styles/fonts.css +33 -0
- package/src/styles/image.css +1021 -0
- package/src/styles/isolation.css +204 -0
- package/src/styles/keyframes.css +62 -0
- package/src/styles/main.css +144 -2540
- package/src/styles/popover-animation.css +34 -0
- package/src/styles/preflight.css +283 -0
- package/src/styles/slash-search.css +52 -0
- package/src/styles/tables.css +154 -0
- package/src/styles/tokens.css +127 -0
- package/src/tools/callout/emoji-picker/index.ts +4 -2
- package/src/tools/callout/index.ts +0 -1
- package/src/tools/code/code-keyboard.ts +70 -8
- package/src/tools/code/constants.ts +3 -9
- package/src/tools/code/dom-builder.ts +5 -1
- package/src/tools/code/index.ts +202 -25
- package/src/tools/code/language-detector.ts +47 -52
- package/src/tools/code/prism-applier.ts +183 -0
- package/src/tools/code/prism-loader.ts +197 -0
- package/src/tools/database/database-board-view.ts +4 -2
- package/src/tools/database/database-card-drawer.ts +3 -2
- package/src/tools/database/database-list-view.ts +1 -1
- package/src/tools/database/database-model.ts +15 -3
- package/src/tools/database/database-property-type-popover.ts +14 -10
- package/src/tools/database/database-tab-bar.ts +9 -3
- package/src/tools/database/database-view-popover.ts +15 -7
- package/src/tools/database/index.ts +0 -2
- package/src/tools/header/index.ts +6 -6
- package/src/tools/image/alt-popover.css +42 -0
- package/src/tools/image/alt-popover.ts +104 -0
- package/src/tools/image/constants.ts +25 -0
- package/src/tools/image/crop-editor.css +513 -0
- package/src/tools/image/crop-editor.ts +331 -0
- package/src/tools/image/crop-math.ts +117 -0
- package/src/tools/image/crop-modal.css +105 -0
- package/src/tools/image/crop-modal.ts +92 -0
- package/src/tools/image/empty-state.ts +407 -0
- package/src/tools/image/error-state.ts +69 -0
- package/src/tools/image/errors.ts +18 -0
- package/src/tools/image/i18n.ts +8 -0
- package/src/tools/image/index.ts +754 -0
- package/src/tools/image/resizer.ts +119 -0
- package/src/tools/image/spring.ts +16 -0
- package/src/tools/image/ui.ts +926 -0
- package/src/tools/image/uploader.ts +61 -0
- package/src/tools/image/uploading-state.ts +117 -0
- package/src/tools/index.ts +2 -0
- package/src/tools/list/style-config.ts +0 -3
- package/src/tools/paragraph/index.ts +0 -1
- package/src/tools/quote/index.ts +0 -1
- package/src/tools/table/index.ts +0 -1
- package/src/tools/toggle/constants.ts +3 -1
- package/src/tools/toggle/index.ts +0 -1
- package/src/types-internal/prismjs-components.d.ts +9 -0
- package/types/api/toolbar.d.ts +14 -1
- package/types/configs/blok-config.d.ts +24 -0
- package/types/tools/image.d.ts +72 -0
- package/types/utils/popover/popover.d.ts +27 -0
- package/dist/chunks/_basePickBy-6gOwWeg0.mjs +0 -166
- package/dist/chunks/_basePickBy-mUHvTE6c.cjs +0 -1
- package/dist/chunks/_baseUniq-BP5sM8qF.cjs +0 -1
- package/dist/chunks/_baseUniq-BcOWmEX6.mjs +0 -682
- package/dist/chunks/arc-kVpio4JL.mjs +0 -80
- package/dist/chunks/arc-lSzOinJz.cjs +0 -1
- package/dist/chunks/architecture-YZFGNWBL-BFcrDSEW.mjs +0 -3
- package/dist/chunks/architecture-YZFGNWBL-D91d5pcl.cjs +0 -1
- package/dist/chunks/architectureDiagram-Q4EWVU46-CN6p4Aji.mjs +0 -4066
- package/dist/chunks/architectureDiagram-Q4EWVU46-CyW5N5Ic.cjs +0 -36
- package/dist/chunks/blockDiagram-DXYQGD6D-BvZWa5Rv.mjs +0 -3074
- package/dist/chunks/blockDiagram-DXYQGD6D-DmhBCLgd.cjs +0 -132
- package/dist/chunks/blok-CNEP3LpI.cjs +0 -16
- package/dist/chunks/blok-DNvzyOYn.mjs +0 -13679
- package/dist/chunks/c-CQrSye6K.mjs +0 -5
- package/dist/chunks/c-DNJHkQXQ.cjs +0 -1
- package/dist/chunks/c4Diagram-AHTNJAMY-Cmc2PsEs.mjs +0 -2956
- package/dist/chunks/c4Diagram-AHTNJAMY-DU2IYTXY.cjs +0 -10
- package/dist/chunks/ccount-B7is2MU0.mjs +0 -10
- package/dist/chunks/ccount-DtzbJUOh.cjs +0 -1
- package/dist/chunks/channel-BTWFNzkv.mjs +0 -5
- package/dist/chunks/channel-BqhnS5zl.cjs +0 -1
- package/dist/chunks/chunk-2KRD3SAO-COfwt0om.cjs +0 -1
- package/dist/chunks/chunk-2KRD3SAO-DWLzBIZw.mjs +0 -20
- package/dist/chunks/chunk-336JU56O-CqWDeAp1.cjs +0 -1
- package/dist/chunks/chunk-336JU56O-DbaX7hyp.mjs +0 -49
- package/dist/chunks/chunk-426QAEUC-MjtXwzdI.cjs +0 -1
- package/dist/chunks/chunk-426QAEUC-pmH9mm_X.mjs +0 -13
- package/dist/chunks/chunk-4BX2VUAB-B1LZI9QZ.mjs +0 -19
- package/dist/chunks/chunk-4BX2VUAB-Zs4zJRk9.cjs +0 -1
- package/dist/chunks/chunk-4TB4RGXK-BC8qRYSD.mjs +0 -3250
- package/dist/chunks/chunk-4TB4RGXK-Bq0teBqe.cjs +0 -206
- package/dist/chunks/chunk-55IACEB6-CaLO8kWA.mjs +0 -8
- package/dist/chunks/chunk-55IACEB6-DyTTYuc2.cjs +0 -1
- package/dist/chunks/chunk-5FUZZQ4R-6rlcIGG-.cjs +0 -62
- package/dist/chunks/chunk-5FUZZQ4R-DAWdfx4J.mjs +0 -3786
- package/dist/chunks/chunk-5PVQY5BW-7Voh8aPS.mjs +0 -1122
- package/dist/chunks/chunk-5PVQY5BW-DmATt7Fz.cjs +0 -2
- package/dist/chunks/chunk-67CJDMHE-DSEGOn_f.mjs +0 -20
- package/dist/chunks/chunk-67CJDMHE-zWcmgvwZ.cjs +0 -1
- package/dist/chunks/chunk-7N4EOEYR-CAuNhdG9.cjs +0 -1
- package/dist/chunks/chunk-7N4EOEYR-CnSg1Hfu.mjs +0 -29
- package/dist/chunks/chunk-AA7GKIK3-BmatWFnp.mjs +0 -24
- package/dist/chunks/chunk-AA7GKIK3-YMbh5HEs.cjs +0 -1
- package/dist/chunks/chunk-BSJP7CBP-BtFfqv7R.mjs +0 -83
- package/dist/chunks/chunk-BSJP7CBP-CjkEoJDh.cjs +0 -1
- package/dist/chunks/chunk-CIAEETIT-BP9BiKe5.cjs +0 -1
- package/dist/chunks/chunk-CIAEETIT-nVgPUEW1.mjs +0 -20
- package/dist/chunks/chunk-EDXVE4YY-Bw1v2mUF.cjs +0 -1
- package/dist/chunks/chunk-EDXVE4YY-e7599cf4.mjs +0 -26
- package/dist/chunks/chunk-ENJZ2VHE-9fAN50L-.cjs +0 -10
- package/dist/chunks/chunk-ENJZ2VHE-DaMNdqfV.mjs +0 -566
- package/dist/chunks/chunk-FMBD7UC4-CH_SSwhS.cjs +0 -15
- package/dist/chunks/chunk-FMBD7UC4-xT5c0WSd.mjs +0 -5
- package/dist/chunks/chunk-FOC6F5B3-AxSG6qaj.mjs +0 -20
- package/dist/chunks/chunk-FOC6F5B3-ScFIigAO.cjs +0 -1
- package/dist/chunks/chunk-ICPOFSXX-DQ4NxQTM.cjs +0 -122
- package/dist/chunks/chunk-ICPOFSXX-DbL0YBQf.mjs +0 -3290
- package/dist/chunks/chunk-K5T4RW27-BdGvq1o8.cjs +0 -94
- package/dist/chunks/chunk-K5T4RW27-CYdwJMQV.mjs +0 -16372
- package/dist/chunks/chunk-KGLVRYIC-BwOmLwqF.mjs +0 -20
- package/dist/chunks/chunk-KGLVRYIC-uzPiXgAg.cjs +0 -1
- package/dist/chunks/chunk-LIHQZDEY-ChgbfPTz.cjs +0 -1
- package/dist/chunks/chunk-LIHQZDEY-Csx8-523.mjs +0 -55
- package/dist/chunks/chunk-ORNJ4GCN-CCDHRflI.mjs +0 -25
- package/dist/chunks/chunk-ORNJ4GCN-HF28XIop.cjs +0 -1
- package/dist/chunks/chunk-OYMX7WX6-BAoDgMPF.mjs +0 -2038
- package/dist/chunks/chunk-OYMX7WX6-CGUpemDb.cjs +0 -231
- package/dist/chunks/chunk-QZHKN3VN-D1myzhE_.mjs +0 -12
- package/dist/chunks/chunk-QZHKN3VN-d_ESXyai.cjs +0 -1
- package/dist/chunks/chunk-U2HBQHQK-BXyrI_xP.mjs +0 -1875
- package/dist/chunks/chunk-U2HBQHQK-D62A_XCV.cjs +0 -70
- package/dist/chunks/chunk-X2U36JSP-BEHpYlmW.cjs +0 -1
- package/dist/chunks/chunk-X2U36JSP-CXhWYelJ.mjs +0 -68
- package/dist/chunks/chunk-XPW4576I-BidQL50C.cjs +0 -32
- package/dist/chunks/chunk-XPW4576I-DOztVf6t.mjs +0 -1146
- package/dist/chunks/chunk-YZCP3GAM-DrkjtME-.mjs +0 -60
- package/dist/chunks/chunk-YZCP3GAM-DuLQPyT4.cjs +0 -1
- package/dist/chunks/chunk-ZZ45TVLE-CSFFLvxb.mjs +0 -33
- package/dist/chunks/chunk-ZZ45TVLE-CZOUDLGO.cjs +0 -1
- package/dist/chunks/classDiagram-6PBFFD2Q-Ci3S9iu3.mjs +0 -30
- package/dist/chunks/classDiagram-6PBFFD2Q-GDkPRBlp.cjs +0 -1
- package/dist/chunks/classDiagram-v2-HSJHXN6E-B4vt694Q.cjs +0 -1
- package/dist/chunks/classDiagram-v2-HSJHXN6E-BkaFKbgJ.mjs +0 -30
- package/dist/chunks/clone-WSLD7bVs.mjs +0 -8
- package/dist/chunks/clone-_XTzxdN3.cjs +0 -1
- package/dist/chunks/constants-DJjFgioo.cjs +0 -451
- package/dist/chunks/constants-DMsOCPcF.mjs +0 -3268
- package/dist/chunks/core-C8BHLAAO.cjs +0 -12
- package/dist/chunks/core-D2KrVz4a.mjs +0 -4501
- package/dist/chunks/cose-bilkent-S5V4N54A-BXBidSxC.mjs +0 -2246
- package/dist/chunks/cose-bilkent-S5V4N54A-RkR02HV4.cjs +0 -1
- package/dist/chunks/cpp-DVBevX-J.cjs +0 -1
- package/dist/chunks/cpp-DnMQuZPn.mjs +0 -16
- package/dist/chunks/csharp-ByiKf6DR.mjs +0 -3
- package/dist/chunks/csharp-CHUT4JOq.cjs +0 -1
- package/dist/chunks/css-BqsWMbBt.mjs +0 -3
- package/dist/chunks/css-QEheyxtB.cjs +0 -1
- package/dist/chunks/dagre-C7z2UZ4M.mjs +0 -1483
- package/dist/chunks/dagre-KV5264BT-B5pZgbkN.cjs +0 -4
- package/dist/chunks/dagre-KV5264BT-Ct6qUqKI.mjs +0 -298
- package/dist/chunks/dagre-VHP8Ngkv.cjs +0 -1
- package/dist/chunks/dart-aYsezAEv.mjs +0 -3
- package/dist/chunks/dart-jPH5d8ma.cjs +0 -1
- package/dist/chunks/diagram-5BDNPKRD-B9hNG7ht.mjs +0 -112
- package/dist/chunks/diagram-5BDNPKRD-C1llOHQP.cjs +0 -10
- package/dist/chunks/diagram-G4DWMVQ6-9_YOaVXe.mjs +0 -546
- package/dist/chunks/diagram-G4DWMVQ6-CLdEGHkn.cjs +0 -24
- package/dist/chunks/diagram-MMDJMWI5-CnbiCUM3.cjs +0 -43
- package/dist/chunks/diagram-MMDJMWI5-DmStUoNk.mjs +0 -234
- package/dist/chunks/diagram-TYMM5635-BtMB4AKf.cjs +0 -24
- package/dist/chunks/diagram-TYMM5635-DmrkkW85.mjs +0 -144
- package/dist/chunks/dockerfile-1GBIWF66.mjs +0 -3
- package/dist/chunks/dockerfile-B2jMQOes.cjs +0 -1
- package/dist/chunks/engine-javascript-CYa8VRAu.mjs +0 -2373
- package/dist/chunks/engine-javascript-HHRWd9yA.cjs +0 -141
- package/dist/chunks/erDiagram-SMLLAGMA-5vkZ5DwJ.mjs +0 -1712
- package/dist/chunks/erDiagram-SMLLAGMA-luvZB3lF.cjs +0 -85
- package/dist/chunks/flowDiagram-DWJPFMVM-BpYbAeYP.cjs +0 -162
- package/dist/chunks/flowDiagram-DWJPFMVM-CGTiQBd7.mjs +0 -4175
- package/dist/chunks/ganttDiagram-T4ZO3ILL-BNtXyM0I.mjs +0 -3083
- package/dist/chunks/ganttDiagram-T4ZO3ILL-BaWZufgI.cjs +0 -292
- package/dist/chunks/gitGraph-7Q5UKJZL-Ds_Z9h4o.cjs +0 -1
- package/dist/chunks/gitGraph-7Q5UKJZL-DxMmuJIv.mjs +0 -3
- package/dist/chunks/gitGraphDiagram-UUTBAWPF-CmQR-xZp.mjs +0 -792
- package/dist/chunks/gitGraphDiagram-UUTBAWPF-DjMU1Vyg.cjs +0 -106
- package/dist/chunks/go-4mRqLTld.mjs +0 -3
- package/dist/chunks/go-BX-cNLGO.cjs +0 -1
- package/dist/chunks/graphlib-BfwqhpXp.mjs +0 -225
- package/dist/chunks/graphlib-CYv_-0LK.cjs +0 -1
- package/dist/chunks/graphql-4Htarzhp.mjs +0 -11
- package/dist/chunks/graphql-BnxAS09v.cjs +0 -1
- package/dist/chunks/html-CAN0GHkJ.cjs +0 -1
- package/dist/chunks/html-DW39yhuS.mjs +0 -10
- package/dist/chunks/i18next-loader-CyDs2NKf.mjs +0 -35
- package/dist/chunks/i18next-loader-cGwOOjK3.cjs +0 -1
- package/dist/chunks/info-OMHHGYJF-ChWZqC0a.mjs +0 -3
- package/dist/chunks/info-OMHHGYJF-u0RRQ9Uo.cjs +0 -1
- package/dist/chunks/infoDiagram-42DDH7IO-BbV_tozh.mjs +0 -29
- package/dist/chunks/infoDiagram-42DDH7IO-DOYkYMWg.cjs +0 -2
- package/dist/chunks/isEmpty-BHdznGlG.cjs +0 -1
- package/dist/chunks/isEmpty-jlCmuYeg.mjs +0 -35
- package/dist/chunks/ishikawaDiagram-UXIWVN3A-CbqoivFu.cjs +0 -70
- package/dist/chunks/ishikawaDiagram-UXIWVN3A-DJBG3b-A.mjs +0 -719
- package/dist/chunks/java-DD_iwrM-.mjs +0 -5
- package/dist/chunks/java-O-rzZ2Bn.cjs +0 -1
- package/dist/chunks/javascript-CJBlE5PB.mjs +0 -3
- package/dist/chunks/javascript-z9G2vOAZ.cjs +0 -1
- package/dist/chunks/journeyDiagram-VCZTEJTY-B5Peb7wS.cjs +0 -139
- package/dist/chunks/journeyDiagram-VCZTEJTY-BdMsFn3r.mjs +0 -885
- package/dist/chunks/json-C_epQRuA.cjs +0 -1
- package/dist/chunks/json-yRGZVu2_.mjs +0 -3
- package/dist/chunks/kanban-definition-6JOO6SKY-CwmSo6Ve.cjs +0 -89
- package/dist/chunks/kanban-definition-6JOO6SKY-ncNaxcxH.mjs +0 -980
- package/dist/chunks/kotlin-BmkhKZGf.mjs +0 -3
- package/dist/chunks/kotlin-Dj7KFgV1.cjs +0 -1
- package/dist/chunks/latex-BeVX0E4Z.mjs +0 -5
- package/dist/chunks/latex-u7qVP95p.cjs +0 -1
- package/dist/chunks/lightweight-i18n-Bb_VS9v5.mjs +0 -237
- package/dist/chunks/lightweight-i18n-CGBjC2TJ.cjs +0 -1
- package/dist/chunks/line-B7XG48Uf.cjs +0 -1
- package/dist/chunks/line-CWJNfvdn.mjs +0 -34
- package/dist/chunks/linear-BU4OjSPS.mjs +0 -289
- package/dist/chunks/linear-D5j5Vgij.cjs +0 -1
- package/dist/chunks/lua-6ceNckPi.cjs +0 -1
- package/dist/chunks/lua-CPnWrc7C.mjs +0 -5
- package/dist/chunks/markdown-DSiOSAsn.mjs +0 -3
- package/dist/chunks/markdown-Vce1p-mO.cjs +0 -1
- package/dist/chunks/mdast-util-math-B9OHoBuN.cjs +0 -5
- package/dist/chunks/mdast-util-math-D42zbZda.mjs +0 -151
- package/dist/chunks/mermaid-C2y_3PIg.mjs +0 -3
- package/dist/chunks/mermaid-Cu5vPKfS.cjs +0 -1
- package/dist/chunks/mermaid-parser.core-BrZQFEht.cjs +0 -3
- package/dist/chunks/mermaid-parser.core-DBhkcRo7.mjs +0 -57
- package/dist/chunks/mermaid.core-GiTRPJLF.cjs +0 -10
- package/dist/chunks/mermaid.core-uSzF9nF1.mjs +0 -977
- package/dist/chunks/messages--CbdZY2w.cjs +0 -1
- package/dist/chunks/messages--c74ihtM.mjs +0 -212
- package/dist/chunks/messages-041mNyU42.mjs +0 -212
- package/dist/chunks/messages-1hpCmcb5.cjs +0 -1
- package/dist/chunks/messages-44SP7ajI.mjs +0 -212
- package/dist/chunks/messages-4_3WFJMy2.cjs +0 -1
- package/dist/chunks/messages-7NvouWKA2.mjs +0 -212
- package/dist/chunks/messages-ADxG1iWK2.cjs +0 -1
- package/dist/chunks/messages-AnuHiDPc2.mjs +0 -212
- package/dist/chunks/messages-B1V7UT9I.mjs +0 -212
- package/dist/chunks/messages-B2Q9NH4D.mjs +0 -212
- package/dist/chunks/messages-B3MONaxw2.cjs +0 -1
- package/dist/chunks/messages-B3tNgyxG2.cjs +0 -1
- package/dist/chunks/messages-B6j77WNV2.mjs +0 -212
- package/dist/chunks/messages-B91FdwB0.cjs +0 -1
- package/dist/chunks/messages-B9igXgiw.cjs +0 -1
- package/dist/chunks/messages-BB1xM_oB.cjs +0 -1
- package/dist/chunks/messages-BEV0lzGv2.mjs +0 -212
- package/dist/chunks/messages-BG749_88.mjs +0 -212
- package/dist/chunks/messages-BGZLiYrQ.cjs +0 -1
- package/dist/chunks/messages-BGpGj8nJ2.mjs +0 -212
- package/dist/chunks/messages-BK6gK3wu.cjs +0 -1
- package/dist/chunks/messages-BKmAFG9Z.cjs +0 -1
- package/dist/chunks/messages-BMVJq-1T.cjs +0 -1
- package/dist/chunks/messages-BMsqJNz0.cjs +0 -1
- package/dist/chunks/messages-BNYDShPm2.mjs +0 -212
- package/dist/chunks/messages-BSVhckNg.cjs +0 -1
- package/dist/chunks/messages-BUaHDggs.cjs +0 -1
- package/dist/chunks/messages-BUaJv5qS.cjs +0 -1
- package/dist/chunks/messages-BW--wNis.mjs +0 -212
- package/dist/chunks/messages-BXcSH14N.cjs +0 -1
- package/dist/chunks/messages-BYOYrUOu.cjs +0 -1
- package/dist/chunks/messages-BYSE1Iq2.cjs +0 -1
- package/dist/chunks/messages-B_Mqw9Dl2.mjs +0 -212
- package/dist/chunks/messages-Bb225KE6.cjs +0 -1
- package/dist/chunks/messages-BbYwT3FH2.mjs +0 -212
- package/dist/chunks/messages-Bda8jwos2.mjs +0 -212
- package/dist/chunks/messages-BdpFAZGZ.mjs +0 -212
- package/dist/chunks/messages-BiDR95AW.cjs +0 -1
- package/dist/chunks/messages-BkAoxm6t.cjs +0 -1
- package/dist/chunks/messages-BmNLNUz_.mjs +0 -212
- package/dist/chunks/messages-BnGtg6t4.mjs +0 -212
- package/dist/chunks/messages-BnXkEkD_.mjs +0 -212
- package/dist/chunks/messages-BpUasRQ3.cjs +0 -1
- package/dist/chunks/messages-BwtU06Ax.mjs +0 -212
- package/dist/chunks/messages-BxV8K7y42.cjs +0 -1
- package/dist/chunks/messages-Bxhns4Ui.cjs +0 -1
- package/dist/chunks/messages-ByRcwLIO.mjs +0 -212
- package/dist/chunks/messages-C0sxGmLV2.cjs +0 -1
- package/dist/chunks/messages-C5nqE8O42.cjs +0 -1
- package/dist/chunks/messages-C7il6l-S.cjs +0 -1
- package/dist/chunks/messages-CFyGEGXM2.cjs +0 -1
- package/dist/chunks/messages-CHBH3EQG.mjs +0 -212
- package/dist/chunks/messages-CIYU5iEj.mjs +0 -212
- package/dist/chunks/messages-CJGOmFxi.mjs +0 -212
- package/dist/chunks/messages-CN2yjHzW.cjs +0 -1
- package/dist/chunks/messages-CP7Ncgaf.mjs +0 -212
- package/dist/chunks/messages-CP8YKa4F.mjs +0 -212
- package/dist/chunks/messages-CTy_3-mw2.cjs +0 -1
- package/dist/chunks/messages-CUxaqK8t2.mjs +0 -212
- package/dist/chunks/messages-CXDk_Rlr2.mjs +0 -212
- package/dist/chunks/messages-CYZxR91M.mjs +0 -212
- package/dist/chunks/messages-C_ogasse2.cjs +0 -1
- package/dist/chunks/messages-CbFuceEb.cjs +0 -1
- package/dist/chunks/messages-CbbYb7cc.cjs +0 -1
- package/dist/chunks/messages-CfO5kKI72.cjs +0 -1
- package/dist/chunks/messages-Cgv5DuNV.cjs +0 -1
- package/dist/chunks/messages-Cjm7Nj1C.mjs +0 -212
- package/dist/chunks/messages-CjzZ6nxv.mjs +0 -212
- package/dist/chunks/messages-CkBrRFY02.cjs +0 -1
- package/dist/chunks/messages-CpVtcYqo.mjs +0 -212
- package/dist/chunks/messages-CpppvIiu.cjs +0 -1
- package/dist/chunks/messages-CumomgDd2.mjs +0 -212
- package/dist/chunks/messages-CvCb4dCy.mjs +0 -212
- package/dist/chunks/messages-D3DNj1jh.mjs +0 -212
- package/dist/chunks/messages-D7d2U-tx.mjs +0 -212
- package/dist/chunks/messages-D8-vyZ2V.cjs +0 -1
- package/dist/chunks/messages-DFWhnXF12.mjs +0 -212
- package/dist/chunks/messages-DIpVfyX-2.cjs +0 -1
- package/dist/chunks/messages-DJBeEI7G.cjs +0 -1
- package/dist/chunks/messages-DJr1x1i2.mjs +0 -212
- package/dist/chunks/messages-DN7PU5Un2.mjs +0 -212
- package/dist/chunks/messages-DR8nFHdw2.cjs +0 -1
- package/dist/chunks/messages-DT5Ux3el.cjs +0 -1
- package/dist/chunks/messages-DVh_Bwwq.mjs +0 -212
- package/dist/chunks/messages-DVwHxslb.mjs +0 -212
- package/dist/chunks/messages-DZ1Pfnl0.mjs +0 -212
- package/dist/chunks/messages-Da2SYMf52.cjs +0 -1
- package/dist/chunks/messages-DaaqkvOz2.cjs +0 -1
- package/dist/chunks/messages-DdiqfVCc.cjs +0 -1
- package/dist/chunks/messages-DfZe7SKZ.cjs +0 -1
- package/dist/chunks/messages-DkJ0bcqu.cjs +0 -1
- package/dist/chunks/messages-DkmG49t8.cjs +0 -1
- package/dist/chunks/messages-Do3QV7QW.mjs +0 -212
- package/dist/chunks/messages-Do4o9ckW.cjs +0 -1
- package/dist/chunks/messages-DrbTe09r.cjs +0 -1
- package/dist/chunks/messages-Drxwphbg2.mjs +0 -212
- package/dist/chunks/messages-DtgIZDlN.cjs +0 -1
- package/dist/chunks/messages-DtloGH1v2.mjs +0 -212
- package/dist/chunks/messages-Du0zg7UM.mjs +0 -212
- package/dist/chunks/messages-DuA_D23n.mjs +0 -212
- package/dist/chunks/messages-DwKRw3jP2.mjs +0 -212
- package/dist/chunks/messages-DxCaGN-Q2.cjs +0 -1
- package/dist/chunks/messages-DxpBJ5ZY.cjs +0 -1
- package/dist/chunks/messages-DyWu9_0D.cjs +0 -1
- package/dist/chunks/messages-DzAYvMm72.mjs +0 -212
- package/dist/chunks/messages-Dzmge-lj.mjs +0 -212
- package/dist/chunks/messages-ETNAE7WV.mjs +0 -212
- package/dist/chunks/messages-F4r6ruTX2.mjs +0 -212
- package/dist/chunks/messages-FNQdT9Da.mjs +0 -212
- package/dist/chunks/messages-FYGyC6zk2.mjs +0 -212
- package/dist/chunks/messages-Hg0BECWK.cjs +0 -1
- package/dist/chunks/messages-JlduXweH2.cjs +0 -1
- package/dist/chunks/messages-Km2PU_o7.cjs +0 -1
- package/dist/chunks/messages-MgJnGL9X2.cjs +0 -1
- package/dist/chunks/messages-PIoKW4js2.cjs +0 -1
- package/dist/chunks/messages-VEm9mp5H.cjs +0 -1
- package/dist/chunks/messages-WgwkG5PL2.cjs +0 -1
- package/dist/chunks/messages-X46KAUoI.cjs +0 -1
- package/dist/chunks/messages-ZS1Ro8ZB.mjs +0 -212
- package/dist/chunks/messages-ZZd1ckSO2.cjs +0 -1
- package/dist/chunks/messages-dyhHlgE9.mjs +0 -212
- package/dist/chunks/messages-fAEKtYXO.mjs +0 -212
- package/dist/chunks/messages-hhptyJO3.mjs +0 -212
- package/dist/chunks/messages-hk4dinYI.mjs +0 -212
- package/dist/chunks/messages-knSLxvI6.mjs +0 -212
- package/dist/chunks/messages-lORohDgW2.mjs +0 -212
- package/dist/chunks/messages-mvnz8DvU.mjs +0 -212
- package/dist/chunks/messages-pHWKsrcZ.mjs +0 -212
- package/dist/chunks/messages-q2McAyOz.mjs +0 -212
- package/dist/chunks/messages-r62SI44r.mjs +0 -212
- package/dist/chunks/messages-uFdMhLbJ.mjs +0 -212
- package/dist/chunks/messages-vRqPeNM_.cjs +0 -1
- package/dist/chunks/messages-vhq442qv.cjs +0 -1
- package/dist/chunks/micromark-extension-math-BXJknrtf.cjs +0 -1
- package/dist/chunks/micromark-extension-math-x3wvkKaN.mjs +0 -169
- package/dist/chunks/mindmap-definition-QFDTVHPH-6O8s-b35.cjs +0 -96
- package/dist/chunks/mindmap-definition-QFDTVHPH-BfOyKFtC.mjs +0 -1013
- package/dist/chunks/notifier-B-wErJJB.mjs +0 -73
- package/dist/chunks/notifier-CwnFVNdD.cjs +0 -1
- package/dist/chunks/objectWithoutProperties-BbzyiphF.cjs +0 -1
- package/dist/chunks/objectWithoutProperties-Dci1-l7D.mjs +0 -23
- package/dist/chunks/one-light-D2mpnHEP.cjs +0 -1
- package/dist/chunks/one-light-bqnXiA0I.mjs +0 -4
- package/dist/chunks/ordinal-CN3SDQau.mjs +0 -65
- package/dist/chunks/ordinal-DFFZs5-y.cjs +0 -1
- package/dist/chunks/packet-4T2RLAQJ-7DW35MGl.mjs +0 -3
- package/dist/chunks/packet-4T2RLAQJ-B5XvZd2W.cjs +0 -1
- package/dist/chunks/php-BMavm1CR.cjs +0 -1
- package/dist/chunks/php-Dejkjxb5.mjs +0 -18
- package/dist/chunks/pie-ZZUOXDRM-Dtuq0w2k.mjs +0 -3
- package/dist/chunks/pie-ZZUOXDRM-SOG0aDPa.cjs +0 -1
- package/dist/chunks/pieDiagram-DEJITSTG-B1sjciNi.mjs +0 -179
- package/dist/chunks/pieDiagram-DEJITSTG-BkEwYBz9.cjs +0 -30
- package/dist/chunks/python-Dcoit5Q5.cjs +0 -1
- package/dist/chunks/python-tdu-oDWx.mjs +0 -3
- package/dist/chunks/quadrantDiagram-34T5L4WZ-CV838wf-.mjs +0 -1960
- package/dist/chunks/quadrantDiagram-34T5L4WZ-RJme4lkz.cjs +0 -7
- package/dist/chunks/r-BdDCwgEs.cjs +0 -1
- package/dist/chunks/r-D8fCyoTl.mjs +0 -5
- package/dist/chunks/radar-PYXPWWZC-Bz4lwSbg.mjs +0 -3
- package/dist/chunks/radar-PYXPWWZC-Doch8Lt3.cjs +0 -1
- package/dist/chunks/requirementDiagram-MS252O5E-CA3LUAVZ.mjs +0 -2224
- package/dist/chunks/requirementDiagram-MS252O5E-CMqFsK_K.cjs +0 -84
- package/dist/chunks/ruby-DHm8_lqY.cjs +0 -1
- package/dist/chunks/ruby-Z7wCYjey.mjs +0 -33
- package/dist/chunks/rust-Cdm0j4IC.cjs +0 -1
- package/dist/chunks/rust-D5IQAarB.mjs +0 -3
- package/dist/chunks/sankeyDiagram-XADWPNL6-BPaUkDQv.cjs +0 -10
- package/dist/chunks/sankeyDiagram-XADWPNL6-Cw8wB2YO.mjs +0 -909
- package/dist/chunks/scala-CbcMYkuq.mjs +0 -3
- package/dist/chunks/scala-Tb1u_9W3.cjs +0 -1
- package/dist/chunks/sequenceDiagram-FGHM5R23-DbM-gyMR.cjs +0 -157
- package/dist/chunks/sequenceDiagram-FGHM5R23-pm0MaeXC.mjs +0 -4181
- package/dist/chunks/shellscript-CZefq5l_.mjs +0 -3
- package/dist/chunks/shellscript-D6KsENaG.cjs +0 -1
- package/dist/chunks/sql-BlpbD7FB.cjs +0 -1
- package/dist/chunks/sql-C4ibVEDs.mjs +0 -3
- package/dist/chunks/stateDiagram-FHFEXIEX-CEcLtV9Z.cjs +0 -1
- package/dist/chunks/stateDiagram-FHFEXIEX-CMcsvm0M.mjs +0 -218
- package/dist/chunks/stateDiagram-v2-QKLJ7IA2-C4nZGNBm.mjs +0 -28
- package/dist/chunks/stateDiagram-v2-QKLJ7IA2-aa692V81.cjs +0 -1
- package/dist/chunks/swift-Drpgj9J0.mjs +0 -3
- package/dist/chunks/swift-DubrdZus.cjs +0 -1
- package/dist/chunks/timeline-definition-GMOUNBTQ-DwHKPj3j.mjs +0 -1084
- package/dist/chunks/timeline-definition-GMOUNBTQ-ceXDJGg_.cjs +0 -120
- package/dist/chunks/tools-DPov06L-.mjs +0 -11458
- package/dist/chunks/tools-NAqHj-Cy.cjs +0 -9
- package/dist/chunks/treeView-SZITEDCU-BUuSm_Hn.cjs +0 -1
- package/dist/chunks/treeView-SZITEDCU-DPG9FJ6Q.mjs +0 -3
- package/dist/chunks/treemap-W4RFUUIX-BerKlw0i.cjs +0 -1
- package/dist/chunks/treemap-W4RFUUIX-N4tZJR1-.mjs +0 -3
- package/dist/chunks/typescript-BKtlqLze.cjs +0 -1
- package/dist/chunks/typescript-Bnpf4OG6.mjs +0 -5
- package/dist/chunks/vennDiagram-DHZGUBPP-BzOeMJe8.cjs +0 -34
- package/dist/chunks/vennDiagram-DHZGUBPP-Gfy0QWtB.mjs +0 -1876
- package/dist/chunks/vitesse-dark-BSL-cCXL.cjs +0 -1
- package/dist/chunks/vitesse-dark-dflHsflb.mjs +0 -4
- package/dist/chunks/wardley-RL74JXVD-BzKtPJ3g.cjs +0 -1
- package/dist/chunks/wardley-RL74JXVD-C7Hzc5y2.mjs +0 -3
- package/dist/chunks/wardleyDiagram-NUSXRM2D-ChZiL3a0.mjs +0 -594
- package/dist/chunks/wardleyDiagram-NUSXRM2D-qo6LFohO.cjs +0 -20
- package/dist/chunks/xml-C1PUeKuL.mjs +0 -5
- package/dist/chunks/xml-CwiH0x4E.cjs +0 -1
- package/dist/chunks/xychartDiagram-5P7HB3ND-CH1Z2Cbf.cjs +0 -7
- package/dist/chunks/xychartDiagram-5P7HB3ND-t_dhLiOA.mjs +0 -2017
- package/dist/chunks/yaml-CecI9urB.mjs +0 -3
- package/dist/chunks/yaml-CkVxfQ4c.cjs +0 -1
- package/dist/messages--zgIPYtb.mjs +0 -212
- package/dist/messages-4jULpVvw.mjs +0 -212
- package/dist/messages-AbwSlRf_.mjs +0 -212
- package/dist/messages-B-dl7Pwb2.mjs +0 -212
- package/dist/messages-B3rCRhb1.mjs +0 -212
- package/dist/messages-B73L8nKc2.mjs +0 -212
- package/dist/messages-BAjsD2Vm2.mjs +0 -212
- package/dist/messages-BBodSb5B2.mjs +0 -212
- package/dist/messages-BTpn6H9x2.mjs +0 -212
- package/dist/messages-BWb0GjTj2.mjs +0 -212
- package/dist/messages-BbCgnri12.mjs +0 -212
- package/dist/messages-Bfon_Y3q.mjs +0 -212
- package/dist/messages-BhOtow9J2.mjs +0 -212
- package/dist/messages-BoB7m0uu2.mjs +0 -212
- package/dist/messages-BsOZPjeg.mjs +0 -212
- package/dist/messages-BuzKUYPV.mjs +0 -212
- package/dist/messages-BzOKMdMQ.mjs +0 -212
- package/dist/messages-C2H3PeQW2.mjs +0 -212
- package/dist/messages-C5KNzSTk.mjs +0 -212
- package/dist/messages-CIDYjE6l.mjs +0 -212
- package/dist/messages-CJmyF5ye.mjs +0 -212
- package/dist/messages-CTwiYb2a2.mjs +0 -212
- package/dist/messages-CUHoJaDO.mjs +0 -212
- package/dist/messages-CVeuqUjQ2.mjs +0 -212
- package/dist/messages-CW75b4sz.mjs +0 -212
- package/dist/messages-CXd7YeWV.mjs +0 -212
- package/dist/messages-CjlYkunD.mjs +0 -212
- package/dist/messages-CrGx64yd.mjs +0 -212
- package/dist/messages-Ct0jbgHd.mjs +0 -212
- package/dist/messages-CtKrCYD1.mjs +0 -212
- package/dist/messages-Cu2eLjfJ.mjs +0 -212
- package/dist/messages-CvwQ-fK_2.mjs +0 -212
- package/dist/messages-Cy6UYN9b.mjs +0 -212
- package/dist/messages-D01vnfA9.mjs +0 -212
- package/dist/messages-D0BAV45W.mjs +0 -212
- package/dist/messages-D5LGpdga.mjs +0 -212
- package/dist/messages-DATK4ftv.mjs +0 -212
- package/dist/messages-DEl77Urv2.mjs +0 -212
- package/dist/messages-DHNjM2nv2.mjs +0 -212
- package/dist/messages-DMW8b_sO.mjs +0 -212
- package/dist/messages-DNmgANKr.mjs +0 -212
- package/dist/messages-DQaa3cEM.mjs +0 -212
- package/dist/messages-DSlD4bV9.mjs +0 -212
- package/dist/messages-DTzbkXFt.mjs +0 -212
- package/dist/messages-DbZihxtV.mjs +0 -212
- package/dist/messages-DeE8fyKQ.mjs +0 -212
- package/dist/messages-Dg-TpO2S2.mjs +0 -212
- package/dist/messages-DgP82LzF.mjs +0 -212
- package/dist/messages-Dh3Vt7WC.mjs +0 -212
- package/dist/messages-DiVVyZD22.mjs +0 -212
- package/dist/messages-DpRnGjoe.mjs +0 -212
- package/dist/messages-DqZmrFaa2.mjs +0 -212
- package/dist/messages-Dra9Fz5Q.mjs +0 -212
- package/dist/messages-DuPBRgEF2.mjs +0 -212
- package/dist/messages-DuxEyAY-2.mjs +0 -212
- package/dist/messages-FmJD6lHR2.mjs +0 -212
- package/dist/messages-ONielGl92.mjs +0 -212
- package/dist/messages-RzgUqCGb2.mjs +0 -212
- package/dist/messages-U22AKGKs.mjs +0 -212
- package/dist/messages-XufeeRfO.mjs +0 -212
- package/dist/messages-fprUm7SO2.mjs +0 -212
- package/dist/messages-gFNdz3Tn2.mjs +0 -212
- package/dist/messages-h_n5GBm6.mjs +0 -212
- package/dist/messages-oOogIpsL2.mjs +0 -212
- package/dist/messages-otwg3KcK.mjs +0 -212
- package/dist/messages-rDDoBMWb.mjs +0 -212
- package/dist/messages-trQPxZIu.mjs +0 -212
- package/src/tools/code/highlight-applier.ts +0 -229
- package/src/tools/code/shiki-loader.ts +0 -135
- /package/dist/chunks/{am-CyXvGFRE.cjs → am-CGgVs8Sg.cjs} +0 -0
- /package/dist/chunks/{am-JTszxMum.mjs → am-TVbhxPdQ.mjs} +0 -0
- /package/dist/chunks/{ar-CME8m7Ug.mjs → ar-ClSvzRAM.mjs} +0 -0
- /package/dist/chunks/{ar-BbusVfTp.cjs → ar-nFMIw80i.cjs} +0 -0
- /package/dist/chunks/{array-BMXfsgb2.cjs → array-B193TMZz.cjs} +0 -0
- /package/dist/chunks/{array-B4E6ednJ.mjs → array-ChMzkF5S.mjs} +0 -0
- /package/dist/chunks/{az-D7MMnw6r.cjs → az-Cb6l6ydx.cjs} +0 -0
- /package/dist/chunks/{az-CU1BXEnK.mjs → az-Df0rChHp.mjs} +0 -0
- /package/dist/chunks/{bg-C3H2Qh_2.cjs → bg-BdZUTRFn.cjs} +0 -0
- /package/dist/chunks/{bg-C1QKbOOv.mjs → bg-DLJ0oZ8E.mjs} +0 -0
- /package/dist/chunks/{bn-BGOycYTM.cjs → bn-CneGelWq.cjs} +0 -0
- /package/dist/chunks/{bn-DbDE4DPn.mjs → bn-rM6ek4mO.mjs} +0 -0
- /package/dist/chunks/{bs-5jPxlF97.mjs → bs-16ZwjsQl.mjs} +0 -0
- /package/dist/chunks/{bs-C7amuK1D.cjs → bs-XAmTKQeJ.cjs} +0 -0
- /package/dist/chunks/{cs-BEZB2qcc.mjs → cs-C-zvdtZ-.mjs} +0 -0
- /package/dist/chunks/{cs-BUD3Muxp.cjs → cs-DKYguxBC.cjs} +0 -0
- /package/dist/chunks/{cytoscape.esm-CWkCAUzT.mjs → cytoscape.esm-BsvVxiuI.mjs} +0 -0
- /package/dist/chunks/{cytoscape.esm-CjWrb5SM.cjs → cytoscape.esm-gv01QJ5y.cjs} +0 -0
- /package/dist/chunks/{da-DXZ2uOgL.mjs → da-D1HzIKpF.mjs} +0 -0
- /package/dist/chunks/{da-CO2FYbLa.cjs → da-DiLbdYqu.cjs} +0 -0
- /package/dist/chunks/{de-B8nkOjfD.cjs → de-ClyUjm_W.cjs} +0 -0
- /package/dist/chunks/{de-D4FxC1Yq.mjs → de-Dpmwqjaw.mjs} +0 -0
- /package/dist/chunks/{default-DPWNu2LM.mjs → default-D5Eal3bU.mjs} +0 -0
- /package/dist/chunks/{default-DP8dtTxC.cjs → default-D9azvkQ_.cjs} +0 -0
- /package/dist/chunks/{defaultLocale-BxWls4I1.cjs → defaultLocale-CSsowJXG.cjs} +0 -0
- /package/dist/chunks/{defaultLocale-BYV2aVaI.mjs → defaultLocale-DiiR34KB.mjs} +0 -0
- /package/dist/chunks/{dist-CKM-fjTE.mjs → dist-BFuUZzlT.mjs} +0 -0
- /package/dist/chunks/{dist-CxdzFxpy.cjs → dist-DS4hv48u.cjs} +0 -0
- /package/dist/chunks/{el-D2ILhp1-.cjs → el-CFVhJTIb.cjs} +0 -0
- /package/dist/chunks/{el-DwIVDdku.mjs → el-DQ-dU1wp.mjs} +0 -0
- /package/dist/chunks/{es-DXxnOS9P.cjs → es-BlajxX2r.cjs} +0 -0
- /package/dist/chunks/{es-DlO4MePt.mjs → es-Dhzgzei6.mjs} +0 -0
- /package/dist/chunks/{et-BBSbb8pL.mjs → et-CnhEwclb.mjs} +0 -0
- /package/dist/chunks/{et-mT4xnDc7.cjs → et-ggACA1d9.cjs} +0 -0
- /package/dist/chunks/{fa-DsJou-pw.mjs → fa-B4zSY96K.mjs} +0 -0
- /package/dist/chunks/{fa-D9CUFSHX.cjs → fa-DuYd0CQw.cjs} +0 -0
- /package/dist/chunks/{fi-CsMgo7Wk.mjs → fi-B525ro09.mjs} +0 -0
- /package/dist/chunks/{fi-DpCqdl_1.cjs → fi-D3-4SL4-.cjs} +0 -0
- /package/dist/chunks/{fil-BjeZREJI.cjs → fil-Cs84dmNe.cjs} +0 -0
- /package/dist/chunks/{fil-Dlw8sEta.mjs → fil-DPB6Byn0.mjs} +0 -0
- /package/dist/chunks/{fr-DYmwW1y1.cjs → fr-C8Z2PE7u.cjs} +0 -0
- /package/dist/chunks/{fr-DeapG5NH.mjs → fr-CbMgtPHe.mjs} +0 -0
- /package/dist/chunks/{gu-klAnA_ns.mjs → gu-BDs1p7Uo.mjs} +0 -0
- /package/dist/chunks/{gu-4g6NA9h8.cjs → gu-CPQY3Iyq.cjs} +0 -0
- /package/dist/chunks/{he-2H5DcbO0.cjs → he-BkMGwSM7.cjs} +0 -0
- /package/dist/chunks/{he-9TdyXc1J.mjs → he-DWa_-C46.mjs} +0 -0
- /package/dist/chunks/{hi-DVOss_Zp.mjs → hi-Buu8Rua9.mjs} +0 -0
- /package/dist/chunks/{hi-Dvb4O5oj.cjs → hi-ClQSrRZz.cjs} +0 -0
- /package/dist/chunks/{hr-CXo-QFLf.mjs → hr-WosECnFF.mjs} +0 -0
- /package/dist/chunks/{hr-B4Y5vULZ.cjs → hr-wrh48ogh.cjs} +0 -0
- /package/dist/chunks/{hu-D3Pi7CJx.cjs → hu-BSVMkfs2.cjs} +0 -0
- /package/dist/chunks/{hu-B6uKq-NU.mjs → hu-CeBjtxCd.mjs} +0 -0
- /package/dist/chunks/{hy-DZ74SDlC.cjs → hy-CwF59lJj.cjs} +0 -0
- /package/dist/chunks/{hy-B7CWqbUW.mjs → hy-DwfBE3Yt.mjs} +0 -0
- /package/dist/chunks/{i18next-CkovSPO7.cjs → i18next-C14J6E5L.cjs} +0 -0
- /package/dist/chunks/{i18next-BFvS_Rnh.mjs → i18next-DjO-l2Ee.mjs} +0 -0
- /package/dist/chunks/{id-C5d2QGEQ.mjs → id-CBV5ivYd.mjs} +0 -0
- /package/dist/chunks/{id-WfjZeYKN.cjs → id-DN2KcAmG.cjs} +0 -0
- /package/dist/chunks/{init-C3Dyaaly.mjs → init-C2Iht9jH.mjs} +0 -0
- /package/dist/chunks/{init-BvlcnoG2.cjs → init-DMaknHdL.cjs} +0 -0
- /package/dist/chunks/{isArrayLikeObject-CnaR8YJm.cjs → isArrayLikeObject-Bk7ImDHR.cjs} +0 -0
- /package/dist/chunks/{isArrayLikeObject-B-1mfvNK.mjs → isArrayLikeObject-CyB7POJY.mjs} +0 -0
- /package/dist/chunks/{it-hqsqt6f7.cjs → it-CSt1S7SQ.cjs} +0 -0
- /package/dist/chunks/{it-BgPXC2_F.mjs → it-CU5gg8BZ.mjs} +0 -0
- /package/dist/chunks/{ja-BwLgKsdH.cjs → ja-BbwATm6F.cjs} +0 -0
- /package/dist/chunks/{ja-CQ7ujOz3.mjs → ja-khPKQhMG.mjs} +0 -0
- /package/dist/chunks/{ka-xoKako16.cjs → ka-Cqnq4zZT.cjs} +0 -0
- /package/dist/chunks/{ka-DAPmSm_-.mjs → ka-DN17rDOq.mjs} +0 -0
- /package/dist/chunks/{katex-_C7fvrbX.cjs → katex-D_RH6O9V.cjs} +0 -0
- /package/dist/chunks/{katex-Bbz34ZLq.mjs → katex-thO7aa9b.mjs} +0 -0
- /package/dist/chunks/{km-BJ9H-RbD.mjs → km-BbS9HEwx.mjs} +0 -0
- /package/dist/chunks/{km-D7Fl8wAA.cjs → km-COh3mhzp.cjs} +0 -0
- /package/dist/chunks/{kn-CthdB8vH.mjs → kn-7TPoJJQt.mjs} +0 -0
- /package/dist/chunks/{kn-Ckju1oeq.cjs → kn-CX062fVg.cjs} +0 -0
- /package/dist/chunks/{ko-DbEA41LU.mjs → ko-CDI2MnWL.mjs} +0 -0
- /package/dist/chunks/{ko-Dt1tQEjC.cjs → ko-gSw_U9kC.cjs} +0 -0
- /package/dist/chunks/{ku-B_j9qSrv.mjs → ku-DONc_aap.mjs} +0 -0
- /package/dist/chunks/{ku-_i2C5XD5.cjs → ku-DnvmAkID.cjs} +0 -0
- /package/dist/chunks/{lo-DfEpgG9m.cjs → lo-BrwlEjmE.cjs} +0 -0
- /package/dist/chunks/{lo-DSklR1Zs.mjs → lo-PtNU87QX.mjs} +0 -0
- /package/dist/chunks/{lt-BwLILIED.cjs → lt-Bw969G31.cjs} +0 -0
- /package/dist/chunks/{lt-C9aVbfRt.mjs → lt-CV9PgETS.mjs} +0 -0
- /package/dist/chunks/{lv-DLwMSEc0.mjs → lv-CFPT5CoC.mjs} +0 -0
- /package/dist/chunks/{lv-DdrYab3x.cjs → lv-DhwZOfiA.cjs} +0 -0
- /package/dist/chunks/{micromark-factory-space-BnsBDplI.cjs → micromark-factory-space-CsUhZvC1.cjs} +0 -0
- /package/dist/chunks/{micromark-factory-space-C6wz33de.mjs → micromark-factory-space-y4SDWQKm.mjs} +0 -0
- /package/dist/chunks/{mk-D96bSjMK.mjs → mk-5waYEn6e.mjs} +0 -0
- /package/dist/chunks/{mk-CsPHE4cO.cjs → mk-vuwbN_RA.cjs} +0 -0
- /package/dist/chunks/{ml-CAsiw8BP.cjs → ml-DQZZm6v3.cjs} +0 -0
- /package/dist/chunks/{ml-D1Ek94RG.mjs → ml-iK4LpGaW.mjs} +0 -0
- /package/dist/chunks/{mn-Db6DwHPv.cjs → mn-Dz3r2r3T.cjs} +0 -0
- /package/dist/chunks/{mn-CyNCFOYP.mjs → mn-nfQCBqsj.mjs} +0 -0
- /package/dist/chunks/{mr-CaA3xXVf.mjs → mr-8ddBHqrW.mjs} +0 -0
- /package/dist/chunks/{mr-BBAuoEIQ.cjs → mr-BDjve7Md.cjs} +0 -0
- /package/dist/chunks/{ms-Cfv7BOEG.cjs → ms-2boGmWFn.cjs} +0 -0
- /package/dist/chunks/{ms-IZU-A3Qk.mjs → ms-BRxHmUVO.mjs} +0 -0
- /package/dist/chunks/{my-C-AQLGIp.mjs → my-Bq-MP3br.mjs} +0 -0
- /package/dist/chunks/{my-DOLHceI8.cjs → my-BtRZdE5q.cjs} +0 -0
- /package/dist/chunks/{native-DbFHGXp1.cjs → native-Bok_u8yD.cjs} +0 -0
- /package/dist/chunks/{native-CarRLbbJ.mjs → native-DIGOFhyn.mjs} +0 -0
- /package/dist/chunks/{ne-LaymXAjm.mjs → ne-B6JfM08W.mjs} +0 -0
- /package/dist/chunks/{ne-B2gHspK_.cjs → ne-C9oc_I3v.cjs} +0 -0
- /package/dist/chunks/{nl-C5ezxTkA.cjs → nl-CkIGPyM6.cjs} +0 -0
- /package/dist/chunks/{nl-Dm1eVwTA.mjs → nl-NuO8CW66.mjs} +0 -0
- /package/dist/chunks/{no-B2WicGhz.mjs → no-BtwrqS-b.mjs} +0 -0
- /package/dist/chunks/{no-D4hjenPs.cjs → no-De7tM2WX.cjs} +0 -0
- /package/dist/chunks/{pa-CemLebw7.cjs → pa-Bm15OLTz.cjs} +0 -0
- /package/dist/chunks/{pa-ry61xHq9.mjs → pa-ClSxjHFF.mjs} +0 -0
- /package/dist/chunks/{path-CLcQoP7n.cjs → path-CFQyJ4S5.cjs} +0 -0
- /package/dist/chunks/{path-Crax6eds.mjs → path-iPyWZTLQ.mjs} +0 -0
- /package/dist/chunks/{pl-DzCnx7eR.mjs → pl-C-aTCeRd.mjs} +0 -0
- /package/dist/chunks/{pl-D_sFAkCs.cjs → pl-D80QrSlq.cjs} +0 -0
- /package/dist/chunks/{ps-DKXG6JHY.mjs → ps-B8wPRrcC.mjs} +0 -0
- /package/dist/chunks/{ps-ygHHO68A.cjs → ps-ySfeV5NE.cjs} +0 -0
- /package/dist/chunks/{pt-e09B0rEd.mjs → pt-8tijWt3B.mjs} +0 -0
- /package/dist/chunks/{pt-x_mmaTtD.cjs → pt-Bigoi5oj.cjs} +0 -0
- /package/dist/chunks/{ro-HNnYR5pB.mjs → ro-BiUSkkwp.mjs} +0 -0
- /package/dist/chunks/{ro-CLGSgHzJ.cjs → ro-Dvtjmd-W.cjs} +0 -0
- /package/dist/chunks/{rough.esm-BaIXPgTh.cjs → rough.esm-DC-UFdM0.cjs} +0 -0
- /package/dist/chunks/{rough.esm-CChKUjNP.mjs → rough.esm-buj-m5wB.mjs} +0 -0
- /package/dist/chunks/{ru-LpaLXWmO.cjs → ru-dq73Ra3e.cjs} +0 -0
- /package/dist/chunks/{ru-D_jTWgK8.mjs → ru-qkCthz2J.mjs} +0 -0
- /package/dist/chunks/{sd-B5PS8K1I.cjs → sd-BhtQCaFq.cjs} +0 -0
- /package/dist/chunks/{sd-B7bgXBin.mjs → sd-DfoXSEBK.mjs} +0 -0
- /package/dist/chunks/{si-BjMoO5xu.cjs → si-CWG8h4tD.cjs} +0 -0
- /package/dist/chunks/{si-aQCsTBIp.mjs → si-RPCp-GrG.mjs} +0 -0
- /package/dist/chunks/{sk-pQPYnDDU.cjs → sk-Bkag9oKD.cjs} +0 -0
- /package/dist/chunks/{sk-Bjrct9rr.mjs → sk-CVRHQjYN.mjs} +0 -0
- /package/dist/chunks/{sl-B_yalM3h.cjs → sl-BhupPCcO.cjs} +0 -0
- /package/dist/chunks/{sl-DvS57kCB.mjs → sl-Clf3YXji.mjs} +0 -0
- /package/dist/chunks/{sq-gzZkHXFJ.cjs → sq-Bosym4Xb.cjs} +0 -0
- /package/dist/chunks/{sq-BexoWiW2.mjs → sq-C-nwTgWs.mjs} +0 -0
- /package/dist/chunks/{sr-CXir4bLq.mjs → sr-BiElo1CU.mjs} +0 -0
- /package/dist/chunks/{sr-O4v1KJY1.cjs → sr-DFPGZJ0s.cjs} +0 -0
- /package/dist/chunks/{src-d9yswOqA.cjs → src-al3Kn9PA.cjs} +0 -0
- /package/dist/chunks/{src-yreeH1hr.mjs → src-gZQLeVvM.mjs} +0 -0
- /package/dist/chunks/{sv-D0tEFwN7.cjs → sv-CiYmSxqX.cjs} +0 -0
- /package/dist/chunks/{sv-B_Owhjrs.mjs → sv-DVztafBI.mjs} +0 -0
- /package/dist/chunks/{sw-DE8oPVEt.cjs → sw-CMbHoINv.cjs} +0 -0
- /package/dist/chunks/{sw-B4p84FCO.mjs → sw-CgJk20G2.mjs} +0 -0
- /package/dist/chunks/{ta-BCVLtFMU.cjs → ta-BrC1o95Z.cjs} +0 -0
- /package/dist/chunks/{ta-BU_-jQ33.mjs → ta-rqChn3y2.mjs} +0 -0
- /package/dist/chunks/{te-BISdOeGS.cjs → te-DAKpWpi8.cjs} +0 -0
- /package/dist/chunks/{te-5FGke4TK.mjs → te-LIsqeDyD.mjs} +0 -0
- /package/dist/chunks/{th-DFyekAQ3.mjs → th-Bm6lDr_S.mjs} +0 -0
- /package/dist/chunks/{th-CJXhSA-L.cjs → th-D0CG2M2k.cjs} +0 -0
- /package/dist/chunks/{tr-BjTvmhJt.cjs → tr-Bw_nVU1b.cjs} +0 -0
- /package/dist/chunks/{tr-C7Zj3lX4.mjs → tr-g8oLvvcP.mjs} +0 -0
- /package/dist/chunks/{types-BNvlbr9u.mjs → types-DrdCPGbk.mjs} +0 -0
- /package/dist/chunks/{types-BQX8SD8Q.cjs → types-GPfn5gE2.cjs} +0 -0
- /package/dist/chunks/{ug-DsQjxbOa.cjs → ug-DvC-UnxD.cjs} +0 -0
- /package/dist/chunks/{ug-DJwD0iui.mjs → ug-zVaKVoWE.mjs} +0 -0
- /package/dist/chunks/{uk-BPzbNIjw.cjs → uk-Cx32rUi7.cjs} +0 -0
- /package/dist/chunks/{uk-hkOj8kWN.mjs → uk-DGVBUwum.mjs} +0 -0
- /package/dist/chunks/{ur-Cy5A8nFG.mjs → ur-7wbChoVl.mjs} +0 -0
- /package/dist/chunks/{ur-Do8k1hR-.cjs → ur-BMh2seDu.cjs} +0 -0
- /package/dist/chunks/{vi-CCTEx9XR.cjs → vi-4TUS0GSi.cjs} +0 -0
- /package/dist/chunks/{vi-CEt0cTzQ.mjs → vi-CLg1e4-a.mjs} +0 -0
- /package/dist/chunks/{zh-Ive4on8E.cjs → zh-DZtmJNDR.cjs} +0 -0
- /package/dist/chunks/{zh-BwQjLCGO.mjs → zh-LvpOPMNT.mjs} +0 -0
|
@@ -0,0 +1,926 @@
|
|
|
1
|
+
import type { ImageCrop, ImageData, ImageSize } from '../../../types/tools/image';
|
|
2
|
+
/**
|
|
3
|
+
* Mirror of the upstream ImageAlign* union from types/tools/image.d.ts,
|
|
4
|
+
* kept local so the i18n regression scan finds no stray hardcoded copy.
|
|
5
|
+
*/
|
|
6
|
+
type ImageAlign = 'left' | 'center' | 'right';
|
|
7
|
+
import { onHover as tooltipOnHover, hide as tooltipHide } from '../../components/utils/tooltip';
|
|
8
|
+
import type { I18nInstance } from '../../components/utils/tools';
|
|
9
|
+
import {
|
|
10
|
+
IconCaption,
|
|
11
|
+
IconCollapseFullscreen,
|
|
12
|
+
IconCrop,
|
|
13
|
+
IconDownload,
|
|
14
|
+
IconExpandFullscreen,
|
|
15
|
+
IconImageAlignCenter,
|
|
16
|
+
IconImageAlignLeft,
|
|
17
|
+
IconImageAlignRight,
|
|
18
|
+
IconLinkCopy,
|
|
19
|
+
IconMoreHorizontal,
|
|
20
|
+
IconReplaceImage,
|
|
21
|
+
IconZoomIn,
|
|
22
|
+
IconZoomOut,
|
|
23
|
+
} from '../../components/icons';
|
|
24
|
+
import { applyRubberBand } from './spring';
|
|
25
|
+
import { tr } from './i18n';
|
|
26
|
+
|
|
27
|
+
const ALIGN_TO_TEXT_ALIGN: Record<ImageAlign, string> = {
|
|
28
|
+
left: 'left',
|
|
29
|
+
center: 'center',
|
|
30
|
+
right: 'right',
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const ALIGN_ICON: Record<ImageAlign, string> = {
|
|
34
|
+
left: IconImageAlignLeft,
|
|
35
|
+
center: IconImageAlignCenter,
|
|
36
|
+
right: IconImageAlignRight,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function bindIntrinsicAspect(img: HTMLImageElement, wrapper: HTMLElement, w: number, h: number): void {
|
|
40
|
+
const target = wrapper;
|
|
41
|
+
const apply = (): void => {
|
|
42
|
+
const nw = img.naturalWidth;
|
|
43
|
+
const nh = img.naturalHeight;
|
|
44
|
+
if (nw > 0 && nh > 0) {
|
|
45
|
+
target.style.aspectRatio = `${w * nw} / ${h * nh}`;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
if (img.complete) apply();
|
|
49
|
+
else img.addEventListener('load', apply, { once: true });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function alignLabel(i18n: I18nInstance | undefined, value: ImageAlign): string {
|
|
53
|
+
switch (value) {
|
|
54
|
+
case 'left': return tr(i18n, 'tools.image.alignmentLeftAria');
|
|
55
|
+
case 'center': return tr(i18n, 'tools.image.alignmentCenterAria');
|
|
56
|
+
case 'right': return tr(i18n, 'tools.image.alignmentRightAria');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function renderImage(
|
|
61
|
+
data: Partial<ImageData> & { url: string }
|
|
62
|
+
): HTMLElement {
|
|
63
|
+
const alignment = data.alignment ?? 'center';
|
|
64
|
+
const figure = document.createElement('figure');
|
|
65
|
+
figure.className = 'blok-image-inner';
|
|
66
|
+
figure.setAttribute('data-role', 'image-figure');
|
|
67
|
+
figure.style.margin = '0';
|
|
68
|
+
figure.style.textAlign = ALIGN_TO_TEXT_ALIGN[alignment];
|
|
69
|
+
figure.style.position = 'relative';
|
|
70
|
+
if (data.width !== undefined) {
|
|
71
|
+
figure.style.width = `${data.width}%`;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const img = document.createElement('img');
|
|
75
|
+
img.setAttribute('src', data.url);
|
|
76
|
+
img.setAttribute('alt', data.alt ?? '');
|
|
77
|
+
img.draggable = false;
|
|
78
|
+
|
|
79
|
+
if (data.crop) {
|
|
80
|
+
const { x, y, w, h, shape } = data.crop;
|
|
81
|
+
const wrapper = document.createElement('div');
|
|
82
|
+
wrapper.className = 'blok-image-crop';
|
|
83
|
+
wrapper.setAttribute('data-role', 'image-crop');
|
|
84
|
+
wrapper.style.overflow = 'hidden';
|
|
85
|
+
wrapper.style.position = 'relative';
|
|
86
|
+
// Fallback until natural dims resolve — matches crop-region aspect only for square sources.
|
|
87
|
+
wrapper.style.aspectRatio = `${w} / ${h}`;
|
|
88
|
+
wrapper.style.width = '100%';
|
|
89
|
+
if (shape) wrapper.setAttribute('data-shape', shape);
|
|
90
|
+
if (shape === 'circle' || shape === 'ellipse') {
|
|
91
|
+
wrapper.style.borderRadius = '50%';
|
|
92
|
+
}
|
|
93
|
+
img.style.display = 'block';
|
|
94
|
+
// Opt out of the editor's global `img { max-width: 100% }` preflight so
|
|
95
|
+
// the (100/w)*100% width below can actually scale the source past the wrapper.
|
|
96
|
+
img.style.maxWidth = 'none';
|
|
97
|
+
img.style.width = `${(100 / w) * 100}%`;
|
|
98
|
+
// Height is intentionally unset so the img keeps its natural aspect inside the wrapper.
|
|
99
|
+
// transform % resolves against the element's own box, so -x%/-y% shift the
|
|
100
|
+
// img by x% of its width and y% of its height. margin-top % would instead
|
|
101
|
+
// resolve against the container's WIDTH, skewing vertically for non-square crops.
|
|
102
|
+
img.style.transform = `translate(-${x}%, -${y}%)`;
|
|
103
|
+
// Crop is in percent of intrinsic pixels; the cropped region's pixel aspect is
|
|
104
|
+
// (w*NW)/(h*NH), not w/h. Refine the wrapper's aspect once intrinsic dims are
|
|
105
|
+
// known so non-square sources aren't squashed into a crop-aspect box.
|
|
106
|
+
bindIntrinsicAspect(img, wrapper, w, h);
|
|
107
|
+
wrapper.appendChild(img);
|
|
108
|
+
figure.appendChild(wrapper);
|
|
109
|
+
} else {
|
|
110
|
+
figure.appendChild(img);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return figure;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface CaptionOptions {
|
|
117
|
+
value: string;
|
|
118
|
+
placeholder: string;
|
|
119
|
+
readOnly: boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export function renderCaption(opts: CaptionOptions): HTMLElement {
|
|
123
|
+
const el = document.createElement('div');
|
|
124
|
+
el.className = 'blok-image-caption';
|
|
125
|
+
el.setAttribute('role', 'textbox');
|
|
126
|
+
el.setAttribute('contenteditable', opts.readOnly ? 'false' : 'true');
|
|
127
|
+
el.setAttribute('data-placeholder', opts.placeholder);
|
|
128
|
+
el.textContent = opts.value;
|
|
129
|
+
el.style.outline = 'none';
|
|
130
|
+
el.style.textAlign = 'left';
|
|
131
|
+
return el;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export interface CaptionRowOptions {
|
|
135
|
+
caption: CaptionOptions;
|
|
136
|
+
onAlt?: () => void;
|
|
137
|
+
hasAlt?: boolean;
|
|
138
|
+
i18n?: I18nInstance;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export function renderCaptionRow(opts: CaptionRowOptions): HTMLElement {
|
|
142
|
+
const row = document.createElement('div');
|
|
143
|
+
row.className = 'blok-image-caption-row';
|
|
144
|
+
row.appendChild(renderCaption(opts.caption));
|
|
145
|
+
|
|
146
|
+
if (opts.onAlt) {
|
|
147
|
+
const altLabel = tr(opts.i18n, 'tools.image.altEdit');
|
|
148
|
+
const btn = document.createElement('button');
|
|
149
|
+
btn.type = 'button';
|
|
150
|
+
btn.className = 'blok-image-caption-row__alt';
|
|
151
|
+
btn.setAttribute('data-action', 'alt-edit');
|
|
152
|
+
btn.setAttribute('aria-label', altLabel);
|
|
153
|
+
btn.setAttribute('title', altLabel);
|
|
154
|
+
btn.setAttribute('aria-pressed', opts.hasAlt ? 'true' : 'false');
|
|
155
|
+
btn.textContent = tr(opts.i18n, 'tools.image.altButton');
|
|
156
|
+
btn.addEventListener('click', (event) => {
|
|
157
|
+
event.stopPropagation();
|
|
158
|
+
opts.onAlt?.();
|
|
159
|
+
});
|
|
160
|
+
row.appendChild(btn);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return row;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export interface LightboxOptions {
|
|
167
|
+
url: string;
|
|
168
|
+
alt?: string;
|
|
169
|
+
fileName?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Non-destructive crop applied inline. When present, the lightbox mirrors
|
|
172
|
+
* the same cropped view (wrapper + transformed inner img) so the preview
|
|
173
|
+
* matches what the user sees in the editor.
|
|
174
|
+
*/
|
|
175
|
+
crop?: ImageCrop;
|
|
176
|
+
/**
|
|
177
|
+
* Source element (the inline thumbnail) used for the FLIP open/close morph.
|
|
178
|
+
* When omitted, the dialog cross-fades without a spatial transition.
|
|
179
|
+
*/
|
|
180
|
+
origin?: HTMLElement;
|
|
181
|
+
i18n?: I18nInstance;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const OPEN_DURATION = 360;
|
|
185
|
+
const CLOSE_DURATION = 280;
|
|
186
|
+
// Smooth ease-out-expo on open; symmetric material curve on close.
|
|
187
|
+
const OPEN_EASING = 'cubic-bezier(0.22, 1, 0.36, 1)';
|
|
188
|
+
const CLOSE_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';
|
|
189
|
+
|
|
190
|
+
interface FlipTransform {
|
|
191
|
+
tx: number;
|
|
192
|
+
ty: number;
|
|
193
|
+
sx: number;
|
|
194
|
+
sy: number;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
function flipTransform(srcRect: DOMRect, destRect: DOMRect): FlipTransform {
|
|
198
|
+
const sx = destRect.width > 0 ? srcRect.width / destRect.width : 1;
|
|
199
|
+
const sy = destRect.height > 0 ? srcRect.height / destRect.height : 1;
|
|
200
|
+
const srcCx = srcRect.left + srcRect.width / 2;
|
|
201
|
+
const srcCy = srcRect.top + srcRect.height / 2;
|
|
202
|
+
const destCx = destRect.left + destRect.width / 2;
|
|
203
|
+
const destCy = destRect.top + destRect.height / 2;
|
|
204
|
+
return { tx: srcCx - destCx, ty: srcCy - destCy, sx, sy };
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function toTransform(t: FlipTransform): string {
|
|
208
|
+
return `translate(${t.tx}px, ${t.ty}px) scale(${t.sx}, ${t.sy})`;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function canAnimate(el: Element): el is Element & { animate: HTMLElement['animate'] } {
|
|
212
|
+
return typeof (el as HTMLElement).animate === 'function';
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const ZOOM_MIN = 0.25;
|
|
216
|
+
const ZOOM_MAX = 4;
|
|
217
|
+
const ZOOM_STEP = 0.25;
|
|
218
|
+
// 100-pixel wheel tick multiplies zoom by (1 + ZOOM_STEP); small trackpad pinch deltas stay smooth.
|
|
219
|
+
const WHEEL_ZOOM_COEF = Math.log(1 + ZOOM_STEP) / 100;
|
|
220
|
+
|
|
221
|
+
export function openLightbox(opts: LightboxOptions): () => void {
|
|
222
|
+
const previousFocus = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
223
|
+
|
|
224
|
+
const dialog = document.createElement('div');
|
|
225
|
+
dialog.setAttribute('role', 'dialog');
|
|
226
|
+
dialog.setAttribute('aria-modal', 'true');
|
|
227
|
+
dialog.setAttribute('aria-label', tr(opts.i18n, 'tools.image.preview'));
|
|
228
|
+
dialog.className = 'blok-image-lightbox';
|
|
229
|
+
|
|
230
|
+
const backdrop = document.createElement('div');
|
|
231
|
+
backdrop.className = 'blok-image-lightbox__backdrop';
|
|
232
|
+
backdrop.setAttribute('aria-hidden', 'true');
|
|
233
|
+
dialog.appendChild(backdrop);
|
|
234
|
+
|
|
235
|
+
const img = document.createElement('img');
|
|
236
|
+
img.setAttribute('src', opts.url);
|
|
237
|
+
img.setAttribute('alt', opts.alt ?? '');
|
|
238
|
+
img.draggable = false;
|
|
239
|
+
|
|
240
|
+
// displayEl is the element that receives zoom/pan/FLIP transforms. When a crop
|
|
241
|
+
// is active, the img already carries the `translate(-x%, -y%)` crop transform,
|
|
242
|
+
// so we mount it inside a wrapper and animate the wrapper instead. Without a
|
|
243
|
+
// crop, the img itself is the display element and keeps the legacy behavior.
|
|
244
|
+
const displayEl: HTMLElement = (() => {
|
|
245
|
+
const crop = opts.crop;
|
|
246
|
+
if (!crop) {
|
|
247
|
+
img.className = 'blok-image-lightbox__image';
|
|
248
|
+
return img;
|
|
249
|
+
}
|
|
250
|
+
const { x, y, w, h, shape } = crop;
|
|
251
|
+
const wrapper = document.createElement('div');
|
|
252
|
+
wrapper.className = 'blok-image-lightbox__image blok-image-lightbox__crop';
|
|
253
|
+
wrapper.setAttribute('data-role', 'lightbox-crop');
|
|
254
|
+
wrapper.style.overflow = 'hidden';
|
|
255
|
+
wrapper.style.aspectRatio = `${w} / ${h}`;
|
|
256
|
+
if (shape) wrapper.setAttribute('data-shape', shape);
|
|
257
|
+
if (shape === 'circle' || shape === 'ellipse') {
|
|
258
|
+
wrapper.style.borderRadius = '50%';
|
|
259
|
+
}
|
|
260
|
+
img.style.display = 'block';
|
|
261
|
+
img.style.maxWidth = 'none';
|
|
262
|
+
img.style.width = `${(100 / w) * 100}%`;
|
|
263
|
+
img.style.transform = `translate(-${x}%, -${y}%)`;
|
|
264
|
+
bindIntrinsicAspect(img, wrapper, w, h);
|
|
265
|
+
wrapper.appendChild(img);
|
|
266
|
+
return wrapper;
|
|
267
|
+
})();
|
|
268
|
+
|
|
269
|
+
const zoomState = { value: 1 };
|
|
270
|
+
const panState = { x: 0, y: 0 };
|
|
271
|
+
|
|
272
|
+
const applyTransform = (): void => {
|
|
273
|
+
displayEl.style.transform = `translate(${panState.x}px, ${panState.y}px) scale(${zoomState.value})`;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
function panBounds(): { maxX: number; maxY: number; width: number; height: number } {
|
|
277
|
+
const rect = displayEl.getBoundingClientRect();
|
|
278
|
+
return { maxX: rect.width / 2, maxY: rect.height / 2, width: rect.width, height: rect.height };
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function clampPan(p: { x: number; y: number }): { x: number; y: number } {
|
|
282
|
+
const { maxX, maxY } = panBounds();
|
|
283
|
+
return {
|
|
284
|
+
x: Math.max(-maxX, Math.min(maxX, p.x)),
|
|
285
|
+
y: Math.max(-maxY, Math.min(maxY, p.y)),
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function rubberBandPan(p: { x: number; y: number }): { x: number; y: number } {
|
|
290
|
+
const { maxX, maxY, width, height } = panBounds();
|
|
291
|
+
return {
|
|
292
|
+
x: applyRubberBand(p.x, maxX, width),
|
|
293
|
+
y: applyRubberBand(p.y, maxY, height),
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const setZoom = (next: number, options: { preservePan?: boolean } = {}): void => {
|
|
298
|
+
zoomState.value = Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, next));
|
|
299
|
+
if (options.preservePan) {
|
|
300
|
+
const clamped = clampPan(panState);
|
|
301
|
+
panState.x = clamped.x;
|
|
302
|
+
panState.y = clamped.y;
|
|
303
|
+
} else {
|
|
304
|
+
panState.x = 0;
|
|
305
|
+
panState.y = 0;
|
|
306
|
+
}
|
|
307
|
+
applyTransform();
|
|
308
|
+
syncResetLabel();
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
applyTransform();
|
|
312
|
+
|
|
313
|
+
const toolbar = renderLightboxToolbar({
|
|
314
|
+
i18n: opts.i18n,
|
|
315
|
+
getZoom: () => zoomState.value,
|
|
316
|
+
setZoom,
|
|
317
|
+
onDownload: () => {
|
|
318
|
+
const a = document.createElement('a');
|
|
319
|
+
a.href = opts.url;
|
|
320
|
+
a.download = opts.fileName ?? '';
|
|
321
|
+
a.target = '_blank';
|
|
322
|
+
a.rel = 'noopener';
|
|
323
|
+
document.body.appendChild(a);
|
|
324
|
+
a.click();
|
|
325
|
+
a.remove();
|
|
326
|
+
},
|
|
327
|
+
onCopyUrl: () => {
|
|
328
|
+
const clip = (navigator as Navigator & { clipboard?: { writeText(text: string): Promise<void> } }).clipboard;
|
|
329
|
+
void clip?.writeText(opts.url);
|
|
330
|
+
},
|
|
331
|
+
onCollapse: () => close(),
|
|
332
|
+
});
|
|
333
|
+
const syncResetLabel = (): void => {
|
|
334
|
+
const reset = toolbar.querySelector<HTMLButtonElement>('[data-action="zoom-reset"]');
|
|
335
|
+
if (reset) reset.textContent = `${Math.round(zoomState.value * 100)}%`;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
dialog.appendChild(displayEl);
|
|
339
|
+
dialog.appendChild(toolbar);
|
|
340
|
+
document.body.appendChild(dialog);
|
|
341
|
+
|
|
342
|
+
const animState: { img: Animation | null; backdrop: Animation | null; toolbar: Animation | null; closing: boolean } = {
|
|
343
|
+
img: null,
|
|
344
|
+
backdrop: null,
|
|
345
|
+
toolbar: null,
|
|
346
|
+
closing: false,
|
|
347
|
+
};
|
|
348
|
+
const origin = opts.origin && opts.origin.isConnected ? opts.origin : null;
|
|
349
|
+
const originPrevOpacity = origin ? origin.style.opacity : '';
|
|
350
|
+
|
|
351
|
+
const cancelRunning = (): void => {
|
|
352
|
+
animState.img?.cancel();
|
|
353
|
+
animState.backdrop?.cancel();
|
|
354
|
+
animState.toolbar?.cancel();
|
|
355
|
+
animState.img = null;
|
|
356
|
+
animState.backdrop = null;
|
|
357
|
+
animState.toolbar = null;
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
const slideToolbar = (
|
|
361
|
+
from: { opacity: number; y: number },
|
|
362
|
+
to: { opacity: number; y: number },
|
|
363
|
+
timing: KeyframeAnimationOptions
|
|
364
|
+
): Animation | null => {
|
|
365
|
+
if (!canAnimate(toolbar)) return null;
|
|
366
|
+
return toolbar.animate(
|
|
367
|
+
[
|
|
368
|
+
{ opacity: from.opacity, transform: `translate(-50%, ${from.y}px)` },
|
|
369
|
+
{ opacity: to.opacity, transform: `translate(-50%, ${to.y}px)` },
|
|
370
|
+
],
|
|
371
|
+
timing
|
|
372
|
+
);
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
const playOpen = (): void => {
|
|
376
|
+
if (origin && canAnimate(displayEl)) {
|
|
377
|
+
const srcRect = origin.getBoundingClientRect();
|
|
378
|
+
const destRect = displayEl.getBoundingClientRect();
|
|
379
|
+
if (srcRect.width > 0 && srcRect.height > 0 && destRect.width > 0 && destRect.height > 0) {
|
|
380
|
+
const from = toTransform(flipTransform(srcRect, destRect));
|
|
381
|
+
origin.style.opacity = '0';
|
|
382
|
+
animState.img = displayEl.animate(
|
|
383
|
+
[{ transform: from }, { transform: 'translate(0px, 0px) scale(1)' }],
|
|
384
|
+
{ duration: OPEN_DURATION, easing: OPEN_EASING, fill: 'backwards' }
|
|
385
|
+
);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (canAnimate(backdrop)) {
|
|
389
|
+
animState.backdrop = backdrop.animate(
|
|
390
|
+
[{ opacity: 0 }, { opacity: 1 }],
|
|
391
|
+
{ duration: 260, easing: 'linear', fill: 'backwards' }
|
|
392
|
+
);
|
|
393
|
+
}
|
|
394
|
+
animState.toolbar = slideToolbar(
|
|
395
|
+
{ opacity: 0, y: 12 },
|
|
396
|
+
{ opacity: 1, y: 0 },
|
|
397
|
+
{ duration: 320, delay: 140, easing: OPEN_EASING, fill: 'both' }
|
|
398
|
+
);
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
const finalize = (): void => {
|
|
402
|
+
document.removeEventListener('keydown', onKey);
|
|
403
|
+
dialog.remove();
|
|
404
|
+
if (origin) origin.style.opacity = originPrevOpacity;
|
|
405
|
+
previousFocus?.focus?.();
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
const closeFadeOnly = (): void => {
|
|
409
|
+
if (!canAnimate(backdrop)) {
|
|
410
|
+
finalize();
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
const a = backdrop.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 180, easing: 'linear', fill: 'forwards' });
|
|
414
|
+
a.onfinish = finalize;
|
|
415
|
+
a.oncancel = finalize;
|
|
416
|
+
slideToolbar({ opacity: 1, y: 0 }, { opacity: 0, y: 12 }, { duration: 180, easing: CLOSE_EASING, fill: 'forwards' });
|
|
417
|
+
};
|
|
418
|
+
|
|
419
|
+
const closeWithFlip = (originEl: HTMLElement): void => {
|
|
420
|
+
const srcRect = originEl.getBoundingClientRect();
|
|
421
|
+
if (srcRect.width === 0 || srcRect.height === 0) {
|
|
422
|
+
finalize();
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
// Suppress the spring transition on .blok-image-lightbox__image so the
|
|
426
|
+
// identity measurement and final-state commit below don't trigger a CSS
|
|
427
|
+
// tween underneath the WAAPI animation.
|
|
428
|
+
displayEl.style.transition = 'none';
|
|
429
|
+
// Capture the currently-displayed transform (may include user zoom/pan) so
|
|
430
|
+
// the reverse-FLIP starts from where the image visually is right now.
|
|
431
|
+
const current = displayEl.style.transform || 'translate(0px, 0px) scale(1)';
|
|
432
|
+
// Measure the identity rect (transform=none) so we can map dest→source.
|
|
433
|
+
displayEl.style.transform = 'none';
|
|
434
|
+
const identRect = displayEl.getBoundingClientRect();
|
|
435
|
+
displayEl.style.transform = current;
|
|
436
|
+
const to = toTransform(flipTransform(srcRect, identRect));
|
|
437
|
+
// Lock the final visible state on the inline style so there is no snap
|
|
438
|
+
// back to identity after WAAPI releases its hold.
|
|
439
|
+
displayEl.style.transform = to;
|
|
440
|
+
const anim = displayEl.animate(
|
|
441
|
+
[{ transform: current }, { transform: to }],
|
|
442
|
+
{ duration: CLOSE_DURATION, easing: CLOSE_EASING, fill: 'forwards' }
|
|
443
|
+
);
|
|
444
|
+
anim.onfinish = finalize;
|
|
445
|
+
anim.oncancel = finalize;
|
|
446
|
+
|
|
447
|
+
if (canAnimate(backdrop)) {
|
|
448
|
+
backdrop.animate([{ opacity: 1 }, { opacity: 0 }], { duration: CLOSE_DURATION, easing: 'linear', fill: 'forwards' });
|
|
449
|
+
}
|
|
450
|
+
slideToolbar({ opacity: 1, y: 0 }, { opacity: 0, y: 12 }, { duration: 200, easing: CLOSE_EASING, fill: 'forwards' });
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
const close = (): void => {
|
|
454
|
+
if (animState.closing) return;
|
|
455
|
+
animState.closing = true;
|
|
456
|
+
cancelRunning();
|
|
457
|
+
if (origin && canAnimate(displayEl)) closeWithFlip(origin);
|
|
458
|
+
else closeFadeOnly();
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
playOpen();
|
|
462
|
+
|
|
463
|
+
const onKey = (event: KeyboardEvent): void => {
|
|
464
|
+
if (event.key === 'Escape' || event.key === ' ') {
|
|
465
|
+
event.preventDefault();
|
|
466
|
+
close();
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
if (event.key === '+' || event.key === '=') {
|
|
470
|
+
event.preventDefault();
|
|
471
|
+
setZoom(zoomState.value + ZOOM_STEP);
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
if (event.key === '-') {
|
|
475
|
+
event.preventDefault();
|
|
476
|
+
setZoom(zoomState.value - ZOOM_STEP);
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
const DRAG_THRESHOLD = 3;
|
|
482
|
+
const dragState = {
|
|
483
|
+
pointerDown: false,
|
|
484
|
+
dragging: false,
|
|
485
|
+
startX: 0,
|
|
486
|
+
startY: 0,
|
|
487
|
+
originX: 0,
|
|
488
|
+
originY: 0,
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
dialog.addEventListener('pointerdown', (event: PointerEvent) => {
|
|
492
|
+
if (event.target instanceof Node && toolbar.contains(event.target)) return;
|
|
493
|
+
dragState.pointerDown = true;
|
|
494
|
+
dragState.dragging = false;
|
|
495
|
+
dragState.startX = event.clientX;
|
|
496
|
+
dragState.startY = event.clientY;
|
|
497
|
+
dragState.originX = panState.x;
|
|
498
|
+
dragState.originY = panState.y;
|
|
499
|
+
dialog.setPointerCapture(event.pointerId);
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
dialog.addEventListener('pointermove', (event: PointerEvent) => {
|
|
503
|
+
if (!dragState.pointerDown) return;
|
|
504
|
+
const dx = event.clientX - dragState.startX;
|
|
505
|
+
const dy = event.clientY - dragState.startY;
|
|
506
|
+
if (!dragState.dragging && Math.hypot(dx, dy) > DRAG_THRESHOLD) {
|
|
507
|
+
dragState.dragging = true;
|
|
508
|
+
dialog.classList.add('is-dragging');
|
|
509
|
+
}
|
|
510
|
+
if (!dragState.dragging) return;
|
|
511
|
+
const next = rubberBandPan({ x: dragState.originX + dx, y: dragState.originY + dy });
|
|
512
|
+
panState.x = next.x;
|
|
513
|
+
panState.y = next.y;
|
|
514
|
+
applyTransform();
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
const endDrag = (): void => {
|
|
518
|
+
if (!dragState.pointerDown) return;
|
|
519
|
+
dragState.pointerDown = false;
|
|
520
|
+
dialog.classList.remove('is-dragging');
|
|
521
|
+
if (dragState.dragging) {
|
|
522
|
+
dragState.dragging = false;
|
|
523
|
+
// Removing is-dragging re-enables the CSS transform transition; clamping now
|
|
524
|
+
// triggers the spring animation from the rubber-banded position back to bounds.
|
|
525
|
+
const settled = clampPan(panState);
|
|
526
|
+
panState.x = settled.x;
|
|
527
|
+
panState.y = settled.y;
|
|
528
|
+
applyTransform();
|
|
529
|
+
const swallow = (e: MouseEvent): void => {
|
|
530
|
+
if (e.target instanceof Node && toolbar.contains(e.target)) return;
|
|
531
|
+
e.stopPropagation();
|
|
532
|
+
dialog.removeEventListener('click', swallow, true);
|
|
533
|
+
};
|
|
534
|
+
dialog.addEventListener('click', swallow, true);
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
|
|
538
|
+
dialog.addEventListener('pointerup', endDrag);
|
|
539
|
+
dialog.addEventListener('pointercancel', endDrag);
|
|
540
|
+
|
|
541
|
+
const wheelIdle: { timer: ReturnType<typeof setTimeout> | null } = { timer: null };
|
|
542
|
+
dialog.addEventListener('wheel', (event: WheelEvent) => {
|
|
543
|
+
event.preventDefault();
|
|
544
|
+
const factor = Math.exp(-event.deltaY * WHEEL_ZOOM_COEF);
|
|
545
|
+
const prevZoom = zoomState.value;
|
|
546
|
+
const nextZoom = Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, prevZoom * factor));
|
|
547
|
+
const k = nextZoom / prevZoom;
|
|
548
|
+
// Anchor the zoom around the cursor: keep the image pixel under the cursor fixed on screen.
|
|
549
|
+
const rect = dialog.getBoundingClientRect();
|
|
550
|
+
const dx = event.clientX - (rect.left + rect.width / 2);
|
|
551
|
+
const dy = event.clientY - (rect.top + rect.height / 2);
|
|
552
|
+
panState.x = dx * (1 - k) + panState.x * k;
|
|
553
|
+
panState.y = dy * (1 - k) + panState.y * k;
|
|
554
|
+
// Skip the 420ms spring transition for each wheel tick — it makes continuous
|
|
555
|
+
// scroll/pinch zoom feel laggy. Button zoom keeps the bounce.
|
|
556
|
+
dialog.classList.add('is-wheel-zooming');
|
|
557
|
+
if (wheelIdle.timer !== null) clearTimeout(wheelIdle.timer);
|
|
558
|
+
wheelIdle.timer = setTimeout(() => {
|
|
559
|
+
dialog.classList.remove('is-wheel-zooming');
|
|
560
|
+
wheelIdle.timer = null;
|
|
561
|
+
}, 120);
|
|
562
|
+
setZoom(nextZoom, { preservePan: true });
|
|
563
|
+
}, { passive: false });
|
|
564
|
+
|
|
565
|
+
dialog.addEventListener('click', (event) => {
|
|
566
|
+
if (event.target instanceof Node && toolbar.contains(event.target)) return;
|
|
567
|
+
close();
|
|
568
|
+
});
|
|
569
|
+
document.addEventListener('keydown', onKey);
|
|
570
|
+
dialog.focus();
|
|
571
|
+
|
|
572
|
+
return close;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
interface LightboxToolbarOptions {
|
|
576
|
+
i18n?: I18nInstance;
|
|
577
|
+
getZoom(): number;
|
|
578
|
+
setZoom(next: number): void;
|
|
579
|
+
onDownload(): void;
|
|
580
|
+
onCopyUrl(): void;
|
|
581
|
+
onCollapse(): void;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
function renderLightboxToolbar(opts: LightboxToolbarOptions): HTMLElement {
|
|
585
|
+
const bar = document.createElement('div');
|
|
586
|
+
bar.setAttribute('data-role', 'lightbox-toolbar');
|
|
587
|
+
bar.setAttribute('role', 'toolbar');
|
|
588
|
+
bar.setAttribute('aria-label', tr(opts.i18n, 'tools.image.previewControls'));
|
|
589
|
+
bar.className = 'blok-image-lightbox__bar';
|
|
590
|
+
bar.addEventListener('click', (event) => event.stopPropagation());
|
|
591
|
+
|
|
592
|
+
const iconMinus = IconZoomOut;
|
|
593
|
+
const iconPlus = IconZoomIn;
|
|
594
|
+
const iconDownload = IconDownload;
|
|
595
|
+
const iconCopy = IconLinkCopy;
|
|
596
|
+
const iconCollapse = IconCollapseFullscreen;
|
|
597
|
+
|
|
598
|
+
appendLightboxButton(bar, {
|
|
599
|
+
action: 'zoom-out',
|
|
600
|
+
label: tr(opts.i18n, 'tools.image.zoomOut'),
|
|
601
|
+
shortcut: '−',
|
|
602
|
+
html: iconMinus,
|
|
603
|
+
onClick: () => opts.setZoom(opts.getZoom() - ZOOM_STEP),
|
|
604
|
+
});
|
|
605
|
+
appendLightboxButton(bar, {
|
|
606
|
+
action: 'zoom-reset',
|
|
607
|
+
label: tr(opts.i18n, 'tools.image.resetZoom'),
|
|
608
|
+
html: '100%',
|
|
609
|
+
onClick: () => opts.setZoom(1),
|
|
610
|
+
extraClass: 'blok-image-lightbox__zoom-label',
|
|
611
|
+
});
|
|
612
|
+
appendLightboxButton(bar, {
|
|
613
|
+
action: 'zoom-in',
|
|
614
|
+
label: tr(opts.i18n, 'tools.image.zoomIn'),
|
|
615
|
+
shortcut: '+',
|
|
616
|
+
html: iconPlus,
|
|
617
|
+
onClick: () => opts.setZoom(opts.getZoom() + ZOOM_STEP),
|
|
618
|
+
});
|
|
619
|
+
|
|
620
|
+
appendLightboxDivider(bar);
|
|
621
|
+
|
|
622
|
+
appendLightboxButton(bar, {
|
|
623
|
+
action: 'lightbox-download',
|
|
624
|
+
label: tr(opts.i18n, 'tools.image.download'),
|
|
625
|
+
html: iconDownload,
|
|
626
|
+
onClick: opts.onDownload,
|
|
627
|
+
});
|
|
628
|
+
appendLightboxButton(bar, {
|
|
629
|
+
action: 'lightbox-copy-url',
|
|
630
|
+
label: tr(opts.i18n, 'tools.image.copyUrl'),
|
|
631
|
+
html: iconCopy,
|
|
632
|
+
onClick: opts.onCopyUrl,
|
|
633
|
+
});
|
|
634
|
+
appendLightboxButton(bar, {
|
|
635
|
+
action: 'lightbox-collapse',
|
|
636
|
+
label: tr(opts.i18n, 'tools.image.exitFullscreen'),
|
|
637
|
+
shortcut: 'Esc',
|
|
638
|
+
html: iconCollapse,
|
|
639
|
+
onClick: opts.onCollapse,
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
return bar;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
function appendLightboxDivider(parent: HTMLElement): void {
|
|
646
|
+
const d = document.createElement('div');
|
|
647
|
+
d.className = 'blok-image-lightbox__divider';
|
|
648
|
+
d.setAttribute('aria-hidden', 'true');
|
|
649
|
+
parent.appendChild(d);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
interface LightboxButtonSpec {
|
|
653
|
+
action: string;
|
|
654
|
+
label: string;
|
|
655
|
+
shortcut?: string;
|
|
656
|
+
html: string;
|
|
657
|
+
onClick(): void;
|
|
658
|
+
extraClass?: string;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
function buildLightboxTooltipContent(label: string, shortcut?: string): HTMLElement | string {
|
|
662
|
+
if (shortcut === undefined) return label;
|
|
663
|
+
const root = document.createElement('span');
|
|
664
|
+
root.className = 'blok-image-lightbox-tooltip';
|
|
665
|
+
root.append(document.createTextNode(label));
|
|
666
|
+
const kbd = document.createElement('span');
|
|
667
|
+
kbd.className = 'blok-image-lightbox-tooltip__shortcut';
|
|
668
|
+
kbd.textContent = shortcut;
|
|
669
|
+
root.appendChild(kbd);
|
|
670
|
+
return root;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
function appendLightboxButton(parent: HTMLElement, spec: LightboxButtonSpec): void {
|
|
674
|
+
const btn = document.createElement('button');
|
|
675
|
+
btn.type = 'button';
|
|
676
|
+
btn.setAttribute('data-action', spec.action);
|
|
677
|
+
btn.setAttribute('aria-label', spec.label);
|
|
678
|
+
btn.className = spec.extraClass
|
|
679
|
+
? `blok-image-lightbox__btn ${spec.extraClass}`
|
|
680
|
+
: 'blok-image-lightbox__btn';
|
|
681
|
+
btn.innerHTML = spec.html;
|
|
682
|
+
tooltipOnHover(btn, buildLightboxTooltipContent(spec.label, spec.shortcut), { placement: 'top' });
|
|
683
|
+
btn.addEventListener('click', (event) => {
|
|
684
|
+
event.stopPropagation();
|
|
685
|
+
tooltipHide();
|
|
686
|
+
spec.onClick();
|
|
687
|
+
});
|
|
688
|
+
parent.appendChild(btn);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
export interface OverlayState {
|
|
692
|
+
alignment: ImageAlign;
|
|
693
|
+
captionVisible: boolean;
|
|
694
|
+
size: ImageSize;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* Below this figure width the overlay collapses to just the "..." button.
|
|
699
|
+
* The expanded toolbar is ~240px; collapse only when the image is too narrow
|
|
700
|
+
* to comfortably fit the full row (roughly sm-size territory).
|
|
701
|
+
*/
|
|
702
|
+
export const OVERLAY_COMPACT_THRESHOLD = 230;
|
|
703
|
+
|
|
704
|
+
export function updateOverlayCompact(
|
|
705
|
+
overlay: HTMLElement,
|
|
706
|
+
width: number,
|
|
707
|
+
threshold: number = OVERLAY_COMPACT_THRESHOLD
|
|
708
|
+
): void {
|
|
709
|
+
if (width > 0 && width < threshold) {
|
|
710
|
+
overlay.setAttribute('data-compact', 'true');
|
|
711
|
+
} else {
|
|
712
|
+
overlay.removeAttribute('data-compact');
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
export interface OverlayOptions {
|
|
717
|
+
state: OverlayState;
|
|
718
|
+
onAlign(next: ImageAlign): void;
|
|
719
|
+
onSize(next: ImageSize): void;
|
|
720
|
+
onReplace(): void;
|
|
721
|
+
onDelete(): void;
|
|
722
|
+
onDownload(): void;
|
|
723
|
+
onFullscreen(): void;
|
|
724
|
+
onCopyUrl(): void;
|
|
725
|
+
onToggleCaption(): void;
|
|
726
|
+
onCrop(): void;
|
|
727
|
+
i18n?: I18nInstance;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/**
|
|
731
|
+
* Data-action naming stays stable for test & user-code targeting.
|
|
732
|
+
* Additional visual-only elements carry their own class names.
|
|
733
|
+
*/
|
|
734
|
+
export function renderOverlay(opts: OverlayOptions): HTMLElement {
|
|
735
|
+
const root = document.createElement('div');
|
|
736
|
+
root.setAttribute('data-role', 'image-overlay');
|
|
737
|
+
root.className = 'blok-image-toolbar';
|
|
738
|
+
|
|
739
|
+
appendAlignCtrl(root, opts);
|
|
740
|
+
|
|
741
|
+
appendDivider(root);
|
|
742
|
+
|
|
743
|
+
appendSimpleButton(root, {
|
|
744
|
+
action: 'caption-toggle',
|
|
745
|
+
label: tr(opts.i18n, 'tools.image.toggleCaption'),
|
|
746
|
+
pressed: opts.state.captionVisible,
|
|
747
|
+
icon: IconCaption,
|
|
748
|
+
onClick: opts.onToggleCaption,
|
|
749
|
+
});
|
|
750
|
+
appendSimpleButton(root, {
|
|
751
|
+
action: 'replace',
|
|
752
|
+
label: tr(opts.i18n, 'tools.image.replace'),
|
|
753
|
+
icon: IconReplaceImage,
|
|
754
|
+
onClick: opts.onReplace,
|
|
755
|
+
});
|
|
756
|
+
appendSimpleButton(root, {
|
|
757
|
+
action: 'crop',
|
|
758
|
+
label: tr(opts.i18n, 'tools.image.crop'),
|
|
759
|
+
icon: IconCrop,
|
|
760
|
+
onClick: opts.onCrop,
|
|
761
|
+
});
|
|
762
|
+
appendSimpleButton(root, {
|
|
763
|
+
action: 'fullscreen',
|
|
764
|
+
label: tr(opts.i18n, 'tools.image.viewFullscreen'),
|
|
765
|
+
icon: IconExpandFullscreen,
|
|
766
|
+
onClick: opts.onFullscreen,
|
|
767
|
+
});
|
|
768
|
+
appendSimpleButton(root, {
|
|
769
|
+
action: 'download',
|
|
770
|
+
label: tr(opts.i18n, 'tools.image.downloadOriginal'),
|
|
771
|
+
icon: IconDownload,
|
|
772
|
+
onClick: opts.onDownload,
|
|
773
|
+
});
|
|
774
|
+
|
|
775
|
+
appendDivider(root);
|
|
776
|
+
|
|
777
|
+
const moreLabel = tr(opts.i18n, 'tools.image.moreOptions');
|
|
778
|
+
const more = document.createElement('button');
|
|
779
|
+
more.type = 'button';
|
|
780
|
+
more.setAttribute('data-action', 'more');
|
|
781
|
+
more.setAttribute('aria-label', moreLabel);
|
|
782
|
+
more.setAttribute('aria-haspopup', 'menu');
|
|
783
|
+
more.innerHTML = IconMoreHorizontal;
|
|
784
|
+
tooltipOnHover(more, moreLabel);
|
|
785
|
+
root.appendChild(more);
|
|
786
|
+
|
|
787
|
+
// Delete is reachable from the popover; expose an invisible legacy button for consumers/tests.
|
|
788
|
+
const deleteAlias = document.createElement('button');
|
|
789
|
+
deleteAlias.type = 'button';
|
|
790
|
+
deleteAlias.setAttribute('data-action', 'delete');
|
|
791
|
+
deleteAlias.setAttribute('aria-label', tr(opts.i18n, 'blockSettings.delete'));
|
|
792
|
+
deleteAlias.className = 'blok-image-toolbar__alias is-danger';
|
|
793
|
+
deleteAlias.style.display = 'none';
|
|
794
|
+
deleteAlias.addEventListener('click', (event) => {
|
|
795
|
+
event.stopPropagation();
|
|
796
|
+
opts.onDelete();
|
|
797
|
+
});
|
|
798
|
+
root.appendChild(deleteAlias);
|
|
799
|
+
|
|
800
|
+
return root;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
function appendAlignCtrl(root: HTMLElement, opts: OverlayOptions): void {
|
|
804
|
+
const wrapper = document.createElement('div');
|
|
805
|
+
wrapper.className = 'blok-image-toolbar__align';
|
|
806
|
+
wrapper.style.position = 'relative';
|
|
807
|
+
|
|
808
|
+
const current = opts.state.alignment;
|
|
809
|
+
const alignmentText = tr(opts.i18n, 'tools.image.alignment');
|
|
810
|
+
|
|
811
|
+
const trigger = document.createElement('button');
|
|
812
|
+
trigger.type = 'button';
|
|
813
|
+
trigger.setAttribute('data-action', 'align-trigger');
|
|
814
|
+
trigger.setAttribute('data-current', current);
|
|
815
|
+
trigger.setAttribute('aria-label', alignmentText);
|
|
816
|
+
trigger.setAttribute('aria-haspopup', 'true');
|
|
817
|
+
trigger.setAttribute('aria-expanded', 'false');
|
|
818
|
+
trigger.innerHTML = ALIGN_ICON[current];
|
|
819
|
+
tooltipOnHover(trigger, alignmentText);
|
|
820
|
+
wrapper.appendChild(trigger);
|
|
821
|
+
|
|
822
|
+
const popover = document.createElement('div');
|
|
823
|
+
popover.setAttribute('data-role', 'align-popover');
|
|
824
|
+
popover.setAttribute('role', 'group');
|
|
825
|
+
popover.setAttribute('aria-label', alignmentText);
|
|
826
|
+
popover.className = 'blok-image-toolbar__align-popover';
|
|
827
|
+
popover.hidden = true;
|
|
828
|
+
|
|
829
|
+
for (const value of ['left', 'center', 'right'] as ImageAlign[]) {
|
|
830
|
+
const label = alignLabel(opts.i18n, value);
|
|
831
|
+
const option = document.createElement('button');
|
|
832
|
+
option.type = 'button';
|
|
833
|
+
option.setAttribute('data-action', `align-${value}`);
|
|
834
|
+
option.setAttribute('aria-label', label);
|
|
835
|
+
option.setAttribute('aria-pressed', current === value ? 'true' : 'false');
|
|
836
|
+
option.innerHTML = ALIGN_ICON[value];
|
|
837
|
+
tooltipOnHover(option, label);
|
|
838
|
+
option.addEventListener('click', (event) => {
|
|
839
|
+
event.stopPropagation();
|
|
840
|
+
tooltipHide();
|
|
841
|
+
closePopover();
|
|
842
|
+
opts.onAlign(value);
|
|
843
|
+
});
|
|
844
|
+
popover.appendChild(option);
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
wrapper.appendChild(popover);
|
|
848
|
+
root.appendChild(wrapper);
|
|
849
|
+
|
|
850
|
+
const onKeyDown = (event: KeyboardEvent): void => {
|
|
851
|
+
if (event.key === 'Escape' && !popover.hidden) {
|
|
852
|
+
event.stopPropagation();
|
|
853
|
+
closePopover();
|
|
854
|
+
}
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
const onOutside = (event: MouseEvent): void => {
|
|
858
|
+
if (popover.hidden) return;
|
|
859
|
+
const target = event.target as Node | null;
|
|
860
|
+
if (target && wrapper.contains(target)) return;
|
|
861
|
+
closePopover();
|
|
862
|
+
};
|
|
863
|
+
|
|
864
|
+
const imageRoot = (): HTMLElement | null => wrapper.closest<HTMLElement>('[data-blok-tool="image"]');
|
|
865
|
+
|
|
866
|
+
const openPopover = (): void => {
|
|
867
|
+
if (!popover.hidden) return;
|
|
868
|
+
popover.hidden = false;
|
|
869
|
+
popover.setAttribute('data-blok-popover-opened', 'true');
|
|
870
|
+
imageRoot()?.setAttribute('data-align-open', 'true');
|
|
871
|
+
trigger.setAttribute('aria-expanded', 'true');
|
|
872
|
+
tooltipHide();
|
|
873
|
+
document.addEventListener('keydown', onKeyDown);
|
|
874
|
+
document.addEventListener('mousedown', onOutside);
|
|
875
|
+
};
|
|
876
|
+
|
|
877
|
+
function closePopover(): void {
|
|
878
|
+
if (popover.hidden) return;
|
|
879
|
+
popover.hidden = true;
|
|
880
|
+
popover.removeAttribute('data-blok-popover-opened');
|
|
881
|
+
imageRoot()?.removeAttribute('data-align-open');
|
|
882
|
+
trigger.setAttribute('aria-expanded', 'false');
|
|
883
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
884
|
+
document.removeEventListener('mousedown', onOutside);
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
trigger.addEventListener('click', (event) => {
|
|
888
|
+
event.stopPropagation();
|
|
889
|
+
if (popover.hidden) openPopover();
|
|
890
|
+
else closePopover();
|
|
891
|
+
});
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
function appendDivider(parent: HTMLElement): void {
|
|
895
|
+
const d = document.createElement('div');
|
|
896
|
+
d.className = 'blok-image-toolbar__divider';
|
|
897
|
+
d.setAttribute('aria-hidden', 'true');
|
|
898
|
+
parent.appendChild(d);
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
interface SimpleButtonSpec {
|
|
902
|
+
action: string;
|
|
903
|
+
label: string;
|
|
904
|
+
icon: string;
|
|
905
|
+
onClick(): void;
|
|
906
|
+
pressed?: boolean;
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
function appendSimpleButton(parent: HTMLElement, spec: SimpleButtonSpec): void {
|
|
910
|
+
const btn = document.createElement('button');
|
|
911
|
+
btn.type = 'button';
|
|
912
|
+
btn.setAttribute('aria-label', spec.label);
|
|
913
|
+
btn.setAttribute('data-action', spec.action);
|
|
914
|
+
if (spec.pressed !== undefined) {
|
|
915
|
+
btn.setAttribute('aria-pressed', spec.pressed ? 'true' : 'false');
|
|
916
|
+
}
|
|
917
|
+
btn.innerHTML = spec.icon;
|
|
918
|
+
tooltipOnHover(btn, spec.label);
|
|
919
|
+
btn.addEventListener('click', (event) => {
|
|
920
|
+
event.stopPropagation();
|
|
921
|
+
tooltipHide();
|
|
922
|
+
spec.onClick();
|
|
923
|
+
});
|
|
924
|
+
parent.appendChild(btn);
|
|
925
|
+
}
|
|
926
|
+
|