@diagrammo/dgmo 0.53.0 → 0.55.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 +112 -9
- package/dist/advanced.js +188 -160
- package/dist/auto.js +147 -132
- package/dist/auto.mjs +2352 -746
- package/dist/block.js +65 -62
- package/dist/chart-meta.js +52 -49
- package/dist/{charts-d3-DH2XA45I.js → charts-d3-KZ6V4OP2.js} +10 -8
- package/dist/chunk-2CW5ZTNH.js +58 -0
- package/dist/{chunk-MA3HJZHB.js → chunk-2HX6ZGY7.js} +7 -7
- package/dist/{chunk-YG2BEIQU.js → chunk-2R6HG6D5.js} +11 -11
- package/dist/{chunk-65V6IRFN.js → chunk-2ZJXKJSI.js} +106 -60
- package/dist/{chunk-PYO4TJJ3.js → chunk-32HUNA33.js} +60 -18
- package/dist/{chunk-UK6DKJLD.js → chunk-3BFXELBL.js} +51 -4
- package/dist/{chunk-RW5PEJ7D.js → chunk-3BZJ5KD5.js} +7 -3
- package/dist/{chunk-FT7TPPZ5.js → chunk-3FUTFYSP.js} +65 -26
- package/dist/{chunk-QAALSCKI.js → chunk-4MZCJV4M.js} +12 -12
- package/dist/{chunk-ZXUAPTCK.js → chunk-4R5KIPNX.js} +2 -2
- package/dist/{chunk-QWIBT6DS.js → chunk-5D5VHDJM.js} +49 -14
- package/dist/{chunk-U7NKYLX2.js → chunk-5H5GWWA4.js} +55 -19
- package/dist/{chunk-P3H7QVDH.js → chunk-5K5XBEXT.js} +11 -6
- package/dist/{chunk-PT4SW76W.js → chunk-6NJWBMJV.js} +49 -14
- package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
- package/dist/{chunk-6DCOIN4W.js → chunk-A2ARDILY.js} +783 -3
- package/dist/{chunk-CK2GMDXD.js → chunk-A2PTRSAO.js} +2 -2
- package/dist/{chunk-APKUAJ2L.js → chunk-A2RUBBVT.js} +14 -1
- package/dist/{chunk-GMIJ35PW.js → chunk-A4UJP4IS.js} +68 -20
- package/dist/{chunk-LQHVDZYC.js → chunk-AKE6C2D7.js} +4 -4
- package/dist/{chunk-W5KMNC5U.js → chunk-ASPS5O6F.js} +9 -10
- package/dist/{chunk-FLDC7ZAK.js → chunk-AU75JHSR.js} +6 -3
- package/dist/chunk-BEOAKGNA.js +484 -0
- package/dist/{chunk-XY3UDKKH.js → chunk-COVYNAKJ.js} +4 -4
- package/dist/{chunk-4ASVFYB2.js → chunk-DS4MDEQ7.js} +5 -5
- package/dist/{chunk-7JDTNFAK.js → chunk-EFUQENO5.js} +76 -32
- package/dist/{chunk-BULHGPHK.js → chunk-EMSOFHEN.js} +2 -2
- package/dist/{chunk-3BEKKRH5.js → chunk-ETTDF3S2.js} +49 -11
- package/dist/{chunk-JHOAH4TI.js → chunk-ETYF5QZR.js} +2 -2
- package/dist/{chunk-AHXIMHDQ.js → chunk-F5ZNUMSY.js} +53 -14
- package/dist/{chunk-I64ECJX3.js → chunk-FBP33UM6.js} +3 -3
- package/dist/{chunk-VIRANCNY.js → chunk-FGAMFJNJ.js} +58 -20
- package/dist/{chunk-774C2FF3.js → chunk-GRXPFBYC.js} +24 -3
- package/dist/{chunk-NNYFQOTK.js → chunk-GTO5VCYG.js} +10 -8
- package/dist/{chunk-RJ5LBZ5U.js → chunk-HES4K6DV.js} +13 -13
- package/dist/{chunk-AZNXGWDC.js → chunk-HGKOVKAX.js} +7 -7
- package/dist/{chunk-DWUMPMV2.js → chunk-HLGOG44K.js} +2 -2
- package/dist/{chunk-VJHBSPGF.js → chunk-HUTP35XT.js} +5 -4
- package/dist/{chunk-3CZLWOCI.js → chunk-HX7QNHC6.js} +3 -3
- package/dist/{chunk-R5NH5BZG.js → chunk-IALX52TR.js} +6 -6
- package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
- package/dist/{chunk-27STWBOK.js → chunk-IF4KYSJZ.js} +10 -8
- package/dist/{chunk-HORZ5H2L.js → chunk-IG6J7JWH.js} +61 -22
- package/dist/{chunk-VRRDUYOK.js → chunk-IIUYKQ5J.js} +3 -3
- package/dist/{chunk-GMAH572Z.js → chunk-INTAQV2Y.js} +2 -2
- package/dist/{chunk-6AUZPPAV.js → chunk-ITXL2KU5.js} +2 -2
- package/dist/{chunk-KKHCNSKK.js → chunk-IWG2ECAO.js} +5 -5
- package/dist/{chunk-GQ644SPD.js → chunk-JGCEFKZP.js} +14 -14
- package/dist/{chunk-HNBY6CNV.js → chunk-JQLSFZZP.js} +2 -2
- package/dist/{chunk-CMVZWP32.js → chunk-JR7Q6GHE.js} +2 -2
- package/dist/{chunk-LHILKFDP.js → chunk-KC3WBBI7.js} +9 -9
- package/dist/{chunk-GABSL6TH.js → chunk-KK3L5NVK.js} +3 -3
- package/dist/{chunk-LC3FFD43.js → chunk-L2DIXZUT.js} +98 -48
- package/dist/{chunk-4WGMGKCZ.js → chunk-LCRPGGGS.js} +11 -11
- package/dist/{chunk-6KY7OCZC.js → chunk-LKGQ46P4.js} +3 -3
- package/dist/{chunk-HE5J53SZ.js → chunk-LW7STMYZ.js} +3 -3
- package/dist/{chunk-BD3WGY4T.js → chunk-M53MDBIW.js} +2 -2
- package/dist/{chunk-AN2DQB3G.js → chunk-MEH4TJEX.js} +12 -12
- package/dist/{chunk-SGPFVDUL.js → chunk-MNS2ENXF.js} +6 -6
- package/dist/{chunk-FXCB7H5O.js → chunk-MSWIBF6J.js} +2 -2
- package/dist/{chunk-BR7AYN76.js → chunk-NL7FUIVD.js} +12 -12
- package/dist/{chunk-AIMLCDAO.js → chunk-NN5TF4OV.js} +2 -2
- package/dist/{chunk-7GUF6SDR.js → chunk-NPPUZ4SK.js} +9 -9
- package/dist/{chunk-4K42RUGC.js → chunk-NYOOPQFD.js} +47 -12
- package/dist/{chunk-FFXCKZOU.js → chunk-O4CZDTQA.js} +3 -3
- package/dist/{chunk-6HTRCTAS.js → chunk-P5XXIVEU.js} +6 -4
- package/dist/{chunk-XEAQDIMF.js → chunk-PC4YLEKA.js} +6 -6
- package/dist/{chunk-Q7AH665U.js → chunk-PCVXXPYU.js} +121 -38
- package/dist/{chunk-W2DINCHL.js → chunk-PKUWYPI5.js} +207 -24
- package/dist/{chunk-PV2QO7QL.js → chunk-PSIDVCBA.js} +2 -2
- package/dist/{chunk-YR43LJT5.js → chunk-PV7ND5WL.js} +58 -15
- package/dist/{chunk-QI3BOLQB.js → chunk-Q5CMQVWF.js} +4 -4
- package/dist/{chunk-4RGZFA7H.js → chunk-Q5IHQ4NW.js} +11 -1
- package/dist/{chunk-SG4PRYO3.js → chunk-QQXFYTLC.js} +391 -60
- package/dist/{chunk-GWQJKTFS.js → chunk-QZYGRDMM.js} +118 -99
- package/dist/{chunk-CQFNIIQN.js → chunk-RKBCKCSF.js} +2 -2
- package/dist/{chunk-FUKNRLIJ.js → chunk-RSBH2C7O.js} +6 -6
- package/dist/{chunk-2QC4HXCY.js → chunk-RYNCWA5X.js} +11 -10
- package/dist/{chunk-NNUMX6WX.js → chunk-RZWIPDZ2.js} +40 -15
- package/dist/{chunk-VKNCC2GX.js → chunk-S52F62GW.js} +13 -13
- package/dist/{chunk-UQRIKAMH.js → chunk-SCOHNGPG.js} +59 -18
- package/dist/{chunk-VGNIDAPQ.js → chunk-SSHS42QG.js} +4 -4
- package/dist/chunk-TGOMHUOV.js +218 -0
- package/dist/{chunk-UKP5HWB5.js → chunk-UBQU2BY6.js} +4 -4
- package/dist/{chunk-IQJCVREL.js → chunk-UES4P7FN.js} +6 -6
- package/dist/chunk-US3P2DQO.js +87 -0
- package/dist/{chunk-GAWKIIPO.js → chunk-UXXLE6AH.js} +8 -8
- package/dist/{chunk-22OQWBWD.js → chunk-VMWSZCAK.js} +12 -11
- package/dist/{chunk-XG4NWFPY.js → chunk-VVIRAGID.js} +13 -13
- package/dist/{chunk-X3RXGSCZ.js → chunk-VXTUWXFB.js} +54 -15
- package/dist/{chunk-J7HI6G3G.js → chunk-W4TSD3IP.js} +6 -6
- package/dist/{chunk-FGDSTT3F.js → chunk-WB3NA3JJ.js} +2 -2
- package/dist/{chunk-KUSAVOWZ.js → chunk-WITOJZGL.js} +8 -4
- package/dist/{chunk-UVDCHR4E.js → chunk-WVGNXDEE.js} +2 -2
- package/dist/{chunk-HOXKNRON.js → chunk-X3X4LZDC.js} +2 -2
- package/dist/{chunk-SQCBSFT5.js → chunk-XKKH2DPG.js} +51 -263
- package/dist/{chunk-NR5HCAUD.js → chunk-XSVWUOUZ.js} +1 -1
- package/dist/{chunk-BFDVEO5R.js → chunk-Y4BBGFKY.js} +2 -2
- package/dist/{chunk-VAO6ANGC.js → chunk-YP2T5YUP.js} +14 -9
- package/dist/{chunk-PKNNHU7H.js → chunk-YXKNXIWA.js} +19 -11
- package/dist/{chunk-UFQJMOVZ.js → chunk-ZGIBV36U.js} +6 -6
- package/dist/{chunk-XQ4KN6JQ.js → chunk-ZP265ICS.js} +16 -15
- package/dist/{chunk-JTMSWEIW.js → chunk-ZWVKTWK6.js} +4 -4
- package/dist/{chunk-ALYZ3MAA.js → chunk-ZXNHHO6D.js} +8 -476
- package/dist/cli.cjs +166 -149
- package/dist/clock.js +34 -1
- package/dist/completion-registry.d.ts +129 -0
- package/dist/completion-registry.js +1278 -0
- package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
- package/dist/dgmo-router-T4HGLIGA.js +88 -0
- package/dist/{dimensions-K6PGYYGT.js → dimensions-3JINHSYK.js} +8 -8
- package/dist/editor.js +28 -1
- package/dist/element.js +148 -133
- package/dist/element.mjs +2352 -746
- package/dist/{flowchart-parser-LALR6J6F.js → flowchart-parser-M7KKTLX7.js} +5 -5
- package/dist/{flowchart-renderer-DXYB5YRF.js → flowchart-renderer-FFEQFQEU.js} +9 -9
- package/dist/highlight.js +28 -1
- package/dist/index.js +77 -64
- package/dist/{layout-ZE5DRJWX.js → layout-3ZZBKUQC.js} +4 -4
- package/dist/{layout-3BVDMKXI.js → layout-AUKTWGYL.js} +4 -4
- package/dist/{layout-4IHCMWZN.js → layout-CRLTSFYQ.js} +4 -4
- package/dist/{layout-WCAIKGZG.js → layout-FNZDJGKF.js} +5 -5
- package/dist/layout-GHWRJKZQ.js +15 -0
- package/dist/{layout-3V2A4MUE.js → layout-LGXOKUCD.js} +6 -5
- package/dist/{layout-WSMPBQ4Q.js → layout-NF4EWFLT.js} +3 -3
- package/dist/{layout-OL2XFJXA.js → layout-SP7HJWKA.js} +3 -3
- package/dist/{layout-E6HR6PXH.js → layout-UR7CYAHL.js} +3 -3
- package/dist/layout-UTMEVFHN.js +15 -0
- package/dist/{layout-search-34DPZD43.js → layout-search-U2H4ORFJ.js} +14 -7
- package/dist/{legend-constants-P5EQWRQQ.js → legend-constants-B77VKB3R.js} +7 -2
- package/dist/{parser-6PPHAXXH.js → parser-2AXPSKWB.js} +5 -5
- package/dist/{parser-5HQXCNOS.js → parser-2AZ2KQTO.js} +4 -4
- package/dist/{parser-3KIGEEJM.js → parser-2LF33IS2.js} +4 -4
- package/dist/{parser-NNIL3HXU.js → parser-3QJ2Z4H4.js} +3 -3
- package/dist/parser-5GCQFSTQ.js +13 -0
- package/dist/{parser-6B6SSZT7.js → parser-62OHBRU5.js} +3 -3
- package/dist/{parser-VOERD6XR.js → parser-7LYJFZCP.js} +4 -4
- package/dist/{parser-ZGNXYFPS.js → parser-BMOTF72G.js} +3 -3
- package/dist/{parser-IVGHXLZP.js → parser-CIFLYZYP.js} +4 -3
- package/dist/{parser-GN2MM5CC.js → parser-D2UL2G5U.js} +3 -3
- package/dist/{parser-GKP2MHHL.js → parser-DM2APTKB.js} +3 -3
- package/dist/{parser-27Z76SN3.js → parser-DYYTPLBL.js} +4 -4
- package/dist/{parser-5FGJSQNS.js → parser-GOUGUTPU.js} +4 -4
- package/dist/{parser-G26MTBFS.js → parser-HGVUVD6J.js} +3 -3
- package/dist/{parser-EXNBDNGY.js → parser-IEJD3CZB.js} +3 -3
- package/dist/{parser-ZQDQTB4X.js → parser-JBEWNLAV.js} +5 -5
- package/dist/{parser-5QPFOB5F.js → parser-JMXPHNZD.js} +4 -4
- package/dist/{parser-4E4I3GNT.js → parser-JMXSQY3K.js} +4 -4
- package/dist/{parser-FF4BMRSB.js → parser-LUXS7J32.js} +4 -4
- package/dist/{parser-3VSWEKBF.js → parser-M5BUHULF.js} +4 -4
- package/dist/{parser-IKWK2ZU3.js → parser-MESRHUS4.js} +4 -5
- package/dist/{parser-3CODK6RG.js → parser-OOYNI2UT.js} +4 -4
- package/dist/{parser-YSLNDFLV.js → parser-PVBUAVRR.js} +4 -5
- package/dist/{parser-CKA3QMAG.js → parser-QKRBSQLJ.js} +5 -5
- package/dist/{parser-UWRX52PC.js → parser-S6NWSIJO.js} +4 -4
- package/dist/{parser-RNLTBIJ6.js → parser-SFEK6Q7Z.js} +4 -4
- package/dist/{parser-7JVIDLLR.js → parser-SUV52NQW.js} +4 -4
- package/dist/{parser-CRKLXGW7.js → parser-SZHGLOOZ.js} +4 -4
- package/dist/{parser-275KP7JO.js → parser-TO7IENWL.js} +5 -6
- package/dist/{parser-XNKJCMMA.js → parser-TVAMC7CQ.js} +4 -4
- package/dist/{parser-FOOFEJQU.js → parser-VAW46R57.js} +4 -4
- package/dist/{parser-XVPTRWZ4.js → parser-XDSPOXSE.js} +4 -4
- package/dist/pert.d.ts +2 -0
- package/dist/{renderer-D3BRNOMV.js → renderer-3PWLOJPD.js} +11 -11
- package/dist/{renderer-7NQSTQMQ.js → renderer-5EMHIQL5.js} +4 -4
- package/dist/{renderer-ZBTEX2JK.js → renderer-5PODNLYP.js} +4 -4
- package/dist/{renderer-6WRYVM5R.js → renderer-AQJIQ2XU.js} +9 -8
- package/dist/{renderer-JCZG6AYU.js → renderer-BEW3AYFT.js} +10 -10
- package/dist/{renderer-YUKPS27O.js → renderer-C3UYAXA6.js} +10 -8
- package/dist/{renderer-AK2WO4EI.js → renderer-CENXCMWG.js} +4 -4
- package/dist/{renderer-HIFQVEJA.js → renderer-CXM3ARYN.js} +10 -9
- package/dist/{renderer-JTCX6PCG.js → renderer-DW6TEBLA.js} +10 -9
- package/dist/{renderer-VMH6L6CP.js → renderer-FE5M6SEZ.js} +10 -9
- package/dist/{renderer-TYHGXAVT.js → renderer-FXK6ZL3P.js} +4 -4
- package/dist/{renderer-UPF7NRTI.js → renderer-G5ESLCJB.js} +12 -11
- package/dist/{renderer-CWEFGEIC.js → renderer-HTDS4FED.js} +14 -13
- package/dist/{renderer-XTXSOK3L.js → renderer-IO4KCFVL.js} +10 -10
- package/dist/{renderer-SQ54MDSA.js → renderer-IRAFJNTK.js} +10 -9
- package/dist/{renderer-JWGQSTMR.js → renderer-MFTTFW32.js} +15 -14
- package/dist/{renderer-2C6DJRYN.js → renderer-MPXI4FVL.js} +8 -8
- package/dist/{renderer-5MPN7CXZ.js → renderer-NVBEMQ6L.js} +5 -5
- package/dist/{renderer-7ZNVOVFG.js → renderer-OOGDCR6K.js} +3 -3
- package/dist/{renderer-COLQFSFV.js → renderer-Q5P72O4A.js} +9 -9
- package/dist/{renderer-WCWI4I6A.js → renderer-QZESC66H.js} +2 -2
- package/dist/{renderer-NE5W7CQP.js → renderer-RDBUXW7P.js} +6 -5
- package/dist/{renderer-6EN5XXJZ.js → renderer-S4XB3JR2.js} +11 -11
- package/dist/{renderer-WFSUBKUL.js → renderer-SIWEEWJ5.js} +9 -8
- package/dist/{renderer-LVZAHRP6.js → renderer-TKTM2SL4.js} +12 -12
- package/dist/{renderer-QD2SJF2I.js → renderer-TXTTV4HA.js} +10 -9
- package/dist/{renderer-YUXGXGSW.js → renderer-UZIU4AHK.js} +10 -9
- package/dist/{renderer-RLMOTXZ6.js → renderer-V72VJIGG.js} +14 -13
- package/dist/{renderer-UKXW2QPE.js → renderer-VEGOEZOI.js} +10 -8
- package/dist/{renderer-WNFXYYGL.js → renderer-W6I6T2TA.js} +8 -8
- package/dist/{renderer-KARQF3F3.js → renderer-WSHJRR2T.js} +8 -8
- package/dist/{renderer-radial-WF6VOUOD.js → renderer-radial-AG75PBYD.js} +9 -9
- package/dist/{resolver-WFKZYBJ2.js → resolver-ZSFQQRTH.js} +3 -3
- package/dist/{state-parser-L7DHZIQO.js → state-parser-KIPZGIB4.js} +5 -5
- package/dist/{state-renderer-TFEUOP4H.js → state-renderer-U6OSJG52.js} +13 -12
- package/docs/language-reference.md +2 -1
- package/package.json +5 -1
- package/dist/chunk-YJVA3QUU.js +0 -734
- package/dist/dgmo-router-B4S23EBH.js +0 -86
- package/dist/layout-3M5UYJHY.js +0 -14
- package/dist/layout-KPQWJNAG.js +0 -14
- package/dist/parser-7JHWEWXM.js +0 -13
package/dist/advanced.d.ts
CHANGED
|
@@ -216,6 +216,13 @@ interface ParsedChart {
|
|
|
216
216
|
/** Cross-chart-type: when true, the renderer suppresses the legend and the
|
|
217
217
|
* vertical band it would occupy (#48). */
|
|
218
218
|
noLegend?: boolean;
|
|
219
|
+
/** §1.9 `legend-inline`: render the title and the series legend on one line
|
|
220
|
+
* (title left, legend right) instead of stacking the legend below a centered
|
|
221
|
+
* title — reclaims a header row. Honoured by the top-center-legend data
|
|
222
|
+
* charts (bar/line/radar/scatter/function); a no-op elsewhere. Auto-falls
|
|
223
|
+
* back to the stacked header when the legend can't fit beside the title on a
|
|
224
|
+
* single row (decision #50). */
|
|
225
|
+
legendInline?: boolean;
|
|
219
226
|
/** Line only: opt out of the data-driven y-axis auto-fit and anchor the
|
|
220
227
|
* baseline at 0 (magnitude honesty / old ECharts-parity behavior). By
|
|
221
228
|
* default a line chart fits a padded data-min→max window (§15.1). */
|
|
@@ -249,6 +256,16 @@ declare function parseChart(content: string, palette?: PaletteColors): ParsedCha
|
|
|
249
256
|
* "North America 250" → { label: "North America", values: [250] }
|
|
250
257
|
* "Q1 10 20 30" → { label: "Q1", values: [10, 20, 30] }
|
|
251
258
|
* "Revenue 1_000" → { label: "Revenue", values: [1000] }
|
|
259
|
+
* '"Wi-Fi 6" 70 80' → { label: "Wi-Fi 6", values: [70, 80], quotedLabel: true }
|
|
260
|
+
*
|
|
261
|
+
* A fully-quoted leading label is taken verbatim (quotes stripped) and is never
|
|
262
|
+
* eligible for value peeling — the escape hatch for labels that end in a digit
|
|
263
|
+
* (`"Wi-Fi 6"`, `"Layer 3"`), mirroring the treemap leaf rule.
|
|
264
|
+
*
|
|
265
|
+
* `trailingNumericCount` reports how many consecutive numeric tokens the row
|
|
266
|
+
* actually ends with, which may exceed `values.length` when `expectedValues`
|
|
267
|
+
* caps the walk. Callers use it to flag an over-long row instead of silently
|
|
268
|
+
* absorbing the surplus numbers into the label.
|
|
252
269
|
*
|
|
253
270
|
* Returns null if the line has no numeric value at the end.
|
|
254
271
|
*/
|
|
@@ -258,6 +275,11 @@ declare function parseDataRowValues(line: string, options?: {
|
|
|
258
275
|
}): {
|
|
259
276
|
label: string;
|
|
260
277
|
values: number[];
|
|
278
|
+
/** Label prefix with every trailing numeric token removed (diagnostics use
|
|
279
|
+
* this so the message names "Armor", not the corrupted "Armor 50 60"). */
|
|
280
|
+
bareLabel: string;
|
|
281
|
+
trailingNumericCount: number;
|
|
282
|
+
quotedLabel: boolean;
|
|
261
283
|
} | null;
|
|
262
284
|
|
|
263
285
|
interface LegendState {
|
|
@@ -490,6 +512,23 @@ interface LegendHandle {
|
|
|
490
512
|
}
|
|
491
513
|
type D3Sel = Selection<any, unknown, any, unknown>;
|
|
492
514
|
|
|
515
|
+
/** A parsed emphasis directive: which dual, and the names it lists. */
|
|
516
|
+
interface EmphasisDirective {
|
|
517
|
+
readonly kind: 'highlight' | 'dim';
|
|
518
|
+
readonly names: readonly string[];
|
|
519
|
+
/**
|
|
520
|
+
* True when the author used no comma, so `names` is a *guess* — `dim Ship
|
|
521
|
+
* Provisions` is one two-word element far more often than two one-word ones.
|
|
522
|
+
* Resolution tries the whole phrase first and only falls back to these
|
|
523
|
+
* tokens, which means a comma is never required for the common single-name
|
|
524
|
+
* case but always disambiguates when an author wants several.
|
|
525
|
+
*/
|
|
526
|
+
readonly ambiguous: boolean;
|
|
527
|
+
/** The directive's argument text, verbatim — the whole-phrase candidate. */
|
|
528
|
+
readonly raw: string;
|
|
529
|
+
readonly lineNumber: number;
|
|
530
|
+
}
|
|
531
|
+
|
|
493
532
|
type ExtendedChartType = 'sankey' | 'chord' | 'function' | 'scatter' | 'heatmap' | 'funnel';
|
|
494
533
|
interface ExtendedChartDataPoint {
|
|
495
534
|
label: string;
|
|
@@ -548,7 +587,9 @@ interface ParsedExtendedBase {
|
|
|
548
587
|
noName?: boolean;
|
|
549
588
|
noValue?: boolean;
|
|
550
589
|
noPercent?: boolean;
|
|
551
|
-
shade
|
|
590
|
+
/** `fill` directive — shade the area below each curve (function charts),
|
|
591
|
+
* parity with the `line` chart's bare `fill`. Opacity follows `fillMode`. */
|
|
592
|
+
fill?: boolean;
|
|
552
593
|
/** §1.9 fill family: `'solid'` = full intent saturation, `'outline'` =
|
|
553
594
|
* theme-background fill with color on the stroke. Absent ⇒ 25% tint. */
|
|
554
595
|
fillMode?: 'solid' | 'outline';
|
|
@@ -557,6 +598,13 @@ interface ParsedExtendedBase {
|
|
|
557
598
|
/** Cross-chart-type: when true, the renderer suppresses the legend and the
|
|
558
599
|
* vertical band it would occupy (#48). */
|
|
559
600
|
noLegend?: boolean;
|
|
601
|
+
/** §1.9 `legend-inline`: title + series legend on one line (see ParsedChart).
|
|
602
|
+
* Honoured by scatter/function among the extended charts (decision #50). */
|
|
603
|
+
legendInline?: boolean;
|
|
604
|
+
/** §1.11 emphasis family: `highlight <Name>…` / `dim <Name>…`. Chart-level,
|
|
605
|
+
* mutually exclusive, last-one-wins. Resolved against real element names at
|
|
606
|
+
* render time via `resolveEmphasis`. */
|
|
607
|
+
emphasis?: EmphasisDirective;
|
|
560
608
|
categoryColors?: Record<string, string>;
|
|
561
609
|
categoryLineNumbers?: Record<string, number>;
|
|
562
610
|
nodeColors?: Record<string, string>;
|
|
@@ -2139,6 +2187,8 @@ interface SketchBox {
|
|
|
2139
2187
|
}
|
|
2140
2188
|
interface SketchOptions {
|
|
2141
2189
|
readonly noLegend: boolean;
|
|
2190
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
2191
|
+
readonly legendInline?: boolean;
|
|
2142
2192
|
/** §1.9 fill family; undefined ⇒ canonical 25% tint. */
|
|
2143
2193
|
readonly fillMode: 'solid' | 'outline' | undefined;
|
|
2144
2194
|
/** `no-descriptions` directive (mindmap `hd` standard): hide the card
|
|
@@ -3198,6 +3248,8 @@ interface GanttOptions {
|
|
|
3198
3248
|
noTitle: boolean;
|
|
3199
3249
|
/** §1.9 `no-legend` — suppress the tag legend and collapse its reserved band. */
|
|
3200
3250
|
noLegend: boolean;
|
|
3251
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
3252
|
+
legendInline?: boolean;
|
|
3201
3253
|
}
|
|
3202
3254
|
interface ParsedGantt {
|
|
3203
3255
|
readonly nodes: readonly GanttNode[];
|
|
@@ -3414,6 +3466,8 @@ interface PertOptions {
|
|
|
3414
3466
|
noTitle?: boolean;
|
|
3415
3467
|
/** §1.9 `no-legend` — suppress the tag legend and collapse its reserved band. */
|
|
3416
3468
|
noLegend?: boolean;
|
|
3469
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
3470
|
+
legendInline?: boolean;
|
|
3417
3471
|
/**
|
|
3418
3472
|
* §1.9 fill family — `fill-solid` renders node/group card fills at full intent
|
|
3419
3473
|
* saturation instead of the canonical 25% tint (via `shapeFill`).
|
|
@@ -4622,6 +4676,26 @@ interface EventLineEra {
|
|
|
4622
4676
|
readonly collapsed: boolean;
|
|
4623
4677
|
readonly lineNumber: number;
|
|
4624
4678
|
}
|
|
4679
|
+
/**
|
|
4680
|
+
* A **now marker** (§28.6b) — a "grounded pin" at "today": a palette-red
|
|
4681
|
+
* (`palette.destructive`) diamond planted on the spine with a short stem to a
|
|
4682
|
+
* labeled tab, slotted into a card-free lane, plus a dotted "today line" that
|
|
4683
|
+
* fades out within the leader gap (full-height only on hover, preview).
|
|
4684
|
+
* `now` alone is *computed* (resolved to the render-time date);
|
|
4685
|
+
* `now <date>` *pins* it to an explicit ISO date (deterministic, snapshot-safe).
|
|
4686
|
+
* Only drawn on a to-scale axis (every event dated); ignored under `no-scale`.
|
|
4687
|
+
*/
|
|
4688
|
+
interface EventLineNow {
|
|
4689
|
+
/** True for bare `now` (date resolved at render time); false when pinned. */
|
|
4690
|
+
readonly computed: boolean;
|
|
4691
|
+
/** Pinned ISO date as written, or null when computed. */
|
|
4692
|
+
readonly date: string | null;
|
|
4693
|
+
/** Numeric value for the pinned date (timeline scale), or null when computed. */
|
|
4694
|
+
readonly dateValue: number | null;
|
|
4695
|
+
/** Rule caption (default `now`; a trailing token on the pinned form overrides). */
|
|
4696
|
+
readonly label: string;
|
|
4697
|
+
readonly lineNumber: number;
|
|
4698
|
+
}
|
|
4625
4699
|
interface EventLineOptions {
|
|
4626
4700
|
/** False when `no-scale` — events are spaced evenly instead of by date. */
|
|
4627
4701
|
readonly scale: boolean;
|
|
@@ -4634,6 +4708,8 @@ interface EventLineOptions {
|
|
|
4634
4708
|
readonly noBox: boolean;
|
|
4635
4709
|
/** True when `no-legend` — hide the tag legend. */
|
|
4636
4710
|
readonly noLegend: boolean;
|
|
4711
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
4712
|
+
readonly legendInline?: boolean;
|
|
4637
4713
|
/** §1.9 fill family: 'solid' | 'outline'; undefined ⇒ canonical soft tint. */
|
|
4638
4714
|
readonly fillMode: 'solid' | 'outline' | undefined;
|
|
4639
4715
|
}
|
|
@@ -4643,6 +4719,8 @@ interface ParsedEventLine {
|
|
|
4643
4719
|
readonly titleLineNumber: number | null;
|
|
4644
4720
|
readonly events: readonly EventLineEvent[];
|
|
4645
4721
|
readonly eras: readonly EventLineEra[];
|
|
4722
|
+
/** The `now` marker (§28.6b), or null when the directive is absent. */
|
|
4723
|
+
readonly now: EventLineNow | null;
|
|
4646
4724
|
readonly tagGroups: readonly TagGroup[];
|
|
4647
4725
|
readonly options: EventLineOptions;
|
|
4648
4726
|
readonly diagnostics: readonly DgmoError[];
|
|
@@ -4651,7 +4729,10 @@ interface ParsedEventLine {
|
|
|
4651
4729
|
|
|
4652
4730
|
declare function parseEventLine(content: string, palette?: PaletteColors): ParsedEventLine;
|
|
4653
4731
|
|
|
4654
|
-
declare function renderEventLine(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, tagOverride?: string
|
|
4732
|
+
declare function renderEventLine(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, tagOverride?: string,
|
|
4733
|
+
/** Injectable clock for the computed `now` marker (§28.6b). Defaults to the
|
|
4734
|
+
* live wall-clock; tests/snapshots pass a fixed date for determinism. */
|
|
4735
|
+
nowDate?: Date): void;
|
|
4655
4736
|
/** A focus target: a single event (by its `data-evt` id, = source line), an era
|
|
4656
4737
|
* (by name), or a tag value (a legend category). `null` clears the focus. */
|
|
4657
4738
|
type EventLineFocus = {
|
|
@@ -4679,7 +4760,7 @@ declare function clearEventLineMuted(container: HTMLElement): void;
|
|
|
4679
4760
|
* to clear. No-op when the container holds no event-line SVG.
|
|
4680
4761
|
*/
|
|
4681
4762
|
declare function focusEventLine(container: HTMLElement, spec: EventLineFocus | null): void;
|
|
4682
|
-
declare function renderEventLineForExport(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string): void;
|
|
4763
|
+
declare function renderEventLineForExport(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string, nowDate?: Date): void;
|
|
4683
4764
|
|
|
4684
4765
|
/** A resolved recurrence rule. Built by the parser, re-read by the ticker. */
|
|
4685
4766
|
interface RecurRule {
|
|
@@ -5145,6 +5226,8 @@ interface ParsedBracket {
|
|
|
5145
5226
|
readonly activeTag: string | null;
|
|
5146
5227
|
/** Hide the tag legend. */
|
|
5147
5228
|
readonly noLegend: boolean;
|
|
5229
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
5230
|
+
readonly legendInline?: boolean;
|
|
5148
5231
|
/** Suppress round/column labels (`no-round`). */
|
|
5149
5232
|
readonly noRounds: boolean;
|
|
5150
5233
|
/**
|
|
@@ -5376,6 +5459,8 @@ interface TreemapOptions {
|
|
|
5376
5459
|
noPercent: boolean;
|
|
5377
5460
|
noHeaders: boolean;
|
|
5378
5461
|
noLegend: boolean;
|
|
5462
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
5463
|
+
legendInline?: boolean;
|
|
5379
5464
|
/** §1.9 fill family; undefined ⇒ canonical 25% tint. */
|
|
5380
5465
|
fillMode: 'solid' | 'outline' | undefined;
|
|
5381
5466
|
/** `radial` — render as a sunburst (concentric rings) instead of rectangles. */
|
|
@@ -5560,6 +5645,8 @@ interface BlockGrid {
|
|
|
5560
5645
|
interface BlockOptions {
|
|
5561
5646
|
/** `no-legend` — hide the tag legend. */
|
|
5562
5647
|
noLegend: boolean;
|
|
5648
|
+
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
5649
|
+
legendInline?: boolean;
|
|
5563
5650
|
/** §1.9 fill family: 'solid' | 'outline'; absent ⇒ canonical 25% tint. */
|
|
5564
5651
|
fillMode?: 'solid' | 'outline';
|
|
5565
5652
|
}
|
|
@@ -6296,6 +6383,12 @@ interface LegendRenderOptions {
|
|
|
6296
6383
|
containerWidth: number;
|
|
6297
6384
|
activeGroup?: string | null;
|
|
6298
6385
|
className?: string;
|
|
6386
|
+
/**
|
|
6387
|
+
* Row alignment within `containerWidth`. `'center'` (default) matches the
|
|
6388
|
+
* historic top-center legend; `'left'` left-origins the row at x=0 so the
|
|
6389
|
+
* caller can translate it beside a left-aligned title (§1.9 `legend-inline`).
|
|
6390
|
+
*/
|
|
6391
|
+
align?: 'center' | 'left';
|
|
6299
6392
|
}
|
|
6300
6393
|
interface LegendRenderResult {
|
|
6301
6394
|
svg: string;
|
|
@@ -6367,13 +6460,23 @@ declare function computeActivations(steps: RenderStep[]): Activation[];
|
|
|
6367
6460
|
*/
|
|
6368
6461
|
declare function applyPositionOverrides(participants: readonly SequenceParticipant[]): SequenceParticipant[];
|
|
6369
6462
|
/**
|
|
6370
|
-
*
|
|
6371
|
-
*
|
|
6372
|
-
*
|
|
6373
|
-
*
|
|
6374
|
-
*
|
|
6463
|
+
* Order participants by first appearance in messages, then pull grouped
|
|
6464
|
+
* members adjacent.
|
|
6465
|
+
*
|
|
6466
|
+
* The baseline is first-occurrence order (spec §2.2 priority 3): the first
|
|
6467
|
+
* participant referenced by a message gets the leftmost column, regardless of
|
|
6468
|
+
* declaration order. A bare declaration line assigns a tag/type only — it does
|
|
6469
|
+
* NOT pin a column. Participants that never appear in any message fall back to
|
|
6470
|
+
* declaration order (priority 4) and are appended after the message-referenced
|
|
6471
|
+
* ones.
|
|
6472
|
+
*
|
|
6473
|
+
* When spatial `[Group]` boxes exist (priority 2), each group's members are
|
|
6474
|
+
* pulled adjacent at the group's first-appearance anchor, overriding their
|
|
6475
|
+
* individual appearance slots. With no groups this reduces to pure
|
|
6476
|
+
* appearance order.
|
|
6375
6477
|
*
|
|
6376
|
-
* Explicit `position` overrides are handled separately by
|
|
6478
|
+
* Explicit `position` overrides (priority 1) are handled separately by
|
|
6479
|
+
* `applyPositionOverrides`, which runs after this pass.
|
|
6377
6480
|
*/
|
|
6378
6481
|
declare function applyGroupOrdering(participants: readonly SequenceParticipant[], groups: readonly SequenceGroup[], messages?: readonly SequenceMessage[]): SequenceParticipant[];
|
|
6379
6482
|
/**
|