schematex 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +379 -0
- package/dist/chunk-2MQWZ2XY.cjs +453 -0
- package/dist/chunk-2MQWZ2XY.cjs.map +1 -0
- package/dist/chunk-2UKC6ZCY.cjs +1803 -0
- package/dist/chunk-2UKC6ZCY.cjs.map +1 -0
- package/dist/chunk-34X3ZJ6E.cjs +783 -0
- package/dist/chunk-34X3ZJ6E.cjs.map +1 -0
- package/dist/chunk-3FTUWAXK.cjs +1220 -0
- package/dist/chunk-3FTUWAXK.cjs.map +1 -0
- package/dist/chunk-3J7TFUOC.js +745 -0
- package/dist/chunk-3J7TFUOC.js.map +1 -0
- package/dist/chunk-47ZC6EMJ.js +1009 -0
- package/dist/chunk-47ZC6EMJ.js.map +1 -0
- package/dist/chunk-4DBRNOPA.cjs +750 -0
- package/dist/chunk-4DBRNOPA.cjs.map +1 -0
- package/dist/chunk-4G7ZIBHN.js +778 -0
- package/dist/chunk-4G7ZIBHN.js.map +1 -0
- package/dist/chunk-5C7DPDHQ.js +1321 -0
- package/dist/chunk-5C7DPDHQ.js.map +1 -0
- package/dist/chunk-ADOXGKAK.js +1251 -0
- package/dist/chunk-ADOXGKAK.js.map +1 -0
- package/dist/chunk-BE5HNDA5.cjs +874 -0
- package/dist/chunk-BE5HNDA5.cjs.map +1 -0
- package/dist/chunk-CZRM7LT7.js +889 -0
- package/dist/chunk-CZRM7LT7.js.map +1 -0
- package/dist/chunk-D4JTSPOL.js +1795 -0
- package/dist/chunk-D4JTSPOL.js.map +1 -0
- package/dist/chunk-DS47NTWZ.cjs +1034 -0
- package/dist/chunk-DS47NTWZ.cjs.map +1 -0
- package/dist/chunk-FDLZEKEB.js +449 -0
- package/dist/chunk-FDLZEKEB.js.map +1 -0
- package/dist/chunk-FGPTCDUT.cjs +1851 -0
- package/dist/chunk-FGPTCDUT.cjs.map +1 -0
- package/dist/chunk-HDKDQAEQ.cjs +86 -0
- package/dist/chunk-HDKDQAEQ.cjs.map +1 -0
- package/dist/chunk-IX554O5K.js +346 -0
- package/dist/chunk-IX554O5K.js.map +1 -0
- package/dist/chunk-KLJEK547.js +71 -0
- package/dist/chunk-KLJEK547.js.map +1 -0
- package/dist/chunk-LMFSHK45.js +1028 -0
- package/dist/chunk-LMFSHK45.js.map +1 -0
- package/dist/chunk-MDICUK6F.cjs +1258 -0
- package/dist/chunk-MDICUK6F.cjs.map +1 -0
- package/dist/chunk-N7KOXOMX.cjs +363 -0
- package/dist/chunk-N7KOXOMX.cjs.map +1 -0
- package/dist/chunk-NYCIK4SU.cjs +775 -0
- package/dist/chunk-NYCIK4SU.cjs.map +1 -0
- package/dist/chunk-PDPHRZZT.js +770 -0
- package/dist/chunk-PDPHRZZT.js.map +1 -0
- package/dist/chunk-ROFLJ74T.js +1212 -0
- package/dist/chunk-ROFLJ74T.js.map +1 -0
- package/dist/chunk-S6BK5DB6.cjs +845 -0
- package/dist/chunk-S6BK5DB6.cjs.map +1 -0
- package/dist/chunk-U4I37IBN.js +874 -0
- package/dist/chunk-U4I37IBN.js.map +1 -0
- package/dist/chunk-U5GGE6PJ.js +839 -0
- package/dist/chunk-U5GGE6PJ.js.map +1 -0
- package/dist/chunk-UHLYS3W5.cjs +1015 -0
- package/dist/chunk-UHLYS3W5.cjs.map +1 -0
- package/dist/chunk-URSKIHSY.cjs +881 -0
- package/dist/chunk-URSKIHSY.cjs.map +1 -0
- package/dist/chunk-V6WO7RK7.cjs +1056 -0
- package/dist/chunk-V6WO7RK7.cjs.map +1 -0
- package/dist/chunk-VFQCTXOX.js +869 -0
- package/dist/chunk-VFQCTXOX.js.map +1 -0
- package/dist/chunk-XQ52ICHU.cjs +895 -0
- package/dist/chunk-XQ52ICHU.cjs.map +1 -0
- package/dist/chunk-XX4BKS7Y.js +1051 -0
- package/dist/chunk-XX4BKS7Y.js.map +1 -0
- package/dist/chunk-XXU36667.js +1844 -0
- package/dist/chunk-XXU36667.js.map +1 -0
- package/dist/chunk-ZX7QKZK2.cjs +1326 -0
- package/dist/chunk-ZX7QKZK2.cjs.map +1 -0
- package/dist/diagrams/blockdiagram/index.cjs +25 -0
- package/dist/diagrams/blockdiagram/index.cjs.map +1 -0
- package/dist/diagrams/blockdiagram/index.d.cts +67 -0
- package/dist/diagrams/blockdiagram/index.d.ts +67 -0
- package/dist/diagrams/blockdiagram/index.js +4 -0
- package/dist/diagrams/blockdiagram/index.js.map +1 -0
- package/dist/diagrams/circuit/index.cjs +34 -0
- package/dist/diagrams/circuit/index.cjs.map +1 -0
- package/dist/diagrams/circuit/index.d.cts +138 -0
- package/dist/diagrams/circuit/index.d.ts +138 -0
- package/dist/diagrams/circuit/index.js +5 -0
- package/dist/diagrams/circuit/index.js.map +1 -0
- package/dist/diagrams/ecomap/index.cjs +30 -0
- package/dist/diagrams/ecomap/index.cjs.map +1 -0
- package/dist/diagrams/ecomap/index.d.cts +15 -0
- package/dist/diagrams/ecomap/index.d.ts +15 -0
- package/dist/diagrams/ecomap/index.js +5 -0
- package/dist/diagrams/ecomap/index.js.map +1 -0
- package/dist/diagrams/entity/index.cjs +26 -0
- package/dist/diagrams/entity/index.cjs.map +1 -0
- package/dist/diagrams/entity/index.d.cts +54 -0
- package/dist/diagrams/entity/index.d.ts +54 -0
- package/dist/diagrams/entity/index.js +5 -0
- package/dist/diagrams/entity/index.js.map +1 -0
- package/dist/diagrams/fishbone/index.cjs +34 -0
- package/dist/diagrams/fishbone/index.cjs.map +1 -0
- package/dist/diagrams/fishbone/index.d.cts +185 -0
- package/dist/diagrams/fishbone/index.d.ts +185 -0
- package/dist/diagrams/fishbone/index.js +5 -0
- package/dist/diagrams/fishbone/index.js.map +1 -0
- package/dist/diagrams/flowchart/index.cjs +34 -0
- package/dist/diagrams/flowchart/index.cjs.map +1 -0
- package/dist/diagrams/flowchart/index.d.cts +2 -0
- package/dist/diagrams/flowchart/index.d.ts +2 -0
- package/dist/diagrams/flowchart/index.js +5 -0
- package/dist/diagrams/flowchart/index.js.map +1 -0
- package/dist/diagrams/genogram/index.cjs +38 -0
- package/dist/diagrams/genogram/index.cjs.map +1 -0
- package/dist/diagrams/genogram/index.d.cts +20 -0
- package/dist/diagrams/genogram/index.d.ts +20 -0
- package/dist/diagrams/genogram/index.js +5 -0
- package/dist/diagrams/genogram/index.js.map +1 -0
- package/dist/diagrams/ladder/index.cjs +26 -0
- package/dist/diagrams/ladder/index.cjs.map +1 -0
- package/dist/diagrams/ladder/index.d.cts +49 -0
- package/dist/diagrams/ladder/index.d.ts +49 -0
- package/dist/diagrams/ladder/index.js +5 -0
- package/dist/diagrams/ladder/index.js.map +1 -0
- package/dist/diagrams/logic/index.cjs +26 -0
- package/dist/diagrams/logic/index.cjs.map +1 -0
- package/dist/diagrams/logic/index.d.cts +73 -0
- package/dist/diagrams/logic/index.d.ts +73 -0
- package/dist/diagrams/logic/index.js +5 -0
- package/dist/diagrams/logic/index.js.map +1 -0
- package/dist/diagrams/orgchart/index.cjs +30 -0
- package/dist/diagrams/orgchart/index.cjs.map +1 -0
- package/dist/diagrams/orgchart/index.d.cts +100 -0
- package/dist/diagrams/orgchart/index.d.ts +100 -0
- package/dist/diagrams/orgchart/index.js +5 -0
- package/dist/diagrams/orgchart/index.js.map +1 -0
- package/dist/diagrams/pedigree/index.cjs +30 -0
- package/dist/diagrams/pedigree/index.cjs.map +1 -0
- package/dist/diagrams/pedigree/index.d.cts +15 -0
- package/dist/diagrams/pedigree/index.d.ts +15 -0
- package/dist/diagrams/pedigree/index.js +5 -0
- package/dist/diagrams/pedigree/index.js.map +1 -0
- package/dist/diagrams/phylo/index.cjs +30 -0
- package/dist/diagrams/phylo/index.cjs.map +1 -0
- package/dist/diagrams/phylo/index.d.cts +32 -0
- package/dist/diagrams/phylo/index.d.ts +32 -0
- package/dist/diagrams/phylo/index.js +5 -0
- package/dist/diagrams/phylo/index.js.map +1 -0
- package/dist/diagrams/sld/index.cjs +26 -0
- package/dist/diagrams/sld/index.cjs.map +1 -0
- package/dist/diagrams/sld/index.d.cts +58 -0
- package/dist/diagrams/sld/index.d.ts +58 -0
- package/dist/diagrams/sld/index.js +5 -0
- package/dist/diagrams/sld/index.js.map +1 -0
- package/dist/diagrams/sociogram/index.cjs +26 -0
- package/dist/diagrams/sociogram/index.cjs.map +1 -0
- package/dist/diagrams/sociogram/index.d.cts +76 -0
- package/dist/diagrams/sociogram/index.d.ts +76 -0
- package/dist/diagrams/sociogram/index.js +5 -0
- package/dist/diagrams/sociogram/index.js.map +1 -0
- package/dist/diagrams/timing/index.cjs +21 -0
- package/dist/diagrams/timing/index.cjs.map +1 -0
- package/dist/diagrams/timing/index.d.cts +9 -0
- package/dist/diagrams/timing/index.d.ts +9 -0
- package/dist/diagrams/timing/index.js +4 -0
- package/dist/diagrams/timing/index.js.map +1 -0
- package/dist/diagrams/venn/index.cjs +38 -0
- package/dist/diagrams/venn/index.cjs.map +1 -0
- package/dist/diagrams/venn/index.d.cts +69 -0
- package/dist/diagrams/venn/index.d.ts +69 -0
- package/dist/diagrams/venn/index.js +5 -0
- package/dist/diagrams/venn/index.js.map +1 -0
- package/dist/index-BSlza1YY.d.ts +150 -0
- package/dist/index-BXefHVce.d.cts +150 -0
- package/dist/index.cjs +2033 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +29 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +1944 -0
- package/dist/index.js.map +1 -0
- package/dist/types-DqfcYkcY.d.cts +741 -0
- package/dist/types-DqfcYkcY.d.ts +741 -0
- package/package.json +163 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { n as FlowchartAST, o as FlowchartLayoutResult, b as DiagramPlugin } from './types-DqfcYkcY.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Flowchart DSL parser (M1).
|
|
5
|
+
*
|
|
6
|
+
* Supports a mermaid-inspired subset:
|
|
7
|
+
* flowchart TD | TB | BT | LR | RL
|
|
8
|
+
* A[Label] rect
|
|
9
|
+
* A(Label) round
|
|
10
|
+
* A([Label]) stadium
|
|
11
|
+
* A{Label} diamond
|
|
12
|
+
* A[/Label/] parallelogram
|
|
13
|
+
* A --> B solid edge
|
|
14
|
+
* A --- B no-arrow edge
|
|
15
|
+
* A -.-> B dotted
|
|
16
|
+
* A ==> B thick
|
|
17
|
+
* A <--> B bidirectional
|
|
18
|
+
* A --x B crossed end
|
|
19
|
+
* A --o B round end
|
|
20
|
+
* A -->|yes| B edge with pipe label
|
|
21
|
+
* A -- yes --> B edge with inline label
|
|
22
|
+
* A --> B --> C chain
|
|
23
|
+
* %% comment
|
|
24
|
+
*
|
|
25
|
+
* Hand-written tokenizer + recursive descent. Zero deps.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/** Top-level parser entry. */
|
|
29
|
+
declare function parseFlowchart(source: string): FlowchartAST;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Flowchart Sugiyama-style layered layout (M1).
|
|
33
|
+
*
|
|
34
|
+
* Phases:
|
|
35
|
+
* 1. Cycle removal — Greedy-FAS (Eades-Lin-Smyth 1993)
|
|
36
|
+
* 2. Layer assignment — Longest-path layering
|
|
37
|
+
* 3. Dummy node insertion for edges spanning > 1 layer
|
|
38
|
+
* 4. Crossing minimization — median heuristic, bi-directional sweep
|
|
39
|
+
* 5. X-coordinate assignment — simple symmetric pass
|
|
40
|
+
* (Brandes-Köpf full 4-alignment is deferred; for M1 a centered
|
|
41
|
+
* median-based placement produces visually indistinguishable results
|
|
42
|
+
* on graphs ≤ 20 nodes, which is the M1 target.)
|
|
43
|
+
*
|
|
44
|
+
* Zero runtime dependencies. All heuristics hand-written.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
declare const FC_CONST: {
|
|
48
|
+
readonly nodeWidth: 120;
|
|
49
|
+
readonly nodeHeight: 44;
|
|
50
|
+
readonly nodeSpacingX: 32;
|
|
51
|
+
readonly layerSpacingY: 56;
|
|
52
|
+
readonly dummyWidth: 1;
|
|
53
|
+
readonly padding: 24;
|
|
54
|
+
readonly charWidth: 6.8;
|
|
55
|
+
readonly labelHPad: 16;
|
|
56
|
+
readonly minNodeWidth: 72;
|
|
57
|
+
readonly maxLabelWidth: 220;
|
|
58
|
+
readonly crossingSweepIters: 24;
|
|
59
|
+
};
|
|
60
|
+
declare function layoutFlowchart(ast: FlowchartAST): FlowchartLayoutResult;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Shared design-token system for all Schematex diagram renderers.
|
|
64
|
+
*
|
|
65
|
+
* Two-layer architecture:
|
|
66
|
+
* 1. BaseTheme — universal tokens every diagram uses
|
|
67
|
+
* 2. Semantic extensions — diagram-family tokens (PersonTokens, BiologyTokens, …)
|
|
68
|
+
*
|
|
69
|
+
* Three built-in presets: default, monochrome, dark.
|
|
70
|
+
* All tokens are also exposed as CSS custom properties (--schematex-*)
|
|
71
|
+
* so consumers can override them.
|
|
72
|
+
*/
|
|
73
|
+
type ThemeName = "default" | "monochrome" | "dark";
|
|
74
|
+
interface BaseTheme {
|
|
75
|
+
bg: string;
|
|
76
|
+
text: string;
|
|
77
|
+
textMuted: string;
|
|
78
|
+
stroke: string;
|
|
79
|
+
fill: string;
|
|
80
|
+
fillMuted: string;
|
|
81
|
+
/** Emphasis / interactive / link color. Use for net labels, focus, selected. */
|
|
82
|
+
accent: string;
|
|
83
|
+
positive: string;
|
|
84
|
+
negative: string;
|
|
85
|
+
/** Mid-gray. Use for muted strokes, neutral-valence edges, dashed separators. */
|
|
86
|
+
neutral: string;
|
|
87
|
+
warn: string;
|
|
88
|
+
/** Category palette — 8 distinguishable colors for ecomap systems, sociogram groups, etc. */
|
|
89
|
+
palette: readonly string[];
|
|
90
|
+
}
|
|
91
|
+
interface PersonTokens {
|
|
92
|
+
maleFill: string;
|
|
93
|
+
femaleFill: string;
|
|
94
|
+
unknownFill: string;
|
|
95
|
+
deceasedMark: string;
|
|
96
|
+
conditionFill: string;
|
|
97
|
+
}
|
|
98
|
+
interface BiologyTokens {
|
|
99
|
+
cladeColors: readonly string[];
|
|
100
|
+
supportGood: string;
|
|
101
|
+
supportMedium: string;
|
|
102
|
+
supportWarn: string;
|
|
103
|
+
supportBad: string;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Tokens for set-theory diagrams (Venn / Euler). Paletteof set fills is
|
|
107
|
+
* tuned slightly softer than BaseTheme to blend nicely under
|
|
108
|
+
* `mix-blend-mode: multiply`.
|
|
109
|
+
*/
|
|
110
|
+
interface VennTokens {
|
|
111
|
+
vennSetColors: readonly string[];
|
|
112
|
+
vennBlendMode: "multiply" | "screen" | "none";
|
|
113
|
+
vennSetOpacity: number;
|
|
114
|
+
vennSetStroke: string;
|
|
115
|
+
vennLabelColor: string;
|
|
116
|
+
vennCountColor: string;
|
|
117
|
+
vennLeaderColor: string;
|
|
118
|
+
}
|
|
119
|
+
type ResolvedTheme<T = object> = BaseTheme & T;
|
|
120
|
+
declare const BASE_THEMES: Record<ThemeName, BaseTheme>;
|
|
121
|
+
declare const PERSON_TOKENS: Record<ThemeName, PersonTokens>;
|
|
122
|
+
declare const BIOLOGY_TOKENS: Record<ThemeName, BiologyTokens>;
|
|
123
|
+
declare const VENN_TOKENS: Record<ThemeName, VennTokens>;
|
|
124
|
+
declare function resolveBaseTheme(name: string): BaseTheme;
|
|
125
|
+
declare function resolvePersonTheme(name: string): ResolvedTheme<PersonTokens>;
|
|
126
|
+
declare function resolveBiologyTheme(name: string): ResolvedTheme<BiologyTokens>;
|
|
127
|
+
/**
|
|
128
|
+
* Fishbone uses BaseTheme directly — its bone colors come from `theme.palette`.
|
|
129
|
+
* Kept as a named resolver so callers don't have to know that.
|
|
130
|
+
*/
|
|
131
|
+
declare function resolveFishboneTheme(name: string): BaseTheme;
|
|
132
|
+
declare function resolveVennTheme(name: string): ResolvedTheme<VennTokens>;
|
|
133
|
+
declare function resolveGenogramTheme(name: string): ResolvedTheme<PersonTokens>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Flowchart renderer — LayoutResult → SVG string.
|
|
137
|
+
*
|
|
138
|
+
* Produces semantic, themeable SVG per spec §12:
|
|
139
|
+
* - <title>/<desc> for a11y
|
|
140
|
+
* - data-* attributes for interaction hooks
|
|
141
|
+
* - CSS custom properties from resolveBaseTheme
|
|
142
|
+
* - Arrowhead markers in <defs>
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
declare function renderFlowchartAST(ast: FlowchartAST, themeName?: ThemeName): string;
|
|
146
|
+
declare function renderFlowchart(text: string, themeName?: ThemeName): string;
|
|
147
|
+
|
|
148
|
+
declare const flowchart: DiagramPlugin;
|
|
149
|
+
|
|
150
|
+
export { BASE_THEMES as B, FC_CONST as F, PERSON_TOKENS as P, type ResolvedTheme as R, type ThemeName as T, VENN_TOKENS as V, BIOLOGY_TOKENS as a, type BaseTheme as b, type BiologyTokens as c, type PersonTokens as d, type VennTokens as e, flowchart as f, resolveBiologyTheme as g, resolveFishboneTheme as h, resolveGenogramTheme as i, resolvePersonTheme as j, resolveVennTheme as k, layoutFlowchart as l, renderFlowchart as m, renderFlowchartAST as n, parseFlowchart as p, resolveBaseTheme as r };
|