@diagrammo/dgmo 0.94.0 → 0.96.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/README.md +1 -1
- package/dist/advanced.d.ts +97 -570
- package/dist/advanced.js +176 -352
- package/dist/block.d.ts +6 -0
- package/dist/block.js +59 -57
- package/dist/{calculator-BNH3GSJE.js → calculator-GIB7POFX.js} +2 -2
- package/dist/{chart-meta-BbjsRY7o.d.ts → chart-meta-uImk4eTn.d.ts} +1 -1
- package/dist/chart-meta.d.ts +2 -2
- package/dist/chart-meta.js +16 -16
- package/dist/{chart-types-Cppnp31G.d.ts → chart-types-CBVYiLqy.d.ts} +1 -5
- package/dist/{charts-d3-SZV2SFTM.js → charts-d3-IRP5VANE.js} +5 -5
- package/dist/{chunk-MLY5ALOV.js → chunk-2BYFNZVM.js} +2 -2
- package/dist/{chunk-OSSTOSXU.js → chunk-2M3K6GD2.js} +3 -6
- package/dist/{chunk-CDM6XMOT.js → chunk-34JOHSVE.js} +2 -2
- package/dist/chunk-35A3J4Z5.js +14 -0
- package/dist/{chunk-HI6R27YA.js → chunk-3W73ZP6W.js} +9 -4
- package/dist/{chunk-IHN6WDEY.js → chunk-4B45SNZH.js} +5 -5
- package/dist/{chunk-AULZD45V.js → chunk-5ARANBIE.js} +2 -2
- package/dist/{chunk-DDIOWNHS.js → chunk-5BG4OSWJ.js} +6 -6
- package/dist/{chunk-6JCTW74W.js → chunk-5G4DOOX2.js} +1 -1
- package/dist/{chunk-JT2BG7LM.js → chunk-5GU6C5WB.js} +3 -3
- package/dist/{chunk-EBIDNRSR.js → chunk-5H7SA5ZD.js} +1 -1
- package/dist/{chunk-CN4RDJDV.js → chunk-5LG526X7.js} +1 -1
- package/dist/{chunk-VDY2GR6U.js → chunk-67N26CER.js} +2 -2
- package/dist/{chunk-G3HZ4PGE.js → chunk-67RKJEKF.js} +6 -6
- package/dist/{chunk-D3K4U3ZM.js → chunk-6K2W3FH7.js} +8 -5
- package/dist/{chunk-C6G36F5S.js → chunk-7UWVHNPM.js} +4 -4
- package/dist/{chunk-FWVE373X.js → chunk-AQRSEQZV.js} +1 -1
- package/dist/{chunk-BQO24BDM.js → chunk-AUXUNV73.js} +1 -1
- package/dist/{chunk-3PP746YM.js → chunk-B2YVZ3QU.js} +1 -1
- package/dist/{chunk-QPQWY5RU.js → chunk-B5CEV7IR.js} +3 -3
- package/dist/{chunk-J7Q4AB23.js → chunk-B7BSRVNC.js} +2 -2
- package/dist/{chunk-IXHWS2HI.js → chunk-BD4O4D2A.js} +2 -2
- package/dist/{chunk-4TEPDQHJ.js → chunk-BUVLLK3D.js} +7 -7
- package/dist/{chunk-B25IWGDH.js → chunk-CD7VQCDL.js} +8 -8
- package/dist/{chunk-I37S3EZE.js → chunk-CP73WWLN.js} +371 -286
- package/dist/{chunk-GI5R5B3S.js → chunk-D7DGLJ7N.js} +2 -2
- package/dist/{chunk-3TWBMU7K.js → chunk-DKCVAQU3.js} +9 -9
- package/dist/{chunk-KBDMEOLI.js → chunk-DPNSDCR3.js} +1 -1
- package/dist/{chunk-BRGRIZQB.js → chunk-DWMQ24JR.js} +2 -2
- package/dist/{chunk-4XYZJTFO.js → chunk-EM5SA7NC.js} +11 -3
- package/dist/{chunk-AM42TLSZ.js → chunk-EMGNCG5C.js} +1 -1
- package/dist/{chunk-3KVUFHUJ.js → chunk-EPB3UEMD.js} +2 -2
- package/dist/{chunk-NXU4N5WT.js → chunk-EZ6BI5LL.js} +1 -1
- package/dist/{chunk-2ZW4NBYX.js → chunk-FBK32S4D.js} +1 -1
- package/dist/{chunk-2I4UQG7W.js → chunk-FHX373L5.js} +1 -1
- package/dist/{chunk-AQQUJEDN.js → chunk-FKJWZWNU.js} +1 -1
- package/dist/{chunk-TIIZIAGS.js → chunk-FUYEXLAN.js} +6 -13
- package/dist/{chunk-TASRGDYP.js → chunk-GEHK4UD5.js} +3 -3
- package/dist/{chunk-ZD3QCNB7.js → chunk-GLL237AP.js} +2 -2
- package/dist/{chunk-PGSGJLUR.js → chunk-GM2SLMQW.js} +2 -2
- package/dist/{chunk-NOQB4KMV.js → chunk-H7JVKUA5.js} +5 -5
- package/dist/{chunk-DNM3XZCK.js → chunk-H7RQG4PH.js} +2 -2
- package/dist/{chunk-7SXV7NUS.js → chunk-HH3DHNQA.js} +2 -2
- package/dist/{chunk-GWQRTA5W.js → chunk-HZX4QZGR.js} +1 -1
- package/dist/{chunk-KBEWVCK3.js → chunk-I2I2FKAK.js} +1 -1
- package/dist/{chunk-2HSHWPTO.js → chunk-I3ZRIMR7.js} +10 -10
- package/dist/{chunk-7IOZ6JE4.js → chunk-IKXQ6NVR.js} +7 -7
- package/dist/{chunk-XJQ6Z3FO.js → chunk-IQZSKWE5.js} +3 -3
- package/dist/{chunk-3GUEYQGL.js → chunk-ITDF3MWD.js} +3 -3
- package/dist/{chunk-JXGSTBW6.js → chunk-IU7XKZA6.js} +2 -2
- package/dist/{chunk-RITTLIDJ.js → chunk-IZFJZCF6.js} +4 -4
- package/dist/{chunk-DRQSB72S.js → chunk-JBAFAKGX.js} +7 -7
- package/dist/{chunk-VSAKEMDD.js → chunk-JCC3B2GS.js} +8 -2
- package/dist/{chunk-66JTY4AN.js → chunk-JRN2CRXJ.js} +1 -1
- package/dist/{chunk-2FDQEQID.js → chunk-K2SFH3GJ.js} +2 -2
- package/dist/{chunk-NM5V5EKY.js → chunk-K2WXMXI2.js} +1 -1
- package/dist/{chunk-XKCRKD2B.js → chunk-KDWEOT54.js} +24 -12
- package/dist/{chunk-PVWIBKV2.js → chunk-KQAPFIYF.js} +2 -2
- package/dist/{chunk-4SACN2C5.js → chunk-LGUFJ7Y2.js} +1 -1
- package/dist/{chunk-AYUSD4Z6.js → chunk-LRHPBWOY.js} +5 -5
- package/dist/{chunk-DLJJOCIT.js → chunk-M4ZUIW3J.js} +3 -3
- package/dist/{chunk-CIHHTS5B.js → chunk-MAYTYF5S.js} +3 -3
- package/dist/{chunk-5ZUZZDW5.js → chunk-MVUNMJKO.js} +46 -52
- package/dist/{chunk-KBHT5XEY.js → chunk-MYHR3PMH.js} +194 -35
- package/dist/{chunk-NBAAIRFP.js → chunk-NI4L6HEU.js} +4 -1
- package/dist/{chunk-A2A2I4Z4.js → chunk-O2HNVNKO.js} +2 -2
- package/dist/{chunk-2XMTZ5JR.js → chunk-OAZ6BIIB.js} +3 -3
- package/dist/{chunk-IZHGT5HD.js → chunk-OO4GUE4E.js} +3 -3
- package/dist/{chunk-KSZB7TIY.js → chunk-OYGJZA24.js} +8 -8
- package/dist/{chunk-H6BT45SN.js → chunk-P2GNNEMN.js} +1 -1
- package/dist/{chunk-5HAYT43L.js → chunk-P3PSLC2K.js} +22 -6
- package/dist/{chunk-HHVIE45A.js → chunk-P6LKX3IQ.js} +4 -4
- package/dist/{chunk-NMS5XSLX.js → chunk-PGD6CNWO.js} +1 -1
- package/dist/{chunk-NVZ7R4EK.js → chunk-PWZEJNO6.js} +3 -3
- package/dist/{chunk-NPDVWFAQ.js → chunk-QEU6VM4O.js} +1 -1
- package/dist/{chunk-UIEKW4SG.js → chunk-R5L5E3TC.js} +0 -1
- package/dist/{chunk-2WQ3YZMN.js → chunk-RGFVHYDP.js} +2 -2
- package/dist/{chunk-YQMIKX54.js → chunk-RIK6WUMO.js} +62 -29
- package/dist/{chunk-BH2SF4TT.js → chunk-RTRORHSP.js} +1 -1
- package/dist/{chunk-4SP6OUO7.js → chunk-RVOSA4RR.js} +845 -193
- package/dist/{chunk-LKZCUFOW.js → chunk-SCYVGPLI.js} +2 -2
- package/dist/{chunk-XIUGSUE4.js → chunk-SIABEREK.js} +6 -2
- package/dist/{chunk-P7TRFL4P.js → chunk-SQBCNEJB.js} +4 -1
- package/dist/{chunk-3ZP3QC47.js → chunk-THTYCJGF.js} +2 -2
- package/dist/{chunk-4EX4OKGZ.js → chunk-TIPNNOZC.js} +5 -5
- package/dist/{chunk-UZ7EZW3B.js → chunk-TO53KK2P.js} +6 -1
- package/dist/{chunk-2MS623GW.js → chunk-TPCP2UOI.js} +3 -3
- package/dist/{chunk-Y3SIQN4J.js → chunk-TUOZ6AXC.js} +2 -2
- package/dist/{chunk-KRPLP5LP.js → chunk-U6N547QA.js} +1 -1
- package/dist/{chunk-RESEJSCV.js → chunk-VJ7NLYFE.js} +2 -2
- package/dist/{chunk-UXNA2H2V.js → chunk-VLI6AWS3.js} +2 -2
- package/dist/{chunk-TDAGJJPZ.js → chunk-VNAPEZX2.js} +1 -1
- package/dist/{chunk-EBVVMUAA.js → chunk-VVTCUIPN.js} +1 -1
- package/dist/{chunk-FVTYJUXR.js → chunk-W5MMPPGX.js} +2 -2
- package/dist/{chunk-BQMHJ6OW.js → chunk-WGNP5ND2.js} +20 -12
- package/dist/{chunk-5OTA2PUH.js → chunk-WLGOIMTI.js} +2 -2
- package/dist/{chunk-IGJEKO2P.js → chunk-WTPS73RM.js} +4 -4
- package/dist/{chunk-R6EGUTIV.js → chunk-YFIUABSF.js} +2 -2
- package/dist/{chunk-7PJBJ2DU.js → chunk-YSGOXZBB.js} +1 -1
- package/dist/{chunk-ZECJ7Q6C.js → chunk-YVIPJGFG.js} +2 -2
- package/dist/{chunk-5KKZXA44.js → chunk-ZBOIYC2G.js} +4 -2
- package/dist/{chunk-RBVFNUAL.js → chunk-ZOKD5F7M.js} +2 -2
- package/dist/{collapse-BSPH3BFM.js → collapse-6X5S2S3G.js} +2 -1
- package/dist/completion-registry.js +6 -37
- package/dist/copy-image.d.ts +34 -0
- package/dist/copy-image.js +96 -0
- package/dist/countdown.js +1 -1
- package/dist/dgmo-router-EPBQKQW2.js +100 -0
- package/dist/{dimensions-DS6FWLRY.js → dimensions-DBCRBZIU.js} +4 -4
- package/dist/editor.js +2 -7
- package/dist/{flowchart-parser-NZXASOZG.js → flowchart-parser-SM5LHF2D.js} +4 -4
- package/dist/{flowchart-renderer-PTCRIANF.js → flowchart-renderer-PPS2GTTD.js} +10 -10
- package/dist/highlight.js +3 -8
- package/dist/index.d.ts +42 -6
- package/dist/index.js +62 -57
- package/dist/{layout-MXHR3P35.js → layout-3J72UULM.js} +3 -3
- package/dist/{layout-U3AH6M7J.js → layout-AF4KA5B2.js} +4 -4
- package/dist/{layout-IT4ZTV6C.js → layout-FCFUVCRI.js} +7 -7
- package/dist/{layout-KV27UW25.js → layout-H2KP5A6M.js} +1 -1
- package/dist/{layout-ND26WVX2.js → layout-IXQNVRBE.js} +3 -3
- package/dist/{layout-ISSBWBH7.js → layout-KELSNWBD.js} +7 -7
- package/dist/{layout-JTIRCKAW.js → layout-LNVIH45F.js} +3 -3
- package/dist/{layout-VC3MXRB4.js → layout-MPSH3YWE.js} +7 -7
- package/dist/{layout-HFBK5UEG.js → layout-PPIVGJXD.js} +2 -2
- package/dist/{layout-RH3N46HP.js → layout-R6G4MEO3.js} +4 -3
- package/dist/{layout-search-BBX2BMEF.js → layout-search-C2TYUH4L.js} +5 -5
- package/dist/{parser-BT4NI6JY.js → parser-2AXU2MHJ.js} +3 -3
- package/dist/{parser-3QIFY5IN.js → parser-4BOP77CD.js} +2 -2
- package/dist/{parser-TAYRTCPR.js → parser-4GHAYZKZ.js} +5 -5
- package/dist/{parser-LTRQASGB.js → parser-5HQPPVHJ.js} +3 -3
- package/dist/{parser-EAQPZX2B.js → parser-5RUD4A3X.js} +3 -3
- package/dist/{parser-BJ7RJNUM.js → parser-6WURFLOB.js} +3 -3
- package/dist/{parser-R3LPEQIT.js → parser-722KLLAQ.js} +4 -4
- package/dist/{parser-KMKVFET2.js → parser-B7SCN7FG.js} +2 -2
- package/dist/{parser-TUAEX6ML.js → parser-BNRX35NT.js} +3 -3
- package/dist/{parser-NL73FSFI.js → parser-BPYHIG24.js} +3 -3
- package/dist/{parser-3LT3ZUUC.js → parser-CRJYLOHA.js} +2 -2
- package/dist/{parser-NUU3DVW4.js → parser-DGLKH4NT.js} +2 -2
- package/dist/{parser-5UZV32ZI.js → parser-DRUGM3R6.js} +2 -2
- package/dist/{parser-KLCSFQ3J.js → parser-DWV2CYBS.js} +3 -3
- package/dist/{parser-2IKPQVKX.js → parser-F3JJNIFC.js} +3 -3
- package/dist/{parser-EFF22GYO.js → parser-F75WNYMK.js} +3 -3
- package/dist/{parser-RTWPFKXG.js → parser-GBQY3WOZ.js} +3 -3
- package/dist/{parser-F7NDRPMA.js → parser-GM5B2EPW.js} +3 -3
- package/dist/{parser-K2DI26SC.js → parser-H6HT2WFQ.js} +2 -2
- package/dist/{parser-PEZ7RN43.js → parser-HM6FEX5K.js} +3 -3
- package/dist/{parser-YG625J5H.js → parser-L7SI3PW4.js} +4 -4
- package/dist/{parser-GMQJISZ6.js → parser-LUJX7AXO.js} +2 -2
- package/dist/{parser-A3AN76RQ.js → parser-MWINQNQW.js} +3 -3
- package/dist/{parser-KJPPUN4D.js → parser-OHBBDCG4.js} +2 -2
- package/dist/{parser-4RFY7D52.js → parser-QWTECQEC.js} +5 -5
- package/dist/{parser-4TBSWULQ.js → parser-TTGZYLYD.js} +3 -3
- package/dist/{parser-6TDWUKM5.js → parser-UHKROC7Z.js} +3 -3
- package/dist/{parser-H5OODY5N.js → parser-W6NX3AIV.js} +3 -3
- package/dist/{parser-GDLKUBTO.js → parser-WIKXZP4X.js} +2 -2
- package/dist/{parser-4Y6PODW6.js → parser-XEJP37GQ.js} +3 -3
- package/dist/{parser-RCIEKN7Y.js → parser-Y7QXD2UR.js} +2 -2
- package/dist/{parser-7QKQ4P4P.js → parser-ZV756RMP.js} +5 -5
- package/dist/{parser-KKF6Y5MM.js → parser-ZWWQZ4XZ.js} +4 -3
- package/dist/{redraw-AHW7EUUF.js → redraw-BZ4GI6IC.js} +6 -4
- package/dist/{redraw-STZ4WJAI.js → redraw-LEOXS7C6.js} +3 -3
- package/dist/{renderer-J3GPDK73.js → renderer-2MCV75JQ.js} +12 -12
- package/dist/{renderer-TINHO2IO.js → renderer-2V2XY2V7.js} +4 -4
- package/dist/{renderer-PHLCYVSN.js → renderer-5AEDVLAA.js} +8 -7
- package/dist/{renderer-W4MUMXJE.js → renderer-5GP7YUS4.js} +3 -3
- package/dist/{renderer-FMTLSOCX.js → renderer-66NCRXSC.js} +6 -6
- package/dist/{renderer-AM7P4LN7.js → renderer-6HU44IGJ.js} +4 -4
- package/dist/{renderer-JJ4QW3SK.js → renderer-7C76HP5W.js} +6 -6
- package/dist/{renderer-O6RP52CQ.js → renderer-7RAMBMTH.js} +6 -6
- package/dist/{renderer-M5DUMITP.js → renderer-BYLQ37T2.js} +8 -8
- package/dist/{renderer-7OGGV327.js → renderer-CVCCW7UT.js} +4 -4
- package/dist/{renderer-QTPWRRJ7.js → renderer-D6EH5UQ6.js} +6 -6
- package/dist/renderer-E3334XLT.js +84 -0
- package/dist/{renderer-IXBOT6DU.js → renderer-F7YGMEGQ.js} +2 -2
- package/dist/{renderer-XCLARXCK.js → renderer-GKY55M4Z.js} +5 -5
- package/dist/{renderer-KJ3V5BYP.js → renderer-LFZKG2GR.js} +5 -5
- package/dist/{renderer-2LYX6NHN.js → renderer-LJPUCG3U.js} +5 -5
- package/dist/{renderer-DAZWHNLI.js → renderer-MGF2NNGG.js} +3 -3
- package/dist/{renderer-HX6ICPDX.js → renderer-MVBAQP3M.js} +4 -4
- package/dist/{renderer-XOWDERU2.js → renderer-MZIWP55B.js} +5 -5
- package/dist/{renderer-MWZC7TMD.js → renderer-N6PM5CSG.js} +7 -7
- package/dist/{renderer-ISQJ2ELA.js → renderer-N75E3UVY.js} +5 -5
- package/dist/{renderer-53B523PM.js → renderer-ONENGXFQ.js} +7 -7
- package/dist/{renderer-RUSQJFFC.js → renderer-PEJF6R2I.js} +2 -2
- package/dist/{renderer-36446HSH.js → renderer-QZJZIAT3.js} +2 -2
- package/dist/{renderer-UTEEJDGB.js → renderer-SYRH3B62.js} +6 -6
- package/dist/{renderer-LNP23NSM.js → renderer-TS5NHOQD.js} +6 -6
- package/dist/{renderer-J7ZSTJUE.js → renderer-VNJOZPSH.js} +7 -7
- package/dist/{renderer-OUDHH5MV.js → renderer-VNUDN6F5.js} +12 -12
- package/dist/{renderer-JYHA6R2D.js → renderer-VUXAAGUG.js} +5 -5
- package/dist/{renderer-BXD5KVSR.js → renderer-YJVQT7QG.js} +6 -6
- package/dist/{renderer-radial-WFUX3Z3C.js → renderer-radial-4R7AKETK.js} +5 -5
- package/dist/{state-parser-KPVW5CRI.js → state-parser-EQBBEKHR.js} +5 -5
- package/dist/{state-renderer-ZVEI265C.js → state-renderer-SOGZ2CNN.js} +12 -12
- package/dist/{themes-DzIH3Hjv.d.ts → themes-CbJL3w8L.d.ts} +1 -1
- package/docs/ai-integration.md +5 -6
- package/docs/language-reference.md +69 -105
- package/gallery/fixtures/whiteboard.dgmo +1 -0
- package/package.json +5 -1
- package/dist/chunk-6BQSDF77.js +0 -734
- package/dist/chunk-NWSPPGIE.js +0 -60
- package/dist/chunk-VBMRZCMQ.js +0 -1465
- package/dist/chunk-WZBZXZ6T.js +0 -636
- package/dist/dgmo-router-E5O7RJSW.js +0 -101
- package/dist/layout-D4L44NRG.js +0 -11
- package/dist/parser-YHDGKPZI.js +0 -14
- package/dist/renderer-4SE7R22T.js +0 -85
- package/dist/renderer-WPN2SXGT.js +0 -29
- package/gallery/fixtures/sketch.dgmo +0 -22
package/dist/advanced.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { D as DgmoError, T as TagGroup, d as TagEntry } from './tag-groups-DydewK3D.js';
|
|
2
2
|
export { b as DgmoSeverity, g as autoTagColorCycle, f as formatDgmoError, m as makeDgmoError, r as resolveActiveTagGroup, h as resolveTagColor, i as resolveTagValue, t as tagAttrKey } from './tag-groups-DydewK3D.js';
|
|
3
|
-
import { P as PaletteConfig, c as PaletteColors, C as CompactViewState } from './chart-types-
|
|
4
|
-
export { a as ChartTypeId, b as ChartTypeMeta, D as DecodedDiagramUrl, E as EncodeDiagramUrlOptions, e as EncodeDiagramUrlResult, d as chartTypes, f as decodeDiagramUrl, h as decodeViewState, i as encodeDiagramUrl, j as encodeViewState, k as getAvailablePalettes, g as getPalette, l as isValidHex, m as registerPalette } from './chart-types-
|
|
3
|
+
import { P as PaletteConfig, c as PaletteColors, C as CompactViewState } from './chart-types-CBVYiLqy.js';
|
|
4
|
+
export { a as ChartTypeId, b as ChartTypeMeta, D as DecodedDiagramUrl, E as EncodeDiagramUrlOptions, e as EncodeDiagramUrlResult, d as chartTypes, f as decodeDiagramUrl, h as decodeViewState, i as encodeDiagramUrl, j as encodeViewState, k as getAvailablePalettes, g as getPalette, l as isValidHex, m as registerPalette } from './chart-types-CBVYiLqy.js';
|
|
5
5
|
import { d as RenderForExportOptions, b as MapData, P as ParsedMap, e as ResolvedMap, f as MapLayoutLegend, g as GeoExtent } from './export-context-Ceh3wr0E.js';
|
|
6
6
|
import { MapDataSource } from './block.js';
|
|
7
7
|
export { A as AirportData, B as BoundaryTopology, G as Gazetteer, a as GazetteerEntry, h as MapDirectives, i as MapEdge, j as MapPoi, k as MapRegion, l as MapRoute, m as PoiPos, n as ProjectionFamily, R as RegionName, c as RegionNames, o as ResolvedEdge, p as ResolvedPoi, q as ResolvedRegion, r as ResolvedRoute } from './export-context-Ceh3wr0E.js';
|
|
8
8
|
import { InkPoint } from './index.js';
|
|
9
|
-
export { C as CHART_TYPE_DESCRIPTIONS, M as MapCompletionOptions, d as MapLocationMatch, e as MapPlaceCompletion, f as MapRegionCompletion, R as RenderCategory, T as Theme, l as chartTypeParsers, g as completeMapPlaces, h as completeMapRegions, m as getAllChartTypes, n as getRenderCategory, o as isExtendedChartType, q as knownChartTypeIds, p as palettes, k as parseDgmo, s as searchMapLocations, t as themes, k as validate } from './themes-
|
|
9
|
+
export { C as CHART_TYPE_DESCRIPTIONS, M as MapCompletionOptions, d as MapLocationMatch, e as MapPlaceCompletion, f as MapRegionCompletion, R as RenderCategory, T as Theme, l as chartTypeParsers, g as completeMapPlaces, h as completeMapRegions, m as getAllChartTypes, n as getRenderCategory, o as isExtendedChartType, q as knownChartTypeIds, p as palettes, k as parseDgmo, s as searchMapLocations, t as themes, k as validate } from './themes-CbJL3w8L.js';
|
|
10
10
|
import { Selection } from 'd3-selection';
|
|
11
11
|
import * as d3Scale from 'd3-scale';
|
|
12
|
-
import { P as ParsedOrg, F as FillMode, R as RaciMarker, a as ParsedRaci, b as RaciVariant, c as RaciTask } from './chart-meta-
|
|
13
|
-
export { A as ALL_CHART_TYPES, I as ImportSource, O as OrgNode, d as RaciPhase, e as RaciRoleAssignment, f as ReadFileFn, g as ResolveImportsResult, h as contrastText, i as findOrgNodeIdByName, j as getSeriesColors, k as hexToHSL, l as hexToHSLString, m as hslToHex, n as mix, o as normalizePertSourceForShare, p as parseDgmoChartType, q as parseFirstLine, r as parseOrg, s as parseRaci, t as resolveOrgImports, u as shade, v as shapeFill, w as tint } from './chart-meta-
|
|
12
|
+
import { P as ParsedOrg, F as FillMode, R as RaciMarker, a as ParsedRaci, b as RaciVariant, c as RaciTask } from './chart-meta-uImk4eTn.js';
|
|
13
|
+
export { A as ALL_CHART_TYPES, I as ImportSource, O as OrgNode, d as RaciPhase, e as RaciRoleAssignment, f as ReadFileFn, g as ResolveImportsResult, h as contrastText, i as findOrgNodeIdByName, j as getSeriesColors, k as hexToHSL, l as hexToHSLString, m as hslToHex, n as mix, o as normalizePertSourceForShare, p as parseDgmoChartType, q as parseFirstLine, r as parseOrg, s as parseRaci, t as resolveOrgImports, u as shade, v as shapeFill, w as tint } from './chart-meta-uImk4eTn.js';
|
|
14
14
|
import { GeoProjection } from 'd3-geo';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -2280,395 +2280,6 @@ interface BLCollapseResult {
|
|
|
2280
2280
|
*/
|
|
2281
2281
|
declare function collapseBoxesAndLines(parsed: ParsedBoxesAndLines, collapsedGroups: Set<string>): BLCollapseResult;
|
|
2282
2282
|
|
|
2283
|
-
/** Half-slot lattice position (spec §31.3). Box children are box-relative. */
|
|
2284
|
-
interface SketchAt {
|
|
2285
|
-
readonly c: number;
|
|
2286
|
-
readonly r: number;
|
|
2287
|
-
}
|
|
2288
|
-
interface SketchNode {
|
|
2289
|
-
/** Synthetic stable id (parse-order); use alias/label indexes to resolve. */
|
|
2290
|
-
readonly id: string;
|
|
2291
|
-
readonly label: string;
|
|
2292
|
-
readonly alias?: string;
|
|
2293
|
-
/** null → flow auto-place at layout */
|
|
2294
|
-
readonly at: SketchAt | null;
|
|
2295
|
-
/** tag metadata only (at/alias are lifted out) */
|
|
2296
|
-
readonly metadata: Record<string, string>;
|
|
2297
|
-
/** Free-text markdown description (indented `>` lines under the shape).
|
|
2298
|
-
* Newline-joined; a small markdown subset renders in the card body. */
|
|
2299
|
-
readonly description?: string;
|
|
2300
|
-
/** owning box label (undefined = root) */
|
|
2301
|
-
readonly boxLabel?: string;
|
|
2302
|
-
readonly lineNumber: number;
|
|
2303
|
-
}
|
|
2304
|
-
type SketchEdgeHeads = 'one' | 'both' | 'none';
|
|
2305
|
-
interface SketchEdge {
|
|
2306
|
-
readonly sourceId: string;
|
|
2307
|
-
readonly targetId: string;
|
|
2308
|
-
readonly label?: string;
|
|
2309
|
-
readonly heads: SketchEdgeHeads;
|
|
2310
|
-
/** dashed = "secondary", NOT async (spec §31.4 divergence note) */
|
|
2311
|
-
readonly dashed: boolean;
|
|
2312
|
-
readonly metadata: Record<string, string>;
|
|
2313
|
-
readonly lineNumber: number;
|
|
2314
|
-
}
|
|
2315
|
-
interface SketchBox {
|
|
2316
|
-
/** `[<normalized label>]` — the infra group-id scheme */
|
|
2317
|
-
readonly id: string;
|
|
2318
|
-
readonly label: string;
|
|
2319
|
-
readonly alias?: string;
|
|
2320
|
-
readonly at: SketchAt | null;
|
|
2321
|
-
readonly metadata: Record<string, string>;
|
|
2322
|
-
readonly collapsed: boolean;
|
|
2323
|
-
/** child node ids, declaration order */
|
|
2324
|
-
readonly children: readonly string[];
|
|
2325
|
-
/**
|
|
2326
|
-
* Child BOX ids, declaration order (decision #58 — sketch nests to depth 2,
|
|
2327
|
-
* matching boxes-and-lines §14). Empty on an inner box: depth 2 is the bound.
|
|
2328
|
-
*/
|
|
2329
|
-
readonly childBoxes: readonly string[];
|
|
2330
|
-
/**
|
|
2331
|
-
* The box this box sits inside, or null at the top level. Membership lives on
|
|
2332
|
-
* the CHILD, the same shape `boxes-and-lines` uses (`parentGroup`) and the one
|
|
2333
|
-
* the sketch rebuild's canvas model arrived at independently — a tree cannot
|
|
2334
|
-
* express double membership, so this cannot either.
|
|
2335
|
-
*/
|
|
2336
|
-
readonly parentBoxId: string | null;
|
|
2337
|
-
readonly lineNumber: number;
|
|
2338
|
-
}
|
|
2339
|
-
interface SketchOptions {
|
|
2340
|
-
readonly noLegend: boolean;
|
|
2341
|
-
/** §1.9 `legend-inline` — title left, legend flushed right on one row. */
|
|
2342
|
-
readonly legendInline?: boolean;
|
|
2343
|
-
/** §1.9 fill family; undefined ⇒ canonical 25% tint. */
|
|
2344
|
-
readonly fillMode: 'solid' | 'outline' | undefined;
|
|
2345
|
-
/** `no-descriptions` directive (mindmap `hd` standard): hide the card
|
|
2346
|
-
* metadata rows so each card is just its name. */
|
|
2347
|
-
readonly noDescriptions: boolean;
|
|
2348
|
-
/**
|
|
2349
|
-
* §1.9 `no-title` — keep the title in the source, do not draw it.
|
|
2350
|
-
*
|
|
2351
|
-
* ⚠️ NOT the same state as clearing the title on the canvas, which deletes
|
|
2352
|
-
* the text and emits a bare `sketch`. This one keeps `sketch Ship` in the
|
|
2353
|
-
* file and only suppresses the drawing, which is why it is not a second
|
|
2354
|
-
* spelling of the rename gesture (#607).
|
|
2355
|
-
*/
|
|
2356
|
-
readonly noTitle: boolean;
|
|
2357
|
-
}
|
|
2358
|
-
interface ParsedSketch {
|
|
2359
|
-
readonly type: 'sketch';
|
|
2360
|
-
readonly title: string | null;
|
|
2361
|
-
readonly titleLineNumber: number | null;
|
|
2362
|
-
readonly nodes: readonly SketchNode[];
|
|
2363
|
-
readonly edges: readonly SketchEdge[];
|
|
2364
|
-
readonly boxes: readonly SketchBox[];
|
|
2365
|
-
readonly tagGroups: readonly TagGroup[];
|
|
2366
|
-
readonly options: SketchOptions;
|
|
2367
|
-
readonly diagnostics: readonly DgmoError[];
|
|
2368
|
-
readonly error: string | null;
|
|
2369
|
-
}
|
|
2370
|
-
|
|
2371
|
-
declare function parseSketch(content: string, palette?: PaletteColors): ParsedSketch;
|
|
2372
|
-
|
|
2373
|
-
/**
|
|
2374
|
-
* Emit DGMO source for a parsed sketch.
|
|
2375
|
-
*
|
|
2376
|
-
* The output re-parses to an equivalent scene (`sameSketch`) and raises no
|
|
2377
|
-
* diagnostics. It is not pretty-printed: this is the correctness emitter, whose
|
|
2378
|
-
* only reader is the parser. Presentation — stable aliases, ordering,
|
|
2379
|
-
* whitespace — is a separate job.
|
|
2380
|
-
*/
|
|
2381
|
-
declare function emitSketch(parsed: ParsedSketch): string;
|
|
2382
|
-
interface CanonicalScene {
|
|
2383
|
-
title: string | null;
|
|
2384
|
-
options: string;
|
|
2385
|
-
tags: string;
|
|
2386
|
-
nodes: string[];
|
|
2387
|
-
boxes: string[];
|
|
2388
|
-
edges: string[];
|
|
2389
|
-
}
|
|
2390
|
-
/**
|
|
2391
|
-
* A scene reduced to what the PICTURE says, so two scenes that draw the same
|
|
2392
|
-
* thing compare equal. Ids and line numbers are dropped (they are parse
|
|
2393
|
-
* artifacts), sets are sorted (declaration order is not meaning), and edges are
|
|
2394
|
-
* keyed by resolved endpoint names rather than ids.
|
|
2395
|
-
*/
|
|
2396
|
-
declare function canonicalSketch(parsed: ParsedSketch): CanonicalScene;
|
|
2397
|
-
/** True when two parses describe the same picture. */
|
|
2398
|
-
declare function sameSketch(a: ParsedSketch, b: ParsedSketch): boolean;
|
|
2399
|
-
|
|
2400
|
-
interface SketchLayoutNode {
|
|
2401
|
-
readonly id: string;
|
|
2402
|
-
readonly label: string;
|
|
2403
|
-
readonly metadata: Record<string, string>;
|
|
2404
|
-
readonly description?: string;
|
|
2405
|
-
readonly boxLabel?: string;
|
|
2406
|
-
readonly lineNumber: number;
|
|
2407
|
-
/** resolved ABSOLUTE half-slot origin */
|
|
2408
|
-
readonly slot: {
|
|
2409
|
-
c: number;
|
|
2410
|
-
r: number;
|
|
2411
|
-
};
|
|
2412
|
-
readonly x: number;
|
|
2413
|
-
readonly y: number;
|
|
2414
|
-
readonly w: number;
|
|
2415
|
-
readonly h: number;
|
|
2416
|
-
/** set when this card is a folded box (draws the collapse-bar) */
|
|
2417
|
-
readonly isCollapsedBox?: boolean;
|
|
2418
|
-
readonly childCount?: number;
|
|
2419
|
-
}
|
|
2420
|
-
interface SketchLayoutBox {
|
|
2421
|
-
readonly id: string;
|
|
2422
|
-
readonly label: string;
|
|
2423
|
-
readonly metadata: Record<string, string>;
|
|
2424
|
-
readonly lineNumber: number;
|
|
2425
|
-
readonly x: number;
|
|
2426
|
-
readonly y: number;
|
|
2427
|
-
readonly w: number;
|
|
2428
|
-
readonly h: number;
|
|
2429
|
-
readonly bandH: number;
|
|
2430
|
-
}
|
|
2431
|
-
interface SketchLayout {
|
|
2432
|
-
readonly nodes: readonly SketchLayoutNode[];
|
|
2433
|
-
readonly boxes: readonly SketchLayoutBox[];
|
|
2434
|
-
readonly edges: readonly SketchEdge[];
|
|
2435
|
-
readonly width: number;
|
|
2436
|
-
readonly height: number;
|
|
2437
|
-
/** layout-time warnings (overlap auto-resolution) */
|
|
2438
|
-
readonly diagnostics: readonly DgmoError[];
|
|
2439
|
-
/**
|
|
2440
|
-
* Half-slot origin actually subtracted to map slots → px. With
|
|
2441
|
-
* `normalizeOrigin` on this is the live min corner; with it off (frozen
|
|
2442
|
-
* origin) callers capture this on first layout and feed it back as
|
|
2443
|
-
* `frozenOrigin` so later edits don't re-shift the whole diagram.
|
|
2444
|
-
*/
|
|
2445
|
-
readonly origin: {
|
|
2446
|
-
c: number;
|
|
2447
|
-
r: number;
|
|
2448
|
-
};
|
|
2449
|
-
}
|
|
2450
|
-
interface SketchLayoutOptions {
|
|
2451
|
-
/** Box labels to fold; defaults to the authored `collapsed` flags. */
|
|
2452
|
-
readonly collapsedBoxes?: ReadonlySet<string>;
|
|
2453
|
-
/**
|
|
2454
|
-
* Auto-layout stage switches. Every flag defaults to `true` (current
|
|
2455
|
-
* behavior) when omitted — turning one off makes the authored `at:`
|
|
2456
|
-
* coordinate more authoritative. Wired to the app's dev "Auto-layout"
|
|
2457
|
-
* drawer so a drag can be observed with each stage on or off.
|
|
2458
|
-
*/
|
|
2459
|
-
readonly autoLayout?: SketchAutoLayoutFlags;
|
|
2460
|
-
/**
|
|
2461
|
-
* Stable origin (half-slots) to subtract when `normalizeOrigin` is off.
|
|
2462
|
-
* Never lets content go negative: the effective origin is
|
|
2463
|
-
* `min(frozenOrigin, liveMin)`, so a node dragged left of the frozen corner
|
|
2464
|
-
* simply expands it rather than escaping the viewport. Ignored when
|
|
2465
|
-
* `normalizeOrigin` is on. See `SketchLayout.origin`.
|
|
2466
|
-
*/
|
|
2467
|
-
readonly frozenOrigin?: {
|
|
2468
|
-
c: number;
|
|
2469
|
-
r: number;
|
|
2470
|
-
};
|
|
2471
|
-
}
|
|
2472
|
-
interface SketchAutoLayoutFlags {
|
|
2473
|
-
/**
|
|
2474
|
-
* M1 — re-anchor the whole diagram to the min corner every render.
|
|
2475
|
-
* Off (the default) is the WYSIWYG frozen-origin behaviour; without a
|
|
2476
|
-
* `frozenOrigin` it still anchors to the live min, so stateless callers
|
|
2477
|
-
* render identically either way.
|
|
2478
|
-
*/
|
|
2479
|
-
readonly normalizeOrigin?: boolean;
|
|
2480
|
-
/**
|
|
2481
|
-
* M2 — order root placement by declaration line. Off (the default) is
|
|
2482
|
-
* geometry-stable: authored-`at` units place in coordinate order
|
|
2483
|
-
* (row-major), flow units in reading order after them.
|
|
2484
|
-
*/
|
|
2485
|
-
readonly sortRootsBySource?: boolean;
|
|
2486
|
-
/** M3 — bump a colliding authored slot to the nearest free slot. */
|
|
2487
|
-
readonly resolveOverlap?: boolean;
|
|
2488
|
-
/** M3 — treat a group as one collision rectangle (else its origin cell). */
|
|
2489
|
-
readonly groupCollisionAsRect?: boolean;
|
|
2490
|
-
/** Flow-place nodes that have no `at:` (root + box children). */
|
|
2491
|
-
readonly flowPlaceUnpositioned?: boolean;
|
|
2492
|
-
/**
|
|
2493
|
-
* M5 — nudge a FLOW-PLACED shape off any non-incident edge it crosses.
|
|
2494
|
-
* Authored-`at` shapes are always exempt: authored position wins over edge
|
|
2495
|
-
* aesthetics.
|
|
2496
|
-
*/
|
|
2497
|
-
readonly avoidEdges?: boolean;
|
|
2498
|
-
}
|
|
2499
|
-
/**
|
|
2500
|
-
* The one set of defaults every caller shares — the WYSIWYG behaviour the
|
|
2501
|
-
* editor ships (frozen origin, geometry-stable root order). The app's dev
|
|
2502
|
-
* drawer reads this rather than keeping its own copy, so the two cannot
|
|
2503
|
-
* drift apart again (issue #174).
|
|
2504
|
-
*/
|
|
2505
|
-
declare const SKETCH_AUTO_LAYOUT_DEFAULTS: Required<SketchAutoLayoutFlags>;
|
|
2506
|
-
declare function layoutSketch(parsed: Pick<ParsedSketch, 'nodes' | 'edges' | 'boxes'>, options?: SketchLayoutOptions): SketchLayout;
|
|
2507
|
-
|
|
2508
|
-
interface SketchRenderOptions {
|
|
2509
|
-
exportDims?: {
|
|
2510
|
-
width?: number;
|
|
2511
|
-
height?: number;
|
|
2512
|
-
};
|
|
2513
|
-
activeTagGroup?: string | null;
|
|
2514
|
-
exportMode?: boolean;
|
|
2515
|
-
onClickItem?: (lineNumber: number) => void;
|
|
2516
|
-
/** View-state `hd` (hide descriptions): drop each card's description so it
|
|
2517
|
-
* is just its header/name — the standard mindmap toggle, shelf-driven. */
|
|
2518
|
-
hideDescriptions?: boolean;
|
|
2519
|
-
/** Render these cards with the header + empty-body split even without a
|
|
2520
|
-
* description — the app's selected-card state, so the description area is
|
|
2521
|
-
* visible to type into. */
|
|
2522
|
-
splitCardIds?: readonly string[];
|
|
2523
|
-
}
|
|
2524
|
-
/** Largest font in [minFont, maxFont] whose word-wrap of `label` fits `maxWidth`
|
|
2525
|
-
* in ≤ maxLines lines. Wraps (multi-line) before it shrinks, so a long label
|
|
2526
|
-
* reads at a comfortable size across several lines rather than collapsing to a
|
|
2527
|
-
* tiny one-liner. If even minFont can't fit within maxLines, the last shown
|
|
2528
|
-
* line is middle-ellipsized so the block stays bounded. */
|
|
2529
|
-
declare function renderSketch(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: SketchRenderOptions): void;
|
|
2530
|
-
interface SketchEdgeGeometry {
|
|
2531
|
-
sourceId: string;
|
|
2532
|
-
targetId: string;
|
|
2533
|
-
/** Pure cubic path — parsed as one cubic by label/bounds/hit-test consumers. */
|
|
2534
|
-
d: string;
|
|
2535
|
-
mid: {
|
|
2536
|
-
x: number;
|
|
2537
|
-
y: number;
|
|
2538
|
-
};
|
|
2539
|
-
/** Visible stroke path WITH crossing-hops, when this edge hops another. The
|
|
2540
|
-
* renderer draws this if present; everything else still uses `d`. */
|
|
2541
|
-
dRender?: string;
|
|
2542
|
-
/**
|
|
2543
|
-
* Every point on THIS line where a hop is drawn — by this line over another,
|
|
2544
|
-
* or by another over this one. Absent when there are none. A label must not
|
|
2545
|
-
* sit on one (#1217); `sketchLabelSpot` is the shared rule.
|
|
2546
|
-
*/
|
|
2547
|
-
hops?: {
|
|
2548
|
-
x: number;
|
|
2549
|
-
y: number;
|
|
2550
|
-
}[];
|
|
2551
|
-
/**
|
|
2552
|
-
* The same cubic as four points — start, its handle, the end's handle, end.
|
|
2553
|
-
*
|
|
2554
|
-
* 🔴 Handed over rather than left to be re-parsed out of `d`. A consumer that
|
|
2555
|
-
* needs a TANGENT (an arrowhead), a POINT AT A DISTANCE (a control seated in
|
|
2556
|
-
* from an end) or an arc LENGTH has to have these, and the app`s canvas needs
|
|
2557
|
-
* all three — so the alternative was a cubic parser in the app, which is a
|
|
2558
|
-
* second reading of this module`s own output and drifts the first time the
|
|
2559
|
-
* path gains a segment.
|
|
2560
|
-
*/
|
|
2561
|
-
p0: {
|
|
2562
|
-
x: number;
|
|
2563
|
-
y: number;
|
|
2564
|
-
};
|
|
2565
|
-
h0: {
|
|
2566
|
-
x: number;
|
|
2567
|
-
y: number;
|
|
2568
|
-
};
|
|
2569
|
-
h1: {
|
|
2570
|
-
x: number;
|
|
2571
|
-
y: number;
|
|
2572
|
-
};
|
|
2573
|
-
p1: {
|
|
2574
|
-
x: number;
|
|
2575
|
-
y: number;
|
|
2576
|
-
};
|
|
2577
|
-
}
|
|
2578
|
-
/**
|
|
2579
|
-
* The subset of a laid-out sketch that edge routing actually reads.
|
|
2580
|
-
*
|
|
2581
|
-
* 🔴 A `SketchLayout` satisfies this structurally, so every caller inside this
|
|
2582
|
-
* module is unchanged — the point of stating it is the OTHER caller. The app`s
|
|
2583
|
-
* canvas draws a sketch by hand from the rects it has already placed (a live
|
|
2584
|
-
* drag moves them a frame at a time), and asking it for a full `SketchLayout`
|
|
2585
|
-
* would mean fabricating a `lineNumber`, a `shape` and a resolved `slot` per
|
|
2586
|
-
* node purely to satisfy a type that routing never looks at. This says what is
|
|
2587
|
-
* load-bearing, which is also the list to check before reading a new field in
|
|
2588
|
-
* here.
|
|
2589
|
-
*
|
|
2590
|
-
* A node`s `boxLabel` is matched against a box`s `label`, exactly as the
|
|
2591
|
-
* renderer does it — port snapping included, and the same-label merge that goes
|
|
2592
|
-
* with it (diagrammo/diagrammo#616).
|
|
2593
|
-
*/
|
|
2594
|
-
interface SketchEdgeBoard {
|
|
2595
|
-
readonly nodes: readonly {
|
|
2596
|
-
readonly id: string;
|
|
2597
|
-
readonly label: string;
|
|
2598
|
-
readonly boxLabel?: string;
|
|
2599
|
-
readonly x: number;
|
|
2600
|
-
readonly y: number;
|
|
2601
|
-
readonly w: number;
|
|
2602
|
-
readonly h: number;
|
|
2603
|
-
}[];
|
|
2604
|
-
readonly boxes: readonly {
|
|
2605
|
-
readonly id: string;
|
|
2606
|
-
readonly label: string;
|
|
2607
|
-
readonly x: number;
|
|
2608
|
-
readonly y: number;
|
|
2609
|
-
readonly w: number;
|
|
2610
|
-
readonly h: number;
|
|
2611
|
-
}[];
|
|
2612
|
-
readonly edges: readonly {
|
|
2613
|
-
readonly sourceId: string;
|
|
2614
|
-
readonly targetId: string;
|
|
2615
|
-
}[];
|
|
2616
|
-
}
|
|
2617
|
-
/**
|
|
2618
|
-
* The full edge-routing pipeline (side assignment + curved paths + group-port
|
|
2619
|
-
* snapping) as a pure function, so the renderer AND the app`s live-drag preview
|
|
2620
|
-
* draw edges with IDENTICAL geometry. `offsets` shifts individual nodes/boxes
|
|
2621
|
-
* by live pixel deltas (a dragged shape and its box children) — pass none for
|
|
2622
|
-
* the committed layout.
|
|
2623
|
-
*/
|
|
2624
|
-
declare function sketchEdgeGeometry(layout: SketchEdgeBoard, offsets?: ReadonlyMap<string, {
|
|
2625
|
-
dx: number;
|
|
2626
|
-
dy: number;
|
|
2627
|
-
}>): Array<SketchEdgeGeometry | null>;
|
|
2628
|
-
/**
|
|
2629
|
-
* Where a line's label goes: the point on the line nearest its midpoint whose
|
|
2630
|
-
* label box, `halfW` by `halfH` either side, clears every hop on the line.
|
|
2631
|
-
* Returns `mid` when the line has no hops or nothing nearby is clear.
|
|
2632
|
-
*
|
|
2633
|
-
* 🔴 For the app's canvas, which puts a label at `mid` and sizes it itself.
|
|
2634
|
-
* dgmo's own renderer needs no call: its declutter keeps a label off every
|
|
2635
|
-
* other line, and a hop is always where another line crosses. Recomputing the
|
|
2636
|
-
* hops in the app would drift the first time the clearance changed (#1217).
|
|
2637
|
-
*/
|
|
2638
|
-
declare function sketchLabelSpot(g: Pick<SketchEdgeGeometry, 'mid' | 'hops' | 'p0' | 'h0' | 'h1' | 'p1'>, halfW: number, halfH: number): {
|
|
2639
|
-
x: number;
|
|
2640
|
-
y: number;
|
|
2641
|
-
};
|
|
2642
|
-
/** Export wrapper — the b&l precedent (thin spread). */
|
|
2643
|
-
declare function renderSketchForExport(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: {
|
|
2644
|
-
exportDims?: {
|
|
2645
|
-
width: number;
|
|
2646
|
-
height: number;
|
|
2647
|
-
};
|
|
2648
|
-
activeTagGroup?: string | null;
|
|
2649
|
-
exportMode?: boolean;
|
|
2650
|
-
hideDescriptions?: boolean;
|
|
2651
|
-
}): void;
|
|
2652
|
-
|
|
2653
|
-
interface SketchCollapseResult {
|
|
2654
|
-
/** Visible shapes (collapsed boxes' children removed). */
|
|
2655
|
-
readonly nodes: readonly SketchNode[];
|
|
2656
|
-
/** Boxes still rendered as frames (the expanded ones). */
|
|
2657
|
-
readonly boxes: readonly SketchBox[];
|
|
2658
|
-
/** Collapsed boxes — each renders as one virtual node card. */
|
|
2659
|
-
readonly virtualBoxes: readonly SketchBox[];
|
|
2660
|
-
/** Edges with endpoints re-targeted to virtual boxes; deduped. */
|
|
2661
|
-
readonly edges: readonly SketchEdge[];
|
|
2662
|
-
/** box label → immediate child count (for the collapse-bar affordance). */
|
|
2663
|
-
readonly collapsedChildCounts: ReadonlyMap<string, number>;
|
|
2664
|
-
}
|
|
2665
|
-
/**
|
|
2666
|
-
* @param collapsedLabels box LABELS to fold. Defaults to the authored
|
|
2667
|
-
* `collapsed` flags; the app/viewState passes an explicit set instead
|
|
2668
|
-
* (interactive-vs-export split — options win when supplied).
|
|
2669
|
-
*/
|
|
2670
|
-
declare function collapseSketch(parsed: Pick<ParsedSketch, 'nodes' | 'edges' | 'boxes'>, collapsedLabels?: ReadonlySet<string>): SketchCollapseResult;
|
|
2671
|
-
|
|
2672
2283
|
/**
|
|
2673
2284
|
* Colour NAMES — never values. `ink` is the palette's text colour, so it flips
|
|
2674
2285
|
* near-black ↔ near-white with the theme; every other name takes the palette's
|
|
@@ -2678,10 +2289,10 @@ declare function collapseSketch(parsed: Pick<ParsedSketch, 'nodes' | 'edges' | '
|
|
|
2678
2289
|
declare const WHITEBOARD_COLORS: readonly ["ink", "red", "green", "blue", "teal", "purple", "orange", "yellow", "cyan", "gray"];
|
|
2679
2290
|
type WhiteboardColor = (typeof WHITEBOARD_COLORS)[number];
|
|
2680
2291
|
/** Boxed shapes — position + size + optional centred label. */
|
|
2681
|
-
declare const WHITEBOARD_SHAPE_KINDS: readonly ["rectangle", "ellipse", "database", "queue"];
|
|
2292
|
+
declare const WHITEBOARD_SHAPE_KINDS: readonly ["rectangle", "ellipse", "database", "queue", "file"];
|
|
2682
2293
|
type WhiteboardShapeKind = (typeof WHITEBOARD_SHAPE_KINDS)[number];
|
|
2683
2294
|
/** Every line-leading element keyword, in spec order. */
|
|
2684
|
-
declare const WHITEBOARD_ELEMENT_KEYWORDS: readonly ["rectangle", "ellipse", "database", "queue", "note", "arrow", "line", "text", "image", "ink"];
|
|
2295
|
+
declare const WHITEBOARD_ELEMENT_KEYWORDS: readonly ["rectangle", "ellipse", "database", "queue", "file", "note", "arrow", "line", "text", "image", "ink"];
|
|
2685
2296
|
/**
|
|
2686
2297
|
* Stroke styles for arrows and lines. `solid` is the default and never
|
|
2687
2298
|
* written; `style:` in source accepts only the other values.
|
|
@@ -2696,6 +2307,14 @@ type WhiteboardStrokeStyle = (typeof WHITEBOARD_STROKE_STYLES)[number];
|
|
|
2696
2307
|
*/
|
|
2697
2308
|
declare const WHITEBOARD_FILLS: readonly ["tint", "solid", "outline"];
|
|
2698
2309
|
type WhiteboardFill = (typeof WHITEBOARD_FILLS)[number];
|
|
2310
|
+
/**
|
|
2311
|
+
* Where a shape's label sits, top centre or middle centre. Left off, it is
|
|
2312
|
+
* automatic: a rectangle enclosing another shape, note or image draws its
|
|
2313
|
+
* label at the top, everything else in the middle (#1601). `label:` is
|
|
2314
|
+
* written only when it differs from the automatic answer.
|
|
2315
|
+
*/
|
|
2316
|
+
declare const WHITEBOARD_LABEL_POSITIONS: readonly ["top", "middle"];
|
|
2317
|
+
type WhiteboardLabelPosition = (typeof WHITEBOARD_LABEL_POSITIONS)[number];
|
|
2699
2318
|
/**
|
|
2700
2319
|
* Which ends of an arrow carry a head. `end` (at `to:`) is the default and
|
|
2701
2320
|
* never written; `both` is written `heads: both`. A head at `from:` alone is
|
|
@@ -2716,6 +2335,8 @@ interface WhiteboardShape {
|
|
|
2716
2335
|
readonly color: WhiteboardColor;
|
|
2717
2336
|
/** How the inside is filled; `tint` unless `fill:` says otherwise. */
|
|
2718
2337
|
readonly fill: WhiteboardFill;
|
|
2338
|
+
/** `label:` as written; absent means automatic (`whiteboardLabelPosition`). */
|
|
2339
|
+
readonly labelPosition?: WhiteboardLabelPosition;
|
|
2719
2340
|
readonly lineNumber: number;
|
|
2720
2341
|
}
|
|
2721
2342
|
/** A sticky note's size when `size:` is left off, px. */
|
|
@@ -2882,8 +2503,29 @@ interface WhiteboardConnectorAttachments {
|
|
|
2882
2503
|
readonly from: number;
|
|
2883
2504
|
readonly to: number;
|
|
2884
2505
|
}
|
|
2506
|
+
/** Depth of a file's wavy bottom: `FILE_WAVE`, at most a quarter of `h`. */
|
|
2507
|
+
declare function whiteboardFileWave(h: number): number;
|
|
2508
|
+
/**
|
|
2509
|
+
* Points along a file's wavy bottom, right to left: the cubic the renderer
|
|
2510
|
+
* draws (`whiteboardFilePath`), sampled in `steps` steps. It dips below the
|
|
2511
|
+
* straight bottom on the right and rises above it on the left.
|
|
2512
|
+
*/
|
|
2513
|
+
declare function whiteboardFileWavePoints(x: number, y: number, w: number, h: number, steps?: number): WhiteboardPoint[];
|
|
2514
|
+
/**
|
|
2515
|
+
* A file's outline as an SVG path: a page whose bottom edge is one wave, as
|
|
2516
|
+
* the flowchart document symbol is drawn.
|
|
2517
|
+
*/
|
|
2518
|
+
declare function whiteboardFilePath(x: number, y: number, w: number, h: number): string;
|
|
2885
2519
|
/** Whether `point` lies inside (or on) the shape's or note's drawn outline. */
|
|
2886
2520
|
declare function whiteboardShapeContains(shape: WhiteboardAttachable, point: WhiteboardPoint): boolean;
|
|
2521
|
+
/**
|
|
2522
|
+
* Where a shape's label sits: as written, else automatic — top when the
|
|
2523
|
+
* shape is a rectangle enclosing another shape, sticky note or image (every
|
|
2524
|
+
* edge on or inside it, and not the same box), middle otherwise (#1601).
|
|
2525
|
+
* Read off the geometry every time, like attachment, so dragging a child out
|
|
2526
|
+
* of a container brings its label back to the middle.
|
|
2527
|
+
*/
|
|
2528
|
+
declare function whiteboardLabelPosition(shape: WhiteboardShape, elements: readonly WhiteboardElement[]): WhiteboardLabelPosition;
|
|
2887
2529
|
/**
|
|
2888
2530
|
* Index in `elements` of the topmost shape or sticky note containing `point`
|
|
2889
2531
|
* — the one latest in the file — or -1 when the point is on none.
|
|
@@ -2920,6 +2562,15 @@ declare function whiteboardBendFor(connector: WhiteboardArrow | WhiteboardLine,
|
|
|
2920
2562
|
* the segment's midpoint, or the curve's point at t = ½.
|
|
2921
2563
|
*/
|
|
2922
2564
|
declare function whiteboardSegmentMidpoint(s: WhiteboardSegment): WhiteboardPoint;
|
|
2565
|
+
/** The band `el` paints in; a band always paints above the one before it. */
|
|
2566
|
+
declare function whiteboardDrawBand(el: WhiteboardElement): number;
|
|
2567
|
+
/**
|
|
2568
|
+
* The element indices in paint order, bottom first (spec §39.2): by band,
|
|
2569
|
+
* file order inside a band — except that an arrow or line always paints
|
|
2570
|
+
* just above the latest shape or note it is attached to, so a box never
|
|
2571
|
+
* hides its own connector's head. The renderer and the app canvas share it.
|
|
2572
|
+
*/
|
|
2573
|
+
declare function whiteboardDrawOrder(elements: readonly WhiteboardElement[]): number[];
|
|
2923
2574
|
|
|
2924
2575
|
interface WhiteboardRenderOptions {
|
|
2925
2576
|
/**
|
|
@@ -2988,6 +2639,10 @@ declare function whiteboardConnectorPaint(s: WhiteboardSegment, heads: {
|
|
|
2988
2639
|
declare function inkOutlinePath(points: readonly InkPoint[], width: number): string;
|
|
2989
2640
|
declare function renderWhiteboard(container: HTMLDivElement, parsed: ParsedWhiteboard, palette: PaletteColors, isDark: boolean, options?: WhiteboardRenderOptions): void;
|
|
2990
2641
|
|
|
2642
|
+
/** A top (container) label's font size, px, drawn semibold (#1605). */
|
|
2643
|
+
declare const WHITEBOARD_CONTAINER_FONT = 16;
|
|
2644
|
+
/** A top label's weight: semibold, measured with the bold widths. */
|
|
2645
|
+
declare const WHITEBOARD_CONTAINER_WEIGHT = 600;
|
|
2991
2646
|
/** Sticky note text font size, px — smaller than a shape label. */
|
|
2992
2647
|
declare const WHITEBOARD_NOTE_FONT = 12;
|
|
2993
2648
|
/** Smallest font a label shrinks to before it is cut, px. */
|
|
@@ -3009,7 +2664,8 @@ declare function whiteboardLabelShift(box: WhiteboardLabelBox): number;
|
|
|
3009
2664
|
/** What the fit needs: a label box plus its height. */
|
|
3010
2665
|
type WhiteboardFitBox = WhiteboardLabelBox & Pick<WhiteboardShape, 'height'>;
|
|
3011
2666
|
/** Height a label fits inside `box`, px — the box less its padding, an
|
|
3012
|
-
* ellipse's curve
|
|
2667
|
+
* ellipse's curve, a database's two caps and a file's wavy bottom. Never
|
|
2668
|
+
* below zero. */
|
|
3013
2669
|
declare function whiteboardLabelHeight(box: WhiteboardFitBox): number;
|
|
3014
2670
|
/**
|
|
3015
2671
|
* The lines a shape label or a sticky note's text is drawn as: each written
|
|
@@ -3032,11 +2688,49 @@ declare function wrapWhiteboardLabel(label: string, box: WhiteboardLabelBox): st
|
|
|
3032
2688
|
* shows as much text as the card can hold. `top` is how far below the note's
|
|
3033
2689
|
* top edge its text block starts; a shape centres its block and ignores it.
|
|
3034
2690
|
*/
|
|
3035
|
-
declare function fitWhiteboardLabel(label: string, box: WhiteboardFitBox
|
|
2691
|
+
declare function fitWhiteboardLabel(label: string, box: WhiteboardFitBox, opts?: {
|
|
2692
|
+
/** The size to start from, instead of the kind's own. */
|
|
2693
|
+
readonly font?: number;
|
|
2694
|
+
/** Measured, and so wrapped, at the bold widths. */
|
|
2695
|
+
readonly bold?: boolean;
|
|
2696
|
+
/** The height to fit, instead of the inner box's. */
|
|
2697
|
+
readonly height?: number;
|
|
2698
|
+
}): {
|
|
3036
2699
|
lines: string[];
|
|
3037
2700
|
font: number;
|
|
3038
2701
|
top: number;
|
|
3039
2702
|
};
|
|
2703
|
+
/**
|
|
2704
|
+
* The vertical centre of a shape label's drawn block, `blockHeight` tall.
|
|
2705
|
+
* `middle` centres it in the shape; `top` sets it against the top of the
|
|
2706
|
+
* inner box, the same padding the wrap leaves (#1601).
|
|
2707
|
+
*/
|
|
2708
|
+
declare function whiteboardLabelCentreY(box: WhiteboardFitBox & {
|
|
2709
|
+
readonly y: number;
|
|
2710
|
+
}, position: WhiteboardLabelPosition, blockHeight: number): number;
|
|
2711
|
+
/** A shape label as drawn: its lines, font, weight and vertical centre. */
|
|
2712
|
+
interface WhiteboardShapeLabel {
|
|
2713
|
+
readonly lines: string[];
|
|
2714
|
+
readonly font: number;
|
|
2715
|
+
readonly bold: boolean;
|
|
2716
|
+
/** Vertical centre of the drawn block, canvas px. */
|
|
2717
|
+
readonly cy: number;
|
|
2718
|
+
/** Set into the top border: no room inside, so it halos in the ground. */
|
|
2719
|
+
readonly onEdge: boolean;
|
|
2720
|
+
}
|
|
2721
|
+
/**
|
|
2722
|
+
* How shape `el`'s label is drawn on `elements`, with `text` in place of
|
|
2723
|
+
* its label (the app's text field passes its draft). No label runs into
|
|
2724
|
+
* another shape (#1605): a shape, note or image overlapping the box is an
|
|
2725
|
+
* obstacle, unless it encloses the box. A top label (#1601) is
|
|
2726
|
+
* `WHITEBOARD_CONTAINER_FONT` semibold and fits the strip above the highest
|
|
2727
|
+
* obstacle, else the strip below the lowest. A middle label fits the clear
|
|
2728
|
+
* strip holding the box's centre, else the tallest clear strip, centred as
|
|
2729
|
+
* near the middle as that strip allows; with no obstacle, that is the whole
|
|
2730
|
+
* box, as before. With no room anywhere, either is one line set into the
|
|
2731
|
+
* top border. Each fit wraps, then shrinks to the floor, then ends in `…`.
|
|
2732
|
+
*/
|
|
2733
|
+
declare function whiteboardShapeLabel(el: WhiteboardShape, elements: readonly WhiteboardElement[], text?: string): WhiteboardShapeLabel;
|
|
3040
2734
|
|
|
3041
2735
|
/** A database's (cylinder's) cap, half-height. */
|
|
3042
2736
|
declare const CYLINDER_RY = 8;
|
|
@@ -3056,81 +2750,11 @@ declare const CYLINDER_RY = 8;
|
|
|
3056
2750
|
* override.
|
|
3057
2751
|
*/
|
|
3058
2752
|
declare const QUEUE_CAP = 16;
|
|
3059
|
-
|
|
3060
|
-
declare const SKETCH_GEOMETRY: {
|
|
3061
|
-
/** px per grid cell (the dot-grid pitch) */
|
|
3062
|
-
readonly cellPx: 16;
|
|
3063
|
-
/** universal footprint width, in grid cells */
|
|
3064
|
-
readonly footprintCellsW: 8;
|
|
3065
|
-
/**
|
|
3066
|
-
* Legacy — the gap is now a derived half-unit (footprint/2 per axis), not
|
|
3067
|
-
* these cell counts. Kept only so the shape of SKETCH_GEOMETRY is stable.
|
|
3068
|
-
*/
|
|
3069
|
-
readonly gapCellsX: 4;
|
|
3070
|
-
readonly gapCellsY: 4;
|
|
3071
|
-
/** box reserved top band, px (spec decision 12) */
|
|
3072
|
-
readonly bandPx: 28;
|
|
3073
|
-
/** box frame padding around the children bbox, px */
|
|
3074
|
-
readonly boxPadPx: 16;
|
|
3075
|
-
/** edge-ring (connect hook) width as a fraction of footprint height */
|
|
3076
|
-
readonly ringFrac: 0.22;
|
|
3077
|
-
};
|
|
3078
|
-
/** Footprint width, px — 128 at the default cell (`cellPx` 16 x `footprintCellsW` 8). */
|
|
3079
|
-
declare const SKETCH_FOOT_W: number;
|
|
3080
|
-
/**
|
|
3081
|
-
* Footprint height, px — the ONE universal size (spec §31.2). Every shape is a
|
|
3082
|
-
* golden-ratio landscape box: height ≈ width / φ, forced EVEN so half the
|
|
3083
|
-
* height is a whole pixel (the vertical half-unit). At the default cell,
|
|
3084
|
-
* 128/φ = 79.1 → 80 (ratio 1.6). Uniform: every shape draws to exactly
|
|
3085
|
-
* SKETCH_FOOT_W × SKETCH_FOOT_H. The org-card body (header + rule + ~4 rows)
|
|
3086
|
-
* fits within it.
|
|
3087
|
-
*
|
|
3088
|
-
* ⚠️ The figures here follow `cellPx`, so they are pinned by
|
|
3089
|
-
* `tests/sketch-geometry-constants.test.ts` rather than trusted — this docblock
|
|
3090
|
-
* described a 208 × 128 footprint until 2026-08-29, long after the cell
|
|
3091
|
-
* changed, and that stale figure was copied into the app and the tech spec.
|
|
3092
|
-
*/
|
|
3093
|
-
declare const SKETCH_FOOT_H: number;
|
|
3094
2753
|
/**
|
|
3095
|
-
*
|
|
3096
|
-
*
|
|
3097
|
-
* `sketchSlotToPx` and `layout.ts` both multiply by it. A footprint is 2 of
|
|
3098
|
-
* these wide, so its left/right edges both land on dots.
|
|
3099
|
-
*
|
|
3100
|
-
* 🔴 The desktop canvas agrees, as of 2026-08-30 (#571). It read one unit as
|
|
3101
|
-
* half a SLOT (96) for four days, so the same `at:` value meant different
|
|
3102
|
-
* pixels in the two and a canvas-authored file laid out here with
|
|
3103
|
-
* `W_SKETCH_OVERLAP_RESOLVED` — invisibly, because the resolver's "nearest free
|
|
3104
|
-
* slot" happens to land where the canvas intended on a plain row. Its
|
|
3105
|
-
* `AT_UNIT_X` is this constant now, and its `slotToPx` calls `sketchSlotToPx`
|
|
3106
|
-
* rather than restating the multiplication, so a future divergence is a change
|
|
3107
|
-
* to this file that both sides compile against.
|
|
3108
|
-
*/
|
|
3109
|
-
declare const SKETCH_HALF_SLOT_X: number;
|
|
3110
|
-
/** Vertical half-unit pitch, px: half a footprint (40 at the default cell). */
|
|
3111
|
-
declare const SKETCH_HALF_SLOT_Y: number;
|
|
3112
|
-
/**
|
|
3113
|
-
* Minimum origin separation in half-units. A footprint spans 2 half-units and
|
|
3114
|
-
* the mandatory gap adds 1 more, so each shape claims a SEP×SEP (3×3) collision
|
|
3115
|
-
* block (unitRect in layout.ts); two shapes collide when their blocks overlap.
|
|
3116
|
-
* At exactly SEP apart the gap between footprints == one half-unit.
|
|
3117
|
-
*/
|
|
3118
|
-
declare const SKETCH_SEP = 3;
|
|
3119
|
-
/**
|
|
3120
|
-
* Full-slot pitch, px: footprint + gap (== SKETCH_SEP half-units). The
|
|
3121
|
-
* origin-to-origin distance between two edge-adjacent shapes — 192 × 120 at
|
|
3122
|
-
* the default cell, leaving 64 × 40 of clear air between two footprints.
|
|
3123
|
-
*
|
|
3124
|
-
* That clear air is what `JOIN_REACH` in the canvas is (#560), which is why it
|
|
3125
|
-
* is a lattice quantity rather than a tuned number.
|
|
2754
|
+
* Depth of a whiteboard file's wavy bottom edge, before clamping to a quarter
|
|
2755
|
+
* of its height — the flowchart document symbol's `DOC_WAVE_HEIGHT`.
|
|
3126
2756
|
*/
|
|
3127
|
-
declare const
|
|
3128
|
-
declare const SKETCH_SLOT_Y: number;
|
|
3129
|
-
/** Slot → px (origin of the footprint), before any canvas padding. */
|
|
3130
|
-
declare function sketchSlotToPx(c: number, r: number): {
|
|
3131
|
-
x: number;
|
|
3132
|
-
y: number;
|
|
3133
|
-
};
|
|
2757
|
+
declare const FILE_WAVE = 10;
|
|
3134
2758
|
|
|
3135
2759
|
interface FocusTarget {
|
|
3136
2760
|
readonly kind: 'box' | 'group';
|
|
@@ -7341,103 +6965,6 @@ declare function renderLegendSvgFromConfig(config: LegendConfig, state: LegendSt
|
|
|
7341
6965
|
isDark: boolean;
|
|
7342
6966
|
}, containerWidth: number): LegendRenderResult;
|
|
7343
6967
|
|
|
7344
|
-
declare const SKETCH_VISUALS: {
|
|
7345
|
-
/** Air round the whole diagram. */
|
|
7346
|
-
readonly diagramPadding: 20;
|
|
7347
|
-
readonly titleY: 30;
|
|
7348
|
-
readonly titleFontSize: 20;
|
|
7349
|
-
readonly titleFontWeight: number;
|
|
7350
|
-
readonly nodeStrokeWidth: 1.5;
|
|
7351
|
-
readonly edgeStrokeWidth: 1.5;
|
|
7352
|
-
readonly arrowheadW: 10;
|
|
7353
|
-
readonly arrowheadH: 7;
|
|
7354
|
-
readonly dash: "6 3";
|
|
7355
|
-
/** A card's name. Shared, and it fits DOWN to `nodeLabelFontSizeMin` before
|
|
7356
|
-
* it wraps — it used to be allowed up to 30 on a card with no rows, which is
|
|
7357
|
-
* more than twice what any other chart type prints. */
|
|
7358
|
-
readonly nodeLabelFontSize: 13;
|
|
7359
|
-
readonly nodeLabelFontSizeMin: 11;
|
|
7360
|
-
/** A card's description rows. */
|
|
7361
|
-
readonly cardMetaFontSize: 11;
|
|
7362
|
-
/** A card's header band. */
|
|
7363
|
-
readonly cardHeaderHeight: 28;
|
|
7364
|
-
readonly bandLabelFontSize: 13;
|
|
7365
|
-
readonly bandLabelFontWeight: number;
|
|
7366
|
-
readonly bandLabelOpacity: 1;
|
|
7367
|
-
/** 11 — what boxes-and-lines prints. It was 12, the only edge label in the
|
|
7368
|
-
* product at that size. */
|
|
7369
|
-
readonly edgeLabelFontSize: 11;
|
|
7370
|
-
/** The `palette.bg` halo painted under an edge label so the connector cannot
|
|
7371
|
-
* cross its glyphs. Stroke, with `paint-order: stroke`. */
|
|
7372
|
-
readonly edgeLabelHaloWidth: 3;
|
|
7373
|
-
readonly cardRadius: 6;
|
|
7374
|
-
readonly containerRadius: 8;
|
|
7375
|
-
};
|
|
7376
|
-
|
|
7377
|
-
interface SketchNodeColors {
|
|
7378
|
-
readonly fill: string;
|
|
7379
|
-
readonly stroke: string;
|
|
7380
|
-
readonly text: string;
|
|
7381
|
-
}
|
|
7382
|
-
/** How a sketch fills its shapes — the `fill-mode` option, verbatim. */
|
|
7383
|
-
type SketchFillMode = 'solid' | 'outline' | undefined;
|
|
7384
|
-
/**
|
|
7385
|
-
* 🔴 Containers are painted at this, over an opaque node fill. dgmo's own
|
|
7386
|
-
* number (`renderer.ts`), here so the app cannot pick a different one — it had
|
|
7387
|
-
* 0.12 against this 0.4, which is most of why a group read as a wash rather
|
|
7388
|
-
* than a frame.
|
|
7389
|
-
*/
|
|
7390
|
-
declare const CONTAINER_FILL_OPACITY = 1;
|
|
7391
|
-
/** A container's outline, which is far softer than a node's — `boxes-and-lines`
|
|
7392
|
-
* gives the same object exactly this. */
|
|
7393
|
-
declare const CONTAINER_STROKE_OPACITY = 0.35;
|
|
7394
|
-
/** And its stroke width: a plain 1, not a node's. */
|
|
7395
|
-
declare const CONTAINER_STROKE_WIDTH = 1;
|
|
7396
|
-
/**
|
|
7397
|
-
* An UNTAGGED container's surface — the library's neutral group fill.
|
|
7398
|
-
*
|
|
7399
|
-
* 🔴 It is `groupFill` with no colour, delegated rather than restated, because
|
|
7400
|
-
* the two were the same expression written twice and the whole point of #619 is
|
|
7401
|
-
* that sketch stopped having its own answer here.
|
|
7402
|
-
*
|
|
7403
|
-
* ⚠️ The name is now narrower than it reads: a container that CARRIES a value
|
|
7404
|
-
* does not come through here at all — see the container branch of
|
|
7405
|
-
* `sketchColors`. This stays exported for the app's live canvas, which asks for
|
|
7406
|
-
* the neutral fill directly when it is drawing a frame nothing has classified.
|
|
7407
|
-
*
|
|
7408
|
-
* The history is worth keeping, because it is why sketch was the last chart
|
|
7409
|
-
* type left out. Sketch used to paint a whole group in its own tag at 0.4, so a
|
|
7410
|
-
* tagged group was a wash with everything inside it swimming in that wash, and
|
|
7411
|
-
* a sketch beside a `boxes-and-lines` chart of the same content did not read as
|
|
7412
|
-
* the same product (reported 2026-08-27). The fix was to make a container
|
|
7413
|
-
* neutral *whatever it carried* — which overshot: the group-frame sweep for
|
|
7414
|
-
* diagrammo/diagrammo#585 gave five other chart types a **tenth**, not a
|
|
7415
|
-
* fortieth, and a coloured stroke to carry the meaning. That is what the frame
|
|
7416
|
-
* wears now, and the wash cannot come back at 10%.
|
|
7417
|
-
*/
|
|
7418
|
-
declare function sketchContainerFill(palette: PaletteColors, isDark: boolean): string;
|
|
7419
|
-
/**
|
|
7420
|
-
* Untagged shapes still read as filled cards, not empty outlines: a slight gray
|
|
7421
|
-
* tint (muted mixed into the bg) — subtle on light, a touch lighter than the bg
|
|
7422
|
-
* on dark.
|
|
7423
|
-
*/
|
|
7424
|
-
declare function sketchNeutralFill(palette: PaletteColors, isDark: boolean, fillMode: SketchFillMode): string;
|
|
7425
|
-
/**
|
|
7426
|
-
* The colours one thing on a sketch wears, given what it carries.
|
|
7427
|
-
*
|
|
7428
|
-
* Returns a function rather than a value because every node on a board asks the
|
|
7429
|
-
* same question against the same active group, and resolving that group once is
|
|
7430
|
-
* the whole point.
|
|
7431
|
-
*/
|
|
7432
|
-
declare function sketchColors(opts: {
|
|
7433
|
-
readonly palette: PaletteColors;
|
|
7434
|
-
readonly isDark: boolean;
|
|
7435
|
-
readonly tagGroups: readonly TagGroup[];
|
|
7436
|
-
/** The group the legend says is active, or undefined to let dgmo choose. */
|
|
7437
|
-
readonly activeTagGroup?: string | null | undefined;
|
|
7438
|
-
readonly fillMode: SketchFillMode;
|
|
7439
|
-
}): (metadata: Record<string, string>, isContainer?: boolean) => SketchNodeColors;
|
|
7440
|
-
|
|
7441
6968
|
declare const FONT_FAMILY = "Inter, system-ui, Avenir, Helvetica, Arial, sans-serif";
|
|
7442
6969
|
declare const DEFAULT_FONT_NAME = "Inter";
|
|
7443
6970
|
|
|
@@ -7919,5 +7446,5 @@ declare function getSpaceDiagram(target: CloudSpaceTarget, which: {
|
|
|
7919
7446
|
/** Every diagram in the space, sorted by folder path then title. */
|
|
7920
7447
|
declare function listSpaceDiagrams(target: CloudSpaceTarget): Promise<SpaceDiagramSummary[]>;
|
|
7921
7448
|
|
|
7922
|
-
export { ARROW_DIAGNOSTIC_CODES, CLOUD_API,
|
|
7923
|
-
export type { Activation, AncestorInfo, ArcLink, ArcNodeGroup, BLCollapseResult, BLEdge, BLGroup, BLLayoutEdge, BLLayoutGroup, BLLayoutNode, BLLayoutResult, BLNode, BlipTrend, BlockCell, BlockGrid, BlockLayoutItem, BlockLayoutResult, BlockNode, BlockOptions, BodyFigure, BodyOptions, BodyPart, BracketMode, BracketSide, C4ArrowType, C4DeploymentNode, C4Element, C4ElementType, C4Group, C4LayoutBoundary, C4LayoutEdge, C4LayoutNode, C4LayoutResult, C4LegendEntry, C4LegendGroup, C4Relationship, C4Shape, C4TagEntry, C4TagGroup, ChartDataPoint, ChartEra, ChartType$1 as ChartType, ClassLayoutEdge, ClassLayoutNode, ClassLayoutResult, ClassMember, ClassModifier, ClassNode, ClassRelationship, ClockEntry, ClockFace, ClockZoneKind, CloudSpaceTarget, CodepointRange, CollapsedMindmapResult, CollapsedOrgResult, CollapsedSitemapResult, CollapsedView, ComputedInfraEdge, ComputedInfraModel, ComputedInfraNode, ContextRelationship, CountUnits, CreateMapGeoQueryOptions, CycleEdge, CycleLayoutEdge, CycleLayoutNode, CycleLayoutResult, CycleNode, CycleRenderOptions, D3ExportDimensions, DiagramSymbols, DiagramValidation, Duration, DurationUnit, ERCardinality, ERColumn, ERConstraint, ERLayoutEdge, ERLayoutNode, ERLayoutResult, ERRelationship, ERTable, ElseIfBranch, EventLineEra, EventLineEvent, EventLineFocus, EventLineOptions, ExpandedActivity, ExtendedChartType, FamilyChild, FamilyChildEdge, FamilyLayoutNode, FamilyLayoutResult, FamilyMarriageBar, FamilyPerson, FamilySex, FamilyUnion, FocusOrgResult, FocusResult, FocusTarget, FontCoverage, GanttDependency, GanttEra, GanttGroup, GroupRow as GanttGroupRow, GanttHolidays, GanttInteractiveOptions, LaneHeaderRow as GanttLaneHeaderRow, GanttMarker, GanttNode, GanttOptions, Row as GanttRow, GanttTask, TaskRow as GanttTaskRow, GetOrCreateNameResult, GoalMode, GoalOptions, GraphDirection, GraphEdge, GraphGroup, GraphNode, GraphShape, InfraAvailabilityPercentiles, InfraBehaviorKey, InfraCbState, InfraComputeParams, InfraDiagnostic, InfraEdge, InfraGroup, InfraLatencyPercentiles, InfraLayoutEdge, InfraLayoutGroup, InfraLayoutNode, InfraLayoutResult, InfraLegendGroup, InfraNode, InfraPlaybackState, InfraProperty, InfraRole, InfraTagGroup, InlineSpan, JourneyMapAnnotation, JourneyMapInteractiveOptions, JourneyMapLayout, JourneyMapPersona, JourneyMapPhase, JourneyMapStep, KanbanCard, KanbanColumn, KanbanTagEntry, KanbanTagGroup, LayoutEdge, LayoutGroup, LayoutNode, LayoutOptions$1 as LayoutOptions, LayoutResult$1 as LayoutResult, LegendCallbacks, LegendConfig, LegendControl, LegendGroupData, LegendHandle, LegendLayout, LegendMode, LegendPalette, LegendPosition, LegendState, MapExportDimensions, MapGeoQuery, MapLayout, MapLayoutInset, MapLayoutLeg, MapLayoutPoi, MapLayoutRegion, MapLayoutStretch, MapProjectionKind, MapProjectionParams, MapProjectionSpec, MemberVisibility, MindmapLayoutEdge, MindmapLayoutNode, MindmapLayoutResult, MindmapNode, MonteCarloResult, NameEntry, NearestCity, NodeDetail, OrgContainerBounds, OrgLayoutEdge, OrgLayoutNode, OrgLayoutResult, PaletteDirective, ParseInArrowLabelResult, ParsedBlock, ParsedBody, ParsedBoxesAndLines, ParsedBracket, ParsedC4, ParsedChart, ParsedClassDiagram, ParsedClock, ParsedCountdown, ParsedCycle, ParsedERDiagram, ParsedEventLine, ParsedExtendedChart, ParsedFamily, ParsedGantt, ParsedGoal, ParsedGraph, ParsedInfra, ParsedJourneyMap, ParsedKanban, ParsedLiveLink, ParsedMindmap, ParsedPert, ParsedPyramid, ParsedRing, ParsedSequenceDgmo, ParsedSitemap,
|
|
7449
|
+
export { ARROW_DIAGNOSTIC_CODES, CLOUD_API, CYLINDER_RY, CloudSpaceError, CompactViewState, DEFAULT_FONT_NAME, DgmoError, EXAMPLES_SHOWN, FILE_WAVE, FLOWCHART_STRUCTURE_CODE, FONT_FAMILY, GeoExtent, DEFAULT_DIM_OPACITY as HOVER_DIM_OPACITY, IMAGE_NOT_UPLOADED, INFRA_BEHAVIOR_KEYS, INVALID_COLOR_CODE, INVALID_CSS_COLOR_HEX, LEGEND_CAPSULE_PAD, LEGEND_DOT_R, LEGEND_ENTRY_DOT_GAP, LEGEND_ENTRY_FONT_SIZE, LEGEND_ENTRY_TRAIL, LEGEND_GEAR_PILL_W, LEGEND_GROUP_GAP, LEGEND_HEIGHT, LEGEND_MAX_ENTRY_ROWS, LEGEND_PILL_FONT_SIZE, LEGEND_PILL_PAD, MapData, MapLayoutLegend, PaletteColors, PaletteConfig, ParsedMap, ParsedOrg, ParsedRaci, QUEUE_CAP, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, RaciMarker, RaciTask, RaciVariant, ResolvedMap, ScaleContext, TagEntry, TagGroup, WHITEBOARD_COLORS, WHITEBOARD_CONTAINER_FONT, WHITEBOARD_CONTAINER_WEIGHT, WHITEBOARD_ELEMENT_KEYWORDS, WHITEBOARD_FILLS, WHITEBOARD_HEADS, WHITEBOARD_LABEL_MIN_FONT, WHITEBOARD_LABEL_POSITIONS, WHITEBOARD_NOTE_COLOR, WHITEBOARD_NOTE_FONT, WHITEBOARD_NOTE_HEIGHT, WHITEBOARD_NOTE_WIDTH, WHITEBOARD_SHAPE_KINDS, WHITEBOARD_STROKE_STYLES, addDurationToDate, albersSkewFallback, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, authoredCollapsedIds, blueprintPalette, breakAtoms, buildNoteMessageMap, buildRenderSequence, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, choosePalette, clearEventLineMuted, clipWhiteboardConnector, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeTimeTicks, controlsGroupCapsuleWidth, createMapGeoQuery, createMapGeoQueryForLayout, displayName, emitWhiteboard, emitWhiteboardElement, extractCategorizeRule, extractSymbols$2 as extractClassSymbols, extractColorRule, extractSymbols$1 as extractErSymbols, extractSymbols$3 as extractFlowchartSymbols, extractSymbols as extractInfraSymbols, extractPaletteDirective, extractPertSymbols, extractSection, extractTitleRule, fitWhiteboardLabel, fitWrapped, focusBoxesAndLines, focusEventLine, focusOrgTree, fontPortabilityWarning, formatChartTypeList, formatDateLabel, formatDiagramValidation, formatExamples, formatOffsetLabel, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getRadarGeometry, getSimpleChartLegendGroups, getSpaceDiagram, groupMessagesBySection, inferParticipantType, inferRoles, inkOutlinePath, invalidColorDiagnostic, isArchiveColumn, isExampleFor, isInvalidColorToken, isRecognizedColorName, isSequenceBlock, isSequenceNote, isWhiteboardColor, isWhiteboardImageRef, isWhiteboardShapeKind, layoutBlock, layoutBoxesAndLines, layoutBracket, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutFamily, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutSwimlane, layoutTreemap, layoutTreemapRadial, layoutWireframe, legendEntryWidth, listSpaceDiagrams, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, measurePertAnalysisBlock, measureText, mulberry32, nearestNamedColor, nord, nordPalette, normalizeName, normalizePlace, orderArcNodes, parseAndLayoutInfra, parseBlock, parseBody, parseBoxesAndLines, parseBracket, parseC4, parseChart, parseClassDiagram, parseClock, parseCountdown, parseCycle, parseDataRowValues, parseERDiagram, parseEventLine, parseExtendedChart, parseFamily, parseFixedOffset, parseFlowchart, parseGantt, parseGoal, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseLiveLink, parseMap, parseMindmap, parsePert, parsePyramid, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseState, parseSwimlane, parseTechRadar, parseTimelineDate, parseTreemap, parseTypeAliases, parseVersionControl, parseVisualization, parseWhiteboard, parseWireframe, putSpaceDiagram, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, rebuildMapProjection, referenceForChartType, 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, renderLiveLinkCard, renderMap, renderMapForExport, renderMapLayout, 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, renderWhiteboard, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolvePlace, resolveTaskName, rollUpContextRelationships, sameWhiteboard, sampleBetaPert, searchZones, seriesColors, simulateCanonical, simulateFast, slatePalette, startClocks, startCountdowns, targetToMs, textFromSvg, tickClocks, tickCountdowns, tidewaterPalette, tokyoNightPalette, truncateBareUrl, truncateText, uncoveredCharacters, validateComputed, validateDiagram, validateFlowchartStructure, validateInfra, validateLabelCharacters, validateThemeFile, visibleWhiteboardElements, visibleWhiteboardIndices, whiteboardBendFor, whiteboardBendHandle, whiteboardBounds, whiteboardConnectorAttachments, whiteboardConnectorPaint, whiteboardDrawBand, whiteboardDrawOrder, whiteboardFilePath, whiteboardFileWave, whiteboardFileWavePoints, whiteboardLabelCentreY, whiteboardLabelHeight, whiteboardLabelPosition, whiteboardLabelShift, whiteboardLabelWidth, whiteboardNoteFold, whiteboardSegmentMidpoint, whiteboardShapeAt, whiteboardShapeContains, whiteboardShapeLabel, wrapTextToWidth, wrapWhiteboardLabel };
|
|
7450
|
+
export type { Activation, AncestorInfo, ArcLink, ArcNodeGroup, BLCollapseResult, BLEdge, BLGroup, BLLayoutEdge, BLLayoutGroup, BLLayoutNode, BLLayoutResult, BLNode, BlipTrend, BlockCell, BlockGrid, BlockLayoutItem, BlockLayoutResult, BlockNode, BlockOptions, BodyFigure, BodyOptions, BodyPart, BracketMode, BracketSide, C4ArrowType, C4DeploymentNode, C4Element, C4ElementType, C4Group, C4LayoutBoundary, C4LayoutEdge, C4LayoutNode, C4LayoutResult, C4LegendEntry, C4LegendGroup, C4Relationship, C4Shape, C4TagEntry, C4TagGroup, ChartDataPoint, ChartEra, ChartType$1 as ChartType, ClassLayoutEdge, ClassLayoutNode, ClassLayoutResult, ClassMember, ClassModifier, ClassNode, ClassRelationship, ClockEntry, ClockFace, ClockZoneKind, CloudSpaceTarget, CodepointRange, CollapsedMindmapResult, CollapsedOrgResult, CollapsedSitemapResult, CollapsedView, ComputedInfraEdge, ComputedInfraModel, ComputedInfraNode, ContextRelationship, CountUnits, CreateMapGeoQueryOptions, CycleEdge, CycleLayoutEdge, CycleLayoutNode, CycleLayoutResult, CycleNode, CycleRenderOptions, D3ExportDimensions, DiagramSymbols, DiagramValidation, Duration, DurationUnit, ERCardinality, ERColumn, ERConstraint, ERLayoutEdge, ERLayoutNode, ERLayoutResult, ERRelationship, ERTable, ElseIfBranch, EventLineEra, EventLineEvent, EventLineFocus, EventLineOptions, ExpandedActivity, ExtendedChartType, FamilyChild, FamilyChildEdge, FamilyLayoutNode, FamilyLayoutResult, FamilyMarriageBar, FamilyPerson, FamilySex, FamilyUnion, FocusOrgResult, FocusResult, FocusTarget, FontCoverage, GanttDependency, GanttEra, GanttGroup, GroupRow as GanttGroupRow, GanttHolidays, GanttInteractiveOptions, LaneHeaderRow as GanttLaneHeaderRow, GanttMarker, GanttNode, GanttOptions, Row as GanttRow, GanttTask, TaskRow as GanttTaskRow, GetOrCreateNameResult, GoalMode, GoalOptions, GraphDirection, GraphEdge, GraphGroup, GraphNode, GraphShape, InfraAvailabilityPercentiles, InfraBehaviorKey, InfraCbState, InfraComputeParams, InfraDiagnostic, InfraEdge, InfraGroup, InfraLatencyPercentiles, InfraLayoutEdge, InfraLayoutGroup, InfraLayoutNode, InfraLayoutResult, InfraLegendGroup, InfraNode, InfraPlaybackState, InfraProperty, InfraRole, InfraTagGroup, InlineSpan, JourneyMapAnnotation, JourneyMapInteractiveOptions, JourneyMapLayout, JourneyMapPersona, JourneyMapPhase, JourneyMapStep, KanbanCard, KanbanColumn, KanbanTagEntry, KanbanTagGroup, LayoutEdge, LayoutGroup, LayoutNode, LayoutOptions$1 as LayoutOptions, LayoutResult$1 as LayoutResult, LegendCallbacks, LegendConfig, LegendControl, LegendGroupData, LegendHandle, LegendLayout, LegendMode, LegendPalette, LegendPosition, LegendState, MapExportDimensions, MapGeoQuery, MapLayout, MapLayoutInset, MapLayoutLeg, MapLayoutPoi, MapLayoutRegion, MapLayoutStretch, MapProjectionKind, MapProjectionParams, MapProjectionSpec, MemberVisibility, MindmapLayoutEdge, MindmapLayoutNode, MindmapLayoutResult, MindmapNode, MonteCarloResult, NameEntry, NearestCity, NodeDetail, OrgContainerBounds, OrgLayoutEdge, OrgLayoutNode, OrgLayoutResult, PaletteDirective, ParseInArrowLabelResult, ParsedBlock, ParsedBody, ParsedBoxesAndLines, ParsedBracket, ParsedC4, ParsedChart, ParsedClassDiagram, ParsedClock, ParsedCountdown, ParsedCycle, ParsedERDiagram, ParsedEventLine, ParsedExtendedChart, ParsedFamily, ParsedGantt, ParsedGoal, ParsedGraph, ParsedInfra, ParsedJourneyMap, ParsedKanban, ParsedLiveLink, ParsedMindmap, ParsedPert, ParsedPyramid, ParsedRing, ParsedSequenceDgmo, ParsedSitemap, ParsedSwimlane, ParsedTechRadar, ParsedTreemap, ParsedVersionControl, ParsedVisualization, ParsedWhiteboard, ParsedWireframe, ParticipantType, PertActivity, Anchor as PertAnchor, PertDirection, PertEdge, PertGroup, PertLayoutEdge, PertLayoutGroup, PertLayoutNode, LayoutOverrides as PertLayoutOverrides, LayoutResult as PertLayoutResult, PertMilestone, PertOptions, PertRenderOptions, PlaceResolution, PlacedLabel, ProjectedCity, PyramidLayer, QuadrantPosition, RaciDragSource, RaciInteractionHandlers, RadialCell, RadialLayoutResult, RawMatch, RawSeed, RecurRule, RegionToken, RelationshipType, RenderStep, ResolvedActivity, ResolvedGroup$1 as ResolvedGroup, ResolvedPert, ResolvedGroup as ResolvedPertGroup, ResolvedSchedule, ResolvedTask, ResultCard, ResultTokens, RingLayer, RoundMode, SectionMessageGroup, SequenceBlock, SequenceElement, SequenceGroup, SequenceMessage, SequenceNote, SequenceParticipant, SequenceRenderOptions, SequenceSection, SimulateOptions, SitemapContainerBounds, SitemapDirection, SitemapEdge, SitemapLayoutEdge, SitemapLayoutNode, SitemapLayoutResult, SitemapLegendEntry, SitemapLegendGroup, SitemapNode, SpaceDiagram, SpaceDiagramSummary, SpacePutResult, StateCollapseResult, SwimEdge, SwimEvent, SwimLane, SwimNode, SwimPhase, SwimShape, LayoutBand as SwimlaneLayoutBand, SwimlaneLayoutResult, TechRadarBlip, TechRadarLayoutPoint, TechRadarQuadrant, TechRadarRing, ThemeFileResult, TreemapCell, TreemapColorMode, TreemapLayoutResult, TreemapNode, TreemapOptions, UncoveredRun, VCBranch, VCNode, VCNote, VCOptions, VCRef, ValidateDiagramOptions, VisualizationType, WhiteboardArrow, WhiteboardAttachable, WhiteboardColor, WhiteboardConnectorAttachments, WhiteboardConnectorPaint, WhiteboardElement, WhiteboardFill, WhiteboardFitBox, WhiteboardHeads, WhiteboardImage, WhiteboardInk, WhiteboardLabelBox, WhiteboardLabelPosition, WhiteboardLine, WhiteboardNote, WhiteboardOptions, WhiteboardPoint, WhiteboardRenderOptions, WhiteboardSegment, WhiteboardShape, WhiteboardShapeKind, WhiteboardShapeLabel, WhiteboardStrokeStyle, WhiteboardText, WireframeElement, WireframeElementType, WireframeFormFactor, WireframeLayout, WireframeLayoutNode, WorkWindow, ZoneSuggestion };
|