@jackuait/blok 0.19.1 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blok.cjs +1 -1
- package/dist/blok.iife.js +13 -13
- package/dist/blok.mjs +2 -2
- package/dist/blok.umd.js +30 -30
- package/dist/chunks/{APEv2Parser-WvRvu4zL.mjs → APEv2Parser-dFboX-HT.mjs} +5 -5
- package/dist/chunks/{AbstractID3Parser-DM9acVTg.mjs → AbstractID3Parser-qvoGRhB4.mjs} +5 -5
- package/dist/chunks/{AiffParser-C_VaWeb5.mjs → AiffParser-DVe3cNKY.mjs} +5 -5
- package/dist/chunks/{AsfParser-CH5F_9Wp.mjs → AsfParser-DrzvMHO9.mjs} +7 -7
- package/dist/chunks/{BasicParser-BFTgNkp-.mjs → BasicParser-BLAlEKys.mjs} +2 -2
- package/dist/chunks/{DsdiffParser-BAdYwB7y.mjs → DsdiffParser-uZBv6Bc_.mjs} +5 -5
- package/dist/chunks/{DsfParser-DWMLfBH1.mjs → DsfParser-DLra1i8X.mjs} +5 -5
- package/dist/chunks/{FlacParser-BdKXrY7L.mjs → FlacParser-DGd7sQuD.mjs} +6 -6
- package/dist/chunks/{ID3v1Parser-DoxlznrE.mjs → ID3v1Parser-CJMR_CT_.mjs} +3 -3
- package/dist/chunks/{ID3v2Parser-BIrxzjBm.mjs → ID3v2Parser-DIc0X1ee.mjs} +8 -8
- package/dist/chunks/{ID3v2Token-D5v9lCfb.mjs → ID3v2Token-BqnbpNYB.mjs} +3 -3
- package/dist/chunks/{MP4Parser-0KMJ-q2k.mjs → MP4Parser-BqrCfJyp.mjs} +6 -6
- package/dist/chunks/{MatroskaParser-fxFuCddu.mjs → MatroskaParser-CCbZmX7j.mjs} +5 -5
- package/dist/chunks/{MpegParser-R-6QiuhU.mjs → MpegParser-C-6l3Wrf.mjs} +6 -6
- package/dist/chunks/{MusepackParser-DFLoF47O.mjs → MusepackParser-C_PhW_BV.mjs} +5 -5
- package/dist/chunks/{OggParser-C1qP2qC7.mjs → OggParser-DJhcSH9h.mjs} +6 -6
- package/dist/chunks/{Util-DiBcLCh8.mjs → Util-B42SDwrM.mjs} +3 -3
- package/dist/chunks/{WavPackParser-Ck8xXsNf.mjs → WavPackParser-CuHju62S.mjs} +4 -4
- package/dist/chunks/{WaveParser-hxQlWijT.mjs → WaveParser-DvEqNnGt.mjs} +6 -6
- package/dist/chunks/{aiden0z-pptx-renderer.es-Y1OhS20L.mjs → aiden0z-pptx-renderer.es-Dfc1LJvS.mjs} +2 -2
- package/dist/chunks/{arc-Cu-PSKKo.mjs → arc-8pYAfiNC.mjs} +3 -3
- package/dist/chunks/architecture-7EHR7CIX-ByEay9F_.mjs +3 -0
- package/dist/chunks/{architectureDiagram-3BPJPVTR-BwW1QjqZ.mjs → architectureDiagram-3BPJPVTR-BiykAn02.mjs} +9 -9
- package/dist/chunks/{blockDiagram-GPEHLZMM-BAgQo64R.mjs → blockDiagram-GPEHLZMM-CozNEkEK.mjs} +13 -13
- package/dist/chunks/{blok-C52qeiPg.mjs → blok-C72PuzIT.mjs} +2514 -2109
- package/dist/chunks/{blok-gFn3FI95.cjs → blok-uBjibRae.cjs} +11 -11
- package/dist/chunks/{c4Diagram-AAUBKEIU-BQe-CDb8.mjs → c4Diagram-AAUBKEIU-DN5cpztO.mjs} +6 -6
- package/dist/chunks/channel-DCfRAw7p.mjs +5 -0
- package/dist/chunks/{chunk-2J33WTMH-CMyTQPbw.mjs → chunk-2J33WTMH-CHv7Whe1.mjs} +3 -3
- package/dist/chunks/{chunk-3OPIFGDE-_lgEHnzc.mjs → chunk-3OPIFGDE-BRLjwZDG.mjs} +8 -8
- package/dist/chunks/{chunk-4BX2VUAB-8PQvWn-w.mjs → chunk-4BX2VUAB-CrVP7ooQ.mjs} +2 -2
- package/dist/chunks/{chunk-4EGX6M5U-D4gnRnMD.mjs → chunk-4EGX6M5U-t1h05MXS.mjs} +2 -2
- package/dist/chunks/{chunk-55IACEB6-eQD6P1N8.mjs → chunk-55IACEB6-Cq7FTvxb.mjs} +2 -2
- package/dist/chunks/{chunk-5DO6E6H7-CN3lZIoE.mjs → chunk-5DO6E6H7-Z2pYCl69.mjs} +2 -2
- package/dist/chunks/{chunk-5ZQYHXKU-CPXVTQ_e.mjs → chunk-5ZQYHXKU-fs0GqOvF.mjs} +43 -43
- package/dist/chunks/{chunk-727SXJPM-DZUlPaIu.mjs → chunk-727SXJPM-BKsM41W3.mjs} +9 -9
- package/dist/chunks/{chunk-AQP2D5EJ-D7G094pS.mjs → chunk-AQP2D5EJ-YdXH_I-o.mjs} +7 -7
- package/dist/chunks/{chunk-BR22UD5L-B6NbSBJl.mjs → chunk-BR22UD5L-CqFDPfGM.mjs} +2 -2
- package/dist/chunks/{chunk-BSJP7CBP-C7FGlEZG.mjs → chunk-BSJP7CBP-DpGSyAQh.mjs} +2 -2
- package/dist/chunks/{chunk-CSCIHK7Q-C4qT3Yrk.mjs → chunk-CSCIHK7Q-BO7tl9ID.mjs} +4 -4
- package/dist/chunks/{chunk-FHYWG6QK-CgSYG-YQ.mjs → chunk-FHYWG6QK-5Het-98V.mjs} +2 -2
- package/dist/chunks/{chunk-FMBD7UC4-2p6fg26u.mjs → chunk-FMBD7UC4-P_kboMJT.mjs} +2 -2
- package/dist/chunks/{chunk-KSCS5N6A-BVWs3LbG.mjs → chunk-KSCS5N6A-CvZAQU-1.mjs} +11 -11
- package/dist/chunks/{chunk-L5ZTLDWV-BFEdycvM.mjs → chunk-L5ZTLDWV-DZEL0gsI.mjs} +4 -4
- package/dist/chunks/{chunk-LZXEDZCA-6drnUsNy.mjs → chunk-LZXEDZCA-CRJ7-DY6.mjs} +8 -8
- package/dist/chunks/{chunk-MPE355IW-DHYWughe.mjs → chunk-MPE355IW-DLg3CsBw.mjs} +2 -2
- package/dist/chunks/{chunk-MZUSXYTE-BmUr1KX3.mjs → chunk-MZUSXYTE-CvsgXeJO.mjs} +2 -2
- package/dist/chunks/{chunk-N66VUXT2-D_6jZ3Vo.mjs → chunk-N66VUXT2-DoC3ggTc.mjs} +2 -2
- package/dist/chunks/{chunk-ND2GUHAM-DooE8X6i.mjs → chunk-ND2GUHAM-BcJIrltI.mjs} +4 -4
- package/dist/chunks/{chunk-NNHCCRGN-rJnsUrWl.mjs → chunk-NNHCCRGN-CH81dTHf.mjs} +1 -1
- package/dist/chunks/{chunk-NZK2D7GU-JW_qgPqa.mjs → chunk-NZK2D7GU-BnVJr7kf.mjs} +3 -3
- package/dist/chunks/{chunk-O5CBEL6O-GY6nZ-N7.mjs → chunk-O5CBEL6O-BeYkA-8N.mjs} +16 -16
- package/dist/chunks/{chunk-PUPMXCY4-DCIdSRFi.mjs → chunk-PUPMXCY4-D3Ub4pDo.mjs} +2 -2
- package/dist/chunks/{chunk-QZHKN3VN-C3N0_vEC.mjs → chunk-QZHKN3VN-ChiFJWT0.mjs} +2 -2
- package/dist/chunks/{chunk-UIBZB4QT-pyTElNc2.mjs → chunk-UIBZB4QT-BwApNyrQ.mjs} +2 -2
- package/dist/chunks/{chunk-WCWK7LTN-ClqBpBku.mjs → chunk-WCWK7LTN-D4OBOUIK.mjs} +2 -2
- package/dist/chunks/{chunk-WU5MYG2G-DLQN-5vb.mjs → chunk-WU5MYG2G-wN4cJZ_G.mjs} +3 -3
- package/dist/chunks/{chunk-XPW4576I-IlnbQHaA.mjs → chunk-XPW4576I-yOZxg2iY.mjs} +2 -2
- package/dist/chunks/classDiagram-4FO5ZUOK-BgQLsKDL.mjs +29 -0
- package/dist/chunks/classDiagram-v2-Q7XG4LA2-DS7F_M1n.mjs +29 -0
- package/dist/chunks/constants-PI1xjAeG.cjs +606 -0
- package/dist/chunks/{constants-DzQOOvgv.mjs → constants-vvNFp6FG.mjs} +392 -267
- package/dist/chunks/{core-DdDpt2u7.mjs → core-CJGckLsY.mjs} +31 -31
- package/dist/chunks/{core-CqiEzfU3.mjs → core-DeCMWrgN.mjs} +4 -4
- package/dist/chunks/{cose-bilkent-S5V4N54A-BronfFB-.mjs → cose-bilkent-S5V4N54A-NIONAJnp.mjs} +3 -3
- package/dist/chunks/{cytoscape.esm-QxDq63HI.mjs → cytoscape.esm-fziZOrCG.mjs} +1 -1
- package/dist/chunks/{dagre-BM42HDAG-B4WVdKOZ.mjs → dagre-BM42HDAG-DcOrN3pc.mjs} +14 -14
- package/dist/chunks/{dagre-DzOGad9N.mjs → dagre-CILRucyd.mjs} +107 -107
- package/dist/chunks/default-DFm_GbQ-.mjs +4 -0
- package/dist/chunks/{defaultLocale-BJwYPC-h.mjs → defaultLocale-C2VD4mLA.mjs} +12 -12
- package/dist/chunks/{diagram-2AECGRRQ-C22ThgiO.mjs → diagram-2AECGRRQ-DDwBTlvz.mjs} +7 -7
- package/dist/chunks/{diagram-5GNKFQAL-COelHuJn.mjs → diagram-5GNKFQAL-1sbWUr5e.mjs} +8 -8
- package/dist/chunks/{diagram-KO2AKTUF-CjLVtM94.mjs → diagram-KO2AKTUF-DhTFFKgx.mjs} +7 -7
- package/dist/chunks/{diagram-LMA3HP47-DqkuYFi9.mjs → diagram-LMA3HP47-DRr_84ZZ.mjs} +7 -7
- package/dist/chunks/{diagram-OG6HWLK6-390_YOO-.mjs → diagram-OG6HWLK6-C_5eu9Kf.mjs} +32 -32
- package/dist/chunks/{dist-CCXeNeCQ.mjs → dist-DRqr67zQ.mjs} +2 -2
- package/dist/chunks/{docx-preview-ulpDsaxt.mjs → docx-preview-CQ4QUFrd.mjs} +2 -2
- package/dist/chunks/{erDiagram-TEJ5UH35-BH0f96Pn.mjs → erDiagram-TEJ5UH35-C3Ohfkqu.mjs} +14 -14
- package/dist/chunks/eventmodeling-FCH6USID-BqDo_Sav.mjs +3 -0
- package/dist/chunks/{flowDiagram-I6XJVG4X-kZaqJYK1.mjs → flowDiagram-I6XJVG4X-DyXB0QVM.mjs} +17 -17
- package/dist/chunks/{ganttDiagram-6RSMTGT7-C3uQIARG.mjs → ganttDiagram-6RSMTGT7-82Iyg78i.mjs} +27 -27
- package/dist/chunks/gitGraph-WXDBUCRP-D-utqQiN.mjs +3 -0
- package/dist/chunks/{gitGraphDiagram-PVQCEYII-DQSTvBjy.mjs → gitGraphDiagram-PVQCEYII-D9V6dxzm.mjs} +7 -7
- package/dist/chunks/{graphlib-B0ANG2M6.mjs → graphlib-RxhPMq8I.mjs} +135 -135
- package/dist/chunks/{i18next-gGTtSkQg.mjs → i18next-C2REZNw2.mjs} +1 -1
- package/dist/chunks/{i18next-loader-BBPMegxc.cjs → i18next-loader-DVakgVCy.cjs} +1 -1
- package/dist/chunks/{i18next-loader-K-ir8UKk.mjs → i18next-loader-Dh4fP9we.mjs} +2 -2
- package/dist/chunks/info-J43DQDTF-D72knbmq.mjs +3 -0
- package/dist/chunks/{infoDiagram-5YYISTIA-CGpT_mPZ.mjs → infoDiagram-5YYISTIA-BxEJ_ib3.mjs} +5 -5
- package/dist/chunks/{init-hkDiJKhJ.mjs → init-BR8veUec.mjs} +1 -1
- package/dist/chunks/{ishikawaDiagram-YF4QCWOH-Ch9fmsWb.mjs → ishikawaDiagram-YF4QCWOH-CXe2kJsO.mjs} +6 -6
- package/dist/chunks/{journeyDiagram-JHISSGLW-CWv40lgD.mjs → journeyDiagram-JHISSGLW-DBhSi7Qg.mjs} +6 -6
- package/dist/chunks/{jszip.min-DoBCcllU.mjs → jszip.min-BsbMNjJg.mjs} +1 -1
- package/dist/chunks/{kanban-definition-UN3LZRKU-DSbXvrBB.mjs → kanban-definition-UN3LZRKU-CE4yr6J6.mjs} +11 -11
- package/dist/chunks/{katex-BIACU78Y.mjs → katex-DxQaNCxg.mjs} +1 -1
- package/dist/chunks/{lightweight-i18n-LFW8S8u-.cjs → lightweight-i18n-BnIqQ5Cf.cjs} +1 -1
- package/dist/chunks/{lightweight-i18n-DJpMke7a.mjs → lightweight-i18n-Cj88c8gl.mjs} +15 -0
- package/dist/chunks/{line-DU9tI1Tb.mjs → line-CQUUULPd.mjs} +4 -4
- package/dist/chunks/{linear-CPgdjDZh.mjs → linear-CAfvVXJc.mjs} +23 -23
- package/dist/chunks/{mdast-util-math-BNabERqA.mjs → mdast-util-math-Cpp9XOMP.mjs} +3 -3
- package/dist/chunks/{mermaid-parser.core-CRFj5ZQJ.mjs → mermaid-parser.core-B92FGYsA.mjs} +22 -22
- package/dist/chunks/{mermaid.core-D_2I8mjo.mjs → mermaid.core-BA9GkGKf.mjs} +52 -52
- package/dist/{messages-BI5B9bxE.mjs → chunks/messages-0EAci1N0.mjs} +15 -0
- package/dist/chunks/{messages-BkgBVEiE.cjs → messages-1jzEPeW5.cjs} +1 -1
- package/dist/chunks/{messages-CATH_uz1.mjs → messages-4CqVAaCY.mjs} +16 -1
- package/dist/chunks/{messages-DFHNw6PQ.cjs → messages-4Qka94cm.cjs} +1 -1
- package/dist/chunks/{messages-CBbgEXuO.cjs → messages-7wDDggws.cjs} +1 -1
- package/dist/chunks/{messages-B7st3eF_.cjs → messages-9VzB9Djh.cjs} +1 -1
- package/dist/chunks/{messages-B_cHWyWC.cjs → messages-9bK437Rh.cjs} +1 -1
- package/dist/chunks/{messages-CZddldga.cjs → messages-AtTKtjsQ.cjs} +1 -1
- package/dist/{messages-BOWDzfkH.mjs → chunks/messages-B1inw201.mjs} +16 -1
- package/dist/chunks/{messages-B-u5B7tY.cjs → messages-B4ZVgIh5.cjs} +1 -1
- package/dist/chunks/{messages-CJFSq8Fl.cjs → messages-B5bSFRCa.cjs} +1 -1
- package/dist/chunks/{messages-BRTWvTAP.mjs → messages-B705gxqz.mjs} +16 -1
- package/dist/{messages-Dq_RdEny2.mjs → chunks/messages-B7F3tX4u.mjs} +16 -1
- package/dist/chunks/{messages-NJAjMFXd.cjs → messages-BDer7I67.cjs} +1 -1
- package/dist/chunks/{messages-BV22YIZ_.cjs → messages-BEEGgtPo.cjs} +1 -1
- package/dist/{messages-bN4Zmk2m.mjs → chunks/messages-BGlEWmsB.mjs} +16 -1
- package/dist/{messages-Ao2vCNAH2.mjs → chunks/messages-BJJsuZhy.mjs} +16 -1
- package/dist/chunks/{messages-DjrfovG0.cjs → messages-BJcc9h6p.cjs} +1 -1
- package/dist/chunks/{messages-Hfo6uCIC.cjs → messages-BL-E2Kw3.cjs} +1 -1
- package/dist/chunks/{messages-5339ApgH.mjs → messages-BLJGzntb.mjs} +16 -1
- package/dist/chunks/{messages-Au1UpgkX.cjs → messages-BLNieIb-.cjs} +1 -1
- package/dist/chunks/{messages-DQJcAz4s.cjs → messages-BRbGk1-Z.cjs} +1 -1
- package/dist/chunks/{messages-BwOUSDJR.mjs → messages-BUlZRNoO.mjs} +15 -0
- package/dist/{messages-BKGg4XYm2.mjs → chunks/messages-BWQF9y2r.mjs} +16 -1
- package/dist/chunks/{messages-UXS3zL9A2.cjs → messages-BWh9I5Jv2.cjs} +1 -1
- package/dist/chunks/{messages-B6dbtt1c.cjs → messages-BX86v7Ev.cjs} +1 -1
- package/dist/chunks/{messages-DIFwztFo.cjs → messages-BYpvkG9S.cjs} +1 -1
- package/dist/chunks/{messages-C8_r3iTR2.mjs → messages-Bdw_vAdq2.mjs} +16 -1
- package/dist/chunks/{messages-DIetNXTx.cjs → messages-BeQVEC9q.cjs} +1 -1
- package/dist/{messages-CusWGsl42.mjs → chunks/messages-BeTZTXZm.mjs} +16 -1
- package/dist/chunks/{messages-CmsAbu_A.cjs → messages-BhTlR4PP.cjs} +1 -1
- package/dist/{messages-B2YnZIU2.mjs → chunks/messages-BhnZTZbQ.mjs} +16 -1
- package/dist/{messages-BpwhHkFb2.mjs → chunks/messages-BqJdoBHm.mjs} +16 -1
- package/dist/chunks/{messages-zPUQsksJ.mjs → messages-BqPiH7QC.mjs} +16 -1
- package/dist/chunks/{messages-CjfEt9bg.cjs → messages-Br_qu_wR.cjs} +1 -1
- package/dist/chunks/{messages-DtaPHADA.cjs → messages-BscUmD6D.cjs} +1 -1
- package/dist/{messages-Cg6a88Bb2.mjs → chunks/messages-Btapuvxo.mjs} +16 -1
- package/dist/chunks/{messages-CEySIig9.cjs → messages-BwCw0TJ1.cjs} +1 -1
- package/dist/chunks/{messages-BO-L5oN9.mjs → messages-C3RDWmXV.mjs} +15 -0
- package/dist/chunks/{messages-CZJZ-au3.cjs → messages-C3SZsVB9.cjs} +1 -1
- package/dist/chunks/{messages-DQr7bXMD.mjs → messages-C65mLRVK.mjs} +16 -1
- package/dist/chunks/{messages-CT8djlV6.cjs → messages-C73dKqPT.cjs} +1 -1
- package/dist/chunks/{messages-DOqJ6ogK.cjs → messages-C8f4kUOB.cjs} +1 -1
- package/dist/chunks/{messages-CIBYzzFy.mjs → messages-C9vfrzKQ.mjs} +16 -1
- package/dist/{messages-Grhv5SE_.mjs → chunks/messages-CEbe34zh.mjs} +15 -0
- package/dist/chunks/{messages-CcsM8Q7g.cjs → messages-CHEpECGv.cjs} +1 -1
- package/dist/chunks/{messages-DEg5FAg1.cjs → messages-CHP0nYRn.cjs} +1 -1
- package/dist/chunks/{messages-CjCn5IsF.mjs → messages-CIbh-0oJ.mjs} +16 -1
- package/dist/chunks/{messages-BHCepNsI.cjs → messages-CJC94Hci.cjs} +1 -1
- package/dist/chunks/{messages-ByNR9m9W.cjs → messages-CMP5dbqQ.cjs} +1 -1
- package/dist/chunks/{messages-DpNmnBjK.cjs → messages-CMm8FeOL.cjs} +1 -1
- package/dist/chunks/{messages-Da8yFc7l.cjs → messages-CNMPtWiq.cjs} +1 -1
- package/dist/chunks/{messages-Xh-c7d4C.mjs → messages-CQUr4lBa.mjs} +16 -1
- package/dist/{messages-Cvq2EFPT2.mjs → chunks/messages-CUuOX1k3.mjs} +16 -1
- package/dist/chunks/{messages-BsTzdfZF.cjs → messages-CVerbLou.cjs} +1 -1
- package/dist/{messages-CGiVoFTi.mjs → chunks/messages-CWW9OwKO.mjs} +16 -1
- package/dist/{messages-Da1woCgt2.mjs → chunks/messages-CWqap54p.mjs} +16 -1
- package/dist/{messages-CEGqNXnP.mjs → chunks/messages-CXNQBFHp.mjs} +16 -1
- package/dist/chunks/{messages-DgF8OkNr.mjs → messages-CYDhuSF4.mjs} +16 -1
- package/dist/chunks/{messages-Bp0LdGKj.mjs → messages-CYy3Zd3F.mjs} +15 -0
- package/dist/chunks/{messages-DHv7knYB.mjs → messages-C_BM_XHo.mjs} +16 -1
- package/dist/chunks/{messages-IqNWRaNS.cjs → messages-CbKOqXT6.cjs} +1 -1
- package/dist/chunks/{messages-Bmq--WTx.mjs → messages-CbxXU_Um.mjs} +15 -0
- package/dist/chunks/{messages-CVrOxu3J.cjs → messages-CcO-3_4k.cjs} +1 -1
- package/dist/chunks/{messages-D41fO84y.cjs → messages-CcTkC677.cjs} +1 -1
- package/dist/chunks/{messages-Cy-2_lIA.cjs → messages-CdEZ98_p.cjs} +1 -1
- package/dist/{messages-KyJQtOkh2.mjs → chunks/messages-CeZ1lo-o.mjs} +16 -1
- package/dist/chunks/{messages-D7H9JUDr.cjs → messages-CgFAGUJX.cjs} +1 -1
- package/dist/chunks/{messages-Dwl878eS.mjs → messages-CprMp4Va.mjs} +16 -1
- package/dist/chunks/{messages-DuD4ut1b.mjs → messages-CtXDxPOq.mjs} +16 -1
- package/dist/chunks/{messages-B_d857cA.mjs → messages-Cutnm4AZ.mjs} +15 -0
- package/dist/chunks/{messages-cSBZ5qVe.mjs → messages-CwIC_sse.mjs} +16 -1
- package/dist/chunks/{messages-7LWW3BVh.mjs → messages-CwbTr9lL.mjs} +16 -1
- package/dist/chunks/{messages-ETJ7tQ9O.cjs → messages-CxIknrw4.cjs} +1 -1
- package/dist/chunks/{messages-DjZoCJ00.mjs → messages-D0Jj7Dtw.mjs} +15 -0
- package/dist/chunks/{messages-SozFksSf.cjs → messages-D0th-I9S.cjs} +1 -1
- package/dist/chunks/{messages-gh5G15J1.cjs → messages-D1XTyTJz.cjs} +1 -1
- package/dist/chunks/{messages-DNtAzacv.mjs → messages-D24EoKbO.mjs} +16 -1
- package/dist/{messages-BlvF3pot.mjs → chunks/messages-D2chjyLM.mjs} +16 -1
- package/dist/chunks/{messages-CqRtDVFO.cjs → messages-D6y13edn.cjs} +1 -1
- package/dist/chunks/{messages-EsX3eikv.cjs → messages-D86p1eQY.cjs} +1 -1
- package/dist/{messages-BwCgJUdq.mjs → chunks/messages-D8L_8amv.mjs} +16 -1
- package/dist/chunks/{messages-C2ptZOWh.cjs → messages-DC-yFRyF.cjs} +1 -1
- package/dist/chunks/{messages-D4u2PSQw.mjs → messages-DEPxxCNU.mjs} +16 -1
- package/dist/chunks/{messages-VeyvtTce.cjs → messages-DG9l5agQ.cjs} +1 -1
- package/dist/chunks/{messages-B6794_2J.cjs → messages-DIeUb2w-.cjs} +1 -1
- package/dist/chunks/{messages-COx3hDcP.cjs → messages-DJ-RX5EJ.cjs} +1 -1
- package/dist/chunks/{messages-Cvg_uTfy.mjs → messages-DJ7lbpBX.mjs} +16 -1
- package/dist/{messages-Cn3uvFq3.mjs → chunks/messages-DJH_kd46.mjs} +16 -1
- package/dist/chunks/{messages-CWFSMzug2.cjs → messages-DLYl6KdK2.cjs} +1 -1
- package/dist/chunks/{messages-3jkCmB_A.mjs → messages-DMcCkOtN.mjs} +16 -1
- package/dist/chunks/{messages-BdL8bmTL.mjs → messages-DQks74hq.mjs} +16 -1
- package/dist/{messages-UJx6PvCL.mjs → chunks/messages-DTiqggtG.mjs} +16 -1
- package/dist/chunks/{messages-typO_i_k.mjs → messages-DTsSYToI.mjs} +15 -0
- package/dist/{messages-CwvHO8gp2.mjs → chunks/messages-DU6TOz6v.mjs} +16 -1
- package/dist/chunks/{messages-DmjccFHq.cjs → messages-DUbZA-w_.cjs} +1 -1
- package/dist/chunks/{messages-DCwrXfck.cjs → messages-DVAU-8rH.cjs} +1 -1
- package/dist/chunks/{messages-Z4LYgfWc.cjs → messages-Df6vXDrY.cjs} +1 -1
- package/dist/chunks/{messages-9B1F-k48.cjs → messages-Dh79ToYM.cjs} +1 -1
- package/dist/chunks/{messages-CuMtymEs.cjs → messages-Dh9psewW.cjs} +1 -1
- package/dist/chunks/{messages-BjYhwRk7.cjs → messages-Dln2T0zJ.cjs} +1 -1
- package/dist/chunks/{messages-DT-JnTnw.cjs → messages-DoA0Ecoi.cjs} +1 -1
- package/dist/{messages-RXQKVFCJ.mjs → chunks/messages-Dre_MB7o.mjs} +16 -1
- package/dist/chunks/{messages-BveiGA2x.cjs → messages-Dv4oyF7T.cjs} +1 -1
- package/dist/chunks/{messages-CkosWGGH.mjs → messages-FMAQkmg4.mjs} +15 -0
- package/dist/{messages-CQzOV7VE2.mjs → chunks/messages-GownDU-J.mjs} +16 -1
- package/dist/chunks/{messages-CH9SBR-i.cjs → messages-JYea02IT.cjs} +1 -1
- package/dist/chunks/{messages-BXp_U3uS.cjs → messages-JyzorVPx.cjs} +1 -1
- package/dist/chunks/{messages-jEbEE90_.mjs → messages-L70TFQAY.mjs} +16 -1
- package/dist/chunks/{messages-C0swL9CY.mjs → messages-L8CslBBZ.mjs} +16 -1
- package/dist/chunks/{messages-CM8uUnPx.cjs → messages-LX9PuLsT.cjs} +1 -1
- package/dist/chunks/{messages-BUvlOqll.mjs → messages-NFUr7Sxk.mjs} +16 -1
- package/dist/chunks/{messages-CGdCpNZ62.cjs → messages-PpRvDwOa2.cjs} +1 -1
- package/dist/chunks/{messages-ZMG7qQ3D.mjs → messages-QQ5-ET8y.mjs} +16 -1
- package/dist/chunks/{messages-DiODNXET.mjs → messages-Stf6rn2I.mjs} +16 -1
- package/dist/chunks/{messages-D7sU-NqL.cjs → messages-T8hCmys7.cjs} +1 -1
- package/dist/{messages-lnxRz5rM.mjs → chunks/messages-TZtv60nI.mjs} +16 -1
- package/dist/chunks/{messages-CeLv1whu2.mjs → messages-V9bvFOFc2.mjs} +16 -1
- package/dist/chunks/{messages-tR0BdeVG.cjs → messages-Vp8CpYh3.cjs} +1 -1
- package/dist/chunks/{messages-DUWCkLYR.cjs → messages-XqCqLy0k.cjs} +1 -1
- package/dist/{messages-CcF4SO9W.mjs → chunks/messages-_1y6EX7X.mjs} +16 -1
- package/dist/chunks/{messages-CXk-iM-i.mjs → messages-aTZglEV9.mjs} +16 -1
- package/dist/chunks/{messages-BHdKd7pH.cjs → messages-cSHh8Zgv.cjs} +1 -1
- package/dist/{messages-P5B61L1J2.mjs → chunks/messages-e8gxPi7a.mjs} +16 -1
- package/dist/chunks/{messages-CI2W7P-j.mjs → messages-hiwlrrr-.mjs} +16 -1
- package/dist/{messages-CeqpzGl9.mjs → chunks/messages-icPZhZ81.mjs} +15 -0
- package/dist/{messages-4drvqPN8.mjs → chunks/messages-lbwOYFxS2.mjs} +16 -1
- package/dist/chunks/{messages-B6yMdb3B.cjs → messages-lvo-9Be0.cjs} +1 -1
- package/dist/chunks/{messages-B2iaIrIu.mjs → messages-rm6jXexA.mjs} +16 -1
- package/dist/chunks/{messages-Ciq5_PsP.cjs → messages-sTyGkmbu.cjs} +1 -1
- package/dist/{messages-CF5MeYEt2.mjs → chunks/messages-uBwK-Ze2.mjs} +16 -1
- package/dist/chunks/{messages-BaVZgTrw.cjs → messages-uOISsfmj.cjs} +1 -1
- package/dist/chunks/{messages-MPe9FjYe.mjs → messages-wq0vxJ3p.mjs} +16 -1
- package/dist/chunks/{messages-CQT8TtiF.cjs → messages-z2DzBRgO.cjs} +1 -1
- package/dist/chunks/{micromark-extension-math-CJDP6iIU.mjs → micromark-extension-math-COSLlhTC.mjs} +6 -6
- package/dist/chunks/{micromark-factory-space-C6wz33de.mjs → micromark-factory-space-CLWSfTEG.mjs} +2 -2
- package/dist/chunks/{mindmap-definition-RKZ34NQL-Bh7eb0sP.mjs → mindmap-definition-RKZ34NQL-Dklc3Py2.mjs} +16 -16
- package/dist/chunks/{native-RS5RJIVO.mjs → native-BE2uW7dn.mjs} +1 -1
- package/dist/chunks/{ordinal-FCgpEo3E.mjs → ordinal-Qrn6pSTz.mjs} +3 -3
- package/dist/chunks/packet-YPE3B663-BehYuyRA.mjs +3 -0
- package/dist/chunks/{path-CCKeP0zq.mjs → path-CMz47XM0.mjs} +3 -3
- package/dist/chunks/pie-LRSECV5Y-C85c3T2E.mjs +3 -0
- package/dist/chunks/{pieDiagram-4H26LBE5-Bn2IEjeH.mjs → pieDiagram-4H26LBE5-DgCAhu_N.mjs} +14 -14
- package/dist/chunks/{prism-bash-D4zr_u8t.mjs → prism-bash-C0O3w7uz.mjs} +1 -1
- package/dist/chunks/{prism-cpp-CrBJjuu5.mjs → prism-cpp-2GQhW27l.mjs} +1 -1
- package/dist/chunks/{prism-csharp-lrMxvYpL.mjs → prism-csharp-DL7dZG1j.mjs} +1 -1
- package/dist/chunks/{prism-css-VQTID_HR.mjs → prism-css-CNvzB07F.mjs} +1 -1
- package/dist/chunks/{prism-dart-Q-9Z_W9B.mjs → prism-dart-DfjFPoDv.mjs} +1 -1
- package/dist/chunks/{prism-docker-DWAQ3dDD.mjs → prism-docker-BYbfweTi.mjs} +1 -1
- package/dist/chunks/{prism-java-_m72Vn1f.mjs → prism-java-DVDstRX2.mjs} +1 -1
- package/dist/chunks/{prism-kotlin-BTT9anu1.mjs → prism-kotlin-B4yZP901.mjs} +1 -1
- package/dist/chunks/{prism-latex-CL8zDJwm.mjs → prism-latex-D6GsLRnS.mjs} +1 -1
- package/dist/chunks/{prism-lua-D6JJ7p-A.mjs → prism-lua-CJX1SQiz.mjs} +1 -1
- package/dist/chunks/{prism-markdown-D6D8BprH.mjs → prism-markdown-C4FwQHMu.mjs} +1 -1
- package/dist/chunks/{prism-markup-templating-DfRjv0mn.mjs → prism-markup-templating-CmFWyrMp.mjs} +1 -1
- package/dist/chunks/{prism-php-DffX-wRi.mjs → prism-php-D1En1wGd.mjs} +1 -1
- package/dist/chunks/{prism-r-CU9se1Na.mjs → prism-r-DmduEoWu.mjs} +1 -1
- package/dist/chunks/{prism-ruby-DuQ4syPd.mjs → prism-ruby-BX9M-ggZ.mjs} +1 -1
- package/dist/chunks/{prism-rust-DRurCx4W.mjs → prism-rust-CW_lhKyK.mjs} +1 -1
- package/dist/chunks/{prism-sql-Au3VVcw1.mjs → prism-sql-CsK4eHq9.mjs} +1 -1
- package/dist/chunks/{prism-typescript-BKj96rmj.mjs → prism-typescript-Ca1YH5jC.mjs} +1 -1
- package/dist/chunks/{prism-yaml-Bk31kvSd.mjs → prism-yaml-CA6Sp5jk.mjs} +1 -1
- package/dist/chunks/{purify.es-Cg3Sx1In.mjs → purify.es-W8MRy_-c.mjs} +1 -1
- package/dist/chunks/{quadrantDiagram-W4KKPZXB-CGpTgKv9.mjs → quadrantDiagram-W4KKPZXB-BwDXU7bs.mjs} +4 -4
- package/dist/chunks/radar-GUYGQ44K-DGjR4vAz.mjs +3 -0
- package/dist/chunks/{requirementDiagram-4Y6WPE33-CdEklBE5.mjs → requirementDiagram-4Y6WPE33-C8uQNZti.mjs} +13 -13
- package/dist/chunks/{rough.esm-D0yWqsMu.mjs → rough.esm-BMiXn97a.mjs} +1 -1
- package/dist/chunks/{sanitize-url-DzTIH3XF.mjs → sanitize-url-Pw_yecwg.mjs} +70 -70
- package/dist/chunks/{sankeyDiagram-5OEKKPKP-C7B8TYyO.mjs → sankeyDiagram-5OEKKPKP-BJwtjvLG.mjs} +18 -18
- package/dist/chunks/{sequenceDiagram-3UESZ5HK-Wb1gzfDh.mjs → sequenceDiagram-3UESZ5HK-BHEbMtdM.mjs} +8 -8
- package/dist/chunks/{src-BMRCbUmP.mjs → src-uHD1i8ix.mjs} +86 -86
- package/dist/chunks/{stateDiagram-AJRCARHV-B1UbFikz.mjs → stateDiagram-AJRCARHV-D2di7cb4.mjs} +17 -17
- package/dist/chunks/stateDiagram-v2-BHNVJYJU-uJvNkDGf.mjs +27 -0
- package/dist/chunks/{timeline-definition-PNZ67QCA-Dr0oEljt.mjs → timeline-definition-PNZ67QCA-CkldAvjX.mjs} +6 -6
- package/dist/chunks/tools-B6rEBe-4.cjs +208 -0
- package/dist/chunks/{tools-CelSzJoA.mjs → tools-BQo4iaMe.mjs} +2565 -2497
- package/dist/chunks/treeView-BLDUP644-DhLdRehp.mjs +3 -0
- package/dist/chunks/treemap-LRROVOQU-CgXHb4o7.mjs +3 -0
- package/dist/chunks/{types-gj36fzRQ.mjs → types-BdXoqAkw.mjs} +1 -1
- package/dist/chunks/{vennDiagram-CIIHVFJN-Bc4yalKA.mjs → vennDiagram-CIIHVFJN-BuYgzRtw.mjs} +7 -7
- package/dist/chunks/wardley-L42UT6IY-sN5mOUNm.mjs +3 -0
- package/dist/chunks/{wardleyDiagram-YWT4CUSO-Ce_btexJ.mjs → wardleyDiagram-YWT4CUSO-CN5Jfm2D.mjs} +7 -7
- package/dist/chunks/{webm-muxer-Doy8JtlV.mjs → webm-muxer-B4_guPR0.mjs} +1 -1
- package/dist/chunks/{xychartDiagram-2RQKCTM6-HhACbhVa.mjs → xychartDiagram-2RQKCTM6-DAcdK50J.mjs} +12 -12
- package/dist/full.cjs +1 -1
- package/dist/full.mjs +3 -3
- package/dist/locales.mjs +82 -67
- package/dist/markdown.mjs +2 -2
- package/dist/{chunks/messages-DDJkNbJy.mjs → messages--sHkn4PD.mjs} +16 -1
- package/dist/{chunks/messages-QCaF3d92.mjs → messages-4mxgsYKZ2.mjs} +16 -1
- package/dist/{messages-zOl6jpOa.mjs → messages-6fQMeTiI.mjs} +16 -1
- package/dist/{messages-BRLWpOnP.mjs → messages-B22G0fir.mjs} +16 -1
- package/dist/{chunks/messages-kqnzps-X.mjs → messages-B908tGhl.mjs} +16 -1
- package/dist/{messages-CDueJTe8.mjs → messages-BAUvKI0_.mjs} +16 -1
- package/dist/{chunks/messages-BpMWMH9_.mjs → messages-BAfMwQnT2.mjs} +16 -1
- package/dist/{messages-Bmu3rJwO.mjs → messages-BCk7o4Pz.mjs} +16 -1
- package/dist/{messages-D4dovFzY2.mjs → messages-BG2BE6Sg2.mjs} +16 -1
- package/dist/{messages-DR2JBU-H.mjs → messages-BGe6GS_j.mjs} +16 -1
- package/dist/{chunks/messages-CeIzWL_4.mjs → messages-BHLrVFmZ2.mjs} +16 -1
- package/dist/{chunks/messages-HJnG9r2l.mjs → messages-BJjffJIu.mjs} +16 -1
- package/dist/{messages-CUcUO5bC2.mjs → messages-BSGZSOH32.mjs} +16 -1
- package/dist/{messages-HVgCKIww2.mjs → messages-BT6TyDYQ2.mjs} +16 -1
- package/dist/{messages-jQsl7cga2.mjs → messages-BWZ0_zUi2.mjs} +16 -1
- package/dist/{chunks/messages-DDX6I6MX.mjs → messages-BWhJgyhl.mjs} +16 -1
- package/dist/{messages-CqZgsrVP2.mjs → messages-BXqLaS2g2.mjs} +16 -1
- package/dist/{messages-gTUy3xjb.mjs → messages-BZiuFv_O.mjs} +15 -0
- package/dist/{messages-DcQNeoPB.mjs → messages-Bb-XEtyl.mjs} +15 -0
- package/dist/{messages-C9Kq8259.mjs → messages-BkKAnFz_.mjs} +15 -0
- package/dist/{messages-BarhGl2S2.mjs → messages-BoLu5_Wp2.mjs} +16 -1
- package/dist/{chunks/messages-D-p-omWy.mjs → messages-BpqRzil6.mjs} +16 -1
- package/dist/{messages-C6R0bzW5.mjs → messages-C2E8rQjb.mjs} +15 -0
- package/dist/{messages-BIgvPd6I2.mjs → messages-C2JJxi5D2.mjs} +16 -1
- package/dist/{messages-jsrzDVZy2.mjs → messages-C4d1_z432.mjs} +16 -1
- package/dist/{messages-L4sYfXpM.mjs → messages-C5Igyij0.mjs} +16 -1
- package/dist/{messages-CAnOyxrm.mjs → messages-C8fscB2J.mjs} +16 -1
- package/dist/{chunks/messages-CX0tJpOb.mjs → messages-CD8CgT1F.mjs} +16 -1
- package/dist/{messages-BKG0QHVl.mjs → messages-CDxPk3xE.mjs} +15 -0
- package/dist/{messages-hGop1gbF.mjs → messages-CGXrIdHT.mjs} +15 -0
- package/dist/{chunks/messages-DuHFGMCJ.mjs → messages-CHfkCxGQ2.mjs} +16 -1
- package/dist/{messages-fAEKzdUq.mjs → messages-CMvNzksb.mjs} +16 -1
- package/dist/{chunks/messages-t26x8wxB.mjs → messages-CSIhcdDx2.mjs} +16 -1
- package/dist/{chunks/messages-D-QWtvWg.mjs → messages-CW5z5hSz.mjs} +16 -1
- package/dist/{chunks/messages-CUPup5e3.mjs → messages-CYvpDx4p2.mjs} +16 -1
- package/dist/{chunks/messages-Ca9zIrBo.mjs → messages-CcTlmrYs.mjs} +16 -1
- package/dist/{chunks/messages-B01D7aHY.mjs → messages-Ce8ShL0-.mjs} +16 -1
- package/dist/{chunks/messages-CbyVDo8y.mjs → messages-CgT32m3D.mjs} +15 -0
- package/dist/{chunks/messages-ypIHI9Fr.mjs → messages-CmCBnNtA2.mjs} +16 -1
- package/dist/{messages-DGAWjKQZ.mjs → messages-CneVTJSN.mjs} +16 -1
- package/dist/{messages-C5IE9mXm.mjs → messages-CpNerer8.mjs} +15 -0
- package/dist/{chunks/messages-D-s4_vnU.mjs → messages-Cs0L1gyv.mjs} +16 -1
- package/dist/{chunks/messages-BYCHzM7F.mjs → messages-CsGnp1wE2.mjs} +16 -1
- package/dist/{messages-BgPDPIkO.mjs → messages-CvbIxcr7.mjs} +16 -1
- package/dist/{messages-wmS6Z2m82.mjs → messages-Cx6oQfMR2.mjs} +16 -1
- package/dist/{messages-BvutXmgt.mjs → messages-DBESJOhQ.mjs} +16 -1
- package/dist/{chunks/messages-Cl_pM31G.mjs → messages-DGOBPnKC2.mjs} +16 -1
- package/dist/{messages-B13GEFFu.mjs → messages-DK2AwXAp.mjs} +16 -1
- package/dist/{messages-CUFac9Qe.mjs → messages-DMbnesQ9.mjs} +16 -1
- package/dist/{chunks/messages-Byn9-dhb2.mjs → messages-DOiSOenW.mjs} +16 -1
- package/dist/{messages-8__-vX3U.mjs → messages-DQqp_ANL.mjs} +16 -1
- package/dist/{chunks/messages-Ck1-ddbo.mjs → messages-DThG2jW-2.mjs} +16 -1
- package/dist/{chunks/messages-DQfi2DoY.mjs → messages-DXlB7Vpm.mjs} +16 -1
- package/dist/{messages-VIQ8vjvS.mjs → messages-De0NAxJt.mjs} +15 -0
- package/dist/{chunks/messages-Bb80Csl3.mjs → messages-Depz8d3Q.mjs} +15 -0
- package/dist/{messages-BQaiScU1.mjs → messages-Dfsw3a8v.mjs} +16 -1
- package/dist/{messages-D9qgYMU82.mjs → messages-Dhmmqob82.mjs} +16 -1
- package/dist/{messages-DbE-riR52.mjs → messages-DmNUAv0e2.mjs} +16 -1
- package/dist/{messages-Ch-SytN8.mjs → messages-DrQaJrDO.mjs} +16 -1
- package/dist/{chunks/messages-C3rGCBi_.mjs → messages-DsksuHtZ.mjs} +16 -1
- package/dist/{chunks/messages-m-A6ArIM.mjs → messages-DzOVTq3E2.mjs} +16 -1
- package/dist/{messages-CskLLTiG2.mjs → messages-Igpt5WIA2.mjs} +16 -1
- package/dist/{messages-yuNINyS1.mjs → messages-JhpGtjjS.mjs} +16 -1
- package/dist/{chunks/messages-BbZz_Anm.mjs → messages-WCy1wiGS2.mjs} +16 -1
- package/dist/{chunks/messages-CRUb9o5k.mjs → messages-XbA-jXKc.mjs} +15 -0
- package/dist/{chunks/messages-BeS9EOEO.mjs → messages-imHGm9SI2.mjs} +16 -1
- package/dist/{messages-BQhHthxq2.mjs → messages-yTNyxXRV2.mjs} +16 -1
- 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 +3 -3
- package/src/components/i18n/locales/am/messages.json +16 -1
- package/src/components/i18n/locales/ar/messages.json +16 -1
- package/src/components/i18n/locales/az/messages.json +16 -1
- package/src/components/i18n/locales/bg/messages.json +16 -1
- package/src/components/i18n/locales/bn/messages.json +16 -1
- package/src/components/i18n/locales/bs/messages.json +16 -1
- package/src/components/i18n/locales/cs/messages.json +16 -1
- package/src/components/i18n/locales/da/messages.json +16 -1
- package/src/components/i18n/locales/de/messages.json +16 -1
- package/src/components/i18n/locales/dv/messages.json +16 -1
- package/src/components/i18n/locales/el/messages.json +16 -1
- package/src/components/i18n/locales/en/messages.json +15 -0
- package/src/components/i18n/locales/es/messages.json +15 -0
- package/src/components/i18n/locales/et/messages.json +15 -0
- package/src/components/i18n/locales/fa/messages.json +15 -0
- package/src/components/i18n/locales/fi/messages.json +15 -0
- package/src/components/i18n/locales/fil/messages.json +15 -0
- package/src/components/i18n/locales/fr/messages.json +15 -0
- package/src/components/i18n/locales/gu/messages.json +15 -0
- package/src/components/i18n/locales/he/messages.json +15 -0
- package/src/components/i18n/locales/hi/messages.json +15 -0
- package/src/components/i18n/locales/hr/messages.json +15 -0
- package/src/components/i18n/locales/hu/messages.json +15 -0
- package/src/components/i18n/locales/hy/messages.json +16 -1
- package/src/components/i18n/locales/id/messages.json +16 -1
- package/src/components/i18n/locales/it/messages.json +16 -1
- package/src/components/i18n/locales/ja/messages.json +16 -1
- package/src/components/i18n/locales/ka/messages.json +16 -1
- package/src/components/i18n/locales/km/messages.json +16 -1
- package/src/components/i18n/locales/kn/messages.json +16 -1
- package/src/components/i18n/locales/ko/messages.json +16 -1
- package/src/components/i18n/locales/ku/messages.json +16 -1
- package/src/components/i18n/locales/lo/messages.json +16 -1
- package/src/components/i18n/locales/lt/messages.json +16 -1
- package/src/components/i18n/locales/lv/messages.json +16 -1
- package/src/components/i18n/locales/mk/messages.json +16 -1
- package/src/components/i18n/locales/ml/messages.json +16 -1
- package/src/components/i18n/locales/mn/messages.json +16 -1
- package/src/components/i18n/locales/mr/messages.json +16 -1
- package/src/components/i18n/locales/ms/messages.json +16 -1
- package/src/components/i18n/locales/my/messages.json +16 -1
- package/src/components/i18n/locales/ne/messages.json +16 -1
- package/src/components/i18n/locales/nl/messages.json +16 -1
- package/src/components/i18n/locales/no/messages.json +16 -1
- package/src/components/i18n/locales/pa/messages.json +16 -1
- package/src/components/i18n/locales/pl/messages.json +16 -1
- package/src/components/i18n/locales/ps/messages.json +16 -1
- package/src/components/i18n/locales/pt/messages.json +16 -1
- package/src/components/i18n/locales/ro/messages.json +16 -1
- package/src/components/i18n/locales/ru/messages.json +16 -1
- package/src/components/i18n/locales/sd/messages.json +16 -1
- package/src/components/i18n/locales/si/messages.json +16 -1
- package/src/components/i18n/locales/sk/messages.json +16 -1
- package/src/components/i18n/locales/sl/messages.json +16 -1
- package/src/components/i18n/locales/sq/messages.json +16 -1
- package/src/components/i18n/locales/sr/messages.json +16 -1
- package/src/components/i18n/locales/sv/messages.json +16 -1
- package/src/components/i18n/locales/sw/messages.json +16 -1
- package/src/components/i18n/locales/ta/messages.json +16 -1
- package/src/components/i18n/locales/te/messages.json +16 -1
- package/src/components/i18n/locales/th/messages.json +16 -1
- package/src/components/i18n/locales/tr/messages.json +16 -1
- package/src/components/i18n/locales/ug/messages.json +16 -1
- package/src/components/i18n/locales/uk/messages.json +16 -1
- package/src/components/i18n/locales/ur/messages.json +16 -1
- package/src/components/i18n/locales/vi/messages.json +16 -1
- package/src/components/i18n/locales/yi/messages.json +16 -1
- package/src/components/i18n/locales/zh/messages.json +16 -1
- package/src/components/modules/api/blocks.ts +1 -1
- package/src/components/modules/blockManager/blockManager.ts +2 -2
- package/src/components/modules/paste/index.ts +31 -2
- package/src/components/modules/paste/notion-blocks-v3.ts +654 -0
- package/src/components/modules/paste/notion-preprocessor.ts +67 -0
- package/src/components/modules/yjs/serializer.ts +1 -1
- package/src/components/utils/data-model-transform.ts +15 -15
- package/src/components/utils/media-empty-state.ts +48 -5
- package/src/components/utils/popover/popover-desktop.ts +6 -3
- package/src/components/utils/tooltip.ts +5 -38
- package/src/markdown/markdown-handler.ts +1 -2
- package/src/styles/audio.css +348 -36
- package/src/styles/tables.css +10 -0
- package/src/tools/audio/constants.ts +6 -0
- package/src/tools/audio/controls.ts +53 -7
- package/src/tools/audio/cover-picker.ts +126 -0
- package/src/tools/audio/disc.ts +137 -0
- package/src/tools/audio/index.ts +114 -6
- package/src/tools/audio/liveliness.ts +26 -8
- package/src/tools/audio/ui.ts +39 -4
- package/types/api/tooltip.d.ts +40 -1
- package/types/data-formats/output-data.d.ts +5 -2
- package/types/index.d.ts +1 -4
- package/types/tools/database.d.ts +1 -1
- package/types/tools/header.d.ts +2 -1
- package/types/tools/list.d.ts +2 -1
- package/types/utils/popover/popover.d.ts +42 -1
- package/dist/chunks/architecture-7EHR7CIX-CGYZJshv.mjs +0 -3
- package/dist/chunks/channel-dq5ps1Yn.mjs +0 -5
- package/dist/chunks/classDiagram-4FO5ZUOK-C3CxSQxy.mjs +0 -29
- package/dist/chunks/classDiagram-v2-Q7XG4LA2-Ci_JeHz0.mjs +0 -29
- package/dist/chunks/constants-DmKwEMyC.cjs +0 -606
- package/dist/chunks/default-qigT1Xpq.mjs +0 -4
- package/dist/chunks/eventmodeling-FCH6USID-nCBtSITo.mjs +0 -3
- package/dist/chunks/gitGraph-WXDBUCRP-CN_MBj94.mjs +0 -3
- package/dist/chunks/info-J43DQDTF-xmJNmT0e.mjs +0 -3
- package/dist/chunks/packet-YPE3B663-3bNcBJRE.mjs +0 -3
- package/dist/chunks/pie-LRSECV5Y-YTwc-ZG1.mjs +0 -3
- package/dist/chunks/radar-GUYGQ44K-vfGwdTFY.mjs +0 -3
- package/dist/chunks/stateDiagram-v2-BHNVJYJU-D6E4HlFi.mjs +0 -27
- package/dist/chunks/tools-BcF1rHBg.cjs +0 -208
- package/dist/chunks/treeView-BLDUP644-BptrPFA0.mjs +0 -3
- package/dist/chunks/treemap-LRROVOQU-BbiNBKy3.mjs +0 -3
- package/dist/chunks/wardley-L42UT6IY-Ck6iMjTG.mjs +0 -3
package/src/styles/audio.css
CHANGED
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
--blok-audio-pad: var(--blok-space-3-5);
|
|
21
21
|
--blok-audio-radius: var(--blok-radius-md);
|
|
22
22
|
--blok-audio-wave-height: 56px;
|
|
23
|
-
--blok-audio-bar-height:
|
|
23
|
+
--blok-audio-bar-height: 4px;
|
|
24
|
+
/* lift the slim slider thumbs (volume + speed) off the track so they read as
|
|
25
|
+
tactile pucks rather than flat dots */
|
|
26
|
+
--blok-audio-thumb-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
|
|
24
27
|
--blok-audio-ctrl-size: 30px;
|
|
25
28
|
--blok-audio-play-size: 36px;
|
|
26
29
|
--blok-audio-bar: var(--blok-border-subtle);
|
|
@@ -33,6 +36,46 @@
|
|
|
33
36
|
--blok-audio-speed-pct: 50%;
|
|
34
37
|
--blok-audio-pulse-ring: color-mix(in srgb, var(--blok-text-primary) 20%, transparent);
|
|
35
38
|
|
|
39
|
+
/* no-cover vinyl placeholder — a glossy black record. The disc body is built
|
|
40
|
+
from --blok-overlay-dark (near-black in both themes) so it always reads as
|
|
41
|
+
vinyl, not a grey CD; grooves + sheen are white at low alpha, the label is
|
|
42
|
+
a cream-white puck, the spindle is a crisp dark dot. A fixed specular sits
|
|
43
|
+
above the disc (placeholder::after) so grooves shimmer *under* it as it spins. */
|
|
44
|
+
--blok-audio-disc-size: 92px;
|
|
45
|
+
--blok-audio-groove-w: 0.75px;
|
|
46
|
+
--blok-audio-groove-gap: 2px;
|
|
47
|
+
--blok-audio-cover-glow: color-mix(in srgb, var(--blok-bg-primary) 55%, transparent);
|
|
48
|
+
/* glossy black record body: a near-black face with a centre→edge vignette so it
|
|
49
|
+
reads as a curved, light-catching surface rather than a flat circle. */
|
|
50
|
+
--blok-audio-disc-base: var(--blok-overlay-dark);
|
|
51
|
+
--blok-audio-disc-deep: color-mix(in srgb, #000 42%, var(--blok-overlay-dark));
|
|
52
|
+
--blok-audio-disc-edge: color-mix(in srgb, var(--blok-text-on-dark) 6%, var(--blok-overlay-dark));
|
|
53
|
+
--blok-audio-disc-groove: color-mix(in srgb, var(--blok-text-on-dark) 8%, transparent);
|
|
54
|
+
--blok-audio-disc-rim: color-mix(in srgb, var(--blok-text-on-dark) 16%, transparent);
|
|
55
|
+
--blok-audio-disc-rim-light: color-mix(in srgb, var(--blok-text-on-dark) 26%, transparent);
|
|
56
|
+
/* fixed specular reflection — two bright bands of "light" the grooves shimmer
|
|
57
|
+
under as the disc spins (this is what sells real glossy vinyl). */
|
|
58
|
+
--blok-audio-disc-sheen: color-mix(in srgb, var(--blok-text-on-dark) 32%, transparent);
|
|
59
|
+
--blok-audio-disc-sheen-soft: color-mix(in srgb, var(--blok-text-on-dark) 12%, transparent);
|
|
60
|
+
/* a soft highlight wedge printed on the disc — sweeps round with the grooves so
|
|
61
|
+
the (otherwise radially-symmetric) spin actually reads as motion. */
|
|
62
|
+
--blok-audio-disc-shine: color-mix(in srgb, var(--blok-text-on-dark) 10%, transparent);
|
|
63
|
+
/* centre label — a matte, faintly warm cream puck (not a flat white disc) */
|
|
64
|
+
--blok-audio-disc-label: color-mix(in srgb, var(--blok-text-on-dark) 93%, var(--blok-overlay-dark));
|
|
65
|
+
--blok-audio-disc-label-hi: var(--blok-text-on-dark);
|
|
66
|
+
--blok-audio-disc-label-edge: color-mix(in srgb, var(--blok-text-on-dark) 72%, var(--blok-overlay-dark));
|
|
67
|
+
--blok-audio-disc-label-ring: color-mix(in srgb, var(--blok-overlay-dark) 24%, transparent);
|
|
68
|
+
--blok-audio-disc-hole: var(--blok-overlay-dark);
|
|
69
|
+
/* opaque fill for the reflection mask (only its alpha matters) */
|
|
70
|
+
--blok-audio-mask-solid: #000;
|
|
71
|
+
/* depth shadows for the disc rim, label lift and spindle catch-light */
|
|
72
|
+
--blok-audio-disc-inner-shadow: rgba(0, 0, 0, 0.5);
|
|
73
|
+
--blok-audio-label-shadow: rgba(0, 0, 0, 0.35);
|
|
74
|
+
--blok-audio-spindle-catch: rgba(255, 255, 255, 0.4);
|
|
75
|
+
/* cover overlay button — a semi-transparent dark scrim (same near-black as
|
|
76
|
+
the disc, blended down to ~45% opacity so the art shows through) */
|
|
77
|
+
--blok-audio-cover-scrim: color-mix(in srgb, var(--blok-overlay-dark) 50%, transparent);
|
|
78
|
+
|
|
36
79
|
position: relative;
|
|
37
80
|
margin: var(--blok-space-2-5) 0;
|
|
38
81
|
font-family: var(--blok-font-family, var(--blok-font-sans));
|
|
@@ -70,6 +113,20 @@
|
|
|
70
113
|
display: none;
|
|
71
114
|
}
|
|
72
115
|
|
|
116
|
+
/* Top-of-card toolbar anchor — a zero-size marker the editor centers the +/tunes
|
|
117
|
+
buttons on. Pinned to the top-left of the grid; line-height stays a hair above 0
|
|
118
|
+
(the positioner floors a 0 line-height back to its 24px default), so the buttons
|
|
119
|
+
land flush with the top of the cover art. */
|
|
120
|
+
[data-blok-tool="audio"] .blok-audio-toolbar-anchor {
|
|
121
|
+
grid-column: 1;
|
|
122
|
+
grid-row: 1;
|
|
123
|
+
align-self: start;
|
|
124
|
+
width: 0;
|
|
125
|
+
height: 0;
|
|
126
|
+
line-height: 1px;
|
|
127
|
+
pointer-events: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
73
130
|
/* ----- block selection ------------------------------------ */
|
|
74
131
|
[data-blok-element-content].bg-selection:has([data-blok-tool="audio"]) {
|
|
75
132
|
background-color: transparent;
|
|
@@ -100,13 +157,215 @@
|
|
|
100
157
|
object-fit: cover;
|
|
101
158
|
display: block;
|
|
102
159
|
}
|
|
160
|
+
|
|
161
|
+
/* ----- change-cover overlay button (edit mode only) -------- */
|
|
162
|
+
/* Stretches across the full cover panel; stays invisible until the cover
|
|
163
|
+
is hovered or the button receives keyboard focus — preventing it from
|
|
164
|
+
obscuring the art in read-only contexts. */
|
|
165
|
+
[data-blok-tool="audio"] .blok-audio-cover__change {
|
|
166
|
+
position: absolute;
|
|
167
|
+
inset: 0;
|
|
168
|
+
display: grid;
|
|
169
|
+
place-items: center;
|
|
170
|
+
border: 0;
|
|
171
|
+
margin: 0;
|
|
172
|
+
padding: 0;
|
|
173
|
+
cursor: pointer;
|
|
174
|
+
color: var(--blok-text-on-dark);
|
|
175
|
+
background: var(--blok-audio-cover-scrim);
|
|
176
|
+
opacity: 0;
|
|
177
|
+
transition: opacity var(--blok-duration-base) ease;
|
|
178
|
+
}
|
|
179
|
+
[data-blok-tool="audio"] .blok-audio-cover:hover .blok-audio-cover__change,
|
|
180
|
+
[data-blok-tool="audio"] .blok-audio-cover.is-picker-open .blok-audio-cover__change,
|
|
181
|
+
[data-blok-tool="audio"] .blok-audio-cover__change:focus-visible {
|
|
182
|
+
opacity: 1;
|
|
183
|
+
}
|
|
184
|
+
[data-blok-tool="audio"] .blok-audio-cover__change svg {
|
|
185
|
+
width: 20px;
|
|
186
|
+
height: 20px;
|
|
187
|
+
pointer-events: none;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* ----- cover-picker dialog (top-layer promoted) ------------- */
|
|
191
|
+
/* The dialog is its own elevated surface so the media-empty card inside layers
|
|
192
|
+
correctly. Two UA/reset hazards to beat:
|
|
193
|
+
1. The `[data-blok-top-layer][popover]` reset in main.css (specificity 0,0,2,0)
|
|
194
|
+
forces width:auto and strips border/padding — without an explicit width the
|
|
195
|
+
flex-column surface collapses to a ~2px sliver. So every box-model property
|
|
196
|
+
is re-asserted with matching specificity (mirrors the image-lightbox /
|
|
197
|
+
file-preview precedent).
|
|
198
|
+
2. The UA `[popover]` rule paints `background: Canvas` (white) and the reset
|
|
199
|
+
does NOT clear it. The media-empty card uses --blok-bg-secondary, which in
|
|
200
|
+
the dark theme is a translucent white overlay meant to sit on a dark parent;
|
|
201
|
+
over the white canvas it reads white. Painting the dialog with the solid
|
|
202
|
+
--blok-bg-primary surface gives that overlay the dark backdrop it expects.
|
|
203
|
+
Width stays a plain length (not a --blok-space token) per the proven pattern;
|
|
204
|
+
the other surface tokens resolve fine on the promoted element (colors +
|
|
205
|
+
spacing are bridged to [data-blok-top-layer]). The base rule covers the
|
|
206
|
+
no-Popover-API fallback (element stays in normal flow, no reset applied). */
|
|
207
|
+
.blok-audio-cover-picker,
|
|
208
|
+
.blok-audio-cover-picker[data-blok-top-layer][popover] {
|
|
209
|
+
z-index: 1;
|
|
210
|
+
width: min(440px, calc(100vw - 32px));
|
|
211
|
+
padding: var(--blok-space-2);
|
|
212
|
+
background: var(--blok-bg-primary);
|
|
213
|
+
border: 1px solid var(--blok-border-subtle);
|
|
214
|
+
border-radius: var(--blok-radius-lg);
|
|
215
|
+
box-shadow: var(--blok-popover-box-shadow);
|
|
216
|
+
}
|
|
217
|
+
/* The picker lives at document.body, outside blok's scoped border-box reset, so
|
|
218
|
+
its subtree would default to content-box. The media-empty Upload/Link height-
|
|
219
|
+
swap animation measures the border-box height but animates the `height`
|
|
220
|
+
property — under content-box that adds the panel padding on top, overshooting
|
|
221
|
+
then snapping back (a visible height jump). Match the inline (border-box)
|
|
222
|
+
context the component was built for. */
|
|
223
|
+
.blok-audio-cover-picker,
|
|
224
|
+
.blok-audio-cover-picker * {
|
|
225
|
+
box-sizing: border-box;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* Entrance — the picker rises + scales up from its top-left anchor corner so it
|
|
229
|
+
reads as growing out of the cover, matching the block's own mount language
|
|
230
|
+
(blok-audio-rise / --blok-ease-popover). The directional content slide between
|
|
231
|
+
the Upload/Link tabs is driven from media-empty-state.ts (WAAPI). */
|
|
232
|
+
.blok-audio-cover-picker {
|
|
233
|
+
transform-origin: top left;
|
|
234
|
+
animation: blok-audio-cover-picker-in var(--blok-duration-slow) var(--blok-ease-popover) both;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@keyframes blok-audio-cover-picker-in {
|
|
238
|
+
from { opacity: 0; transform: translateY(-6px) scale(0.96); }
|
|
239
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@media (prefers-reduced-motion: reduce) {
|
|
243
|
+
.blok-audio-cover-picker { animation: none; }
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* ----- no-cover placeholder: a glossy black vinyl record --- */
|
|
103
247
|
[data-blok-tool="audio"] .blok-audio-cover__placeholder {
|
|
248
|
+
position: relative;
|
|
104
249
|
display: flex;
|
|
250
|
+
align-items: center;
|
|
251
|
+
justify-content: center;
|
|
252
|
+
width: 100%;
|
|
253
|
+
height: 100%;
|
|
254
|
+
/* faint top-centre sheen so the panel has depth behind the disc */
|
|
255
|
+
background: radial-gradient(120% 90% at 50% 36%, var(--blok-audio-cover-glow), transparent 70%);
|
|
105
256
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
257
|
+
|
|
258
|
+
/* fixed specular glint pinned over the disc — it does NOT rotate, so the grooves
|
|
259
|
+
shimmer beneath it as the record spins (the bit that sells the motion). */
|
|
260
|
+
[data-blok-tool="audio"] .blok-audio-cover__placeholder::after {
|
|
261
|
+
content: "";
|
|
262
|
+
position: absolute;
|
|
263
|
+
top: 50%;
|
|
264
|
+
left: 50%;
|
|
265
|
+
width: var(--blok-audio-disc-size);
|
|
266
|
+
height: var(--blok-audio-disc-size);
|
|
267
|
+
transform: translate(-50%, -50%);
|
|
268
|
+
border-radius: var(--blok-radius-pill);
|
|
269
|
+
background:
|
|
270
|
+
/* bright crescent of light along the top rim */
|
|
271
|
+
radial-gradient(72% 50% at 50% 2%, var(--blok-audio-disc-sheen), transparent 60%),
|
|
272
|
+
/* the main gloss: two opposed soft bands (a vinyl "bow-tie" reflection) */
|
|
273
|
+
conic-gradient(
|
|
274
|
+
from 142deg at 50% 50%,
|
|
275
|
+
transparent 0 6%,
|
|
276
|
+
var(--blok-audio-disc-sheen) 15%,
|
|
277
|
+
transparent 30% 64%,
|
|
278
|
+
var(--blok-audio-disc-sheen-soft) 80%,
|
|
279
|
+
transparent 92% 100%
|
|
280
|
+
),
|
|
281
|
+
/* faint bounce light in the lower-right quadrant */
|
|
282
|
+
radial-gradient(44% 36% at 72% 84%, var(--blok-audio-disc-sheen-soft), transparent 62%);
|
|
283
|
+
/* the gloss only lives on the vinyl — keep it off the matte paper label */
|
|
284
|
+
mask: radial-gradient(circle at center, transparent 30%, var(--blok-audio-mask-solid) 40%);
|
|
285
|
+
-webkit-mask: radial-gradient(circle at center, transparent 30%, var(--blok-audio-mask-solid) 40%);
|
|
286
|
+
pointer-events: none;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* the record body: fine concentric grooves over a near-black radial face,
|
|
290
|
+
lifted off the panel by an inset rim + soft shadow. Its rotation is driven
|
|
291
|
+
imperatively by disc.ts (transform: rotate), which spins the platter up on
|
|
292
|
+
play and lets it coast down on pause — so the disc has real inertia rather
|
|
293
|
+
than snapping on/off with a CSS animation. */
|
|
294
|
+
[data-blok-tool="audio"] .blok-audio-cover__disc {
|
|
295
|
+
position: relative;
|
|
296
|
+
will-change: transform;
|
|
297
|
+
width: var(--blok-audio-disc-size);
|
|
298
|
+
height: var(--blok-audio-disc-size);
|
|
299
|
+
border-radius: var(--blok-radius-pill);
|
|
300
|
+
background:
|
|
301
|
+
/* soft shine wedge that rotates with the grooves (rotation feedback) */
|
|
302
|
+
conic-gradient(
|
|
303
|
+
from 210deg,
|
|
304
|
+
transparent 0 64%,
|
|
305
|
+
var(--blok-audio-disc-shine) 78%,
|
|
306
|
+
transparent 92% 100%
|
|
307
|
+
),
|
|
308
|
+
/* a bright hairline run just inside the edge — the glossy outer bevel */
|
|
309
|
+
radial-gradient(
|
|
310
|
+
circle at center,
|
|
311
|
+
transparent 82%,
|
|
312
|
+
var(--blok-audio-disc-rim-light) 85% 87%,
|
|
313
|
+
transparent 90%
|
|
314
|
+
),
|
|
315
|
+
/* fine concentric grooves */
|
|
316
|
+
repeating-radial-gradient(
|
|
317
|
+
circle at center,
|
|
318
|
+
var(--blok-audio-disc-groove) 0 var(--blok-audio-groove-w),
|
|
319
|
+
transparent var(--blok-audio-groove-w) var(--blok-audio-groove-gap)
|
|
320
|
+
),
|
|
321
|
+
/* glossy black face with a centre→edge vignette (curved-surface shading) */
|
|
322
|
+
radial-gradient(
|
|
323
|
+
circle at center,
|
|
324
|
+
var(--blok-audio-disc-edge) 0 14%,
|
|
325
|
+
var(--blok-audio-disc-base) 44%,
|
|
326
|
+
var(--blok-audio-disc-base) 72%,
|
|
327
|
+
var(--blok-audio-disc-deep) 100%
|
|
328
|
+
);
|
|
329
|
+
box-shadow:
|
|
330
|
+
inset 0 0 0 1px var(--blok-audio-disc-rim),
|
|
331
|
+
inset 0 0 7px var(--blok-audio-disc-inner-shadow),
|
|
332
|
+
var(--blok-image-shadow-resting);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/* centre label — a small matte cream puck with a printed concentric ring */
|
|
336
|
+
[data-blok-tool="audio"] .blok-audio-cover__disc::before {
|
|
337
|
+
content: "";
|
|
338
|
+
position: absolute;
|
|
339
|
+
inset: 36%;
|
|
340
|
+
border-radius: var(--blok-radius-pill);
|
|
341
|
+
background:
|
|
342
|
+
/* a thin printed ring near the label rim */
|
|
343
|
+
radial-gradient(
|
|
344
|
+
circle at center,
|
|
345
|
+
transparent 58%,
|
|
346
|
+
var(--blok-audio-disc-label-ring) 60% 64%,
|
|
347
|
+
transparent 66%
|
|
348
|
+
),
|
|
349
|
+
/* paper with a soft off-axis sheen */
|
|
350
|
+
radial-gradient(
|
|
351
|
+
circle at 40% 34%,
|
|
352
|
+
var(--blok-audio-disc-label-hi),
|
|
353
|
+
var(--blok-audio-disc-label) 52%,
|
|
354
|
+
var(--blok-audio-disc-label-edge)
|
|
355
|
+
);
|
|
356
|
+
box-shadow:
|
|
357
|
+
inset 0 0 0 1px var(--blok-audio-disc-rim),
|
|
358
|
+
0 1px 1px var(--blok-audio-label-shadow);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/* spindle hole — a crisp dark dot with a tiny rim catch */
|
|
362
|
+
[data-blok-tool="audio"] .blok-audio-cover__disc::after {
|
|
363
|
+
content: "";
|
|
364
|
+
position: absolute;
|
|
365
|
+
inset: 47%;
|
|
366
|
+
border-radius: var(--blok-radius-pill);
|
|
367
|
+
background: var(--blok-audio-disc-hole);
|
|
368
|
+
box-shadow: inset 0 1px 1px var(--blok-audio-spindle-catch);
|
|
110
369
|
}
|
|
111
370
|
|
|
112
371
|
/* ----- right column (title + artist + waveform + controls) - */
|
|
@@ -180,8 +439,12 @@
|
|
|
180
439
|
margin-top: var(--blok-space-1);
|
|
181
440
|
}
|
|
182
441
|
|
|
183
|
-
/* generic control button
|
|
184
|
-
|
|
442
|
+
/* generic control button — scoped to <button> so the volume <input> and the
|
|
443
|
+
time <span> (both carry data-role) keep their own slim/text styling instead
|
|
444
|
+
of being clobbered into a 30px pill. Every button-specific rule below is also
|
|
445
|
+
anchored on `button[data-role…]` so they share this rule's specificity and
|
|
446
|
+
win on source order. */
|
|
447
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role] {
|
|
185
448
|
flex-shrink: 0;
|
|
186
449
|
display: inline-grid;
|
|
187
450
|
place-items: center;
|
|
@@ -195,20 +458,20 @@
|
|
|
195
458
|
cursor: pointer;
|
|
196
459
|
transition: background var(--blok-duration-base) ease, color var(--blok-duration-base) ease, transform var(--blok-duration-base) ease;
|
|
197
460
|
}
|
|
198
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role]:hover {
|
|
461
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role]:hover {
|
|
199
462
|
background: var(--blok-bg-hover);
|
|
200
463
|
color: var(--blok-text-primary);
|
|
201
464
|
}
|
|
202
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role]:active {
|
|
465
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role]:active {
|
|
203
466
|
transform: scale(0.92);
|
|
204
467
|
}
|
|
205
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role] svg {
|
|
468
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role] svg {
|
|
206
469
|
width: 17px;
|
|
207
470
|
height: 17px;
|
|
208
471
|
}
|
|
209
472
|
|
|
210
473
|
/* play / pause — filled black puck */
|
|
211
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-play"] {
|
|
474
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-play"] {
|
|
212
475
|
width: var(--blok-audio-play-size);
|
|
213
476
|
height: var(--blok-audio-play-size);
|
|
214
477
|
margin-right: var(--blok-space-0-5);
|
|
@@ -216,15 +479,15 @@
|
|
|
216
479
|
color: var(--blok-bg-primary);
|
|
217
480
|
box-shadow: var(--blok-image-shadow-resting);
|
|
218
481
|
}
|
|
219
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-play"]:hover {
|
|
482
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-play"]:hover {
|
|
220
483
|
background: var(--blok-text-primary);
|
|
221
484
|
color: var(--blok-bg-primary);
|
|
222
485
|
transform: scale(1.05);
|
|
223
486
|
}
|
|
224
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-play"]:active {
|
|
487
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-play"]:active {
|
|
225
488
|
transform: scale(0.96);
|
|
226
489
|
}
|
|
227
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-play"] svg {
|
|
490
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-play"] svg {
|
|
228
491
|
width: 19px;
|
|
229
492
|
height: 19px;
|
|
230
493
|
}
|
|
@@ -278,6 +541,7 @@
|
|
|
278
541
|
height: 12px;
|
|
279
542
|
border-radius: var(--blok-radius-pill);
|
|
280
543
|
background: var(--blok-text-primary);
|
|
544
|
+
box-shadow: var(--blok-audio-thumb-shadow);
|
|
281
545
|
}
|
|
282
546
|
[data-blok-tool="audio"] .blok-audio-controls__volume::-moz-range-thumb {
|
|
283
547
|
width: 12px;
|
|
@@ -285,14 +549,15 @@
|
|
|
285
549
|
border: 0;
|
|
286
550
|
border-radius: var(--blok-radius-pill);
|
|
287
551
|
background: var(--blok-text-primary);
|
|
552
|
+
box-shadow: var(--blok-audio-thumb-shadow);
|
|
288
553
|
}
|
|
289
554
|
|
|
290
555
|
/* loop active state — neutral black, no accent color */
|
|
291
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-loop"][aria-pressed="true"] {
|
|
556
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-loop"][aria-pressed="true"] {
|
|
292
557
|
color: var(--blok-bg-primary);
|
|
293
558
|
background: var(--blok-text-primary);
|
|
294
559
|
}
|
|
295
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-loop"][aria-pressed="true"]:hover {
|
|
560
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-loop"][aria-pressed="true"]:hover {
|
|
296
561
|
color: var(--blok-bg-primary);
|
|
297
562
|
background: var(--blok-text-primary);
|
|
298
563
|
}
|
|
@@ -303,7 +568,7 @@
|
|
|
303
568
|
display: inline-flex;
|
|
304
569
|
flex-shrink: 0;
|
|
305
570
|
}
|
|
306
|
-
[data-blok-tool="audio"] .blok-audio-controls [data-role="audio-speed"][aria-expanded="true"] {
|
|
571
|
+
[data-blok-tool="audio"] .blok-audio-controls button[data-role="audio-speed"][aria-expanded="true"] {
|
|
307
572
|
background: var(--blok-bg-hover);
|
|
308
573
|
color: var(--blok-text-primary);
|
|
309
574
|
}
|
|
@@ -332,10 +597,50 @@
|
|
|
332
597
|
margin-bottom: var(--blok-space-2);
|
|
333
598
|
}
|
|
334
599
|
|
|
600
|
+
/* − [slider] + — flat icon steppers flank a flexible track (mirrors the video
|
|
601
|
+
player's speed control). */
|
|
602
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-slider-row {
|
|
603
|
+
display: flex;
|
|
604
|
+
align-items: center;
|
|
605
|
+
gap: var(--blok-space-1-5);
|
|
606
|
+
margin-bottom: var(--blok-space-2);
|
|
607
|
+
}
|
|
608
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-step {
|
|
609
|
+
display: grid;
|
|
610
|
+
place-items: center;
|
|
611
|
+
flex-shrink: 0;
|
|
612
|
+
width: 24px;
|
|
613
|
+
height: 24px;
|
|
614
|
+
padding: 0;
|
|
615
|
+
border: 0;
|
|
616
|
+
border-radius: var(--blok-radius-sm);
|
|
617
|
+
background: transparent;
|
|
618
|
+
color: var(--blok-text-tertiary);
|
|
619
|
+
cursor: pointer;
|
|
620
|
+
transition: background var(--blok-duration-base) ease, color var(--blok-duration-base) ease, transform var(--blok-duration-base) ease, opacity var(--blok-duration-base) ease;
|
|
621
|
+
}
|
|
622
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-step:hover {
|
|
623
|
+
background: var(--blok-bg-hover);
|
|
624
|
+
color: var(--blok-text-primary);
|
|
625
|
+
}
|
|
626
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-step:active {
|
|
627
|
+
transform: scale(0.92);
|
|
628
|
+
}
|
|
629
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-step:disabled {
|
|
630
|
+
opacity: 0.35;
|
|
631
|
+
cursor: default;
|
|
632
|
+
transform: none;
|
|
633
|
+
}
|
|
634
|
+
[data-blok-tool="audio"] .blok-audio-controls__speed-step svg {
|
|
635
|
+
width: 15px;
|
|
636
|
+
height: 15px;
|
|
637
|
+
}
|
|
638
|
+
|
|
335
639
|
[data-blok-tool="audio"] .blok-audio-controls__speed-slider {
|
|
336
|
-
|
|
640
|
+
flex: 1 1 auto;
|
|
641
|
+
min-width: 0;
|
|
337
642
|
height: var(--blok-audio-bar-height);
|
|
338
|
-
margin: 0
|
|
643
|
+
margin: 0;
|
|
339
644
|
-webkit-appearance: none;
|
|
340
645
|
appearance: none;
|
|
341
646
|
background: linear-gradient(
|
|
@@ -353,6 +658,7 @@
|
|
|
353
658
|
height: 12px;
|
|
354
659
|
border-radius: var(--blok-radius-pill);
|
|
355
660
|
background: var(--blok-text-primary);
|
|
661
|
+
box-shadow: var(--blok-audio-thumb-shadow);
|
|
356
662
|
}
|
|
357
663
|
[data-blok-tool="audio"] .blok-audio-controls__speed-slider::-moz-range-thumb {
|
|
358
664
|
width: 12px;
|
|
@@ -360,6 +666,7 @@
|
|
|
360
666
|
border: 0;
|
|
361
667
|
border-radius: var(--blok-radius-pill);
|
|
362
668
|
background: var(--blok-text-primary);
|
|
669
|
+
box-shadow: var(--blok-audio-thumb-shadow);
|
|
363
670
|
}
|
|
364
671
|
|
|
365
672
|
[data-blok-tool="audio"] .blok-audio-controls__speed-chips {
|
|
@@ -386,30 +693,29 @@
|
|
|
386
693
|
}
|
|
387
694
|
|
|
388
695
|
/* ----- caption row (full-width footer) --------------------
|
|
389
|
-
The row
|
|
390
|
-
|
|
391
|
-
|
|
696
|
+
The row claims its full height in a single layout step; the visible reveal
|
|
697
|
+
rides transform + opacity on the inner, keeping the whole animation on the
|
|
698
|
+
compositor. This is deliberate: animating the row's *height* would resize the
|
|
699
|
+
card every frame, forcing a re-raster of its 24px-blur box-shadow and the
|
|
700
|
+
high-DPI waveform canvas each frame — which is what made the toggle lag.
|
|
701
|
+
overflow:hidden clips the inner as it slides; padding/border live on the
|
|
702
|
+
caption child below so they're clipped too. */
|
|
392
703
|
[data-blok-tool="audio"] .blok-audio-caption-row {
|
|
393
704
|
grid-column: 1 / -1;
|
|
394
705
|
grid-row: 2;
|
|
395
|
-
|
|
396
|
-
grid-template-rows: 1fr;
|
|
397
|
-
transition:
|
|
398
|
-
grid-template-rows var(--blok-duration-slow) var(--blok-ease-popover),
|
|
399
|
-
opacity var(--blok-duration-slow) var(--blok-ease-popover);
|
|
400
|
-
}
|
|
401
|
-
[data-blok-tool="audio"] .blok-audio-caption-row.is-collapsed {
|
|
402
|
-
grid-template-rows: 0fr;
|
|
403
|
-
opacity: 0;
|
|
706
|
+
overflow: hidden;
|
|
404
707
|
}
|
|
405
|
-
/* overflow:hidden + min-height:0 lets the grid track collapse fully to 0; the
|
|
406
|
-
padding/border live on the caption child below so they get clipped too. */
|
|
407
708
|
[data-blok-tool="audio"] .blok-audio-caption-row__inner {
|
|
408
|
-
min-height: 0;
|
|
409
|
-
overflow: hidden;
|
|
410
709
|
display: flex;
|
|
411
710
|
align-items: flex-start;
|
|
412
711
|
gap: var(--blok-space-2);
|
|
712
|
+
transition:
|
|
713
|
+
transform var(--blok-duration-slow) var(--blok-ease-popover),
|
|
714
|
+
opacity var(--blok-duration-slow) var(--blok-ease-popover);
|
|
715
|
+
}
|
|
716
|
+
[data-blok-tool="audio"] .blok-audio-caption-row.is-collapsed .blok-audio-caption-row__inner {
|
|
717
|
+
transform: translateY(6px);
|
|
718
|
+
opacity: 0;
|
|
413
719
|
}
|
|
414
720
|
[data-blok-tool="audio"] .blok-audio-caption {
|
|
415
721
|
flex: 1 1 auto;
|
|
@@ -518,6 +824,9 @@
|
|
|
518
824
|
50% { height: 96%; }
|
|
519
825
|
}
|
|
520
826
|
|
|
827
|
+
/* The vinyl placeholder's spin is driven by disc.ts (inertial rotation via
|
|
828
|
+
transform), not a CSS animation — see the .blok-audio-cover__disc rule. */
|
|
829
|
+
|
|
521
830
|
/* ----- 3. play puck heartbeat while playing ---------------------- */
|
|
522
831
|
[data-blok-tool="audio"] .blok-audio-inner[data-playing="true"] .blok-audio-controls [data-role="audio-play"] {
|
|
523
832
|
animation: blok-audio-pulse var(--blok-duration-rotation) var(--blok-ease-spring) infinite;
|
|
@@ -546,6 +855,9 @@
|
|
|
546
855
|
}
|
|
547
856
|
/* The badge still appears while playing — it just holds steady. */
|
|
548
857
|
[data-blok-tool="audio"] .blok-audio-eq { transition: none; }
|
|
858
|
+
/* The record holds still under reduced motion (disc.ts skips the spin loop). */
|
|
549
859
|
/* Caption appears/disappears instantly (JS also takes the instant path). */
|
|
550
|
-
[data-blok-tool="audio"] .blok-audio-caption-
|
|
860
|
+
[data-blok-tool="audio"] .blok-audio-caption-row__inner { transition: none; }
|
|
861
|
+
/* Cover overlay button appears instantly — no fade. */
|
|
862
|
+
[data-blok-tool="audio"] .blok-audio-cover__change { transition: none; }
|
|
551
863
|
}
|
package/src/styles/tables.css
CHANGED
|
@@ -152,3 +152,13 @@
|
|
|
152
152
|
[data-blok-theme="dark"] [data-blok-interface] [data-blok-table-haze="right"] {
|
|
153
153
|
background-image: linear-gradient(to left, var(--blok-dark), transparent);
|
|
154
154
|
}
|
|
155
|
+
|
|
156
|
+
/* Table card pins its top toolbar anchor absolutely to the (position:relative)
|
|
157
|
+
wrapper top, so the +/tunes buttons sit flush with the table's top edge while
|
|
158
|
+
the marker stays out of the flow — it never becomes the wrapper's firstChild,
|
|
159
|
+
which the grid/scroll structure relies on. */
|
|
160
|
+
[data-blok-tool="table"] .blok-toolbar-top-anchor {
|
|
161
|
+
position: absolute;
|
|
162
|
+
top: 0;
|
|
163
|
+
left: 0;
|
|
164
|
+
}
|
|
@@ -19,3 +19,9 @@ export const COVER_DATA_URL_CAP_BYTES = 150 * 1024;
|
|
|
19
19
|
|
|
20
20
|
/** Direct links to a playable audio file. */
|
|
21
21
|
export const URL_PATTERN = /^https?:\/\/\S+\.(mp3|wav|ogg|oga|m4a|aac|flac|weba)(\?\S*)?$/i;
|
|
22
|
+
|
|
23
|
+
/** Accepted cover-image MIME types (family wildcard). */
|
|
24
|
+
export const COVER_TYPES = ['image/*'] as const;
|
|
25
|
+
|
|
26
|
+
/** Max cover-image size in bytes. */
|
|
27
|
+
export const COVER_MAX_SIZE = 10 * 1024 * 1024; // 10 MiB
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
IconMinus,
|
|
2
3
|
IconPlayerLoop,
|
|
3
4
|
IconPlayerPause,
|
|
4
5
|
IconPlayerPlay,
|
|
@@ -6,7 +7,9 @@ import {
|
|
|
6
7
|
IconPlayerSpeed,
|
|
7
8
|
IconPlayerVolume,
|
|
8
9
|
IconPlayerVolumeMute,
|
|
10
|
+
IconPlus,
|
|
9
11
|
} from '../../components/icons';
|
|
12
|
+
import { createPlatterSpin } from './disc';
|
|
10
13
|
import type { AudioData } from '../../../types/tools/audio';
|
|
11
14
|
|
|
12
15
|
/** Minimal storage seam (localStorage-shaped) for volume + position persistence. */
|
|
@@ -99,11 +102,17 @@ export function attachControls({
|
|
|
99
102
|
|
|
100
103
|
const state = { playing: false, selectedRate: 1 };
|
|
101
104
|
|
|
105
|
+
// Inertial spin for the no-cover vinyl record (no-op when a cover image is
|
|
106
|
+
// shown — the disc only exists in the placeholder). Spins up on play, coasts
|
|
107
|
+
// down on pause.
|
|
108
|
+
const platter = createPlatterSpin(figure);
|
|
109
|
+
|
|
102
110
|
const setPlaying = (next: boolean): void => {
|
|
103
111
|
state.playing = next;
|
|
104
112
|
figure.setAttribute('data-playing', String(next));
|
|
105
113
|
playToggle.innerHTML = next ? IconPlayerPause : IconPlayerPlay;
|
|
106
114
|
playToggle.setAttribute('aria-label', next ? 'Pause' : 'Play');
|
|
115
|
+
if (next) platter.start(); else platter.stop();
|
|
107
116
|
};
|
|
108
117
|
setPlaying(false);
|
|
109
118
|
|
|
@@ -139,7 +148,10 @@ export function attachControls({
|
|
|
139
148
|
muteToggle.innerHTML = muted ? IconPlayerVolumeMute : IconPlayerVolume;
|
|
140
149
|
muteToggle.setAttribute('aria-label', muted ? 'Unmute' : 'Mute');
|
|
141
150
|
volumeInput.value = muted ? '0' : String(media.volume);
|
|
142
|
-
|
|
151
|
+
// audio.css paints the filled track from --blok-audio-vol-pct (same naming
|
|
152
|
+
// as the speed slider's --blok-audio-speed-pct); writing any other name
|
|
153
|
+
// freezes the fill at its 100% default, so muted looks identical to full.
|
|
154
|
+
volumeInput.style.setProperty('--blok-audio-vol-pct', `${Number(volumeInput.value) * 100}%`);
|
|
143
155
|
};
|
|
144
156
|
|
|
145
157
|
// ----- persistence -----
|
|
@@ -207,6 +219,20 @@ export function attachControls({
|
|
|
207
219
|
speedReadout.setAttribute('aria-hidden', 'true');
|
|
208
220
|
speedReadout.textContent = speedLabel(state.selectedRate);
|
|
209
221
|
|
|
222
|
+
// − [slider] + — flat steppers flank the track, mirroring the video player.
|
|
223
|
+
// Identified by class only (no data-role) so the generic button[data-role]
|
|
224
|
+
// control-button rule doesn't size them into 30px pills.
|
|
225
|
+
const speedStepper = (icon: string, label: string): HTMLButtonElement => {
|
|
226
|
+
const btn = document.createElement('button');
|
|
227
|
+
btn.type = 'button';
|
|
228
|
+
btn.className = 'blok-audio-controls__speed-step';
|
|
229
|
+
btn.setAttribute('aria-label', label);
|
|
230
|
+
btn.innerHTML = icon;
|
|
231
|
+
return btn;
|
|
232
|
+
};
|
|
233
|
+
const speedDec = speedStepper(IconMinus, 'Decrease playback speed');
|
|
234
|
+
const speedInc = speedStepper(IconPlus, 'Increase playback speed');
|
|
235
|
+
|
|
210
236
|
const speedSlider = document.createElement('input');
|
|
211
237
|
speedSlider.type = 'range';
|
|
212
238
|
speedSlider.className = 'blok-audio-controls__speed-slider';
|
|
@@ -216,6 +242,12 @@ export function attachControls({
|
|
|
216
242
|
speedSlider.value = String(state.selectedRate);
|
|
217
243
|
speedSlider.setAttribute('aria-label', 'Playback speed');
|
|
218
244
|
|
|
245
|
+
// Drive the elapsed-fill gradient from JS so the painted track tracks the
|
|
246
|
+
// native knob exactly (same approach as the volume + video sliders).
|
|
247
|
+
const speedFillPct = (rate: number): string =>
|
|
248
|
+
`${((rate - SPEED_MIN) / (SPEED_MAX - SPEED_MIN)) * 100}%`;
|
|
249
|
+
speedSlider.style.setProperty('--blok-audio-speed-pct', speedFillPct(state.selectedRate));
|
|
250
|
+
|
|
219
251
|
const setRate = (rate: number): void => {
|
|
220
252
|
const next = clampRate(rate);
|
|
221
253
|
state.selectedRate = next;
|
|
@@ -223,11 +255,25 @@ export function attachControls({
|
|
|
223
255
|
speedReadout.textContent = speedLabel(next);
|
|
224
256
|
speedSlider.value = String(next);
|
|
225
257
|
speedSlider.setAttribute('aria-valuetext', speedLabel(next));
|
|
258
|
+
speedSlider.style.setProperty('--blok-audio-speed-pct', speedFillPct(next));
|
|
259
|
+
speedDec.disabled = next <= SPEED_MIN;
|
|
260
|
+
speedInc.disabled = next >= SPEED_MAX;
|
|
226
261
|
};
|
|
227
262
|
|
|
228
263
|
const onSpeedSliderInput = (): void => setRate(Number(speedSlider.value));
|
|
229
264
|
speedSlider.addEventListener('input', onSpeedSliderInput);
|
|
230
|
-
|
|
265
|
+
speedDec.addEventListener('click', () => setRate(state.selectedRate - SPEED_SLIDER_STEP));
|
|
266
|
+
speedInc.addEventListener('click', () => setRate(state.selectedRate + SPEED_SLIDER_STEP));
|
|
267
|
+
speedDec.disabled = state.selectedRate <= SPEED_MIN;
|
|
268
|
+
speedInc.disabled = state.selectedRate >= SPEED_MAX;
|
|
269
|
+
|
|
270
|
+
const speedSliderRow = document.createElement('div');
|
|
271
|
+
speedSliderRow.className = 'blok-audio-controls__speed-slider-row';
|
|
272
|
+
speedSliderRow.append(speedDec, speedSlider, speedInc);
|
|
273
|
+
|
|
274
|
+
// Quiet quick-jump presets (mirrors the video player): every chip reads the
|
|
275
|
+
// same muted weight, lifting only on hover. The live rate is communicated by
|
|
276
|
+
// the readout + slider knob, not a filled "selected" chip.
|
|
231
277
|
const speedChipRow = document.createElement('div');
|
|
232
278
|
speedChipRow.className = 'blok-audio-controls__speed-chips';
|
|
233
279
|
SPEED_PRESETS.forEach((rate) => {
|
|
@@ -235,14 +281,13 @@ export function attachControls({
|
|
|
235
281
|
chip.type = 'button';
|
|
236
282
|
chip.className = 'blok-audio-controls__speed-chip';
|
|
237
283
|
chip.textContent = `${rate}×`;
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
});
|
|
284
|
+
// Apply the preset but leave the menu open so the user can keep nudging the
|
|
285
|
+
// rate (slider/steppers/other presets) without re-opening it each time.
|
|
286
|
+
chip.addEventListener('click', () => setRate(rate));
|
|
242
287
|
speedChipRow.appendChild(chip);
|
|
243
288
|
});
|
|
244
289
|
|
|
245
|
-
speedMenu.append(speedReadout,
|
|
290
|
+
speedMenu.append(speedReadout, speedSliderRow, speedChipRow);
|
|
246
291
|
|
|
247
292
|
// Gear + menu share a positioned wrapper so the menu anchors directly above
|
|
248
293
|
// the gear button (rather than the card corner).
|
|
@@ -391,6 +436,7 @@ export function attachControls({
|
|
|
391
436
|
|
|
392
437
|
// ----- destroy -----
|
|
393
438
|
const destroy = (): void => {
|
|
439
|
+
platter.destroy();
|
|
394
440
|
closeSpeedMenu();
|
|
395
441
|
|
|
396
442
|
playToggle.removeEventListener('click', togglePlay);
|