@jackuait/blok 0.13.0 → 0.13.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/codemod/migrate-editorjs-to-blok.js +7 -2
- package/codemod/test.js +22 -2
- package/dist/blok.cjs +1 -1
- package/dist/blok.iife.js +29 -29
- package/dist/blok.mjs +2 -2
- package/dist/chunks/{blok-Cy7bijNZ.mjs → blok-BF9i6G_n.mjs} +2165 -2181
- package/dist/chunks/{blok-DsB9tzWP.cjs → blok-C7mseAhu.cjs} +13 -13
- package/dist/chunks/constants-BZ9pK9tm.cjs +457 -0
- package/dist/chunks/{constants-CnxI96Oy.mjs → constants-jfK6xPl6.mjs} +451 -246
- package/dist/chunks/{i18next-loader-BObGIOaH.cjs → i18next-loader-DC1uN-wc.cjs} +1 -1
- package/dist/chunks/{i18next-loader-BrDbxldT.mjs → i18next-loader-GIrBCFrC.mjs} +1 -1
- package/dist/chunks/{lightweight-i18n-Bw9zJMpT.cjs → lightweight-i18n-Bbl1cNYK.cjs} +1 -1
- package/dist/chunks/{lightweight-i18n-CFXiOjGR.mjs → lightweight-i18n-DF9Pupws.mjs} +2 -0
- package/dist/chunks/{messages-DLaesq4h2.cjs → messages-1qYt6EhZ2.cjs} +1 -1
- package/dist/chunks/{messages-BzCMWDCa.cjs → messages-2fxvN3Nb.cjs} +1 -1
- package/dist/chunks/{messages-CloQj-t82.mjs → messages-5AxgjKgf2.mjs} +2 -0
- package/dist/{messages-ByaREXXn.mjs → chunks/messages-AgmrT2Id.mjs} +2 -0
- package/dist/{messages-DV7zSwcU2.mjs → chunks/messages-AtUsRyWK2.mjs} +2 -0
- package/dist/chunks/{messages-23LJg97F.cjs → messages-B1Vs2HmR.cjs} +1 -1
- package/dist/{messages-Bgub7yIr.mjs → chunks/messages-B1k4DgVe.mjs} +4 -2
- package/dist/chunks/{messages-CyNE9mfW.cjs → messages-B1xgsCNQ.cjs} +1 -1
- package/dist/chunks/{messages-CK6NQlei2.mjs → messages-B2zrJyAc2.mjs} +2 -0
- package/dist/chunks/{messages-D9KllT5S.mjs → messages-B5CFhyI8.mjs} +2 -0
- package/dist/chunks/{messages-BFPJInnK.mjs → messages-B6You-RA.mjs} +7 -5
- package/dist/{messages-B8Ps9X7Q.mjs → chunks/messages-B6t1xShv.mjs} +2 -0
- package/dist/chunks/{messages-B5P29HKO2.cjs → messages-B780gS332.cjs} +1 -1
- package/dist/chunks/{messages-BBD0GeAN.mjs → messages-B7KbtBAE.mjs} +5 -3
- package/dist/chunks/{messages-CG1tpK3F.cjs → messages-B7T5Notn.cjs} +1 -1
- package/dist/{messages-DemkV5oa2.mjs → chunks/messages-BA2sVGrR2.mjs} +2 -0
- package/dist/chunks/{messages-B9q8LdZT.cjs → messages-BE9aZQ1Q.cjs} +1 -1
- package/dist/chunks/{messages-CPTia1Ip.cjs → messages-BIQpTYfm.cjs} +1 -1
- package/dist/chunks/{messages-BT-EUB5N.cjs → messages-BIRvUJ0t.cjs} +1 -1
- package/dist/chunks/{messages-BEkcSJKV.cjs → messages-BIodfkjv.cjs} +1 -1
- package/dist/chunks/{messages-_ysQiWQr.cjs → messages-BL-zBcuM.cjs} +1 -1
- package/dist/chunks/{messages-CSZTOxAh.mjs → messages-BNxTGhHu.mjs} +2 -0
- package/dist/chunks/{messages-CzG5xDaO.mjs → messages-BP77P9ER.mjs} +2 -0
- package/dist/chunks/{messages-BEM-ySlb2.cjs → messages-BQr0zpmu2.cjs} +1 -1
- package/dist/chunks/{messages-D4P5aWos2.cjs → messages-BTHi6rVW2.cjs} +1 -1
- package/dist/chunks/{messages-KTUVKXJd.mjs → messages-BVZONUH9.mjs} +3 -1
- package/dist/{messages-BvHpSkAX2.mjs → chunks/messages-BVarbXYD2.mjs} +2 -0
- package/dist/{messages-DiOm0iFp.mjs → chunks/messages-BWGqOZ9J.mjs} +2 -0
- package/dist/{messages-DIBytW9u.mjs → chunks/messages-BZ4d5yNH.mjs} +2 -0
- package/dist/chunks/{messages-WUvriTcu2.cjs → messages-BZOAdcmO2.cjs} +1 -1
- package/dist/chunks/{messages-CN9LNhoS2.mjs → messages-B_U10evN2.mjs} +4 -2
- package/dist/chunks/{messages-DPrZ8Z6d2.cjs → messages-BbsGeVs_2.cjs} +1 -1
- package/dist/chunks/{messages-3_7JWqT0.cjs → messages-Bc1NYJVS.cjs} +1 -1
- package/dist/chunks/{messages-D3EU-LRS.cjs → messages-BdORNG8X.cjs} +1 -1
- package/dist/chunks/{messages-BIOk-aTQ.cjs → messages-Bg2kheTv.cjs} +1 -1
- package/dist/chunks/{messages-DsAkJt8M.cjs → messages-Bj1eQtQw.cjs} +1 -1
- package/dist/chunks/{messages-CD6xvMw1.cjs → messages-BkJJCHNK.cjs} +1 -1
- package/dist/chunks/{messages-BIN5-zeZ.cjs → messages-BkdGQfIX.cjs} +1 -1
- package/dist/chunks/{messages-pKpKbxTh2.cjs → messages-BkgsB-cj2.cjs} +1 -1
- package/dist/{messages-DXCKUB0_.mjs → chunks/messages-BmdkDNYv.mjs} +4 -2
- package/dist/{messages-B66o_tQ42.mjs → chunks/messages-BmiN0JGP2.mjs} +2 -0
- package/dist/chunks/{messages-BG17trOF.cjs → messages-Bn0vGFEP.cjs} +1 -1
- package/dist/{messages-BpJopIVL2.mjs → chunks/messages-BoCUgrkI.mjs} +2 -0
- package/dist/chunks/{messages-B7dSyfsy.cjs → messages-BoIUXwWe.cjs} +1 -1
- package/dist/chunks/{messages-7oeFTHO4.cjs → messages-BpDEh8rW.cjs} +1 -1
- package/dist/{messages-DVSJBYhD.mjs → chunks/messages-BuYnNUtU2.mjs} +3 -1
- package/dist/{messages-D8SUKrMB.mjs → chunks/messages-BvuEffoe.mjs} +4 -2
- package/dist/{messages-DvIwCnTR.mjs → chunks/messages-BvupGuDw2.mjs} +2 -0
- package/dist/chunks/{messages-BZr0xR7X.cjs → messages-BwknPZJ8.cjs} +1 -1
- package/dist/{messages-5s1gGSm4.mjs → chunks/messages-BxKobpJ22.mjs} +2 -0
- package/dist/chunks/{messages-D_OfKMtO2.cjs → messages-ByicRCge2.cjs} +1 -1
- package/dist/{messages-DNDonN-x.mjs → chunks/messages-C03LZxma.mjs} +2 -0
- package/dist/{messages-CqrBLC_P.mjs → chunks/messages-C24IC_eR.mjs} +2 -0
- package/dist/chunks/{messages-CucO-8OV.cjs → messages-C2oBmyTn.cjs} +1 -1
- package/dist/chunks/{messages-CXZtG3Xs2.mjs → messages-C4bHKGnB2.mjs} +4 -2
- package/dist/chunks/{messages-DTceHV5d2.mjs → messages-C4sIqArW2.mjs} +2 -0
- package/dist/chunks/{messages-Ds1jRRkJ2.cjs → messages-C9wBMmxr2.cjs} +1 -1
- package/dist/chunks/{messages-DdMhxYfW.cjs → messages-CDK5-8vW.cjs} +1 -1
- package/dist/chunks/{messages-CP3f0qkN.cjs → messages-CKHbPcfh.cjs} +1 -1
- package/dist/{messages-Dt4Cw2PN2.mjs → chunks/messages-CMRjQYxi2.mjs} +3 -1
- package/dist/chunks/{messages-BJVhJhdz.cjs → messages-CNFfwTfw.cjs} +1 -1
- package/dist/chunks/{messages-C99hDoeM2.cjs → messages-CNiuofck2.cjs} +1 -1
- package/dist/chunks/{messages-CjgjbJ1H2.mjs → messages-COMdnGQV2.mjs} +4 -2
- package/dist/{messages-BfsTqQCr2.mjs → chunks/messages-CQg2_vmm.mjs} +2 -0
- package/dist/{messages-_OjohrXs.mjs → chunks/messages-CTWXEx_o.mjs} +6 -4
- package/dist/{messages-BJBdgowf.mjs → chunks/messages-CWTFEPbA2.mjs} +2 -0
- package/dist/chunks/{messages-l73qDsKl.cjs → messages-CWszAGkF.cjs} +1 -1
- package/dist/chunks/{messages-BGcdiqDM2.cjs → messages-CWzQNagc2.cjs} +1 -1
- package/dist/{messages-CaC0BVP72.mjs → chunks/messages-CXxz5HYQ.mjs} +2 -0
- package/dist/chunks/{messages-BvJTJwoq2.cjs → messages-CYf1gv722.cjs} +1 -1
- package/dist/{messages-DN_N2jK1.mjs → chunks/messages-CcboYTP8.mjs} +2 -0
- package/dist/{messages-DdGG7T30.mjs → chunks/messages-CdWXgq_r.mjs} +2 -0
- package/dist/chunks/{messages-pZC8rTng.cjs → messages-CfcCwbQo.cjs} +1 -1
- package/dist/chunks/{messages-DFJTssY7.cjs → messages-CkvqOnAR.cjs} +1 -1
- package/dist/chunks/{messages-BzbW5tIB2.cjs → messages-Cnrug7nz2.cjs} +1 -1
- package/dist/chunks/{messages-BUp0i-9G.cjs → messages-Cr51zCHy.cjs} +1 -1
- package/dist/chunks/{messages-Cz63p8bt2.cjs → messages-CsLvvl2F2.cjs} +1 -1
- package/dist/chunks/{messages-DrIzpqee.cjs → messages-CuO-Rx4g.cjs} +1 -1
- package/dist/chunks/messages-Cv4I3k1W2.cjs +1 -0
- package/dist/chunks/{messages-BScbCwsN.cjs → messages-CwHRv6g8.cjs} +1 -1
- package/dist/chunks/{messages-EUS1-T0-.mjs → messages-CyCl8la6.mjs} +2 -0
- package/dist/chunks/{messages-DOUT2sT62.cjs → messages-CzXnHfGb2.cjs} +1 -1
- package/dist/chunks/{messages-ndFXaPuJ.cjs → messages-D2QxLx1a.cjs} +1 -1
- package/dist/chunks/{messages-CDLJmxWA.cjs → messages-D4LUPpX_.cjs} +1 -1
- package/dist/{messages-DpQjOxzP.mjs → chunks/messages-D7YPlNAK.mjs} +2 -0
- package/dist/{messages-S0krg7sB.mjs → chunks/messages-DGHTTk1S2.mjs} +3 -1
- package/dist/chunks/{messages-wZhc9mFF2.mjs → messages-DHdoaaFq2.mjs} +6 -4
- package/dist/chunks/{messages-C0BMFvdy.mjs → messages-DI9Ifrgt.mjs} +2 -0
- package/dist/chunks/messages-DJFL-bxd2.cjs +1 -0
- package/dist/chunks/messages-DLEeNpMi2.cjs +1 -0
- package/dist/chunks/{messages-BpI1875E.mjs → messages-DNqFlfOd.mjs} +3 -1
- package/dist/chunks/{messages-mtoLIsYL.cjs → messages-DTNU_cq0.cjs} +1 -1
- package/dist/chunks/{messages-BxXGCWit.cjs → messages-DVKsYqpJ.cjs} +1 -1
- package/dist/chunks/{messages-BJNTs8dY.cjs → messages-DXlfz-nC.cjs} +1 -1
- package/dist/chunks/{messages-DKdgRSvy.cjs → messages-DbA_Zja3.cjs} +1 -1
- package/dist/chunks/{messages-CZ2th1UV2.cjs → messages-Dc2TTEx_2.cjs} +1 -1
- package/dist/chunks/{messages-Bh-GPq0T2.mjs → messages-Dd4nzvLj2.mjs} +2 -0
- package/dist/chunks/{messages-BISkpo37.cjs → messages-DeDMMmRC.cjs} +1 -1
- package/dist/chunks/{messages-C0Fr1grN.mjs → messages-DefZ3ihx.mjs} +2 -0
- package/dist/{messages-DC1fWdjB2.mjs → chunks/messages-DhZwMl9x2.mjs} +2 -0
- package/dist/chunks/{messages-BYT844Pj.mjs → messages-DiGsu5XN.mjs} +6 -4
- package/dist/chunks/{messages-xeJ5eVFo.cjs → messages-DlQNXqzr.cjs} +1 -1
- package/dist/{messages-CZYocA-2.mjs → chunks/messages-DlcI-0Sy.mjs} +2 -0
- package/dist/{messages-ZJE9VNzB2.mjs → chunks/messages-DmErSGPk2.mjs} +2 -0
- package/dist/chunks/{messages-h9Zi_9Gr.cjs → messages-DqMqZLcn.cjs} +1 -1
- package/dist/chunks/{messages-D_w-pjpG2.cjs → messages-DqqDuEE22.cjs} +1 -1
- package/dist/chunks/{messages-DW0CNDiw.mjs → messages-DsyO86r3.mjs} +2 -0
- package/dist/chunks/{messages-DgdjQ2JT.mjs → messages-DzY53I67.mjs} +2 -0
- package/dist/chunks/{messages-PeAC6FL2.cjs → messages-DzppdmWe.cjs} +1 -1
- package/dist/chunks/{messages-CkCgWAJW2.mjs → messages-GHsufIGi2.mjs} +4 -2
- package/dist/chunks/{messages-Diinl7nA2.cjs → messages-HzLF-BQL2.cjs} +1 -1
- package/dist/chunks/{messages-CoWmNHyu2.cjs → messages-Jb9n97oP2.cjs} +1 -1
- package/dist/chunks/{messages-2sqZ51ZE2.cjs → messages-K_vSdSoF2.cjs} +1 -1
- package/dist/{messages-D-K9TXl02.mjs → chunks/messages-LTkIIrSe2.mjs} +6 -4
- package/dist/chunks/{messages-zqNVwsuv.mjs → messages-MPF8o3EP.mjs} +2 -0
- package/dist/chunks/{messages-5HoTbob5.cjs → messages-Nh7wrRdm.cjs} +1 -1
- package/dist/chunks/{messages-B6ALGrrK2.mjs → messages-OSIAf0Wk2.mjs} +5 -3
- package/dist/chunks/{messages-P9sjeERx.mjs → messages-OYoN_rp1.mjs} +4 -2
- package/dist/chunks/messages-QHS-Ydg_.cjs +1 -0
- package/dist/chunks/{messages-DLphNjiM2.cjs → messages-SpiG5vT-2.cjs} +1 -1
- package/dist/chunks/{messages-RumMLtL32.mjs → messages-Uc3Uc2862.mjs} +3 -1
- package/dist/chunks/{messages-BP9zsQtc.mjs → messages-V8K7-1l2.mjs} +2 -0
- package/dist/chunks/{messages-BR1Rd5-u2.cjs → messages-XFaJzdhP2.cjs} +1 -1
- package/dist/{messages-B3GO2TNx2.mjs → chunks/messages-Z9mDYT3w.mjs} +2 -0
- package/dist/chunks/{messages-CEroCDzi.mjs → messages-ZHNvKiIX.mjs} +2 -0
- package/dist/chunks/{messages-C2irZQlh.mjs → messages-bSVgJ1cu.mjs} +3 -1
- package/dist/chunks/{messages-DlNTalkx2.mjs → messages-bjSJwsXK2.mjs} +2 -0
- package/dist/{messages-D_jk0Apm.mjs → chunks/messages-eyGOcbhV.mjs} +2 -0
- package/dist/chunks/{messages-DlvmJJK6.mjs → messages-fSeXd6-z.mjs} +3 -1
- package/dist/{messages-BYooY4mP2.mjs → chunks/messages-l5xHQb_m.mjs} +7 -5
- package/dist/{messages-D_pfhYg5.mjs → chunks/messages-rEsI_fAk.mjs} +5 -3
- package/dist/chunks/{messages-MxqZVywa2.mjs → messages-sqdfYuVj2.mjs} +2 -0
- package/dist/chunks/{messages-C-D80jVE.mjs → messages-vQ5kblO8.mjs} +2 -0
- package/dist/chunks/{messages-BwNXKlvA2.cjs → messages-y03BGg692.cjs} +1 -1
- package/dist/chunks/{tools-1xd7TPfu.mjs → tools-CrrBwp7I.mjs} +1816 -1637
- package/dist/chunks/tools-Duq42I9m.cjs +116 -0
- package/dist/full.cjs +1 -1
- package/dist/full.mjs +3 -3
- package/dist/locales.mjs +69 -67
- package/dist/{chunks/messages-CkdgHogc2.mjs → messages-1ufJbdRv2.mjs} +3 -1
- package/dist/{messages-cBA8dKoi.mjs → messages-3j4yi-DF.mjs} +5 -3
- package/dist/{chunks/messages-BGCpxpgG.mjs → messages-5USazVPA2.mjs} +2 -0
- package/dist/{chunks/messages-Cf9wwoye2.mjs → messages-7fwJIrld2.mjs} +2 -0
- package/dist/{messages-hVVP_eZE.mjs → messages-AycxTjmw.mjs} +2 -0
- package/dist/{messages-Bg5tERmS.mjs → messages-B3PWaMcw.mjs} +6 -4
- package/dist/{chunks/messages-Diozu4lJ.mjs → messages-B3oFjWq3.mjs} +4 -2
- package/dist/{chunks/messages-ByJ-nSXK.mjs → messages-B8Tq9Txy.mjs} +2 -0
- package/dist/{messages-CDJP_fbb2.mjs → messages-BDwU9rYR2.mjs} +4 -2
- package/dist/{messages-6ukS6d5Z.mjs → messages-BGzpwNrz.mjs} +2 -0
- package/dist/{chunks/messages-CHXG6lEA2.mjs → messages-BKCuCTFM.mjs} +2 -0
- package/dist/{chunks/messages-aGEPK1g12.mjs → messages-BSHFypGE2.mjs} +2 -0
- package/dist/{chunks/messages-OMGVF8X52.mjs → messages-BcD7xtJA.mjs} +3 -1
- package/dist/{messages-DA2x_UvX2.mjs → messages-Bj03XD-02.mjs} +6 -4
- package/dist/{chunks/messages-C3NrnRWC.mjs → messages-BkTBwYet.mjs} +2 -0
- package/dist/{messages-ZjCwxd3_2.mjs → messages-BmWP4vpV2.mjs} +2 -0
- package/dist/{chunks/messages-DDtwOfXf.mjs → messages-Bt4TLGth.mjs} +2 -0
- package/dist/{chunks/messages-Bly_2YUk.mjs → messages-BtDz-sw92.mjs} +2 -0
- package/dist/{messages-CTcNzaJJ2.mjs → messages-C2TRJroV2.mjs} +2 -0
- package/dist/{messages-CDRUbL17.mjs → messages-C31VIrlL.mjs} +2 -0
- package/dist/{messages-Yg8Y6PlG.mjs → messages-C8RMjnBe.mjs} +2 -0
- package/dist/{chunks/messages-BciKgfP4.mjs → messages-C9GFRcVj.mjs} +6 -4
- package/dist/{chunks/messages-0cSP25RB.mjs → messages-CAGQtm7T.mjs} +5 -3
- package/dist/{messages-_6tu8F-N.mjs → messages-CITYhXUz.mjs} +2 -0
- package/dist/{messages-BbaS2xgR2.mjs → messages-CIjSE2_O2.mjs} +5 -3
- package/dist/{messages-BQ7jJt9m.mjs → messages-CRR1VRO6.mjs} +2 -0
- package/dist/{chunks/messages-Da-9fv3U.mjs → messages-CTzO11jz.mjs} +2 -0
- package/dist/{messages-DaSzBuLF2.mjs → messages-CX8egsiA2.mjs} +2 -0
- package/dist/{messages-DccIq7002.mjs → messages-C_gdsU952.mjs} +4 -2
- package/dist/{messages-CXXQC9Vz.mjs → messages-C_mN4lx0.mjs} +3 -1
- package/dist/{chunks/messages-BI7NfKFe.mjs → messages-CacRpQpm.mjs} +4 -2
- package/dist/{chunks/messages-BCRpttn3.mjs → messages-Cdgz3urh.mjs} +2 -0
- package/dist/{messages-BaC-sNb4.mjs → messages-CgVEHCQ-.mjs} +3 -1
- package/dist/{chunks/messages-D_24p8E62.mjs → messages-CgaGkQi32.mjs} +2 -0
- package/dist/{chunks/messages-D3AyiRbO.mjs → messages-CmN2OfuB.mjs} +2 -0
- package/dist/{chunks/messages-CSierpa_2.mjs → messages-CntTlSE22.mjs} +2 -0
- package/dist/{messages-BK1sXq7X.mjs → messages-Cp0fjsey.mjs} +3 -1
- package/dist/{messages-DHOj5syv2.mjs → messages-Cx7sqvx02.mjs} +2 -0
- package/dist/{messages-CQUbgCd62.mjs → messages-CxX23Jsk2.mjs} +4 -2
- package/dist/{chunks/messages-DTqb7T61.mjs → messages-D-rvoUSJ.mjs} +2 -0
- package/dist/{messages-Bkbhk9kJ2.mjs → messages-D1Fjr4OK2.mjs} +2 -0
- package/dist/{chunks/messages-CSkYL3AP.mjs → messages-D4U4wkYM.mjs} +2 -0
- package/dist/{chunks/messages-DwuvQpsD.mjs → messages-D5qgCWmB2.mjs} +7 -5
- package/dist/{chunks/messages-a_XmI-x5.mjs → messages-D788KtGe.mjs} +2 -0
- package/dist/{chunks/messages-B4-oaYBZ.mjs → messages-DFfhoDWZ2.mjs} +2 -0
- package/dist/{messages-BgcWyc4R.mjs → messages-DKsyrVp5.mjs} +2 -0
- package/dist/{messages-B_Js-HRK.mjs → messages-DL7JAwpC.mjs} +2 -0
- package/dist/{chunks/messages-CSioKJVK2.mjs → messages-DNlrcG5Z.mjs} +2 -0
- package/dist/{chunks/messages-vGRE1OPk2.mjs → messages-DPqFBtJR.mjs} +2 -0
- package/dist/{chunks/messages-BTKAxpmi.mjs → messages-DQik3_xv2.mjs} +2 -0
- package/dist/{messages-BUksRT7Q.mjs → messages-DTkd9ND8.mjs} +7 -5
- package/dist/{messages-Br4tspi_2.mjs → messages-DXCyNanc2.mjs} +2 -0
- package/dist/{chunks/messages-CdJq8h3E.mjs → messages-D_WzyzUt.mjs} +2 -0
- package/dist/{chunks/messages-DC0r7l8x2.mjs → messages-Ddz6eH0-2.mjs} +2 -0
- package/dist/{messages-BqCRuWLo.mjs → messages-DiL61awK.mjs} +2 -0
- package/dist/{chunks/messages-DXaps_uI.mjs → messages-Dq2WEsEu.mjs} +2 -0
- package/dist/{chunks/messages-8qsQ7qZX2.mjs → messages-DqXJJPx9.mjs} +3 -1
- package/dist/{messages-jh3qE8dL.mjs → messages-Duk7VVeY.mjs} +3 -1
- package/dist/{messages-DQHRgl_P.mjs → messages-DzkZ434Z.mjs} +4 -2
- package/dist/{messages-DUdZKtlE.mjs → messages-JKXCsFKZ.mjs} +2 -0
- package/dist/{chunks/messages-C9-UAJuq.mjs → messages-NVepzgE3.mjs} +4 -2
- package/dist/{messages-omcUe0Za.mjs → messages-PQVh93mt.mjs} +2 -0
- package/dist/{chunks/messages-xRQMQj4w2.mjs → messages-ftPYsH6d2.mjs} +6 -4
- package/dist/{chunks/messages-Ddb_L6gp2.mjs → messages-gQ5PFa2t2.mjs} +2 -0
- package/dist/{messages-DzqQWiFx.mjs → messages-oIa8wahx.mjs} +2 -0
- package/dist/{messages-DO62ugjy2.mjs → messages-rpO1POP02.mjs} +3 -1
- package/dist/{messages-63r3O0932.mjs → messages-uy3FE24_2.mjs} +4 -2
- package/dist/react.cjs +1 -1
- package/dist/react.mjs +1 -1
- package/dist/tools.cjs +1 -1
- package/dist/tools.mjs +2 -2
- package/package.json +1 -1
- package/src/blok.ts +2 -0
- package/src/cli/commands/convert-html/block-builder.ts +13 -3
- package/src/components/i18n/locales/am/messages.json +2 -1
- package/src/components/i18n/locales/ar/messages.json +2 -1
- package/src/components/i18n/locales/az/messages.json +3 -2
- package/src/components/i18n/locales/bg/messages.json +2 -1
- package/src/components/i18n/locales/bn/messages.json +2 -1
- package/src/components/i18n/locales/bs/messages.json +6 -5
- package/src/components/i18n/locales/cs/messages.json +4 -3
- package/src/components/i18n/locales/da/messages.json +6 -5
- package/src/components/i18n/locales/de/messages.json +4 -3
- package/src/components/i18n/locales/dv/messages.json +2 -1
- package/src/components/i18n/locales/el/messages.json +2 -1
- package/src/components/i18n/locales/en/messages.json +2 -0
- package/src/components/i18n/locales/es/messages.json +3 -2
- package/src/components/i18n/locales/et/messages.json +3 -2
- package/src/components/i18n/locales/fa/messages.json +2 -1
- package/src/components/i18n/locales/fi/messages.json +3 -2
- package/src/components/i18n/locales/fil/messages.json +7 -6
- package/src/components/i18n/locales/fr/messages.json +4 -3
- package/src/components/i18n/locales/gu/messages.json +2 -1
- package/src/components/i18n/locales/he/messages.json +2 -1
- package/src/components/i18n/locales/hi/messages.json +2 -1
- package/src/components/i18n/locales/hr/messages.json +5 -4
- package/src/components/i18n/locales/hu/messages.json +4 -3
- package/src/components/i18n/locales/hy/messages.json +2 -1
- package/src/components/i18n/locales/id/messages.json +2 -1
- package/src/components/i18n/locales/it/messages.json +5 -4
- package/src/components/i18n/locales/ja/messages.json +2 -1
- package/src/components/i18n/locales/ka/messages.json +2 -1
- package/src/components/i18n/locales/km/messages.json +2 -1
- package/src/components/i18n/locales/kn/messages.json +2 -1
- package/src/components/i18n/locales/ko/messages.json +2 -1
- package/src/components/i18n/locales/ku/messages.json +2 -1
- package/src/components/i18n/locales/lo/messages.json +2 -1
- package/src/components/i18n/locales/lt/messages.json +3 -2
- package/src/components/i18n/locales/lv/messages.json +3 -2
- package/src/components/i18n/locales/mk/messages.json +2 -1
- package/src/components/i18n/locales/ml/messages.json +2 -1
- package/src/components/i18n/locales/mn/messages.json +2 -1
- package/src/components/i18n/locales/mr/messages.json +2 -1
- package/src/components/i18n/locales/ms/messages.json +4 -3
- package/src/components/i18n/locales/my/messages.json +2 -1
- package/src/components/i18n/locales/ne/messages.json +2 -1
- package/src/components/i18n/locales/nl/messages.json +4 -3
- package/src/components/i18n/locales/no/messages.json +4 -3
- package/src/components/i18n/locales/pa/messages.json +2 -1
- package/src/components/i18n/locales/pl/messages.json +4 -3
- package/src/components/i18n/locales/ps/messages.json +2 -1
- package/src/components/i18n/locales/pt/messages.json +6 -5
- package/src/components/i18n/locales/ro/messages.json +3 -2
- package/src/components/i18n/locales/ru/messages.json +2 -1
- package/src/components/i18n/locales/sd/messages.json +2 -1
- package/src/components/i18n/locales/si/messages.json +2 -1
- package/src/components/i18n/locales/sk/messages.json +6 -5
- package/src/components/i18n/locales/sl/messages.json +5 -4
- package/src/components/i18n/locales/sq/messages.json +3 -2
- package/src/components/i18n/locales/sr/messages.json +2 -1
- package/src/components/i18n/locales/sv/messages.json +7 -6
- package/src/components/i18n/locales/sw/messages.json +2 -1
- package/src/components/i18n/locales/ta/messages.json +2 -1
- package/src/components/i18n/locales/te/messages.json +2 -1
- package/src/components/i18n/locales/th/messages.json +2 -1
- package/src/components/i18n/locales/tr/messages.json +2 -1
- package/src/components/i18n/locales/ug/messages.json +2 -1
- package/src/components/i18n/locales/uk/messages.json +2 -1
- package/src/components/i18n/locales/ur/messages.json +2 -1
- package/src/components/i18n/locales/vi/messages.json +2 -1
- package/src/components/i18n/locales/yi/messages.json +2 -1
- package/src/components/i18n/locales/zh/messages.json +2 -1
- package/src/components/icons/index.ts +6 -3
- package/src/components/inline-tools/inline-tool-marker.ts +12 -0
- package/src/components/modules/api/blocks.ts +3 -0
- package/src/components/modules/paste/google-docs-preprocessor.ts +64 -28
- package/src/components/modules/paste/sanitizer-config.ts +10 -1
- package/src/components/modules/renderer.ts +7 -1
- package/src/components/modules/toolbar/blockSettings.ts +54 -7
- package/src/components/modules/toolbar/content-alignment.ts +89 -0
- package/src/components/modules/toolbar/index.ts +85 -61
- package/src/components/modules/ui.ts +19 -6
- package/src/components/modules/uiControllers/controllers/blockHover.ts +20 -0
- package/src/components/utils/color-mapping.ts +15 -0
- package/src/components/utils/color-migration.ts +10 -0
- package/src/components/utils/data-model-transform.ts +200 -0
- package/src/components/utils/default-page-colors.ts +130 -0
- package/src/components/utils/highlight-block-arrival.ts +50 -0
- package/src/components/utils/popover/popover-desktop.ts +23 -1
- package/src/styles/image.css +86 -0
- package/src/styles/keyframes.css +6 -0
- package/src/styles/main.css +17 -0
- package/src/tools/database/index.ts +3 -4
- package/src/tools/image/dimensions-from-svg.ts +53 -0
- package/src/tools/image/dimensions-from-url.ts +87 -0
- package/src/tools/image/error-state.ts +7 -2
- package/src/tools/image/index.ts +81 -7
- package/src/tools/image/probe-dimensions.ts +36 -0
- package/src/tools/image/ui.ts +46 -2
- package/src/tools/image/uploader.ts +12 -8
- package/src/tools/table/table-cell-clipboard.ts +17 -3
- package/types/tools/image.d.ts +16 -2
- package/dist/chunks/constants-JFG5JxhI.cjs +0 -457
- package/dist/chunks/messages-C-FUK4Ki2.cjs +0 -1
- package/dist/chunks/messages-CLkrVqVp.cjs +0 -1
- package/dist/chunks/messages-D9qYuzOY2.cjs +0 -1
- package/dist/chunks/messages-DEdX7dXt2.cjs +0 -1
- package/dist/chunks/tools-Cnlc1TxG.cjs +0 -116
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"toolNames.database": "Databas",
|
|
26
26
|
"tools.link.addLink": "Lägg till länk",
|
|
27
27
|
"tools.link.invalidLink": "Ogiltig länk",
|
|
28
|
-
"tools.marker.textColor": "
|
|
28
|
+
"tools.marker.textColor": "Textfärg",
|
|
29
29
|
"tools.marker.background": "Bakgrund",
|
|
30
30
|
"tools.marker.default": "Standard",
|
|
31
31
|
"tools.colorPicker.defaultSwatchLabel": "{mode} {default}",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"tools.code.lineNumbers": "Radnummer",
|
|
208
208
|
"searchTerms.code": "kod",
|
|
209
209
|
"searchTerms.snippet": "kodsnutt",
|
|
210
|
-
"searchTerms.program": "
|
|
210
|
+
"searchTerms.program": "programkod",
|
|
211
211
|
"searchTerms.pre": "förformaterad",
|
|
212
212
|
"toolNames.image": "Bild",
|
|
213
213
|
"blockSettings.blocksSelected": "{count} block",
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"tools.link.emailAddress": "E-postadress",
|
|
219
219
|
"tools.link.jumpToSection": "Gå till avsnitt",
|
|
220
220
|
"tools.link.webLink": "Länk till webbsida",
|
|
221
|
-
"tools.code.autoDetected": "
|
|
221
|
+
"tools.code.autoDetected": "automatiskt",
|
|
222
222
|
"tools.code.plainText": "Oformaterad text",
|
|
223
223
|
"tools.image.alignment": "Justering",
|
|
224
224
|
"tools.image.alignmentLeft": "Vänster",
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "Zooma ut",
|
|
261
261
|
"tools.image.resetZoom": "Återställ zoom",
|
|
262
262
|
"tools.image.errorUploadFailed": "Uppladdningen misslyckades",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "Uppladdningen misslyckades",
|
|
263
264
|
"tools.image.errorSourceOffline": "Källan kan ha flyttats eller vara offline.",
|
|
264
265
|
"tools.image.errorUnavailable": "Bild ej tillgänglig",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "Det gick inte att läsa in bilden",
|
|
265
267
|
"tools.image.errorDefaultTitle": "Bilden kunde inte läsas in",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL:en returnerade ett fel. Prova en annan källa eller ladda upp filen igen.",
|
|
267
269
|
"tools.image.errorRetry": "Försök igen",
|
|
@@ -273,7 +275,7 @@
|
|
|
273
275
|
"tools.image.emptyChooseFile": "Välj fil",
|
|
274
276
|
"tools.image.emptyOrDropHere": "eller släpp en bild här",
|
|
275
277
|
"tools.image.emptyDropToUpload": "Släpp för att ladda upp",
|
|
276
|
-
"tools.image.emptyMaxSize": "
|
|
278
|
+
"tools.image.emptyMaxSize": "högst {size}",
|
|
277
279
|
"tools.image.emptyUrlPlaceholder": "Klistra in en bild-URL…",
|
|
278
280
|
"tools.image.emptyUrlAria": "Bild-URL",
|
|
279
281
|
"tools.image.emptySourceAria": "Bildkälla",
|
|
@@ -283,7 +285,7 @@
|
|
|
283
285
|
"tools.image.cropRatio4to3": "4:3",
|
|
284
286
|
"tools.image.cropRatio16to9": "16:9",
|
|
285
287
|
"tools.image.cropRatioCircle": "Cirkel",
|
|
286
|
-
"tools.image.cropRatioOval": "
|
|
288
|
+
"tools.image.cropRatioOval": "Ellips",
|
|
287
289
|
"tools.image.cropReset": "Återställ",
|
|
288
290
|
"tools.image.cropCancel": "Avbryt",
|
|
289
291
|
"tools.image.cropDone": "Klar",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "Klar",
|
|
318
320
|
"tools.database.defaultViewBoard": "Tavla"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "Kuza nje",
|
|
261
261
|
"tools.image.resetZoom": "Weka upya ukuzaji",
|
|
262
262
|
"tools.image.errorUploadFailed": "Upakiaji umeshindikana",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "Upakiaji umeshindwa",
|
|
263
264
|
"tools.image.errorSourceOffline": "Chanzo kinaweza kuwa kimehamishwa au nje ya mtandao.",
|
|
264
265
|
"tools.image.errorUnavailable": "Picha haipatikani",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "Imeshindwa kupakia picha",
|
|
265
267
|
"tools.image.errorDefaultTitle": "Haikuweza kupakia picha",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL imerudisha hitilafu. Jaribu chanzo kingine au pakia faili tena.",
|
|
267
269
|
"tools.image.errorRetry": "Jaribu tena",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "Imekamilika",
|
|
318
320
|
"tools.database.defaultViewBoard": "Ubao"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "சிறிதாக்கு",
|
|
261
261
|
"tools.image.resetZoom": "பெரிதாக்கத்தை மீட்டமை",
|
|
262
262
|
"tools.image.errorUploadFailed": "பதிவேற்றம் தோல்வி",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "பதிவேற்றம் தோல்வி",
|
|
263
264
|
"tools.image.errorSourceOffline": "மூலம் நகர்த்தப்பட்டிருக்கலாம் அல்லது ஆஃப்லைனில் இருக்கலாம்.",
|
|
264
265
|
"tools.image.errorUnavailable": "படம் கிடைக்கவில்லை",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "படத்தை ஏற்ற முடியவில்லை",
|
|
265
267
|
"tools.image.errorDefaultTitle": "படத்தை ஏற்ற முடியவில்லை",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL ஒரு பிழையை வழங்கியது. வேறு மூலத்தை முயற்சிக்கவும் அல்லது கோப்பை மீண்டும் பதிவேற்றவும்.",
|
|
267
269
|
"tools.image.errorRetry": "மீண்டும் முயற்சி",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "முடிந்தது",
|
|
318
320
|
"tools.database.defaultViewBoard": "பலகை"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "జూమ్ అవుట్",
|
|
261
261
|
"tools.image.resetZoom": "జూమ్ రీసెట్",
|
|
262
262
|
"tools.image.errorUploadFailed": "అప్లోడ్ విఫలమైంది",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "అప్లోడ్ విఫలమైంది",
|
|
263
264
|
"tools.image.errorSourceOffline": "మూలం తరలించబడి ఉండవచ్చు లేదా ఆఫ్లైన్లో ఉండవచ్చు.",
|
|
264
265
|
"tools.image.errorUnavailable": "చిత్రం అందుబాటులో లేదు",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "చిత్రాన్ని లోడ్ చేయడంలో విఫలమైంది",
|
|
265
267
|
"tools.image.errorDefaultTitle": "చిత్రాన్ని లోడ్ చేయలేకపోయాము",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL లోపాన్ని తిరిగి ఇచ్చింది. వేరే మూలాన్ని ప్రయత్నించండి లేదా ఫైల్ను మళ్లీ అప్లోడ్ చేయండి.",
|
|
267
269
|
"tools.image.errorRetry": "మళ్లీ ప్రయత్నించు",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "పూర్తయింది",
|
|
318
320
|
"tools.database.defaultViewBoard": "బోర్డ్"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "ย่อ",
|
|
261
261
|
"tools.image.resetZoom": "รีเซ็ตการซูม",
|
|
262
262
|
"tools.image.errorUploadFailed": "อัปโหลดล้มเหลว",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "อัปโหลดไม่สำเร็จ",
|
|
263
264
|
"tools.image.errorSourceOffline": "แหล่งที่มาอาจถูกย้ายหรือออฟไลน์",
|
|
264
265
|
"tools.image.errorUnavailable": "ไม่มีรูปภาพ",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "โหลดรูปภาพไม่สำเร็จ",
|
|
265
267
|
"tools.image.errorDefaultTitle": "ไม่สามารถโหลดรูปภาพได้",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL คืนค่าผิดพลาด ลองแหล่งอื่นหรืออัปโหลดไฟล์อีกครั้ง",
|
|
267
269
|
"tools.image.errorRetry": "ลองอีกครั้ง",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "เสร็จสิ้น",
|
|
318
320
|
"tools.database.defaultViewBoard": "บอร์ด"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "Uzaklaştır",
|
|
261
261
|
"tools.image.resetZoom": "Yakınlaştırmayı sıfırla",
|
|
262
262
|
"tools.image.errorUploadFailed": "Yükleme başarısız",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "Yükleme başarısız",
|
|
263
264
|
"tools.image.errorSourceOffline": "Kaynak taşınmış veya çevrimdışı olabilir.",
|
|
264
265
|
"tools.image.errorUnavailable": "Görsel kullanılamıyor",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "Görsel yüklenemedi",
|
|
265
267
|
"tools.image.errorDefaultTitle": "Görsel yüklenemedi",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL bir hata döndürdü. Farklı bir kaynak deneyin veya dosyayı yeniden yükleyin.",
|
|
267
269
|
"tools.image.errorRetry": "Yeniden dene",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "Tamamlandı",
|
|
318
320
|
"tools.database.defaultViewBoard": "Pano"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "كىچىكلىتىش",
|
|
261
261
|
"tools.image.resetZoom": "چوڭايتىشنى ئەسلىگە كەلتۈرۈش",
|
|
262
262
|
"tools.image.errorUploadFailed": "چىقىرىش مەغلۇپ بولدى",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "يۈكلەش مەغلۇپ بولدى",
|
|
263
264
|
"tools.image.errorSourceOffline": "مەنبە يۆتكەلگەن ياكى ئوفلىن بولۇشى مۇمكىن.",
|
|
264
265
|
"tools.image.errorUnavailable": "رەسىم ئىشلەتكىلى بولمايدۇ",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "رەسىمنى يۈكلىگىلى بولمىدى",
|
|
265
267
|
"tools.image.errorDefaultTitle": "رەسىم يۈكلەنمىدى",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL خاتالىق قايتۇردى. باشقا مەنبە سىناڭ ياكى ھۆججەتنى قايتا يۈكلەڭ.",
|
|
267
269
|
"tools.image.errorRetry": "قايتا سىناش",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "تاماملاندى",
|
|
318
320
|
"tools.database.defaultViewBoard": "تاختا"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "Зменшити",
|
|
261
261
|
"tools.image.resetZoom": "Скинути масштаб",
|
|
262
262
|
"tools.image.errorUploadFailed": "Не вдалося завантажити",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "Помилка завантаження",
|
|
263
264
|
"tools.image.errorSourceOffline": "Джерело могло бути переміщене або недоступне.",
|
|
264
265
|
"tools.image.errorUnavailable": "Зображення недоступне",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "Не вдалося завантажити зображення",
|
|
265
267
|
"tools.image.errorDefaultTitle": "Не вдалося завантажити зображення",
|
|
266
268
|
"tools.image.errorDefaultMessage": "Сервер повернув помилку. Спробуйте інше джерело або завантажте файл знову.",
|
|
267
269
|
"tools.image.errorRetry": "Повторити",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "Готово",
|
|
318
320
|
"tools.database.defaultViewBoard": "Дошка"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "زوم آؤٹ",
|
|
261
261
|
"tools.image.resetZoom": "زوم ری سیٹ",
|
|
262
262
|
"tools.image.errorUploadFailed": "اپ لوڈ ناکام",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "اپ لوڈ ناکام",
|
|
263
264
|
"tools.image.errorSourceOffline": "ممکن ہے ذریعہ منتقل ہو گیا ہو یا آف لائن ہو۔",
|
|
264
265
|
"tools.image.errorUnavailable": "تصویر دستیاب نہیں",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "تصویر لوڈ نہ ہو سکی",
|
|
265
267
|
"tools.image.errorDefaultTitle": "تصویر لوڈ نہیں ہو سکی",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL نے خرابی واپس کی۔ دوسرا ذریعہ آزمائیں یا فائل دوبارہ اپ لوڈ کریں۔",
|
|
267
269
|
"tools.image.errorRetry": "دوبارہ کوشش کریں",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "مکمل",
|
|
318
320
|
"tools.database.defaultViewBoard": "بورڈ"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "Thu nhỏ",
|
|
261
261
|
"tools.image.resetZoom": "Đặt lại thu phóng",
|
|
262
262
|
"tools.image.errorUploadFailed": "Tải lên thất bại",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "Tải lên thất bại",
|
|
263
264
|
"tools.image.errorSourceOffline": "Nguồn có thể đã di chuyển hoặc ngoại tuyến.",
|
|
264
265
|
"tools.image.errorUnavailable": "Không có hình ảnh",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "Không thể tải ảnh",
|
|
265
267
|
"tools.image.errorDefaultTitle": "Không thể tải hình ảnh",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL trả về lỗi. Hãy thử nguồn khác hoặc tải lại tệp.",
|
|
267
269
|
"tools.image.errorRetry": "Thử lại",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "Hoàn thành",
|
|
318
320
|
"tools.database.defaultViewBoard": "Bảng"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "פארקלענערן",
|
|
261
261
|
"tools.image.resetZoom": "ריסעט זום",
|
|
262
262
|
"tools.image.errorUploadFailed": "אפלאד דורכגעפאלן",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "אויפֿלאָדן געפֿעלט",
|
|
263
264
|
"tools.image.errorSourceOffline": "די מקור קען זיין אריבערגעטראגן אדער אפליין.",
|
|
264
265
|
"tools.image.errorUnavailable": "בילד נישט דא",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "בילד האט נישט געקענט לאדן",
|
|
265
267
|
"tools.image.errorDefaultTitle": "בילד האט זיך נישט געלאדן",
|
|
266
268
|
"tools.image.errorDefaultMessage": "די URL האט צוריקגעקערט א טעות. פרובירט אן אנדערן מקור אדער לאדט ווידער די טעקע.",
|
|
267
269
|
"tools.image.errorRetry": "פרובירט ווידער",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "פארטיק",
|
|
318
320
|
"tools.database.defaultViewBoard": "ברעט"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -260,8 +260,10 @@
|
|
|
260
260
|
"tools.image.zoomOut": "缩小",
|
|
261
261
|
"tools.image.resetZoom": "重置缩放",
|
|
262
262
|
"tools.image.errorUploadFailed": "上传失败",
|
|
263
|
+
"tools.image.errorUploadFailedTitle": "上传失败",
|
|
263
264
|
"tools.image.errorSourceOffline": "来源可能已更改或离线。",
|
|
264
265
|
"tools.image.errorUnavailable": "图片不可用",
|
|
266
|
+
"tools.image.errorImageFailedToLoad": "无法加载图片",
|
|
265
267
|
"tools.image.errorDefaultTitle": "无法加载图片",
|
|
266
268
|
"tools.image.errorDefaultMessage": "URL 返回错误。请尝试其他来源或重新上传文件。",
|
|
267
269
|
"tools.image.errorRetry": "重试",
|
|
@@ -317,4 +319,3 @@
|
|
|
317
319
|
"tools.database.defaultStatusDone": "已完成",
|
|
318
320
|
"tools.database.defaultViewBoard": "看板"
|
|
319
321
|
}
|
|
320
|
-
|
|
@@ -719,9 +719,9 @@ export const IconCollapseFullscreen = wrapImageSvg('<path d="M9 3v6H3"/><path d=
|
|
|
719
719
|
export const IconExpandFullscreen = wrapImageSvg('<path d="M15 3h6v6"/><path d="M9 21H3v-6"/><path d="m21 3-7 7"/><path d="m3 21 7-7"/>');
|
|
720
720
|
export const IconDownload = wrapImageSvg('<path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"/><path d="M7 10l5 5 5-5"/><path d="M12 15V3"/>');
|
|
721
721
|
export const IconCaption = wrapImageSvg('<rect x="3" y="3.5" width="18" height="12" rx="2.5"/><path d="M5 19h14"/><path d="M8 22h8"/>');
|
|
722
|
-
// Replace (image) —
|
|
723
|
-
//
|
|
724
|
-
export const IconReplaceImage = wrapImageSvg('<path d="
|
|
722
|
+
// Replace (image) — IconReplace geometry scaled to the 24×24 / 1.75-stroke
|
|
723
|
+
// image-toolbar spec so it sits at the same optical size as its neighbours.
|
|
724
|
+
export const IconReplaceImage = wrapImageSvg('<path d="m17.5 8 2.5-2.5L17.5 3"/><path d="M20 5.5h-5.5a6 6 0 0 0-6 6V13"/><path d="m6.5 16-2.5 2.5L6.5 21"/><path d="M4 18.5h5.5a6 6 0 0 0 6-6V11"/>');
|
|
725
725
|
export const IconCrop = wrapImageSvg('<path d="M6 2v14a2 2 0 0 0 2 2h14"/><path d="M2 6h14a2 2 0 0 1 2 2v14"/>');
|
|
726
726
|
|
|
727
727
|
// More-options (horizontal 3 dots) — filled circles
|
|
@@ -733,6 +733,9 @@ export const IconCloseThick = '<svg viewBox="0 0 24 24" fill="none" stroke="curr
|
|
|
733
733
|
// Broken image alert — error state
|
|
734
734
|
export const IconImageBroken = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M14.5 4.5H6A2.5 2.5 0 0 0 3.5 7v10A2.5 2.5 0 0 0 6 19.5h12a2.5 2.5 0 0 0 2.5-2.5v-6.25"/><path d="m14.5 4.5 1.75 2.25 2.25-1.25 2 2.75"/><circle cx="8" cy="9" r="1.2" fill="currentColor" stroke="none"/><path d="m3.8 16.25 3.45-3.45 2.5 2.5 3.5-3.5 4 4"/></svg>';
|
|
735
735
|
|
|
736
|
+
// Cloud with a strike-through — upload-failed error state
|
|
737
|
+
export const IconUploadFailed = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M20 16.5A4.5 4.5 0 0 0 17 8.25a6 6 0 0 0-11.7 1.5A4 4 0 0 0 6 17.5"/><path d="M12 12v5"/><path d="m9.5 14.5 2.5-2.5 2.5 2.5"/><path d="m4 4 16 16" stroke-width="2"/></svg>';
|
|
738
|
+
|
|
736
739
|
export const IconUpload = wrapImageSvg('<path d="M12 4v10"/><path d="m7.5 8.5 4.5-4.5 4.5 4.5"/><path d="M5 14v3.5A2.5 2.5 0 0 0 7.5 20h9a2.5 2.5 0 0 0 2.5-2.5V14"/>');
|
|
737
740
|
export const IconLinkExternal = wrapImageSvg('<path d="M10 14a5 5 0 0 0 7.07 0l2.83-2.83a5 5 0 0 0-7.07-7.07L11.5 5.5"/><path d="M14 10a5 5 0 0 0-7.07 0l-2.83 2.83a5 5 0 0 0 7.07 7.07l1.33-1.33"/>');
|
|
738
741
|
export const IconArrowDownLine = wrapImageSvg('<path d="M12 4v12"/><path d="m6.5 10.5 5.5 5.5 5.5-5.5"/><path d="M4 18h16"/>');
|
|
@@ -17,6 +17,7 @@ import { createColorPicker } from '../shared/color-picker';
|
|
|
17
17
|
import type { ColorPickerHandle } from '../shared/color-picker';
|
|
18
18
|
import { colorVarName } from '../shared/color-presets';
|
|
19
19
|
import { mapToNearestPresetName } from '../utils/color-mapping';
|
|
20
|
+
import { isDefaultDarkBackground, isDefaultWhiteBackground } from '../utils/default-page-colors';
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Color mode type — either text color or background color
|
|
@@ -88,6 +89,17 @@ export class MarkerInlineTool implements InlineTool {
|
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Strip default page background-colors (white / near-black) so a
|
|
94
|
+
* pasted <mark> from another editor doesn't persist a bg that was
|
|
95
|
+
* really just the source page background.
|
|
96
|
+
*/
|
|
97
|
+
const bg = style.getPropertyValue('background-color');
|
|
98
|
+
|
|
99
|
+
if (bg && (isDefaultWhiteBackground(bg) || isDefaultDarkBackground(bg))) {
|
|
100
|
+
style.removeProperty('background-color');
|
|
101
|
+
}
|
|
102
|
+
|
|
91
103
|
/**
|
|
92
104
|
* When text color is set without an explicit background-color,
|
|
93
105
|
* add transparent background to override the browser's default
|
|
@@ -8,6 +8,7 @@ import { Block } from '../../block';
|
|
|
8
8
|
import { BlockAPI } from '../../block/api';
|
|
9
9
|
import { capitalize } from '../../utils';
|
|
10
10
|
import { normalizeTableChildParents } from '../../utils/data-model-transform';
|
|
11
|
+
import { highlightBlockArrival } from '../../utils/highlight-block-arrival';
|
|
11
12
|
|
|
12
13
|
import { logLabeled } from './../../utils';
|
|
13
14
|
|
|
@@ -597,5 +598,7 @@ export class BlocksAPI extends Module {
|
|
|
597
598
|
if (block !== undefined) {
|
|
598
599
|
this.Blok.BlockSelection.selectBlock(block);
|
|
599
600
|
}
|
|
601
|
+
|
|
602
|
+
highlightBlockArrival(el);
|
|
600
603
|
}
|
|
601
604
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { mapToNearestPresetColor } from '../../utils/color-mapping';
|
|
2
|
+
import {
|
|
3
|
+
isDefaultDarkBackground as isDefaultDarkBackgroundShared,
|
|
4
|
+
isDefaultWhiteBackground as isDefaultWhiteBackgroundShared,
|
|
5
|
+
} from '../../utils/default-page-colors';
|
|
2
6
|
|
|
3
7
|
/**
|
|
4
8
|
* Pre-process Google Docs clipboard HTML before sanitization.
|
|
@@ -112,10 +116,31 @@ function splitAncestorsAroundImage(img: Element, topLevel: Element): { before: N
|
|
|
112
116
|
return reduce(img, null, null);
|
|
113
117
|
}
|
|
114
118
|
|
|
119
|
+
function hasTableAncestorWithin(node: Element, wrapper: HTMLElement): boolean {
|
|
120
|
+
const parent = node.parentElement;
|
|
121
|
+
|
|
122
|
+
if (parent === null || parent === wrapper) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (parent.tagName === 'TABLE') {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return hasTableAncestorWithin(parent, wrapper);
|
|
131
|
+
}
|
|
132
|
+
|
|
115
133
|
function promoteImages(wrapper: HTMLElement): void {
|
|
116
134
|
const imgs = Array.from(wrapper.querySelectorAll('img'));
|
|
117
135
|
|
|
118
136
|
for (const img of imgs) {
|
|
137
|
+
/**
|
|
138
|
+
* Images inside a <table> must stay in their cell. Promoting them would
|
|
139
|
+
* split the table around the image boundary, destroying the original
|
|
140
|
+
* row/column layout and scattering the cell contents across half-tables.
|
|
141
|
+
*/
|
|
142
|
+
if (hasTableAncestorWithin(img, wrapper)) continue;
|
|
143
|
+
|
|
119
144
|
const topLevel = findTopLevelAncestor(img, wrapper);
|
|
120
145
|
|
|
121
146
|
if (!topLevel) continue;
|
|
@@ -263,31 +288,12 @@ function computeRelativeLuminance(color: string): number {
|
|
|
263
288
|
}
|
|
264
289
|
|
|
265
290
|
/**
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
* These should not be treated as intentional marker formatting.
|
|
291
|
+
* Re-exports for backward compatibility with table-cell-clipboard and other
|
|
292
|
+
* callers that still import these helpers from this module. The canonical
|
|
293
|
+
* implementations live in `src/components/utils/default-page-colors.ts`.
|
|
270
294
|
*/
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
return normalized === 'rgb(255,255,255)' || normalized === '#ffffff' || normalized === 'white';
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Check whether a CSS background-color value is a near-black (dark mode page) background.
|
|
279
|
-
* When the browser natively copies from a contenteditable in dark mode, it adds computed
|
|
280
|
-
* styles including the resolved dark page background (e.g. rgb(25, 25, 24) for Blok's
|
|
281
|
-
* #191918 dark background). These should not be treated as intentional marker formatting.
|
|
282
|
-
*
|
|
283
|
-
* Uses relative luminance < 0.12, which is below all Blok dark background presets
|
|
284
|
-
* (~18% minimum lightness for #2f2f2f) while catching typical dark page backgrounds.
|
|
285
|
-
*/
|
|
286
|
-
function isDefaultDarkBackground(bgColor: string): boolean {
|
|
287
|
-
const luminance = computeRelativeLuminance(bgColor);
|
|
288
|
-
|
|
289
|
-
return luminance >= 0 && luminance < 0.12;
|
|
290
|
-
}
|
|
295
|
+
export const isDefaultWhiteBackground = isDefaultWhiteBackgroundShared;
|
|
296
|
+
export const isDefaultDarkBackground = isDefaultDarkBackgroundShared;
|
|
291
297
|
|
|
292
298
|
/**
|
|
293
299
|
* Check whether a CSS color value is a near-white (dark mode default text) color.
|
|
@@ -348,9 +354,31 @@ function buildMarkWrapper(
|
|
|
348
354
|
*
|
|
349
355
|
* @returns replacement HTML string, or `null` if the span should be left as-is
|
|
350
356
|
*/
|
|
357
|
+
const HEADING_TAGS = new Set(['H1', 'H2', 'H3', 'H4', 'H5', 'H6']);
|
|
358
|
+
|
|
359
|
+
function hasHeadingAncestor(node: Element): boolean {
|
|
360
|
+
const parent = node.parentElement;
|
|
361
|
+
|
|
362
|
+
if (parent === null) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
if (HEADING_TAGS.has(parent.tagName)) {
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
return hasHeadingAncestor(parent);
|
|
371
|
+
}
|
|
372
|
+
|
|
351
373
|
function convertSpanToSemanticHtml(span: Element, isGoogleDocs: boolean): string | null {
|
|
352
374
|
const style = span.getAttribute('style') ?? '';
|
|
353
|
-
|
|
375
|
+
/**
|
|
376
|
+
* Headings are already rendered bold. A span with font-weight:700 inside a
|
|
377
|
+
* heading is the default weight Google Docs writes — treating it as bold
|
|
378
|
+
* would wrap the text in `<b>`, producing `<strong>` in saved data and
|
|
379
|
+
* visibly doubling the weight.
|
|
380
|
+
*/
|
|
381
|
+
const isBold = /font-weight\s*:\s*(700|bold)/i.test(style) && !hasHeadingAncestor(span);
|
|
354
382
|
const isItalic = /font-style\s*:\s*italic/i.test(style);
|
|
355
383
|
|
|
356
384
|
const colorMatch = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(style);
|
|
@@ -362,9 +390,17 @@ function convertSpanToSemanticHtml(span: Element, isGoogleDocs: boolean): string
|
|
|
362
390
|
const hasColor = isGoogleDocs
|
|
363
391
|
? color !== undefined && !isDefaultBlack(color)
|
|
364
392
|
: color !== undefined && !isDefaultBlack(color) && !isDefaultLightText(color);
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
393
|
+
/**
|
|
394
|
+
* Default page backgrounds (white/near-white, near-black) are filtered for both
|
|
395
|
+
* branches. Google Docs writes the page background-color onto every <span> in
|
|
396
|
+
* the clipboard payload — without this filter, the nearest-preset color mapping
|
|
397
|
+
* would attach a default-bg styled <mark> to every paragraph.
|
|
398
|
+
*/
|
|
399
|
+
const hasBgColor =
|
|
400
|
+
bgColor !== undefined &&
|
|
401
|
+
bgColor !== 'transparent' &&
|
|
402
|
+
!isDefaultWhiteBackground(bgColor) &&
|
|
403
|
+
!isDefaultDarkBackground(bgColor);
|
|
368
404
|
|
|
369
405
|
if (!isBold && !isItalic && !hasColor && !hasBgColor) {
|
|
370
406
|
return null;
|
|
@@ -93,7 +93,16 @@ export class SanitizerConfigBuilder {
|
|
|
93
93
|
* Special handling for table sanitization.
|
|
94
94
|
*/
|
|
95
95
|
public sanitizeTable(table: HTMLElement, config: SanitizerConfig): HTMLElement | null {
|
|
96
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Allow `<img>` inside table cells so pasted images (e.g. from Google Docs
|
|
98
|
+
* tables) survive sanitization and end up in the cell's paragraph content
|
|
99
|
+
* rather than being stripped silently.
|
|
100
|
+
*/
|
|
101
|
+
const tableConfig: SanitizerConfig = {
|
|
102
|
+
...config,
|
|
103
|
+
img: { src: true, alt: true, width: true, height: true },
|
|
104
|
+
};
|
|
105
|
+
const cleanTableHTML = clean(table.outerHTML, tableConfig);
|
|
97
106
|
const tmpWrapper = document.createElement('div');
|
|
98
107
|
|
|
99
108
|
tmpWrapper.innerHTML = cleanTableHTML;
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
analyzeDataFormat,
|
|
9
9
|
expandToHierarchical,
|
|
10
10
|
normalizeTableChildParents,
|
|
11
|
+
reclaimDetachedTableCells,
|
|
11
12
|
shouldExpandToHierarchical,
|
|
12
13
|
type DataFormatAnalysis,
|
|
13
14
|
} from '../utils/data-model-transform';
|
|
@@ -100,12 +101,17 @@ export class Renderer extends Module {
|
|
|
100
101
|
? expandToHierarchical(blocksData)
|
|
101
102
|
: blocksData;
|
|
102
103
|
|
|
104
|
+
// Recover migrated cells whose text a pre-fix save detached to root:
|
|
105
|
+
// re-attach `cell-<row>-<col>`-id orphans back into their empty cell.
|
|
106
|
+
// Runs before normalize so reclaimed refs get parented in the same pass.
|
|
107
|
+
const reclaimedBlocks = reclaimDetachedTableCells(expandedBlocks);
|
|
108
|
+
|
|
103
109
|
// Tables persist child references via `data.content[r][c].blocks = [<id>]`
|
|
104
110
|
// rather than an explicit `parent` field on each child. Pre-normalize
|
|
105
111
|
// those parent references so downstream code that gates on parentId
|
|
106
112
|
// (read-only cell mounter, saver filter, hierarchy queries) correctly
|
|
107
113
|
// recognizes the children as belonging to their table.
|
|
108
|
-
const processedBlocks = normalizeTableChildParents(
|
|
114
|
+
const processedBlocks = normalizeTableChildParents(reclaimedBlocks);
|
|
109
115
|
|
|
110
116
|
// Note: Yjs data layer is loaded via BlockManager.insertMany() with the correct block IDs
|
|
111
117
|
|
|
@@ -13,7 +13,7 @@ import { getConvertibleToolsForBlock, getConvertibleToolsForBlocks } from '../..
|
|
|
13
13
|
import type { PopoverItemParams, Popover } from '../../utils/popover';
|
|
14
14
|
import { PopoverDesktop, PopoverMobile, PopoverItemType } from '../../utils/popover';
|
|
15
15
|
import { css as popoverItemCls } from '../../utils/popover/components/popover-item';
|
|
16
|
-
import { translateToolTitle } from '../../utils/tools';
|
|
16
|
+
import { translateToolName, translateToolTitle } from '../../utils/tools';
|
|
17
17
|
|
|
18
18
|
import type { PopoverParams } from '@/types/utils/popover/popover';
|
|
19
19
|
import { PopoverEvent } from '@/types/utils/popover/popover-event';
|
|
@@ -198,9 +198,20 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
|
|
|
198
198
|
|
|
199
199
|
const items = await this.getTunesItems(block, commonTunes, toolTunes);
|
|
200
200
|
|
|
201
|
-
const
|
|
202
|
-
?
|
|
203
|
-
:
|
|
201
|
+
const activeEntry = hasMultipleBlocksSelected
|
|
202
|
+
? undefined
|
|
203
|
+
: await block.getActiveToolboxEntry();
|
|
204
|
+
const contextLabel = ((): string => {
|
|
205
|
+
if (hasMultipleBlocksSelected) {
|
|
206
|
+
return `${selectedBlocks.length} blocks`;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
if (activeEntry) {
|
|
210
|
+
return translateToolTitle(this.Blok.I18n, activeEntry, block.name);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return translateToolName(this.Blok.I18n, undefined, block.name);
|
|
214
|
+
})();
|
|
204
215
|
|
|
205
216
|
const PopoverClass = isMobileScreen() ? PopoverMobile : PopoverDesktop;
|
|
206
217
|
const popoverParams: PopoverParams & { flipper?: Flipper } = {
|
|
@@ -237,11 +248,22 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
|
|
|
237
248
|
this.opened = true;
|
|
238
249
|
this.isOpening = false;
|
|
239
250
|
|
|
240
|
-
/**
|
|
241
|
-
|
|
242
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Show the popover BEFORE dispatching the `opened` event.
|
|
253
|
+
*
|
|
254
|
+
* Listeners of that event toggle a data attribute on the UI wrapper
|
|
255
|
+
* (`data-blok-block-settings-opened=true`) whose Tailwind rule hides the
|
|
256
|
+
* settings toggler via `display:none`. If we emit first, the trigger
|
|
257
|
+
* element collapses to a zero rect before `show()` reads it, and the
|
|
258
|
+
* popover ends up positioned at the viewport's top-left corner.
|
|
259
|
+
* Measure + place the popover while the trigger is still visible,
|
|
260
|
+
* then announce state change.
|
|
261
|
+
*/
|
|
243
262
|
this.popover.show();
|
|
244
263
|
this.attachFlipperKeydownListener(block);
|
|
264
|
+
|
|
265
|
+
/** Tell to subscribers that block settings is opened */
|
|
266
|
+
this.eventsDispatcher.emit(this.events.opened);
|
|
245
267
|
} catch {
|
|
246
268
|
this.isOpening = false;
|
|
247
269
|
}
|
|
@@ -324,9 +346,34 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
|
|
|
324
346
|
const items = [] as MenuConfigItem[];
|
|
325
347
|
const selectedBlocks = this.Blok.BlockSelection.selectedBlocks;
|
|
326
348
|
const hasMultipleBlocksSelected = selectedBlocks.length > 1;
|
|
349
|
+
const isReadOnly = this.Blok.ReadOnly.isEnabled;
|
|
327
350
|
|
|
328
351
|
const allBlockTools = Array.from(this.Blok.Tools.blockTools.values());
|
|
329
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Read-only (Notion-style): expose only the copy-link tune, plus the
|
|
355
|
+
* edit-metadata footer if present. No convert-to, no delete, no moves,
|
|
356
|
+
* no tool-specific tunes.
|
|
357
|
+
*/
|
|
358
|
+
if (isReadOnly) {
|
|
359
|
+
const copyLinkItems = commonTunes.filter(
|
|
360
|
+
(tune): tune is MenuConfigItem & { name: string } => 'name' in tune && tune.name === 'copy-link'
|
|
361
|
+
);
|
|
362
|
+
|
|
363
|
+
items.push(...copyLinkItems);
|
|
364
|
+
|
|
365
|
+
if (currentBlock.lastEditedAt !== undefined) {
|
|
366
|
+
items.push({ type: PopoverItemType.Separator });
|
|
367
|
+
items.push({
|
|
368
|
+
type: PopoverItemType.Html,
|
|
369
|
+
element: this.createEditMetadataFooter(currentBlock),
|
|
370
|
+
name: 'edit-metadata',
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
return items;
|
|
375
|
+
}
|
|
376
|
+
|
|
330
377
|
/**
|
|
331
378
|
* Tool-specific tunes come first (e.g. heading level selector)
|
|
332
379
|
*/
|