@diagrammo/dgmo 0.74.0 → 0.76.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.
Files changed (100) hide show
  1. package/dist/advanced.d.ts +51 -50
  2. package/dist/advanced.js +211 -49
  3. package/dist/{analyzer-FHRJUIMW.js → analyzer-QTDQEMS5.js} +4 -6
  4. package/dist/block.css +20 -3
  5. package/dist/block.d.ts +10 -2
  6. package/dist/block.js +34 -17
  7. package/dist/chart-meta.js +6 -6
  8. package/dist/{charts-d3-LWHTOVX7.js → charts-d3-SQEVMIAM.js} +5 -5
  9. package/dist/{chunk-TC63QU4M.js → chunk-32MOGTKT.js} +31 -196
  10. package/dist/{chunk-LYLRNAX2.js → chunk-3EGIU5WY.js} +2 -2
  11. package/dist/{chunk-CMQJP5L4.js → chunk-3LJNQ6LR.js} +4 -4
  12. package/dist/{chunk-GJQQCI63.js → chunk-3SQJZMPO.js} +1 -127
  13. package/dist/{chunk-2NRIGEHZ.js → chunk-46KVXDUJ.js} +10 -3
  14. package/dist/{chunk-YXY6V2YN.js → chunk-4CRLM3IT.js} +56 -52
  15. package/dist/{chunk-BBH5IAAR.js → chunk-76IBFEYW.js} +3 -3
  16. package/dist/{chunk-YJ5G2WRU.js → chunk-7EZ5AKBK.js} +3 -3
  17. package/dist/{chunk-5NAOTRLN.js → chunk-7G4XMHDB.js} +3 -3
  18. package/dist/chunk-7IATMZSA.js +72 -0
  19. package/dist/{chunk-LSHMDQZQ.js → chunk-AFR6GWXD.js} +3 -3
  20. package/dist/{chunk-T6BO4VO6.js → chunk-AYM472K3.js} +2 -2
  21. package/dist/{chunk-YSMI6TNZ.js → chunk-BCB24FG7.js} +2 -2
  22. package/dist/{chunk-6DYZ2JM6.js → chunk-BZQCAZZZ.js} +203 -29
  23. package/dist/{chunk-KR432TCU.js → chunk-C576CU77.js} +4 -4
  24. package/dist/{chunk-5KE6KHY6.js → chunk-CAPR5DET.js} +2 -2
  25. package/dist/{chunk-GQJ35I2I.js → chunk-CLQJAGWL.js} +7 -5
  26. package/dist/{chunk-NW3VXCXR.js → chunk-COCMMQXW.js} +2 -2
  27. package/dist/{chunk-A4GOY3PE.js → chunk-DEW62ON3.js} +1 -3
  28. package/dist/{chunk-SXZS56YM.js → chunk-EGXJWRO6.js} +3 -3
  29. package/dist/{chunk-RT7ACF77.js → chunk-EGY3TS62.js} +6 -6
  30. package/dist/{chunk-TDHD3HNO.js → chunk-F4X5NVKY.js} +37 -16
  31. package/dist/{chunk-RQ6SEQOT.js → chunk-FMZEU7MF.js} +65 -24
  32. package/dist/{chunk-R5JPMW2F.js → chunk-FTTB64OJ.js} +5 -5
  33. package/dist/{chunk-PHRBLJ3K.js → chunk-GEURKGZS.js} +2 -2
  34. package/dist/{chunk-ALDU62VN.js → chunk-GFXFRKUG.js} +4 -4
  35. package/dist/{chunk-L2EA5YLO.js → chunk-HGFKDSKZ.js} +3 -3
  36. package/dist/{chunk-JSYAH7KR.js → chunk-HOIAQ3P2.js} +2 -2
  37. package/dist/{chunk-FGXBIOVK.js → chunk-IFC3JXCT.js} +2 -2
  38. package/dist/{chunk-EV6BZMBZ.js → chunk-IHUOYDLN.js} +3 -3
  39. package/dist/{chunk-474D3IUN.js → chunk-JL7BDLC6.js} +4 -4
  40. package/dist/{chunk-WWQ6TUVK.js → chunk-JLJ7SP4X.js} +3 -3
  41. package/dist/{chunk-ULEWCCBN.js → chunk-JQ575OAK.js} +2 -2
  42. package/dist/{chunk-SUA56ZSB.js → chunk-LTTZX6RD.js} +6 -2
  43. package/dist/{chunk-YJMWEZOB.js → chunk-MG3DE3VO.js} +2 -2
  44. package/dist/{chunk-GE5RO4BS.js → chunk-N6MZSBOL.js} +5 -1
  45. package/dist/{chunk-DU3OIBQE.js → chunk-NWNSXHA5.js} +6 -2
  46. package/dist/{chunk-57Z2WXJ2.js → chunk-OBYZU23V.js} +5 -5
  47. package/dist/{chunk-2MJSSDK5.js → chunk-OUJG73YJ.js} +2 -2
  48. package/dist/{chunk-XCAEHWQB.js → chunk-PAW4RMH3.js} +2 -2
  49. package/dist/{chunk-CDFIZHVD.js → chunk-QI4Q5ZZH.js} +3 -3
  50. package/dist/{chunk-ALBVWTU4.js → chunk-TF76LCZS.js} +35 -51
  51. package/dist/{chunk-FL5IKZQA.js → chunk-U5B3TUEW.js} +2 -2
  52. package/dist/{chunk-TTCXHFFB.js → chunk-U7AO6FRL.js} +2 -2
  53. package/dist/{chunk-RN3PAL4E.js → chunk-UBW53CNS.js} +2 -2
  54. package/dist/{chunk-MDEG62W7.js → chunk-UTTRJ6KN.js} +3 -3
  55. package/dist/{chunk-Q6LP67RP.js → chunk-UWYZIGCB.js} +2 -2
  56. package/dist/{chunk-XJLNQEQS.js → chunk-XHROEQ23.js} +3 -3
  57. package/dist/{chunk-EPH4UMUE.js → chunk-YVDBBWEP.js} +2 -2
  58. package/dist/{dgmo-router-KYNLRE7S.js → dgmo-router-A3LIHT6H.js} +7 -7
  59. package/dist/{dimensions-Q5SFPATB.js → dimensions-7NYBSZRJ.js} +4 -4
  60. package/dist/{flowchart-parser-LY5GGQL2.js → flowchart-parser-NVBP3C5D.js} +2 -2
  61. package/dist/{flowchart-renderer-TTUSBBQI.js → flowchart-renderer-QYGQ64BM.js} +6 -6
  62. package/dist/index.js +13 -13
  63. package/dist/{layout-UJ62RQQ3.js → layout-2OJ25STS.js} +2 -2
  64. package/dist/{layout-DAYQ46PS.js → layout-LAS67TK3.js} +3 -3
  65. package/dist/{parser-LUOINP6H.js → parser-QYAIFXLP.js} +3 -3
  66. package/dist/{parser-L7RXUKYN.js → parser-WVE6SKB7.js} +2 -2
  67. package/dist/{parser-JYIZEKAS.js → parser-ZYAFHXKQ.js} +2 -2
  68. package/dist/pert.d.ts +4 -33
  69. package/dist/{renderer-AA5CC4VJ.js → renderer-4EWGZLJ6.js} +3 -3
  70. package/dist/{renderer-6SSIELBC.js → renderer-4PNVGHVA.js} +3 -3
  71. package/dist/{renderer-U6PK5ZKD.js → renderer-5W3HWIUL.js} +3 -3
  72. package/dist/{renderer-TI7QABY7.js → renderer-CGOPX4HW.js} +4 -4
  73. package/dist/{renderer-6IGQEVTE.js → renderer-CO5O5VR5.js} +3 -3
  74. package/dist/{renderer-QLZVE45Z.js → renderer-D7N7PPB7.js} +3 -3
  75. package/dist/{renderer-6HRDO635.js → renderer-DKW273R7.js} +4 -4
  76. package/dist/{renderer-227JWWHX.js → renderer-E6NHTVN6.js} +5 -5
  77. package/dist/{renderer-IPNSOM5J.js → renderer-F24V3RD3.js} +4 -4
  78. package/dist/{renderer-N2X3WYBY.js → renderer-F6WSR7UM.js} +5 -5
  79. package/dist/{renderer-55JP6AO4.js → renderer-FGGDZZFQ.js} +3 -3
  80. package/dist/{renderer-E5BYZTVH.js → renderer-FUJNSC5X.js} +3 -3
  81. package/dist/{renderer-YQI5U6KJ.js → renderer-GF6S5ZX6.js} +3 -3
  82. package/dist/{renderer-UXZEYV2X.js → renderer-GJDVPXI3.js} +4 -4
  83. package/dist/{renderer-UYYBJ7OB.js → renderer-IH45QV6Z.js} +9 -9
  84. package/dist/{renderer-NECP7G4X.js → renderer-JMJ7Q5OC.js} +4 -4
  85. package/dist/{renderer-YM7PLDBF.js → renderer-KMOGGMM7.js} +5 -5
  86. package/dist/{renderer-P55KPBIX.js → renderer-LBNVKVO3.js} +4 -4
  87. package/dist/{renderer-46QQH33X.js → renderer-LE3ZKHNS.js} +4 -4
  88. package/dist/{renderer-4K6KR3U3.js → renderer-MUW4G2N6.js} +6 -6
  89. package/dist/{renderer-2WW35ZIW.js → renderer-PIEPRK6M.js} +4 -4
  90. package/dist/{renderer-EJXFEA5C.js → renderer-PKRKLOYR.js} +4 -4
  91. package/dist/{renderer-W7RKBG6C.js → renderer-PR3KLNST.js} +4 -4
  92. package/dist/{renderer-SCIHPARI.js → renderer-QAMOXOZ2.js} +3 -3
  93. package/dist/{renderer-3LD3ANCP.js → renderer-RUHC6D3B.js} +4 -4
  94. package/dist/{renderer-OWBIWBMK.js → renderer-UUP6OX6F.js} +3 -3
  95. package/dist/{renderer-UUPNOGO5.js → renderer-UYZSP7MF.js} +4 -4
  96. package/dist/{renderer-CF5TYQT4.js → renderer-ZAJ5353N.js} +3 -3
  97. package/dist/{state-renderer-OPP6YOJI.js → state-renderer-UIE3AQM6.js} +6 -6
  98. package/docs/language-reference.md +6 -6
  99. package/package.json +3 -3
  100. package/dist/chunk-PDKUANDZ.js +0 -35
