@diagrammo/dgmo 0.46.0 → 0.48.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/advanced.d.ts +3 -855
- package/dist/advanced.js +541 -70107
- package/dist/analyzer-UYKBXAKR.js +15 -0
- package/dist/auto.js +1 -1
- package/dist/auto.mjs +1 -1
- package/dist/block.js +83 -69417
- package/dist/calculator-LDYQCDDY.js +11 -0
- package/dist/charts-d3-QOZHKTCT.js +25 -0
- package/dist/chunk-2DXMZRWJ.js +800 -0
- package/dist/chunk-2LACINWN.js +786 -0
- package/dist/chunk-33LCUH4H.js +893 -0
- package/dist/chunk-3CIOJ5YJ.js +35 -0
- package/dist/chunk-3HDBAXF5.js +86 -0
- package/dist/chunk-3JLKYGBQ.js +290 -0
- package/dist/chunk-3MQQNXPD.js +415 -0
- package/dist/chunk-3R5POCTZ.js +967 -0
- package/dist/chunk-3SMGIJDD.js +112 -0
- package/dist/chunk-44CM72SQ.js +409 -0
- package/dist/chunk-4GRI7MEB.js +1604 -0
- package/dist/chunk-4OHACBGX.js +606 -0
- package/dist/chunk-5DH3KYFH.js +21 -0
- package/dist/chunk-5MLYVTYM.js +76 -0
- package/dist/chunk-5QXL4NYS.js +553 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-6EK55ART.js +117 -0
- package/dist/chunk-6FZYCKXB.js +2065 -0
- package/dist/chunk-6HO5ZTXK.js +277 -0
- package/dist/chunk-6KFWC4CO.js +7 -0
- package/dist/chunk-6MTWIQVO.js +121 -0
- package/dist/chunk-6NYWYNBI.js +329 -0
- package/dist/chunk-6SM5NJQH.js +620 -0
- package/dist/chunk-725LDASD.js +422 -0
- package/dist/chunk-76OWZ3BA.js +130 -0
- package/{src/block/parser.ts → dist/chunk-7JEGTRLD.js} +100 -189
- package/dist/chunk-A44USUV7.js +923 -0
- package/dist/chunk-A4GOY3PE.js +25 -0
- package/dist/chunk-A4VFQH5G.js +251 -0
- package/dist/chunk-AELOBFW5.js +375 -0
- package/dist/chunk-AN2MOO5T.js +522 -0
- package/dist/chunk-BMR4CIEO.js +41 -0
- package/dist/chunk-BS7SV7C3.js +51 -0
- package/dist/chunk-BUPDIHML.js +613 -0
- package/dist/chunk-BUVJFRPY.js +887 -0
- package/dist/chunk-C3Z4DX3V.js +112 -0
- package/dist/chunk-CI2G3OEB.js +1818 -0
- package/dist/chunk-CKNVO24D.js +54 -0
- package/dist/chunk-CUVHQHZ7.js +391 -0
- package/dist/chunk-CXK4DZH3.js +114 -0
- package/dist/{editor.cjs → chunk-DKEPS5LH.js} +14 -225
- package/dist/chunk-DU7W62N5.js +487 -0
- package/dist/chunk-DZAQBW35.js +751 -0
- package/dist/chunk-EB6FPQUP.js +316 -0
- package/dist/chunk-EMS2SK26.js +376 -0
- package/dist/chunk-ERLBPDGU.js +510 -0
- package/dist/chunk-EVCVDTXE.js +732 -0
- package/dist/chunk-FCIIHT24.js +384 -0
- package/dist/chunk-FFUN5D66.js +97 -0
- package/dist/chunk-FITOLXSX.js +714 -0
- package/dist/chunk-FMDSF3OV.js +68 -0
- package/dist/chunk-FNB3PNGF.js +410 -0
- package/dist/chunk-G2H74XJZ.js +2104 -0
- package/dist/chunk-GMR5MFHJ.js +339 -0
- package/dist/chunk-H6PI3KJT.js +305 -0
- package/dist/chunk-I46X5VUA.js +59 -0
- package/dist/chunk-I5IGB56C.js +255 -0
- package/dist/chunk-IH6ZMVQ5.js +3950 -0
- package/dist/chunk-IJZFN3HM.js +463 -0
- package/dist/chunk-IPWPWM6R.js +3079 -0
- package/dist/chunk-IYULMRBE.js +23 -0
- package/dist/chunk-IZMRON6C.js +167 -0
- package/dist/chunk-J5FIXQRT.js +813 -0
- package/dist/chunk-JED6ZDEE.js +73 -0
- package/dist/chunk-JEUJOX5X.js +136 -0
- package/dist/chunk-JM4LEPY3.js +436 -0
- package/dist/chunk-L3UHP6TD.js +101 -0
- package/dist/chunk-L66GEFB6.js +524 -0
- package/dist/chunk-LIOHW36Z.js +469 -0
- package/dist/chunk-LP7EC4MI.js +16 -0
- package/dist/chunk-MITI6NOL.js +548 -0
- package/dist/chunk-MO5YHHMQ.js +168 -0
- package/dist/chunk-MZSBFAPJ.js +885 -0
- package/dist/chunk-NNAAJVBU.js +9 -0
- package/dist/chunk-NOTA6TEI.js +47 -0
- package/dist/chunk-NURGB5Z4.js +335 -0
- package/dist/chunk-NX4EQS3U.js +1062 -0
- package/dist/chunk-NXMESY4J.js +1 -0
- package/dist/chunk-OJR3MQYV.js +1458 -0
- package/dist/chunk-OURHMODR.js +454 -0
- package/dist/chunk-P235SVAH.js +1057 -0
- package/dist/chunk-P4RH4OSP.js +1038 -0
- package/dist/chunk-P6T66CCZ.js +226 -0
- package/dist/chunk-PBAHEPLQ.js +223 -0
- package/dist/chunk-PBHE5UG6.js +1530 -0
- package/dist/chunk-PDKUANDZ.js +35 -0
- package/dist/chunk-PWIHZ6NJ.js +296 -0
- package/{src/c4/layout.ts → dist/chunk-QEBUY5NY.js} +384 -1140
- package/dist/chunk-QLCCJEJI.js +253 -0
- package/dist/chunk-QOOUC2J5.js +52 -0
- package/dist/chunk-QYTPPDAO.js +402 -0
- package/dist/chunk-R3XI2VC7.js +801 -0
- package/dist/chunk-RCERWOJR.js +154 -0
- package/dist/chunk-RJE5JTVK.js +362 -0
- package/dist/chunk-RTLBSQ3G.js +1155 -0
- package/dist/chunk-RUNNI6VE.js +448 -0
- package/dist/chunk-RVMRZAPB.js +354 -0
- package/dist/chunk-RYEGFMUO.js +955 -0
- package/dist/chunk-RZCF2VVM.js +528 -0
- package/dist/chunk-SML67VPV.js +1025 -0
- package/dist/chunk-SQ7IY53Q.js +44 -0
- package/dist/chunk-SQAG3UXH.js +161 -0
- package/dist/chunk-SRTU6HMQ.js +1851 -0
- package/dist/chunk-T2OE3YQB.js +550 -0
- package/dist/chunk-T3UBLACL.js +299 -0
- package/dist/chunk-TLVIHFRO.js +296 -0
- package/dist/chunk-TYS6CSS5.js +52 -0
- package/dist/chunk-U6EQI3U6.js +130 -0
- package/dist/chunk-UJ4FJLBF.js +86 -0
- package/dist/chunk-ULOEATBZ.js +347 -0
- package/dist/chunk-UNCCZ3NU.js +127 -0
- package/dist/chunk-USZW2HHU.js +197 -0
- package/dist/chunk-UWN33VNX.js +1610 -0
- package/dist/chunk-UZ7EZW3B.js +40 -0
- package/dist/chunk-VOKGH627.js +37 -0
- package/dist/chunk-WBRZJOEC.js +204 -0
- package/dist/chunk-WCSOJFU3.js +380 -0
- package/dist/chunk-WCT3NYCV.js +160 -0
- package/dist/chunk-WVAJFAIA.js +529 -0
- package/dist/chunk-X5LCYCL5.js +394 -0
- package/dist/chunk-XAKEUMEJ.js +1256 -0
- package/dist/chunk-Y2ZE3MSG.js +590 -0
- package/dist/chunk-Y3J7VR52.js +646 -0
- package/dist/chunk-Y5QGVTVC.js +33 -0
- package/dist/chunk-YAA6IID3.js +548 -0
- package/dist/chunk-YGJTDXVR.js +692 -0
- package/{src/utils/time-ticks.ts → dist/chunk-YRYKTYMQ.js} +45 -112
- package/dist/chunk-YYVTBZZC.js +61 -0
- package/dist/chunk-Z5CGSFJB.js +647 -0
- package/{src/gantt/calculator.ts → dist/chunk-Z72XRXD4.js} +236 -428
- package/dist/chunk-ZGR7ULFJ.js +978 -0
- package/dist/chunk-ZJEL4H2R.js +851 -0
- package/dist/chunk-ZO27FGJS.js +554 -0
- package/dist/collapse-CLPJD2RL.js +11 -0
- package/dist/collapse-SLINJQW6.js +9 -0
- package/dist/collapse-ZWUFFCK2.js +9 -0
- package/dist/compute-G55RG53N.js +8 -0
- package/dist/dgmo-router-DZCIDUO5.js +73 -0
- package/dist/dimensions-J3FHIMJ6.js +22 -0
- package/dist/element.js +1 -1
- package/dist/element.mjs +1 -1
- package/dist/flowchart-parser-ZNSKIBVR.js +21 -0
- package/dist/flowchart-renderer-ZAEOL4DX.js +35 -0
- package/dist/index.d.ts +3 -469
- package/dist/index.js +137 -69685
- package/dist/layout-46N4JJYK.js +17 -0
- package/dist/layout-5RA6QWR6.js +26 -0
- package/dist/layout-5T6RH5M6.js +14 -0
- package/dist/layout-7QXCNOVS.js +13 -0
- package/dist/layout-EE6GE46Y.js +17 -0
- package/dist/layout-G23F7LDH.js +9 -0
- package/dist/layout-HRBZPFCN.js +23 -0
- package/dist/layout-HWDSRX5E.js +20 -0
- package/dist/layout-HYZPWAK5.js +18 -0
- package/dist/layout-N76NR4ZO.js +19 -0
- package/dist/layout-OB3RI63S.js +14 -0
- package/dist/layout-S2QBYSK2.js +15 -0
- package/dist/layout-UM5F4DJB.js +15 -0
- package/dist/layout-search-OYV77HHS.js +1655 -0
- package/dist/load-data-EHDDZ5ZS.js +8 -0
- package/dist/palettes-PRJ2RI6D.js +56 -0
- package/dist/parser-2MFP2H2E.js +11 -0
- package/dist/parser-3STE62GB.js +21 -0
- package/dist/parser-4FL2CMDG.js +18 -0
- package/dist/parser-4OGOBJJ4.js +13 -0
- package/dist/parser-6BTRLKRZ.js +15 -0
- package/dist/parser-AQETEVRW.js +21 -0
- package/dist/parser-CFZD5IBL.js +12 -0
- package/dist/parser-FUSKFGZN.js +16 -0
- package/dist/parser-I6KXEYFK.js +13 -0
- package/dist/parser-IXSZZQHY.js +18 -0
- package/dist/parser-JAL2HD4I.js +13 -0
- package/dist/parser-KNSQSKQO.js +20 -0
- package/dist/parser-N5O4IHUN.js +13 -0
- package/dist/parser-NGU3ETO6.js +16 -0
- package/dist/parser-NRAI6O25.js +19 -0
- package/dist/parser-O5J4VBII.js +11 -0
- package/dist/parser-OV7NOBW6.js +21 -0
- package/dist/parser-PQ3POX45.js +23 -0
- package/dist/parser-TFZFBVWN.js +11 -0
- package/dist/parser-TRTHDFPP.js +18 -0
- package/dist/parser-VQP2UJ6W.js +11 -0
- package/dist/parser-XDVELHRK.js +13 -0
- package/dist/parser-XKRP7QKP.js +11 -0
- package/dist/parser-Y6WTBU76.js +14 -0
- package/dist/parser-ZSDPZYQP.js +12 -0
- package/dist/renderer-2XQQQ6QR.js +28 -0
- package/dist/renderer-5NDVNDAZ.js +26 -0
- package/dist/renderer-6EEZHMH4.js +26 -0
- package/dist/renderer-6W5462RB.js +43 -0
- package/dist/renderer-7MVLWWQD.js +22 -0
- package/dist/renderer-AWWAF6XD.js +33 -0
- package/dist/renderer-BYCNMBF7.js +34 -0
- package/dist/renderer-CLJHQPBJ.js +29 -0
- package/dist/renderer-GHPZMFU2.js +15 -0
- package/dist/renderer-JGBKUCZD.js +16 -0
- package/dist/renderer-KQB7UGDS.js +19 -0
- package/dist/renderer-PGX2TKVS.js +24 -0
- package/dist/renderer-QIWVHWZO.js +15 -0
- package/dist/renderer-RPOA5YPZ.js +35 -0
- package/dist/renderer-SMIBCRVB.js +24 -0
- package/dist/renderer-T7YKC5VP.js +28 -0
- package/dist/renderer-TOCOVLHS.js +37 -0
- package/dist/renderer-UWA5XS74.js +39 -0
- package/dist/renderer-VACVQYML.js +25 -0
- package/dist/renderer-W4M6QLIJ.js +37 -0
- package/dist/renderer-WZRREQ2P.js +23 -0
- package/dist/renderer-YY2OSF6E.js +27 -0
- package/dist/renderer-Z7I3W2PP.js +24 -0
- package/dist/renderer-ZGNTUWC4.js +22 -0
- package/dist/renderer-ZTR3DER3.js +19 -0
- package/dist/renderer-radial-C32GPJQ7.js +21 -0
- package/dist/resolver-NOAA7ID7.js +13 -0
- package/dist/state-collapse-HCGD6IVJ.js +8 -0
- package/dist/state-parser-Z2V23ATR.js +18 -0
- package/dist/state-renderer-RFYHSP4K.js +34 -0
- package/dist/themes-1-CuKpeH.d.ts +908 -0
- package/package.json +19 -70
- package/dist/advanced.cjs +0 -71648
- package/dist/advanced.d.cts +0 -6571
- package/dist/auto.cjs +0 -70648
- package/dist/auto.d.cts +0 -54
- package/dist/block.cjs +0 -70208
- package/dist/block.d.cts +0 -115
- package/dist/editor.d.cts +0 -26
- package/dist/element.cjs +0 -70530
- package/dist/element.d.cts +0 -62
- package/dist/highlight.cjs +0 -852
- package/dist/highlight.d.cts +0 -49
- package/dist/index.cjs +0 -70491
- package/dist/index.d.cts +0 -626
- package/dist/pert.cjs +0 -325
- package/dist/pert.d.cts +0 -559
- package/src/advanced.ts +0 -873
- package/src/arc/parser.ts +0 -15
- package/src/arc/renderer.ts +0 -633
- package/src/auto/index.ts +0 -621
- package/src/auto/shared.ts +0 -370
- package/src/auto/styles.ts +0 -73
- package/src/block/layout.ts +0 -198
- package/src/block/renderer.ts +0 -484
- package/src/block/types.ts +0 -67
- package/src/boxes-and-lines/collapse.ts +0 -96
- package/src/boxes-and-lines/focus.ts +0 -257
- package/src/boxes-and-lines/label-placement.ts +0 -339
- package/src/boxes-and-lines/layout-grouped.ts +0 -912
- package/src/boxes-and-lines/layout-layered.ts +0 -722
- package/src/boxes-and-lines/layout-search.ts +0 -1678
- package/src/boxes-and-lines/layout.ts +0 -398
- package/src/boxes-and-lines/parser.ts +0 -1181
- package/src/boxes-and-lines/renderer.ts +0 -1465
- package/src/boxes-and-lines/types.ts +0 -66
- package/src/c4/parser.ts +0 -1158
- package/src/c4/renderer.ts +0 -2008
- package/src/c4/types.ts +0 -89
- package/src/chart-type-registry.ts +0 -529
- package/src/chart-types.ts +0 -225
- package/src/chart.ts +0 -685
- package/src/charts-d3/bar.ts +0 -338
- package/src/charts-d3/chord.ts +0 -140
- package/src/charts-d3/function.ts +0 -147
- package/src/charts-d3/funnel.ts +0 -104
- package/src/charts-d3/heatmap.ts +0 -145
- package/src/charts-d3/index.ts +0 -337
- package/src/charts-d3/interactions.ts +0 -477
- package/src/charts-d3/line.ts +0 -344
- package/src/charts-d3/mount.ts +0 -151
- package/src/charts-d3/pie.ts +0 -117
- package/src/charts-d3/polar.ts +0 -89
- package/src/charts-d3/radar.ts +0 -0
- package/src/charts-d3/sankey.ts +0 -0
- package/src/charts-d3/scatter.ts +0 -185
- package/src/charts-d3/shared.ts +0 -208
- package/src/class/layout.ts +0 -326
- package/src/class/parser.ts +0 -635
- package/src/class/renderer.ts +0 -793
- package/src/class/types.ts +0 -58
- package/src/cli-banner.ts +0 -106
- package/src/cli.ts +0 -1080
- package/src/colors-diagnostics.ts +0 -35
- package/src/colors.ts +0 -379
- package/src/completion-types.ts +0 -27
- package/src/completion.ts +0 -2668
- package/src/cycle/layout.ts +0 -1026
- package/src/cycle/parser.ts +0 -387
- package/src/cycle/renderer.ts +0 -653
- package/src/cycle/types.ts +0 -101
- package/src/d3.ts +0 -1434
- package/src/data-chart-parser.ts +0 -1007
- package/src/dgmo-router.ts +0 -296
- package/src/diagnostics-registry.ts +0 -108
- package/src/diagnostics.ts +0 -0
- package/src/dimensions.ts +0 -20
- package/src/directives-registry.ts +0 -396
- package/src/editor/dgmo.grammar +0 -76
- package/src/editor/dgmo.grammar.d.ts +0 -2
- package/src/editor/dgmo.grammar.js +0 -18
- package/src/editor/dgmo.grammar.terms.d.ts +0 -5
- package/src/editor/dgmo.grammar.terms.js +0 -35
- package/src/editor/highlight-api.ts +0 -596
- package/src/editor/highlight.ts +0 -36
- package/src/editor/index.ts +0 -27
- package/src/editor/keywords.ts +0 -128
- package/src/editor/tokens.ts +0 -30
- package/src/element/index.ts +0 -432
- package/src/embed/css.ts +0 -312
- package/src/embed/escape.ts +0 -15
- package/src/embed/index.ts +0 -280
- package/src/er/classify.ts +0 -228
- package/src/er/layout.ts +0 -530
- package/src/er/parser.ts +0 -750
- package/src/er/renderer.ts +0 -725
- package/src/er/types.ts +0 -52
- package/src/error-card.ts +0 -269
- package/src/event-line/diagnostics.ts +0 -117
- package/src/event-line/parser.ts +0 -643
- package/src/event-line/renderer.ts +0 -1742
- package/src/event-line/types.ts +0 -74
- package/src/fonts.ts +0 -3
- package/src/gantt/parser.ts +0 -1641
- package/src/gantt/renderer.ts +0 -3787
- package/src/gantt/resolver.ts +0 -172
- package/src/gantt/types.ts +0 -206
- package/src/graph/diagnostics.ts +0 -64
- package/src/graph/edge-spline.ts +0 -29
- package/src/graph/flowchart-parser.ts +0 -759
- package/src/graph/flowchart-renderer.ts +0 -817
- package/src/graph/layout.ts +0 -472
- package/src/graph/notes.ts +0 -21
- package/src/graph/state-collapse.ts +0 -78
- package/src/graph/state-parser.ts +0 -574
- package/src/graph/state-renderer.ts +0 -653
- package/src/graph/types.ts +0 -65
- package/src/index.ts +0 -261
- package/src/infra/compute.ts +0 -1385
- package/src/infra/layout.ts +0 -888
- package/src/infra/parser.ts +0 -1234
- package/src/infra/renderer.ts +0 -2534
- package/src/infra/roles.ts +0 -75
- package/src/infra/types.ts +0 -216
- package/src/infra/validation.ts +0 -201
- package/src/journey-map/layout.ts +0 -490
- package/src/journey-map/parser.ts +0 -557
- package/src/journey-map/renderer.ts +0 -1580
- package/src/journey-map/types.ts +0 -47
- package/src/kanban/mutations.ts +0 -175
- package/src/kanban/parser.ts +0 -509
- package/src/kanban/renderer.ts +0 -1449
- package/src/kanban/types.ts +0 -39
- package/src/label-layout.ts +0 -368
- package/src/map/colorize.ts +0 -54
- package/src/map/completion.ts +0 -316
- package/src/map/context-labels.ts +0 -609
- package/src/map/data/PROVENANCE.json +0 -1
- package/src/map/data/README.md +0 -40
- package/src/map/data/airport-collisions.json +0 -1
- package/src/map/data/airports.json +0 -1
- package/src/map/data/gazetteer.json +0 -1
- package/src/map/data/lakes.json +0 -1
- package/src/map/data/mountain-ranges.json +0 -1
- package/src/map/data/na-lakes.json +0 -1
- package/src/map/data/na-land.json +0 -1
- package/src/map/data/region-names.json +0 -1
- package/src/map/data/rivers.json +0 -1
- package/src/map/data/types.ts +0 -121
- package/src/map/data/us-states.json +0 -1
- package/src/map/data/water-bodies.json +0 -1
- package/src/map/data/world-coarse.json +0 -1
- package/src/map/data/world-detail.json +0 -1
- package/src/map/diagnostics.ts +0 -134
- package/src/map/dimensions.ts +0 -150
- package/src/map/geo-query.ts +0 -295
- package/src/map/geo.ts +0 -438
- package/src/map/invert.ts +0 -111
- package/src/map/layout.ts +0 -5069
- package/src/map/legend-band.ts +0 -127
- package/src/map/load-data.ts +0 -186
- package/src/map/parser.ts +0 -783
- package/src/map/renderer.ts +0 -1445
- package/src/map/resolved-types.ts +0 -160
- package/src/map/resolver.ts +0 -1146
- package/src/map/types.ts +0 -194
- package/src/mindmap/collapse.ts +0 -67
- package/src/mindmap/layout.ts +0 -649
- package/src/mindmap/parser.ts +0 -430
- package/src/mindmap/renderer.ts +0 -637
- package/src/mindmap/text-wrap.ts +0 -218
- package/src/mindmap/types.ts +0 -56
- package/src/org/collapse.ts +0 -151
- package/src/org/layout.ts +0 -1262
- package/src/org/parser.ts +0 -519
- package/src/org/renderer.ts +0 -866
- package/src/org/resolver.ts +0 -636
- package/src/palettes/atlas.ts +0 -77
- package/src/palettes/blueprint.ts +0 -73
- package/src/palettes/catppuccin.ts +0 -84
- package/src/palettes/color-utils.ts +0 -443
- package/src/palettes/index.ts +0 -67
- package/src/palettes/nord.ts +0 -67
- package/src/palettes/registry.ts +0 -114
- package/src/palettes/slate.ts +0 -73
- package/src/palettes/tidewater.ts +0 -73
- package/src/palettes/tokyo-night.ts +0 -86
- package/src/palettes/types.ts +0 -88
- package/src/pert/analyzer.ts +0 -1183
- package/src/pert/diagnostics.ts +0 -110
- package/src/pert/index.ts +0 -43
- package/src/pert/internal.ts +0 -252
- package/src/pert/layout.ts +0 -971
- package/src/pert/monte-carlo.ts +0 -446
- package/src/pert/parser.ts +0 -1606
- package/src/pert/renderer.ts +0 -4009
- package/src/pert/share-normalize.ts +0 -62
- package/src/pert/types.ts +0 -604
- package/src/pyramid/parser.ts +0 -185
- package/src/pyramid/renderer.ts +0 -768
- package/src/pyramid/types.ts +0 -28
- package/src/quadrant/parser.ts +0 -18
- package/src/quadrant/renderer.ts +0 -638
- package/src/raci/diagnostics.ts +0 -213
- package/src/raci/index.ts +0 -23
- package/src/raci/mutations.ts +0 -321
- package/src/raci/parser.ts +0 -699
- package/src/raci/renderer.ts +0 -1627
- package/src/raci/types.ts +0 -82
- package/src/raci/variants.ts +0 -320
- package/src/render.ts +0 -268
- package/src/ring/parser.ts +0 -212
- package/src/ring/renderer.ts +0 -490
- package/src/ring/types.ts +0 -27
- package/src/sequence/collapse.ts +0 -174
- package/src/sequence/parser.ts +0 -1596
- package/src/sequence/participant-inference.ts +0 -152
- package/src/sequence/renderer.ts +0 -3168
- package/src/sequence/tag-resolution.ts +0 -164
- package/src/sharing.ts +0 -211
- package/src/sitemap/collapse.ts +0 -100
- package/src/sitemap/layout.ts +0 -925
- package/src/sitemap/parser.ts +0 -755
- package/src/sitemap/renderer.ts +0 -828
- package/src/sitemap/types.ts +0 -42
- package/src/slope/parser.ts +0 -18
- package/src/slope/renderer.ts +0 -378
- package/src/swimlane/diagnostics.ts +0 -94
- package/src/swimlane/layout.ts +0 -597
- package/src/swimlane/parser.ts +0 -613
- package/src/swimlane/renderer.ts +0 -681
- package/src/swimlane/types.ts +0 -151
- package/src/tech-radar/interactive.ts +0 -1129
- package/src/tech-radar/layout.ts +0 -197
- package/src/tech-radar/parser.ts +0 -436
- package/src/tech-radar/renderer.ts +0 -1239
- package/src/tech-radar/shared.ts +0 -151
- package/src/tech-radar/types.ts +0 -86
- package/src/themes.ts +0 -22
- package/src/timeline/parser.ts +0 -472
- package/src/timeline/renderer.ts +0 -3024
- package/src/timeline/types.ts +0 -33
- package/src/timeline/viz-parser.ts +0 -21
- package/src/treemap/diagnostics.ts +0 -62
- package/src/treemap/layout-radial.ts +0 -233
- package/src/treemap/layout.ts +0 -189
- package/src/treemap/parser.ts +0 -463
- package/src/treemap/renderer-radial.ts +0 -438
- package/src/treemap/renderer.ts +0 -572
- package/src/treemap/treemap-shared.ts +0 -309
- package/src/treemap/types.ts +0 -60
- package/src/utils/arrow-markers.ts +0 -51
- package/src/utils/arrows-diagnostics.ts +0 -62
- package/src/utils/arrows.ts +0 -227
- package/src/utils/brand.ts +0 -61
- package/src/utils/card.ts +0 -183
- package/src/utils/collapse-engine/tree-edges.ts +0 -115
- package/src/utils/collapse-engine/tree.ts +0 -117
- package/src/utils/d3-helpers.ts +0 -219
- package/src/utils/d3-types.ts +0 -9
- package/src/utils/description-helpers.ts +0 -38
- package/src/utils/duration.ts +0 -312
- package/src/utils/export-container.ts +0 -41
- package/src/utils/expr-eval.ts +0 -27
- package/src/utils/fit-canvas.ts +0 -64
- package/src/utils/hover-styles.ts +0 -673
- package/src/utils/inline-markdown.ts +0 -96
- package/src/utils/legend-constants.ts +0 -48
- package/src/utils/legend-d3.ts +0 -618
- package/src/utils/legend-integration.ts +0 -107
- package/src/utils/legend-layout.ts +0 -776
- package/src/utils/legend-svg.ts +0 -214
- package/src/utils/legend-types.ts +0 -272
- package/src/utils/name-normalize.ts +0 -163
- package/src/utils/note-box/constants.ts +0 -25
- package/src/utils/note-box/index.ts +0 -11
- package/src/utils/note-box/metrics.ts +0 -90
- package/src/utils/note-box/svg.ts +0 -331
- package/src/utils/notes/bounds.ts +0 -30
- package/src/utils/notes/build.ts +0 -131
- package/src/utils/notes/index.ts +0 -18
- package/src/utils/notes/model.ts +0 -19
- package/src/utils/notes/parse.ts +0 -131
- package/src/utils/notes/place.ts +0 -177
- package/src/utils/notes/resolve.ts +0 -88
- package/src/utils/number-format.ts +0 -36
- package/src/utils/parsing.ts +0 -953
- package/src/utils/reserved-key-registry.ts +0 -239
- package/src/utils/safe-href.ts +0 -38
- package/src/utils/scaling.ts +0 -97
- package/src/utils/svg-embed.ts +0 -251
- package/src/utils/tag-groups.ts +0 -607
- package/src/utils/text-measure.ts +0 -122
- package/src/utils/title-constants.ts +0 -24
- package/src/utils/visual-conventions.ts +0 -61
- package/src/utils/wrapped-desc.ts +0 -87
- package/src/venn/parser.ts +0 -18
- package/src/venn/renderer.ts +0 -1047
- package/src/version-control/diagnostics.ts +0 -67
- package/src/version-control/parser.ts +0 -544
- package/src/version-control/renderer.ts +0 -724
- package/src/version-control/types.ts +0 -100
- package/src/visualizations/parse.ts +0 -1560
- package/src/visualizations/types.ts +0 -262
- package/src/wireframe/layout.ts +0 -479
- package/src/wireframe/parser.ts +0 -1114
- package/src/wireframe/renderer.ts +0 -1318
- package/src/wireframe/types.ts +0 -110
- package/src/wordcloud/parser.ts +0 -18
- package/src/wordcloud/renderer.ts +0 -357
|
@@ -1,102 +1,74 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Block diagram — Parser
|
|
3
|
-
// ============================================================
|
|
4
|
-
//
|
|
5
|
-
// Grid-structured (not a pure indent hierarchy): one source line = one row of
|
|
6
|
-
// `[bracket]` cells (+ `_` gaps). A block becomes a CONTAINER by indenting a
|
|
7
|
-
// sub-grid under it. Metadata is parsed from the tail AFTER the `]` (the
|
|
8
|
-
// boxes-and-lines group idiom — robust to colons inside a label) and a group's
|
|
9
|
-
// tag cascades to children. Columns are inferred from the widest row unless
|
|
10
|
-
// `columns N` is given; short rows that evenly divide the column count spread to
|
|
11
|
-
// fill, a lone block fills the width, and an over-long span clamps to the count.
|
|
12
|
-
|
|
13
|
-
import type { PaletteColors } from '../palettes';
|
|
14
1
|
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
makeFail,
|
|
18
|
-
suggest,
|
|
19
|
-
} from '../diagnostics';
|
|
20
|
-
import type { Writable } from '../utils/brand';
|
|
21
|
-
import type { TagGroup } from '../utils/tag-groups';
|
|
2
|
+
isBlockNode
|
|
3
|
+
} from "./chunk-NNAAJVBU.js";
|
|
22
4
|
import {
|
|
5
|
+
AUTO_TAG_COLOR_SENTINEL,
|
|
6
|
+
finalizeAutoTagColors,
|
|
23
7
|
matchTagBlockHeading,
|
|
24
|
-
validateTagValues,
|
|
25
|
-
validateTagGroupNames,
|
|
26
8
|
stripDefaultModifier,
|
|
27
|
-
finalizeAutoTagColors,
|
|
28
|
-
AUTO_TAG_COLOR_SENTINEL,
|
|
29
9
|
tagAttrKey,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
)
|
|
47
|
-
const options
|
|
48
|
-
const result
|
|
49
|
-
type:
|
|
10
|
+
validateTagGroupNames,
|
|
11
|
+
validateTagValues
|
|
12
|
+
} from "./chunk-QLCCJEJI.js";
|
|
13
|
+
import {
|
|
14
|
+
extractColor,
|
|
15
|
+
measureIndent,
|
|
16
|
+
parseFirstLine
|
|
17
|
+
} from "./chunk-Y3J7VR52.js";
|
|
18
|
+
import {
|
|
19
|
+
formatDgmoError,
|
|
20
|
+
makeDgmoError,
|
|
21
|
+
makeFail,
|
|
22
|
+
suggest
|
|
23
|
+
} from "./chunk-CXK4DZH3.js";
|
|
24
|
+
|
|
25
|
+
// src/block/parser.ts
|
|
26
|
+
function parseBlock(content, palette) {
|
|
27
|
+
const options = { noLegend: false, solidFill: false };
|
|
28
|
+
const result = {
|
|
29
|
+
type: "block",
|
|
50
30
|
title: null,
|
|
51
31
|
titleLineNumber: null,
|
|
52
32
|
top: { cols: null, rows: [] },
|
|
53
33
|
tagGroups: [],
|
|
54
34
|
options,
|
|
55
35
|
diagnostics: [],
|
|
56
|
-
error: null
|
|
36
|
+
error: null
|
|
57
37
|
};
|
|
58
|
-
|
|
59
38
|
const fail = makeFail(result);
|
|
60
|
-
const pushError = (line
|
|
61
|
-
const diag = makeDgmoError(line, message,
|
|
39
|
+
const pushError = (line, message, code) => {
|
|
40
|
+
const diag = makeDgmoError(line, message, "error", code);
|
|
62
41
|
result.diagnostics.push(diag);
|
|
63
42
|
if (!result.error) result.error = formatDgmoError(diag);
|
|
64
43
|
};
|
|
65
|
-
const pushWarning = (line
|
|
66
|
-
result.diagnostics.push(makeDgmoError(line, message,
|
|
44
|
+
const pushWarning = (line, message, code) => {
|
|
45
|
+
result.diagnostics.push(makeDgmoError(line, message, "warning", code));
|
|
67
46
|
};
|
|
68
|
-
|
|
69
47
|
if (!content?.trim()) {
|
|
70
|
-
return fail(0,
|
|
48
|
+
return fail(0, "No content provided");
|
|
71
49
|
}
|
|
72
|
-
|
|
73
|
-
const lines = content.split('\n');
|
|
50
|
+
const lines = content.split("\n");
|
|
74
51
|
let contentStarted = false;
|
|
75
|
-
let topCols
|
|
76
|
-
let currentTagGroup
|
|
77
|
-
const aliasMap = new Map
|
|
78
|
-
const contentLines
|
|
79
|
-
|
|
52
|
+
let topCols = null;
|
|
53
|
+
let currentTagGroup = null;
|
|
54
|
+
const aliasMap = /* @__PURE__ */ new Map();
|
|
55
|
+
const contentLines = [];
|
|
80
56
|
for (let i = 0; i < lines.length; i++) {
|
|
81
|
-
const line = lines[i]
|
|
57
|
+
const line = lines[i];
|
|
82
58
|
const lineNumber = i + 1;
|
|
83
59
|
const trimmed = line.trim();
|
|
84
|
-
|
|
85
60
|
if (!trimmed) {
|
|
86
61
|
currentTagGroup = null;
|
|
87
62
|
continue;
|
|
88
63
|
}
|
|
89
|
-
if (trimmed.startsWith(
|
|
90
|
-
|
|
91
|
-
// --- Header phase ---
|
|
64
|
+
if (trimmed.startsWith("//")) continue;
|
|
92
65
|
if (!contentStarted) {
|
|
93
|
-
// First line declares `block [Title]`.
|
|
94
66
|
if (result.titleLineNumber === null && i === 0) {
|
|
95
67
|
const firstLine = parseFirstLine(trimmed);
|
|
96
68
|
if (firstLine) {
|
|
97
|
-
if (firstLine.chartType !==
|
|
69
|
+
if (firstLine.chartType !== "block") {
|
|
98
70
|
let msg = `Expected chart type "block", got "${firstLine.chartType}"`;
|
|
99
|
-
const hint = suggest(firstLine.chartType, [
|
|
71
|
+
const hint = suggest(firstLine.chartType, ["block"]);
|
|
100
72
|
if (hint) msg += `. ${hint}`;
|
|
101
73
|
return fail(lineNumber, msg);
|
|
102
74
|
}
|
|
@@ -105,17 +77,15 @@ export function parseBlock(
|
|
|
105
77
|
continue;
|
|
106
78
|
}
|
|
107
79
|
}
|
|
108
|
-
|
|
109
|
-
// Tag group heading: `tag Team as t`.
|
|
110
80
|
const tagBlockMatch = matchTagBlockHeading(trimmed);
|
|
111
81
|
if (tagBlockMatch) {
|
|
112
82
|
currentTagGroup = {
|
|
113
83
|
name: tagBlockMatch.name,
|
|
114
|
-
...
|
|
115
|
-
alias: tagBlockMatch.alias
|
|
116
|
-
}
|
|
84
|
+
...tagBlockMatch.alias !== void 0 && {
|
|
85
|
+
alias: tagBlockMatch.alias
|
|
86
|
+
},
|
|
117
87
|
entries: [],
|
|
118
|
-
lineNumber
|
|
88
|
+
lineNumber
|
|
119
89
|
};
|
|
120
90
|
if (tagBlockMatch.alias) {
|
|
121
91
|
aliasMap.set(
|
|
@@ -130,8 +100,6 @@ export function parseBlock(
|
|
|
130
100
|
result.tagGroups.push(currentTagGroup);
|
|
131
101
|
continue;
|
|
132
102
|
}
|
|
133
|
-
|
|
134
|
-
// Tag group entries (indented `Value color`).
|
|
135
103
|
if (currentTagGroup) {
|
|
136
104
|
const indent = measureIndent(line);
|
|
137
105
|
if (indent > 0) {
|
|
@@ -148,19 +116,16 @@ export function parseBlock(
|
|
|
148
116
|
currentTagGroup.entries.push({
|
|
149
117
|
value: label,
|
|
150
118
|
color: color ?? AUTO_TAG_COLOR_SENTINEL,
|
|
151
|
-
lineNumber
|
|
119
|
+
lineNumber
|
|
152
120
|
});
|
|
153
121
|
continue;
|
|
154
122
|
}
|
|
155
123
|
currentTagGroup = null;
|
|
156
124
|
}
|
|
157
|
-
|
|
158
|
-
// Header directives (indent 0). A top-level `columns N` applies to the
|
|
159
|
-
// outer grid but may sit before the tag block, so it's a header line.
|
|
160
125
|
if (measureIndent(line) === 0) {
|
|
161
126
|
const headerCols = trimmed.match(/^columns\s+(\d+)\s*$/i);
|
|
162
127
|
if (headerCols) {
|
|
163
|
-
topCols = parseInt(headerCols[1]
|
|
128
|
+
topCols = parseInt(headerCols[1], 10);
|
|
164
129
|
continue;
|
|
165
130
|
}
|
|
166
131
|
if (/^no-legend\s*$/i.test(trimmed)) {
|
|
@@ -173,53 +138,41 @@ export function parseBlock(
|
|
|
173
138
|
}
|
|
174
139
|
}
|
|
175
140
|
}
|
|
176
|
-
|
|
177
|
-
// Tag groups after content has begun are an error.
|
|
178
141
|
if (contentStarted && matchTagBlockHeading(trimmed)) {
|
|
179
142
|
pushError(
|
|
180
143
|
lineNumber,
|
|
181
|
-
|
|
182
|
-
|
|
144
|
+
"Tag groups must appear before block content",
|
|
145
|
+
"E_TAG_DECLARED_AFTER_CONTENT"
|
|
183
146
|
);
|
|
184
147
|
continue;
|
|
185
148
|
}
|
|
186
|
-
|
|
187
|
-
// --- Content phase ---
|
|
188
149
|
contentStarted = true;
|
|
189
150
|
currentTagGroup = null;
|
|
190
151
|
contentLines.push({ indent: measureIndent(line), trimmed, lineNumber });
|
|
191
152
|
}
|
|
192
|
-
|
|
193
|
-
// Finalize auto tag colors before any color resolution.
|
|
194
|
-
finalizeAutoTagColors(result.tagGroups as Writable<TagGroup>[], palette);
|
|
195
|
-
|
|
196
|
-
// --- Build the grid tree (recursive over indentation) ---
|
|
153
|
+
finalizeAutoTagColors(result.tagGroups, palette);
|
|
197
154
|
let idx = 0;
|
|
198
155
|
let nodeCounter = 0;
|
|
199
|
-
const baseIndent = contentLines.length > 0 ? contentLines[0]
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const grid: BlockGrid = { cols: null, rows: [] };
|
|
156
|
+
const baseIndent = contentLines.length > 0 ? contentLines[0].indent : 0;
|
|
157
|
+
const parseGrid = (base) => {
|
|
158
|
+
const grid = { cols: null, rows: [] };
|
|
203
159
|
while (idx < contentLines.length) {
|
|
204
|
-
const ln = contentLines[idx]
|
|
160
|
+
const ln = contentLines[idx];
|
|
205
161
|
if (ln.indent < base) break;
|
|
206
162
|
if (ln.indent > base) {
|
|
207
|
-
// Orphan deeper line with no container header — skip with a hint.
|
|
208
163
|
pushWarning(
|
|
209
164
|
ln.lineNumber,
|
|
210
|
-
`Over-indented line "${ln.trimmed}" has no parent block
|
|
165
|
+
`Over-indented line "${ln.trimmed}" has no parent block \u2014 ignored`
|
|
211
166
|
);
|
|
212
167
|
idx++;
|
|
213
168
|
continue;
|
|
214
169
|
}
|
|
215
|
-
|
|
216
170
|
const colsMatch = ln.trimmed.match(/^columns\s+(\d+)\s*$/i);
|
|
217
171
|
if (colsMatch) {
|
|
218
|
-
grid.cols = parseInt(colsMatch[1]
|
|
172
|
+
grid.cols = parseInt(colsMatch[1], 10);
|
|
219
173
|
idx++;
|
|
220
174
|
continue;
|
|
221
175
|
}
|
|
222
|
-
|
|
223
176
|
if (/^\[|^_(?=\s|$)|^space(?=\s|$)/.test(ln.trimmed)) {
|
|
224
177
|
const cells = parseRow(
|
|
225
178
|
ln.trimmed,
|
|
@@ -229,57 +182,43 @@ export function parseBlock(
|
|
|
229
182
|
pushWarning
|
|
230
183
|
);
|
|
231
184
|
idx++;
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
only &&
|
|
236
|
-
isBlockNode(only) &&
|
|
237
|
-
idx < contentLines.length &&
|
|
238
|
-
contentLines[idx]!.indent > base
|
|
239
|
-
) {
|
|
240
|
-
only.grid = parseGrid(contentLines[idx]!.indent);
|
|
185
|
+
const only = cells.length === 1 ? cells[0] : null;
|
|
186
|
+
if (only && isBlockNode(only) && idx < contentLines.length && contentLines[idx].indent > base) {
|
|
187
|
+
only.grid = parseGrid(contentLines[idx].indent);
|
|
241
188
|
}
|
|
242
189
|
if (cells.length > 0) grid.rows.push(cells);
|
|
243
190
|
continue;
|
|
244
191
|
}
|
|
245
|
-
|
|
246
192
|
pushWarning(
|
|
247
193
|
ln.lineNumber,
|
|
248
|
-
`Unrecognized line "${ln.trimmed}"
|
|
194
|
+
`Unrecognized line "${ln.trimmed}" \u2014 block rows are bracketed (e.g. [A] [B]) or a "columns N" directive`
|
|
249
195
|
);
|
|
250
196
|
idx++;
|
|
251
197
|
}
|
|
252
198
|
return grid;
|
|
253
199
|
};
|
|
254
|
-
|
|
255
200
|
result.top = parseGrid(baseIndent);
|
|
256
201
|
if (topCols !== null && result.top.cols === null) result.top.cols = topCols;
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
Math.max(
|
|
263
|
-
1,
|
|
264
|
-
...grid.rows.map((r) => r.reduce((s, c) => s + (c.span || 1), 0))
|
|
265
|
-
);
|
|
202
|
+
const inferGrid = (grid) => {
|
|
203
|
+
const cols = grid.cols ?? Math.max(
|
|
204
|
+
1,
|
|
205
|
+
...grid.rows.map((r) => r.reduce((s, c) => s + (c.span || 1), 0))
|
|
206
|
+
);
|
|
266
207
|
grid.cols = cols;
|
|
267
208
|
for (const row of grid.rows) {
|
|
268
|
-
for (const c of row) if (c.span > cols) c.span = cols;
|
|
209
|
+
for (const c of row) if (c.span > cols) c.span = cols;
|
|
269
210
|
const cnt = row.length;
|
|
270
211
|
const allOne = row.every((c) => (c.span || 1) === 1);
|
|
271
212
|
if (allOne && cnt > 0 && cnt < cols && cols % cnt === 0) {
|
|
272
213
|
const sp = cols / cnt;
|
|
273
|
-
for (const c of row) c.span = sp;
|
|
214
|
+
for (const c of row) c.span = sp;
|
|
274
215
|
}
|
|
275
216
|
for (const c of row) if (isBlockNode(c) && c.grid) inferGrid(c.grid);
|
|
276
217
|
}
|
|
277
218
|
};
|
|
278
219
|
inferGrid(result.top);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
const allNodes: BlockNode[] = [];
|
|
282
|
-
const collect = (grid: BlockGrid): void => {
|
|
220
|
+
const allNodes = [];
|
|
221
|
+
const collect = (grid) => {
|
|
283
222
|
for (const row of grid.rows)
|
|
284
223
|
for (const c of row)
|
|
285
224
|
if (isBlockNode(c)) {
|
|
@@ -288,19 +227,15 @@ export function parseBlock(
|
|
|
288
227
|
}
|
|
289
228
|
};
|
|
290
229
|
collect(result.top);
|
|
291
|
-
|
|
292
230
|
if (result.tagGroups.length > 0) {
|
|
293
231
|
const tagKeys = result.tagGroups.map((g) => tagAttrKey(g.name));
|
|
294
|
-
const cascade = (
|
|
295
|
-
grid: BlockGrid,
|
|
296
|
-
inherited: Record<string, string>
|
|
297
|
-
): void => {
|
|
232
|
+
const cascade = (grid, inherited) => {
|
|
298
233
|
for (const row of grid.rows)
|
|
299
234
|
for (const c of row) {
|
|
300
235
|
if (!isBlockNode(c)) continue;
|
|
301
236
|
for (const k of tagKeys) {
|
|
302
|
-
if (!(k in c.metadata) && inherited[k] !==
|
|
303
|
-
c.metadata[k] = inherited[k]
|
|
237
|
+
if (!(k in c.metadata) && inherited[k] !== void 0) {
|
|
238
|
+
c.metadata[k] = inherited[k];
|
|
304
239
|
}
|
|
305
240
|
}
|
|
306
241
|
if (c.grid) cascade(c.grid, c.metadata);
|
|
@@ -310,118 +245,94 @@ export function parseBlock(
|
|
|
310
245
|
validateTagValues(allNodes, result.tagGroups, pushWarning, suggest);
|
|
311
246
|
validateTagGroupNames(result.tagGroups, pushWarning);
|
|
312
247
|
}
|
|
313
|
-
|
|
314
248
|
if (allNodes.length === 0 && !result.error) {
|
|
315
|
-
const diag = makeDgmoError(1,
|
|
249
|
+
const diag = makeDgmoError(1, "No blocks found in block diagram");
|
|
316
250
|
result.diagnostics.push(diag);
|
|
317
251
|
result.error = formatDgmoError(diag);
|
|
318
252
|
}
|
|
319
|
-
|
|
320
253
|
return result;
|
|
321
254
|
}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
// Row + cell parsing
|
|
325
|
-
// ============================================================
|
|
326
|
-
|
|
327
|
-
/** Scan a row left-to-right into cells: each `[label]` carries trailing
|
|
328
|
-
* metadata up to the next `[` or gap token; `_`/`space` are empty cells. */
|
|
329
|
-
function parseRow(
|
|
330
|
-
line: string,
|
|
331
|
-
lineNumber: number,
|
|
332
|
-
aliasMap: Map<string, string>,
|
|
333
|
-
nextId: () => number,
|
|
334
|
-
pushWarning: (line: number, message: string) => void
|
|
335
|
-
): BlockCell[] {
|
|
336
|
-
const cells: BlockCell[] = [];
|
|
255
|
+
function parseRow(line, lineNumber, aliasMap, nextId, pushWarning) {
|
|
256
|
+
const cells = [];
|
|
337
257
|
let i = 0;
|
|
338
258
|
const n = line.length;
|
|
339
259
|
while (i < n) {
|
|
340
|
-
while (i < n && line[i] ===
|
|
260
|
+
while (i < n && line[i] === " ") i++;
|
|
341
261
|
if (i >= n) break;
|
|
342
|
-
|
|
343
262
|
const gap = line.slice(i).match(/^(_|space)(?=\s|$)/);
|
|
344
263
|
if (gap) {
|
|
345
264
|
cells.push({ empty: true, span: 1 });
|
|
346
|
-
i += gap[1]
|
|
265
|
+
i += gap[1].length;
|
|
347
266
|
continue;
|
|
348
267
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
const end = line.indexOf(']', i);
|
|
268
|
+
if (line[i] === "[") {
|
|
269
|
+
const end = line.indexOf("]", i);
|
|
352
270
|
if (end < 0) {
|
|
353
271
|
pushWarning(lineNumber, `Unclosed "[" in block row "${line.trim()}"`);
|
|
354
272
|
break;
|
|
355
273
|
}
|
|
356
274
|
const label = line.slice(i + 1, end).trim();
|
|
357
275
|
i = end + 1;
|
|
358
|
-
|
|
359
|
-
// Collect trailing metadata tokens until the next bracket or gap token.
|
|
360
|
-
let tail = '';
|
|
276
|
+
let tail = "";
|
|
361
277
|
while (i < n) {
|
|
362
278
|
let k = i;
|
|
363
|
-
while (k < n && line[k] ===
|
|
364
|
-
if (k >= n || line[k] ===
|
|
279
|
+
while (k < n && line[k] === " ") k++;
|
|
280
|
+
if (k >= n || line[k] === "[") {
|
|
365
281
|
i = k;
|
|
366
282
|
break;
|
|
367
283
|
}
|
|
368
284
|
let e = k;
|
|
369
|
-
while (e < n && line[e] !==
|
|
285
|
+
while (e < n && line[e] !== " " && line[e] !== "[") e++;
|
|
370
286
|
const tok = line.slice(k, e);
|
|
371
|
-
if (tok ===
|
|
287
|
+
if (tok === "_" || tok === "space") {
|
|
372
288
|
i = k;
|
|
373
289
|
break;
|
|
374
290
|
}
|
|
375
|
-
tail += (tail ?
|
|
291
|
+
tail += (tail ? " " : "") + tok;
|
|
376
292
|
i = e;
|
|
377
293
|
}
|
|
378
|
-
|
|
379
294
|
const { meta, span, collapsed } = parseBlockTail(tail, aliasMap);
|
|
380
|
-
const node
|
|
295
|
+
const node = {
|
|
381
296
|
id: `block-node-${nextId()}`,
|
|
382
297
|
label,
|
|
383
298
|
span: span ?? 1,
|
|
384
299
|
collapsed,
|
|
385
300
|
metadata: meta,
|
|
386
|
-
lineNumber
|
|
301
|
+
lineNumber
|
|
387
302
|
};
|
|
388
303
|
cells.push(node);
|
|
389
304
|
continue;
|
|
390
305
|
}
|
|
391
|
-
|
|
392
|
-
i++; // skip stray character
|
|
306
|
+
i++;
|
|
393
307
|
}
|
|
394
308
|
return cells;
|
|
395
309
|
}
|
|
396
|
-
|
|
397
|
-
/** Parse the metadata tail after a `]`: comma-separated `key: value` pairs
|
|
398
|
-
* (boxes-and-lines idiom), plus the `span:` key and a bare `collapsed` flag. */
|
|
399
|
-
function parseBlockTail(
|
|
400
|
-
tail: string,
|
|
401
|
-
aliasMap: Map<string, string>
|
|
402
|
-
): { meta: Record<string, string>; span?: number; collapsed: boolean } {
|
|
310
|
+
function parseBlockTail(tail, aliasMap) {
|
|
403
311
|
let collapsed = false;
|
|
404
|
-
const stripped = tail.replace(/(^|\s)collapsed(?=\s|$)/i, (_m, a
|
|
312
|
+
const stripped = tail.replace(/(^|\s)collapsed(?=\s|$)/i, (_m, a) => {
|
|
405
313
|
collapsed = true;
|
|
406
314
|
return a;
|
|
407
315
|
});
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
for (const seg of stripped.split(',')) {
|
|
316
|
+
const meta = {};
|
|
317
|
+
let span;
|
|
318
|
+
for (const seg of stripped.split(",")) {
|
|
412
319
|
const t = seg.trim();
|
|
413
320
|
if (!t) continue;
|
|
414
|
-
const colonIdx = t.indexOf(
|
|
415
|
-
if (colonIdx < 0) continue;
|
|
321
|
+
const colonIdx = t.indexOf(":");
|
|
322
|
+
if (colonIdx < 0) continue;
|
|
416
323
|
const rawKey = t.slice(0, colonIdx).trim().toLowerCase();
|
|
417
324
|
const value = t.slice(colonIdx + 1).trim();
|
|
418
|
-
if (rawKey ===
|
|
325
|
+
if (rawKey === "span") {
|
|
419
326
|
const num = parseInt(value, 10);
|
|
420
327
|
if (Number.isFinite(num) && num >= 1) span = num;
|
|
421
328
|
} else if (value) {
|
|
422
329
|
meta[aliasMap.get(rawKey) ?? rawKey] = value;
|
|
423
330
|
}
|
|
424
331
|
}
|
|
425
|
-
|
|
426
|
-
return { meta, ...(span !== undefined && { span }), collapsed };
|
|
332
|
+
return { meta, ...span !== void 0 && { span }, collapsed };
|
|
427
333
|
}
|
|
334
|
+
|
|
335
|
+
export {
|
|
336
|
+
parseBlock
|
|
337
|
+
};
|
|
338
|
+
//# sourceMappingURL=chunk-7JEGTRLD.js.map
|