@diagrammo/dgmo 0.48.2 → 0.50.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 +12 -3
- package/.github/copilot-instructions.md +12 -3
- package/.windsurfrules +12 -3
- package/SKILL.md +12 -3
- package/dist/advanced.d.ts +851 -1
- package/dist/advanced.js +601 -177
- package/dist/auto.css +63 -0
- package/dist/auto.js +220 -110
- package/dist/auto.mjs +45920 -33167
- package/dist/block.css +63 -0
- package/dist/block.d.ts +13 -5
- package/dist/block.js +239 -62
- package/dist/{charts-d3-QOZHKTCT.js → charts-d3-DKUD7MQE.js} +9 -8
- package/dist/{chunk-3MQQNXPD.js → chunk-2C56LEML.js} +3 -3
- package/dist/{chunk-L66GEFB6.js → chunk-2JJ2KNPI.js} +4 -4
- package/dist/{chunk-6SM5NJQH.js → chunk-2QYTMIRR.js} +4 -4
- package/dist/{chunk-RJE5JTVK.js → chunk-3G6TMNVF.js} +7 -7
- package/dist/{chunk-MO5YHHMQ.js → chunk-3LKM6FMW.js} +2 -2
- package/dist/{chunk-76OWZ3BA.js → chunk-3P2DKJCG.js} +2 -2
- package/dist/chunk-3TDRHT4J.js +1043 -0
- package/dist/chunk-3XPUDB7B.js +420 -0
- package/dist/{chunk-2LACINWN.js → chunk-3ZPC476N.js} +7 -7
- package/dist/{chunk-G2H74XJZ.js → chunk-4BMJQFNK.js} +8 -8
- package/dist/{chunk-THXCFRTU.js → chunk-4S723I74.js} +9 -9
- package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
- package/dist/chunk-5JSWBPZZ.js +607 -0
- package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
- package/dist/{chunk-7DTWEFUE.js → chunk-5Z736BSU.js} +8 -8
- package/dist/{chunk-ERLBPDGU.js → chunk-6BFZKBGD.js} +2 -2
- package/dist/{chunk-6HO5ZTXK.js → chunk-6IAA2QQ2.js} +2 -2
- package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
- package/dist/{chunk-RTLBSQ3G.js → chunk-6M5PJFQG.js} +3 -3
- package/dist/{chunk-Z5CGSFJB.js → chunk-6X4AKWLF.js} +4 -4
- package/dist/{chunk-OJR3MQYV.js → chunk-6ZT4U37Q.js} +291 -52
- package/dist/{chunk-5QXL4NYS.js → chunk-7G2ER4CY.js} +10 -5
- package/dist/chunk-7PQYTZMA.js +681 -0
- package/dist/{chunk-OURHMODR.js → chunk-7RB5Q6MB.js} +11 -11
- package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
- package/dist/{chunk-AN2MOO5T.js → chunk-A3WQVFBS.js} +3 -3
- package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
- package/dist/{chunk-CI2G3OEB.js → chunk-ASS5YYIZ.js} +12 -12
- package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
- package/dist/chunk-BDXC7MDK.js +2395 -0
- package/dist/chunk-BTUTZMPT.js +482 -0
- package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
- package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
- package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
- package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
- package/dist/{chunk-IZMRON6C.js → chunk-CVV36CWI.js} +2 -2
- package/dist/chunk-DMJJ3CEQ.js +254 -0
- package/dist/{chunk-MZSBFAPJ.js → chunk-EJTKV7CY.js} +9 -9
- package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
- package/dist/{chunk-X5LCYCL5.js → chunk-ER5SCQWQ.js} +5 -5
- package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
- package/dist/{chunk-FCIIHT24.js → chunk-F5UDBSJY.js} +7 -7
- package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
- package/dist/{chunk-FANX6UJR.js → chunk-FAL7NOK3.js} +11 -11
- package/dist/{chunk-BUPDIHML.js → chunk-FB2WHOEQ.js} +4 -4
- package/dist/chunk-FL4IOQ37.js +379 -0
- package/dist/{chunk-LIOHW36Z.js → chunk-GBE54KY6.js} +6 -5
- package/dist/{chunk-RUNNI6VE.js → chunk-GL5UZ6NY.js} +3 -3
- package/dist/{chunk-4GRI7MEB.js → chunk-GPWHQ5FJ.js} +6 -6
- package/dist/chunk-GROQGHCT.js +960 -0
- package/dist/{chunk-SGZYXELT.js → chunk-H73FP42Q.js} +9 -6
- 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-AELOBFW5.js → chunk-I4IFRCUB.js} +3 -3
- package/dist/{chunk-GMR5MFHJ.js → chunk-I7F2A35O.js} +2 -2
- package/dist/{chunk-T2OE3YQB.js → chunk-IA3FJYWR.js} +3 -3
- package/dist/chunk-IAEC4KLA.js +492 -0
- package/dist/chunk-IVKC4GID.js +32 -0
- package/dist/{chunk-HSH73DP6.js → chunk-JFYIP7XU.js} +139 -39
- package/dist/{chunk-CKNVO24D.js → chunk-JZNMXEIV.js} +2 -2
- package/dist/chunk-KJXIHOVL.js +940 -0
- package/dist/chunk-L2ZTFHAY.js +331 -0
- package/dist/{chunk-B7JUCQUA.js → chunk-M5RXSRO2.js} +4 -4
- package/dist/{chunk-ULOEATBZ.js → chunk-NFFIKVNO.js} +106 -29
- package/dist/{chunk-PZMETGLY.js → chunk-NISQC5KW.js} +358 -122
- package/dist/chunk-O4VUFXIH.js +574 -0
- package/dist/{chunk-RVMRZAPB.js → chunk-O76UD6VJ.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-EVCVDTXE.js → chunk-OHQEMBLI.js} +3 -3
- package/dist/{chunk-ZBWMSD5N.js → chunk-ONA5KPV3.js} +4 -4
- package/dist/{chunk-Y3J7VR52.js → chunk-OTAL43EH.js} +34 -2
- package/dist/{chunk-WCSOJFU3.js → chunk-OTP5KVLO.js} +3 -3
- package/dist/{chunk-RYEGFMUO.js → chunk-PGEGPSCZ.js} +2 -2
- package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
- package/dist/{chunk-ZJEL4H2R.js → chunk-PJUGRJHJ.js} +9 -9
- package/dist/{chunk-ZGR7ULFJ.js → chunk-PLZI6KPM.js} +26 -14
- package/dist/{chunk-3R5POCTZ.js → chunk-PMN3Q7RJ.js} +6 -6
- package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
- package/dist/chunk-Q4V4XQWV.js +158 -0
- package/dist/chunk-QDFNCATJ.js +325 -0
- package/dist/{chunk-QEBUY5NY.js → chunk-QFQ35BTO.js} +4 -4
- package/dist/chunk-QQJUTGQH.js +135 -0
- package/dist/{chunk-PWIHZ6NJ.js → chunk-QUJGFNFN.js} +4 -4
- package/dist/{chunk-J5FIXQRT.js → chunk-R56LASIN.js} +4 -4
- package/dist/{chunk-SRTU6HMQ.js → chunk-RV26LTUU.js} +8 -8
- package/dist/chunk-RV6A2B5S.js +354 -0
- package/dist/{chunk-EB6FPQUP.js → chunk-S5GRONXL.js} +3 -3
- package/dist/{chunk-5MLYVTYM.js → chunk-SCHXJTZL.js} +2 -2
- package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
- package/dist/{chunk-PBHE5UG6.js → chunk-SGFZZAUO.js} +46 -12
- package/dist/{chunk-BUVJFRPY.js → chunk-SU2VBK4L.js} +4 -4
- package/dist/{chunk-SML67VPV.js → chunk-T4BRO3Z6.js} +3 -3
- package/dist/{chunk-NURGB5Z4.js → chunk-TSA237IM.js} +2 -2
- package/dist/chunk-TWCLK2GA.js +273 -0
- package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
- package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
- package/dist/{chunk-B65G5DNL.js → chunk-URSQLCTR.js} +3 -3
- package/dist/{chunk-ILKORZ3H.js → chunk-UUS2GIJZ.js} +7 -7
- package/dist/{chunk-XAKEUMEJ.js → chunk-UXOSVCLJ.js} +4 -4
- package/dist/{chunk-QLCCJEJI.js → chunk-WCUHAQKB.js} +2 -2
- package/dist/{chunk-WVAJFAIA.js → chunk-WWN566I7.js} +257 -101
- package/dist/{chunk-IPWPWM6R.js → chunk-X2NMFTG3.js} +111 -10
- package/dist/{chunk-UWN33VNX.js → chunk-XCLHOZAM.js} +10 -10
- package/dist/{chunk-P235SVAH.js → chunk-XDXNDSKO.js} +2 -2
- package/dist/chunk-XHVV4NVW.js +51 -0
- package/dist/{chunk-33LCUH4H.js → chunk-XMVQ5F4M.js} +4 -4
- package/dist/{chunk-MITI6NOL.js → chunk-YA7D2N2O.js} +11 -11
- package/dist/{chunk-7JEGTRLD.js → chunk-YB3FW24O.js} +3 -3
- package/dist/chunk-YNRDWYZP.js +295 -0
- package/dist/{chunk-44CM72SQ.js → chunk-YZLMKW4T.js} +3 -3
- package/dist/chunk-Z6XJQ6KO.js +452 -0
- package/dist/cli.cjs +179 -133
- package/dist/clock.d.ts +10 -0
- package/dist/clock.js +235 -0
- package/dist/countdown.d.ts +12 -0
- package/dist/countdown.js +450 -0
- package/dist/dgmo-router-QOMFCOOV.js +84 -0
- package/dist/dimensions-P5FSX2QN.js +22 -0
- package/dist/editor.js +43 -2
- package/dist/element.js +220 -110
- package/dist/element.mjs +45920 -33167
- package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-OE4WHLTF.js} +4 -4
- package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GPCSMTOR.js} +8 -8
- package/dist/highlight.d.ts +17 -1
- package/dist/highlight.js +163 -6
- package/dist/index.d.ts +5 -1
- package/dist/index.js +199 -233
- package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
- package/dist/layout-46366KBT.js +10 -0
- package/dist/{layout-HWDSRX5E.js → layout-5BG6DFCU.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-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
- package/dist/layout-FGQWRYYW.js +14 -0
- 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-UM5F4DJB.js → layout-T3OZU5QW.js} +5 -5
- package/dist/layout-TJIWF7EM.js +14 -0
- package/dist/layout-VYELEAW7.js +14 -0
- package/dist/{layout-5RA6QWR6.js → layout-WZHNDT2O.js} +6 -6
- package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
- package/dist/{parser-6BTRLKRZ.js → parser-45DENHFZ.js} +4 -4
- package/dist/{parser-TFZFBVWN.js → parser-4AI5ZN5F.js} +3 -3
- package/dist/{parser-XDVELHRK.js → parser-4P36TUVD.js} +4 -4
- package/dist/{parser-ZSDPZYQP.js → parser-5AURY4A6.js} +4 -4
- package/dist/{parser-N5O4IHUN.js → parser-A2BEFMGK.js} +4 -4
- package/dist/parser-B5FVS7O6.js +11 -0
- package/dist/{parser-NGU3ETO6.js → parser-C2HF2C2E.js} +4 -4
- package/dist/parser-CSFUN3CT.js +14 -0
- package/dist/{parser-TRTHDFPP.js → parser-D3QT6GWN.js} +5 -5
- package/dist/parser-D5637H5H.js +15 -0
- package/dist/{parser-VQP2UJ6W.js → parser-DFFEDKHH.js} +3 -3
- package/dist/parser-DOKMZXVZ.js +13 -0
- package/dist/parser-FMPCVFRK.js +15 -0
- package/dist/{parser-Y6WTBU76.js → parser-HYRTF3DO.js} +3 -3
- package/dist/{parser-I6KXEYFK.js → parser-I2UIJKVQ.js} +4 -4
- package/dist/{parser-O5J4VBII.js → parser-IBWNAPY4.js} +3 -3
- package/dist/{parser-PQ3POX45.js → parser-KUQWRPIT.js} +4 -4
- package/dist/{parser-2MFP2H2E.js → parser-LWKKBNSA.js} +3 -3
- package/dist/{parser-OV7NOBW6.js → parser-O4QFCUW7.js} +5 -5
- package/dist/{parser-IXSZZQHY.js → parser-PGMQDD4G.js} +4 -4
- package/dist/{parser-3STE62GB.js → parser-Q4QKCIWQ.js} +4 -4
- package/dist/parser-QTOB4KFL.js +14 -0
- package/dist/{parser-2EWECDSA.js → parser-QYYM4QVW.js} +4 -4
- package/dist/{parser-4OGOBJJ4.js → parser-RZMQP7MM.js} +4 -4
- package/dist/parser-RZPVAQVX.js +11 -0
- package/dist/parser-SOUJOEYI.js +13 -0
- package/dist/{parser-4FL2CMDG.js → parser-UQE5OWZI.js} +5 -5
- package/dist/{parser-NRAI6O25.js → parser-WAV5JRPT.js} +4 -4
- package/dist/{parser-KNSQSKQO.js → parser-YLKYBRIT.js} +5 -5
- package/dist/{parser-XKRP7QKP.js → parser-YS7TOS2K.js} +3 -3
- package/dist/{parser-AQETEVRW.js → parser-ZSOWUBML.js} +5 -5
- package/dist/{parser-CFZD5IBL.js → parser-ZTBATMLX.js} +4 -4
- package/dist/{renderer-VACVQYML.js → renderer-35HSIDMZ.js} +8 -8
- package/dist/{renderer-5MYBMBYO.js → renderer-4ITCHBT7.js} +5 -5
- package/dist/{renderer-CLJHQPBJ.js → renderer-67NPCBIS.js} +11 -11
- package/dist/{renderer-5NDVNDAZ.js → renderer-6GHYK7DX.js} +9 -9
- package/dist/{renderer-Z7I3W2PP.js → renderer-6RNGHC5Z.js} +8 -8
- package/dist/renderer-72LGR2YF.js +14 -0
- package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
- package/dist/renderer-7SWMIFMM.js +21 -0
- package/dist/renderer-BBCEFILK.js +24 -0
- package/dist/{renderer-JGBKUCZD.js → renderer-BSW7SRIZ.js} +4 -4
- package/dist/{renderer-BYCNMBF7.js → renderer-BY533UWU.js} +11 -11
- package/dist/{renderer-6W5462RB.js → renderer-BZSBPTZJ.js} +9 -9
- package/dist/{renderer-7MVLWWQD.js → renderer-CXUC4KAD.js} +9 -9
- package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
- package/dist/renderer-FZUKFUNZ.js +23 -0
- package/dist/renderer-G2NLGNKF.js +17 -0
- package/dist/renderer-GO3FE3RA.js +24 -0
- package/dist/{renderer-ZGNTUWC4.js → renderer-HPGR6USK.js} +8 -8
- package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
- package/dist/renderer-ICJN2SA2.js +24 -0
- package/dist/{renderer-AWWAF6XD.js → renderer-INEXO7B6.js} +10 -10
- package/dist/{renderer-YY2OSF6E.js → renderer-KDYCFRBX.js} +8 -8
- package/dist/renderer-KY4KQBTF.js +19 -0
- package/dist/{renderer-B2OMQIQG.js → renderer-LBN65V45.js} +13 -13
- package/dist/{renderer-N43WR5GV.js → renderer-MGBWOCXG.js} +10 -10
- package/dist/{renderer-PGX2TKVS.js → renderer-O4JKUGKO.js} +8 -8
- package/dist/{renderer-4JHRUBE6.js → renderer-OOGFODWP.js} +10 -10
- package/dist/{renderer-6EEZHMH4.js → renderer-Q6ZKPLS6.js} +9 -9
- package/dist/{renderer-RPOA5YPZ.js → renderer-SZQ326M5.js} +12 -12
- package/dist/{renderer-ZRNG54CW.js → renderer-TKG6LS4U.js} +11 -11
- package/dist/{renderer-W4M6QLIJ.js → renderer-TQMZGDAX.js} +13 -13
- package/dist/renderer-radial-JELMHQ24.js +21 -0
- package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
- package/dist/{state-parser-Z2V23ATR.js → state-parser-3REXRK3R.js} +4 -4
- package/dist/{state-renderer-B4DQBM6M.js → state-renderer-XYLNRWXR.js} +8 -8
- package/docs/ai-integration.md +12 -3
- package/docs/language-reference.md +429 -24
- package/gallery/fixtures/body.dgmo +17 -0
- package/gallery/fixtures/bracket.dgmo +30 -0
- package/gallery/fixtures/clock.dgmo +8 -0
- package/gallery/fixtures/countdown.dgmo +3 -0
- package/gallery/fixtures/family.dgmo +23 -0
- package/gallery/fixtures/goal.dgmo +4 -0
- package/gallery/fixtures/sketch.dgmo +22 -0
- package/package.json +12 -4
- 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
package/dist/advanced.d.ts
CHANGED
|
@@ -2133,6 +2133,247 @@ interface BLCollapseResult {
|
|
|
2133
2133
|
*/
|
|
2134
2134
|
declare function collapseBoxesAndLines(parsed: ParsedBoxesAndLines, collapsedGroups: Set<string>): BLCollapseResult;
|
|
2135
2135
|
|
|
2136
|
+
/** Closed shape lexicon — rectangle is the default and never written. */
|
|
2137
|
+
declare const SKETCH_SHAPE_KINDS: readonly ["rectangle", "database", "queue", "person", "document", "note"];
|
|
2138
|
+
type SketchShapeKind = (typeof SKETCH_SHAPE_KINDS)[number];
|
|
2139
|
+
/** Half-slot lattice position (spec §31.3). Box children are box-relative. */
|
|
2140
|
+
interface SketchAt {
|
|
2141
|
+
readonly c: number;
|
|
2142
|
+
readonly r: number;
|
|
2143
|
+
}
|
|
2144
|
+
interface SketchNode {
|
|
2145
|
+
/** Synthetic stable id (parse-order); use alias/label indexes to resolve. */
|
|
2146
|
+
readonly id: string;
|
|
2147
|
+
readonly label: string;
|
|
2148
|
+
readonly alias?: string;
|
|
2149
|
+
readonly shape: SketchShapeKind;
|
|
2150
|
+
/** null → flow auto-place at layout */
|
|
2151
|
+
readonly at: SketchAt | null;
|
|
2152
|
+
/** tag metadata only (shape/at/alias are lifted out) */
|
|
2153
|
+
readonly metadata: Record<string, string>;
|
|
2154
|
+
/** Free-text markdown description (indented `>` lines under the shape).
|
|
2155
|
+
* Newline-joined; a small markdown subset renders in the card body. */
|
|
2156
|
+
readonly description?: string;
|
|
2157
|
+
/** owning box label (undefined = root) */
|
|
2158
|
+
readonly boxLabel?: string;
|
|
2159
|
+
readonly lineNumber: number;
|
|
2160
|
+
}
|
|
2161
|
+
type SketchEdgeHeads = 'one' | 'both' | 'none';
|
|
2162
|
+
interface SketchEdge {
|
|
2163
|
+
readonly sourceId: string;
|
|
2164
|
+
readonly targetId: string;
|
|
2165
|
+
readonly label?: string;
|
|
2166
|
+
readonly heads: SketchEdgeHeads;
|
|
2167
|
+
/** dashed = "secondary", NOT async (spec §31.4 divergence note) */
|
|
2168
|
+
readonly dashed: boolean;
|
|
2169
|
+
readonly metadata: Record<string, string>;
|
|
2170
|
+
readonly lineNumber: number;
|
|
2171
|
+
}
|
|
2172
|
+
interface SketchBox {
|
|
2173
|
+
/** `[<normalized label>]` — the infra group-id scheme */
|
|
2174
|
+
readonly id: string;
|
|
2175
|
+
readonly label: string;
|
|
2176
|
+
readonly alias?: string;
|
|
2177
|
+
readonly at: SketchAt | null;
|
|
2178
|
+
readonly metadata: Record<string, string>;
|
|
2179
|
+
readonly collapsed: boolean;
|
|
2180
|
+
/** child node ids, declaration order */
|
|
2181
|
+
readonly children: readonly string[];
|
|
2182
|
+
readonly lineNumber: number;
|
|
2183
|
+
}
|
|
2184
|
+
interface SketchOptions {
|
|
2185
|
+
readonly noLegend: boolean;
|
|
2186
|
+
readonly solidFill: boolean;
|
|
2187
|
+
/** `no-descriptions` directive (mindmap `hd` standard): hide the card
|
|
2188
|
+
* metadata rows so each card is just its name. */
|
|
2189
|
+
readonly noDescriptions: boolean;
|
|
2190
|
+
}
|
|
2191
|
+
interface ParsedSketch {
|
|
2192
|
+
readonly type: 'sketch';
|
|
2193
|
+
readonly title: string | null;
|
|
2194
|
+
readonly titleLineNumber: number | null;
|
|
2195
|
+
readonly nodes: readonly SketchNode[];
|
|
2196
|
+
readonly edges: readonly SketchEdge[];
|
|
2197
|
+
readonly boxes: readonly SketchBox[];
|
|
2198
|
+
readonly tagGroups: readonly TagGroup[];
|
|
2199
|
+
readonly options: SketchOptions;
|
|
2200
|
+
readonly diagnostics: readonly DgmoError[];
|
|
2201
|
+
readonly error: string | null;
|
|
2202
|
+
}
|
|
2203
|
+
declare function isSketchShapeKind(value: string): value is SketchShapeKind;
|
|
2204
|
+
|
|
2205
|
+
declare function parseSketch(content: string, palette?: PaletteColors): ParsedSketch;
|
|
2206
|
+
|
|
2207
|
+
interface SketchLayoutNode {
|
|
2208
|
+
readonly id: string;
|
|
2209
|
+
readonly label: string;
|
|
2210
|
+
readonly shape: SketchShapeKind;
|
|
2211
|
+
readonly metadata: Record<string, string>;
|
|
2212
|
+
readonly description?: string;
|
|
2213
|
+
readonly boxLabel?: string;
|
|
2214
|
+
readonly lineNumber: number;
|
|
2215
|
+
/** resolved ABSOLUTE half-slot origin */
|
|
2216
|
+
readonly slot: {
|
|
2217
|
+
c: number;
|
|
2218
|
+
r: number;
|
|
2219
|
+
};
|
|
2220
|
+
readonly x: number;
|
|
2221
|
+
readonly y: number;
|
|
2222
|
+
readonly w: number;
|
|
2223
|
+
readonly h: number;
|
|
2224
|
+
/** set when this card is a folded box (draws the collapse-bar) */
|
|
2225
|
+
readonly isCollapsedBox?: boolean;
|
|
2226
|
+
readonly childCount?: number;
|
|
2227
|
+
}
|
|
2228
|
+
interface SketchLayoutBox {
|
|
2229
|
+
readonly id: string;
|
|
2230
|
+
readonly label: string;
|
|
2231
|
+
readonly metadata: Record<string, string>;
|
|
2232
|
+
readonly lineNumber: number;
|
|
2233
|
+
readonly x: number;
|
|
2234
|
+
readonly y: number;
|
|
2235
|
+
readonly w: number;
|
|
2236
|
+
readonly h: number;
|
|
2237
|
+
readonly bandH: number;
|
|
2238
|
+
}
|
|
2239
|
+
interface SketchLayout {
|
|
2240
|
+
readonly nodes: readonly SketchLayoutNode[];
|
|
2241
|
+
readonly boxes: readonly SketchLayoutBox[];
|
|
2242
|
+
readonly edges: readonly SketchEdge[];
|
|
2243
|
+
readonly width: number;
|
|
2244
|
+
readonly height: number;
|
|
2245
|
+
/** layout-time warnings (overlap auto-resolution) */
|
|
2246
|
+
readonly diagnostics: readonly DgmoError[];
|
|
2247
|
+
}
|
|
2248
|
+
interface SketchLayoutOptions {
|
|
2249
|
+
/** Box labels to fold; defaults to the authored `collapsed` flags. */
|
|
2250
|
+
readonly collapsedBoxes?: ReadonlySet<string>;
|
|
2251
|
+
}
|
|
2252
|
+
declare function layoutSketch(parsed: Pick<ParsedSketch, 'nodes' | 'edges' | 'boxes'>, options?: SketchLayoutOptions): SketchLayout;
|
|
2253
|
+
|
|
2254
|
+
interface SketchRenderOptions {
|
|
2255
|
+
exportDims?: {
|
|
2256
|
+
width?: number;
|
|
2257
|
+
height?: number;
|
|
2258
|
+
};
|
|
2259
|
+
activeTagGroup?: string | null;
|
|
2260
|
+
exportMode?: boolean;
|
|
2261
|
+
onClickItem?: (lineNumber: number) => void;
|
|
2262
|
+
/** View-state `hd` (hide descriptions): drop the metadata rows so each card
|
|
2263
|
+
* is just its header/name — the standard mindmap toggle, shelf-driven. */
|
|
2264
|
+
hideDescriptions?: boolean;
|
|
2265
|
+
}
|
|
2266
|
+
declare function renderSketch(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: SketchRenderOptions): void;
|
|
2267
|
+
interface SketchEdgeGeometry {
|
|
2268
|
+
sourceId: string;
|
|
2269
|
+
targetId: string;
|
|
2270
|
+
/** Pure cubic path — parsed as one cubic by label/bounds/hit-test consumers. */
|
|
2271
|
+
d: string;
|
|
2272
|
+
mid: {
|
|
2273
|
+
x: number;
|
|
2274
|
+
y: number;
|
|
2275
|
+
};
|
|
2276
|
+
/** Visible stroke path WITH crossing-hops, when this edge hops another. The
|
|
2277
|
+
* renderer draws this if present; everything else still uses `d`. */
|
|
2278
|
+
dRender?: string;
|
|
2279
|
+
}
|
|
2280
|
+
/**
|
|
2281
|
+
* The full edge-routing pipeline (side assignment + curved paths + group-port
|
|
2282
|
+
* snapping) as a pure function, so the renderer AND the app`s live-drag preview
|
|
2283
|
+
* draw edges with IDENTICAL geometry. `offsets` shifts individual nodes/boxes
|
|
2284
|
+
* by live pixel deltas (a dragged shape and its box children) — pass none for
|
|
2285
|
+
* the committed layout.
|
|
2286
|
+
*/
|
|
2287
|
+
declare function sketchEdgeGeometry(layout: SketchLayout, offsets?: ReadonlyMap<string, {
|
|
2288
|
+
dx: number;
|
|
2289
|
+
dy: number;
|
|
2290
|
+
}>): Array<SketchEdgeGeometry | null>;
|
|
2291
|
+
/** Export wrapper — the b&l precedent (thin spread). */
|
|
2292
|
+
declare function renderSketchForExport(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: {
|
|
2293
|
+
exportDims?: {
|
|
2294
|
+
width: number;
|
|
2295
|
+
height: number;
|
|
2296
|
+
};
|
|
2297
|
+
activeTagGroup?: string | null;
|
|
2298
|
+
exportMode?: boolean;
|
|
2299
|
+
hideDescriptions?: boolean;
|
|
2300
|
+
}): void;
|
|
2301
|
+
|
|
2302
|
+
interface SketchCollapseResult {
|
|
2303
|
+
/** Visible shapes (collapsed boxes' children removed). */
|
|
2304
|
+
readonly nodes: readonly SketchNode[];
|
|
2305
|
+
/** Boxes still rendered as frames (the expanded ones). */
|
|
2306
|
+
readonly boxes: readonly SketchBox[];
|
|
2307
|
+
/** Collapsed boxes — each renders as one virtual node card. */
|
|
2308
|
+
readonly virtualBoxes: readonly SketchBox[];
|
|
2309
|
+
/** Edges with endpoints re-targeted to virtual boxes; deduped. */
|
|
2310
|
+
readonly edges: readonly SketchEdge[];
|
|
2311
|
+
/** box label → immediate child count (for the collapse-bar affordance). */
|
|
2312
|
+
readonly collapsedChildCounts: ReadonlyMap<string, number>;
|
|
2313
|
+
}
|
|
2314
|
+
/**
|
|
2315
|
+
* @param collapsedLabels box LABELS to fold. Defaults to the authored
|
|
2316
|
+
* `collapsed` flags; the app/viewState passes an explicit set instead
|
|
2317
|
+
* (interactive-vs-export split — options win when supplied).
|
|
2318
|
+
*/
|
|
2319
|
+
declare function collapseSketch(parsed: Pick<ParsedSketch, 'nodes' | 'edges' | 'boxes'>, collapsedLabels?: ReadonlySet<string>): SketchCollapseResult;
|
|
2320
|
+
|
|
2321
|
+
declare const SKETCH_GEOMETRY: {
|
|
2322
|
+
/** px per grid cell (the dot-grid pitch) */
|
|
2323
|
+
readonly cellPx: 26;
|
|
2324
|
+
/** universal footprint width, in grid cells */
|
|
2325
|
+
readonly footprintCellsW: 8;
|
|
2326
|
+
/**
|
|
2327
|
+
* Legacy — the gap is now a derived half-unit (footprint/2 per axis), not
|
|
2328
|
+
* these cell counts. Kept only so the shape of SKETCH_GEOMETRY is stable.
|
|
2329
|
+
*/
|
|
2330
|
+
readonly gapCellsX: 4;
|
|
2331
|
+
readonly gapCellsY: 4;
|
|
2332
|
+
/** box reserved top band, px (spec decision 12) */
|
|
2333
|
+
readonly bandPx: 44;
|
|
2334
|
+
/** box frame padding around the children bbox, px */
|
|
2335
|
+
readonly boxPadPx: 26;
|
|
2336
|
+
/** edge-ring (connect hook) width as a fraction of footprint height */
|
|
2337
|
+
readonly ringFrac: 0.22;
|
|
2338
|
+
};
|
|
2339
|
+
/** Footprint width, px (208 at the default cell). */
|
|
2340
|
+
declare const SKETCH_FOOT_W: number;
|
|
2341
|
+
/**
|
|
2342
|
+
* Footprint height, px — the ONE universal size (spec §31.2). Every shape is a
|
|
2343
|
+
* golden-ratio landscape box: height ≈ width / φ, forced EVEN so half the
|
|
2344
|
+
* height is a whole pixel (the vertical half-unit). 208/φ = 128.6 → 128
|
|
2345
|
+
* (ratio 1.625). Uniform: every shape draws to exactly SKETCH_FOOT_W ×
|
|
2346
|
+
* SKETCH_FOOT_H. The org-card body (header + rule + ~4 rows) fits within it.
|
|
2347
|
+
*/
|
|
2348
|
+
declare const SKETCH_FOOT_H: number;
|
|
2349
|
+
/**
|
|
2350
|
+
* Horizontal half-unit pitch, px: HALF a footprint (104). This is the dot grid
|
|
2351
|
+
* AND the snap step — a footprint is 2 of these wide, so its left/right edges
|
|
2352
|
+
* both land on dots.
|
|
2353
|
+
*/
|
|
2354
|
+
declare const SKETCH_HALF_SLOT_X: number;
|
|
2355
|
+
/** Vertical half-unit pitch, px: half a footprint (64). */
|
|
2356
|
+
declare const SKETCH_HALF_SLOT_Y: number;
|
|
2357
|
+
/**
|
|
2358
|
+
* Minimum origin separation in half-units. A footprint spans 2 half-units and
|
|
2359
|
+
* the mandatory gap adds 1 more, so each shape claims a SEP×SEP (3×3) collision
|
|
2360
|
+
* block (unitRect in layout.ts); two shapes collide when their blocks overlap.
|
|
2361
|
+
* At exactly SEP apart the gap between footprints == one half-unit.
|
|
2362
|
+
*/
|
|
2363
|
+
declare const SKETCH_SEP = 3;
|
|
2364
|
+
/**
|
|
2365
|
+
* Full-slot pitch, px: footprint + gap (== SKETCH_SEP half-units). The
|
|
2366
|
+
* origin-to-origin distance between two edge-adjacent shapes. 312 × 192 —
|
|
2367
|
+
* horizontal spacing is unchanged from the old geometry, vertical is tighter.
|
|
2368
|
+
*/
|
|
2369
|
+
declare const SKETCH_SLOT_X: number;
|
|
2370
|
+
declare const SKETCH_SLOT_Y: number;
|
|
2371
|
+
/** Slot → px (origin of the footprint), before any canvas padding. */
|
|
2372
|
+
declare function sketchSlotToPx(c: number, r: number): {
|
|
2373
|
+
x: number;
|
|
2374
|
+
y: number;
|
|
2375
|
+
};
|
|
2376
|
+
|
|
2136
2377
|
interface FocusTarget {
|
|
2137
2378
|
readonly kind: 'box' | 'group';
|
|
2138
2379
|
/** Canonical endpoint key the parser uses for edges: a node label for a box,
|
|
@@ -2306,6 +2547,175 @@ interface SwimlaneRenderOptions {
|
|
|
2306
2547
|
}
|
|
2307
2548
|
declare function renderSwimlaneForExport(container: HTMLElement, parsed: ParsedSwimlane, layout: SwimlaneLayoutResult, palette: PaletteColors, isDark: boolean, opts?: SwimlaneRenderOptions): void;
|
|
2308
2549
|
|
|
2550
|
+
/** Recognized sex values (drives node color). `unknown` = no `sex:` key. */
|
|
2551
|
+
type FamilySex = 'm' | 'f' | 'unknown';
|
|
2552
|
+
/**
|
|
2553
|
+
* A person — identity is the normalized name. Declared standalone (with full
|
|
2554
|
+
* metadata) or first seen inside a union / as a child; later mentions merge
|
|
2555
|
+
* into the same person. Metadata lives ONLY on person lines (never per-side on
|
|
2556
|
+
* a union line — that form is unsupported).
|
|
2557
|
+
*/
|
|
2558
|
+
interface FamilyPerson {
|
|
2559
|
+
/** Canonical (display) name — globally unique after name-normalization. */
|
|
2560
|
+
readonly id: string;
|
|
2561
|
+
readonly label: string;
|
|
2562
|
+
/** Resolved from the `sex:` key (`unknown` when unset). */
|
|
2563
|
+
readonly sex: FamilySex;
|
|
2564
|
+
/** Fixed-key metadata in declaration order (b, d, bp, dp, occupation, …). */
|
|
2565
|
+
readonly metadata: Readonly<Record<string, string>>;
|
|
2566
|
+
/** Explicit trailing/inline color (raw recognized name), if any — overrides sex color. */
|
|
2567
|
+
readonly color?: string;
|
|
2568
|
+
/** Tag-group values applied to this person (`{ concern: 'royal' }`). */
|
|
2569
|
+
readonly tagMetadata: Readonly<Record<string, string>>;
|
|
2570
|
+
/** True when this person is an anonymous `?` placeholder (unmerged, muted card). */
|
|
2571
|
+
readonly placeholder?: boolean;
|
|
2572
|
+
readonly lineNumber: number;
|
|
2573
|
+
}
|
|
2574
|
+
/** One child of a union / single parent. */
|
|
2575
|
+
interface FamilyChild {
|
|
2576
|
+
/** Person id of the child. */
|
|
2577
|
+
readonly personId: string;
|
|
2578
|
+
/** True when the child line carried the bare `adopted` token (dashed edge). */
|
|
2579
|
+
readonly adopted: boolean;
|
|
2580
|
+
}
|
|
2581
|
+
/**
|
|
2582
|
+
* A union — a couple (1 or 2 parents) whose children are declared indented
|
|
2583
|
+
* beneath. A single parent is a union with exactly one parent. `metadata.m`
|
|
2584
|
+
* holds the marriage year (there is NO separate `marriageYear` field).
|
|
2585
|
+
*/
|
|
2586
|
+
interface FamilyUnion {
|
|
2587
|
+
/** Stable synthetic id (declaration order). */
|
|
2588
|
+
readonly id: string;
|
|
2589
|
+
/** 1–2 parent person ids. */
|
|
2590
|
+
readonly parents: readonly string[];
|
|
2591
|
+
/** Union-level metadata — only `m` (marriage year) is recognized. */
|
|
2592
|
+
readonly metadata: Readonly<Record<string, string>>;
|
|
2593
|
+
readonly children: readonly FamilyChild[];
|
|
2594
|
+
/** True when the union line carried the bare `divorced` token (dashed bar). */
|
|
2595
|
+
readonly divorced?: boolean;
|
|
2596
|
+
readonly lineNumber: number;
|
|
2597
|
+
}
|
|
2598
|
+
interface ParsedFamily {
|
|
2599
|
+
readonly title?: string;
|
|
2600
|
+
readonly titleLineNumber?: number;
|
|
2601
|
+
/** Persons keyed by normalized id, in first-seen declaration order via `.values()`. */
|
|
2602
|
+
readonly persons: ReadonlyMap<string, FamilyPerson>;
|
|
2603
|
+
readonly unions: readonly FamilyUnion[];
|
|
2604
|
+
readonly tagGroups: readonly TagGroup[];
|
|
2605
|
+
readonly options: Readonly<Record<string, string>>;
|
|
2606
|
+
readonly diagnostics: readonly DgmoError[];
|
|
2607
|
+
/** Set (fatal) on an ancestry cycle — the renderer bails before layout. */
|
|
2608
|
+
readonly error?: string | null;
|
|
2609
|
+
}
|
|
2610
|
+
/** A laid-out person card. Top-left origin (mirrors org's `LayoutNode`). */
|
|
2611
|
+
interface FamilyLayoutNode {
|
|
2612
|
+
readonly id: string;
|
|
2613
|
+
readonly label: string;
|
|
2614
|
+
readonly sex: FamilySex;
|
|
2615
|
+
readonly metadata: Readonly<Record<string, string>>;
|
|
2616
|
+
readonly color?: string;
|
|
2617
|
+
readonly tagMetadata: Readonly<Record<string, string>>;
|
|
2618
|
+
readonly x: number;
|
|
2619
|
+
readonly y: number;
|
|
2620
|
+
readonly width: number;
|
|
2621
|
+
readonly height: number;
|
|
2622
|
+
/** Assigned generation row (0 = top). */
|
|
2623
|
+
readonly row: number;
|
|
2624
|
+
/** Anonymous `?` placeholder — renderer draws a faint, solid-bordered, name-only card. */
|
|
2625
|
+
readonly placeholder?: boolean;
|
|
2626
|
+
/** Outside the `highlight` person's bloodline — renderer draws it faded. */
|
|
2627
|
+
readonly dimmed?: boolean;
|
|
2628
|
+
readonly lineNumber: number;
|
|
2629
|
+
}
|
|
2630
|
+
/** A horizontal marriage bar joining two spouse cards on one row. */
|
|
2631
|
+
interface FamilyMarriageBar {
|
|
2632
|
+
readonly unionId: string;
|
|
2633
|
+
/** Bar endpoints (always horizontal — spouses share a row). */
|
|
2634
|
+
readonly x1: number;
|
|
2635
|
+
readonly x2: number;
|
|
2636
|
+
readonly y: number;
|
|
2637
|
+
/** Midpoint (child bus drops from here). */
|
|
2638
|
+
readonly midX: number;
|
|
2639
|
+
/** Center of the visible gap between the cards — where the `m.` label sits
|
|
2640
|
+
* (offset from midX when the two cards differ in width, so the label never
|
|
2641
|
+
* tucks under the wider card). */
|
|
2642
|
+
readonly labelX: number;
|
|
2643
|
+
/** Marriage year (`metadata.m`), if any — drawn at the label position. */
|
|
2644
|
+
readonly year?: string;
|
|
2645
|
+
/** Dissolved union (`divorced` token) — renderer draws a dashed bar. */
|
|
2646
|
+
readonly divorced?: boolean;
|
|
2647
|
+
/** Outside the `highlight` bloodline — renderer draws it faded. */
|
|
2648
|
+
readonly dimmed?: boolean;
|
|
2649
|
+
readonly lineNumber: number;
|
|
2650
|
+
}
|
|
2651
|
+
/** A child drop edge (org bus-edge pattern: trunk + bar + per-child drops). */
|
|
2652
|
+
interface FamilyChildEdge {
|
|
2653
|
+
readonly unionId: string;
|
|
2654
|
+
readonly childId: string;
|
|
2655
|
+
/** Polyline points from the union anchor to the child card top. */
|
|
2656
|
+
readonly points: ReadonlyArray<{
|
|
2657
|
+
readonly x: number;
|
|
2658
|
+
readonly y: number;
|
|
2659
|
+
}>;
|
|
2660
|
+
/** Adopted children render a dashed drop. */
|
|
2661
|
+
readonly adopted: boolean;
|
|
2662
|
+
/** Outside the `highlight` bloodline — renderer draws it faded. */
|
|
2663
|
+
readonly dimmed?: boolean;
|
|
2664
|
+
}
|
|
2665
|
+
/** A collapsed ancestor shown as a small labeled dot above the focused card. */
|
|
2666
|
+
interface FamilyAncestorDot {
|
|
2667
|
+
readonly id: string;
|
|
2668
|
+
readonly label: string;
|
|
2669
|
+
readonly sex: FamilySex;
|
|
2670
|
+
readonly color?: string;
|
|
2671
|
+
readonly x: number;
|
|
2672
|
+
readonly y: number;
|
|
2673
|
+
}
|
|
2674
|
+
interface FamilyLayoutResult {
|
|
2675
|
+
readonly nodes: readonly FamilyLayoutNode[];
|
|
2676
|
+
readonly bars: readonly FamilyMarriageBar[];
|
|
2677
|
+
readonly edges: readonly FamilyChildEdge[];
|
|
2678
|
+
/** Focus mode: the focused person's parents, drawn as dots above their card. */
|
|
2679
|
+
readonly ancestors: readonly FamilyAncestorDot[];
|
|
2680
|
+
/** Top-center of the focused card, for the ancestor-trail connector. */
|
|
2681
|
+
readonly focusAnchor?: {
|
|
2682
|
+
readonly x: number;
|
|
2683
|
+
readonly y: number;
|
|
2684
|
+
};
|
|
2685
|
+
/** Per-occupied-row bands (for the `generations` gutter labels). */
|
|
2686
|
+
readonly rows: readonly {
|
|
2687
|
+
readonly row: number;
|
|
2688
|
+
readonly y: number;
|
|
2689
|
+
readonly height: number;
|
|
2690
|
+
}[];
|
|
2691
|
+
readonly width: number;
|
|
2692
|
+
readonly height: number;
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
declare function parseFamily(content: string, palette?: PaletteColors): ParsedFamily;
|
|
2696
|
+
|
|
2697
|
+
declare function layoutFamily(parsed: ParsedFamily, focusId?: string | null): FamilyLayoutResult;
|
|
2698
|
+
|
|
2699
|
+
interface FamilyRenderOptions {
|
|
2700
|
+
exportDims?: {
|
|
2701
|
+
width: number;
|
|
2702
|
+
height: number;
|
|
2703
|
+
};
|
|
2704
|
+
/**
|
|
2705
|
+
* App-preview display size (px). When set, the diagram is scaled to fit while
|
|
2706
|
+
* the title + legend stay at NATIVE size (always legible). Omit for export.
|
|
2707
|
+
*/
|
|
2708
|
+
fit?: {
|
|
2709
|
+
width: number;
|
|
2710
|
+
height: number;
|
|
2711
|
+
};
|
|
2712
|
+
activeTagGroup?: string | null;
|
|
2713
|
+
exportMode?: boolean;
|
|
2714
|
+
}
|
|
2715
|
+
declare function renderFamilyForExport(container: HTMLElement, parsed: ParsedFamily, layout: FamilyLayoutResult, palette: PaletteColors, isDark: boolean, opts?: FamilyRenderOptions): void;
|
|
2716
|
+
/** App-preview entry: scales the diagram to fit the container. */
|
|
2717
|
+
declare function renderFamily(container: HTMLElement, parsed: ParsedFamily, layout: FamilyLayoutResult, palette: PaletteColors, isDark: boolean, opts?: FamilyRenderOptions): void;
|
|
2718
|
+
|
|
2309
2719
|
interface SitemapNode {
|
|
2310
2720
|
readonly id: string;
|
|
2311
2721
|
readonly label: string;
|
|
@@ -4273,6 +4683,8 @@ interface EventLineOptions {
|
|
|
4273
4683
|
readonly noBox: boolean;
|
|
4274
4684
|
/** True when `no-legend` — hide the tag legend. */
|
|
4275
4685
|
readonly noLegend: boolean;
|
|
4686
|
+
/** True when `solid-fill` — opaque card / shelf fill instead of the soft tint. */
|
|
4687
|
+
readonly solidFill: boolean;
|
|
4276
4688
|
}
|
|
4277
4689
|
interface ParsedEventLine {
|
|
4278
4690
|
readonly type: 'event-line';
|
|
@@ -4318,6 +4730,444 @@ declare function clearEventLineMuted(container: HTMLElement): void;
|
|
|
4318
4730
|
declare function focusEventLine(container: HTMLElement, spec: EventLineFocus | null): void;
|
|
4319
4731
|
declare function renderEventLineForExport(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string): void;
|
|
4320
4732
|
|
|
4733
|
+
/** A resolved recurrence rule. Built by the parser, re-read by the ticker. */
|
|
4734
|
+
interface RecurRule {
|
|
4735
|
+
/** How `on` binds to the cadence. */
|
|
4736
|
+
readonly kind: 'month-day' | 'nth-weekday' | 'last-weekday' | 'weekly' | 'interval';
|
|
4737
|
+
/** month-day: 0-11. */
|
|
4738
|
+
readonly month?: number | undefined;
|
|
4739
|
+
/** month-day: 1-31. */
|
|
4740
|
+
readonly day?: number | undefined;
|
|
4741
|
+
/** nth-weekday: 1-5. */
|
|
4742
|
+
readonly nth?: number | undefined;
|
|
4743
|
+
/** nth/last/weekly: 0 (Sun) – 6 (Sat). */
|
|
4744
|
+
readonly weekday?: number | undefined;
|
|
4745
|
+
/** time-of-day hour 0-23 (default 0). */
|
|
4746
|
+
readonly hour: number;
|
|
4747
|
+
/** time-of-day minute 0-59 (default 0). */
|
|
4748
|
+
readonly minute: number;
|
|
4749
|
+
/** No `at` time given → the occurrence is the whole DAY (see resolveNext). */
|
|
4750
|
+
readonly allDay: boolean;
|
|
4751
|
+
/** interval cadence unit. */
|
|
4752
|
+
readonly intervalUnit?: 'day' | 'week' | 'month' | undefined;
|
|
4753
|
+
/** interval multiplier (>= 1). */
|
|
4754
|
+
readonly intervalN?: number | undefined;
|
|
4755
|
+
/** interval anchor epoch ms (from `from <date>`). */
|
|
4756
|
+
readonly anchorMs?: number | undefined;
|
|
4757
|
+
}
|
|
4758
|
+
type CountUnits = 'human' | 'days' | 'full' | 'clock' | 'weeks' | 'words' | 'compound';
|
|
4759
|
+
type RoundMode = 'up' | 'down' | 'nearest';
|
|
4760
|
+
/** Which `full`-mode segments show. */
|
|
4761
|
+
type Field = 'd' | 'h' | 'm' | 's';
|
|
4762
|
+
|
|
4763
|
+
interface ParsedCountdown {
|
|
4764
|
+
readonly type: 'countdown';
|
|
4765
|
+
readonly title: string | null;
|
|
4766
|
+
readonly titleLineNumber: number | null;
|
|
4767
|
+
/**
|
|
4768
|
+
* Canonical one-shot target string emitted verbatim into `data-dgmo-countdown`.
|
|
4769
|
+
* A bare `YYYY-MM-DD` stays a date (ticker resolves it to viewer-local
|
|
4770
|
+
* midnight); a datetime keeps its authored form; `now` resolves to a fixed
|
|
4771
|
+
* render-time instant. Null for recurring blocks.
|
|
4772
|
+
*/
|
|
4773
|
+
readonly target: string | null;
|
|
4774
|
+
/**
|
|
4775
|
+
* The one-shot target resolved to absolute epoch ms (bare date → local
|
|
4776
|
+
* midnight; `now` → the render-time instant). Null for recurring blocks or an
|
|
4777
|
+
* unparseable target. For one-shot blocks this equals `resolvedMs`.
|
|
4778
|
+
*/
|
|
4779
|
+
readonly targetMs: number | null;
|
|
4780
|
+
/** The recurrence rule, or null for one-shot blocks. */
|
|
4781
|
+
readonly rule: RecurRule | null;
|
|
4782
|
+
/**
|
|
4783
|
+
* The resolved next instant (epoch ms). For one-shot == the target; for
|
|
4784
|
+
* recurring == `resolveNext(rule, renderTime)`. Null when unresolvable.
|
|
4785
|
+
*/
|
|
4786
|
+
readonly resolvedMs: number | null;
|
|
4787
|
+
/** Whether the resolved instant carries a meaningful time-of-day (drives footer). */
|
|
4788
|
+
readonly hasTime: boolean;
|
|
4789
|
+
readonly since: number | null;
|
|
4790
|
+
/** Eyebrow template: `Nth` → ordinal word, `N` → the number. Null → "Nth <title>". */
|
|
4791
|
+
readonly sinceLabel: string | null;
|
|
4792
|
+
readonly units: CountUnits;
|
|
4793
|
+
readonly round: RoundMode;
|
|
4794
|
+
readonly fields: readonly Field[];
|
|
4795
|
+
readonly lang: string;
|
|
4796
|
+
/** Text shown on the occurrence day (recurring only). */
|
|
4797
|
+
readonly onDay: string | null;
|
|
4798
|
+
/** Explicit text shown once a one-shot target passes; null → count UP ("N ago"). */
|
|
4799
|
+
readonly expired: string | null;
|
|
4800
|
+
/**
|
|
4801
|
+
* Free-text note under the ancillary line — inline (`note buy flowers`) or a
|
|
4802
|
+
* `note` header + indented body lines. Simple markdown (**bold** / *italic* /
|
|
4803
|
+
* `code` / links / `- ` bullets), like `goal`'s caption.
|
|
4804
|
+
*/
|
|
4805
|
+
readonly note: string | null;
|
|
4806
|
+
/**
|
|
4807
|
+
* Suppress the "you-are-here → event" calendar band. The band is **default-on**
|
|
4808
|
+
* for every date-bearing countdown (the renderer auto-picks the tier from the
|
|
4809
|
+
* span to the target — §36.6); `no-visual` collapses the chart to the header.
|
|
4810
|
+
*/
|
|
4811
|
+
readonly noVisual: boolean;
|
|
4812
|
+
/**
|
|
4813
|
+
* Resolved trailing-token / `color:` hex, if any. Sets the gradient's HOT
|
|
4814
|
+
* endpoint (the target color); defaults to red when unset.
|
|
4815
|
+
*/
|
|
4816
|
+
readonly color?: string;
|
|
4817
|
+
readonly diagnostics: readonly DgmoError[];
|
|
4818
|
+
readonly error: string | null;
|
|
4819
|
+
}
|
|
4820
|
+
|
|
4821
|
+
/**
|
|
4822
|
+
* Resolve a one-shot target string to absolute epoch ms. A bare `YYYY-MM-DD` is
|
|
4823
|
+
* **local** midnight (JS `new Date("2026-08-21")` would be UTC midnight — wrong
|
|
4824
|
+
* for "days until"); a datetime with no offset is local; an offset is honored.
|
|
4825
|
+
*/
|
|
4826
|
+
declare function targetToMs(target: string): number | null;
|
|
4827
|
+
declare function parseCountdown(content: string, palette?: PaletteColors): ParsedCountdown;
|
|
4828
|
+
|
|
4829
|
+
declare function renderCountdown(container: HTMLDivElement, parsed: ParsedCountdown, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
4830
|
+
declare function renderCountdownForExport(container: HTMLDivElement, parsed: ParsedCountdown, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
4831
|
+
|
|
4832
|
+
/** Run one update pass over every countdown node inside `root`. */
|
|
4833
|
+
declare function tickCountdowns(root?: ParentNode): void;
|
|
4834
|
+
/**
|
|
4835
|
+
* Update `root` immediately, then (once per page) register a single 1s interval
|
|
4836
|
+
* that re-scans the whole document. Idempotent — safe to call on every render /
|
|
4837
|
+
* route change (mirrors remark's `clickHandlerBound` guard). No-op with no DOM.
|
|
4838
|
+
*/
|
|
4839
|
+
declare function startCountdowns(root?: ParentNode): void;
|
|
4840
|
+
|
|
4841
|
+
/** Which clock face the whole board renders. EITHER/OR — never both. */
|
|
4842
|
+
type ClockFace = 'analog' | 'digital';
|
|
4843
|
+
/**
|
|
4844
|
+
* What dimension drives each zone's color (`color-by <dimension>`). Time + label
|
|
4845
|
+
* render in the resolved solid color; the lane/column gets a soft wash of it. A
|
|
4846
|
+
* hand-set per-zone shade ("defined") always overrides the dimension for that
|
|
4847
|
+
* zone — `color-by` only fills the zones you did not color yourself.
|
|
4848
|
+
* • `place` — a distinct palette accent per place (identity, default)
|
|
4849
|
+
* • `work` — green in-hours / amber closing / grey off (needs `hours`)
|
|
4850
|
+
* • `daylight` — warm sun-up / cool sun-down
|
|
4851
|
+
* • `time` — continuous dawn→dusk→night ramp by local hour
|
|
4852
|
+
* • `none` — neutral greyscale (`color-by none`)
|
|
4853
|
+
*/
|
|
4854
|
+
type ClockColorBy = 'place' | 'work' | 'daylight' | 'time' | 'none';
|
|
4855
|
+
/** A resolved working window, applied in each row's OWN zone-local time. */
|
|
4856
|
+
interface WorkWindow {
|
|
4857
|
+
/** Minutes past midnight the window opens (e.g. 9:00 → 540). */
|
|
4858
|
+
readonly startMin: number;
|
|
4859
|
+
/** Minutes past midnight the window closes (e.g. 17:00 → 1020). */
|
|
4860
|
+
readonly endMin: number;
|
|
4861
|
+
/**
|
|
4862
|
+
* Working days as a set keyed by the 3-letter weekday abbreviation the
|
|
4863
|
+
* `Intl` short weekday emits (`Mon`,`Tue`,…,`Sun`). A day maps to `true` when
|
|
4864
|
+
* it is a working day. Defaults to Mon–Fri when `hours` is given without
|
|
4865
|
+
* `days`.
|
|
4866
|
+
*/
|
|
4867
|
+
readonly days: Record<string, boolean>;
|
|
4868
|
+
}
|
|
4869
|
+
/** One place/person row on the board. */
|
|
4870
|
+
interface ClockEntry {
|
|
4871
|
+
/** The place name (before the zone token), e.g. "New York". */
|
|
4872
|
+
readonly place: string;
|
|
4873
|
+
/** The IANA zone token, e.g. "America/New_York". */
|
|
4874
|
+
readonly zone: string;
|
|
4875
|
+
/** The display alias (`as <label>`), defaulting to `place`. */
|
|
4876
|
+
readonly label: string;
|
|
4877
|
+
/** Representative latitude for sundown math, or null when unknown. */
|
|
4878
|
+
readonly lat: number | null;
|
|
4879
|
+
/** Representative longitude for sundown math, or null when unknown. */
|
|
4880
|
+
readonly lon: number | null;
|
|
4881
|
+
/** Resolved trailing palette color (a faint row tint), or null. */
|
|
4882
|
+
readonly color: string | null;
|
|
4883
|
+
/** 1-based source line the entry was authored on. */
|
|
4884
|
+
readonly lineNumber: number;
|
|
4885
|
+
}
|
|
4886
|
+
interface ParsedClock {
|
|
4887
|
+
readonly type: 'clock';
|
|
4888
|
+
readonly title: string | null;
|
|
4889
|
+
readonly titleLineNumber: number | null;
|
|
4890
|
+
/** Board-level face. Default `digital`. */
|
|
4891
|
+
readonly face: ClockFace;
|
|
4892
|
+
/** 12-hour am/pm display when true (default), 24-hour when false (`time-24`). */
|
|
4893
|
+
readonly hours12: boolean;
|
|
4894
|
+
/** Whether the sundown/sunrise line is drawn (default on; `sun false` to hide). */
|
|
4895
|
+
readonly sun: boolean;
|
|
4896
|
+
/** `no-title` directive — suppress the title AND the working-window summary. */
|
|
4897
|
+
readonly noTitle: boolean;
|
|
4898
|
+
/** `direction lr` lays entries out as vertical columns (time on top); default rows. */
|
|
4899
|
+
readonly columns: boolean;
|
|
4900
|
+
/** What drives each zone's color. Default `place`; disable via `color-by none`. */
|
|
4901
|
+
readonly colorBy: ClockColorBy;
|
|
4902
|
+
/** The working window, or null when no `hours` directive was given. */
|
|
4903
|
+
readonly work: WorkWindow | null;
|
|
4904
|
+
readonly entries: readonly ClockEntry[];
|
|
4905
|
+
readonly diagnostics: readonly DgmoError[];
|
|
4906
|
+
readonly error: string | null;
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4909
|
+
declare function parseClock(content: string, palette?: PaletteColors): ParsedClock;
|
|
4910
|
+
|
|
4911
|
+
declare function renderClock(container: HTMLDivElement, parsed: ParsedClock, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
4912
|
+
declare function renderClockForExport(container: HTMLDivElement, parsed: ParsedClock, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
4913
|
+
|
|
4914
|
+
/** Run one update pass over every clock row inside `root`. */
|
|
4915
|
+
declare function tickClocks(root?: ParentNode): void;
|
|
4916
|
+
/**
|
|
4917
|
+
* Update `root` immediately, then (once per page) register a single 1s interval
|
|
4918
|
+
* that re-scans the whole document. Idempotent — safe to call on every render /
|
|
4919
|
+
* route change. No-op with no DOM.
|
|
4920
|
+
*/
|
|
4921
|
+
declare function startClocks(root?: ParentNode): void;
|
|
4922
|
+
|
|
4923
|
+
/** A named part annotation (`chest e: Primary` + bare-body notes). */
|
|
4924
|
+
interface BodyPart {
|
|
4925
|
+
/** Canonical part name as written (label text). */
|
|
4926
|
+
readonly name: string;
|
|
4927
|
+
/** Tag metadata — keys are `tagAttrKey(group)` (e.g. `{ effort: 'Primary' }`). */
|
|
4928
|
+
readonly metadata: Readonly<Record<string, string>>;
|
|
4929
|
+
/** Bare indented body lines (markdown-light; `- ` bullets normalized). */
|
|
4930
|
+
readonly notes: readonly string[];
|
|
4931
|
+
readonly lineNumber: number;
|
|
4932
|
+
/**
|
|
4933
|
+
* Optional anatomical side (patient's own left/right) from a `left `/`right `
|
|
4934
|
+
* prefix, e.g. `right pec`. Aims the leader at just that side's component.
|
|
4935
|
+
*/
|
|
4936
|
+
readonly side?: 'left' | 'right';
|
|
4937
|
+
}
|
|
4938
|
+
type BodyView = 'front' | 'back';
|
|
4939
|
+
type BodySex = 'male' | 'female';
|
|
4940
|
+
interface BodyOptions {
|
|
4941
|
+
/** Figure form: `muscle` (default) · `skin` · `skeletal` (reserved). */
|
|
4942
|
+
readonly form: 'muscle' | 'skin' | 'skeletal';
|
|
4943
|
+
/** `male` (default) · `female`. */
|
|
4944
|
+
readonly sex: BodySex;
|
|
4945
|
+
/** Requested views in declaration order — `['front']` default; both when the
|
|
4946
|
+
* diagram names `front` and `back` (rendered side by side). */
|
|
4947
|
+
readonly views: readonly BodyView[];
|
|
4948
|
+
/** True when `no-legend` — hide the tag legend. */
|
|
4949
|
+
readonly noLegend: boolean;
|
|
4950
|
+
}
|
|
4951
|
+
interface ParsedBody {
|
|
4952
|
+
readonly title: string | null;
|
|
4953
|
+
readonly titleLineNumber: number | null;
|
|
4954
|
+
readonly options: BodyOptions;
|
|
4955
|
+
readonly tagGroups: readonly TagGroup[];
|
|
4956
|
+
readonly parts: readonly BodyPart[];
|
|
4957
|
+
readonly diagnostics: readonly DgmoError[];
|
|
4958
|
+
readonly error?: DgmoError;
|
|
4959
|
+
}
|
|
4960
|
+
/** A resolvable catalog entry: its path geometry + a baked leader anchor. */
|
|
4961
|
+
interface BodyPartGeometry {
|
|
4962
|
+
readonly paths: readonly string[];
|
|
4963
|
+
/** Union centroid — used for gutter side (L/R) + vertical ordering. */
|
|
4964
|
+
readonly anchor: {
|
|
4965
|
+
readonly x: number;
|
|
4966
|
+
readonly y: number;
|
|
4967
|
+
};
|
|
4968
|
+
/**
|
|
4969
|
+
* Centroids of each disjoint muscle component (e.g. left + right pec). The
|
|
4970
|
+
* renderer aims a leader at whichever component sits nearest the label, so a
|
|
4971
|
+
* bilateral muscle connects to the side it's labelled on — not the midline.
|
|
4972
|
+
*/
|
|
4973
|
+
readonly centers?: ReadonlyArray<{
|
|
4974
|
+
readonly x: number;
|
|
4975
|
+
readonly y: number;
|
|
4976
|
+
}>;
|
|
4977
|
+
}
|
|
4978
|
+
/** One figure: silhouette + muscle geometry + catalog lookup. */
|
|
4979
|
+
interface BodyFigure {
|
|
4980
|
+
/** SVG viewBox, e.g. `"0 0 724 1448"`. */
|
|
4981
|
+
readonly viewBox: string;
|
|
4982
|
+
/** True visible extent of the figure (outline + head + hair) in viewBox
|
|
4983
|
+
* coords — used to align/scale figures by real body size, not the padded
|
|
4984
|
+
* viewBox, so front/back line up exactly. */
|
|
4985
|
+
readonly contentBox: {
|
|
4986
|
+
readonly x: number;
|
|
4987
|
+
readonly y: number;
|
|
4988
|
+
readonly w: number;
|
|
4989
|
+
readonly h: number;
|
|
4990
|
+
};
|
|
4991
|
+
/** Silhouette outline path `d`. */
|
|
4992
|
+
readonly outline: string;
|
|
4993
|
+
/** Every muscle path `d` (gray base fill). */
|
|
4994
|
+
readonly base: readonly string[];
|
|
4995
|
+
/** Head silhouette path(s) — excluded from `outline`; used by skin form. */
|
|
4996
|
+
readonly headPaths: readonly string[];
|
|
4997
|
+
/** Hair path(s) — drawn atop the head in skin form. */
|
|
4998
|
+
readonly hairPaths: readonly string[];
|
|
4999
|
+
/** Catalog: canonical name (fine or slug-group) → geometry + anchor. */
|
|
5000
|
+
readonly parts: Readonly<Record<string, BodyPartGeometry>>;
|
|
5001
|
+
}
|
|
5002
|
+
|
|
5003
|
+
declare function parseBody(content: string, palette?: PaletteColors): ParsedBody;
|
|
5004
|
+
|
|
5005
|
+
declare function renderBody(container: HTMLDivElement, parsed: ParsedBody, palette: PaletteColors, _isDark: boolean, _onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, tagOverride?: string): void;
|
|
5006
|
+
declare function renderBodyForExport(container: HTMLDivElement, parsed: ParsedBody, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string): void;
|
|
5007
|
+
|
|
5008
|
+
/** Render face. `bar` is the default (no mode flag). */
|
|
5009
|
+
type GoalMode = 'bar' | 'thermometer' | 'gauge';
|
|
5010
|
+
interface GoalOptions {
|
|
5011
|
+
/** Hide the `%` label. */
|
|
5012
|
+
readonly noPercent: boolean;
|
|
5013
|
+
/** Hide the raw `now / target` label. */
|
|
5014
|
+
readonly noValue: boolean;
|
|
5015
|
+
/** Full-saturation fill instead of the 25% tint. */
|
|
5016
|
+
readonly solidFill: boolean;
|
|
5017
|
+
/** Hide the banner title. */
|
|
5018
|
+
readonly noTitle: boolean;
|
|
5019
|
+
/** Disable auto traffic-light fill color (fall back to the palette color). */
|
|
5020
|
+
readonly noAutoColor: boolean;
|
|
5021
|
+
/** Suppress the `note` description block even when one is present. */
|
|
5022
|
+
readonly noNote: boolean;
|
|
5023
|
+
}
|
|
5024
|
+
interface ParsedGoal {
|
|
5025
|
+
readonly type: 'goal';
|
|
5026
|
+
readonly title: string | null;
|
|
5027
|
+
readonly titleLineNumber: number | null;
|
|
5028
|
+
/** Optional free-text caption shown under the value (via `note <text>`). */
|
|
5029
|
+
readonly description: string | null;
|
|
5030
|
+
readonly mode: GoalMode;
|
|
5031
|
+
/** Current value (raw; may be negative or exceed target). */
|
|
5032
|
+
readonly now: number;
|
|
5033
|
+
/** Goal value. `0` when missing/invalid — the renderer draws a 0% shell. */
|
|
5034
|
+
readonly target: number;
|
|
5035
|
+
/** False when `target` was missing or ≤ 0 (an error was emitted). */
|
|
5036
|
+
readonly hasTarget: boolean;
|
|
5037
|
+
/** Resolved trailing-token / `color:` hex, if any. */
|
|
5038
|
+
readonly color?: string;
|
|
5039
|
+
readonly options: GoalOptions;
|
|
5040
|
+
readonly diagnostics: readonly DgmoError[];
|
|
5041
|
+
readonly error: string | null;
|
|
5042
|
+
}
|
|
5043
|
+
|
|
5044
|
+
declare function parseGoal(content: string, palette?: PaletteColors): ParsedGoal;
|
|
5045
|
+
|
|
5046
|
+
declare function renderGoal(container: HTMLDivElement, parsed: ParsedGoal, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
5047
|
+
declare function renderGoalForExport(container: HTMLDivElement, parsed: ParsedGoal, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
5048
|
+
|
|
5049
|
+
type BracketMode = 'single-elim' | 'double-elim';
|
|
5050
|
+
/** One authored match line. `p1` is left of the keyword (= winner if decided). */
|
|
5051
|
+
interface RawMatch {
|
|
5052
|
+
/** Left operand — the winner for a `beats` line. */
|
|
5053
|
+
readonly p1: string;
|
|
5054
|
+
/** Right operand — the loser for a `beats` line. */
|
|
5055
|
+
readonly p2: string;
|
|
5056
|
+
/** True for `beats` (decided); false for `vs` (pending). */
|
|
5057
|
+
readonly decided: boolean;
|
|
5058
|
+
/** Cosmetic score text (`2-1`), if present. Never changes the winner (§3). */
|
|
5059
|
+
readonly score: string | null;
|
|
5060
|
+
/** Owning side label, or null for an indent-0 championship / single ladder. */
|
|
5061
|
+
readonly side: string | null;
|
|
5062
|
+
/** Home competitor for this match (`@ Name`), or null. */
|
|
5063
|
+
readonly home: string | null;
|
|
5064
|
+
/** Prose commentary lines indented under the match (`- ` → •, inline md). */
|
|
5065
|
+
readonly commentary: readonly string[];
|
|
5066
|
+
readonly lineNumber: number;
|
|
5067
|
+
}
|
|
5068
|
+
/** A `seed N Name` declaration (seeded mode only). */
|
|
5069
|
+
interface RawSeed {
|
|
5070
|
+
readonly seed: number;
|
|
5071
|
+
readonly name: string;
|
|
5072
|
+
readonly side: string | null;
|
|
5073
|
+
readonly lineNumber: number;
|
|
5074
|
+
}
|
|
5075
|
+
interface BracketSide {
|
|
5076
|
+
readonly label: string;
|
|
5077
|
+
/** Resolved trailing-token color for the side, if any. */
|
|
5078
|
+
readonly color?: string;
|
|
5079
|
+
}
|
|
5080
|
+
/** A round/column: its name plus an optional color (tints the label + column). */
|
|
5081
|
+
interface RoundDef {
|
|
5082
|
+
readonly name: string;
|
|
5083
|
+
readonly color?: string;
|
|
5084
|
+
}
|
|
5085
|
+
interface ParsedBracket {
|
|
5086
|
+
readonly type: 'bracket';
|
|
5087
|
+
readonly title: string | null;
|
|
5088
|
+
readonly titleLineNumber: number | null;
|
|
5089
|
+
readonly mode: BracketMode;
|
|
5090
|
+
/** True when any `seed` line was present → full-skeleton (day-0) rendering. */
|
|
5091
|
+
readonly seeded: boolean;
|
|
5092
|
+
/** Column definitions from `rounds` (entry round → inner), each colorable. */
|
|
5093
|
+
readonly roundNames: readonly RoundDef[];
|
|
5094
|
+
readonly sides: readonly BracketSide[];
|
|
5095
|
+
readonly matches: readonly RawMatch[];
|
|
5096
|
+
readonly seeds: readonly RawSeed[];
|
|
5097
|
+
/** Tag groups (block/org idiom) — a competitor's tag colors its box outline. */
|
|
5098
|
+
readonly tagGroups: readonly TagGroup[];
|
|
5099
|
+
/** competitor name → its metadata (`{ tk: 'MLB Ballpark' }`). */
|
|
5100
|
+
readonly competitorMeta: ReadonlyMap<string, Record<string, string>>;
|
|
5101
|
+
/** Resolved active tag group name (drives outline color + legend), or null. */
|
|
5102
|
+
readonly activeTag: string | null;
|
|
5103
|
+
/** Hide the tag legend. */
|
|
5104
|
+
readonly noLegend: boolean;
|
|
5105
|
+
/** Suppress round/column labels (`no-round`). */
|
|
5106
|
+
readonly noRounds: boolean;
|
|
5107
|
+
/** Winner accent color override (`accent <color>`); default blue. */
|
|
5108
|
+
readonly accentColor?: string;
|
|
5109
|
+
readonly diagnostics: readonly DgmoError[];
|
|
5110
|
+
readonly error: string | null;
|
|
5111
|
+
}
|
|
5112
|
+
|
|
5113
|
+
declare function parseBracket(content: string, palette?: PaletteColors): ParsedBracket;
|
|
5114
|
+
|
|
5115
|
+
declare function renderBracket(container: HTMLDivElement, parsed: ParsedBracket, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
5116
|
+
declare function renderBracketForExport(container: HTMLDivElement, parsed: ParsedBracket, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
|
|
5117
|
+
|
|
5118
|
+
interface ConnectorPoint {
|
|
5119
|
+
readonly x: number;
|
|
5120
|
+
/** Origin y. For a decided child this is the winner box; for an undecided
|
|
5121
|
+
* child `yA`/`yB` are its two boxes (renderer draws a `]` merge). */
|
|
5122
|
+
readonly y: number;
|
|
5123
|
+
readonly yA: number;
|
|
5124
|
+
readonly yB: number;
|
|
5125
|
+
}
|
|
5126
|
+
interface LaidMatch {
|
|
5127
|
+
readonly round: number;
|
|
5128
|
+
readonly side: string | null;
|
|
5129
|
+
/** Center x of this match's two boxes. */
|
|
5130
|
+
readonly x: number;
|
|
5131
|
+
/** Center y between the two boxes. */
|
|
5132
|
+
readonly y: number;
|
|
5133
|
+
readonly top: string | null;
|
|
5134
|
+
readonly bot: string | null;
|
|
5135
|
+
readonly winner: 'top' | 'bot' | null;
|
|
5136
|
+
readonly score: string | null;
|
|
5137
|
+
/** Both participants known but undecided (`vs`). */
|
|
5138
|
+
readonly pending: boolean;
|
|
5139
|
+
readonly isChampionship: boolean;
|
|
5140
|
+
/** Origin point of the connector into the top box (child winner), or null. */
|
|
5141
|
+
readonly topFrom: ConnectorPoint | null;
|
|
5142
|
+
readonly botFrom: ConnectorPoint | null;
|
|
5143
|
+
/** Prose commentary lines rendered under the match. */
|
|
5144
|
+
readonly commentary: readonly string[];
|
|
5145
|
+
/** Explicit home competitor (`@ Name`), or null. */
|
|
5146
|
+
readonly home: string | null;
|
|
5147
|
+
readonly lineNumber: number | null;
|
|
5148
|
+
}
|
|
5149
|
+
interface ColumnLabel {
|
|
5150
|
+
readonly x: number;
|
|
5151
|
+
readonly label: string;
|
|
5152
|
+
/** Round color — tints the label and shades the column. */
|
|
5153
|
+
readonly color?: string;
|
|
5154
|
+
}
|
|
5155
|
+
interface BracketLayout {
|
|
5156
|
+
readonly matches: readonly LaidMatch[];
|
|
5157
|
+
readonly columns: readonly ColumnLabel[];
|
|
5158
|
+
readonly sideLabels: readonly {
|
|
5159
|
+
x0: number;
|
|
5160
|
+
x1: number;
|
|
5161
|
+
label: string;
|
|
5162
|
+
color?: string;
|
|
5163
|
+
}[];
|
|
5164
|
+
readonly width: number;
|
|
5165
|
+
readonly height: number;
|
|
5166
|
+
readonly champion: string | null;
|
|
5167
|
+
readonly diagnostics: readonly DgmoError[];
|
|
5168
|
+
}
|
|
5169
|
+
declare function layoutBracket(parsed: ParsedBracket): BracketLayout;
|
|
5170
|
+
|
|
4321
5171
|
type VCNodeKind = 'commit' | 'merge' | 'cherry';
|
|
4322
5172
|
type VCCommitType = 'normal' | 'highlight' | 'reverse';
|
|
4323
5173
|
type VCDirection = 'LR' | 'TB' | 'BT';
|
|
@@ -5716,4 +6566,4 @@ declare function parseFirstLine(line: string): {
|
|
|
5716
6566
|
title: string | undefined;
|
|
5717
6567
|
} | null;
|
|
5718
6568
|
|
|
5719
|
-
export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BlockCell, type BlockGrid, type BlockLayoutItem, type BlockLayoutResult, type BlockNode, type BlockOptions, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, DgmoError, type DiagramSymbols, type Duration, type DurationUnit, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EventLineEra, type EventLineEvent, type EventLineFocus, type EventLineOptions, type ExpandedActivity, type ExtendedChartType, type FocusOrgResult, type FocusResult, type FocusTarget, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, GeoExtent, type GetOrCreateNameResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, INVALID_COLOR_CODE, INVALID_CSS_COLOR_HEX, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, MapData, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PaletteColors, PaletteConfig, type ParseInArrowLabelResult, type ParsedBlock, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedCycle, type ParsedERDiagram, type ParsedEventLine, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedSwimlane, type ParsedTechRadar, type ParsedTreemap, type ParsedVersionControl, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PlacedLabel, type ProjectedCity, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type RadialCell, type RadialLayoutResult, type ReadFileFn, type RegionToken, type RelationshipType, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedGroup$1 as ResolvedGroup, ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, ScaleContext, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type StateCollapseResult, type SwimEdge, type SwimEvent, type SwimLane, type SwimNode, type SwimPhase, type SwimShape, type LayoutBand as SwimlaneLayoutBand, type SwimlaneLayoutResult, TagEntry, TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type TreemapCell, type TreemapColorMode, type TreemapLayoutResult, type TreemapNode, type TreemapOptions, type VCBranch, type VCNode, type VCNote, type VCOptions, type VCRef, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, addDurationToDate, albersSkewFallback, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, authoredCollapsedIds, blueprintPalette, buildNoteMessageMap, buildRenderSequence, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, clearEventLineMuted, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, displayName, extractSymbols$2 as extractClassSymbols, extractSymbols$1 as extractErSymbols, extractSymbols$3 as extractFlowchartSymbols, extractSymbols as extractInfraSymbols, extractPertSymbols, focusBoxesAndLines, focusEventLine, focusOrgTree, formatDateLabel, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getRadarGeometry, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, invalidColorDiagnostic, isArchiveColumn, isInvalidColorToken, isRecognizedColorName, isSequenceBlock, isSequenceNote, layoutBlock, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutSwimlane, layoutTreemap, layoutTreemapRadial, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, measurePertAnalysisBlock, mix, mulberry32, nearestNamedColor, nord, nordPalette, normalizeName, normalizePertSourceForShare, orderArcNodes, parseAndLayoutInfra, parseBlock, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseCycle, parseDataRowValues, parseERDiagram, parseEventLine, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseState, parseSwimlane, parseTechRadar, parseTimelineDate, parseTreemap, parseVersionControl, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, relayoutPert, render, renderArcDiagram, renderBlock, renderBlockForExport, renderBoxesAndLines, renderBoxesAndLinesForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderEventLine, renderEventLineForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderSwimlaneForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderTreemap, renderTreemapForExport, renderTreemapRadial, renderTreemapRadialForExport, renderVenn, renderVersionControl, renderVersionControlForExport, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, sampleBetaPert, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, slatePalette, tidewaterPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };
|
|
6569
|
+
export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BlockCell, type BlockGrid, type BlockLayoutItem, type BlockLayoutResult, type BlockNode, type BlockOptions, type BodyFigure, type BodyOptions, type BodyPart, type BracketMode, type BracketSide, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type ClockEntry, type ClockFace, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type CountUnits, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, DgmoError, type DiagramSymbols, type Duration, type DurationUnit, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EventLineEra, type EventLineEvent, type EventLineFocus, type EventLineOptions, type ExpandedActivity, type ExtendedChartType, type FamilyChild, type FamilyChildEdge, type FamilyLayoutNode, type FamilyLayoutResult, type FamilyMarriageBar, type FamilyPerson, type FamilySex, type FamilyUnion, type FocusOrgResult, type FocusResult, type FocusTarget, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, GeoExtent, type GetOrCreateNameResult, type GoalMode, type GoalOptions, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, INVALID_COLOR_CODE, INVALID_CSS_COLOR_HEX, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, MapData, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PaletteColors, PaletteConfig, type ParseInArrowLabelResult, type ParsedBlock, type ParsedBody, type ParsedBoxesAndLines, type ParsedBracket, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedClock, type ParsedCountdown, type ParsedCycle, type ParsedERDiagram, type ParsedEventLine, type ParsedExtendedChart, type ParsedFamily, type ParsedGantt, type ParsedGoal, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedSketch, type ParsedSwimlane, type ParsedTechRadar, type ParsedTreemap, type ParsedVersionControl, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PlacedLabel, type ProjectedCity, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type RadialCell, type RadialLayoutResult, type RawMatch, type RawSeed, type ReadFileFn, type RecurRule, type RegionToken, type RelationshipType, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedGroup$1 as ResolvedGroup, ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, type RoundMode, SKETCH_FOOT_H, SKETCH_FOOT_W, SKETCH_GEOMETRY, SKETCH_HALF_SLOT_X, SKETCH_HALF_SLOT_Y, SKETCH_SEP, SKETCH_SHAPE_KINDS, SKETCH_SLOT_X, SKETCH_SLOT_Y, ScaleContext, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type SketchAt, type SketchBox, type SketchCollapseResult, type SketchEdge, type SketchEdgeGeometry, type SketchEdgeHeads, type SketchLayout, type SketchLayoutBox, type SketchLayoutNode, type SketchLayoutOptions, type SketchNode, type SketchOptions, type SketchRenderOptions, type SketchShapeKind, type StateCollapseResult, type SwimEdge, type SwimEvent, type SwimLane, type SwimNode, type SwimPhase, type SwimShape, type LayoutBand as SwimlaneLayoutBand, type SwimlaneLayoutResult, TagEntry, TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type TreemapCell, type TreemapColorMode, type TreemapLayoutResult, type TreemapNode, type TreemapOptions, type VCBranch, type VCNode, type VCNote, type VCOptions, type VCRef, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, type WorkWindow, addDurationToDate, albersSkewFallback, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, authoredCollapsedIds, blueprintPalette, buildNoteMessageMap, buildRenderSequence, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, clearEventLineMuted, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseSketch, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, displayName, extractSymbols$2 as extractClassSymbols, extractSymbols$1 as extractErSymbols, extractSymbols$3 as extractFlowchartSymbols, extractSymbols as extractInfraSymbols, extractPertSymbols, focusBoxesAndLines, focusEventLine, focusOrgTree, formatDateLabel, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getRadarGeometry, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, invalidColorDiagnostic, isArchiveColumn, isInvalidColorToken, isRecognizedColorName, isSequenceBlock, isSequenceNote, isSketchShapeKind, layoutBlock, layoutBoxesAndLines, layoutBracket, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutFamily, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutSketch, layoutSwimlane, layoutTreemap, layoutTreemapRadial, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, measurePertAnalysisBlock, mix, mulberry32, nearestNamedColor, nord, nordPalette, normalizeName, normalizePertSourceForShare, orderArcNodes, parseAndLayoutInfra, parseBlock, parseBody, parseBoxesAndLines, parseBracket, parseC4, parseChart, parseClassDiagram, parseClock, parseCountdown, parseCycle, parseDataRowValues, parseERDiagram, parseEventLine, parseExtendedChart, parseFamily, parseFirstLine, parseFlowchart, parseGantt, parseGoal, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseSketch, parseState, parseSwimlane, parseTechRadar, parseTimelineDate, parseTreemap, parseVersionControl, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, relayoutPert, render, renderArcDiagram, renderBlock, renderBlockForExport, renderBody, renderBodyForExport, renderBoxesAndLines, renderBoxesAndLinesForExport, renderBracket, renderBracketForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderClock, renderClockForExport, renderCountdown, renderCountdownForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderEventLine, renderEventLineForExport, renderFamily, renderFamilyForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderGoal, renderGoalForExport, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSketch, renderSketchForExport, renderSlopeChart, renderState, renderStateForExport, renderSwimlaneForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderTreemap, renderTreemapForExport, renderTreemapRadial, renderTreemapRadialForExport, renderVenn, renderVersionControl, renderVersionControlForExport, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, sampleBetaPert, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, sketchEdgeGeometry, sketchSlotToPx, slatePalette, startClocks, startCountdowns, targetToMs, tickClocks, tickCountdowns, tidewaterPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };
|