@diagrammo/dgmo 0.48.2 → 0.49.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/.cursorrules +8 -3
- package/.github/copilot-instructions.md +8 -3
- package/.windsurfrules +8 -3
- package/SKILL.md +8 -3
- package/dist/advanced.d.ts +444 -1
- package/dist/advanced.js +208 -146
- package/dist/auto.css +63 -0
- package/dist/auto.js +202 -102
- package/dist/auto.mjs +6849 -824
- package/dist/block.css +63 -0
- package/dist/block.d.ts +13 -5
- package/dist/block.js +137 -57
- package/dist/{charts-d3-QOZHKTCT.js → charts-d3-EW3YQTEA.js} +9 -8
- package/dist/chunk-26RVGM44.js +331 -0
- package/dist/{chunk-44CM72SQ.js → chunk-2WMBWZY2.js} +3 -3
- package/dist/{chunk-L66GEFB6.js → chunk-35BBZDFE.js} +4 -4
- package/dist/{chunk-4GRI7MEB.js → chunk-3BIAFYD2.js} +6 -6
- package/dist/chunk-3NFJWFNP.js +1474 -0
- package/dist/{chunk-76OWZ3BA.js → chunk-4BD7EVPK.js} +2 -2
- package/dist/{chunk-MITI6NOL.js → chunk-4FIV4K4Z.js} +9 -9
- package/dist/chunk-4HVNZ7WF.js +574 -0
- package/dist/{chunk-X5LCYCL5.js → chunk-4NQ3IKUM.js} +2 -2
- package/dist/{chunk-PWIHZ6NJ.js → chunk-4UDKKGHH.js} +4 -4
- package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
- package/dist/chunk-4YNP6O47.js +607 -0
- package/dist/{chunk-3MQQNXPD.js → chunk-5FGDJIJX.js} +3 -3
- package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
- package/dist/chunk-5XCM7UUW.js +261 -0
- package/dist/{chunk-RYEGFMUO.js → chunk-5ZZLLBFK.js} +2 -2
- package/dist/{chunk-EB6FPQUP.js → chunk-65RTDUZH.js} +3 -3
- package/dist/chunk-6CLKNXVP.js +664 -0
- package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
- package/dist/{chunk-ZGR7ULFJ.js → chunk-6SA7FJE4.js} +31 -19
- package/dist/{chunk-LIOHW36Z.js → chunk-6VE3VLWM.js} +3 -3
- package/dist/{chunk-AN2MOO5T.js → chunk-7OVSJI2V.js} +3 -3
- package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
- package/dist/{chunk-FCIIHT24.js → chunk-7VLUGEMJ.js} +7 -7
- package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
- package/dist/{chunk-3R5POCTZ.js → chunk-AJ2PEY7J.js} +6 -6
- package/dist/{chunk-PBHE5UG6.js → chunk-ALRHIR6I.js} +46 -12
- package/dist/{chunk-7JEGTRLD.js → chunk-B57V3DWN.js} +3 -3
- package/dist/{chunk-ILKORZ3H.js → chunk-BCT5G2VN.js} +7 -7
- package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
- package/dist/{chunk-ZBWMSD5N.js → chunk-BGJV5ATD.js} +4 -4
- package/dist/{chunk-G2H74XJZ.js → chunk-BPIJLRYE.js} +8 -8
- package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
- package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
- package/dist/{chunk-QEBUY5NY.js → chunk-CEHZOPGM.js} +4 -4
- package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
- package/dist/{chunk-5QXL4NYS.js → chunk-CLR4A2N2.js} +10 -5
- package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
- package/dist/{chunk-SML67VPV.js → chunk-D5AVQCDN.js} +3 -3
- package/dist/{chunk-2LACINWN.js → chunk-DDTJ5N7Q.js} +9 -9
- package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
- package/dist/{chunk-B65G5DNL.js → chunk-EYN7VFKL.js} +3 -3
- package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
- package/dist/{chunk-RVMRZAPB.js → chunk-F743CM2N.js} +3 -3
- package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
- package/dist/{chunk-WCSOJFU3.js → chunk-FMKTYMP4.js} +3 -3
- package/dist/{chunk-RTLBSQ3G.js → chunk-FUCAB3KQ.js} +3 -3
- package/dist/{chunk-SGZYXELT.js → chunk-GB3YZTAM.js} +9 -6
- package/dist/{chunk-QLCCJEJI.js → chunk-HBVD67XG.js} +2 -2
- package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
- package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
- package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
- package/dist/chunk-IAEC4KLA.js +492 -0
- package/dist/{chunk-J5FIXQRT.js → chunk-IBC35BTK.js} +4 -4
- package/dist/{chunk-NURGB5Z4.js → chunk-IFK3GIUW.js} +2 -2
- package/dist/{chunk-FANX6UJR.js → chunk-IHLSHCPZ.js} +11 -11
- package/dist/{chunk-GMR5MFHJ.js → chunk-IUK7AGD4.js} +2 -2
- package/dist/chunk-IVKC4GID.js +32 -0
- package/dist/{chunk-OJR3MQYV.js → chunk-JFPY3UJ7.js} +296 -57
- package/dist/{chunk-5MLYVTYM.js → chunk-K6HNAY5V.js} +2 -2
- package/dist/{chunk-P235SVAH.js → chunk-KQAEKMIX.js} +2 -2
- package/dist/{chunk-7DTWEFUE.js → chunk-KUBBJ2CD.js} +10 -10
- package/dist/{chunk-BUVJFRPY.js → chunk-KV6Y2HE6.js} +4 -4
- package/dist/{chunk-OURHMODR.js → chunk-LG4TWW4U.js} +13 -13
- package/dist/{chunk-XAKEUMEJ.js → chunk-LVHPTBO3.js} +3 -3
- package/dist/{chunk-ERLBPDGU.js → chunk-MJCG5K2O.js} +2 -2
- package/dist/{chunk-THXCFRTU.js → chunk-N4J5KGWG.js} +12 -12
- package/dist/{chunk-MZSBFAPJ.js → chunk-NVT6C2VE.js} +9 -9
- package/dist/{chunk-AELOBFW5.js → chunk-O5MQPK7E.js} +3 -3
- package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
- package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
- package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
- package/dist/{chunk-B7JUCQUA.js → chunk-PU3AUQPA.js} +4 -4
- package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
- package/dist/chunk-QQJUTGQH.js +135 -0
- package/dist/{chunk-HSH73DP6.js → chunk-RI4NIMFP.js} +99 -39
- package/dist/{chunk-33LCUH4H.js → chunk-RTERS6S5.js} +3 -3
- package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
- package/dist/chunk-SGHSY3LU.js +377 -0
- package/dist/{chunk-SRTU6HMQ.js → chunk-SJEGO2QL.js} +8 -8
- package/dist/chunk-SQDFK5ZQ.js +273 -0
- package/dist/{chunk-PZMETGLY.js → chunk-SVDWQGX2.js} +296 -121
- package/dist/{chunk-Z5CGSFJB.js → chunk-T7IKPCMI.js} +4 -4
- package/dist/chunk-TC3YWBFO.js +233 -0
- package/dist/{chunk-EVCVDTXE.js → chunk-TLKMTQYL.js} +3 -3
- package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
- package/dist/{chunk-IZMRON6C.js → chunk-UVCXZEGU.js} +2 -2
- package/dist/{chunk-CKNVO24D.js → chunk-UWDO3O52.js} +2 -2
- package/dist/{chunk-RJE5JTVK.js → chunk-VC3TR4NL.js} +7 -7
- package/dist/{chunk-CI2G3OEB.js → chunk-X2CH42BN.js} +9 -9
- package/dist/{chunk-6HO5ZTXK.js → chunk-XCC2RENT.js} +2 -2
- package/dist/chunk-XHVV4NVW.js +51 -0
- package/dist/{chunk-ZJEL4H2R.js → chunk-XJ7J6WOO.js} +9 -9
- package/dist/{chunk-ULOEATBZ.js → chunk-XKTN7CZF.js} +106 -29
- package/dist/{chunk-IPWPWM6R.js → chunk-YM2BSPYW.js} +111 -10
- package/dist/{chunk-BUPDIHML.js → chunk-YRVLP7UU.js} +3 -3
- package/dist/{chunk-T2OE3YQB.js → chunk-YTN572Q2.js} +3 -3
- package/dist/{chunk-WVAJFAIA.js → chunk-YYX3SU6H.js} +3 -3
- package/dist/{chunk-MO5YHHMQ.js → chunk-ZDUQGL3N.js} +2 -2
- package/dist/{chunk-Y3J7VR52.js → chunk-ZNQX6QWH.js} +30 -2
- package/dist/{chunk-UWN33VNX.js → chunk-ZREZOIGS.js} +8 -8
- package/dist/{chunk-6SM5NJQH.js → chunk-ZTLWVRNS.js} +4 -4
- package/dist/{chunk-RUNNI6VE.js → chunk-ZXL6MB4R.js} +3 -3
- package/dist/cli.cjs +159 -122
- package/dist/dgmo-router-ODKPEJ3P.js +79 -0
- package/dist/dimensions-WSIJXT5Q.js +22 -0
- package/dist/editor.js +4 -1
- package/dist/element.js +203 -103
- package/dist/element.mjs +6849 -824
- package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-IVZN7CQN.js} +4 -4
- package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GMI2U3DD.js} +9 -9
- package/dist/highlight.js +7 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +193 -232
- package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
- package/dist/{layout-5RA6QWR6.js → layout-4Z5JM7PT.js} +6 -6
- package/dist/layout-6RDJHS6E.js +9 -0
- package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
- package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
- package/dist/{layout-HWDSRX5E.js → layout-D42XE4RE.js} +6 -6
- package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
- package/dist/layout-FGQWRYYW.js +14 -0
- package/dist/layout-GZ2CWONU.js +14 -0
- package/dist/layout-HQMBPJVS.js +10 -0
- package/dist/{layout-UM5F4DJB.js → layout-K2ZN3Q42.js} +5 -5
- package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
- package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
- package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
- package/dist/layout-S3EK4IYO.js +14 -0
- package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
- package/dist/{parser-KNSQSKQO.js → parser-4BKIFG2C.js} +5 -5
- package/dist/{parser-OV7NOBW6.js → parser-4ROBKVUR.js} +4 -4
- package/dist/parser-667RGSUW.js +13 -0
- package/dist/{parser-IXSZZQHY.js → parser-BL7Z72EY.js} +4 -4
- package/dist/{parser-AQETEVRW.js → parser-CLMFZWCC.js} +4 -4
- package/dist/{parser-XKRP7QKP.js → parser-D6ONJQFR.js} +3 -3
- package/dist/{parser-2EWECDSA.js → parser-DERPY5KC.js} +4 -4
- package/dist/{parser-4OGOBJJ4.js → parser-GFSOPDB7.js} +4 -4
- package/dist/{parser-2MFP2H2E.js → parser-HVJFTOXL.js} +3 -3
- package/dist/{parser-VQP2UJ6W.js → parser-IKZFTLOJ.js} +3 -3
- package/dist/parser-J3P2D6IP.js +13 -0
- package/dist/{parser-PQ3POX45.js → parser-JD7OQ2E6.js} +4 -4
- package/dist/{parser-O5J4VBII.js → parser-K647FRI4.js} +3 -3
- package/dist/{parser-NGU3ETO6.js → parser-KPMN5KKE.js} +4 -4
- package/dist/{parser-4FL2CMDG.js → parser-MBJSBTL5.js} +4 -4
- package/dist/{parser-TFZFBVWN.js → parser-MCJWF5G3.js} +3 -3
- package/dist/{parser-NRAI6O25.js → parser-MRBPXXIV.js} +4 -4
- package/dist/{parser-6BTRLKRZ.js → parser-OBQG655V.js} +4 -4
- package/dist/{parser-3STE62GB.js → parser-QJYS7KQQ.js} +4 -4
- package/dist/{parser-XDVELHRK.js → parser-SMBJO3XN.js} +4 -4
- package/dist/{parser-TRTHDFPP.js → parser-TITK4YW6.js} +5 -5
- package/dist/{parser-I6KXEYFK.js → parser-TNYX5S7E.js} +4 -4
- package/dist/{parser-Y6WTBU76.js → parser-UBGPTIZD.js} +3 -3
- package/dist/parser-UGA23PYK.js +14 -0
- package/dist/{parser-N5O4IHUN.js → parser-WISPH7LW.js} +4 -4
- package/dist/{parser-CFZD5IBL.js → parser-XWUDFJ7P.js} +4 -4
- package/dist/parser-ZKF5K2H2.js +15 -0
- package/dist/{parser-ZSDPZYQP.js → parser-ZYC3XGNS.js} +4 -4
- package/dist/{renderer-AWWAF6XD.js → renderer-4IUPINAE.js} +10 -10
- package/dist/renderer-6L3NBEY5.js +24 -0
- package/dist/{renderer-ZRNG54CW.js → renderer-6T3KK4S3.js} +11 -11
- package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
- package/dist/{renderer-6EEZHMH4.js → renderer-A5VFZQQK.js} +9 -9
- package/dist/{renderer-5MYBMBYO.js → renderer-BB5PREMY.js} +5 -5
- package/dist/{renderer-BYCNMBF7.js → renderer-CGW7QPNA.js} +10 -10
- package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
- package/dist/{renderer-7MVLWWQD.js → renderer-DKESNMU5.js} +9 -9
- package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
- package/dist/{renderer-VACVQYML.js → renderer-LWGJFT3D.js} +8 -8
- package/dist/{renderer-PGX2TKVS.js → renderer-MFJ7HY2H.js} +8 -8
- package/dist/{renderer-B2OMQIQG.js → renderer-MJDDU27W.js} +15 -15
- package/dist/{renderer-4JHRUBE6.js → renderer-QL5KO6SK.js} +10 -10
- package/dist/{renderer-W4M6QLIJ.js → renderer-QNHUXCRL.js} +14 -14
- package/dist/{renderer-ZGNTUWC4.js → renderer-ROV756WT.js} +8 -8
- package/dist/{renderer-YY2OSF6E.js → renderer-SQ3JUAI7.js} +9 -9
- package/dist/renderer-THD6V5TL.js +22 -0
- package/dist/{renderer-5NDVNDAZ.js → renderer-TPIBXNOS.js} +9 -9
- package/dist/{renderer-RPOA5YPZ.js → renderer-TYXRHMRI.js} +13 -13
- package/dist/{renderer-N43WR5GV.js → renderer-UZF3JROD.js} +11 -11
- package/dist/{renderer-6W5462RB.js → renderer-V3JEMWMM.js} +9 -9
- package/dist/{renderer-JGBKUCZD.js → renderer-VFUVRNLK.js} +4 -4
- package/dist/{renderer-Z7I3W2PP.js → renderer-VICQ4WNY.js} +8 -8
- package/dist/renderer-W5RMOURB.js +21 -0
- package/dist/renderer-XEKIRPI6.js +23 -0
- package/dist/{renderer-CLJHQPBJ.js → renderer-YHXPN3GF.js} +12 -12
- package/dist/renderer-radial-MHO2VDXN.js +21 -0
- package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
- package/dist/{state-parser-Z2V23ATR.js → state-parser-RX3GXOIB.js} +4 -4
- package/dist/{state-renderer-B4DQBM6M.js → state-renderer-AJUKGNWU.js} +9 -9
- package/docs/ai-integration.md +8 -3
- package/docs/language-reference.md +179 -5
- package/gallery/fixtures/family.dgmo +23 -0
- package/gallery/fixtures/sketch.dgmo +22 -0
- package/package.json +1 -1
- package/dist/chunk-ODZVHU3R.js +0 -153
- package/dist/dgmo-router-X35VLZLM.js +0 -73
- package/dist/dimensions-J3FHIMJ6.js +0 -22
- package/dist/layout-5T6RH5M6.js +0 -14
- package/dist/layout-G23F7LDH.js +0 -9
- package/dist/layout-OB3RI63S.js +0 -14
- package/dist/parser-JAL2HD4I.js +0 -13
- package/dist/renderer-SMIBCRVB.js +0 -24
- package/dist/renderer-radial-C32GPJQ7.js +0 -21
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
## 0. AI Core
|
|
44
44
|
|
|
45
|
-
The universal core: the cross-cutting anti-patterns (highest value per token) and the one-line index of all
|
|
45
|
+
The universal core: the cross-cutting anti-patterns (highest value per token) and the one-line index of all 46 chart types. The blocks below are machine-extracted (HTML-comment anchors) and embedded verbatim into every AI surface — IDE rule files, the Claude skill, the CLAUDE.md snippet — by `scripts/gen-ai-core.mjs`. Edit them here; never hand-edit a generated surface.
|
|
46
46
|
|
|
47
47
|
<!-- AI-CORE:ANTIPATTERNS start -->
|
|
48
48
|
### Disambiguation — where DGMO diverges from LLM priors
|
|
@@ -101,7 +101,7 @@ Valid markup is the floor, not the goal. A good diagram reads at a glance. Apply
|
|
|
101
101
|
<!-- AI-CORE:STYLING end -->
|
|
102
102
|
|
|
103
103
|
<!-- AI-CORE:TYPE-INDEX start -->
|
|
104
|
-
### Chart-type index (
|
|
104
|
+
### Chart-type index (45) — pick the type, then fetch its section
|
|
105
105
|
|
|
106
106
|
| id | when to use |
|
|
107
107
|
| -- | ----------- |
|
|
@@ -116,6 +116,7 @@ Valid markup is the floor, not the goal. A good diagram reads at a glance. Apply
|
|
|
116
116
|
| `sitemap` | site / app navigation structure |
|
|
117
117
|
| `mindmap` | radial hierarchy of ideas from a central topic |
|
|
118
118
|
| `org` | reporting hierarchy |
|
|
119
|
+
| `family` | family tree / genealogy: unions (couples), children, remarriage, adoption, GEDCOM-style metadata |
|
|
119
120
|
| `kanban` | task-board columns |
|
|
120
121
|
| `gantt` | project scheduling with task dependencies and milestones |
|
|
121
122
|
| `pert` | project network with three-point estimates and critical path |
|
|
@@ -123,6 +124,7 @@ Valid markup is the floor, not the goal. A good diagram reads at a glance. Apply
|
|
|
123
124
|
| `version-control` | git / version-control branch-and-merge graph: commits, branches, merges, rebase, HEAD and remote-tracking (gitGraph-style) |
|
|
124
125
|
| `timeline` | events, eras, and date ranges |
|
|
125
126
|
| `event-line` | annotated narrative timeline — events on a line with descriptions, optionally not to scale (NOT the date-scaled `timeline`) |
|
|
127
|
+
| `body` | human anatomy figure annotated by muscle name — for medical, exercise, and educational diagrams |
|
|
126
128
|
| `journey-map` | UX flow with emotion scores, phases, annotations |
|
|
127
129
|
| `cycle` | cyclical process (PDCA, OODA, DevOps loops) |
|
|
128
130
|
| `raci` | tasks × roles responsibility matrix; variant (RACI / RASCI / DACI) is inferred from the markers used |
|
|
@@ -132,6 +134,7 @@ Valid markup is the floor, not the goal. A good diagram reads at a glance. Apply
|
|
|
132
134
|
| `ring` | concentric rings of nested categories |
|
|
133
135
|
| `treemap` | nested rectangles sized by value (budgets, disk usage, portfolios) |
|
|
134
136
|
| `block` | author-controlled grid of nested, collapsible blocks (system / architecture layouts) |
|
|
137
|
+
| `sketch` | GUI-first free-placement canvas: uniform shapes on a snap grid, arrows, tags (markup is app-generated) |
|
|
135
138
|
| `map` | geographic concept map: regions, points, routes |
|
|
136
139
|
| `wireframe` | low-fidelity UI layout with panels and controls |
|
|
137
140
|
| `bar` | categorical comparisons (multi-series via `stack` / `group`) |
|
|
@@ -1710,6 +1713,51 @@ See spec §13A for full date-anchoring semantics, S-curve axes, and diagnostic c
|
|
|
1710
1713
|
|
|
1711
1714
|
---
|
|
1712
1715
|
|
|
1716
|
+
## 13AA. Family Diagrams (genealogy)
|
|
1717
|
+
|
|
1718
|
+
<!-- TYPE:family -->
|
|
1719
|
+
|
|
1720
|
+
<!-- TIPS start -->
|
|
1721
|
+
**Styling tips:** Declare a person once with full metadata (`Anne b: 1665, sex: f`), then reference the bare name in union lines — don't repeat metadata. Model couples with the union line `A + B m: <year>` and indent children beneath it; reuse a name in a new union line for remarriage. The **legend** is the guaranteed sex channel (blue/purple sit close in hue and desaturate under the 25% tint) — where color-vision matters, add a `tag` group for the distinction you care about.
|
|
1722
|
+
<!-- TIPS end -->
|
|
1723
|
+
|
|
1724
|
+
### Declaration
|
|
1725
|
+
|
|
1726
|
+
```
|
|
1727
|
+
family [Title]
|
|
1728
|
+
```
|
|
1729
|
+
|
|
1730
|
+
### Unions, children, remarriage
|
|
1731
|
+
|
|
1732
|
+
A **union line** joins a couple with `+`; children are indented beneath it. Union-level metadata is only `m` (marriage year). Reuse a name to remarry; a lone person with indented children is a single parent.
|
|
1733
|
+
|
|
1734
|
+
```dgmo
|
|
1735
|
+
family The Rackham Line
|
|
1736
|
+
|
|
1737
|
+
Elizabeth Swann b: 1687, sex: f, occupation: Pirate King
|
|
1738
|
+
"Will Turner" b: 1685, sex: m
|
|
1739
|
+
|
|
1740
|
+
Elizabeth Swann + "Will Turner" m: 1729
|
|
1741
|
+
Henry Turner sex: m
|
|
1742
|
+
|
|
1743
|
+
Henry Turner + Carina Smyth m: 1751
|
|
1744
|
+
Joshamee sex: m
|
|
1745
|
+
Anna adopted, sex: f
|
|
1746
|
+
```
|
|
1747
|
+
|
|
1748
|
+
- **Person metadata** (fixed GEDCOM-flavored keys): `sex` (`m`/`f` → node color), `b`/`d` (birth/death year → a year-range row), `bp`/`dp` (birth/death place), `occupation`, `military`, `education`, `religion`, `burial`. Union-level: `m`. Unknown keys warn.
|
|
1749
|
+
- **Adoption:** a bare `adopted` token on a child line draws a dashed drop edge. A person literally named "Adopted" must be quoted.
|
|
1750
|
+
- **Divorce:** a bare `divorced` token on a union line (`A + B m: 1980 divorced`) draws a dashed marriage bar; children still attach.
|
|
1751
|
+
- **Deceased:** a person with a death year (`d:`) is auto-marked with a muted dagger (†) — derived, no syntax; add `no-daggers` to hide it.
|
|
1752
|
+
- **Children** are auto-ordered eldest→left by birth year (`b:`); undated children keep declaration order.
|
|
1753
|
+
- **Unknown/private person:** a bare `?` renders a faint, solid-bordered, name-only placeholder card; each `?` is a distinct person.
|
|
1754
|
+
- **`generations`** (option): draws a left gutter of Roman-numeral generation labels (`Gen I`, `Gen II`, …) plus subtle zebra shading behind alternating generations.
|
|
1755
|
+
- **`highlight <name>`** (directive): dims everyone outside that person's bloodline (ancestors + descendants + spouses stay lit).
|
|
1756
|
+
- **Sex → color:** `sex: m` → blue, `sex: f` → purple, unset → gray (25% tint). An explicit `tag`/inline color overrides the sex color.
|
|
1757
|
+
- The union split cuts `m:` metadata first, THEN splits ` + ` within the name region — so a `+` inside a quoted name (`"Anne + Jack"`) or a metadata value never mis-splits. Per-side `key: value` metadata on a union line is not supported — declare the person standalone.
|
|
1758
|
+
|
|
1759
|
+
---
|
|
1760
|
+
|
|
1713
1761
|
## 13B. Swimlane Diagrams
|
|
1714
1762
|
|
|
1715
1763
|
<!-- TYPE:swimlane -->
|
|
@@ -2170,18 +2218,18 @@ no-center-total // pie: hide the center total (shown by default when `h
|
|
|
2170
2218
|
|
|
2171
2219
|
- `no-name` — hide name (segment / point / cell / node / set)
|
|
2172
2220
|
- `no-value` — hide numeric value
|
|
2173
|
-
- `no-percent` — hide share-of-total
|
|
2221
|
+
- `no-percent` — hide the percentage (share-of-total on pie-family; stage-over-stage conversion on funnel)
|
|
2174
2222
|
|
|
2175
2223
|
Each chart honors the subset of flags that has a renderable atom on it:
|
|
2176
2224
|
|
|
2177
2225
|
- pie / polar-area: all three
|
|
2178
|
-
- funnel:
|
|
2226
|
+
- funnel: all three (`no-percent` hides the conversion %)
|
|
2179
2227
|
- bar / line / radar: `no-value`
|
|
2180
2228
|
- scatter: `no-name`
|
|
2181
2229
|
- heatmap: `no-value`
|
|
2182
2230
|
- sankey, arc, slope, quadrant, venn: name-suppression deferred — names render by default and cannot yet be hidden
|
|
2183
2231
|
|
|
2184
|
-
`no-percent` on a
|
|
2232
|
+
`no-percent` on a chart with no percent atom is silently ignored. Cartesian charts (bar, line) render values on each bar / point by default.
|
|
2185
2233
|
|
|
2186
2234
|
**Eras (line only):**
|
|
2187
2235
|
|
|
@@ -2331,6 +2379,8 @@ Signups 800
|
|
|
2331
2379
|
Purchases 200
|
|
2332
2380
|
```
|
|
2333
2381
|
|
|
2382
|
+
Each stage renders its name to the left of the band (in the band's color), its value centered inside the band (falling back beside it when the band is too narrow), and a muted stage-over-stage conversion % to the right — no leader lines. The first stage has no % (nothing to convert from). `no-percent` hides the conversion %; `no-name` / `no-value` hide the other parts.
|
|
2383
|
+
|
|
2334
2384
|
---
|
|
2335
2385
|
|
|
2336
2386
|
## 17. Visualizations
|
|
@@ -2471,6 +2521,53 @@ Group a run of events into a labeled section with a `[Name]` bracket, then **ind
|
|
|
2471
2521
|
- `no-box` — card-less style for slides: a tag-colored label, a rule, and the description below (no box / fill / border).
|
|
2472
2522
|
- `no-legend` — hide the tag legend.
|
|
2473
2523
|
|
|
2524
|
+
### 16.4C Body Diagrams
|
|
2525
|
+
|
|
2526
|
+
<!-- TYPE:body -->
|
|
2527
|
+
|
|
2528
|
+
<!-- TIPS start -->
|
|
2529
|
+
**Styling tips:** a body diagram is a human figure you annotate by muscle name — for workout splits, PT/rehab, and anatomy teaching. Name the muscles you care about, color them by intensity/severity with a tag group, and add a short note beneath each for the exercise or finding. Keep to the muscles that matter; the rest stay a neutral gray so the highlighted ones read at a glance.
|
|
2530
|
+
<!-- TIPS end -->
|
|
2531
|
+
|
|
2532
|
+
**Figures:** male and female, front and back — four figures. `skin` form renders any figure as a plain silhouette (with head + hair) instead of the segmented muscle map. `skeletal` is reserved.
|
|
2533
|
+
|
|
2534
|
+
#### Declaration
|
|
2535
|
+
|
|
2536
|
+
```
|
|
2537
|
+
body [Title]
|
|
2538
|
+
```
|
|
2539
|
+
|
|
2540
|
+
#### Form / sex / view (bare directives)
|
|
2541
|
+
|
|
2542
|
+
Set the figure with bare directives before the parts: `muscle` (default) or `skin`; `male` (default) or `female`; `front` (default) or `back`. Each is optional. **Name both `front` and `back`** to render the two views side by side in one diagram — a part is drawn on whichever view(s) contain it (`chest` on front, `lats` on back, `deltoids`/`calves` on both).
|
|
2543
|
+
|
|
2544
|
+
#### Parts
|
|
2545
|
+
|
|
2546
|
+
A bare line is a **catalog muscle name**, in any order, with optional trailing tag metadata and an indented body note. Names accept gym shorthand or formal anatomy (`pecs` / `pectoralis-major` → `chest`; `quads` → `quadriceps`).
|
|
2547
|
+
|
|
2548
|
+
```
|
|
2549
|
+
body Push Day
|
|
2550
|
+
muscle
|
|
2551
|
+
|
|
2552
|
+
tag Effort as e
|
|
2553
|
+
Primary red
|
|
2554
|
+
Secondary orange
|
|
2555
|
+
|
|
2556
|
+
chest e: Primary
|
|
2557
|
+
Barbell bench press — 4×8
|
|
2558
|
+
deltoids e: Primary
|
|
2559
|
+
triceps e: Secondary
|
|
2560
|
+
abs e: Secondary
|
|
2561
|
+
```
|
|
2562
|
+
|
|
2563
|
+
- **Part** — a catalog name for the active figure. Front: `chest`, `deltoids`, `biceps`, `triceps`, `abs`, `obliques`, `trapezius`, `forearm`, `quadriceps`, `adductors`, `calves`, `tibialis`. Back: `lats`, `trapezius`, `rear-delts`, `triceps`, `lower-back`, `glutes`, `hamstring`, `calves`, `forearm`. Fine heads (`vastus-lateralis`, `serratus-anterior`, `biceps-femoris`, …) and gym/anatomical aliases (`pecs`/`pectoralis-major`→chest, `quads`→quadriceps, `glutes`→gluteal) both resolve. Unknown names warn.
|
|
2564
|
+
- **Tag** — trailing same-line metadata (`e: Primary`); colors the highlighted muscle, its leader, and its label.
|
|
2565
|
+
- **Note** — bare indented body line (like `pyramid`/`ring`); the first note prints beneath the muscle's gutter label.
|
|
2566
|
+
|
|
2567
|
+
#### Options
|
|
2568
|
+
|
|
2569
|
+
- `no-legend` — hide the tag legend.
|
|
2570
|
+
|
|
2474
2571
|
### 16.4B Version-Control Diagrams
|
|
2475
2572
|
|
|
2476
2573
|
<!-- TYPE:version-control -->
|
|
@@ -3528,6 +3625,83 @@ In the desktop app a block diagram is interactive: click a container header to c
|
|
|
3528
3625
|
|
|
3529
3626
|
---
|
|
3530
3627
|
|
|
3628
|
+
## 24E. Sketch Diagrams
|
|
3629
|
+
|
|
3630
|
+
<!-- TYPE:sketch -->
|
|
3631
|
+
|
|
3632
|
+
<!-- TIPS start -->
|
|
3633
|
+
**Styling tips:** Sketch is a **GUI-authored format** — the desktop/web canvas editor generates this markup, and hand-writing it is the exception. If you generate it anyway: keep it SMALL (sketches read best under ~15 shapes), use integer `at:` coordinates on the half-slot lattice with shapes at least 2 half-slots apart on one axis — or simply **omit `at:` everywhere** and let flow placement arrange rows (the safest generator path). Alias any shape an edge references (`as con`). Never write `size:`, colors, fonts, or a `shape:` outside the closed 7-kind set. In sketch, `~` dashed means **secondary emphasis, NOT async** — don't carry infra's async reading over. Categorize with a tag group (named palette colors only) instead of reaching for more shape kinds — kind-of-thing is meaning, and meaning lives in tags. Malformed coordinates never break a render (overlaps auto-resolve with a warning), but tidy input diffs better.
|
|
3634
|
+
<!-- TIPS end -->
|
|
3635
|
+
|
|
3636
|
+
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.
|
|
3637
|
+
|
|
3638
|
+
### Declaration
|
|
3639
|
+
|
|
3640
|
+
```
|
|
3641
|
+
sketch [Title]
|
|
3642
|
+
```
|
|
3643
|
+
|
|
3644
|
+
### Example
|
|
3645
|
+
|
|
3646
|
+
```
|
|
3647
|
+
sketch Plunder Pipeline
|
|
3648
|
+
|
|
3649
|
+
tag Crew
|
|
3650
|
+
Deck
|
|
3651
|
+
Hold
|
|
3652
|
+
|
|
3653
|
+
Spyglass Feed shape: cloud, at: 0 0, crew: Deck
|
|
3654
|
+
-sightings-> con
|
|
3655
|
+
Captain's Console as con at: 2 0, crew: Deck
|
|
3656
|
+
-orders-> bq
|
|
3657
|
+
Divvy Service as dvy at: 4 0, crew: Hold
|
|
3658
|
+
|
|
3659
|
+
[Below Decks] at: 2 2, crew: Hold
|
|
3660
|
+
Booty Queue as bq shape: queue, at: 0 0
|
|
3661
|
+
~haul~> dvy
|
|
3662
|
+
Ship Ledger as ledger shape: database, at: 2 0
|
|
3663
|
+
|
|
3664
|
+
[Armory] as armory at: 0 2, collapsed
|
|
3665
|
+
Powder Store at: 0 0
|
|
3666
|
+
```
|
|
3667
|
+
|
|
3668
|
+
### Shapes
|
|
3669
|
+
|
|
3670
|
+
One top-level line = one shape — a **bare name** plus same-line `key: value` metadata. `shape:` morphs from the default rectangle: `database`, `queue`, `cloud`, `person`, `document`, `note` (rectangle is never written; unknown values warn and fall back). `note` renders as a sticky-style card with smaller left-aligned multiline text. Duplicate labels are legal **when aliased** (`Cache as c1` / `Cache as c2`); unaliased duplicates merge (standard dgmo semantics).
|
|
3671
|
+
|
|
3672
|
+
### Coordinates — `at: C R`
|
|
3673
|
+
|
|
3674
|
+
Integer **half-slot steps** (a slot = one footprint + the mandatory gap), origin-normalized; box children are relative to the box origin. `at:` is **optional** — un-positioned shapes flow-place in rows below existing content. Hand-authored overlap auto-resolves with a warning; nothing renders broken.
|
|
3675
|
+
|
|
3676
|
+
### Lines
|
|
3677
|
+
|
|
3678
|
+
Indented under the source shape, targeting an alias (or an unambiguous bare label). Six forms: `-label->` one head · `<-label->` both heads · `-label-` no heads, plus `~` dashed twins. Unlabeled headless lines are `--` / `~~`. No left-pointing arrows — write `B -> A`, never `A <- B`. A tag on the edge tail (`crew: Hold`) colors the line. Both ends must attach.
|
|
3679
|
+
|
|
3680
|
+
### Boxes
|
|
3681
|
+
|
|
3682
|
+
`[Brackets]` = a **box** (labeled group frame) — the only bracket meaning in sketch. Label mandatory; one level only (no nested boxes); taggable (frame tints, cascades to children, individual overrides); bare `collapsed` folds it to a card with the collapse-bar and edges re-target the card. Interactive fold/unfold in the app; static export renders the authored state.
|
|
3683
|
+
|
|
3684
|
+
### Node Metadata
|
|
3685
|
+
|
|
3686
|
+
| Key | Type | Default | Description |
|
|
3687
|
+
| --------- | -------------- | --------- | ----------------------------------------------- |
|
|
3688
|
+
| `shape` | closed set | rectangle | `database` / `queue` / `cloud` / `person` / `document` / `note` |
|
|
3689
|
+
| `at` | `C R` integers | flow-placed | Half-slot position (origin-normalized) |
|
|
3690
|
+
| `collapsed` | flag | — | Box only — start folded (collapse-bar) |
|
|
3691
|
+
| `<tag>` | declared value | untagged (neutral gray) | Tag value (cascades from box; edge tails color the line) |
|
|
3692
|
+
|
|
3693
|
+
### Directives
|
|
3694
|
+
|
|
3695
|
+
| Directive | Effect |
|
|
3696
|
+
| ------------ | ----------------------- |
|
|
3697
|
+
| `no-legend` | Hide the tag legend. |
|
|
3698
|
+
|
|
3699
|
+
### Interactivity vs export
|
|
3700
|
+
|
|
3701
|
+
In the desktop and web app a sketch opens in the **canvas editor** (the code pane hides behind a toggle); boxes fold/unfold interactively. Static SVG / PNG export renders the authored state — the same interactive-vs-export split the map, treemap, and block charts use.
|
|
3702
|
+
|
|
3703
|
+
---
|
|
3704
|
+
|
|
3531
3705
|
## 24A. RACI Matrices (RACI / RASCI / DACI)
|
|
3532
3706
|
|
|
3533
3707
|
<!-- TYPE:raci -->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
family The Rackham Line
|
|
2
|
+
|
|
3
|
+
tag Allegiance as loyalty
|
|
4
|
+
Crown blue
|
|
5
|
+
Brethren red
|
|
6
|
+
|
|
7
|
+
Elizabeth Swann b: 1687, sex: f, occupation: Pirate King, loyalty: Brethren
|
|
8
|
+
"Will Turner" b: 1685, sex: m, occupation: Captain of the Dutchman, loyalty: Brethren
|
|
9
|
+
|
|
10
|
+
Elizabeth Swann + "Will Turner" m: 1729
|
|
11
|
+
Henry Turner b: 1730, sex: m, occupation: Sailor
|
|
12
|
+
|
|
13
|
+
Weatherby Swann + Margaret Smith m: 1685
|
|
14
|
+
Elizabeth Swann
|
|
15
|
+
|
|
16
|
+
Henry Turner + Carina Smyth m: 1751
|
|
17
|
+
Joshamee Turner sex: m
|
|
18
|
+
Anna Turner adopted, sex: f
|
|
19
|
+
|
|
20
|
+
Blackbeard b: 1680, d: 1718, sex: m, occupation: Pirate
|
|
21
|
+
|
|
22
|
+
Blackbeard + ? m: 1700 divorced
|
|
23
|
+
Carina Smyth b: 1731, sex: f
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
sketch Plunder Pipeline
|
|
2
|
+
|
|
3
|
+
tag Crew
|
|
4
|
+
Deck
|
|
5
|
+
Hold
|
|
6
|
+
|
|
7
|
+
Spyglass Feed shape: cloud, at: 0 0, crew: Deck
|
|
8
|
+
-sightings-> con
|
|
9
|
+
Captain's Console as con at: 2 0, crew: Deck
|
|
10
|
+
-orders-> bq
|
|
11
|
+
-supplies-> armory
|
|
12
|
+
Divvy Service as dvy at: 4 0, crew: Hold
|
|
13
|
+
-entries-> ledger
|
|
14
|
+
|
|
15
|
+
[Below Decks] at: 2 2, crew: Hold
|
|
16
|
+
Booty Queue as bq shape: queue, at: 0 0
|
|
17
|
+
~haul~> dvy
|
|
18
|
+
Ship Ledger as ledger shape: database, at: 2 0
|
|
19
|
+
|
|
20
|
+
[Armory] as armory at: 0 2, collapsed
|
|
21
|
+
Powder Store at: 0 0
|
|
22
|
+
Cutlass Rack at: 0 1
|
package/package.json
CHANGED
package/dist/chunk-ODZVHU3R.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
// src/utils/svg-embed.ts
|
|
2
|
-
function normalizeSvgForEmbed(input) {
|
|
3
|
-
let svg = input;
|
|
4
|
-
const rootMatch = svg.match(/<svg[^>]*>/);
|
|
5
|
-
const rootTag = rootMatch?.[0] ?? "";
|
|
6
|
-
if (rootTag && !rootTag.includes("viewBox")) {
|
|
7
|
-
const wh = rootTag.match(/width="(\d+)"[^>]*height="(\d+)"/);
|
|
8
|
-
if (wh) {
|
|
9
|
-
svg = svg.replace(/<svg/, `<svg viewBox="0 0 ${wh[1]} ${wh[2]}"`);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
const tight = computeBBox(svg);
|
|
13
|
-
if (tight && tight.width > 0 && tight.height > 0) {
|
|
14
|
-
const pad = 16;
|
|
15
|
-
const x = tight.x - pad;
|
|
16
|
-
const y = tight.y - pad;
|
|
17
|
-
const w = tight.width + pad * 2;
|
|
18
|
-
const h = tight.height + pad * 2;
|
|
19
|
-
const canvas = readViewBox(svg);
|
|
20
|
-
const TOL = 2;
|
|
21
|
-
const MIN_COVERAGE = 0.5;
|
|
22
|
-
const trustworthy = !canvas || x >= canvas.x - TOL && y >= canvas.y - TOL && x + w <= canvas.x + canvas.width + TOL && y + h <= canvas.y + canvas.height + TOL && w >= canvas.width * MIN_COVERAGE && h >= canvas.height * MIN_COVERAGE;
|
|
23
|
-
if (trustworthy) {
|
|
24
|
-
const vb = `${x} ${y} ${w} ${h}`;
|
|
25
|
-
svg = svg.replace(/(<svg[^>]*?)viewBox="[^"]*"/, `$1viewBox="${vb}"`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
svg = svg.replace(/(<svg[^>]*?) width="[^"]*"/g, "$1");
|
|
29
|
-
svg = svg.replace(/(<svg[^>]*?) height="[^"]*"/g, "$1");
|
|
30
|
-
svg = svg.replace(/<svg\s{2,}/g, "<svg ");
|
|
31
|
-
return svg;
|
|
32
|
-
}
|
|
33
|
-
function getEmbedSvgViewBox(svg) {
|
|
34
|
-
const tight = computeBBox(svg);
|
|
35
|
-
if (!tight || tight.width <= 0 || tight.height <= 0) return null;
|
|
36
|
-
const pad = 16;
|
|
37
|
-
return {
|
|
38
|
-
x: tight.x - pad,
|
|
39
|
-
y: tight.y - pad,
|
|
40
|
-
width: tight.width + pad * 2,
|
|
41
|
-
height: tight.height + pad * 2
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function readViewBox(svg) {
|
|
45
|
-
const m = svg.match(/<svg[^>]*?\bviewBox="([^"]+)"/);
|
|
46
|
-
if (!m) return null;
|
|
47
|
-
const n = m[1].trim().split(/[\s,]+/).map(Number);
|
|
48
|
-
if (n.length !== 4 || n.some((v) => !Number.isFinite(v)) || n[2] <= 0 || n[3] <= 0)
|
|
49
|
-
return null;
|
|
50
|
-
return { x: n[0], y: n[1], width: n[2], height: n[3] };
|
|
51
|
-
}
|
|
52
|
-
function computeBBox(svg) {
|
|
53
|
-
const xs = [];
|
|
54
|
-
const ys = [];
|
|
55
|
-
function push(x, y) {
|
|
56
|
-
if (Number.isFinite(x) && Number.isFinite(y)) {
|
|
57
|
-
xs.push(x);
|
|
58
|
-
ys.push(y);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function attr(tag, name) {
|
|
62
|
-
const m = tag.match(new RegExp(`\\b${name}="([^"]*)"`));
|
|
63
|
-
if (!m) return null;
|
|
64
|
-
const n = parseFloat(m[1]);
|
|
65
|
-
return Number.isFinite(n) ? n : null;
|
|
66
|
-
}
|
|
67
|
-
for (const m of svg.matchAll(/<rect\b[^>]*?\/?>/g)) {
|
|
68
|
-
const tag = m[0];
|
|
69
|
-
const x = attr(tag, "x");
|
|
70
|
-
const y = attr(tag, "y");
|
|
71
|
-
const w = attr(tag, "width");
|
|
72
|
-
const h = attr(tag, "height");
|
|
73
|
-
if (x !== null && y !== null && w !== null && h !== null) {
|
|
74
|
-
push(x, y);
|
|
75
|
-
push(x + w, y + h);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
for (const m of svg.matchAll(/<line\b[^>]*?\/?>/g)) {
|
|
79
|
-
const tag = m[0];
|
|
80
|
-
const x1 = attr(tag, "x1");
|
|
81
|
-
const y1 = attr(tag, "y1");
|
|
82
|
-
const x2 = attr(tag, "x2");
|
|
83
|
-
const y2 = attr(tag, "y2");
|
|
84
|
-
if (x1 !== null && y1 !== null && x2 !== null && y2 !== null) {
|
|
85
|
-
push(x1, y1);
|
|
86
|
-
push(x2, y2);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
for (const m of svg.matchAll(/<circle\b[^>]*?\/?>/g)) {
|
|
90
|
-
const tag = m[0];
|
|
91
|
-
const cx = attr(tag, "cx");
|
|
92
|
-
const cy = attr(tag, "cy");
|
|
93
|
-
const r = attr(tag, "r");
|
|
94
|
-
if (cx !== null && cy !== null && r !== null) {
|
|
95
|
-
push(cx - r, cy - r);
|
|
96
|
-
push(cx + r, cy + r);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
for (const m of svg.matchAll(/<ellipse\b[^>]*?\/?>/g)) {
|
|
100
|
-
const tag = m[0];
|
|
101
|
-
const cx = attr(tag, "cx");
|
|
102
|
-
const cy = attr(tag, "cy");
|
|
103
|
-
const rx = attr(tag, "rx");
|
|
104
|
-
const ry = attr(tag, "ry");
|
|
105
|
-
if (cx !== null && cy !== null && rx !== null && ry !== null) {
|
|
106
|
-
push(cx - rx, cy - ry);
|
|
107
|
-
push(cx + rx, cy + ry);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
for (const m of svg.matchAll(/<text\b([^>]*?)>([\s\S]*?)<\/text>/g)) {
|
|
111
|
-
const tag = `<text${m[1]}>`;
|
|
112
|
-
const text = m[2].replace(/<[^>]+>/g, "");
|
|
113
|
-
const x = attr(tag, "x");
|
|
114
|
-
const y = attr(tag, "y");
|
|
115
|
-
if (x !== null && y !== null) {
|
|
116
|
-
const w = text.length * 7;
|
|
117
|
-
const anchor = tag.match(/\btext-anchor="([^"]*)"/)?.[1] ?? "start";
|
|
118
|
-
const left = anchor === "middle" ? x - w / 2 : anchor === "end" ? x - w : x;
|
|
119
|
-
const right = anchor === "middle" ? x + w / 2 : anchor === "end" ? x : x + w;
|
|
120
|
-
push(left, y - 14);
|
|
121
|
-
push(right, y + 4);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
for (const m of svg.matchAll(/<path\b[^>]*?\bd="([^"]+)"/g)) {
|
|
125
|
-
const d = m[1];
|
|
126
|
-
const nums = d.match(/-?\d+(?:\.\d+)?/g);
|
|
127
|
-
if (!nums) continue;
|
|
128
|
-
for (let i = 0; i + 1 < nums.length; i += 2) {
|
|
129
|
-
push(parseFloat(nums[i]), parseFloat(nums[i + 1]));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
for (const m of svg.matchAll(
|
|
133
|
-
/<(?:polygon|polyline)\b[^>]*?\bpoints="([^"]+)"/g
|
|
134
|
-
)) {
|
|
135
|
-
const nums = m[1].match(/-?\d+(?:\.\d+)?/g);
|
|
136
|
-
if (!nums) continue;
|
|
137
|
-
for (let i = 0; i + 1 < nums.length; i += 2) {
|
|
138
|
-
push(parseFloat(nums[i]), parseFloat(nums[i + 1]));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (xs.length === 0 || ys.length === 0) return null;
|
|
142
|
-
const minX = Math.min(...xs);
|
|
143
|
-
const maxX = Math.max(...xs);
|
|
144
|
-
const minY = Math.min(...ys);
|
|
145
|
-
const maxY = Math.max(...ys);
|
|
146
|
-
return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export {
|
|
150
|
-
normalizeSvgForEmbed,
|
|
151
|
-
getEmbedSvgViewBox
|
|
152
|
-
};
|
|
153
|
-
//# sourceMappingURL=chunk-ODZVHU3R.js.map
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CHART_TYPE_DESCRIPTIONS,
|
|
3
|
-
chartTypeParsers,
|
|
4
|
-
getAllChartTypes,
|
|
5
|
-
getRenderCategory,
|
|
6
|
-
isExtendedChartType,
|
|
7
|
-
knownChartTypeIds,
|
|
8
|
-
looksLikeC4,
|
|
9
|
-
looksLikeGantt,
|
|
10
|
-
parseDgmo,
|
|
11
|
-
parseDgmoChartType
|
|
12
|
-
} from "./chunk-HSH73DP6.js";
|
|
13
|
-
import "./chunk-P235SVAH.js";
|
|
14
|
-
import "./chunk-6HO5ZTXK.js";
|
|
15
|
-
import "./chunk-44CM72SQ.js";
|
|
16
|
-
import "./chunk-76OWZ3BA.js";
|
|
17
|
-
import "./chunk-MO5YHHMQ.js";
|
|
18
|
-
import "./chunk-WCSOJFU3.js";
|
|
19
|
-
import "./chunk-7JEGTRLD.js";
|
|
20
|
-
import "./chunk-NNAAJVBU.js";
|
|
21
|
-
import "./chunk-RYEGFMUO.js";
|
|
22
|
-
import "./chunk-33LCUH4H.js";
|
|
23
|
-
import "./chunk-XAKEUMEJ.js";
|
|
24
|
-
import "./chunk-BUPDIHML.js";
|
|
25
|
-
import "./chunk-DKEPS5LH.js";
|
|
26
|
-
import "./chunk-BUVJFRPY.js";
|
|
27
|
-
import "./chunk-WVAJFAIA.js";
|
|
28
|
-
import "./chunk-EB6FPQUP.js";
|
|
29
|
-
import "./chunk-EVCVDTXE.js";
|
|
30
|
-
import "./chunk-NURGB5Z4.js";
|
|
31
|
-
import "./chunk-L66GEFB6.js";
|
|
32
|
-
import "./chunk-RVMRZAPB.js";
|
|
33
|
-
import "./chunk-AN2MOO5T.js";
|
|
34
|
-
import "./chunk-RTLBSQ3G.js";
|
|
35
|
-
import "./chunk-L3UHP6TD.js";
|
|
36
|
-
import "./chunk-USZW2HHU.js";
|
|
37
|
-
import "./chunk-5QXL4NYS.js";
|
|
38
|
-
import "./chunk-GMR5MFHJ.js";
|
|
39
|
-
import "./chunk-ERLBPDGU.js";
|
|
40
|
-
import "./chunk-AELOBFW5.js";
|
|
41
|
-
import "./chunk-B65G5DNL.js";
|
|
42
|
-
import "./chunk-IYULMRBE.js";
|
|
43
|
-
import "./chunk-R3XI2VC7.js";
|
|
44
|
-
import "./chunk-P6T66CCZ.js";
|
|
45
|
-
import "./chunk-SML67VPV.js";
|
|
46
|
-
import "./chunk-C3Z4DX3V.js";
|
|
47
|
-
import "./chunk-QLCCJEJI.js";
|
|
48
|
-
import "./chunk-LIOHW36Z.js";
|
|
49
|
-
import "./chunk-I46X5VUA.js";
|
|
50
|
-
import "./chunk-3MQQNXPD.js";
|
|
51
|
-
import "./chunk-NXMESY4J.js";
|
|
52
|
-
import "./chunk-RUNNI6VE.js";
|
|
53
|
-
import "./chunk-5MLYVTYM.js";
|
|
54
|
-
import "./chunk-FMDSF3OV.js";
|
|
55
|
-
import "./chunk-FFUN5D66.js";
|
|
56
|
-
import "./chunk-NOTA6TEI.js";
|
|
57
|
-
import "./chunk-Y3J7VR52.js";
|
|
58
|
-
import "./chunk-TLVIHFRO.js";
|
|
59
|
-
import "./chunk-CXK4DZH3.js";
|
|
60
|
-
import "./chunk-5WRI5ZAA.js";
|
|
61
|
-
export {
|
|
62
|
-
CHART_TYPE_DESCRIPTIONS,
|
|
63
|
-
chartTypeParsers,
|
|
64
|
-
getAllChartTypes,
|
|
65
|
-
getRenderCategory,
|
|
66
|
-
isExtendedChartType,
|
|
67
|
-
knownChartTypeIds,
|
|
68
|
-
looksLikeC4,
|
|
69
|
-
looksLikeGantt,
|
|
70
|
-
parseDgmo,
|
|
71
|
-
parseDgmoChartType
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=dgmo-router-X35VLZLM.js.map
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
mapContentAspect,
|
|
3
|
-
mapExportDimensions
|
|
4
|
-
} from "./chunk-CKNVO24D.js";
|
|
5
|
-
import "./chunk-IPWPWM6R.js";
|
|
6
|
-
import "./chunk-I5IGB56C.js";
|
|
7
|
-
import "./chunk-PBAHEPLQ.js";
|
|
8
|
-
import "./chunk-YAA6IID3.js";
|
|
9
|
-
import "./chunk-A4GOY3PE.js";
|
|
10
|
-
import "./chunk-QOOUC2J5.js";
|
|
11
|
-
import "./chunk-WCT3NYCV.js";
|
|
12
|
-
import "./chunk-P6T66CCZ.js";
|
|
13
|
-
import "./chunk-QLCCJEJI.js";
|
|
14
|
-
import "./chunk-Y3J7VR52.js";
|
|
15
|
-
import "./chunk-TLVIHFRO.js";
|
|
16
|
-
import "./chunk-CXK4DZH3.js";
|
|
17
|
-
import "./chunk-5WRI5ZAA.js";
|
|
18
|
-
export {
|
|
19
|
-
mapContentAspect,
|
|
20
|
-
mapExportDimensions
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=dimensions-J3FHIMJ6.js.map
|
package/dist/layout-5T6RH5M6.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
layoutSitemap
|
|
3
|
-
} from "./chunk-6SM5NJQH.js";
|
|
4
|
-
import "./chunk-QOOUC2J5.js";
|
|
5
|
-
import "./chunk-WCT3NYCV.js";
|
|
6
|
-
import "./chunk-QLCCJEJI.js";
|
|
7
|
-
import "./chunk-Y3J7VR52.js";
|
|
8
|
-
import "./chunk-TLVIHFRO.js";
|
|
9
|
-
import "./chunk-CXK4DZH3.js";
|
|
10
|
-
import "./chunk-5WRI5ZAA.js";
|
|
11
|
-
export {
|
|
12
|
-
layoutSitemap
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=layout-5T6RH5M6.js.map
|
package/dist/layout-G23F7LDH.js
DELETED
package/dist/layout-OB3RI63S.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
layoutOrg
|
|
3
|
-
} from "./chunk-J5FIXQRT.js";
|
|
4
|
-
import "./chunk-QOOUC2J5.js";
|
|
5
|
-
import "./chunk-WCT3NYCV.js";
|
|
6
|
-
import "./chunk-QLCCJEJI.js";
|
|
7
|
-
import "./chunk-Y3J7VR52.js";
|
|
8
|
-
import "./chunk-TLVIHFRO.js";
|
|
9
|
-
import "./chunk-CXK4DZH3.js";
|
|
10
|
-
import "./chunk-5WRI5ZAA.js";
|
|
11
|
-
export {
|
|
12
|
-
layoutOrg
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=layout-OB3RI63S.js.map
|
package/dist/parser-JAL2HD4I.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
parseEventLine
|
|
3
|
-
} from "./chunk-5QXL4NYS.js";
|
|
4
|
-
import "./chunk-GMR5MFHJ.js";
|
|
5
|
-
import "./chunk-QLCCJEJI.js";
|
|
6
|
-
import "./chunk-Y3J7VR52.js";
|
|
7
|
-
import "./chunk-TLVIHFRO.js";
|
|
8
|
-
import "./chunk-CXK4DZH3.js";
|
|
9
|
-
import "./chunk-5WRI5ZAA.js";
|
|
10
|
-
export {
|
|
11
|
-
parseEventLine
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=parser-JAL2HD4I.js.map
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
renderMap,
|
|
3
|
-
renderMapForExport
|
|
4
|
-
} from "./chunk-Z5CGSFJB.js";
|
|
5
|
-
import "./chunk-IPWPWM6R.js";
|
|
6
|
-
import "./chunk-I5IGB56C.js";
|
|
7
|
-
import "./chunk-PBAHEPLQ.js";
|
|
8
|
-
import "./chunk-PWIHZ6NJ.js";
|
|
9
|
-
import "./chunk-YAA6IID3.js";
|
|
10
|
-
import "./chunk-A4GOY3PE.js";
|
|
11
|
-
import "./chunk-6KFWC4CO.js";
|
|
12
|
-
import "./chunk-QOOUC2J5.js";
|
|
13
|
-
import "./chunk-WCT3NYCV.js";
|
|
14
|
-
import "./chunk-P6T66CCZ.js";
|
|
15
|
-
import "./chunk-QLCCJEJI.js";
|
|
16
|
-
import "./chunk-Y3J7VR52.js";
|
|
17
|
-
import "./chunk-TLVIHFRO.js";
|
|
18
|
-
import "./chunk-CXK4DZH3.js";
|
|
19
|
-
import "./chunk-5WRI5ZAA.js";
|
|
20
|
-
export {
|
|
21
|
-
renderMap,
|
|
22
|
-
renderMapForExport
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=renderer-SMIBCRVB.js.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
renderTreemapRadial,
|
|
3
|
-
renderTreemapRadialForExport
|
|
4
|
-
} from "./chunk-ULOEATBZ.js";
|
|
5
|
-
import "./chunk-IZMRON6C.js";
|
|
6
|
-
import "./chunk-PWIHZ6NJ.js";
|
|
7
|
-
import "./chunk-YAA6IID3.js";
|
|
8
|
-
import "./chunk-6KFWC4CO.js";
|
|
9
|
-
import "./chunk-QOOUC2J5.js";
|
|
10
|
-
import "./chunk-WCT3NYCV.js";
|
|
11
|
-
import "./chunk-P6T66CCZ.js";
|
|
12
|
-
import "./chunk-QLCCJEJI.js";
|
|
13
|
-
import "./chunk-Y3J7VR52.js";
|
|
14
|
-
import "./chunk-TLVIHFRO.js";
|
|
15
|
-
import "./chunk-CXK4DZH3.js";
|
|
16
|
-
import "./chunk-5WRI5ZAA.js";
|
|
17
|
-
export {
|
|
18
|
-
renderTreemapRadial,
|
|
19
|
-
renderTreemapRadialForExport
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=renderer-radial-C32GPJQ7.js.map
|