docmedown 0.1.0 → 0.1.2
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 +69 -20
- package/dist/abnfDiagram-VCTEODGH-CtQBp0Qv.mjs +89 -0
- package/dist/abnfDiagram-VCTEODGH-mccrzlD_.js +1 -0
- package/dist/arc-DgPKXEdT.mjs +82 -0
- package/dist/arc-n7TW7Bis.js +1 -0
- package/dist/architecture-7GRP2DOG-B7myQ46f.js +1 -0
- package/dist/architecture-7GRP2DOG-Cxj1ussQ.mjs +3 -0
- package/dist/architectureDiagram-5GKGNRK7-BdTCu5T3.js +36 -0
- package/dist/architectureDiagram-5GKGNRK7-CkgZa-G1.mjs +4154 -0
- package/dist/array-CApNbSU9.mjs +6 -0
- package/dist/array-DZSRzHA_.js +1 -0
- package/dist/blockDiagram-I7D4REHJ-CSYvpxQw.js +129 -0
- package/dist/blockDiagram-I7D4REHJ-CYngfPD9.mjs +1922 -0
- package/dist/c4Diagram-7LVT6UL2-B-sz5MUK.js +38 -0
- package/dist/c4Diagram-7LVT6UL2-DEzxFf2b.mjs +3010 -0
- package/dist/channel-LgHproiI.mjs +5 -0
- package/dist/channel-yqu0m4cl.js +1 -0
- package/dist/chunk-2E4U76K2-BOyeRQsI.js +1 -0
- package/dist/chunk-2E4U76K2-CoTrgtfg.mjs +348 -0
- package/dist/chunk-2Q5K7J3B-D4EgYPOq.mjs +15 -0
- package/dist/chunk-2Q5K7J3B-DhjCNjaM.js +1 -0
- package/dist/chunk-4HAMMTFA-GFyfmcSO.js +62 -0
- package/dist/chunk-4HAMMTFA-VgWPe1ng.mjs +4188 -0
- package/dist/chunk-5VM5RSS4-GINalzIv.js +15 -0
- package/dist/chunk-5VM5RSS4-TqxtqrwE.mjs +5 -0
- package/dist/chunk-75Z2AOVW-DYouz5MZ.js +2 -0
- package/dist/chunk-75Z2AOVW-Dz0Sko9Y.mjs +1330 -0
- package/dist/chunk-CLGD4ZFX-C5J-e2io.js +1 -0
- package/dist/chunk-CLGD4ZFX-DBkwyMMv.mjs +14 -0
- package/dist/chunk-DU6HZSFF-BEQZSmUu.mjs +3836 -0
- package/dist/chunk-DU6HZSFF-CWc5ewtb.js +127 -0
- package/dist/chunk-F27PBJKO-8jvY_jJK.js +1 -0
- package/dist/chunk-F27PBJKO-DFH3sRZG.mjs +61 -0
- package/dist/chunk-FOHPRMQF-LRqOLsSw.mjs +21456 -0
- package/dist/chunk-FOHPRMQF-tmTlwTeH.js +161 -0
- package/dist/chunk-GMAD6QVW-BZeZ4fdb.mjs +1863 -0
- package/dist/chunk-GMAD6QVW-DEQiTa0c.js +72 -0
- package/dist/chunk-GVQU2GXP-B1D3J05J.mjs +37 -0
- package/dist/chunk-GVQU2GXP-CdJIWN41.js +1 -0
- package/dist/chunk-IMKFNOWR-BmZb9U1f.mjs +2042 -0
- package/dist/chunk-IMKFNOWR-CPJsszGN.js +231 -0
- package/dist/chunk-JWPE2WC7-DIKiF5cm.mjs +8 -0
- package/dist/chunk-JWPE2WC7-p1fYVdYc.js +1 -0
- package/dist/chunk-L3NEJ4N5-TzDiVs78.js +1 -0
- package/dist/chunk-L3NEJ4N5-lal8wUID.mjs +245 -0
- package/dist/chunk-LNGE3PJU-BQX75wkM.js +34 -0
- package/dist/chunk-LNGE3PJU-DJ9JuXV6.mjs +1521 -0
- package/dist/chunk-OSK3NFVY-9AWK88m1.mjs +672 -0
- package/dist/chunk-OSK3NFVY-CHzvVe8m.js +10 -0
- package/dist/chunk-P2QGCYS3-6q3AXPt5.mjs +67 -0
- package/dist/chunk-P2QGCYS3-DKZzpRQW.js +1 -0
- package/dist/chunk-POPQ4Y6H-Dd7J9tx3.mjs +26 -0
- package/dist/chunk-POPQ4Y6H-T5C7wpjf.js +1 -0
- package/dist/chunk-PWAF6VOD-BYG76tEe.mjs +275 -0
- package/dist/chunk-PWAF6VOD-DxZLuCEw.js +1 -0
- package/dist/chunk-SHT3W25Y-B2Wes8jn.mjs +4183 -0
- package/dist/chunk-SHT3W25Y-BQjHSn5K.js +168 -0
- package/dist/chunk-SVP7TREG-BFMd615E.js +88 -0
- package/dist/chunk-SVP7TREG-CynckzeF.mjs +490 -0
- package/dist/chunk-TICWLB2K-BfCuoR1V.mjs +3357 -0
- package/dist/chunk-TICWLB2K-agcyBfUp.js +206 -0
- package/dist/chunk-TLUHSLCS-CUrWaKDG.mjs +59 -0
- package/dist/chunk-TLUHSLCS-Drx_a7am.js +1 -0
- package/dist/chunk-XXDRQBXY-AAk1-Cyg.js +1 -0
- package/dist/chunk-XXDRQBXY-DpR8eYzz.mjs +9 -0
- package/dist/chunk-Y2CYZVJY-CnmLqFtv.js +1 -0
- package/dist/chunk-Y2CYZVJY-i11wjrBe.mjs +12 -0
- package/dist/classDiagram-ZZMXUADV-B7IN9zcX.js +1 -0
- package/dist/classDiagram-ZZMXUADV-tcy6gxSB.mjs +30 -0
- package/dist/classDiagram-v2-VYDZK3BY-B7IN9zcX.js +1 -0
- package/dist/classDiagram-v2-VYDZK3BY-D5wM6Acp.mjs +30 -0
- package/dist/cli.js +719 -532
- package/dist/cose-bilkent-JH36ORCC-DBUPO3qJ.js +1 -0
- package/dist/cose-bilkent-JH36ORCC-Slpx4WIt.mjs +2253 -0
- package/dist/cynefin-OW5HDTMX--QVnfGi1.mjs +3 -0
- package/dist/cynefin-OW5HDTMX-lNKysi7S.js +1 -0
- package/dist/cynefinDiagram-5FMLGOSQ-CsFONYqx.js +62 -0
- package/dist/cynefinDiagram-5FMLGOSQ-DsrxYBcg.mjs +355 -0
- package/dist/cytoscape.esm-C5TvPYYm.mjs +18148 -0
- package/dist/cytoscape.esm-CBmWJr5M.js +321 -0
- package/dist/dagre-CZ6P9L_h.js +1 -0
- package/dist/dagre-GXQ25YYZ-CQszk-7P.js +4 -0
- package/dist/dagre-GXQ25YYZ-ecYByRSn.mjs +425 -0
- package/dist/dagre-J_1oH0eY.mjs +1934 -0
- package/dist/defaultLocale-N-0uLSyg.mjs +198 -0
- package/dist/defaultLocale-ybN1Vtvg.js +1 -0
- package/dist/diagram-S7CK7UJ4-CTMvxX__.js +30 -0
- package/dist/diagram-S7CK7UJ4-DxCghfa-.mjs +301 -0
- package/dist/diagram-UQ7AKVKN-1viEkqlG.js +41 -0
- package/dist/diagram-UQ7AKVKN-BA7Z_oB7.mjs +214 -0
- package/dist/diagram-VSXAHHWV-DgVT19mq.js +3 -0
- package/dist/diagram-VSXAHHWV-Dtqo03M5.mjs +432 -0
- package/dist/diagram-VX7I27RA-CNw0pOX_.js +24 -0
- package/dist/diagram-VX7I27RA-GMPRt8Zh.mjs +527 -0
- package/dist/diagram-Z3DM3KII-C6XdQK_Q.mjs +134 -0
- package/dist/diagram-Z3DM3KII-CPkBr3FT.js +24 -0
- package/dist/dist-CXWJafG_.js +1 -0
- package/dist/dist-DNdLIC8h.mjs +59 -0
- package/dist/docmedown.cjs +125 -44
- package/dist/docmedown.iife.js +3477 -72
- package/dist/docmedown.mjs +10003 -4807
- package/dist/ebnfDiagram-PWID7BFC-CseVsyL3.js +1 -0
- package/dist/ebnfDiagram-PWID7BFC-D_dBDXWC.mjs +100 -0
- package/dist/erDiagram-RLTQ6QDP-DFwfQTRS.js +99 -0
- package/dist/erDiagram-RLTQ6QDP-DP7ddGMH.mjs +1966 -0
- package/dist/eventmodeling-NTZA5JFV-CzxVg0l5.js +1 -0
- package/dist/eventmodeling-NTZA5JFV-Djsy__5n.mjs +3 -0
- package/dist/flowDiagram-HODETNUW-7hSJfI3W.js +1 -0
- package/dist/flowDiagram-HODETNUW-Dqu5Lr19.mjs +17 -0
- package/dist/ganttDiagram-EL5Y4UJY-KNL3tzTD.mjs +3072 -0
- package/dist/ganttDiagram-EL5Y4UJY-aiLqNWgi.js +292 -0
- package/dist/gitGraph-4MIJSDKK-DnElfqX7.js +1 -0
- package/dist/gitGraph-4MIJSDKK-xuKJBT2e.mjs +3 -0
- package/dist/gitGraphDiagram-WWUBYQGX-D4gSo_-e.js +106 -0
- package/dist/gitGraphDiagram-WWUBYQGX-Dooss5fG.mjs +733 -0
- package/dist/graphlib-BaETKKSa.js +1 -0
- package/dist/graphlib-XW-Jr8pF.mjs +1267 -0
- package/dist/info-A6RAGUB7-ClYskpn6.mjs +3 -0
- package/dist/info-A6RAGUB7-DDvvt-fW.js +1 -0
- package/dist/infoDiagram-27XIBGKW-B2-y2mdQ.mjs +20 -0
- package/dist/infoDiagram-27XIBGKW-DYQ9NzfL.js +2 -0
- package/dist/init-BJdqMO10.js +1 -0
- package/dist/init-CsQUQz36.mjs +13 -0
- package/dist/ishikawaDiagram-5VMMS53U-ULIhoYO5.js +70 -0
- package/dist/ishikawaDiagram-5VMMS53U-xAArNh-1.mjs +719 -0
- package/dist/journeyDiagram-3NMN7TZE-BBMYNZRL.js +139 -0
- package/dist/journeyDiagram-3NMN7TZE-BH-uKqP7.mjs +884 -0
- package/dist/kanban-definition-UXKFOSKX-Be49llXr.mjs +976 -0
- package/dist/kanban-definition-UXKFOSKX-CDL5yJkq.js +89 -0
- package/dist/line-BEwhHSLl.js +1 -0
- package/dist/line-CiXRog8O.mjs +34 -0
- package/dist/linear-75tfjrny.js +1 -0
- package/dist/linear-Ncx_RuON.mjs +288 -0
- package/dist/mermaid-parser.core-BBApyu_y.js +6 -0
- package/dist/mermaid-parser.core-BRHibdUE.mjs +638 -0
- package/dist/mindmap-definition-YA3MSWOX-Chy7XP_5.mjs +1006 -0
- package/dist/mindmap-definition-YA3MSWOX-DOda-fkL.js +96 -0
- package/dist/ordinal-B1BNQwUR.mjs +65 -0
- package/dist/ordinal-B9aFWmF9.js +1 -0
- package/dist/packet-AYTQ26CC-CorIy9Ul.js +1 -0
- package/dist/packet-AYTQ26CC-DWH8gXJK.mjs +3 -0
- package/dist/path-CnWkkRiY.mjs +84 -0
- package/dist/path-DIS6ck99.js +1 -0
- package/dist/pegDiagram-XKGWAZYB-Cdw6MeON.js +1 -0
- package/dist/pegDiagram-XKGWAZYB-uNfxRaq1.mjs +94 -0
- package/dist/pie-WAS4IAKB-Cn5eK-5P.mjs +3 -0
- package/dist/pie-WAS4IAKB-D84xrSoY.js +1 -0
- package/dist/pieDiagram-E7YTZNPT-Bd6mvpJw.js +39 -0
- package/dist/pieDiagram-E7YTZNPT-Cczo96a2.mjs +203 -0
- package/dist/quadrantDiagram-AXDQQJYC-BPfgvMsS.js +7 -0
- package/dist/quadrantDiagram-AXDQQJYC-eqRNtVRl.mjs +2001 -0
- package/dist/radar-RG4KPBEZ-DvkxGdO6.mjs +3 -0
- package/dist/radar-RG4KPBEZ-R2sQOLL9.js +1 -0
- package/dist/railroad-74A4TZTK-BOZIf6ts.js +1 -0
- package/dist/railroad-74A4TZTK-CrQzn8Nm.mjs +3 -0
- package/dist/railroad-abnf-HS5TGJTU-BZYetxLz.mjs +3 -0
- package/dist/railroad-abnf-HS5TGJTU-CXU1aC4B.js +1 -0
- package/dist/railroad-ebnf-LZEXJU2U-D29kI3YW.js +1 -0
- package/dist/railroad-ebnf-LZEXJU2U-qgzTOmN6.mjs +3 -0
- package/dist/railroad-peg-WCYAUIDC-Bjs9Ws3P.mjs +3 -0
- package/dist/railroad-peg-WCYAUIDC-CXviP0hz.js +1 -0
- package/dist/railroadDiagram-O6MQD6OU-58kvwt7H.mjs +76 -0
- package/dist/railroadDiagram-O6MQD6OU-CKY3uzTc.js +1 -0
- package/dist/requirementDiagram-BXWQKSXE-0hZ04Q6h.js +84 -0
- package/dist/requirementDiagram-BXWQKSXE-CS673B5n.mjs +2224 -0
- package/dist/rough.esm-ChRLLRha.js +1 -0
- package/dist/rough.esm-DXYGHN3m.mjs +1361 -0
- package/dist/sankeyDiagram-P5KCCOFB-D1D6HfAM.mjs +972 -0
- package/dist/sankeyDiagram-P5KCCOFB-ciJb9Zr8.js +40 -0
- package/dist/sequenceDiagram-WJ2MYXX4-BXEznuI6.js +162 -0
- package/dist/sequenceDiagram-WJ2MYXX4-CI1VT8AG.mjs +4156 -0
- package/dist/sizeCapture-INFHLROL-BihkCH-7.js +1 -0
- package/dist/sizeCapture-INFHLROL-BmxqyOLj.mjs +46 -0
- package/dist/src-B4mN2BMl.js +1 -0
- package/dist/src-D_hsMyeP.mjs +2154 -0
- package/dist/stateDiagram-D77RDMKH-BQrSs72W.mjs +220 -0
- package/dist/stateDiagram-D77RDMKH-D2PtkW2U.js +1 -0
- package/dist/stateDiagram-v2-MP3YSRHH-CCbvNfk-.mjs +30 -0
- package/dist/stateDiagram-v2-MP3YSRHH-Dq1QuPeN.js +1 -0
- package/dist/swimlanes-42K2YHIH-CA316NPm.mjs +4979 -0
- package/dist/swimlanes-42K2YHIH-DlggBCTy.js +1 -0
- package/dist/swimlanesDiagram-VR7AAH4N-BV9PEIoG.js +8 -0
- package/dist/swimlanesDiagram-VR7AAH4N-BfrOCfdf.mjs +31 -0
- package/dist/timeline-definition-24CTP7MA-Bkd8rWNJ.js +120 -0
- package/dist/timeline-definition-24CTP7MA-BvkqNYt1.mjs +1069 -0
- package/dist/treeView-Q6P3EWNA-Aof3Cp1M.mjs +3 -0
- package/dist/treeView-Q6P3EWNA-BTzvdwbb.js +1 -0
- package/dist/treemap-WGGIJYW6-BNXGg99p.mjs +3 -0
- package/dist/treemap-WGGIJYW6-DfR4P2Hh.js +1 -0
- package/dist/types/runtime/app.d.ts +3 -3
- package/dist/types/runtime/components/AppearanceMenu.d.ts +2 -0
- package/dist/types/runtime/components/Builtins.d.ts +3 -3
- package/dist/types/runtime/components/Content.d.ts +1 -1
- package/dist/types/runtime/components/DmdRegistry.d.ts +4 -2
- package/dist/types/runtime/components/Layout.d.ts +1 -1
- package/dist/types/runtime/components/MermaidDiagram.d.ts +16 -0
- package/dist/types/runtime/components/Navbar.d.ts +1 -1
- package/dist/types/runtime/components/OfflineDownloadButton.d.ts +2 -0
- package/dist/types/runtime/components/Sidebar.d.ts +1 -1
- package/dist/types/runtime/components/TableOfContents.d.ts +2 -2
- package/dist/types/runtime/config-schema.d.ts +386 -0
- package/dist/types/runtime/config.d.ts +10 -3
- package/dist/types/runtime/index.d.ts +7 -5
- package/dist/types/runtime/loader/auto-indexer.d.ts +1 -1
- package/dist/types/runtime/loader/local-loader.d.ts +1 -1
- package/dist/types/runtime/loader/remote-github.d.ts +2 -2
- package/dist/types/runtime/loader/remote-gitlab.d.ts +2 -2
- package/dist/types/runtime/markdown/callouts.d.ts +1 -1
- package/dist/types/runtime/markdown/highlighter.d.ts +16 -16
- package/dist/types/runtime/markdown/mermaid.d.ts +82 -1
- package/dist/types/runtime/markdown/parser.d.ts +1 -1
- package/dist/types/runtime/markdown/renderer.d.ts +1 -1
- package/dist/types/runtime/offline-export.d.ts +26 -0
- package/dist/types/runtime/provider/DocProvider.d.ts +5 -5
- package/dist/types/runtime/provider/ThemeProvider.d.ts +13 -6
- package/dist/types/runtime/search/SearchModal.d.ts +2 -2
- package/dist/types/runtime/search/search-index.d.ts +1 -1
- package/dist/types/runtime/types.d.ts +28 -99
- package/dist/vennDiagram-4TSXK5OY-BOUFXjso.js +34 -0
- package/dist/vennDiagram-4TSXK5OY-CeOg3-hU.mjs +1880 -0
- package/dist/wardley-WFR3VGLG-BOYcSLd1.mjs +3 -0
- package/dist/wardley-WFR3VGLG-DWDqJSgm.js +1 -0
- package/dist/wardleyDiagram-VM6X3IG4-BhWgMjFr.js +78 -0
- package/dist/wardleyDiagram-VM6X3IG4-C31KoRmF.mjs +645 -0
- package/dist/xychartDiagram-S5SC5T6Z-1yU8zz6I.js +7 -0
- package/dist/xychartDiagram-S5SC5T6Z-BK7upFom.mjs +2210 -0
- package/package.json +15 -4
- package/schemas/docs.schema.json +166 -0
- package/templates/README.md +4 -4
- package/templates/docs.json +5 -2
- package/templates/getting-started.md +1 -1
- package/templates/guides/custom-components.md +2 -0
- package/templates/index.html +2 -4
|
@@ -1 +1,82 @@
|
|
|
1
|
-
|
|
1
|
+
import type { MermaidConfig } from "mermaid";
|
|
2
|
+
/**
|
|
3
|
+
* DocMeDown Mermaid engine.
|
|
4
|
+
*
|
|
5
|
+
* Fences with the `mermaid` language emit `<div data-dmd-diagram="…">`
|
|
6
|
+
* placeholders (see highlighter.ts). This module decodes each placeholder,
|
|
7
|
+
* renders it through the locally bundled Mermaid, and wraps the result in an
|
|
8
|
+
* interactive viewer: family-aware theming, zoom/pan, fullscreen, SVG export,
|
|
9
|
+
* readable error reporting, and automatic re-render when the active DocMeDown
|
|
10
|
+
* theme family or color mode changes.
|
|
11
|
+
*
|
|
12
|
+
* Diagrams use the Mermaid `base` theme with a fully specified variable set so
|
|
13
|
+
* output is deterministic across online and `file:///` contexts — no reliance
|
|
14
|
+
* on Mermaid's CDN theme defaults and no foreignObject HTML labels.
|
|
15
|
+
*/
|
|
16
|
+
export type DiagramFamily = "atlas" | "blueprint" | "terminal" | "editorial";
|
|
17
|
+
export type DiagramMode = "light" | "dark";
|
|
18
|
+
/** Subset of DocMeDown tokens diagrams consume; overridable for pure tests. */
|
|
19
|
+
export interface DiagramTokens {
|
|
20
|
+
canvas: string;
|
|
21
|
+
surface: string;
|
|
22
|
+
surfaceRaised: string;
|
|
23
|
+
ink: string;
|
|
24
|
+
inkSecondary: string;
|
|
25
|
+
rule: string;
|
|
26
|
+
accent: string;
|
|
27
|
+
codeSurface: string;
|
|
28
|
+
codeInk: string;
|
|
29
|
+
fontFamily: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DiagramSize {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}
|
|
35
|
+
export interface DiagramSubgraph {
|
|
36
|
+
id: string;
|
|
37
|
+
label: string;
|
|
38
|
+
source: string;
|
|
39
|
+
startLine: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Reads Mermaid's intrinsic coordinate system without requiring a browser DOM.
|
|
43
|
+
* Mermaid emits a viewBox; width/height remain as a defensive fallback for
|
|
44
|
+
* hand-authored or future renderer output.
|
|
45
|
+
*/
|
|
46
|
+
export declare function readDiagramSize(svg: string): DiagramSize | null;
|
|
47
|
+
/** Returns the largest scale that contains the entire diagram in a viewport. */
|
|
48
|
+
export declare function calculateDiagramFit(diagram: DiagramSize, viewport: DiagramSize, allowUpscale?: boolean): number;
|
|
49
|
+
/** Wraps a raw Mermaid definition in a portable Markdown fence. */
|
|
50
|
+
export declare function formatDiagramMarkdown(source: string): string;
|
|
51
|
+
/** Extracts complete Mermaid `subgraph ... end` blocks, including nested blocks. */
|
|
52
|
+
export declare function extractDiagramSubgraphs(source: string): DiagramSubgraph[];
|
|
53
|
+
/** Wraps one extracted subgraph in a standalone Mermaid Markdown fence. */
|
|
54
|
+
export declare function formatDiagramSubgraphMarkdown(diagramSource: string, subgraphSource: string): string;
|
|
55
|
+
export declare function isDiagramFamily(value: string | null | undefined): value is DiagramFamily;
|
|
56
|
+
/**
|
|
57
|
+
* Builds the complete Mermaid variable set for a family/mode pair. Pure so it
|
|
58
|
+
* is directly unit-testable; the DOM engine resolves tokens automatically.
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildMermaidConfig(family: DiagramFamily, mode: DiagramMode, tokens?: DiagramTokens): MermaidConfig;
|
|
61
|
+
/**
|
|
62
|
+
* Unicode-safe base64 so any diagram source survives an HTML attribute
|
|
63
|
+
* (ASCII letters/digits/+///= only — no quoting or escaping hazards).
|
|
64
|
+
*/
|
|
65
|
+
export declare function encodeDiagramSource(source: string): string;
|
|
66
|
+
export declare function decodeDiagramSource(encoded: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Resolves the active family, color mode, and live CSS tokens from the
|
|
69
|
+
* document element. Computed values win over static family defaults so config
|
|
70
|
+
* accent overrides and theme deltas propagate into diagrams automatically.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveDiagramContext(): {
|
|
73
|
+
family: DiagramFamily;
|
|
74
|
+
mode: DiagramMode;
|
|
75
|
+
tokens: DiagramTokens;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Validates and renders one diagram source to an SVG string using the locally
|
|
79
|
+
* bundled Mermaid. Throws readable syntax errors so the viewer panel can show
|
|
80
|
+
* them; Mermaid's own injected error markup is suppressed via config.
|
|
81
|
+
*/
|
|
82
|
+
export declare function renderDiagramSvg(source: string, family: DiagramFamily, mode: DiagramMode, tokens?: DiagramTokens): Promise<string>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DocManifest } from "./types";
|
|
2
|
+
export declare const OFFLINE_FORMAT_VERSION = 1;
|
|
3
|
+
export declare const OFFLINE_RUNTIME_SCRIPT_ATTRIBUTE = "data-docmedown-runtime";
|
|
4
|
+
export interface OfflineDocumentationData {
|
|
5
|
+
manifest: DocManifest;
|
|
6
|
+
docs: Record<string, string>;
|
|
7
|
+
componentsSource?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface OfflineEnvelope {
|
|
10
|
+
version: number;
|
|
11
|
+
data: OfflineDocumentationData;
|
|
12
|
+
runtime: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function sanitizeDownloadName(name: string): string;
|
|
15
|
+
export declare function isOfflineDocumentation(): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Generates the tiny self-extracting HTML shell shared by CLI and browser
|
|
18
|
+
* exporters. The payload is a base64-encoded gzip stream containing compact
|
|
19
|
+
* JSON with documentation data and the minified IIFE runtime.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createCompressedOfflineHtml(encodedGzip: string, title: string): string;
|
|
22
|
+
export declare function createOfflineDownload(): Promise<{
|
|
23
|
+
blob: Blob;
|
|
24
|
+
filename: string;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function downloadOfflineCopy(): Promise<void>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import {
|
|
3
|
-
import { HashRouter } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import { type ParsedMarkdown } from "../markdown/parser";
|
|
3
|
+
import { HashRouter } from "../router";
|
|
4
|
+
import { DocSearchIndex } from "../search/search-index";
|
|
5
|
+
import type { DocConfig, SidebarTreeNode } from "../types";
|
|
6
6
|
export interface ActiveDocData extends ParsedMarkdown {
|
|
7
7
|
slug: string;
|
|
8
8
|
title: string;
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { ColorMode,
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { ColorMode, ThemeDensity, ThemeFamily } from "../types";
|
|
3
3
|
interface ThemeContextType {
|
|
4
4
|
mode: ColorMode;
|
|
5
|
-
resolvedMode:
|
|
6
|
-
|
|
5
|
+
resolvedMode: "light" | "dark";
|
|
6
|
+
family: ThemeFamily;
|
|
7
|
+
density: ThemeDensity;
|
|
7
8
|
setMode: (mode: ColorMode) => void;
|
|
8
|
-
|
|
9
|
+
setFamily: (family: ThemeFamily) => void;
|
|
10
|
+
setDensity: (density: ThemeDensity) => void;
|
|
9
11
|
toggleMode: () => void;
|
|
10
12
|
}
|
|
11
13
|
export declare const useTheme: () => ThemeContextType;
|
|
12
14
|
interface ThemeProviderProps {
|
|
13
15
|
defaultMode?: ColorMode;
|
|
14
|
-
|
|
16
|
+
defaultFamily?: ThemeFamily;
|
|
17
|
+
defaultDensity?: ThemeDensity;
|
|
18
|
+
/** Optional brand override for --dmd-accent in light mode. */
|
|
19
|
+
defaultAccentColor?: string;
|
|
20
|
+
/** Optional brand override for --dmd-accent in dark mode. */
|
|
21
|
+
defaultAccentColorDark?: string;
|
|
15
22
|
children: React.ReactNode;
|
|
16
23
|
}
|
|
17
24
|
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
@@ -1,103 +1,32 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
type:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
export
|
|
19
|
-
type:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/** Optional personal access token or auth for private repos */
|
|
27
|
-
token?: string;
|
|
28
|
-
/** Raw base URL override */
|
|
29
|
-
baseUrl?: string;
|
|
30
|
-
}
|
|
31
|
-
export interface SidebarItemConfig {
|
|
32
|
-
title?: string;
|
|
33
|
-
path?: string;
|
|
34
|
-
slug?: string;
|
|
35
|
-
icon?: string;
|
|
36
|
-
badge?: string;
|
|
37
|
-
badgeType?: 'info' | 'success' | 'warning' | 'new';
|
|
38
|
-
collapsed?: boolean;
|
|
39
|
-
children?: SidebarItemConfig[];
|
|
40
|
-
}
|
|
41
|
-
export interface DocThemeConfig {
|
|
42
|
-
preset?: ThemePreset;
|
|
43
|
-
defaultMode?: ColorMode;
|
|
44
|
-
accentColor?: string;
|
|
45
|
-
accentColorDark?: string;
|
|
46
|
-
fontFamily?: string;
|
|
47
|
-
codeTheme?: 'github' | 'dracula' | 'one-dark' | 'synthwave';
|
|
48
|
-
logo?: {
|
|
49
|
-
light?: string;
|
|
50
|
-
dark?: string;
|
|
51
|
-
alt?: string;
|
|
52
|
-
text?: string;
|
|
53
|
-
};
|
|
54
|
-
favicon?: string;
|
|
55
|
-
}
|
|
56
|
-
export interface DocSearchConfig {
|
|
57
|
-
enabled?: boolean;
|
|
58
|
-
placeholder?: string;
|
|
59
|
-
maxResults?: number;
|
|
60
|
-
}
|
|
61
|
-
export interface DocConfig {
|
|
62
|
-
name: string;
|
|
63
|
-
tagline?: string;
|
|
64
|
-
description?: string;
|
|
65
|
-
version?: string;
|
|
66
|
-
rootDoc?: string;
|
|
67
|
-
/** Source configuration: local filesystem or remote GitHub/GitLab */
|
|
68
|
-
source?: RemoteSourceConfig;
|
|
69
|
-
/** Visual and theme configurations */
|
|
70
|
-
theme?: DocThemeConfig;
|
|
71
|
-
/** Navigation bar links */
|
|
72
|
-
nav?: NavLink[];
|
|
73
|
-
/** Social and repository links */
|
|
74
|
-
socials?: SocialLink[];
|
|
75
|
-
/** Manual sidebar configuration (optional; auto-indexed if omitted) */
|
|
76
|
-
sidebar?: SidebarItemConfig[];
|
|
77
|
-
/** Auto-indexing options */
|
|
78
|
-
autoIndex?: {
|
|
79
|
-
enabled?: boolean;
|
|
80
|
-
exclude?: string[];
|
|
81
|
-
sort?: 'alphabetical' | 'frontmatter' | 'natural';
|
|
82
|
-
defaultCollapsed?: boolean;
|
|
83
|
-
};
|
|
84
|
-
/** Search options */
|
|
85
|
-
search?: DocSearchConfig;
|
|
86
|
-
/** Footer config */
|
|
87
|
-
footer?: {
|
|
88
|
-
copyright?: string;
|
|
89
|
-
links?: NavLink[];
|
|
90
|
-
showBuiltWith?: boolean;
|
|
91
|
-
};
|
|
92
|
-
/** Custom component directory or URL */
|
|
93
|
-
componentsUrl?: string;
|
|
94
|
-
/** Edit page link (e.g. "https://github.com/owner/repo/edit/main/docs/") */
|
|
95
|
-
editUrl?: string;
|
|
96
|
-
}
|
|
1
|
+
/** DocMeDown runtime type definitions. Configuration types are derived from Zod schemas. */
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
import type { colorModeSchema, docConfigSchema, docSearchConfigSchema, docThemeConfigSchema, navLinkSchema, normalizedDocConfigSchema, remoteSourceSchema, SidebarItemConfigShape, socialLinkSchema, themeDensitySchema, themeFamilySchema, themePresetSchema } from "./config-schema";
|
|
4
|
+
export type ThemeFamily = z.infer<typeof themeFamilySchema>;
|
|
5
|
+
export type ThemeDensity = z.infer<typeof themeDensitySchema>;
|
|
6
|
+
/** @deprecated Use ThemeFamily. */
|
|
7
|
+
export type ThemePreset = z.infer<typeof themePresetSchema>;
|
|
8
|
+
export type ColorMode = z.infer<typeof colorModeSchema>;
|
|
9
|
+
export type NavLink = z.infer<typeof navLinkSchema>;
|
|
10
|
+
export type SocialLink = z.infer<typeof socialLinkSchema>;
|
|
11
|
+
export type RemoteSourceConfig = z.infer<typeof remoteSourceSchema>;
|
|
12
|
+
export type GithubSourceConfig = Extract<RemoteSourceConfig, {
|
|
13
|
+
type: "github";
|
|
14
|
+
}>;
|
|
15
|
+
export type GitlabSourceConfig = Extract<RemoteSourceConfig, {
|
|
16
|
+
type: "gitlab";
|
|
17
|
+
}>;
|
|
18
|
+
export type RawSourceConfig = Extract<RemoteSourceConfig, {
|
|
19
|
+
type: "raw";
|
|
20
|
+
}>;
|
|
21
|
+
export type SidebarItemConfig = SidebarItemConfigShape;
|
|
22
|
+
export type DocThemeConfig = z.infer<typeof docThemeConfigSchema>;
|
|
23
|
+
export type DocSearchConfig = z.infer<typeof docSearchConfigSchema>;
|
|
24
|
+
export type PartialDocConfig = z.input<typeof docConfigSchema>;
|
|
25
|
+
export type DocConfig = z.output<typeof normalizedDocConfigSchema>;
|
|
97
26
|
/** Options accepted by the browser integration entry point. */
|
|
98
27
|
export interface DocMeDownInitOptions {
|
|
99
28
|
el?: string | HTMLElement;
|
|
100
|
-
config?:
|
|
29
|
+
config?: PartialDocConfig;
|
|
101
30
|
basePath?: string;
|
|
102
31
|
}
|
|
103
32
|
/** Handle returned after mounting DocMeDown into a page. */
|
|
@@ -118,7 +47,7 @@ export interface DocFrontmatter {
|
|
|
118
47
|
description?: string;
|
|
119
48
|
icon?: string;
|
|
120
49
|
badge?: string;
|
|
121
|
-
badge_type?:
|
|
50
|
+
badge_type?: "info" | "success" | "warning" | "new";
|
|
122
51
|
tags?: string[];
|
|
123
52
|
hidden?: boolean;
|
|
124
53
|
[key: string]: any;
|
|
@@ -148,7 +77,7 @@ export interface SidebarTreeNode {
|
|
|
148
77
|
path?: string;
|
|
149
78
|
icon?: string;
|
|
150
79
|
badge?: string;
|
|
151
|
-
badgeType?:
|
|
80
|
+
badgeType?: "info" | "success" | "warning" | "new";
|
|
152
81
|
order: number;
|
|
153
82
|
isCategory: boolean;
|
|
154
83
|
collapsed?: boolean;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const e=require("./src-B4mN2BMl.js"),t=require("./chunk-Y2CYZVJY-CnmLqFtv.js"),n=require("./chunk-DU6HZSFF-CWc5ewtb.js"),r=require("./chunk-75Z2AOVW-DYouz5MZ.js"),i=require("./chunk-CLGD4ZFX-C5J-e2io.js"),a=require("./rough.esm-ChRLLRha.js");var o=(e,t)=>n.nt(e,`a`,-t),s=1e-10;function c(e,t){let n=u(e),r=n.filter(t=>l(t,e)),i=0,a=0,o=[];if(r.length>1){let t=h(r);for(let e=0;e<r.length;++e){let n=r[e];n.angle=Math.atan2(n.x-t.x,n.y-t.y)}r.sort((e,t)=>t.angle-e.angle);let n=r[r.length-1];for(let t=0;t<r.length;++t){let s=r[t];a+=(n.x+s.x)*(s.y-n.y);let c={x:(s.x+n.x)/2,y:(s.y+n.y)/2},l=null;for(let t=0;t<s.parentIndex.length;++t)if(n.parentIndex.includes(s.parentIndex[t])){let r=e[s.parentIndex[t]],i=Math.atan2(s.x-r.x,s.y-r.y),a=Math.atan2(n.x-r.x,n.y-r.y),o=a-i;o<0&&(o+=2*Math.PI);let u=a-o/2,d=f(c,{x:r.x+r.radius*Math.sin(u),y:r.y+r.radius*Math.cos(u)});d>r.radius*2&&(d=r.radius*2),(l==null||l.width>d)&&(l={circle:r,width:d,p1:s,p2:n,large:d>r.radius,sweep:!0})}l!=null&&(o.push(l),i+=d(l.circle.radius,l.width),n=s)}}else{let t=e[0];for(let n=1;n<e.length;++n)e[n].radius<t.radius&&(t=e[n]);let n=!1;for(let r=0;r<e.length;++r)if(f(e[r],t)>Math.abs(t.radius-e[r].radius)){n=!0;break}n?i=a=0:(i=t.radius*t.radius*Math.PI,o.push({circle:t,p1:{x:t.x,y:t.y+t.radius},p2:{x:t.x-s,y:t.y+t.radius},width:t.radius*2,large:!0,sweep:!0}))}return a/=2,t&&(t.area=i+a,t.arcArea=i,t.polygonArea=a,t.arcs=o,t.innerPoints=r,t.intersectionPoints=n),i+a}function l(e,t){return t.every(t=>f(e,t)<t.radius+s)}function u(e){let t=[];for(let n=0;n<e.length;++n)for(let r=n+1;r<e.length;++r){let i=m(e[n],e[r]);for(let e of i)e.parentIndex=[n,r],t.push(e)}return t}function d(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function f(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function p(e,t,n){if(n>=e+t)return 0;if(n<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);let r=e-(n*n-t*t+e*e)/(2*n),i=t-(n*n-e*e+t*t)/(2*n);return d(e,r)+d(t,i)}function m(e,t){let n=f(e,t),r=e.radius,i=t.radius;if(n>=r+i||n<=Math.abs(r-i))return[];let a=(r*r-i*i+n*n)/(2*n),o=Math.sqrt(r*r-a*a),s=e.x+a*(t.x-e.x)/n,c=e.y+a*(t.y-e.y)/n,l=-(t.y-e.y)*(o/n),u=-(t.x-e.x)*(o/n);return[{x:s+l,y:c-u},{x:s-l,y:c+u}]}function h(e){let t={x:0,y:0};for(let n of e)t.x+=n.x,t.y+=n.y;return t.x/=e.length,t.y/=e.length,t}function g(e,t,n,r){r||={};let i=r.maxIterations||100,a=r.tolerance||1e-10,o=e(t),s=e(n),c=n-t;if(o*s>0)throw`Initial bisect points must have opposite signs`;if(o===0)return t;if(s===0)return n;for(let n=0;n<i;++n){c/=2;let n=t+c,r=e(n);if(r*o>=0&&(t=n),Math.abs(c)<a||r===0)return n}return t+c}function _(e){let t=Array(e);for(let n=0;n<e;++n)t[n]=0;return t}function v(e,t){return _(e).map(()=>_(t))}function y(e,t){let n=0;for(let r=0;r<e.length;++r)n+=e[r]*t[r];return n}function b(e){return Math.sqrt(y(e,e))}function x(e,t,n){for(let r=0;r<t.length;++r)e[r]=t[r]*n}function S(e,t,n,r,i){for(let a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function C(e,t,n){n||={};let r=n.maxIterations||t.length*200,i=n.nonZeroDelta||1.05,a=n.zeroDelta||.001,o=n.minErrorDelta||1e-6,s=n.minErrorDelta||1e-5,c=n.rho===void 0?1:n.rho,l=n.chi===void 0?2:n.chi,u=n.psi===void 0?-.5:n.psi,d=n.sigma===void 0?.5:n.sigma,f,p=t.length,m=Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(let n=0;n<p;++n){let r=t.slice();r[n]=r[n]?r[n]*i:a,m[n+1]=r,m[n+1].fx=e(r),m[n+1].id=n+1}function h(e){for(let t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}let g=(e,t)=>e.fx-t.fx,_=t.slice(),v=t.slice(),y=t.slice(),b=t.slice();for(let t=0;t<r;++t){if(m.sort(g),n.history){let e=m.map(e=>{let t=e.slice();return t.fx=e.fx,t.id=e.id,t});e.sort((e,t)=>e.id-t.id),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:e})}f=0;for(let e=0;e<p;++e)f=Math.max(f,Math.abs(m[0][e]-m[1][e]));if(Math.abs(m[0].fx-m[p].fx)<o&&f<s)break;for(let e=0;e<p;++e){_[e]=0;for(let t=0;t<p;++t)_[e]+=m[t][e];_[e]/=p}let t=m[p];if(S(v,1+c,_,-c,t),v.fx=e(v),v.fx<m[0].fx)S(b,1+l,_,-l,t),b.fx=e(b),b.fx<v.fx?h(b):h(v);else if(v.fx>=m[p-1].fx){let n=!1;if(v.fx>t.fx?(S(y,1+u,_,-u,t),y.fx=e(y),y.fx<t.fx?h(y):n=!0):(S(y,1-u*c,_,u*c,t),y.fx=e(y),y.fx<v.fx?h(y):n=!0),n){if(d>=1)break;for(let t=1;t<m.length;++t)S(m[t],1-d,m[0],d,m[t]),m[t].fx=e(m[t])}}else h(v)}return m.sort(g),{fx:m[0].fx,x:m[0]}}function w(e,t,n,r,i,a,o){let s=n.fx,c=y(n.fxprime,t),l=s,u=s,d=c,f=0;i||=1,a||=1e-6,o||=.1;function p(u,f,p){for(let m=0;m<16;++m)if(i=(u+f)/2,S(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=y(r.fxprime,t),l>s+a*i*c||l>=p)f=i;else{if(Math.abs(d)<=-o*c)return i;d*(f-u)>=0&&(f=u),u=i,p=l}return 0}for(let m=0;m<10;++m){if(S(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=y(r.fxprime,t),l>s+a*i*c||m&&l>=u)return p(f,i,u);if(Math.abs(d)<=-o*c)return i;if(d>=0)return p(i,f,l);u=l,f=i,i*=2}return i}function T(e,t,n){let r={x:t.slice(),fx:0,fxprime:t.slice()},i={x:t.slice(),fx:0,fxprime:t.slice()},a=t.slice(),o,s,c=1,l;n||={},l=n.maxIterations||t.length*20,r.fx=e(r.x,r.fxprime),o=r.fxprime.slice(),x(o,r.fxprime,-1);for(let t=0;t<l;++t){if(c=w(e,o,r,i,c),n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),!c)x(o,r.fxprime,-1);else{S(a,1,i.fxprime,-1,r.fxprime);let e=y(r.fxprime,r.fxprime),t=Math.max(0,y(a,i.fxprime)/e);S(o,t,o,-1,i.fxprime),s=r,r=i,i=s}if(b(r.fxprime)<=1e-5)break}return n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),r}function E(e,t={}){t.maxIterations=t.maxIterations||500;let n=t.initialLayout||M,r=t.lossFunction||F,i=k(e,t),a=n(i,t),o=Object.keys(a),s=[];for(let e of o)s.push(a[e].x),s.push(a[e].y);let c=C(e=>{let t={};for(let n=0;n<o.length;++n){let r=o[n];t[r]={x:e[2*n],y:e[2*n+1],radius:a[r].radius}}return r(t,i)},s,t).x;for(let e=0;e<o.length;++e){let t=o[e];a[t].x=c[2*e],a[t].y=c[2*e+1]}return a}var D=1e-10;function O(e,t,n){return Math.min(e,t)*Math.min(e,t)*Math.PI<=n+D?Math.abs(e-t):g(r=>p(e,t,r)-n,0,e+t)}function k(e,t={}){let n=t.distinct,r=e.map(e=>Object.assign({},e));function i(e){return e.join(`;`)}if(n){let e=new Map;for(let t of r)for(let n=0;n<t.sets.length;n++){let r=String(t.sets[n]);e.set(r,t.size+(e.get(r)||0));for(let i=n+1;i<t.sets.length;i++){let n=String(t.sets[i]),a=`${r};${n}`,o=`${n};${r}`;e.set(a,t.size+(e.get(a)||0)),e.set(o,t.size+(e.get(o)||0))}}for(let t of r)t.sets.length<3&&(t.size=e.get(i(t.sets)))}let a=[],o=new Set;for(let e of r)if(e.sets.length===1)a.push(e.sets[0]);else if(e.sets.length===2){let t=e.sets[0],n=e.sets[1];o.add(i(e.sets)),o.add(i([n,t]))}a.sort((e,t)=>e===t?0:e<t?-1:1);for(let e=0;e<a.length;++e){let t=a[e];for(let n=e+1;n<a.length;++n){let e=a[n];o.has(i([t,e]))||r.push({sets:[t,e],size:0})}}return r}function A(e,t,n){let r=v(t.length,t.length),i=v(t.length,t.length);return e.filter(e=>e.sets.length===2).forEach(e=>{let a=n[e.sets[0]],o=n[e.sets[1]],s=O(Math.sqrt(t[a].size/Math.PI),Math.sqrt(t[o].size/Math.PI),e.size);r[a][o]=r[o][a]=s;let c=0;e.size+1e-10>=Math.min(t[a].size,t[o].size)?c=1:e.size<=1e-10&&(c=-1),i[a][o]=i[o][a]=c}),{distances:r,constraints:i}}function j(e,t,n,r){for(let e=0;e<t.length;++e)t[e]=0;let i=0;for(let a=0;a<n.length;++a){let o=e[2*a],s=e[2*a+1];for(let c=a+1;c<n.length;++c){let l=e[2*c],u=e[2*c+1],d=n[a][c],f=r[a][c],p=(l-o)*(l-o)+(u-s)*(u-s),m=Math.sqrt(p),h=p-d*d;f>0&&m<=d||f<0&&m>=d||(i+=2*h*h,t[2*a]+=4*h*(o-l),t[2*a+1]+=4*h*(s-u),t[2*c]+=4*h*(l-o),t[2*c+1]+=4*h*(u-s))}}return i}function M(e,t={}){let n=P(e,t),r=t.lossFunction||F;if(e.length>=8){let i=N(e,t),a=r(i,e),o=r(n,e);a+1e-8<o&&(n=i)}return n}function N(e,t={}){let n=t.restarts||10,r=[],i={};for(let t of e)t.sets.length===1&&(i[t.sets[0]]=r.length,r.push(t));let{distances:a,constraints:o}=A(e,r,i),s=b(a.map(b))/a.length;a=a.map(e=>e.map(e=>e/s));let c=(e,t)=>j(e,t,a,o),l=null;for(let e=0;e<n;++e){let e=T(c,_(a.length*2).map(Math.random),t);(!l||e.fx<l.fx)&&(l=e)}let u=l.x,d={};for(let e=0;e<r.length;++e){let t=r[e];d[t.sets[0]]={x:u[2*e]*s,y:u[2*e+1]*s,radius:Math.sqrt(t.size/Math.PI)}}if(t.history)for(let e of t.history)x(e.x,s);return d}function P(e,t){let n=t&&t.lossFunction?t.lossFunction:F,r={},i={};for(let t of e)if(t.sets.length===1){let e=t.sets[0];r[e]={x:1e10,y:1e10,rowid:r.length,size:t.size,radius:Math.sqrt(t.size/Math.PI)},i[e]=[]}e=e.filter(e=>e.sets.length===2);for(let t of e){let e=t.weight==null?1:t.weight,n=t.sets[0],a=t.sets[1];t.size+D>=Math.min(r[n].size,r[a].size)&&(e=0),i[n].push({set:a,size:t.size,weight:e}),i[a].push({set:n,size:t.size,weight:e})}let a=[];Object.keys(i).forEach(e=>{let t=0;for(let n=0;n<i[e].length;++n)t+=i[e][n].size*i[e][n].weight;a.push({set:e,size:t})});function o(e,t){return t.size-e.size}a.sort(o);let s={};function c(e){return e.set in s}function l(e,t){r[t].x=e.x,r[t].y=e.y,s[t]=!0}l({x:0,y:0},a[0].set);for(let t=1;t<a.length;++t){let s=a[t].set,d=i[s].filter(c),f=r[s];if(d.sort(o),d.length===0)throw`ERROR: missing pairwise overlap information`;let p=[];for(var u=0;u<d.length;++u){let e=r[d[u].set],t=O(f.radius,e.radius,d[u].size);p.push({x:e.x+t,y:e.y}),p.push({x:e.x-t,y:e.y}),p.push({y:e.y+t,x:e.x}),p.push({y:e.y-t,x:e.x});for(let n=u+1;n<d.length;++n){let i=r[d[n].set],a=O(f.radius,i.radius,d[n].size),o=m({x:e.x,y:e.y,radius:t},{x:i.x,y:i.y,radius:a});p.push(...o)}}let h=1e50,g=p[0];for(let t of p){r[s].x=t.x,r[s].y=t.y;let i=n(r,e);i<h&&(h=i,g=t)}l(g,s)}return r}function F(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=p(n.radius,i.radius,f(n,i))}else t=c(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight;n+=i*(t-r.size)*(t-r.size)}return n}function I(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=p(n.radius,i.radius,f(n,i))}else t=c(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight,a=Math.log((t+1)/(r.size+1));n+=i*a*a}return n}function L(e,t,n){if(n==null?e.sort((e,t)=>t.radius-e.radius):e.sort(n),e.length>0){let t=e[0].x,n=e[0].y;for(let r of e)r.x-=t,r.y-=n}if(e.length===2&&f(e[0],e[1])<Math.abs(e[1].radius-e[0].radius)&&(e[1].x=e[0].x+e[0].radius-e[1].radius-1e-10,e[1].y=e[0].y),e.length>1){let n=Math.atan2(e[1].x,e[1].y)-t,r=Math.cos(n),i=Math.sin(n);for(let t of e){let e=t.x,n=t.y;t.x=r*e-i*n,t.y=i*e+r*n}}if(e.length>2){let n=Math.atan2(e[2].x,e[2].y)-t;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let t=e[1].y/(1e-10+e[1].x);for(let n of e){var r=(n.x+t*n.y)/(1+t*t);n.x=2*r-n.x,n.y=2*r*t-n.y}}}}function ee(e){e.forEach(e=>{e.parent=e});function t(e){return e.parent!==e&&(e.parent=t(e.parent)),e.parent}function n(e,n){let r=t(e);r.parent=t(n)}for(let t=0;t<e.length;++t)for(let r=t+1;r<e.length;++r){let i=e[t].radius+e[r].radius;f(e[t],e[r])+1e-10<i&&n(e[r],e[t])}let r=new Map;for(let n=0;n<e.length;++n){let i=t(e[n]).parent.setid;r.has(i)||r.set(i,[]),r.get(i).push(e[n])}return e.forEach(e=>{delete e.parent}),Array.from(r.values())}function R(e){let t=t=>({max:e.reduce((e,n)=>Math.max(e,n[t]+n.radius),-1/0),min:e.reduce((e,n)=>Math.min(e,n[t]-n.radius),1/0)});return{xRange:t(`x`),yRange:t(`y`)}}function z(e,t,n){t??=Math.PI/2;let r=re(e).map(e=>Object.assign({},e)),i=ee(r);for(let e of i){L(e,t,n);let r=R(e);e.size=(r.xRange.max-r.xRange.min)*(r.yRange.max-r.yRange.min),e.bounds=r}i.sort((e,t)=>t.size-e.size),r=i[0];let a=r.bounds,o=(a.xRange.max-a.xRange.min)/50;function s(e,t,n){if(!e)return;let i=e.bounds,s,c;if(t)s=a.xRange.max-i.xRange.min+o;else{s=a.xRange.max-i.xRange.max;let e=(i.xRange.max-i.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;e<0&&(s+=e)}if(n)c=a.yRange.max-i.yRange.min+o;else{c=a.yRange.max-i.yRange.max;let e=(i.yRange.max-i.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;e<0&&(c+=e)}for(let t of e)t.x+=s,t.y+=c,r.push(t)}let c=1;for(;c<i.length;)s(i[c],!0,!1),s(i[c+1],!1,!0),s(i[c+2],!0,!0),c+=3,a=R(r);return ne(r)}function te(e,t,n,r,i){let a=re(e);t-=2*r,n-=2*r;let{xRange:o,yRange:s}=R(a);if(o.max===o.min||s.max===s.min)return console.log(`not scaling solution: zero size detected`),e;let c,l;if(i){let e=Math.sqrt(i/Math.PI)*2;c=t/e,l=n/e}else c=t/(o.max-o.min),l=n/(s.max-s.min);let u=Math.min(l,c),d=(t-(o.max-o.min)*u)/2,f=(n-(s.max-s.min)*u)/2;return ne(a.map(e=>({radius:u*e.radius,x:r+d+(e.x-o.min)*u,y:r+f+(e.y-s.min)*u,setid:e.setid})))}function ne(e){let t={};for(let n of e)t[n.setid]=n;return t}function re(e){return Object.keys(e).map(t=>Object.assign(e[t],{setid:t}))}function ie(e={}){let t=!1,n=600,r=350,i=15,a=1e3,o=Math.PI/2,s=!0,c=null,l=!0,u=!0,d=null,f=null,p=!1,m=null,h=e&&e.symmetricalTextCentre?e.symmetricalTextCentre:!1,g={},_=e&&e.colourScheme?e.colourScheme:e&&e.colorScheme?e.colorScheme:[`#1f77b4`,`#ff7f0e`,`#2ca02c`,`#d62728`,`#9467bd`,`#8c564b`,`#e377c2`,`#7f7f7f`,`#bcbd22`,`#17becf`],v=0,y=function(e){if(e in g)return g[e];var t=g[e]=_[v];return v+=1,v>=_.length&&(v=0),t},b=E,x=F;function S(g){let _=g.datum(),v=new Set;_.forEach(e=>{e.size==0&&e.sets.length==1&&v.add(e.sets[0])}),_=_.filter(e=>!e.sets.some(e=>v.has(e)));let S={},C={};if(_.length>0){let e=b(_,{lossFunction:x,distinct:p});s&&(e=z(e,o,f)),S=te(e,n,r,i,c),C=se(S,_,h)}let w={};_.forEach(e=>{e.label&&(w[e.sets]=e.label)});function T(e){if(e.sets in w)return w[e.sets];if(e.sets.length==1)return``+e.sets[0]}g.selectAll(`svg`).data([S]).enter().append(`svg`);let E=g.select(`svg`);t?E.attr(`viewBox`,`0 0 ${n} ${r}`):E.attr(`width`,n).attr(`height`,r);let D={},O=!1;E.selectAll(`.venn-area path`).each(function(e){let t=this.getAttribute(`d`);e.sets.length==1&&t&&!p&&(O=!0,D[e.sets[0]]=le(t))});function k(e){return t=>U(e.sets.map(e=>{let i=D[e],a=S[e];return i||={x:n/2,y:r/2,radius:1},a||={x:n/2,y:r/2,radius:1},{x:i.x*(1-t)+a.x*t,y:i.y*(1-t)+a.y*t,radius:i.radius*(1-t)+a.radius*t}}),m)}let A=E.selectAll(`.venn-area`).data(_,e=>e.sets),j=A.enter().append(`g`).attr(`class`,e=>`venn-area venn-${e.sets.length==1?`circle`:`intersection`}${e.colour||e.color?` venn-coloured`:``}`).attr(`data-venn-sets`,e=>e.sets.join(`_`)),M=j.append(`path`),N=j.append(`text`).attr(`class`,`label`).text(e=>T(e)).attr(`text-anchor`,`middle`).attr(`dy`,`.35em`).attr(`x`,n/2).attr(`y`,r/2);u&&(M.style(`fill-opacity`,`0`).filter(e=>e.sets.length==1).style(`fill`,e=>e.colour?e.colour:e.color?e.color:y(e.sets)).style(`fill-opacity`,`.25`),N.style(`fill`,t=>t.colour||t.color?`#FFF`:e.textFill?e.textFill:t.sets.length==1?y(t.sets):`#444`));function P(e){return typeof e.transition==`function`?e.transition(`venn`).duration(a):e}let F=g;O&&typeof F.transition==`function`?(F=P(g),F.selectAll(`path`).attrTween(`d`,k)):F.selectAll(`path`).attr(`d`,e=>U(e.sets.map(e=>S[e])),m);let I=F.selectAll(`text`).filter(e=>e.sets in C).text(e=>T(e)).attr(`x`,e=>Math.floor(C[e.sets].x)).attr(`y`,e=>Math.floor(C[e.sets].y));l&&(O?`on`in I?I.on(`end`,B(S,T)):I.each(`end`,B(S,T)):I.each(B(S,T)));let L=P(A.exit()).remove();typeof A.transition==`function`&&L.selectAll(`path`).attrTween(`d`,k);let ee=L.selectAll(`text`).attr(`x`,n/2).attr(`y`,r/2);return d!==null&&(N.style(`font-size`,`0px`),I.style(`font-size`,d),ee.style(`font-size`,`0px`)),{circles:S,textCentres:C,nodes:A,enter:j,update:F,exit:L}}return S.wrap=function(e){return arguments.length?(l=e,S):l},S.useViewBox=function(){return t=!0,S},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.padding=function(e){return arguments.length?(i=e,S):i},S.distinct=function(e){return arguments.length?(p=e,S):p},S.colours=function(e){return arguments.length?(y=e,S):y},S.colors=function(e){return arguments.length?(y=e,S):y},S.fontSize=function(e){return arguments.length?(d=e,S):d},S.round=function(e){return arguments.length?(m=e,S):m},S.duration=function(e){return arguments.length?(a=e,S):a},S.layoutFunction=function(e){return arguments.length?(b=e,S):b},S.normalize=function(e){return arguments.length?(s=e,S):s},S.scaleToFit=function(e){return arguments.length?(c=e,S):c},S.styled=function(e){return arguments.length?(u=e,S):u},S.orientation=function(e){return arguments.length?(o=e,S):o},S.orientationOrder=function(e){return arguments.length?(f=e,S):f},S.lossFunction=function(e){return arguments.length?(x=e==="default"?F:e===`logRatio`?I:e,S):x},S}function B(e,t){return function(n){let r=this,i=e[n.sets[0]].radius||50,a=t(n)||``,o=a.split(/\s+/).reverse(),s=(a.length+o.length)/3,c=o.pop(),l=[c],u=0,d=1.1;r.textContent=null;let f=[];function p(e){let t=r.ownerDocument.createElementNS(r.namespaceURI,`tspan`);return t.textContent=e,f.push(t),r.append(t),t}let m=p(c);for(;c=o.pop(),c;){l.push(c);let e=l.join(` `);m.textContent=e,e.length>s&&m.getComputedTextLength()>i&&(l.pop(),m.textContent=l.join(` `),l=[c],m=p(c),u++)}let h=.35-u*d/2,g=r.getAttribute(`x`),_=r.getAttribute(`y`);f.forEach((e,t)=>{e.setAttribute(`x`,g),e.setAttribute(`y`,_),e.setAttribute(`dy`,`${h+t*d}em`)})}}function V(e,t,n){let r=t[0].radius-f(t[0],e);for(let n=1;n<t.length;++n){let i=t[n].radius-f(t[n],e);i<=r&&(r=i)}for(let t=0;t<n.length;++t){let i=f(n[t],e)-n[t].radius;i<=r&&(r=i)}return r}function ae(e,t,n){let r=[];for(let t of e)r.push({x:t.x,y:t.y}),r.push({x:t.x+t.radius/2,y:t.y}),r.push({x:t.x-t.radius/2,y:t.y}),r.push({x:t.x,y:t.y+t.radius/2}),r.push({x:t.x,y:t.y-t.radius/2});let i=r[0],a=V(r[0],e,t);for(let n=1;n<r.length;++n){let o=V(r[n],e,t);o>=a&&(i=r[n],a=o)}let o=C(n=>-1*V({x:n[0],y:n[1]},e,t),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,s={x:n?0:o[0],y:o[1]},l=!0;for(let t of e)if(f(s,t)>t.radius){l=!1;break}for(let e of t)if(f(s,e)<e.radius){l=!1;break}if(l)return s;if(e.length==1)return{x:e[0].x,y:e[0].y};let u={};return c(e,u),u.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:u.arcs.length==1?{x:u.arcs[0].circle.x,y:u.arcs[0].circle.y}:t.length?ae(e,[]):h(u.arcs.map(e=>e.p1))}function oe(e){let t={},n=Object.keys(e);for(let e of n)t[e]=[];for(let r=0;r<n.length;r++){let i=n[r],a=e[i];for(let o=r+1;o<n.length;++o){let r=n[o],s=e[r],c=f(a,s);c+s.radius<=a.radius+1e-10?t[r].push(i):c+a.radius<=s.radius+1e-10&&t[i].push(r)}}return t}function se(e,t,n){let r={},i=oe(e);for(let a=0;a<t.length;++a){let o=t[a].sets,s={},c={};for(let e=0;e<o.length;++e){s[o[e]]=!0;let t=i[o[e]];for(let e=0;e<t.length;++e)c[t[e]]=!0}let l=[],u=[];for(let t in e)t in s?l.push(e[t]):t in c||u.push(e[t]);let d=ae(l,u,n);r[o]=d,d.disjoint&&t[a].size>0&&console.log(`WARNING: area `+o+` not represented on screen`)}return r}function ce(e,t,n){let r=[];return r.push(`
|
|
2
|
+
M`,e,t),r.push(`
|
|
3
|
+
m`,-n,0),r.push(`
|
|
4
|
+
a`,n,n,0,1,0,n*2,0),r.push(`
|
|
5
|
+
a`,n,n,0,1,0,-n*2,0),r.join(` `)}function le(e){let t=e.split(` `);return{x:Number.parseFloat(t[1]),y:Number.parseFloat(t[2]),radius:-Number.parseFloat(t[4])}}function ue(e){if(e.length===0)return[];let t={};return c(e,t),t.arcs}function H(e,t){if(e.length===0)return`M 0 0`;let n=10**(t||0),r=t==null?e=>e:e=>Math.round(e*n)/n;if(e.length==1){let t=e[0].circle;return ce(r(t.x),r(t.y),r(t.radius))}let i=[`
|
|
6
|
+
M`,r(e[0].p2.x),r(e[0].p2.y)];for(let t of e){let e=r(t.circle.radius);i.push(`
|
|
7
|
+
A`,e,e,0,+!!t.large,+!!t.sweep,r(t.p1.x),r(t.p1.y))}return i.join(` `)}function U(e,t){return H(ue(e),t)}function de(e,t={}){let{lossFunction:n,layoutFunction:r=E,normalize:i=!0,orientation:a=Math.PI/2,orientationOrder:o,width:s=600,height:c=350,padding:l=15,scaleToFit:u=!1,symmetricalTextCentre:d=!1,distinct:f,round:p=2}=t,m=r(e,{lossFunction:n==="default"||!n?F:n===`logRatio`?I:n,distinct:f});i&&(m=z(m,a,o));let h=te(m,s,c,l,u),g=se(h,e,d),_=new Map(Object.keys(h).map(e=>[e,{set:e,x:h[e].x,y:h[e].y,radius:h[e].radius}])),v=e.map(e=>{let t=e.sets.map(e=>_.get(e)),n=ue(t);return{circles:t,arcs:n,path:H(n,p),area:e,has:new Set(e.sets)}});function y(e){let t=``;for(let n of v)n.has.size>e.length&&e.every(e=>n.has.has(e))&&(t+=` `+n.path);return t}return v.map(({circles:e,arcs:t,path:n,area:r})=>({data:r,text:g[r.sets],circles:e,arcs:t,path:n,distinctPath:n+y(r.sets)}))}var W=(function(){var e=t.n(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[5,8],r=[7,8,11,12,17,19,22,24],i=[1,17],a=[1,18],o=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],s=[1,31],c=[1,39],l=[7,8,11,12,17,19,22,24,27],u=[1,57],d=[1,56],f=[1,58],p=[1,59],m=[1,60],h=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],g={trace:t.n(function(){},`trace`),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:`error`,5:`VENN`,7:`EOF`,8:`NEWLINE`,11:`TITLE`,12:`SET`,14:`BRACKET_LABEL`,15:`COLON`,16:`NUMERIC`,17:`UNION`,19:`TEXT`,20:`IDENTIFIER`,21:`STRING`,22:`INDENT_TEXT`,24:`STYLE`,27:`COMMA`,31:`HEXCOLOR`,32:`RGBCOLOR`,33:`RGBACOLOR`},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:t.n(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:case 3:case 4:this.$=[];break;case 5:a[s-1].push(a[s]),this.$=a[s-1];break;case 6:this.$=[];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:this.$=a[s];break;case 8:r.setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 9:r.addSubsetData([a[s]],void 0,void 0),r.setIndentMode&&r.setIndentMode(!0);break;case 10:r.addSubsetData([a[s-1]],a[s],void 0),r.setIndentMode&&r.setIndentMode(!0);break;case 11:r.addSubsetData([a[s-2]],void 0,parseFloat(a[s])),r.setIndentMode&&r.setIndentMode(!0);break;case 12:r.addSubsetData([a[s-3]],a[s-2],parseFloat(a[s])),r.setIndentMode&&r.setIndentMode(!0);break;case 13:if(a[s].length<2)throw Error(`union requires multiple identifiers`);r.validateUnionIdentifiers&&r.validateUnionIdentifiers(a[s]),r.addSubsetData(a[s],void 0,void 0),r.setIndentMode&&r.setIndentMode(!0);break;case 14:if(a[s-1].length<2)throw Error(`union requires multiple identifiers`);r.validateUnionIdentifiers&&r.validateUnionIdentifiers(a[s-1]),r.addSubsetData(a[s-1],a[s],void 0),r.setIndentMode&&r.setIndentMode(!0);break;case 15:if(a[s-2].length<2)throw Error(`union requires multiple identifiers`);r.validateUnionIdentifiers&&r.validateUnionIdentifiers(a[s-2]),r.addSubsetData(a[s-2],void 0,parseFloat(a[s])),r.setIndentMode&&r.setIndentMode(!0);break;case 16:if(a[s-3].length<2)throw Error(`union requires multiple identifiers`);r.validateUnionIdentifiers&&r.validateUnionIdentifiers(a[s-3]),r.addSubsetData(a[s-3],a[s-2],parseFloat(a[s])),r.setIndentMode&&r.setIndentMode(!0);break;case 17:case 18:case 19:r.addTextData(a[s-1],a[s],void 0);break;case 20:case 21:r.addTextData(a[s-2],a[s-1],a[s]);break;case 23:r.addStyleData(a[s-1],a[s]);break;case 24:case 25:case 26:var c=r.getCurrentSets();if(!c)throw Error(`text requires set`);r.addTextData(c,a[s],void 0);break;case 27:case 28:var c=r.getCurrentSets();if(!c)throw Error(`text requires set`);r.addTextData(c,a[s-1],a[s]);break;case 29:case 41:this.$=[a[s]];break;case 30:case 42:this.$=[...a[s-2],a[s]];break;case 31:this.$=[a[s-2],a[s]];break;case 33:this.$=a[s].join(` `);break;case 34:this.$=[a[s]];break;case 35:a[s-1].push(a[s]),this.$=a[s-1];break;case 43:case 44:this.$=a[s]}},`anonymous`),table:[e(n,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},e(r,[2,4],{6:5}),e(n,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},e(r,[2,5]),e(r,[2,6]),e(r,[2,7]),e(r,[2,8]),{13:16,20:i,21:a},{13:20,18:19,20:i,21:a},{13:20,18:21,20:i,21:a},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:i,21:a},e(r,[2,9],{14:[1,27],15:[1,28]}),e(o,[2,43]),e(o,[2,44]),e(r,[2,13],{14:[1,29],15:[1,30],27:s}),e(o,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:s},e(r,[2,22]),e(r,[2,24],{14:[1,35]}),e(r,[2,25],{14:[1,36]}),e(r,[2,26]),{20:c,25:37,26:38,27:s},e(r,[2,10],{15:[1,40]}),{16:[1,41]},e(r,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:i,21:a},e(r,[2,17],{14:[1,45]}),e(r,[2,18],{14:[1,46]}),e(r,[2,19]),e(r,[2,27]),e(r,[2,28]),e(r,[2,23],{27:[1,47]}),e(l,[2,29]),{15:[1,48]},{16:[1,49]},e(r,[2,11]),{16:[1,50]},e(r,[2,15]),e(o,[2,42]),e(r,[2,20]),e(r,[2,21]),{20:c,26:51},{16:u,20:d,21:[1,53],28:52,29:54,30:55,31:f,32:p,33:m},e(r,[2,12]),e(r,[2,16]),e(l,[2,30]),e(l,[2,31]),e(l,[2,32]),e(l,[2,33],{30:61,16:u,20:d,31:f,32:p,33:m}),e(h,[2,34]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),e(h,[2,39]),e(h,[2,40]),e(h,[2,35])],defaultActions:{6:[2,1]},parseError:t.n(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t.n(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t.n(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t.n(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
8
|
+
`+h.showPosition()+`
|
|
9
|
+
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};g.lexer=(function(){return{EOF:1,parseError:t.n(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:t.n(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:t.n(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:t.n(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:t.n(function(){return this._more=!0,this},`more`),reject:t.n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
10
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:t.n(function(e){this.unput(this.match.slice(e))},`less`),pastInput:t.n(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:t.n(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:t.n(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
11
|
+
`+t+`^`},`showPosition`),test_match:t.n(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:t.n(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
12
|
+
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:t.n(function(){return this.next()||this.lex()},`lex`),begin:t.n(function(e){this.conditionStack.push(e)},`begin`),popState:t.n(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:t.n(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:t.n(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:t.n(function(e){this.begin(e)},`pushState`),stateStackSize:t.n(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:t.n(function(e,t,n,r){switch(n){case 0:break;case 1:break;case 2:break;case 3:if(e.getIndentMode&&e.getIndentMode())return e.consumeIndentText=!0,this.begin(`INITIAL`),22;break;case 4:break;case 5:e.setIndentMode&&e.setIndentMode(!1),this.begin(`INITIAL`),this.unput(t.yytext);break;case 6:return this.begin(`bol`),8;case 7:break;case 8:break;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(e.consumeIndentText)e.consumeIndentText=!1;else return 19;break;case 15:return 24;case 16:return t.yytext=t.yytext.slice(2,-2),14;case 17:return t.yytext=t.yytext.slice(1,-1).trim(),14;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},`anonymous`),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}}})();function _(){this.yy={}}return t.n(_,`Parser`),_.prototype=g,g.Parser=_,new _})();W.parser=W;var fe=W,G=[],K=[],q=[],J=new Set,Y,X=!1,pe=t.n((e,t,n)=>{let r=Q(e).sort(),i=n??10/e.length**2;Y=r,r.length===1&&J.add(r[0]),G.push({sets:r,size:i,label:t?Z(t):void 0})},`addSubsetData`),me=t.n(()=>G,`getSubsetData`),Z=t.n(e=>{let t=e.trim();return t.length>=2&&t.startsWith(`"`)&&t.endsWith(`"`)?t.slice(1,-1):t},`normalizeText`),he=t.n(e=>e&&Z(e),`normalizeStyleValue`),ge=t.n((e,t,n)=>{let r=Z(t);K.push({sets:Q(e).sort(),id:r,label:n?Z(n):void 0})},`addTextData`),_e=t.n((e,t)=>{let n=Q(e).sort(),r={};for(let[e,n]of t)r[e]=he(n)??n;q.push({targets:n,styles:r})},`addStyleData`),ve=t.n(()=>q,`getStyleData`),Q=t.n(e=>e.map(e=>Z(e)),`normalizeIdentifierList`),ye=t.n(e=>{let t=Q(e).filter(e=>!J.has(e));if(t.length>0)throw Error(`unknown set identifier: ${t.join(`, `)}`)},`validateUnionIdentifiers`),be=t.n(()=>K,`getTextData`),xe=t.n(()=>Y,`getCurrentSets`),Se=t.n(()=>X,`getIndentMode`),Ce=t.n(e=>{X=e},`setIndentMode`),we=n.f.venn;function Te(){return r.i(we,n.b().venn)}t.n(Te,`getConfig`);var Ee={getConfig:Te,clear:t.n(()=>{n.a(),G.length=0,K.length=0,q.length=0,J.clear(),Y=void 0,X=!1},`customClear`),setAccTitle:n.U,getAccTitle:n.y,setDiagramTitle:n.K,getDiagramTitle:n.w,getAccDescription:n.v,setAccDescription:n.H,addSubsetData:pe,getSubsetData:me,addTextData:ge,addStyleData:_e,validateUnionIdentifiers:ye,getTextData:be,getStyleData:ve,getCurrentSets:xe,getIndentMode:Se,setIndentMode:Ce},De=t.n(e=>`
|
|
13
|
+
.venn-title {
|
|
14
|
+
font-size: 32px;
|
|
15
|
+
fill: ${e.vennTitleTextColor};
|
|
16
|
+
font-family: ${e.fontFamily};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.venn-circle text {
|
|
20
|
+
font-size: 48px;
|
|
21
|
+
font-family: ${e.fontFamily};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.venn-intersection text {
|
|
25
|
+
font-size: 48px;
|
|
26
|
+
fill: ${e.vennSetTextColor};
|
|
27
|
+
font-family: ${e.fontFamily};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.venn-text-node {
|
|
31
|
+
font-family: ${e.fontFamily};
|
|
32
|
+
color: ${e.vennSetTextColor};
|
|
33
|
+
}
|
|
34
|
+
`,`getStyles`);function Oe(e){let t=new Map;for(let n of e){let e=n.targets.join(`|`),r=t.get(e);r?Object.assign(r,n.styles):t.set(e,{...n.styles})}return t}t.n(Oe,`buildStyleByKey`);var ke=t.n((t,r,s,c)=>{let l=c.db,u=l.getConfig?.(),{themeVariables:d,look:f,handDrawnSeed:p}=n.b(),m=f===`handDrawn`,h=[d.venn1,d.venn2,d.venn3,d.venn4,d.venn5,d.venn6,d.venn7,d.venn8].filter(Boolean),g=l.getDiagramTitle?.(),_=l.getSubsetData(),v=l.getTextData(),y=Oe(l.getStyleData()),b=je(_),x=u?.width??800,S=u?.height??450,C=x/1600,w=g?48*C:0,T=d.primaryTextColor??d.textColor,E=i.t(r);E.attr(`viewBox`,`0 0 ${x} ${S}`),g&&E.append(`text`).text(g).attr(`class`,`venn-title`).attr(`font-size`,`${32*C}px`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).attr(`x`,`50%`).attr(`y`,32*C).style(`fill`,d.vennTitleTextColor||d.titleColor);let D=e.p(document.createElement(`div`)),O=ie().width(x).height(S-w);D.datum(b).call(O);let k=m?a.t.svg(D.select(`svg`).node()):void 0,A=de(b,{width:x,height:S-w,padding:u?.padding??15}),j=new Map;for(let e of A){let t=$([...e.data.sets].sort());j.set(t,e)}v.length>0&&Ae(u,j,D,v,C,y);let M=n.rt(d.background||`#f4f4f4`);D.selectAll(`.venn-circle`).each(function(t,r){let i=e.p(this),a=$([...t.sets].sort()),s=y.get(a),c=s?.fill||h[r%h.length]||d.primaryColor;i.classed(`venn-set-${r%8}`,!0);let l=s?.[`fill-opacity`]??.1,u=s?.stroke||c,f=s?.[`stroke-width`]||`${5*C}`;if(m&&k){let e=j.get(a);if(e&&e.circles.length>0){let t=e.circles[0],n=k.circle(t.x,t.y,t.radius*2,{roughness:.7,seed:p,fill:o(c,.7),fillStyle:`hachure`,fillWeight:2,hachureGap:8,hachureAngle:-41+r*60,stroke:u,strokeWidth:parseFloat(String(f))});i.select(`path`).remove(),i.node()?.insertBefore(n,i.select(`text`).node())}}else i.select(`path`).style(`fill`,c).style(`fill-opacity`,l).style(`stroke`,u).style(`stroke-width`,f).style(`stroke-opacity`,.95);let g=s?.color||(M?n.tt(c,30):n.et(c,30));i.select(`text`).style(`font-size`,`${48*C}px`).style(`fill`,g)}),m&&k?D.selectAll(`.venn-intersection`).each(function(t){let n=e.p(this),r=$([...t.sets].sort()),i=y.get(r),a=i?.fill;if(a){let e=n.select(`path`),t=e.attr(`d`);if(t){let n=k.path(t,{roughness:.7,seed:p,fill:o(a,.3),fillStyle:`cross-hatch`,fillWeight:2,hachureGap:6,hachureAngle:60,stroke:`none`}),r=e.node();r?.parentNode?.insertBefore(n,r),e.remove()}}else n.select(`path`).style(`fill-opacity`,0);n.select(`text`).style(`font-size`,`${48*C}px`).style(`fill`,i?.color??d.vennSetTextColor??T)}):(D.selectAll(`.venn-intersection text`).style(`font-size`,`${48*C}px`).style(`fill`,e=>{let t=$([...e.sets].sort());return y.get(t)?.color??d.vennSetTextColor??T}),D.selectAll(`.venn-intersection path`).style(`fill-opacity`,e=>{let t=$([...e.sets].sort());return+!!y.get(t)?.fill}).style(`fill`,e=>{let t=$([...e.sets].sort());return y.get(t)?.fill??`transparent`}));let N=E.append(`g`).attr(`transform`,`translate(0, ${w})`),P=D.select(`svg`).node();if(P&&`childNodes`in P)for(let e of[...P.childNodes])N.node()?.appendChild(e);n.c(E,S,x,u?.useMaxWidth??!0)},`draw`);function $(e){return e.join(`|`)}t.n($,`stableSetsKey`);function Ae(e,t,n,r,i,a){let o=e?.useDebugLayout??!1,s=n.select(`svg`).append(`g`).attr(`class`,`venn-text-nodes`),c=new Map;for(let e of r){let t=$(e.sets),n=c.get(t);n?n.push(e):c.set(t,[e])}for(let[e,n]of c.entries()){let r=t.get(e);if(!r?.text)continue;let c=r.text.x,l=r.text.y,u=Math.min(...r.circles.map(e=>e.radius)),d=Math.min(...r.circles.map(e=>e.radius-Math.hypot(c-e.x,l-e.y))),f=Number.isFinite(d)?Math.max(0,d):0;f===0&&Number.isFinite(u)&&(f=u*.6);let p=s.append(`g`).attr(`class`,`venn-text-area`).attr(`font-size`,`${40*i}px`);o&&p.append(`circle`).attr(`class`,`venn-text-debug-circle`).attr(`cx`,c).attr(`cy`,l).attr(`r`,f).attr(`fill`,`none`).attr(`stroke`,`purple`).attr(`stroke-width`,1.5*i).attr(`stroke-dasharray`,`${6*i} ${4*i}`);let m=Math.max(80*i,f*2*.95),h=Math.max(60*i,f*2*.95),g=(r.data.label&&r.data.label.length>0?Math.min(32*i,f*.25):0)+(n.length<=2?30*i:0),_=c-m/2,v=l-h/2+g,y=Math.max(1,Math.ceil(Math.sqrt(n.length))),b=Math.max(1,Math.ceil(n.length/y)),x=m/y,S=h/b;for(let[e,t]of n.entries()){let n=e%y,r=Math.floor(e/y),s=_+x*(n+.5),c=v+S*(r+.5);o&&p.append(`rect`).attr(`class`,`venn-text-debug-cell`).attr(`x`,_+x*n).attr(`y`,v+S*r).attr(`width`,x).attr(`height`,S).attr(`fill`,`none`).attr(`stroke`,`teal`).attr(`stroke-width`,1*i).attr(`stroke-dasharray`,`${4*i} ${3*i}`);let l=x*.9,u=S*.9,d=p.append(`foreignObject`).attr(`class`,`venn-text-node-fo`).attr(`width`,l).attr(`height`,u).attr(`x`,s-l/2).attr(`y`,c-u/2).attr(`overflow`,`visible`),f=a.get(t.id)?.color,m=d.append(`xhtml:span`).attr(`class`,`venn-text-node`).style(`display`,`flex`).style(`width`,`100%`).style(`height`,`100%`).style(`white-space`,`normal`).style(`align-items`,`center`).style(`justify-content`,`center`).style(`text-align`,`center`).style(`overflow-wrap`,`normal`).style(`word-break`,`normal`).text(t.label??t.id);f&&m.style(`color`,f)}}}t.n(Ae,`renderTextNodes`);function je(e){let t=new Set(e.map(e=>[...e.sets].sort().join(`|`))),n=new Map(e.filter(e=>e.sets.length===1&&e.size!==void 0).map(e=>[e.sets[0],e.size])),r=[];for(let i of e){if(i.sets.length<3)continue;let e=[...i.sets].sort();for(let i=0;i<e.length-1;i++)for(let a=i+1;a<e.length;a++){let o=[e[i],e[a]],s=o.join(`|`);if(!t.has(s)){t.add(s);let e=n.get(o[0]),i=n.get(o[1]),a=e!==void 0&&i!==void 0?Math.min(e,i)/4:2.5;r.push({sets:o,size:a,label:``})}}}return r.length>0?[...e,...r]:e}t.n(je,`ensurePairwiseSubsets`);var Me={parser:fe,db:Ee,renderer:{draw:ke},styles:De};exports.diagram=Me;
|