@@ -2,10 +2,10 @@ import {
2
2
  bracketExportDimensions,
3
3
  renderBracket,
4
4
  renderBracketForExport
5
- } from "./chunk-L2EA5YLO.js";
5
+ } from "./chunk-HGFKDSKZ.js";
6
6
  import "./chunk-WGC42WJU.js";
7
- import "./chunk-YJMWEZOB.js";
8
- import "./chunk-A4GOY3PE.js";
7
+ import "./chunk-MG3DE3VO.js";
8
+ import "./chunk-DEW62ON3.js";
9
9
  import "./chunk-QT5UMFPE.js";
10
10
  import "./chunk-4SXHMFFP.js";
11
11
  import "./chunk-UTCPNJND.js";
@@ -22,4 +22,4 @@ export {
22
22
  renderBracket,
23
23
  renderBracketForExport
24
24
  };
25
- //# sourceMappingURL=renderer-3LD3ANCP.js.map
25
+ //# sourceMappingURL=renderer-RUHC6D3B.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  renderKanban,
3
3
  renderKanbanForExport
4
- } from "./chunk-PHRBLJ3K.js";
4
+ } from "./chunk-GEURKGZS.js";
5
5
  import "./chunk-WGC42WJU.js";
6
6
  import "./chunk-FJ57274M.js";
