docmedown 0.1.1 → 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 +38 -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 +87 -58
- 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 +65 -48
- package/dist/docmedown.iife.js +3418 -77
- package/dist/docmedown.mjs +6550 -4630
- 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/components/AppearanceMenu.d.ts +2 -0
- package/dist/types/runtime/components/DmdRegistry.d.ts +3 -1
- package/dist/types/runtime/components/MermaidDiagram.d.ts +16 -0
- package/dist/types/runtime/components/OfflineDownloadButton.d.ts +2 -0
- package/dist/types/runtime/config-schema.d.ts +42 -0
- package/dist/types/runtime/index.d.ts +1 -0
- package/dist/types/runtime/markdown/mermaid.d.ts +82 -1
- package/dist/types/runtime/offline-export.d.ts +26 -0
- package/dist/types/runtime/provider/ThemeProvider.d.ts +11 -4
- package/dist/types/runtime/types.d.ts +4 -1
- 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 +6 -3
- package/schemas/docs.schema.json +10 -1
- package/templates/README.md +4 -4
- package/templates/docs.json +4 -2
- package/templates/getting-started.md +1 -1
- package/templates/guides/custom-components.md +2 -0
- package/templates/index.html +2 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require("./chunk-FOHPRMQF-tmTlwTeH.js");const e=require("./mermaid-parser.core-BBApyu_y.js");exports.createTreeViewServices=e.c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require("./chunk-FOHPRMQF-tmTlwTeH.js");const e=require("./mermaid-parser.core-BBApyu_y.js");exports.createTreemapServices=e.o;
|
|
@@ -11,7 +11,9 @@ export declare class ComponentRegistry {
|
|
|
11
11
|
get(name: string): React.ComponentType<any> | undefined;
|
|
12
12
|
getAll(): ComponentMap;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Registers embedded components after the runtime has published `window.React`.
|
|
15
|
+
* Offline sources are bundled at build time because Blob modules cannot resolve
|
|
16
|
+
* relative imports against the original `.dmd` directory.
|
|
15
17
|
*/
|
|
16
18
|
loadDmdDirectory(basePath?: string): Promise<void>;
|
|
17
19
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
interface MermaidDiagramProps {
|
|
3
|
+
/** Raw Mermaid diagram definition (already decoded from the placeholder). */
|
|
4
|
+
source: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Interactive diagram viewer mounted onto every `mermaid` fence placeholder.
|
|
8
|
+
*
|
|
9
|
+
* - Renders through the locally bundled Mermaid with DocMeDown family tokens,
|
|
10
|
+
* so palettes match the active theme online and under file:///.
|
|
11
|
+
* - Re-renders automatically when the theme family or color mode changes.
|
|
12
|
+
* - Provides zoom controls, SVG download, fullscreen mode, and readable
|
|
13
|
+
* syntax-error reporting instead of Mermaid's injected error markup.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MermaidDiagram: React.FC<MermaidDiagramProps>;
|
|
16
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/** Legacy accent presets accepted for one compatibility cycle. */
|
|
2
3
|
export declare const themePresetSchema: z.ZodEnum<{
|
|
3
4
|
indigo: "indigo";
|
|
4
5
|
emerald: "emerald";
|
|
@@ -8,6 +9,17 @@ export declare const themePresetSchema: z.ZodEnum<{
|
|
|
8
9
|
slate: "slate";
|
|
9
10
|
cyberpunk: "cyberpunk";
|
|
10
11
|
}>;
|
|
12
|
+
/** Complete visual systems, not merely accent-color variations. */
|
|
13
|
+
export declare const themeFamilySchema: z.ZodEnum<{
|
|
14
|
+
atlas: "atlas";
|
|
15
|
+
blueprint: "blueprint";
|
|
16
|
+
terminal: "terminal";
|
|
17
|
+
editorial: "editorial";
|
|
18
|
+
}>;
|
|
19
|
+
export declare const themeDensitySchema: z.ZodEnum<{
|
|
20
|
+
comfortable: "comfortable";
|
|
21
|
+
compact: "compact";
|
|
22
|
+
}>;
|
|
11
23
|
export declare const colorModeSchema: z.ZodEnum<{
|
|
12
24
|
light: "light";
|
|
13
25
|
dark: "dark";
|
|
@@ -79,6 +91,16 @@ export interface SidebarItemConfigShape {
|
|
|
79
91
|
}
|
|
80
92
|
export declare const sidebarItemSchema: z.ZodType<SidebarItemConfigShape>;
|
|
81
93
|
export declare const docThemeConfigSchema: z.ZodObject<{
|
|
94
|
+
family: z.ZodOptional<z.ZodEnum<{
|
|
95
|
+
atlas: "atlas";
|
|
96
|
+
blueprint: "blueprint";
|
|
97
|
+
terminal: "terminal";
|
|
98
|
+
editorial: "editorial";
|
|
99
|
+
}>>;
|
|
100
|
+
density: z.ZodOptional<z.ZodEnum<{
|
|
101
|
+
comfortable: "comfortable";
|
|
102
|
+
compact: "compact";
|
|
103
|
+
}>>;
|
|
82
104
|
preset: z.ZodOptional<z.ZodEnum<{
|
|
83
105
|
indigo: "indigo";
|
|
84
106
|
emerald: "emerald";
|
|
@@ -148,6 +170,16 @@ export declare const docConfigSchema: z.ZodObject<{
|
|
|
148
170
|
token: z.ZodOptional<z.ZodString>;
|
|
149
171
|
}, z.core.$strict>], "type">>;
|
|
150
172
|
theme: z.ZodOptional<z.ZodObject<{
|
|
173
|
+
family: z.ZodOptional<z.ZodEnum<{
|
|
174
|
+
atlas: "atlas";
|
|
175
|
+
blueprint: "blueprint";
|
|
176
|
+
terminal: "terminal";
|
|
177
|
+
editorial: "editorial";
|
|
178
|
+
}>>;
|
|
179
|
+
density: z.ZodOptional<z.ZodEnum<{
|
|
180
|
+
comfortable: "comfortable";
|
|
181
|
+
compact: "compact";
|
|
182
|
+
}>>;
|
|
151
183
|
preset: z.ZodOptional<z.ZodEnum<{
|
|
152
184
|
indigo: "indigo";
|
|
153
185
|
emerald: "emerald";
|
|
@@ -256,6 +288,16 @@ export declare const normalizedDocConfigSchema: z.ZodObject<{
|
|
|
256
288
|
token: z.ZodOptional<z.ZodString>;
|
|
257
289
|
}, z.core.$strict>], "type">>;
|
|
258
290
|
theme: z.ZodOptional<z.ZodObject<{
|
|
291
|
+
family: z.ZodOptional<z.ZodEnum<{
|
|
292
|
+
atlas: "atlas";
|
|
293
|
+
blueprint: "blueprint";
|
|
294
|
+
terminal: "terminal";
|
|
295
|
+
editorial: "editorial";
|
|
296
|
+
}>>;
|
|
297
|
+
density: z.ZodOptional<z.ZodEnum<{
|
|
298
|
+
comfortable: "comfortable";
|
|
299
|
+
compact: "compact";
|
|
300
|
+
}>>;
|
|
259
301
|
preset: z.ZodOptional<z.ZodEnum<{
|
|
260
302
|
indigo: "indigo";
|
|
261
303
|
emerald: "emerald";
|
|
@@ -3,5 +3,6 @@ export { DocMeDownApp } from "./app";
|
|
|
3
3
|
export * from "./components/Builtins";
|
|
4
4
|
export { loadDocConfig } from "./config";
|
|
5
5
|
export { docConfigSchema, docSearchConfigSchema, docThemeConfigSchema, formatConfigIssues, navLinkSchema, normalizedDocConfigSchema, parseDocConfig, remoteSourceSchema, sidebarItemSchema, socialLinkSchema, } from "./config-schema";
|
|
6
|
+
export { createOfflineDownload, downloadOfflineCopy, isOfflineDocumentation, sanitizeDownloadName, } from "./offline-export";
|
|
6
7
|
export * from "./types";
|
|
7
8
|
export declare function initDocMeDown(options?: DocMeDownInitOptions): Promise<DocMeDownInstance | null>;
|
|
@@ -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,17 +1,24 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
|
-
import type { ColorMode,
|
|
2
|
+
import type { ColorMode, ThemeDensity, ThemeFamily } from "../types";
|
|
3
3
|
interface ThemeContextType {
|
|
4
4
|
mode: ColorMode;
|
|
5
5
|
resolvedMode: "light" | "dark";
|
|
6
|
-
|
|
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,6 +1,9 @@
|
|
|
1
1
|
/** DocMeDown runtime type definitions. Configuration types are derived from Zod schemas. */
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
import type { colorModeSchema, docConfigSchema, docSearchConfigSchema, docThemeConfigSchema, navLinkSchema, normalizedDocConfigSchema, remoteSourceSchema, SidebarItemConfigShape, socialLinkSchema, themePresetSchema } from "./config-schema";
|
|
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. */
|
|
4
7
|
export type ThemePreset = z.infer<typeof themePresetSchema>;
|
|
5
8
|
export type ColorMode = z.infer<typeof colorModeSchema>;
|
|
6
9
|
export type NavLink = z.infer<typeof navLinkSchema>;
|
|
@@ -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;
|