@jackuait/blok 0.20.0 → 0.21.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 +41 -41
- package/dist/chunks/{APEv2Parser-dFboX-HT.mjs → APEv2Parser-WvRvu4zL.mjs} +5 -5
- package/dist/chunks/{AbstractID3Parser-qvoGRhB4.mjs → AbstractID3Parser-DM9acVTg.mjs} +5 -5
- package/dist/chunks/{AiffParser-DVe3cNKY.mjs → AiffParser-C_VaWeb5.mjs} +5 -5
- package/dist/chunks/{AsfParser-DrzvMHO9.mjs → AsfParser-CH5F_9Wp.mjs} +7 -7
- package/dist/chunks/{BasicParser-BLAlEKys.mjs → BasicParser-BFTgNkp-.mjs} +2 -2
- package/dist/chunks/{DsdiffParser-uZBv6Bc_.mjs → DsdiffParser-BAdYwB7y.mjs} +5 -5
- package/dist/chunks/{DsfParser-DLra1i8X.mjs → DsfParser-DWMLfBH1.mjs} +5 -5
- package/dist/chunks/{FlacParser-DGd7sQuD.mjs → FlacParser-BdKXrY7L.mjs} +6 -6
- package/dist/chunks/{ID3v1Parser-CJMR_CT_.mjs → ID3v1Parser-DoxlznrE.mjs} +3 -3
- package/dist/chunks/{ID3v2Parser-DIc0X1ee.mjs → ID3v2Parser-BIrxzjBm.mjs} +8 -8
- package/dist/chunks/{ID3v2Token-BqnbpNYB.mjs → ID3v2Token-D5v9lCfb.mjs} +3 -3
- package/dist/chunks/{MP4Parser-BqrCfJyp.mjs → MP4Parser-0KMJ-q2k.mjs} +6 -6
- package/dist/chunks/{MatroskaParser-CCbZmX7j.mjs → MatroskaParser-fxFuCddu.mjs} +5 -5
- package/dist/chunks/{MpegParser-C-6l3Wrf.mjs → MpegParser-R-6QiuhU.mjs} +6 -6
- package/dist/chunks/{MusepackParser-C_PhW_BV.mjs → MusepackParser-DFLoF47O.mjs} +5 -5
- package/dist/chunks/{OggParser-DJhcSH9h.mjs → OggParser-C1qP2qC7.mjs} +6 -6
- package/dist/chunks/{Util-B42SDwrM.mjs → Util-DiBcLCh8.mjs} +3 -3
- package/dist/chunks/{WavPackParser-CuHju62S.mjs → WavPackParser-Ck8xXsNf.mjs} +4 -4
- package/dist/chunks/{WaveParser-DvEqNnGt.mjs → WaveParser-hxQlWijT.mjs} +6 -6
- package/dist/chunks/{aiden0z-pptx-renderer.es-Dfc1LJvS.mjs → aiden0z-pptx-renderer.es-Y1OhS20L.mjs} +2 -2
- package/dist/chunks/{arc-8pYAfiNC.mjs → arc-Cu-PSKKo.mjs} +3 -3
- package/dist/chunks/architecture-7EHR7CIX-CGYZJshv.mjs +3 -0
- package/dist/chunks/{architectureDiagram-3BPJPVTR-BiykAn02.mjs → architectureDiagram-3BPJPVTR-BwW1QjqZ.mjs} +9 -9
- package/dist/chunks/{blockDiagram-GPEHLZMM-CozNEkEK.mjs → blockDiagram-GPEHLZMM-BAgQo64R.mjs} +13 -13
- package/dist/chunks/{blok-uBjibRae.cjs → blok-Cz71HTuP.cjs} +13 -13
- package/dist/chunks/{blok-C72PuzIT.mjs → blok-x8D2aON2.mjs} +514 -390
- package/dist/chunks/{c4Diagram-AAUBKEIU-DN5cpztO.mjs → c4Diagram-AAUBKEIU-BQe-CDb8.mjs} +6 -6
- package/dist/chunks/channel-dq5ps1Yn.mjs +5 -0
- package/dist/chunks/{chunk-2J33WTMH-CHv7Whe1.mjs → chunk-2J33WTMH-CMyTQPbw.mjs} +3 -3
- package/dist/chunks/{chunk-3OPIFGDE-BRLjwZDG.mjs → chunk-3OPIFGDE-_lgEHnzc.mjs} +8 -8
- package/dist/chunks/{chunk-4BX2VUAB-CrVP7ooQ.mjs → chunk-4BX2VUAB-8PQvWn-w.mjs} +2 -2
- package/dist/chunks/{chunk-4EGX6M5U-t1h05MXS.mjs → chunk-4EGX6M5U-D4gnRnMD.mjs} +2 -2
- package/dist/chunks/{chunk-55IACEB6-Cq7FTvxb.mjs → chunk-55IACEB6-eQD6P1N8.mjs} +2 -2
- package/dist/chunks/{chunk-5DO6E6H7-Z2pYCl69.mjs → chunk-5DO6E6H7-CN3lZIoE.mjs} +2 -2
- package/dist/chunks/{chunk-5ZQYHXKU-fs0GqOvF.mjs → chunk-5ZQYHXKU-CPXVTQ_e.mjs} +43 -43
- package/dist/chunks/{chunk-727SXJPM-BKsM41W3.mjs → chunk-727SXJPM-DZUlPaIu.mjs} +9 -9
- package/dist/chunks/{chunk-AQP2D5EJ-YdXH_I-o.mjs → chunk-AQP2D5EJ-D7G094pS.mjs} +7 -7
- package/dist/chunks/{chunk-BR22UD5L-CqFDPfGM.mjs → chunk-BR22UD5L-B6NbSBJl.mjs} +2 -2
- package/dist/chunks/{chunk-BSJP7CBP-DpGSyAQh.mjs → chunk-BSJP7CBP-C7FGlEZG.mjs} +2 -2
- package/dist/chunks/{chunk-CSCIHK7Q-BO7tl9ID.mjs → chunk-CSCIHK7Q-C4qT3Yrk.mjs} +4 -4
- package/dist/chunks/{chunk-FHYWG6QK-5Het-98V.mjs → chunk-FHYWG6QK-CgSYG-YQ.mjs} +2 -2
- package/dist/chunks/{chunk-FMBD7UC4-P_kboMJT.mjs → chunk-FMBD7UC4-2p6fg26u.mjs} +2 -2
- package/dist/chunks/{chunk-KSCS5N6A-CvZAQU-1.mjs → chunk-KSCS5N6A-BVWs3LbG.mjs} +11 -11
- package/dist/chunks/{chunk-L5ZTLDWV-DZEL0gsI.mjs → chunk-L5ZTLDWV-BFEdycvM.mjs} +4 -4
- package/dist/chunks/{chunk-LZXEDZCA-CRJ7-DY6.mjs → chunk-LZXEDZCA-6drnUsNy.mjs} +8 -8
- package/dist/chunks/{chunk-MPE355IW-DLg3CsBw.mjs → chunk-MPE355IW-DHYWughe.mjs} +2 -2
- package/dist/chunks/{chunk-MZUSXYTE-CvsgXeJO.mjs → chunk-MZUSXYTE-BmUr1KX3.mjs} +2 -2
- package/dist/chunks/{chunk-N66VUXT2-DoC3ggTc.mjs → chunk-N66VUXT2-D_6jZ3Vo.mjs} +2 -2
- package/dist/chunks/{chunk-ND2GUHAM-BcJIrltI.mjs → chunk-ND2GUHAM-DooE8X6i.mjs} +4 -4
- package/dist/chunks/{chunk-NNHCCRGN-CH81dTHf.mjs → chunk-NNHCCRGN-rJnsUrWl.mjs} +1 -1
- package/dist/chunks/{chunk-NZK2D7GU-BnVJr7kf.mjs → chunk-NZK2D7GU-JW_qgPqa.mjs} +3 -3
- package/dist/chunks/{chunk-O5CBEL6O-BeYkA-8N.mjs → chunk-O5CBEL6O-GY6nZ-N7.mjs} +16 -16
- package/dist/chunks/{chunk-PUPMXCY4-D3Ub4pDo.mjs → chunk-PUPMXCY4-DCIdSRFi.mjs} +2 -2
- package/dist/chunks/{chunk-QZHKN3VN-ChiFJWT0.mjs → chunk-QZHKN3VN-C3N0_vEC.mjs} +2 -2
- package/dist/chunks/{chunk-UIBZB4QT-BwApNyrQ.mjs → chunk-UIBZB4QT-pyTElNc2.mjs} +2 -2
- package/dist/chunks/{chunk-WCWK7LTN-D4OBOUIK.mjs → chunk-WCWK7LTN-ClqBpBku.mjs} +2 -2
- package/dist/chunks/{chunk-WU5MYG2G-wN4cJZ_G.mjs → chunk-WU5MYG2G-DLQN-5vb.mjs} +3 -3
- package/dist/chunks/{chunk-XPW4576I-yOZxg2iY.mjs → chunk-XPW4576I-IlnbQHaA.mjs} +2 -2
- package/dist/chunks/classDiagram-4FO5ZUOK-C3CxSQxy.mjs +29 -0
- package/dist/chunks/classDiagram-v2-Q7XG4LA2-Ci_JeHz0.mjs +29 -0
- package/dist/chunks/{constants-PI1xjAeG.cjs → constants-BK6kLyZB.cjs} +1 -1
- package/dist/chunks/{constants-vvNFp6FG.mjs → constants-CLzXh7Tb.mjs} +1 -1
- package/dist/chunks/{core-DeCMWrgN.mjs → core-CqiEzfU3.mjs} +4 -4
- package/dist/chunks/{core-CJGckLsY.mjs → core-DdDpt2u7.mjs} +31 -31
- package/dist/chunks/{cose-bilkent-S5V4N54A-NIONAJnp.mjs → cose-bilkent-S5V4N54A-BronfFB-.mjs} +3 -3
- package/dist/chunks/{cytoscape.esm-fziZOrCG.mjs → cytoscape.esm-QxDq63HI.mjs} +1 -1
- package/dist/chunks/{dagre-BM42HDAG-DcOrN3pc.mjs → dagre-BM42HDAG-B4WVdKOZ.mjs} +14 -14
- package/dist/chunks/{dagre-CILRucyd.mjs → dagre-DzOGad9N.mjs} +107 -107
- package/dist/chunks/default-qigT1Xpq.mjs +4 -0
- package/dist/chunks/{defaultLocale-C2VD4mLA.mjs → defaultLocale-BJwYPC-h.mjs} +12 -12
- package/dist/chunks/{diagram-2AECGRRQ-DDwBTlvz.mjs → diagram-2AECGRRQ-C22ThgiO.mjs} +7 -7
- package/dist/chunks/{diagram-5GNKFQAL-1sbWUr5e.mjs → diagram-5GNKFQAL-COelHuJn.mjs} +8 -8
- package/dist/chunks/{diagram-KO2AKTUF-DhTFFKgx.mjs → diagram-KO2AKTUF-CjLVtM94.mjs} +7 -7
- package/dist/chunks/{diagram-LMA3HP47-DRr_84ZZ.mjs → diagram-LMA3HP47-DqkuYFi9.mjs} +7 -7
- package/dist/chunks/{diagram-OG6HWLK6-C_5eu9Kf.mjs → diagram-OG6HWLK6-390_YOO-.mjs} +32 -32
- package/dist/chunks/{dist-DRqr67zQ.mjs → dist-CCXeNeCQ.mjs} +2 -2
- package/dist/chunks/{docx-preview-CQ4QUFrd.mjs → docx-preview-ulpDsaxt.mjs} +2 -2
- package/dist/chunks/{erDiagram-TEJ5UH35-C3Ohfkqu.mjs → erDiagram-TEJ5UH35-BH0f96Pn.mjs} +14 -14
- package/dist/chunks/eventmodeling-FCH6USID-nCBtSITo.mjs +3 -0
- package/dist/chunks/{flowDiagram-I6XJVG4X-DyXB0QVM.mjs → flowDiagram-I6XJVG4X-kZaqJYK1.mjs} +17 -17
- package/dist/chunks/{ganttDiagram-6RSMTGT7-82Iyg78i.mjs → ganttDiagram-6RSMTGT7-C3uQIARG.mjs} +27 -27
- package/dist/chunks/gitGraph-WXDBUCRP-CN_MBj94.mjs +3 -0
- package/dist/chunks/{gitGraphDiagram-PVQCEYII-D9V6dxzm.mjs → gitGraphDiagram-PVQCEYII-DQSTvBjy.mjs} +7 -7
- package/dist/chunks/{graphlib-RxhPMq8I.mjs → graphlib-B0ANG2M6.mjs} +135 -135
- package/dist/chunks/{i18next-C2REZNw2.mjs → i18next-gGTtSkQg.mjs} +1 -1
- package/dist/chunks/{i18next-loader-Dh4fP9we.mjs → i18next-loader-DfIonnVO.mjs} +1 -1
- package/dist/chunks/info-J43DQDTF-xmJNmT0e.mjs +3 -0
- package/dist/chunks/{infoDiagram-5YYISTIA-BxEJ_ib3.mjs → infoDiagram-5YYISTIA-CGpT_mPZ.mjs} +5 -5
- package/dist/chunks/{init-BR8veUec.mjs → init-hkDiJKhJ.mjs} +1 -1
- package/dist/chunks/{ishikawaDiagram-YF4QCWOH-CXe2kJsO.mjs → ishikawaDiagram-YF4QCWOH-Ch9fmsWb.mjs} +6 -6
- package/dist/chunks/{journeyDiagram-JHISSGLW-DBhSi7Qg.mjs → journeyDiagram-JHISSGLW-CWv40lgD.mjs} +6 -6
- package/dist/chunks/{jszip.min-BsbMNjJg.mjs → jszip.min-DoBCcllU.mjs} +1 -1
- package/dist/chunks/{kanban-definition-UN3LZRKU-CE4yr6J6.mjs → kanban-definition-UN3LZRKU-DSbXvrBB.mjs} +11 -11
- package/dist/chunks/{katex-DxQaNCxg.mjs → katex-BIACU78Y.mjs} +1 -1
- package/dist/chunks/{line-CQUUULPd.mjs → line-DU9tI1Tb.mjs} +4 -4
- package/dist/chunks/{linear-CAfvVXJc.mjs → linear-CPgdjDZh.mjs} +23 -23
- package/dist/chunks/{mdast-util-math-Cpp9XOMP.mjs → mdast-util-math-BNabERqA.mjs} +3 -3
- package/dist/chunks/{mermaid-parser.core-B92FGYsA.mjs → mermaid-parser.core-CRFj5ZQJ.mjs} +22 -22
- package/dist/chunks/{mermaid.core-BA9GkGKf.mjs → mermaid.core-D_2I8mjo.mjs} +52 -52
- package/dist/chunks/{micromark-extension-math-COSLlhTC.mjs → micromark-extension-math-CJDP6iIU.mjs} +6 -6
- package/dist/chunks/{micromark-factory-space-CLWSfTEG.mjs → micromark-factory-space-C6wz33de.mjs} +2 -2
- package/dist/chunks/{mindmap-definition-RKZ34NQL-Dklc3Py2.mjs → mindmap-definition-RKZ34NQL-Bh7eb0sP.mjs} +16 -16
- package/dist/chunks/{native-BE2uW7dn.mjs → native-RS5RJIVO.mjs} +1 -1
- package/dist/chunks/{ordinal-Qrn6pSTz.mjs → ordinal-FCgpEo3E.mjs} +3 -3
- package/dist/chunks/packet-YPE3B663-3bNcBJRE.mjs +3 -0
- package/dist/chunks/{path-CMz47XM0.mjs → path-CCKeP0zq.mjs} +3 -3
- package/dist/chunks/pie-LRSECV5Y-YTwc-ZG1.mjs +3 -0
- package/dist/chunks/{pieDiagram-4H26LBE5-DgCAhu_N.mjs → pieDiagram-4H26LBE5-Bn2IEjeH.mjs} +14 -14
- package/dist/chunks/{prism-bash-C0O3w7uz.mjs → prism-bash-D4zr_u8t.mjs} +1 -1
- package/dist/chunks/{prism-cpp-2GQhW27l.mjs → prism-cpp-CrBJjuu5.mjs} +1 -1
- package/dist/chunks/{prism-csharp-DL7dZG1j.mjs → prism-csharp-lrMxvYpL.mjs} +1 -1
- package/dist/chunks/{prism-css-CNvzB07F.mjs → prism-css-VQTID_HR.mjs} +1 -1
- package/dist/chunks/{prism-dart-DfjFPoDv.mjs → prism-dart-Q-9Z_W9B.mjs} +1 -1
- package/dist/chunks/{prism-docker-BYbfweTi.mjs → prism-docker-DWAQ3dDD.mjs} +1 -1
- package/dist/chunks/{prism-java-DVDstRX2.mjs → prism-java-_m72Vn1f.mjs} +1 -1
- package/dist/chunks/{prism-kotlin-B4yZP901.mjs → prism-kotlin-BTT9anu1.mjs} +1 -1
- package/dist/chunks/{prism-latex-D6GsLRnS.mjs → prism-latex-CL8zDJwm.mjs} +1 -1
- package/dist/chunks/{prism-lua-CJX1SQiz.mjs → prism-lua-D6JJ7p-A.mjs} +1 -1
- package/dist/chunks/{prism-markdown-C4FwQHMu.mjs → prism-markdown-D6D8BprH.mjs} +1 -1
- package/dist/chunks/{prism-markup-templating-CmFWyrMp.mjs → prism-markup-templating-DfRjv0mn.mjs} +1 -1
- package/dist/chunks/{prism-php-D1En1wGd.mjs → prism-php-DffX-wRi.mjs} +1 -1
- package/dist/chunks/{prism-r-DmduEoWu.mjs → prism-r-CU9se1Na.mjs} +1 -1
- package/dist/chunks/{prism-ruby-BX9M-ggZ.mjs → prism-ruby-DuQ4syPd.mjs} +1 -1
- package/dist/chunks/{prism-rust-CW_lhKyK.mjs → prism-rust-DRurCx4W.mjs} +1 -1
- package/dist/chunks/{prism-sql-CsK4eHq9.mjs → prism-sql-Au3VVcw1.mjs} +1 -1
- package/dist/chunks/{prism-typescript-Ca1YH5jC.mjs → prism-typescript-BKj96rmj.mjs} +1 -1
- package/dist/chunks/{prism-yaml-CA6Sp5jk.mjs → prism-yaml-Bk31kvSd.mjs} +1 -1
- package/dist/chunks/{purify.es-W8MRy_-c.mjs → purify.es-Cg3Sx1In.mjs} +1 -1
- package/dist/chunks/{quadrantDiagram-W4KKPZXB-BwDXU7bs.mjs → quadrantDiagram-W4KKPZXB-CGpTgKv9.mjs} +4 -4
- package/dist/chunks/radar-GUYGQ44K-vfGwdTFY.mjs +3 -0
- package/dist/chunks/{requirementDiagram-4Y6WPE33-C8uQNZti.mjs → requirementDiagram-4Y6WPE33-CdEklBE5.mjs} +13 -13
- package/dist/chunks/{rough.esm-BMiXn97a.mjs → rough.esm-D0yWqsMu.mjs} +1 -1
- package/dist/chunks/{sanitize-url-Pw_yecwg.mjs → sanitize-url-DzTIH3XF.mjs} +70 -70
- package/dist/chunks/{sankeyDiagram-5OEKKPKP-BJwtjvLG.mjs → sankeyDiagram-5OEKKPKP-C7B8TYyO.mjs} +18 -18
- package/dist/chunks/{sequenceDiagram-3UESZ5HK-BHEbMtdM.mjs → sequenceDiagram-3UESZ5HK-Wb1gzfDh.mjs} +8 -8
- package/dist/chunks/{src-uHD1i8ix.mjs → src-BMRCbUmP.mjs} +86 -86
- package/dist/chunks/{stateDiagram-AJRCARHV-D2di7cb4.mjs → stateDiagram-AJRCARHV-B1UbFikz.mjs} +17 -17
- package/dist/chunks/stateDiagram-v2-BHNVJYJU-D6E4HlFi.mjs +27 -0
- package/dist/chunks/{timeline-definition-PNZ67QCA-CkldAvjX.mjs → timeline-definition-PNZ67QCA-Dr0oEljt.mjs} +6 -6
- package/dist/chunks/{tools-B6rEBe-4.cjs → tools-BKjP4TXy.cjs} +1 -1
- package/dist/chunks/{tools-BQo4iaMe.mjs → tools-Bw8_CkhE.mjs} +32 -32
- package/dist/chunks/treeView-BLDUP644-BptrPFA0.mjs +3 -0
- package/dist/chunks/treemap-LRROVOQU-BbiNBKy3.mjs +3 -0
- package/dist/chunks/{types-BdXoqAkw.mjs → types-gj36fzRQ.mjs} +1 -1
- package/dist/chunks/{vennDiagram-CIIHVFJN-BuYgzRtw.mjs → vennDiagram-CIIHVFJN-Bc4yalKA.mjs} +7 -7
- package/dist/chunks/wardley-L42UT6IY-Ck6iMjTG.mjs +3 -0
- package/dist/chunks/{wardleyDiagram-YWT4CUSO-CN5Jfm2D.mjs → wardleyDiagram-YWT4CUSO-Ce_btexJ.mjs} +7 -7
- package/dist/chunks/{webm-muxer-B4_guPR0.mjs → webm-muxer-Doy8JtlV.mjs} +1 -1
- package/dist/chunks/{xychartDiagram-2RQKCTM6-DAcdK50J.mjs → xychartDiagram-2RQKCTM6-HhACbhVa.mjs} +12 -12
- package/dist/full.cjs +1 -1
- package/dist/full.mjs +3 -3
- package/dist/markdown.mjs +2 -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/components/modules/paste/handlers/blok-data-handler.ts +39 -23
- package/src/components/modules/paste/index.ts +7 -2
- package/src/components/modules/paste/notion-blocks-v3.ts +308 -30
- package/dist/chunks/architecture-7EHR7CIX-ByEay9F_.mjs +0 -3
- package/dist/chunks/channel-DCfRAw7p.mjs +0 -5
- package/dist/chunks/classDiagram-4FO5ZUOK-BgQLsKDL.mjs +0 -29
- package/dist/chunks/classDiagram-v2-Q7XG4LA2-DS7F_M1n.mjs +0 -29
- package/dist/chunks/default-DFm_GbQ-.mjs +0 -4
- package/dist/chunks/eventmodeling-FCH6USID-BqDo_Sav.mjs +0 -3
- package/dist/chunks/gitGraph-WXDBUCRP-D-utqQiN.mjs +0 -3
- package/dist/chunks/info-J43DQDTF-D72knbmq.mjs +0 -3
- package/dist/chunks/packet-YPE3B663-BehYuyRA.mjs +0 -3
- package/dist/chunks/pie-LRSECV5Y-C85c3T2E.mjs +0 -3
- package/dist/chunks/radar-GUYGQ44K-DGjR4vAz.mjs +0 -3
- package/dist/chunks/stateDiagram-v2-BHNVJYJU-uJvNkDGf.mjs +0 -27
- package/dist/chunks/treeView-BLDUP644-DhLdRehp.mjs +0 -3
- package/dist/chunks/treemap-LRROVOQU-CgXHb4o7.mjs +0 -3
- package/dist/chunks/wardley-L42UT6IY-sN5mOUNm.mjs +0 -3
|
@@ -102,7 +102,7 @@ export function parseNotionBlocksV3(json: string): NotionParsedBlock[] | null {
|
|
|
102
102
|
|
|
103
103
|
const topLevelOrder = blocks
|
|
104
104
|
.map((entry) => (entry as { blockId?: string })?.blockId)
|
|
105
|
-
.filter((id): id is string => typeof id === 'string'
|
|
105
|
+
.filter((id): id is string => typeof id === 'string');
|
|
106
106
|
|
|
107
107
|
const result: NotionParsedBlock[] = [];
|
|
108
108
|
const visited = new Set<string>();
|
|
@@ -154,7 +154,19 @@ export function parseNotionBlocksV3(json: string): NotionParsedBlock[] | null {
|
|
|
154
154
|
children.forEach((childId) => walk(childId, id));
|
|
155
155
|
};
|
|
156
156
|
|
|
157
|
-
topLevelOrder.forEach((id) =>
|
|
157
|
+
topLevelOrder.forEach((id) => {
|
|
158
|
+
// A top-level block with no resolvable value has an EMPTY subtree — Notion
|
|
159
|
+
// ships linked databases, collection views and link-to-page references this
|
|
160
|
+
// way (their data lives on another page, omitted from the clipboard). Emit
|
|
161
|
+
// a bookmark to the Notion page so the block is not silently dropped.
|
|
162
|
+
if (!byId.has(id)) {
|
|
163
|
+
result.push({ id, tool: 'bookmark', data: { url: notionPageUrl(id) } });
|
|
164
|
+
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
walk(id, null);
|
|
169
|
+
});
|
|
158
170
|
|
|
159
171
|
return result;
|
|
160
172
|
}
|
|
@@ -248,13 +260,13 @@ function mapValue(value: NotionValue, byId: Map<string, NotionValue>): Mapped |
|
|
|
248
260
|
case 'text':
|
|
249
261
|
return { tool: 'paragraph', data: { text } };
|
|
250
262
|
case 'header':
|
|
251
|
-
return
|
|
263
|
+
return mapHeader(text, 1, value.format);
|
|
252
264
|
case 'sub_header':
|
|
253
|
-
return
|
|
265
|
+
return mapHeader(text, 2, value.format);
|
|
254
266
|
case 'sub_sub_header':
|
|
255
|
-
return
|
|
267
|
+
return mapHeader(text, 3, value.format);
|
|
256
268
|
case 'quote':
|
|
257
|
-
return { tool: 'quote', data: { text } };
|
|
269
|
+
return { tool: 'quote', data: value.format?.quote_size === 'large' ? { text, size: 'large' } : { text } };
|
|
258
270
|
case 'divider':
|
|
259
271
|
return { tool: 'divider', data: {} };
|
|
260
272
|
case 'code':
|
|
@@ -285,13 +297,32 @@ function mapValue(value: NotionValue, byId: Map<string, NotionValue>): Mapped |
|
|
|
285
297
|
case 'bookmark':
|
|
286
298
|
return mapBookmark(props, value.format ?? {}, text);
|
|
287
299
|
case 'image':
|
|
288
|
-
return mapMediaFile('image', props, value.format ?? {}, text);
|
|
300
|
+
return mapMediaFile('image', props, value.format ?? {}, text, value.id);
|
|
289
301
|
case 'file':
|
|
290
|
-
return mapMediaFile('file', props, value.format ?? {}, text);
|
|
302
|
+
return mapMediaFile('file', props, value.format ?? {}, text, value.id);
|
|
291
303
|
case 'video':
|
|
292
|
-
return mapVideo(props, value.format ?? {}, text);
|
|
304
|
+
return mapVideo(props, value.format ?? {}, text, value.id);
|
|
305
|
+
case 'audio':
|
|
306
|
+
return mapAudio(props, value.format ?? {}, text, value.id);
|
|
307
|
+
case 'pdf':
|
|
308
|
+
return mapMediaFile('file', props, value.format ?? {}, text, value.id);
|
|
309
|
+
// Standalone service embeds carry their URL in `source` / `display_source`;
|
|
310
|
+
// resolve via the embed registry, falling back to a bookmark.
|
|
293
311
|
case 'drive':
|
|
294
|
-
|
|
312
|
+
case 'embed':
|
|
313
|
+
case 'tweet':
|
|
314
|
+
case 'gist':
|
|
315
|
+
case 'codepen':
|
|
316
|
+
case 'figma':
|
|
317
|
+
case 'maps':
|
|
318
|
+
case 'miro':
|
|
319
|
+
case 'loom':
|
|
320
|
+
case 'typeform':
|
|
321
|
+
case 'invision':
|
|
322
|
+
case 'framer':
|
|
323
|
+
case 'whimsical':
|
|
324
|
+
case 'abstract':
|
|
325
|
+
return mapEmbedOrBookmark(props, value.format ?? {}, text);
|
|
295
326
|
case 'callout': {
|
|
296
327
|
const format = value.format ?? {};
|
|
297
328
|
const emoji = typeof format.page_icon === 'string' && format.page_icon.length > 0 ? format.page_icon : DEFAULT_EMOJI;
|
|
@@ -300,13 +331,31 @@ function mapValue(value: NotionValue, byId: Map<string, NotionValue>): Mapped |
|
|
|
300
331
|
return { tool: 'callout', data: { emoji, text, textColor, backgroundColor } };
|
|
301
332
|
}
|
|
302
333
|
case 'page':
|
|
334
|
+
// A `page` block inside content is a SUB-PAGE reference: its body lives on
|
|
335
|
+
// a separate Notion page that is not in the clipboard. Emit a bookmark
|
|
336
|
+
// linking to that page so the reference is not silently dropped.
|
|
337
|
+
return { tool: 'bookmark', data: { url: notionPageUrl(value.id), ...(text.length > 0 ? { title: text } : {}) } };
|
|
303
338
|
case 'tab':
|
|
304
|
-
//
|
|
305
|
-
|
|
339
|
+
// Tab wrapper — skip, promote children to the same level.
|
|
340
|
+
return null;
|
|
341
|
+
case 'transclusion_container':
|
|
342
|
+
// Synced-block original: Blok has no synced primitive, so flatten it —
|
|
343
|
+
// drop the wrapper and promote its children to the same level.
|
|
344
|
+
return null;
|
|
345
|
+
case 'transclusion_reference':
|
|
346
|
+
// Synced-block duplicate: a pointer only; the referenced content is not
|
|
347
|
+
// in the clipboard. Drop it rather than leave a stray empty paragraph.
|
|
348
|
+
return null;
|
|
349
|
+
case 'table_of_contents':
|
|
350
|
+
case 'breadcrumb':
|
|
351
|
+
case 'copy_indicator':
|
|
352
|
+
case 'link_to_page':
|
|
353
|
+
case 'alias':
|
|
354
|
+
// Structure-only / derived blocks carry no migratable content — drop them
|
|
355
|
+
// (a paragraph fallback would leave an empty stray block).
|
|
306
356
|
return null;
|
|
307
357
|
default:
|
|
308
|
-
// Unmapped types
|
|
309
|
-
// paragraph for now; later phases give each its own mapping.
|
|
358
|
+
// Unmapped types fall back to a paragraph carrying their title text.
|
|
310
359
|
return { tool: 'paragraph', data: { text } };
|
|
311
360
|
}
|
|
312
361
|
}
|
|
@@ -364,16 +413,38 @@ function mapMediaFile(
|
|
|
364
413
|
tool: 'image' | 'file',
|
|
365
414
|
props: Record<string, unknown>,
|
|
366
415
|
format: Record<string, unknown>,
|
|
367
|
-
text: string
|
|
416
|
+
text: string,
|
|
417
|
+
id: string
|
|
368
418
|
): Mapped {
|
|
369
419
|
const url = firstHttpUrl(props.source, format.display_source);
|
|
370
420
|
|
|
371
421
|
if (url === null) {
|
|
372
|
-
return
|
|
422
|
+
return attachmentFallback(id, props, text);
|
|
373
423
|
}
|
|
374
424
|
|
|
375
425
|
if (tool === 'image') {
|
|
376
|
-
|
|
426
|
+
const data: Record<string, unknown> = { url };
|
|
427
|
+
const alignment = mediaAlignment(format.block_alignment);
|
|
428
|
+
|
|
429
|
+
if (alignment !== null) {
|
|
430
|
+
data.alignment = alignment;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
Object.assign(data, captionFields(props.caption));
|
|
434
|
+
|
|
435
|
+
const alt = plainText(props.alt_text);
|
|
436
|
+
|
|
437
|
+
if (alt.length > 0) {
|
|
438
|
+
data.alt = alt;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
const crop = mapImageCrop(format.image_edit_metadata);
|
|
442
|
+
|
|
443
|
+
if (crop !== null) {
|
|
444
|
+
data.crop = crop;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
return { tool: 'image', data };
|
|
377
448
|
}
|
|
378
449
|
|
|
379
450
|
const data: Record<string, unknown> = { url };
|
|
@@ -383,24 +454,91 @@ function mapMediaFile(
|
|
|
383
454
|
data.fileName = fileName;
|
|
384
455
|
}
|
|
385
456
|
|
|
457
|
+
Object.assign(data, captionFields(props.caption));
|
|
458
|
+
|
|
386
459
|
return { tool: 'file', data };
|
|
387
460
|
}
|
|
388
461
|
|
|
462
|
+
/** A left/right block alignment (the default `center` is omitted), else `null`. */
|
|
463
|
+
function mediaAlignment(value: unknown): 'left' | 'right' | null {
|
|
464
|
+
return value === 'left' || value === 'right' ? value : null;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/** A visible plain-text caption as block-data fields, or `{}` when absent. */
|
|
468
|
+
function captionFields(caption: unknown): Record<string, unknown> {
|
|
469
|
+
const text = plainText(caption);
|
|
470
|
+
|
|
471
|
+
return text.length > 0 ? { caption: text, captionVisible: true } : {};
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* Convert a Notion percent-space crop region (`{x,y,width,height,unit:'%'}`) to
|
|
476
|
+
* Blok's `{x,y,w,h[,shape]}` (same percent space — a key rename). A full-frame
|
|
477
|
+
* crop is a no-op and is skipped; a non-`None` mask becomes a crop shape.
|
|
478
|
+
*/
|
|
479
|
+
function mapImageCrop(meta: unknown): Record<string, unknown> | null {
|
|
480
|
+
if (meta === null || typeof meta !== 'object') {
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
const crop = (meta as { crop?: unknown }).crop;
|
|
485
|
+
|
|
486
|
+
if (crop === null || typeof crop !== 'object') {
|
|
487
|
+
return null;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
const { x, y, width, height, unit } = crop as Record<string, unknown>;
|
|
491
|
+
|
|
492
|
+
if (unit !== '%' || typeof x !== 'number' || typeof y !== 'number' || typeof width !== 'number' || typeof height !== 'number') {
|
|
493
|
+
return null;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
// A full-frame crop changes nothing — don't emit it.
|
|
497
|
+
if (x === 0 && y === 0 && width === 100 && height === 100) {
|
|
498
|
+
return null;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
const result: Record<string, unknown> = { x, y, w: width, h: height };
|
|
502
|
+
const mask = (meta as { mask?: unknown }).mask;
|
|
503
|
+
|
|
504
|
+
if (mask === 'circle' || mask === 'ellipse') {
|
|
505
|
+
result.shape = mask;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
return result;
|
|
509
|
+
}
|
|
510
|
+
|
|
389
511
|
/** Map a Notion video to an embed (provider match) or a direct video block. */
|
|
390
|
-
function mapVideo(props: Record<string, unknown>, format: Record<string, unknown>, text: string): Mapped {
|
|
512
|
+
function mapVideo(props: Record<string, unknown>, format: Record<string, unknown>, text: string, id: string): Mapped {
|
|
391
513
|
const url = firstHttpUrl(props.source, format.display_source);
|
|
392
514
|
|
|
393
515
|
if (url === null) {
|
|
394
|
-
return
|
|
516
|
+
return attachmentFallback(id, props, text);
|
|
395
517
|
}
|
|
396
518
|
|
|
397
519
|
const embed = resolveEmbed(url);
|
|
398
520
|
|
|
399
|
-
|
|
521
|
+
if (embed !== null) {
|
|
522
|
+
return embed;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const data: Record<string, unknown> = { url };
|
|
526
|
+
const alignment = mediaAlignment(format.block_alignment);
|
|
527
|
+
|
|
528
|
+
if (alignment !== null) {
|
|
529
|
+
data.alignment = alignment;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
Object.assign(data, captionFields(props.caption));
|
|
533
|
+
|
|
534
|
+
return { tool: 'video', data };
|
|
400
535
|
}
|
|
401
536
|
|
|
402
|
-
/**
|
|
403
|
-
|
|
537
|
+
/**
|
|
538
|
+
* Map a Notion service-embed block (drive, tweet, gist, figma, codepen…) to a
|
|
539
|
+
* resolved embed (provider match) or a bookmark carrying the live URL.
|
|
540
|
+
*/
|
|
541
|
+
function mapEmbedOrBookmark(props: Record<string, unknown>, format: Record<string, unknown>, text: string): Mapped {
|
|
404
542
|
const url = firstHttpUrl(props.source, format.display_source);
|
|
405
543
|
|
|
406
544
|
if (url === null) {
|
|
@@ -410,6 +548,39 @@ function mapDrive(props: Record<string, unknown>, format: Record<string, unknown
|
|
|
410
548
|
return resolveEmbed(url) ?? { tool: 'bookmark', data: { url } };
|
|
411
549
|
}
|
|
412
550
|
|
|
551
|
+
/** Map a Notion heading to a Blok header, preserving its toggleable state. */
|
|
552
|
+
function mapHeader(text: string, level: number, format: Record<string, unknown> | undefined): Mapped {
|
|
553
|
+
// Notion's clipboard record-map carries only whether a heading is toggleable,
|
|
554
|
+
// not its per-instance collapsed state, so toggle headings default to open.
|
|
555
|
+
return format?.toggleable === true
|
|
556
|
+
? { tool: 'header', data: { text, level, isToggleable: true, isOpen: true } }
|
|
557
|
+
: { tool: 'header', data: { text, level } };
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Map a Notion audio block to the Blok audio tool when it has a usable http(s)
|
|
562
|
+
* URL. Notion-uploaded audio uses `attachment:` refs with no loadable URL, so
|
|
563
|
+
* those fall back to a Notion-link bookmark (like image/file/video).
|
|
564
|
+
*/
|
|
565
|
+
function mapAudio(props: Record<string, unknown>, format: Record<string, unknown>, text: string, id: string): Mapped {
|
|
566
|
+
const url = firstHttpUrl(props.source, format.display_source);
|
|
567
|
+
|
|
568
|
+
if (url === null) {
|
|
569
|
+
return attachmentFallback(id, props, text);
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
const data: Record<string, unknown> = { url };
|
|
573
|
+
const fileName = plainText(props.title);
|
|
574
|
+
|
|
575
|
+
if (fileName.length > 0) {
|
|
576
|
+
// `title` is the player's visible label; `fileName` drives the download name.
|
|
577
|
+
data.title = fileName;
|
|
578
|
+
data.fileName = fileName;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
return { tool: 'audio', data };
|
|
582
|
+
}
|
|
583
|
+
|
|
413
584
|
/** Resolve a URL against the embed registry into Blok embed data, or `null`. */
|
|
414
585
|
function resolveEmbed(url: string): Mapped | null {
|
|
415
586
|
const match = matchEmbedService(url);
|
|
@@ -483,11 +654,12 @@ function segmentHtml(segment: unknown, byId?: Map<string, NotionValue>): string
|
|
|
483
654
|
const raw = typeof segment[0] === 'string' ? segment[0] : '';
|
|
484
655
|
const annotations = Array.isArray(segment[1]) ? segment[1] : [];
|
|
485
656
|
|
|
486
|
-
// Colour flags ('h') collapse into ONE <mark>; content flags
|
|
487
|
-
// 'p' page mention
|
|
488
|
-
// resulting content from the inside out.
|
|
657
|
+
// Colour flags ('h') collapse into ONE <mark>; content flags replace the
|
|
658
|
+
// placeholder glyph: 'e' equation, 'p' page mention, 'd' date, 'u' user
|
|
659
|
+
// mention. Every other flag wraps the resulting content from the inside out.
|
|
660
|
+
const contentFlags = ['e', 'p', 'd', 'u'];
|
|
489
661
|
const isColour = (a: unknown): boolean => Array.isArray(a) && a[0] === 'h';
|
|
490
|
-
const isContent = (a: unknown): boolean => Array.isArray(a) && (a[0]
|
|
662
|
+
const isContent = (a: unknown): boolean => Array.isArray(a) && contentFlags.includes(a[0] as string);
|
|
491
663
|
const inner = annotations
|
|
492
664
|
.filter((a) => !isColour(a) && !isContent(a))
|
|
493
665
|
.reduce<string>((html, annotation) => wrapMark(annotation, html), segmentContent(raw, annotations, byId));
|
|
@@ -515,6 +687,19 @@ function segmentContent(raw: string, annotations: unknown[], byId?: Map<string,
|
|
|
515
687
|
return pageMentionContent(pageId, raw, byId);
|
|
516
688
|
}
|
|
517
689
|
|
|
690
|
+
const date = dateArg(annotations);
|
|
691
|
+
|
|
692
|
+
if (date !== null) {
|
|
693
|
+
return escapeHtml(formatNotionDate(date));
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
// A user mention ('u'), or a malformed date mention ('d' with a missing /
|
|
697
|
+
// non-object arg), carries no renderable content — drop it rather than leak
|
|
698
|
+
// the raw placeholder glyph.
|
|
699
|
+
if (hasFlag(annotations, 'u') || hasFlag(annotations, 'd')) {
|
|
700
|
+
return '';
|
|
701
|
+
}
|
|
702
|
+
|
|
518
703
|
return escapeHtml(raw);
|
|
519
704
|
}
|
|
520
705
|
|
|
@@ -529,15 +714,108 @@ function flagArg(annotations: unknown[], flag: string): string | null {
|
|
|
529
714
|
return null;
|
|
530
715
|
}
|
|
531
716
|
|
|
717
|
+
/** Whether any annotation carries the given flag. */
|
|
718
|
+
function hasFlag(annotations: unknown[], flag: string): boolean {
|
|
719
|
+
return annotations.some((annotation) => Array.isArray(annotation) && annotation[0] === flag);
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
/** The object argument of an inline date (`'d'`) annotation, or `null`. */
|
|
723
|
+
function dateArg(annotations: unknown[]): Record<string, unknown> | null {
|
|
724
|
+
for (const annotation of annotations) {
|
|
725
|
+
if (Array.isArray(annotation) && annotation[0] === 'd' && isPlainObject(annotation[1])) {
|
|
726
|
+
return annotation[1];
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
return null;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
/** Whether a value is a non-null, non-array object. */
|
|
734
|
+
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
735
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Format a Notion inline date object to plain text. Blok has no inline date
|
|
740
|
+
* pill, so a single date, a date+time, or a range render as text.
|
|
741
|
+
*/
|
|
742
|
+
function formatNotionDate(date: Record<string, unknown>): string {
|
|
743
|
+
const part = (dateKey: string, timeKey: string): string => {
|
|
744
|
+
const day = typeof date[dateKey] === 'string' ? date[dateKey] : '';
|
|
745
|
+
const time = typeof date[timeKey] === 'string' ? date[timeKey] : '';
|
|
746
|
+
|
|
747
|
+
if (day.length === 0) {
|
|
748
|
+
return '';
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
return time.length > 0 ? `${day} ${time}` : day;
|
|
752
|
+
};
|
|
753
|
+
|
|
754
|
+
return [part('start_date', 'start_time'), part('end_date', 'end_time')].filter((p) => p.length > 0).join(' → ');
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
/**
|
|
758
|
+
* The canonical Notion URL for a block/page id. Notion's share URLs use the id
|
|
759
|
+
* with dashes stripped; `www.notion.so/<id>` resolves regardless of workspace.
|
|
760
|
+
*/
|
|
761
|
+
function notionPageUrl(id: string): string {
|
|
762
|
+
return `https://www.notion.so/${id.replace(/-/g, '')}`;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Fallback for uploaded media (image / video / audio / file / pdf) whose binary
|
|
767
|
+
* is NOT on the clipboard: Notion exports private attachments as
|
|
768
|
+
* `attachment:<uuid>:<filename>` references with no fetchable URL, in BOTH the
|
|
769
|
+
* JSON and HTML flavours. Rather than drop the block to a bare filename
|
|
770
|
+
* paragraph, emit a bookmark to the block's Notion location so it is not
|
|
771
|
+
* silently lost and the user can open the source to re-download the file. The
|
|
772
|
+
* filename becomes the bookmark title.
|
|
773
|
+
*/
|
|
774
|
+
function attachmentFallback(id: string, props: Record<string, unknown>, text: string): Mapped {
|
|
775
|
+
const fileName = text.length > 0 ? text : attachmentName(props.source);
|
|
776
|
+
const data: Record<string, unknown> = { url: notionPageUrl(id) };
|
|
777
|
+
|
|
778
|
+
if (fileName.length > 0) {
|
|
779
|
+
data.title = fileName;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
return { tool: 'bookmark', data };
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
/** Extract the human filename from an `attachment:<uuid>:<filename>` source. */
|
|
786
|
+
function attachmentName(source: unknown): string {
|
|
787
|
+
const firstSegment: unknown = Array.isArray(source) ? source[0] : undefined;
|
|
788
|
+
const first: unknown = Array.isArray(firstSegment) ? firstSegment[0] : undefined;
|
|
789
|
+
|
|
790
|
+
if (typeof first !== 'string') {
|
|
791
|
+
return '';
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
const match = /^attachment:[^:]+:(.+)$/.exec(first);
|
|
795
|
+
|
|
796
|
+
if (match === null) {
|
|
797
|
+
return '';
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
try {
|
|
801
|
+
return decodeURIComponent(match[1]);
|
|
802
|
+
} catch {
|
|
803
|
+
return match[1];
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
|
|
532
807
|
/**
|
|
533
|
-
*
|
|
534
|
-
* the
|
|
535
|
-
* usually point at pages outside the copied selection
|
|
808
|
+
* Render an inline page-mention as a link to the referenced Notion page. Uses
|
|
809
|
+
* the page title when it is present in the pasted payload, otherwise `Untitled`
|
|
810
|
+
* (mentions usually point at pages outside the copied selection). Linking — vs
|
|
811
|
+
* the old behaviour of leaking the raw `‣` glyph — keeps the reference
|
|
812
|
+
* navigable so the user can still reach the source page after migration.
|
|
536
813
|
*/
|
|
537
814
|
function pageMentionContent(pageId: string, raw: string, byId?: Map<string, NotionValue>): string {
|
|
538
815
|
const titleText = plainText(byId?.get(pageId)?.properties?.title);
|
|
816
|
+
const label = titleText.length > 0 ? titleText : 'Untitled';
|
|
539
817
|
|
|
540
|
-
return escapeHtml(
|
|
818
|
+
return `<a href="${escapeAttr(notionPageUrl(pageId))}">${escapeHtml(label)}</a>`;
|
|
541
819
|
}
|
|
542
820
|
|
|
543
821
|
/** A parsed Notion colour token: a preset name applied as text or background. */
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./src-uHD1i8ix.mjs";
|
|
2
|
-
import "./chunk-CSCIHK7Q-BO7tl9ID.mjs";
|
|
3
|
-
import "./chunk-5ZQYHXKU-fs0GqOvF.mjs";
|
|
4
|
-
import "./chunk-O5CBEL6O-BeYkA-8N.mjs";
|
|
5
|
-
import "./chunk-FMBD7UC4-P_kboMJT.mjs";
|
|
6
|
-
import "./chunk-BSJP7CBP-DpGSyAQh.mjs";
|
|
7
|
-
import "./chunk-L5ZTLDWV-DZEL0gsI.mjs";
|
|
8
|
-
import "./chunk-ND2GUHAM-BcJIrltI.mjs";
|
|
9
|
-
import "./chunk-55IACEB6-Cq7FTvxb.mjs";
|
|
10
|
-
import "./chunk-2J33WTMH-CHv7Whe1.mjs";
|
|
11
|
-
import "./chunk-NZK2D7GU-BnVJr7kf.mjs";
|
|
12
|
-
import "./chunk-3OPIFGDE-BRLjwZDG.mjs";
|
|
13
|
-
import "./chunk-KSCS5N6A-CvZAQU-1.mjs";
|
|
14
|
-
import "./chunk-LZXEDZCA-CRJ7-DY6.mjs";
|
|
15
|
-
import { i as t, n, r, t as i } from "./chunk-727SXJPM-BKsM41W3.mjs";
|
|
16
|
-
//#region ../../../Users/jackuait/Packages/blok/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-4FO5ZUOK.mjs
|
|
17
|
-
var a = {
|
|
18
|
-
parser: n,
|
|
19
|
-
get db() {
|
|
20
|
-
return new i();
|
|
21
|
-
},
|
|
22
|
-
renderer: r,
|
|
23
|
-
styles: t,
|
|
24
|
-
init: /* @__PURE__ */ e((e) => {
|
|
25
|
-
e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
|
|
26
|
-
}, "init")
|
|
27
|
-
};
|
|
28
|
-
//#endregion
|
|
29
|
-
export { a as diagram };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./src-uHD1i8ix.mjs";
|
|
2
|
-
import "./chunk-CSCIHK7Q-BO7tl9ID.mjs";
|
|
3
|
-
import "./chunk-5ZQYHXKU-fs0GqOvF.mjs";
|
|
4
|
-
import "./chunk-O5CBEL6O-BeYkA-8N.mjs";
|
|
5
|
-
import "./chunk-FMBD7UC4-P_kboMJT.mjs";
|
|
6
|
-
import "./chunk-BSJP7CBP-DpGSyAQh.mjs";
|
|
7
|
-
import "./chunk-L5ZTLDWV-DZEL0gsI.mjs";
|
|
8
|
-
import "./chunk-ND2GUHAM-BcJIrltI.mjs";
|
|
9
|
-
import "./chunk-55IACEB6-Cq7FTvxb.mjs";
|
|
10
|
-
import "./chunk-2J33WTMH-CHv7Whe1.mjs";
|
|
11
|
-
import "./chunk-NZK2D7GU-BnVJr7kf.mjs";
|
|
12
|
-
import "./chunk-3OPIFGDE-BRLjwZDG.mjs";
|
|
13
|
-
import "./chunk-KSCS5N6A-CvZAQU-1.mjs";
|
|
14
|
-
import "./chunk-LZXEDZCA-CRJ7-DY6.mjs";
|
|
15
|
-
import { i as t, n, r, t as i } from "./chunk-727SXJPM-BKsM41W3.mjs";
|
|
16
|
-
//#region ../../../Users/jackuait/Packages/blok/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-Q7XG4LA2.mjs
|
|
17
|
-
var a = {
|
|
18
|
-
parser: n,
|
|
19
|
-
get db() {
|
|
20
|
-
return new i();
|
|
21
|
-
},
|
|
22
|
-
renderer: r,
|
|
23
|
-
styles: t,
|
|
24
|
-
init: /* @__PURE__ */ e((e) => {
|
|
25
|
-
e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
|
|
26
|
-
}, "init")
|
|
27
|
-
};
|
|
28
|
-
//#endregion
|
|
29
|
-
export { a as diagram };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./src-uHD1i8ix.mjs";
|
|
2
|
-
import "./chunk-CSCIHK7Q-BO7tl9ID.mjs";
|
|
3
|
-
import "./chunk-5ZQYHXKU-fs0GqOvF.mjs";
|
|
4
|
-
import "./chunk-O5CBEL6O-BeYkA-8N.mjs";
|
|
5
|
-
import "./chunk-BSJP7CBP-DpGSyAQh.mjs";
|
|
6
|
-
import "./chunk-L5ZTLDWV-DZEL0gsI.mjs";
|
|
7
|
-
import "./chunk-55IACEB6-Cq7FTvxb.mjs";
|
|
8
|
-
import "./chunk-2J33WTMH-CHv7Whe1.mjs";
|
|
9
|
-
import "./chunk-NZK2D7GU-BnVJr7kf.mjs";
|
|
10
|
-
import "./chunk-3OPIFGDE-BRLjwZDG.mjs";
|
|
11
|
-
import "./chunk-KSCS5N6A-CvZAQU-1.mjs";
|
|
12
|
-
import "./chunk-LZXEDZCA-CRJ7-DY6.mjs";
|
|
13
|
-
import { i as t, n, r, t as i } from "./chunk-AQP2D5EJ-YdXH_I-o.mjs";
|
|
14
|
-
//#region ../../../Users/jackuait/Packages/blok/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-BHNVJYJU.mjs
|
|
15
|
-
var a = {
|
|
16
|
-
parser: n,
|
|
17
|
-
get db() {
|
|
18
|
-
return new i(2);
|
|
19
|
-
},
|
|
20
|
-
renderer: r,
|
|
21
|
-
styles: t,
|
|
22
|
-
init: /* @__PURE__ */ e((e) => {
|
|
23
|
-
e.state || (e.state = {}), e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
|
|
24
|
-
}, "init")
|
|
25
|
-
};
|
|
26
|
-
//#endregion
|
|
27
|
-
export { a as diagram };
|