7
7
  import "./chunk-24YPR5EH.js";
8
8
  import "./chunk-RU2HHHYA.js";
9
- import "./chunk-A4GOY3PE.js";
9
+ import "./chunk-DEW62ON3.js";
10
10
  import "./chunk-QT5UMFPE.js";
11
11
  import "./chunk-4SXHMFFP.js";
12
12
  import "./chunk-UTCPNJND.js";
@@ -24,4 +24,4 @@ export {
24
24
  renderKanban,
25
25
  renderKanbanForExport
26
26
  };
27
- //# sourceMappingURL=renderer-OWBIWBMK.js.map
27
+ //# sourceMappingURL=renderer-UUP6OX6F.js.map
@@ -2,9 +2,9 @@ import {
2
2
  authoredCollapsedIds,
3
3
  renderBlock,
4
4
  renderBlockForExport
5
- } from "./chunk-MDEG62W7.js";
6
- import "./chunk-YJMWEZOB.js";
7
- import "./chunk-A4GOY3PE.js";
5
+ } from "./chunk-UTTRJ6KN.js";
6
+ import "./chunk-MG3DE3VO.js";
7
+ import "./chunk-DEW62ON3.js";
8
8
  import "./chunk-QT5UMFPE.js";
9
9
  import "./chunk-4SXHMFFP.js";
