chalkbridge 1.0.3 → 1.1.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/{chunk-VTFAXWQJ.js → chunk-XDK5UUTO.js} +254 -12
- package/dist/cli.js +542 -89
- package/dist/index.js +1 -1
- package/guides/icons.md +22 -3
- package/guides/layout.md +42 -3
- package/package.json +1 -1
- package/ui-dist/assets/{abnfDiagram-VCTEODGH-BJtEDuNS.js → abnfDiagram-VCTEODGH-BCawxiKB.js} +1 -1
- package/ui-dist/assets/{ar-SA-G6X2FPQ2-B6obDqD5.js → ar-SA-G6X2FPQ2-UCm9FftA.js} +1 -1
- package/ui-dist/assets/architecture-7GRP2DOG-CiyYoVgW.js +1 -0
- package/ui-dist/assets/{architectureDiagram-5GKGNRK7-CvbQe1_v.js → architectureDiagram-5GKGNRK7-DIw1pNEk.js} +1 -1
- package/ui-dist/assets/{az-AZ-76LH7QW2-CfV9ZZWy.js → az-AZ-76LH7QW2-B5LEIxkk.js} +1 -1
- package/ui-dist/assets/{bg-BG-XCXSNQG7-DUA8YPCl.js → bg-BG-XCXSNQG7-2bpThpZL.js} +1 -1
- package/ui-dist/assets/{blockDiagram-NRAW4CY4-DocsEmiD.js → blockDiagram-NRAW4CY4-BGr2WGp_.js} +1 -1
- package/ui-dist/assets/{bn-BD-2XOGV67Q-DvE_tajm.js → bn-BD-2XOGV67Q-Drz-y_cX.js} +1 -1
- package/ui-dist/assets/{c4Diagram-UCG6FXSJ-Tx_g_cO9.js → c4Diagram-UCG6FXSJ-vbm87bpC.js} +1 -1
- package/ui-dist/assets/{ca-ES-6MX7JW3Y-DHdtT9lh.js → ca-ES-6MX7JW3Y-D89p_FZ-.js} +1 -1
- package/ui-dist/assets/channel-DtgwkzBZ.js +1 -0
- package/ui-dist/assets/{chunk-75Z2AOVW-LAZTrfqO.js → chunk-75Z2AOVW-B7kf5jVz.js} +1 -1
- package/ui-dist/assets/{chunk-DU6HZSFF-DYQVLGqe.js → chunk-DU6HZSFF-BlGPS6B6.js} +1 -1
- package/ui-dist/assets/{chunk-EIO257PC-B41AYx2_.js → chunk-EIO257PC-nzXnwORk.js} +1 -1
- package/ui-dist/assets/{chunk-F27PBJKO-BTHkH7Vo.js → chunk-F27PBJKO-B7qepoj_.js} +1 -1
- package/ui-dist/assets/{chunk-G27WJ6UU-BBBWLXXO.js → chunk-G27WJ6UU-CSjcvmOf.js} +1 -1
- package/ui-dist/assets/{chunk-GMAD6QVW-BkvPd3CL.js → chunk-GMAD6QVW-CtaZAO5u.js} +1 -1
- package/ui-dist/assets/{chunk-JQ64N6SF-CKrtUr61.js → chunk-JQ64N6SF-CuhtdTse.js} +1 -1
- package/ui-dist/assets/{chunk-LCL6LL3I-B4K72jRj.js → chunk-LCL6LL3I-DMfA3a_s.js} +1 -1
- package/ui-dist/assets/{chunk-OBVCFTLP-CMCEQnr_.js → chunk-OBVCFTLP-BoBuso2l.js} +1 -1
- package/ui-dist/assets/{chunk-P2QGCYS3-BNpg6XHk.js → chunk-P2QGCYS3-BZHK87sP.js} +1 -1
- package/ui-dist/assets/{chunk-POPQ4Y6H-BaAoqHUX.js → chunk-POPQ4Y6H-Dk_v51-0.js} +1 -1
- package/ui-dist/assets/{chunk-PWAF6VOD-CGQ4p70E.js → chunk-PWAF6VOD-DQTvHbxy.js} +1 -1
- package/ui-dist/assets/{chunk-R7TYR2AO-B2S7-r2z.js → chunk-R7TYR2AO-CQ_StUs1.js} +1 -1
- package/ui-dist/assets/{chunk-RHFEMEQ7-C_ziruXk.js → chunk-RHFEMEQ7-BTgGEQit.js} +1 -1
- package/ui-dist/assets/{chunk-SVP7TREG-FJEPEsgF.js → chunk-SVP7TREG-lkVXeHxJ.js} +1 -1
- package/ui-dist/assets/{chunk-TEH6E4GO-BvKV-yBX.js → chunk-TEH6E4GO-DIEC-0PO.js} +1 -1
- package/ui-dist/assets/classDiagram-DTDB5LWJ-B83TJF6p.js +1 -0
- package/ui-dist/assets/classDiagram-v2-JRS7N3AN-B83TJF6p.js +1 -0
- package/ui-dist/assets/{cs-CZ-2BRQDIVT-BamYs5wC.js → cs-CZ-2BRQDIVT-CmSaQCAW.js} +1 -1
- package/ui-dist/assets/{cynefin-OW5HDTMX-Cj_nyyy3.js → cynefin-OW5HDTMX-B6f8qooM.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-5FMLGOSQ-B3Rm8-dE.js → cynefinDiagram-5FMLGOSQ-DFu8uB2c.js} +1 -1
- package/ui-dist/assets/{da-DK-5WZEPLOC-B8baJSus.js → da-DK-5WZEPLOC-DZ68cfJh.js} +1 -1
- package/ui-dist/assets/{dagre-3AP2YEHR-BesdyiUo.js → dagre-3AP2YEHR-CuUE3cEY.js} +1 -1
- package/ui-dist/assets/{de-DE-XR44H4JA-DKPtPOlk.js → de-DE-XR44H4JA-ClBUqbwZ.js} +1 -1
- package/ui-dist/assets/{diagram-S7CK7UJ4-jeIUYTnQ.js → diagram-S7CK7UJ4-DjLndaJK.js} +1 -1
- package/ui-dist/assets/{diagram-UQ7AKVKN-BmAlHtLI.js → diagram-UQ7AKVKN-wLhxEBwN.js} +1 -1
- package/ui-dist/assets/{diagram-VSXAHHWV-B-S5XoGb.js → diagram-VSXAHHWV-CVek4gvW.js} +1 -1
- package/ui-dist/assets/{diagram-VX7I27RA--KrWarId.js → diagram-VX7I27RA-CXyuaDuW.js} +1 -1
- package/ui-dist/assets/{diagram-Z3DM3KII-B7MnKinD.js → diagram-Z3DM3KII-BGk8dw5c.js} +1 -1
- package/ui-dist/assets/{dist-C2o0r0se.js → dist-DyDCC61R.js} +4 -4
- package/ui-dist/assets/{ebnfDiagram-PWID7BFC-C20WACav.js → ebnfDiagram-PWID7BFC-Bq5wdWGX.js} +1 -1
- package/ui-dist/assets/{el-GR-BZB4AONW-FSgeiYUW.js → el-GR-BZB4AONW-oCuJWxYE.js} +1 -1
- package/ui-dist/assets/{en-B4ZKOASM-BAWBMIE-.js → en-B4ZKOASM-DevQWFhD.js} +1 -1
- package/ui-dist/assets/{erDiagram-SSCWMZ5O-DU4Qz6qu.js → erDiagram-SSCWMZ5O-CXZW4I_b.js} +1 -1
- package/ui-dist/assets/{es-ES-U4NZUMDT-CZ9XqqCk.js → es-ES-U4NZUMDT-DgzMLG1J.js} +1 -1
- package/ui-dist/assets/{eu-ES-A7QVB2H4-CNagAo_o.js → eu-ES-A7QVB2H4-1tA3vosZ.js} +1 -1
- package/ui-dist/assets/eventmodeling-NTZA5JFV-Bh0QsTUi.js +1 -0
- package/ui-dist/assets/{fa-IR-HGAKTJCU-CGpX3K56.js → fa-IR-HGAKTJCU-BVbN6Ifb.js} +1 -1
- package/ui-dist/assets/{fi-FI-Z5N7JZ37-D8ErPXQZ.js → fi-FI-Z5N7JZ37-DsGMdP7T.js} +1 -1
- package/ui-dist/assets/flowDiagram-A5DVABFB-Chb6hSSG.js +1 -0
- package/ui-dist/assets/{fr-FR-RHASNOE6-CgP9qmF-.js → fr-FR-RHASNOE6-BEZa94DA.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-EL5Y4UJY-CNqGfKGy.js → ganttDiagram-EL5Y4UJY-BZxyNgRP.js} +1 -1
- package/ui-dist/assets/{gitGraph-4MIJSDKK-Cjg2l4tr.js → gitGraph-4MIJSDKK-Cz7F-_6d.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-WWUBYQGX-C1RblGyv.js → gitGraphDiagram-WWUBYQGX-77gOaAOD.js} +1 -1
- package/ui-dist/assets/{gl-ES-HMX3MZ6V-D64w31ga.js → gl-ES-HMX3MZ6V-DfSDz_sy.js} +1 -1
- package/ui-dist/assets/{he-IL-6SHJWFNN-prTy1rRE.js → he-IL-6SHJWFNN-DT8nqxK2.js} +1 -1
- package/ui-dist/assets/{hi-IN-IWLTKZ5I-uvdg8ovV.js → hi-IN-IWLTKZ5I-BtL1eizk.js} +1 -1
- package/ui-dist/assets/{hu-HU-A5ZG7DT2-OIhzhh7g.js → hu-HU-A5ZG7DT2-5FwjCLbT.js} +1 -1
- package/ui-dist/assets/{id-ID-SAP4L64H-Bs8DbFR5.js → id-ID-SAP4L64H-DXfUbYET.js} +1 -1
- package/ui-dist/assets/image-GAAHSSAO-AgKiDvHK.js +1 -0
- package/ui-dist/assets/{index-CknJbzCM.js → index-Boxo043A.js} +8 -8
- package/ui-dist/assets/{info-A6RAGUB7-DdLeprH9.js → info-A6RAGUB7-DIe8iET8.js} +1 -1
- package/ui-dist/assets/{infoDiagram-RXCK75RN-B1aPG_BB.js → infoDiagram-RXCK75RN-Dik-rzpk.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-5VMMS53U-ChG5EVuT.js → ishikawaDiagram-5VMMS53U-Ccb-hHW6.js} +1 -1
- package/ui-dist/assets/{it-IT-JPQ66NNP-CVy3c_Ht.js → it-IT-JPQ66NNP-6_sPHBVO.js} +1 -1
- package/ui-dist/assets/{ja-JP-DBVTYXUO-EcX4mq4z.js → ja-JP-DBVTYXUO-DgY_5_c8.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-EYS64GPL-BZ4Ytc1U.js → journeyDiagram-EYS64GPL-CgzxmpyV.js} +1 -1
- package/ui-dist/assets/{kaa-6HZHGXH3-BwP9az-p.js → kaa-6HZHGXH3-glmGx672.js} +1 -1
- package/ui-dist/assets/{kab-KAB-ZGHBKWFO-By-AIEWs.js → kab-KAB-ZGHBKWFO--G7baVL0.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3QL26DDD-Dm8bYrkM.js → kanban-definition-3QL26DDD-D6TnbrdQ.js} +1 -1
- package/ui-dist/assets/{kk-KZ-P5N5QNE5-DYNjxBd-.js → kk-KZ-P5N5QNE5-D3Vn0qgF.js} +1 -1
- package/ui-dist/assets/{km-KH-HSX4SM5Z-DS2ZYG-3.js → km-KH-HSX4SM5Z-CAHt3o8M.js} +1 -1
- package/ui-dist/assets/{ko-KR-MTYHY66A-DOz4vl1z.js → ko-KR-MTYHY66A-N3tCiPap.js} +1 -1
- package/ui-dist/assets/{ku-TR-6OUDTVRD-CxEEWxJq.js → ku-TR-6OUDTVRD-CSZFwS--.js} +1 -1
- package/ui-dist/assets/{line-B65qaCJb.js → line-BhVZwKwh.js} +1 -1
- package/ui-dist/assets/{lt-LT-XHIRWOB4-CkgB2O8i.js → lt-LT-XHIRWOB4-DuSlkfc-.js} +1 -1
- package/ui-dist/assets/{lv-LV-5QDEKY6T-BUDeq4Hb.js → lv-LV-5QDEKY6T-COuWGNLd.js} +1 -1
- package/ui-dist/assets/{mermaid-parser.core-C60rNywA.js → mermaid-parser.core-DlqbfUOM.js} +3 -3
- package/ui-dist/assets/{mindmap-definition-FBJOCRG2-DAu41qFN.js → mindmap-definition-FBJOCRG2-D9wLjZXa.js} +1 -1
- package/ui-dist/assets/{mr-IN-CRQNXWMA-DtuuryqC.js → mr-IN-CRQNXWMA-Bv4WHAzM.js} +1 -1
- package/ui-dist/assets/{my-MM-5M5IBNSE-CC79-XBH.js → my-MM-5M5IBNSE-BNltBCCh.js} +1 -1
- package/ui-dist/assets/{nb-NO-T6EIAALU-CKNIbK-0.js → nb-NO-T6EIAALU-DgsGabVE.js} +1 -1
- package/ui-dist/assets/{nl-NL-IS3SIHDZ-B3dYZhvS.js → nl-NL-IS3SIHDZ-MPMxu0cH.js} +1 -1
- package/ui-dist/assets/{nn-NO-6E72VCQL-CdPrOnP4.js → nn-NO-6E72VCQL-CY-NT6bD.js} +1 -1
- package/ui-dist/assets/{oc-FR-POXYY2M6-DUmzGjKc.js → oc-FR-POXYY2M6-BCWtA2dJ.js} +1 -1
- package/ui-dist/assets/{pa-IN-N4M65BXN-DH39ZTHj.js → pa-IN-N4M65BXN-CU1D5Lce.js} +1 -1
- package/ui-dist/assets/{packet-AYTQ26CC-DdR4jEOZ.js → packet-AYTQ26CC-DCMIIosG.js} +1 -1
- package/ui-dist/assets/{pegDiagram-XKGWAZYB-Dx1lj8MV.js → pegDiagram-XKGWAZYB-CpU2aj-A.js} +1 -1
- package/ui-dist/assets/percentages-BXMCSKIN-CMz17NMy.js +1 -0
- package/ui-dist/assets/{pie-WAS4IAKB-cVrV21tR.js → pie-WAS4IAKB-BEVkH0em.js} +1 -1
- package/ui-dist/assets/{pieDiagram-E7YTZNPT-CcvgLYQz.js → pieDiagram-E7YTZNPT-D-jyX8nJ.js} +1 -1
- package/ui-dist/assets/{pl-PL-T2D74RX3-BNYpL8df.js → pl-PL-T2D74RX3-CwNWACCb.js} +1 -1
- package/ui-dist/assets/{pt-BR-5N22H2LF-RWmGHl_8.js → pt-BR-5N22H2LF-DCs1W5P0.js} +1 -1
- package/ui-dist/assets/{pt-PT-UZXXM6DQ-smq6YmTY.js → pt-PT-UZXXM6DQ-Bm9Hlh9S.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AXDQQJYC-C4xDsL0E.js → quadrantDiagram-AXDQQJYC-BqzJD4zL.js} +1 -1
- package/ui-dist/assets/{radar-RG4KPBEZ-DYaemlGZ.js → radar-RG4KPBEZ-B6T3SZ4z.js} +1 -1
- package/ui-dist/assets/{railroad-74A4TZTK-BbRg5RPZ.js → railroad-74A4TZTK-BPKCaP4g.js} +1 -1
- package/ui-dist/assets/railroad-abnf-HS5TGJTU-RL2kk25t.js +1 -0
- package/ui-dist/assets/railroad-ebnf-LZEXJU2U-NY4mALmg.js +1 -0
- package/ui-dist/assets/railroad-peg-WCYAUIDC-BNAC9MGy.js +1 -0
- package/ui-dist/assets/{railroadDiagram-O6MQD6OU-CR1fbGhX.js → railroadDiagram-O6MQD6OU-CzTuUKE-.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-EFPCY7ZU-CFp52i96.js → requirementDiagram-EFPCY7ZU-Bly8_reu.js} +1 -1
- package/ui-dist/assets/{ro-RO-JPDTUUEW-BOjKaxCz.js → ro-RO-JPDTUUEW-DbKkWzmT.js} +1 -1
- package/ui-dist/assets/{ru-RU-B4JR7IUQ-DOK2ZlyX.js → ru-RU-B4JR7IUQ-C7y8hptt.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-P5KCCOFB-CZWdGNnS.js → sankeyDiagram-P5KCCOFB-BNe1jsYh.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WJ2MYXX4-D4X03yFA.js → sequenceDiagram-WJ2MYXX4-jpU3VDzA.js} +1 -1
- package/ui-dist/assets/{si-LK-N5RQ5JYF-BtKkEPfN.js → si-LK-N5RQ5JYF-DsyN9eZC.js} +1 -1
- package/ui-dist/assets/{sk-SK-C5VTKIMK-DehBWGkI.js → sk-SK-C5VTKIMK-C3GmutL2.js} +1 -1
- package/ui-dist/assets/{sl-SI-NN7IZMDC-ClR46UYx.js → sl-SI-NN7IZMDC-C6dxM6aa.js} +1 -1
- package/ui-dist/assets/{stateDiagram-HBIQ2CUA-Bg1Uy2K-.js → stateDiagram-HBIQ2CUA-B2ZRnydN.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4QOOHH4V-BUscqu-N.js +1 -0
- package/ui-dist/assets/subset-shared.chunk-CRXudW0i.js +1 -0
- package/ui-dist/assets/{subset-worker.chunk-BLppPGco.js → subset-worker.chunk-WItGSQq_.js} +1 -1
- package/ui-dist/assets/{sv-SE-XGPEYMSR-Cq54FLpH.js → sv-SE-XGPEYMSR-BPU1z_vz.js} +1 -1
- package/ui-dist/assets/{swimlanes-XN3QIQJK-Ca4vLBMp.js → swimlanes-XN3QIQJK-BuYIN15M.js} +1 -1
- package/ui-dist/assets/swimlanesDiagram-VK2B7HYN-Cn_HC7uw.js +8 -0
- package/ui-dist/assets/{ta-IN-2NMHFXQM-SCh3n0lB.js → ta-IN-2NMHFXQM-AJVbdGTO.js} +1 -1
- package/ui-dist/assets/{th-TH-HPSO5L25-BotlAjVv.js → th-TH-HPSO5L25-B1vvYNmv.js} +1 -1
- package/ui-dist/assets/{timeline-definition-24CTP7MA-CjHCKN4P.js → timeline-definition-24CTP7MA-Bld3Oj9i.js} +1 -1
- package/ui-dist/assets/{tr-TR-DEFEU3FU-B4u6Au2y.js → tr-TR-DEFEU3FU-C_emJDca.js} +1 -1
- package/ui-dist/assets/{treeView-Q6P3EWNA-CKMtikLc.js → treeView-Q6P3EWNA-CQEi50Re.js} +1 -1
- package/ui-dist/assets/{treemap-WGGIJYW6-B51xYeX7.js → treemap-WGGIJYW6-D3gRwGbr.js} +1 -1
- package/ui-dist/assets/{uk-UA-QMV73CPH-CtQkKgv_.js → uk-UA-QMV73CPH-B69Ddo0p.js} +1 -1
- package/ui-dist/assets/{vennDiagram-4TSXK5OY-CSH3IvAD.js → vennDiagram-4TSXK5OY-BWtR81LD.js} +1 -1
- package/ui-dist/assets/{vi-VN-M7AON7JQ-CjZyv0HH.js → vi-VN-M7AON7JQ-ByM0OkIF.js} +1 -1
- package/ui-dist/assets/{wardley-WFR3VGLG-wnJkewtF.js → wardley-WFR3VGLG-DpBUmo8s.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-VM6X3IG4-BJuisjH-.js → wardleyDiagram-VM6X3IG4-n39Dh9vZ.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-S5SC5T6Z-hiDu0XBA.js → xychartDiagram-S5SC5T6Z-D8-lcdGr.js} +1 -1
- package/ui-dist/assets/{zh-CN-LNUGB5OW-DyyyDDxj.js → zh-CN-LNUGB5OW-g_S93sCp.js} +1 -1
- package/ui-dist/assets/{zh-HK-E62DVLB3-Ch2pxiFR.js → zh-HK-E62DVLB3-B3J_lyrF.js} +1 -1
- package/ui-dist/assets/{zh-TW-RAJ6MFWO-CSf1_B6H.js → zh-TW-RAJ6MFWO-mYLP5aqQ.js} +1 -1
- package/ui-dist/index.html +1 -1
- package/ui-dist/assets/architecture-7GRP2DOG-8nO9N-PA.js +0 -1
- package/ui-dist/assets/channel-uzdT5KPV.js +0 -1
- package/ui-dist/assets/classDiagram-DTDB5LWJ-CodHh4yt.js +0 -1
- package/ui-dist/assets/classDiagram-v2-JRS7N3AN-CodHh4yt.js +0 -1
- package/ui-dist/assets/eventmodeling-NTZA5JFV-CLxW34Y6.js +0 -1
- package/ui-dist/assets/flowDiagram-A5DVABFB-mMONVpxe.js +0 -1
- package/ui-dist/assets/image-GAAHSSAO-D1P4Y62B.js +0 -1
- package/ui-dist/assets/percentages-BXMCSKIN-d5p7s-wT.js +0 -1
- package/ui-dist/assets/railroad-abnf-HS5TGJTU-BoiCOpxv.js +0 -1
- package/ui-dist/assets/railroad-ebnf-LZEXJU2U-ArFqgLSZ.js +0 -1
- package/ui-dist/assets/railroad-peg-WCYAUIDC-BAks8GCx.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-4QOOHH4V-Ci4MD4Pt.js +0 -1
- package/ui-dist/assets/subset-shared.chunk-DQ-JqEaX.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-VK2B7HYN-BKiafpMh.js +0 -8
|
@@ -223,10 +223,16 @@ var BINDING_FIELDS = [
|
|
|
223
223
|
"startBinding",
|
|
224
224
|
"endBinding"
|
|
225
225
|
];
|
|
226
|
+
var DataUrl = z.custom(isNonEmptyString, {
|
|
227
|
+
message: "dataURL must be a non-empty string"
|
|
228
|
+
});
|
|
229
|
+
var FileMimeType = z.custom(isNonEmptyString, {
|
|
230
|
+
message: "mimeType must be a non-empty string"
|
|
231
|
+
});
|
|
226
232
|
var SceneFile = z.object({
|
|
227
233
|
id: FileId,
|
|
228
|
-
mimeType:
|
|
229
|
-
dataURL:
|
|
234
|
+
mimeType: FileMimeType,
|
|
235
|
+
dataURL: DataUrl,
|
|
230
236
|
created: z.number(),
|
|
231
237
|
lastRetrieved: z.number().optional()
|
|
232
238
|
});
|
|
@@ -381,6 +387,13 @@ var DescribedElement = z.object({
|
|
|
381
387
|
to: ElementId.nullish(),
|
|
382
388
|
style: DescribedStyle.nullish()
|
|
383
389
|
});
|
|
390
|
+
var Overlap = z.object({
|
|
391
|
+
a: ElementId,
|
|
392
|
+
b: ElementId,
|
|
393
|
+
/** Size of the intersecting region, in px. */
|
|
394
|
+
width: z.number(),
|
|
395
|
+
height: z.number()
|
|
396
|
+
});
|
|
384
397
|
var SceneDescription = z.object({
|
|
385
398
|
sceneId: SceneId,
|
|
386
399
|
name: z.string(),
|
|
@@ -389,6 +402,10 @@ var SceneDescription = z.object({
|
|
|
389
402
|
updatedAgoMs: z.number().int(),
|
|
390
403
|
frames: z.array(DescribedFrame),
|
|
391
404
|
elements: z.array(DescribedElement),
|
|
405
|
+
/** Worst first, and capped — see `MAX_REPORTED_OVERLAPS`. */
|
|
406
|
+
overlaps: z.array(Overlap),
|
|
407
|
+
/** Every collision found, including the ones `overlaps` was truncated past. */
|
|
408
|
+
overlapCount: z.number().int().nonnegative(),
|
|
392
409
|
detail: DetailLevel
|
|
393
410
|
});
|
|
394
411
|
var DescribedEdge = z.object({
|
|
@@ -726,8 +743,30 @@ var HOUSE = {
|
|
|
726
743
|
external: { strokeColor: "#1e1e1e", backgroundColor: "transparent" },
|
|
727
744
|
hotspot: { strokeColor: "#e03131", backgroundColor: "#ffc9c9" }
|
|
728
745
|
},
|
|
729
|
-
sizes: {
|
|
730
|
-
|
|
746
|
+
sizes: {
|
|
747
|
+
/** The floor a labelled shape starts from, and the size an unlabelled one keeps. */
|
|
748
|
+
service: [180, 80],
|
|
749
|
+
icon: 64,
|
|
750
|
+
framePad: 40,
|
|
751
|
+
/** Breathing room around a bound label. Wider than upstream's 5 px, which lets text
|
|
752
|
+
* touch the stroke. */
|
|
753
|
+
labelPadX: 16,
|
|
754
|
+
labelPadY: 12,
|
|
755
|
+
/** Past this a label wraps instead of widening. A 400 px box holding one line reads
|
|
756
|
+
* as a banner, not a node. */
|
|
757
|
+
maxBox: 280
|
|
758
|
+
},
|
|
759
|
+
spacing: { h: 60, v: 100 },
|
|
760
|
+
/**
|
|
761
|
+
* Every computed size rounds up to this.
|
|
762
|
+
*
|
|
763
|
+
* `guides/layout.md` already tells the reader to keep coordinates on a 20 px grid so a
|
|
764
|
+
* nudge stays aligned; sizes derived from measured text have to land on it too. It is
|
|
765
|
+
* also what answers `adr/0004`'s objection to measuring at all — that per-box widths
|
|
766
|
+
* differing by a few pixels make a rank of five look ragged. Quantised, they do not
|
|
767
|
+
* differ by a few pixels: they are equal or they are 20 apart on purpose.
|
|
768
|
+
*/
|
|
769
|
+
grid: 20
|
|
731
770
|
};
|
|
732
771
|
var CreatableType = z.enum(["rectangle", "diamond", "ellipse", "text", "line"], {
|
|
733
772
|
error: (issue) => issue.input === "arrow" ? "arrow rejected \u2014 use chalk_connect(fromId, toId), it handles the bindings" : `unknown element type ${JSON.stringify(issue.input)} \u2014 valid: rectangle, diamond, ellipse, text, line, and chalk_connect for arrows`
|
|
@@ -898,7 +937,17 @@ var ReadMeOutput = z.object({
|
|
|
898
937
|
var writeResult = {
|
|
899
938
|
sceneId: SceneId,
|
|
900
939
|
sceneVersion: z.number().int(),
|
|
901
|
-
broadcastTo: z.number().int().nonnegative()
|
|
940
|
+
broadcastTo: z.number().int().nonnegative(),
|
|
941
|
+
/**
|
|
942
|
+
* Something is buried on the canvas after this write — or `null`, which is the normal
|
|
943
|
+
* case and says so by being absent rather than by saying "none".
|
|
944
|
+
*
|
|
945
|
+
* On **every** write rather than on a read, because the alternative is that the agent
|
|
946
|
+
* has to decide to go and look, and the only tool that used to answer "did that land
|
|
947
|
+
* badly?" was `chalk_screenshot` — a rendered image, the most expensive call here. A
|
|
948
|
+
* layout mistake now costs one sentence at the moment it is made.
|
|
949
|
+
*/
|
|
950
|
+
overlapWarning: z.string().nullable()
|
|
902
951
|
};
|
|
903
952
|
var ToolRejection = z.object({
|
|
904
953
|
id: ElementId,
|
|
@@ -1050,10 +1099,27 @@ var SearchIconsOutput = z.object({
|
|
|
1050
1099
|
*/
|
|
1051
1100
|
note: z.string().nullable()
|
|
1052
1101
|
});
|
|
1102
|
+
var IconPlacement = z.enum(["above", "below", "left", "right", "badge", "inside"]);
|
|
1053
1103
|
var PlaceIconInput = z.object({
|
|
1054
1104
|
iconId: IconId,
|
|
1055
|
-
|
|
1056
|
-
|
|
1105
|
+
/**
|
|
1106
|
+
* Absolute position. Optional **only** when `attachTo` is given — one or the other has
|
|
1107
|
+
* to say where the icon goes, and the error names the missing half.
|
|
1108
|
+
*/
|
|
1109
|
+
x: z.number().optional(),
|
|
1110
|
+
y: z.number().optional(),
|
|
1111
|
+
/**
|
|
1112
|
+
* Attach the icon to an existing element instead of positioning it by hand.
|
|
1113
|
+
*
|
|
1114
|
+
* This is the difference between an icon that is *part of* a node and one that merely
|
|
1115
|
+
* happens to be near it today. An attached icon is recorded in
|
|
1116
|
+
* `customData.chalk.anchorIds` and travels with its element through every arrange
|
|
1117
|
+
* operation, `layout-layered` included — which is what stops a set of vendor marks being
|
|
1118
|
+
* left stranded across the canvas the first time the boxes are laid out.
|
|
1119
|
+
*/
|
|
1120
|
+
attachTo: ElementId.optional(),
|
|
1121
|
+
/** Where it sits relative to `attachTo`. Ignored without it. Defaults to `above`. */
|
|
1122
|
+
placement: IconPlacement.optional(),
|
|
1057
1123
|
/** Longest side in px. Defaults to `HOUSE.sizes.icon`; the aspect comes from the icon. */
|
|
1058
1124
|
size: z.number().positive().optional(),
|
|
1059
1125
|
/** A caption centred beneath it. An unlabelled icon says "a thing was here". */
|
|
@@ -1311,6 +1377,11 @@ var unknownIcon = (id, packs) => err("UNKNOWN_ICON", `no icon "${id}" in the cat
|
|
|
1311
1377
|
tool: "chalk_search_icons",
|
|
1312
1378
|
detail: { id }
|
|
1313
1379
|
});
|
|
1380
|
+
var iconNeedsAPlace = (id) => err("ICON_NEEDS_A_PLACE", `nowhere to put "${id}" \u2014 pass attachTo, or both x and y`, {
|
|
1381
|
+
hint: "attachTo: the element it belongs to (it then travels with that element through every layout). x/y only for an icon that belongs to the canvas rather than to a node",
|
|
1382
|
+
tool: "chalk_place_icon",
|
|
1383
|
+
detail: { id }
|
|
1384
|
+
});
|
|
1314
1385
|
var packInstallFailed = (pack, reason) => err("PACK_INSTALL_FAILED", `could not install the icon pack "${pack}": ${reason}`, {
|
|
1315
1386
|
hint: "check the machine can reach the npm registry, or install the package yourself and point chalk_install_pack at it with `from`",
|
|
1316
1387
|
tool: "chalk_install_pack",
|
|
@@ -1430,6 +1501,174 @@ function installDomShim() {
|
|
|
1430
1501
|
};
|
|
1431
1502
|
}
|
|
1432
1503
|
|
|
1504
|
+
// src/domain/style/text-metrics.ts
|
|
1505
|
+
var EXCALIFONT_EM = {
|
|
1506
|
+
" ": 0.4,
|
|
1507
|
+
"!": 0.314,
|
|
1508
|
+
'"': 0.371,
|
|
1509
|
+
"#": 0.783,
|
|
1510
|
+
$: 0.721,
|
|
1511
|
+
"%": 0.928,
|
|
1512
|
+
"&": 0.718,
|
|
1513
|
+
"'": 0.218,
|
|
1514
|
+
"(": 0.441,
|
|
1515
|
+
")": 0.402,
|
|
1516
|
+
"*": 0.525,
|
|
1517
|
+
"+": 0.55,
|
|
1518
|
+
",": 0.257,
|
|
1519
|
+
"-": 0.411,
|
|
1520
|
+
".": 0.274,
|
|
1521
|
+
"/": 0.561,
|
|
1522
|
+
"0": 0.664,
|
|
1523
|
+
"1": 0.427,
|
|
1524
|
+
"2": 0.7,
|
|
1525
|
+
"3": 0.608,
|
|
1526
|
+
"4": 0.585,
|
|
1527
|
+
"5": 0.618,
|
|
1528
|
+
"6": 0.64,
|
|
1529
|
+
"7": 0.558,
|
|
1530
|
+
"8": 0.636,
|
|
1531
|
+
"9": 0.629,
|
|
1532
|
+
":": 0.264,
|
|
1533
|
+
";": 0.298,
|
|
1534
|
+
"<": 0.55,
|
|
1535
|
+
"=": 0.55,
|
|
1536
|
+
">": 0.55,
|
|
1537
|
+
"?": 0.466,
|
|
1538
|
+
"@": 0.829,
|
|
1539
|
+
A: 0.676,
|
|
1540
|
+
B: 0.761,
|
|
1541
|
+
C: 0.629,
|
|
1542
|
+
D: 0.78,
|
|
1543
|
+
E: 0.707,
|
|
1544
|
+
F: 0.661,
|
|
1545
|
+
G: 0.78,
|
|
1546
|
+
H: 0.573,
|
|
1547
|
+
I: 0.545,
|
|
1548
|
+
J: 0.569,
|
|
1549
|
+
K: 0.613,
|
|
1550
|
+
L: 0.543,
|
|
1551
|
+
M: 0.766,
|
|
1552
|
+
N: 0.632,
|
|
1553
|
+
O: 0.767,
|
|
1554
|
+
P: 0.698,
|
|
1555
|
+
Q: 0.768,
|
|
1556
|
+
R: 0.736,
|
|
1557
|
+
S: 0.622,
|
|
1558
|
+
T: 0.857,
|
|
1559
|
+
U: 0.73,
|
|
1560
|
+
V: 0.592,
|
|
1561
|
+
W: 0.786,
|
|
1562
|
+
X: 0.628,
|
|
1563
|
+
Y: 0.564,
|
|
1564
|
+
Z: 0.832,
|
|
1565
|
+
"[": 0.472,
|
|
1566
|
+
"\\": 0.589,
|
|
1567
|
+
"]": 0.497,
|
|
1568
|
+
"^": 0.51,
|
|
1569
|
+
_: 0.67,
|
|
1570
|
+
"`": 0.6,
|
|
1571
|
+
a: 0.576,
|
|
1572
|
+
b: 0.555,
|
|
1573
|
+
c: 0.504,
|
|
1574
|
+
d: 0.605,
|
|
1575
|
+
e: 0.537,
|
|
1576
|
+
f: 0.497,
|
|
1577
|
+
g: 0.555,
|
|
1578
|
+
h: 0.567,
|
|
1579
|
+
i: 0.244,
|
|
1580
|
+
j: 0.328,
|
|
1581
|
+
k: 0.533,
|
|
1582
|
+
l: 0.225,
|
|
1583
|
+
m: 0.663,
|
|
1584
|
+
n: 0.526,
|
|
1585
|
+
o: 0.6,
|
|
1586
|
+
p: 0.537,
|
|
1587
|
+
q: 0.539,
|
|
1588
|
+
r: 0.412,
|
|
1589
|
+
s: 0.543,
|
|
1590
|
+
t: 0.553,
|
|
1591
|
+
u: 0.548,
|
|
1592
|
+
v: 0.525,
|
|
1593
|
+
w: 0.693,
|
|
1594
|
+
x: 0.591,
|
|
1595
|
+
y: 0.53,
|
|
1596
|
+
z: 0.572,
|
|
1597
|
+
"{": 0.504,
|
|
1598
|
+
"|": 0.299,
|
|
1599
|
+
"}": 0.544,
|
|
1600
|
+
"~": 0.669,
|
|
1601
|
+
// Beyond ASCII, only what actually turns up in a diagram. `·` earns its place: it is
|
|
1602
|
+
// the separator this project's own labels use ("Dev machine · manage.sh dist"), and the
|
|
1603
|
+
// block fallback below would over-estimate it nearly threefold.
|
|
1604
|
+
"\xB7": 0.2,
|
|
1605
|
+
"\u2013": 0.702,
|
|
1606
|
+
"\u2014": 0.935,
|
|
1607
|
+
"\u2026": 0.709,
|
|
1608
|
+
"\u2022": 0.522,
|
|
1609
|
+
"\u2019": 0.304,
|
|
1610
|
+
"\u201C": 0.412,
|
|
1611
|
+
"\u201D": 0.428,
|
|
1612
|
+
"\xD7": 0.55,
|
|
1613
|
+
"\xB0": 0.412,
|
|
1614
|
+
"\xA3": 0.71,
|
|
1615
|
+
"\u20AC": 0.713,
|
|
1616
|
+
\u00E9: 0.551,
|
|
1617
|
+
\u00FC: 0.508,
|
|
1618
|
+
\u00F1: 0.526,
|
|
1619
|
+
"\u2713": 0.749
|
|
1620
|
+
};
|
|
1621
|
+
var fallbackEm = (codePoint) => {
|
|
1622
|
+
if (codePoint < 32) return 0;
|
|
1623
|
+
if (codePoint <= 591) return 0.56;
|
|
1624
|
+
if (codePoint >= 8192 && codePoint <= 8303) return 0.95;
|
|
1625
|
+
if (codePoint >= 126976) return 1.4;
|
|
1626
|
+
return 1;
|
|
1627
|
+
};
|
|
1628
|
+
var emWidth = (character) => {
|
|
1629
|
+
const known = EXCALIFONT_EM[character];
|
|
1630
|
+
if (known !== void 0) return known;
|
|
1631
|
+
return fallbackEm(character.codePointAt(0) ?? 0);
|
|
1632
|
+
};
|
|
1633
|
+
function measureLine(text, fontSize) {
|
|
1634
|
+
let em = 0;
|
|
1635
|
+
for (const character of text) em += emWidth(character);
|
|
1636
|
+
return em * fontSize;
|
|
1637
|
+
}
|
|
1638
|
+
function wrapLines(text, fontSize, maxWidth) {
|
|
1639
|
+
const paragraphs = text.split("\n");
|
|
1640
|
+
const lines = [];
|
|
1641
|
+
for (const paragraph of paragraphs) {
|
|
1642
|
+
const words = paragraph.split(" ").filter((word) => word !== "");
|
|
1643
|
+
if (words.length === 0) {
|
|
1644
|
+
lines.push("");
|
|
1645
|
+
continue;
|
|
1646
|
+
}
|
|
1647
|
+
let line = "";
|
|
1648
|
+
for (const word of words) {
|
|
1649
|
+
const candidate = line === "" ? word : `${line} ${word}`;
|
|
1650
|
+
if (line !== "" && measureLine(candidate, fontSize) > maxWidth) {
|
|
1651
|
+
lines.push(line);
|
|
1652
|
+
line = word;
|
|
1653
|
+
} else {
|
|
1654
|
+
line = candidate;
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
lines.push(line);
|
|
1658
|
+
}
|
|
1659
|
+
return lines;
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
// src/adapters/excalidraw/text-metrics.ts
|
|
1663
|
+
var fontSizeOf = (fontString) => {
|
|
1664
|
+
const match = /(\d+(?:\.\d+)?)px/.exec(fontString);
|
|
1665
|
+
const size = match?.[1];
|
|
1666
|
+
return size === void 0 ? 20 : Number.parseFloat(size);
|
|
1667
|
+
};
|
|
1668
|
+
var createTextMetricsProvider = () => ({
|
|
1669
|
+
getLineWidth: (text, fontString) => measureLine(text, fontSizeOf(fontString))
|
|
1670
|
+
});
|
|
1671
|
+
|
|
1433
1672
|
// src/adapters/excalidraw/node-expander.ts
|
|
1434
1673
|
var WARM_UP = [
|
|
1435
1674
|
{ type: "rectangle", id: "warmup-a", x: 0, y: 0, width: 10, height: 10, label: { text: "a" } },
|
|
@@ -1448,7 +1687,8 @@ var converter = null;
|
|
|
1448
1687
|
async function loadConverter() {
|
|
1449
1688
|
const uninstall = installDomShim();
|
|
1450
1689
|
try {
|
|
1451
|
-
const { convertToExcalidrawElements } = await import('./prod-KHI2WQT3.js');
|
|
1690
|
+
const { convertToExcalidrawElements, setCustomTextMetricsProvider } = await import('./prod-KHI2WQT3.js');
|
|
1691
|
+
setCustomTextMetricsProvider(createTextMetricsProvider());
|
|
1452
1692
|
convertToExcalidrawElements([...WARM_UP], { regenerateIds: false });
|
|
1453
1693
|
return ok(convertToExcalidrawElements);
|
|
1454
1694
|
} catch (thrown) {
|
|
@@ -1457,6 +1697,8 @@ async function loadConverter() {
|
|
|
1457
1697
|
uninstall();
|
|
1458
1698
|
}
|
|
1459
1699
|
}
|
|
1700
|
+
var NEEDS_STAND_IN = /* @__PURE__ */ new Set(["image", "frame", "embeddable"]);
|
|
1701
|
+
var standIn = (element) => NEEDS_STAND_IN.has(element.type) ? { ...element, type: "rectangle" } : element;
|
|
1460
1702
|
function createNodeSkeletonExpander() {
|
|
1461
1703
|
return {
|
|
1462
1704
|
async expand(skeletons, context) {
|
|
@@ -1466,7 +1708,7 @@ function createNodeSkeletonExpander() {
|
|
|
1466
1708
|
if (!loaded.ok) return loaded;
|
|
1467
1709
|
let raw;
|
|
1468
1710
|
try {
|
|
1469
|
-
const convertible = (context ?? []).
|
|
1711
|
+
const convertible = (context ?? []).map(standIn);
|
|
1470
1712
|
raw = loaded.value([...convertible, ...skeletons], { regenerateIds: false });
|
|
1471
1713
|
} catch (thrown) {
|
|
1472
1714
|
return fail(expansionFailed(describeThrown(thrown)));
|
|
@@ -1503,6 +1745,6 @@ var stable = (element) => {
|
|
|
1503
1745
|
return rest;
|
|
1504
1746
|
};
|
|
1505
1747
|
|
|
1506
|
-
export { AnnotateInput, AnnotateOutput, ApiError, ArrangeOutput, ArrangeToolInput, BINDING_FIELDS, ClientMessage, ConnectOutput, ConnectToolInput, CreateElementsInput, CreateElementsOutput, DebugElementRequest, DeleteElementsInput, DeleteElementsOutput, DescribeSceneInput, DescribeSceneOutput, DetailLevel, EXCALIDRAW_FILE_TYPE, EXCALIDRAW_FILE_VERSION, ElementId, EmbedInput, EmbedOutput, ExcalidrawFile, ExportImageInput, ExportImageOutput, ExportSceneInput, ExportSceneOutput, FLAG_GLYPH, FileId, FocusInput, FocusOutput, FrameId, FrameInput, FrameOutput, GUIDE_TOPICS, GetElementsInput, GetElementsOutput, GetSelectionInput, GetSelectionOutput, GroupId, GroupInput, GroupOutput, GuideTopic, HOUSE, HealthResponse, IconId, IconItem, ImportSceneInput, ImportSceneOutput, Index, InstallPackInput, InstallPackOutput, KIND_ABBREVIATION, ListPacksInput, ListPacksOutput, ListScenesInput, ListScenesOutput, PROTOCOL_VERSION, PackKind, PackName, PackRecipe, PlaceIconInput, PlaceIconOutput, ROUNDNESS, RawElementsInput, RawElementsOutput, ReadMeInput, ReadMeOutput, RemovePackInput, RemovePackOutput, RestoreSnapshotInput, RestoreSnapshotOutput, SERVER_MANAGED_FIELDS, STALE_SELECTION_MS, Scene, SceneElement, SceneId, SceneSettingsInput, SceneSettingsOutput, ScreenshotInput, ScreenshotOutput, ScreenshotResponse, SearchIconsInput, SearchIconsOutput, SnapshotId, SnapshotInput, SnapshotOutput, UngroupInput, UngroupOutput, UpdateElementsInput, UpdateElementsOutput, assertNever, bridgeSpawnFailed, bridgeUnreachable, bridgeVersionMismatch, catalogUnavailable, createNodeSkeletonExpander, deepEqual, describeThrown, diskConflict, emptySelection, expansionFailed, exportFailed, exportTimedOut, fail, frameIdOf, iconIdOf, idCollision, isFail, isOk, noBoundLabel, noBrowser, noScenes, notAPack, notARepo, ok, packInstallFailed, partition, pathOutsideRepo, point, portUnavailable, refusedFieldMessage, sceneFileMissing, staleVersion, storeUnavailable, unknownElement, unknownIcon, unknownScene, unknownSnapshot, unreadableSceneFile };
|
|
1507
|
-
//# sourceMappingURL=chunk-
|
|
1508
|
-
//# sourceMappingURL=chunk-
|
|
1748
|
+
export { AnnotateInput, AnnotateOutput, ApiError, ArrangeOutput, ArrangeToolInput, BINDING_FIELDS, ClientMessage, ConnectOutput, ConnectToolInput, CreateElementsInput, CreateElementsOutput, DataUrl, DebugElementRequest, DeleteElementsInput, DeleteElementsOutput, DescribeSceneInput, DescribeSceneOutput, DetailLevel, EXCALIDRAW_FILE_TYPE, EXCALIDRAW_FILE_VERSION, ElementId, EmbedInput, EmbedOutput, ExcalidrawFile, ExportImageInput, ExportImageOutput, ExportSceneInput, ExportSceneOutput, FLAG_GLYPH, FileId, FocusInput, FocusOutput, FrameId, FrameInput, FrameOutput, GUIDE_TOPICS, GetElementsInput, GetElementsOutput, GetSelectionInput, GetSelectionOutput, GroupId, GroupInput, GroupOutput, GuideTopic, HOUSE, HealthResponse, IconId, IconItem, ImportSceneInput, ImportSceneOutput, Index, InstallPackInput, InstallPackOutput, KIND_ABBREVIATION, ListPacksInput, ListPacksOutput, ListScenesInput, ListScenesOutput, PROTOCOL_VERSION, PackKind, PackName, PackRecipe, PlaceIconInput, PlaceIconOutput, ROUNDNESS, RawElementsInput, RawElementsOutput, ReadMeInput, ReadMeOutput, RemovePackInput, RemovePackOutput, RestoreSnapshotInput, RestoreSnapshotOutput, SERVER_MANAGED_FIELDS, STALE_SELECTION_MS, Scene, SceneElement, SceneId, SceneSettingsInput, SceneSettingsOutput, ScreenshotInput, ScreenshotOutput, ScreenshotResponse, SearchIconsInput, SearchIconsOutput, SnapshotId, SnapshotInput, SnapshotOutput, UngroupInput, UngroupOutput, UpdateElementsInput, UpdateElementsOutput, assertNever, bridgeSpawnFailed, bridgeUnreachable, bridgeVersionMismatch, catalogUnavailable, createNodeSkeletonExpander, deepEqual, describeThrown, diskConflict, emptySelection, expansionFailed, exportFailed, exportTimedOut, fail, frameIdOf, iconIdOf, iconNeedsAPlace, idCollision, isFail, isOk, measureLine, noBoundLabel, noBrowser, noScenes, notAPack, notARepo, ok, packInstallFailed, partition, pathOutsideRepo, point, portUnavailable, refusedFieldMessage, sceneFileMissing, staleVersion, storeUnavailable, unknownElement, unknownIcon, unknownScene, unknownSnapshot, unreadableSceneFile, wrapLines };
|
|
1749
|
+
//# sourceMappingURL=chunk-XDK5UUTO.js.map
|
|
1750
|
+
//# sourceMappingURL=chunk-XDK5UUTO.js.map
|