10
10
  import "./chunk-UTCPNJND.js";
@@ -22,4 +22,4 @@ export {
22
22
  renderBlock,
23
23
  renderBlockForExport
24
24
  };
25
- //# sourceMappingURL=renderer-UUPNOGO5.js.map
25
+ //# sourceMappingURL=renderer-UYZSP7MF.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  renderRing,
3
3
  renderRingForExport
4
- } from "./chunk-JSYAH7KR.js";
4
+ } from "./chunk-HOIAQ3P2.js";
5
5
  import "./chunk-NCT22MOD.js";
6
6
  import "./chunk-WGC42WJU.js";
7
7
  import "./chunk-24YPR5EH.js";
8
- import "./chunk-A4GOY3PE.js";
8
+ import "./chunk-DEW62ON3.js";
9
9
  import "./chunk-UTCPNJND.js";
10
10
  import "./chunk-MTGGOCND.js";
11
11
  import "./chunk-M5OOAP65.js";
@@ -17,4 +17,4 @@ export {
17
17
  renderRing,
18
18
  renderRingForExport
19
19
  };
20
- //# sourceMappingURL=renderer-CF5TYQT4.js.map
20
+ //# sourceMappingURL=renderer-ZAJ5353N.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderState,
3
3
  renderStateForExport
4
- } from "./chunk-ALBVWTU4.js";
5
- import "./chunk-PDKUANDZ.js";
6
- import "./chunk-GE5RO4BS.js";
4
+ } from "./chunk-TF76LCZS.js";
5
+ import "./chunk-7IATMZSA.js";
6
+ import "./chunk-N6MZSBOL.js";
7
7
  import "./chunk-LP7EC4MI.js";
8
8
  import "./chunk-Q74GP3GK.js";
9
9
  import "./chunk-6EK55ART.js";
@@ -13,9 +13,9 @@ import "./chunk-NCT22MOD.js";
13
13
  import "./chunk-WGC42WJU.js";
14
14
  import "./chunk-FJ57274M.js";
15
15
  import "./chunk-24YPR5EH.js";
16
- import "./chunk-YJMWEZOB.js";
16
+ import "./chunk-MG3DE3VO.js";
17
17
  import "./chunk-RU2HHHYA.js";
18
- import "./chunk-A4GOY3PE.js";
18
+ import "./chunk-DEW62ON3.js";
19
19
  import "./chunk-QT5UMFPE.js";
20
20
  import "./chunk-4SXHMFFP.js";
21
21
  import "./chunk-UTCPNJND.js";
@@ -37,4 +37,4 @@ export {
37
37
  renderState,
38
38
  renderStateForExport
39
39
  };
40
- //# sourceMappingURL=state-renderer-OPP6YOJI.js.map
40
+ //# sourceMappingURL=state-renderer-UIE3AQM6.js.map
@@ -1712,7 +1712,7 @@ divvy shares 1 2 3
1712
1712
  | `default-confidence <level>` | M-only heuristic: `high`, `medium`, `low`, or a custom `O/P` factor pair (e.g. `0.6/2.5`) |
1713
1713
  | `direction-lr` / `direction-tb` | Layout direction booleans (last one wins; default `LR`); key+value `direction LR\|TB` accepted legacy |
1714
1714
  | `node-detail <compact\|full>` | Visual density; `full` adds slack bars and σ-as-border-thickness |
1715
- | `no-analysis` | Bare flag — hide the analysis layer (tornado + S-curve). The layer renders by default whenever Monte Carlo ran; this suppresses it. An explicit `viewState.an` (app toggle / share link) overrides it. The project subtitle and the project-stats caption are not part of the layer and still render |
1715
+ | `no-analysis` | Bare flag — hide the analysis layer (tornado + S-curve). The layer renders by default whenever Monte Carlo ran; this suppresses it. An explicit `viewState.an` (app toggle / share link) overrides it. The project subtitle is not part of the layer and still renders |
1716
1716
  | `trials <N>` | Canonical Monte Carlo trial count (`< 100` clamps to analytical) |
1717
1717
  | `seed <N>` | Mulberry32 PRNG seed for deterministic runs |
1718
1718
  | `scrubber-trials <N>` | Fast-MC trials for the interactive duration scrubber |
@@ -1823,11 +1823,11 @@ The first declared tag group is active by default and colors nodes; `active-tag
1823
1823
 
1824
1824
  `start-date YYYY-MM-DD` anchors the forward pass; `end-date YYYY-MM-DD` anchors the backward pass. They are mutually exclusive. When anchored, ES / EF / LS / LF cells render as calendar dates and slack normalizes to days. `start-date now` resolves to today at parse time and is substituted before share-link compression so recipients see the author's view. `end-date now` is a parse error.
1825
1825
 
1826
- In backward mode with Monte Carlo active, the project-stats caption reframes its percentile rows from _finishes_ to _latest-safe starts_ — higher confidence demands an earlier start. Latest-safe-start dates that fall in the past relative to the parse-time today date append `(latest-safe start has passed)`.
1826
+ In backward mode with Monte Carlo active, the S-curve reframes its percentile reference lines from _finishes_ to _latest-safe starts_ — higher confidence demands an earlier start. A latest-safe-start date that falls in the past relative to the parse-time today date draws dashed with a `(past)` suffix on its label.
1827
1827
 
1828
1828
  ### Critical path and analysis
1829
1829
 
1830
- Forward/backward pass, slack, M-world critical path, and project μ/σ are always computed. Critical-path activities and edges paint with a red border (`palette.colors.red`) in analytical mode. When Monte Carlo runs (any non-milestone activity has a duration), criticality is banded by the criticality index: red ≥ 0.80, orange ≥ 0.50, yellow ≥ 0.25, green ≥ 0.10, blue ≥ 0.02. The project-stats caption reports expected duration, σ, and P50/P80/P95 dates. Activities downstream of a TBD activity render `?` for ES/EF/LS/LF/slack and dashed borders.
1830
+ Forward/backward pass, slack, M-world critical path, and project μ/σ are always computed. Critical-path activities and edges paint with a red border (`palette.colors.red`) in analytical mode. When Monte Carlo runs (any non-milestone activity has a duration), criticality is banded by the criticality index: red ≥ 0.80, orange ≥ 0.50, yellow ≥ 0.25, green ≥ 0.10, blue ≥ 0.02. The project subtitle reports expected duration and σ; the S-curve's reference lines report the P50/P80/P95 dates. Activities downstream of a TBD activity render `?` for ES/EF/LS/LF/slack and dashed borders.
1831
1831
 
1832
1832
  See spec §13A for full date-anchoring semantics, S-curve axes, and diagnostic codes.
1833
1833
 
@@ -3767,7 +3767,7 @@ In the desktop app a block diagram is interactive: click a container header to c
3767
3767
  **Beta — expect rough edges and syntax changes.**
3768
3768
 
3769
3769
  <!-- TIPS start -->
3770
- **Styling tips:** Sketch is a GUI-authored format — the desktop and web canvas editors generate this markup, so hand-writing it is the exception. If you generate it anyway: keep it SMALL (sketches read best under ~15 shapes), and either omit `at:` everywhere (shapes flow into rows) or use integer half-slot coordinates with shapes at least 2 half-slots apart on one axis. Alias any shape an edge references (`as con`). Never write `size:`, colors, fonts, or a `shape:` outside the closed set (database, queue, cloud, person, document, note). In sketch, `~` dashed means secondary emphasis, NOT async. Categorize with a tag group instead of reaching for more shape kinds — kind-of-thing is meaning, and meaning lives in tags. Reach for `sketch` when the drawing itself is the content; reach for `boxes-and-lines` when topology should auto-lay-out.
3770
+ **Styling tips:** Sketch is a GUI-authored format — the desktop and web canvas editors generate this markup, so hand-writing it is the exception. If you generate it anyway: keep it SMALL (sketches read best under ~15 shapes), and either omit `at:` everywhere (shapes flow into rows) or use integer half-slot coordinates with shapes **at least 3 half-slots apart** on one axis (a footprint spans 2 half-units and the mandatory gap adds 1 more, so each shape claims a 3×3 block; 2 apart overlaps). A `[Box]` may hold another `[Box]`, to **depth 2** — a third level is refused and its shapes join the box above it. Alias any shape an edge references (`as con`). Never write `size:`, colors, fonts, or a `shape:` outside the closed set (database, queue, cloud, person, document, note). In sketch, `~` dashed means secondary emphasis, NOT async. Categorize with a tag group instead of reaching for more shape kinds — kind-of-thing is meaning, and meaning lives in tags. Reach for `sketch` when the drawing itself is the content; reach for `boxes-and-lines` when topology should auto-lay-out.
3771
3771
  <!-- TIPS end -->
3772
3772
 
3773
3773
  A **GUI-first constrained canvas**: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags. The renderer owns all styling — authors own placement, connection, naming, and tags. Every shape has ONE universal footprint (no resizing); text always fits (shrink → smart-wrap → `…`). Pick `sketch` when the spatial arrangement is yours to decide; pick `boxes-and-lines` when topology should auto-lay-out.
@@ -4285,7 +4285,7 @@ poi Austin red # direct marker color (trailing token, §1.5
4285
4285
  ```
4286
4286
 
4287
4287
  - **Coordinates are positional** — two leading signed numbers (lat then lon); cities never start with a number.
4288
- - `size:` scales marker area (use `poi-size <label>` for the legend key). A trailing color (`poi Austin red`) sets the marker fill directly — winning over a tag color and the default orange. POI properties: `label`, `size`, `style`, applied tag alias, `as`, `clock`. No `icon` in v1.
4288
+ - `size:` scales marker area (use `poi-size <label>` for the legend key). A trailing color (`poi Austin red`) sets the marker fill directly — winning over a tag color and over the orange fallback. A POI that names no value for a tag group other POIs use takes that group's default value (the entry marked `default`, else the first) and is colored as that category — the same assumption a region makes. Orange is the fill only where there is no such group; a group used solely on connector lines never colors a marker. POI properties: `label`, `size`, `style`, applied tag alias, `as`, `clock`. No `icon` in v1.
4289
4289
  - Coord-positioned or relabeled POIs take `as <alias>` for route/edge references; named POIs are referenced by name.
4290
4290
 
4291
4291
  ### Local-time cards (`clock`)
@@ -4309,7 +4309,7 @@ poi 1.29 103.85 as SG clock: Asia/Singapore # bare-coord pin names its zone
4309
4309
 
4310
4310
  ### Routes & connectors
4311
4311
 
4312
- `route <origin>` — an ordered, auto-numbered voyage; the origin gets a distinct marker, and the header takes **no shape option**. Each indented line is a `<arrow> destination` leg that continues from the previous stop, using the same indented arrow idiom as a sitemap — a leg is an edge (in-arrow label, `width:` thickness, and the **arrow glyph alone sets shape**: `-…->` straight, `~…~>` arc, mixable per leg). The **arrow is required and must be directional** — a bare destination errors, and so does an undirected `--`/`~~` glyph (a voyage always flows forward; use `->`/`~>`). A **tag on a leg colours the LINE** (categorical leg-type colouring — flights vs cruises vs trains); `label:`/`as` still name the destination stop. Repeat the origin as a leg's destination to close a loop (no second marker):
4312
+ `route <origin>` — an ordered, auto-numbered voyage; the origin gets a distinct marker, and the header takes **no shape option**. Each indented line is a `<arrow> destination` leg that continues from the previous stop, using the same indented arrow idiom as a sitemap — a leg is an edge (in-arrow label, `width:` thickness, and the **arrow glyph alone sets shape**: `-…->` straight, `~…~>` arc, mixable per leg). The **arrow is required and must be directional** — a bare destination errors, and so does an undirected `--`/`~~` glyph (a voyage always flows forward; use `->`/`~>`). A **tag on a leg colours the LINE** (categorical leg-type colouring — flights vs cruises vs trains), and a leg naming no value for a group other legs use takes that group's default value; `label:`/`as` still name the destination stop. Repeat the origin as a leg's destination to close a loop (no second marker):
4313
4313
 
4314
4314
  ```
4315
4315
  route Miami
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diagrammo/dgmo",
3
- "version": "0.74.0",
3
+ "version": "0.76.0",
4
4
  "description": "DGMO diagram markup language — parser, renderer, and color system",
5
5
  "license": "MIT",
6
6
  "author": "Diagrammo LLC",
@@ -86,7 +86,7 @@
86
86
  "fonts": "node scripts/build-fonts.mjs",
87
87
  "metrics": "node scripts/build-text-metrics.mjs",
88
88
  "prebuild": "rm -rf dist && pnpm codegen && pnpm fonts && pnpm metrics",
89
- "build": "DGMO_DEV_RELOAD=1 tsup; _e=$?; rm -rf ../diagrammo-app/node_modules/.vite/deps 2>/dev/null; exit $_e",
89
+ "build": "DGMO_DEV_RELOAD=1 tsup",
90
90
  "typecheck": "tsc --noEmit",
91
91
  "predev": "pnpm fonts",
92
92
  "dev": "DGMO_DEV_RELOAD=1 tsup --watch",
@@ -117,7 +117,7 @@
117
117
  "check:deadcode": "knip",
118
118
  "check:spelling": "cspell \"src/**/*.ts\" \"tests/**/*.ts\"",
119
119
  "check:all": "pnpm check:deadcode && pnpm check:spelling && pnpm check:duplication && pnpm check:circular && pnpm check:deps && pnpm check:dep-ranges && pnpm check:security && pnpm build && bash scripts/check-api.sh check && pnpm check:publish && pnpm check:types",
120
- "check:circular": "madge --circular --extensions ts src/ --json | node -e \"const c=JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')); const n=c.length; if(n>1){console.error('New circular deps found ('+n+' > 1 known runtime cycle)');process.exit(1)}else if(n>0){console.log(n+' known runtime cycle (layout <-> layout-search, safe)')}else{console.log('No circular dependencies')}\"",
120
+ "check:circular": "node --test scripts/check-circular.test.mjs && madge --circular --extensions ts src/ --json | node scripts/check-circular.mjs",
121
121
  "check:deps": "depcheck --ignores='@diagrammo/dgmo,@diagrammo/dgmo-mcp,@codemirror/language,@lezer/*,husky,lint-staged,tsup,axe-core,type-coverage'",
122
122
  "check:security": "pnpm audit --prod",
123
123
  "check:dep-ranges": "node scripts/check-dep-ranges.mjs",
@@ -1,35 +0,0 @@
1
- // src/utils/fit-canvas.ts
2
- function fitDiagramToCanvas(p) {
3
- const scaleX = (p.width - p.padding * 2) / p.diagramW;
4
- let scale;
5
- let canvasHeight;
6
- if (p.exportMode) {
7
- scale = Math.min(p.maxScale, scaleX);
8
- canvasHeight = p.titleHeight + p.diagramH * scale + p.padding * 2;
9
- } else {
10
- const availH = p.height - p.titleHeight;
11
- const scaleY = (availH - p.padding * 2) / p.diagramH;
12
- scale = Math.min(p.maxScale, scaleX, scaleY);
13
- canvasHeight = p.height;
14
- }
15
- const scaledW = p.diagramW * scale;
16
- return {
17
- scale,
18
- offsetX: (p.width - scaledW) / 2,
19
- offsetY: p.titleHeight + p.padding,
20
- canvasHeight
21
- };
22
- }
23
-
24
- // src/graph/edge-spline.ts
25
- import * as d3Shape from "d3-shape";
26
- var lineGenerator = d3Shape.line().x((d) => d.x).y((d) => d.y).curve(d3Shape.curveBasis);
27
- function edgeSplinePath(points) {
28
- return lineGenerator(points);
29
- }
30
-
31
- export {
32
- fitDiagramToCanvas,
33
- edgeSplinePath
34
- };
35
- //# sourceMappingURL=chunk-PDKUANDZ.js.map