schematex 0.5.2 → 0.6.1
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 +75 -1
- package/dist/ai/ai-sdk.cjs +23 -23
- package/dist/ai/ai-sdk.d.cts +4 -4
- package/dist/ai/ai-sdk.d.ts +4 -4
- package/dist/ai/ai-sdk.js +18 -18
- package/dist/ai/index.cjs +35 -27
- package/dist/ai/index.d.cts +4 -4
- package/dist/ai/index.d.ts +4 -4
- package/dist/ai/index.js +18 -18
- package/dist/{api-Cr_MxttI.d.ts → api-BEJTXyBA.d.cts} +3 -40
- package/dist/{api-C5SECOxZ.d.cts → api-DFrSR3lw.d.ts} +3 -40
- package/dist/browser.cjs +24 -24
- package/dist/browser.d.cts +3 -3
- package/dist/browser.d.ts +3 -3
- package/dist/browser.js +18 -18
- package/dist/{chunk-N7W5KZK7.cjs → chunk-2L4YXZAZ.cjs} +4 -4
- package/dist/{chunk-N7W5KZK7.cjs.map → chunk-2L4YXZAZ.cjs.map} +1 -1
- package/dist/{chunk-ZYRCPSBU.js → chunk-3IE7KZY4.js} +4 -4
- package/dist/{chunk-ZYRCPSBU.js.map → chunk-3IE7KZY4.js.map} +1 -1
- package/dist/{chunk-ZX74KJPM.js → chunk-3VB5AT4R.js} +3 -3
- package/dist/{chunk-ZX74KJPM.js.map → chunk-3VB5AT4R.js.map} +1 -1
- package/dist/{chunk-S2KJRHDZ.cjs → chunk-4UFR2LB6.cjs} +13 -13
- package/dist/{chunk-S2KJRHDZ.cjs.map → chunk-4UFR2LB6.cjs.map} +1 -1
- package/dist/{chunk-4QPDZJAL.cjs → chunk-4XR7X7XW.cjs} +11569 -9045
- package/dist/chunk-4XR7X7XW.cjs.map +1 -0
- package/dist/{chunk-6OSUNBZY.js → chunk-522WB2EH.js} +135 -7
- package/dist/chunk-522WB2EH.js.map +1 -0
- package/dist/{chunk-QTNPMIO2.cjs → chunk-6JI6FWLZ.cjs} +341 -35
- package/dist/chunk-6JI6FWLZ.cjs.map +1 -0
- package/dist/{chunk-UFTYX73U.js → chunk-7F76AWOI.js} +339 -35
- package/dist/chunk-7F76AWOI.js.map +1 -0
- package/dist/{chunk-BW4KGTV7.cjs → chunk-C5C5EF3W.cjs} +4 -4
- package/dist/{chunk-BW4KGTV7.cjs.map → chunk-C5C5EF3W.cjs.map} +1 -1
- package/dist/{chunk-VJGMEGMR.js → chunk-DOK7LKLO.js} +125 -13
- package/dist/chunk-DOK7LKLO.js.map +1 -0
- package/dist/{chunk-L3CTXXVZ.js → chunk-FBS3PACU.js} +3 -3
- package/dist/{chunk-L3CTXXVZ.js.map → chunk-FBS3PACU.js.map} +1 -1
- package/dist/{chunk-QUKVGHN4.cjs → chunk-FKJBXGWP.cjs} +4 -4
- package/dist/{chunk-QUKVGHN4.cjs.map → chunk-FKJBXGWP.cjs.map} +1 -1
- package/dist/{chunk-SZK376QB.js → chunk-H4MT5TJP.js} +3 -3
- package/dist/{chunk-SZK376QB.js.map → chunk-H4MT5TJP.js.map} +1 -1
- package/dist/{chunk-3M6T7KB4.js → chunk-HAZALB7U.js} +3 -3
- package/dist/{chunk-3M6T7KB4.js.map → chunk-HAZALB7U.js.map} +1 -1
- package/dist/{chunk-VFZOPRQP.cjs → chunk-HWVBHU3O.cjs} +5 -5
- package/dist/{chunk-VFZOPRQP.cjs.map → chunk-HWVBHU3O.cjs.map} +1 -1
- package/dist/{chunk-OK5ZS3LU.js → chunk-I2GQYOZ5.js} +11586 -9069
- package/dist/chunk-I2GQYOZ5.js.map +1 -0
- package/dist/{chunk-D7EHZFK4.cjs → chunk-L7POWM5B.cjs} +138 -2
- package/dist/chunk-L7POWM5B.cjs.map +1 -0
- package/dist/{chunk-2VNMKOUO.js → chunk-LRI4RH2N.js} +135 -3
- package/dist/chunk-LRI4RH2N.js.map +1 -0
- package/dist/{chunk-EPKIJEH7.js → chunk-MFAMNFPA.js} +63 -6
- package/dist/chunk-MFAMNFPA.js.map +1 -0
- package/dist/{chunk-VDSYMSUY.js → chunk-MVIEIKOI.js} +3 -3
- package/dist/{chunk-VDSYMSUY.js.map → chunk-MVIEIKOI.js.map} +1 -1
- package/dist/{chunk-ZL5RB4UV.js → chunk-N5B242WY.js} +3 -3
- package/dist/{chunk-ZL5RB4UV.js.map → chunk-N5B242WY.js.map} +1 -1
- package/dist/{chunk-VKPCR7BG.js → chunk-OTSVMKII.js} +883 -12
- package/dist/chunk-OTSVMKII.js.map +1 -0
- package/dist/{chunk-YLEVMOK2.cjs → chunk-R66QG3XT.cjs} +5 -4
- package/dist/{chunk-YLEVMOK2.cjs.map → chunk-R66QG3XT.cjs.map} +1 -1
- package/dist/{chunk-3M6WB62Y.cjs → chunk-R6VX5YTJ.cjs} +139 -7
- package/dist/chunk-R6VX5YTJ.cjs.map +1 -0
- package/dist/{chunk-I55HO32M.js → chunk-RJMCWT7Z.js} +3 -3
- package/dist/{chunk-I55HO32M.js.map → chunk-RJMCWT7Z.js.map} +1 -1
- package/dist/{chunk-TZTCIAYW.cjs → chunk-S3RMAXH5.cjs} +137 -25
- package/dist/chunk-S3RMAXH5.cjs.map +1 -0
- package/dist/{chunk-HK56GQQP.cjs → chunk-SSLNPHCL.cjs} +886 -13
- package/dist/chunk-SSLNPHCL.cjs.map +1 -0
- package/dist/{chunk-IBRW3UOA.js → chunk-TWLKXV2O.js} +3 -3
- package/dist/{chunk-IBRW3UOA.js.map → chunk-TWLKXV2O.js.map} +1 -1
- package/dist/{chunk-VCH7RI5H.js → chunk-UWA5MWCI.js} +4 -4
- package/dist/chunk-UWA5MWCI.js.map +1 -0
- package/dist/{chunk-RYVV5UVI.cjs → chunk-V4GILQR6.cjs} +4 -4
- package/dist/{chunk-RYVV5UVI.cjs.map → chunk-V4GILQR6.cjs.map} +1 -1
- package/dist/{chunk-QMTWG6JL.cjs → chunk-V4RO5KYY.cjs} +6 -4
- package/dist/chunk-V4RO5KYY.cjs.map +1 -0
- package/dist/{chunk-VZ5LDNHK.cjs → chunk-VTSH4YPT.cjs} +12 -12
- package/dist/{chunk-VZ5LDNHK.cjs.map → chunk-VTSH4YPT.cjs.map} +1 -1
- package/dist/{chunk-UUBNQV2T.cjs → chunk-WQDIZH2Z.cjs} +12 -12
- package/dist/{chunk-UUBNQV2T.cjs.map → chunk-WQDIZH2Z.cjs.map} +1 -1
- package/dist/{chunk-SUIDD2C5.cjs → chunk-XNCOSVNG.cjs} +63 -6
- package/dist/chunk-XNCOSVNG.cjs.map +1 -0
- package/dist/{chunk-EGSUMHCS.cjs → chunk-YB4XJY5L.cjs} +12 -12
- package/dist/{chunk-EGSUMHCS.cjs.map → chunk-YB4XJY5L.cjs.map} +1 -1
- package/dist/{chunk-JHDR56XO.js → chunk-YS6CGUNH.js} +3 -3
- package/dist/{chunk-JHDR56XO.js.map → chunk-YS6CGUNH.js.map} +1 -1
- package/dist/{types-WTr9W5Ud.d.ts → diagnostics-B-ffSEhl.d.cts} +82 -2
- package/dist/{types-WTr9W5Ud.d.cts → diagnostics-B-ffSEhl.d.ts} +82 -2
- package/dist/diagrams/blockdiagram/index.cjs +5 -5
- package/dist/diagrams/blockdiagram/index.d.cts +1 -1
- package/dist/diagrams/blockdiagram/index.d.ts +1 -1
- package/dist/diagrams/blockdiagram/index.js +1 -1
- package/dist/diagrams/circuit/index.cjs +8 -8
- package/dist/diagrams/circuit/index.d.cts +1 -1
- package/dist/diagrams/circuit/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.js +2 -2
- package/dist/diagrams/ecomap/index.cjs +7 -7
- package/dist/diagrams/ecomap/index.d.cts +1 -1
- package/dist/diagrams/ecomap/index.d.ts +1 -1
- package/dist/diagrams/ecomap/index.js +2 -2
- package/dist/diagrams/entity/index.cjs +6 -6
- package/dist/diagrams/entity/index.d.cts +1 -1
- package/dist/diagrams/entity/index.d.ts +1 -1
- package/dist/diagrams/entity/index.js +2 -2
- package/dist/diagrams/fishbone/index.cjs +8 -8
- package/dist/diagrams/fishbone/index.d.cts +1 -1
- package/dist/diagrams/fishbone/index.d.ts +1 -1
- package/dist/diagrams/fishbone/index.js +2 -2
- package/dist/diagrams/flowchart/index.cjs +8 -8
- package/dist/diagrams/flowchart/index.d.cts +2 -2
- package/dist/diagrams/flowchart/index.d.ts +2 -2
- package/dist/diagrams/flowchart/index.js +2 -2
- package/dist/diagrams/genogram/index.cjs +9 -9
- package/dist/diagrams/genogram/index.d.cts +1 -1
- package/dist/diagrams/genogram/index.d.ts +1 -1
- package/dist/diagrams/genogram/index.js +2 -2
- package/dist/diagrams/ladder/index.cjs +6 -6
- package/dist/diagrams/ladder/index.d.cts +1 -1
- package/dist/diagrams/ladder/index.d.ts +1 -1
- package/dist/diagrams/ladder/index.js +2 -2
- package/dist/diagrams/logic/index.cjs +6 -6
- package/dist/diagrams/logic/index.d.cts +1 -1
- package/dist/diagrams/logic/index.d.ts +1 -1
- package/dist/diagrams/logic/index.js +2 -2
- package/dist/diagrams/orgchart/index.cjs +7 -7
- package/dist/diagrams/orgchart/index.d.cts +1 -1
- package/dist/diagrams/orgchart/index.d.ts +1 -1
- package/dist/diagrams/orgchart/index.js +2 -2
- package/dist/diagrams/pedigree/index.cjs +7 -7
- package/dist/diagrams/pedigree/index.d.cts +1 -1
- package/dist/diagrams/pedigree/index.d.ts +1 -1
- package/dist/diagrams/pedigree/index.js +2 -2
- package/dist/diagrams/phylo/index.cjs +7 -7
- package/dist/diagrams/phylo/index.d.cts +1 -1
- package/dist/diagrams/phylo/index.d.ts +1 -1
- package/dist/diagrams/phylo/index.js +2 -2
- package/dist/diagrams/sld/index.cjs +14 -6
- package/dist/diagrams/sld/index.d.cts +14 -2
- package/dist/diagrams/sld/index.d.ts +14 -2
- package/dist/diagrams/sld/index.js +2 -2
- package/dist/diagrams/sociogram/index.cjs +6 -6
- package/dist/diagrams/sociogram/index.d.cts +1 -1
- package/dist/diagrams/sociogram/index.d.ts +1 -1
- package/dist/diagrams/sociogram/index.js +2 -2
- package/dist/diagrams/timing/index.d.cts +1 -1
- package/dist/diagrams/timing/index.d.ts +1 -1
- package/dist/diagrams/venn/index.cjs +9 -9
- package/dist/diagrams/venn/index.d.cts +1 -1
- package/dist/diagrams/venn/index.d.ts +1 -1
- package/dist/diagrams/venn/index.js +2 -2
- package/dist/{index-BD2yDfQM.d.cts → index-DPWdYfNx.d.ts} +60 -2
- package/dist/{index-C30zQWZI.d.ts → index-S0njakQ2.d.cts} +60 -2
- package/dist/index.cjs +344 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -4
- package/dist/index.d.ts +38 -4
- package/dist/index.js +284 -17
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +18 -18
- package/dist/react.d.cts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +17 -17
- package/dist/{tools-DlpuE76u.d.cts → tools-CeGGMCs7.d.cts} +12 -4
- package/dist/{tools-BHWaJPOl.d.ts → tools-kK_enDwb.d.ts} +12 -4
- package/package.json +1 -1
- package/dist/chunk-2VNMKOUO.js.map +0 -1
- package/dist/chunk-3M6WB62Y.cjs.map +0 -1
- package/dist/chunk-4QPDZJAL.cjs.map +0 -1
- package/dist/chunk-6OSUNBZY.js.map +0 -1
- package/dist/chunk-D7EHZFK4.cjs.map +0 -1
- package/dist/chunk-EPKIJEH7.js.map +0 -1
- package/dist/chunk-HK56GQQP.cjs.map +0 -1
- package/dist/chunk-OK5ZS3LU.js.map +0 -1
- package/dist/chunk-QMTWG6JL.cjs.map +0 -1
- package/dist/chunk-QTNPMIO2.cjs.map +0 -1
- package/dist/chunk-SUIDD2C5.cjs.map +0 -1
- package/dist/chunk-TZTCIAYW.cjs.map +0 -1
- package/dist/chunk-UFTYX73U.js.map +0 -1
- package/dist/chunk-VCH7RI5H.js.map +0 -1
- package/dist/chunk-VJGMEGMR.js.map +0 -1
- package/dist/chunk-VKPCR7BG.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,134 +1,404 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
3
|
+
var chunk4XR7X7XW_cjs = require('./chunk-4XR7X7XW.cjs');
|
|
4
|
+
var chunkFKJBXGWP_cjs = require('./chunk-FKJBXGWP.cjs');
|
|
5
|
+
var chunkV4RO5KYY_cjs = require('./chunk-V4RO5KYY.cjs');
|
|
6
|
+
var chunkXNCOSVNG_cjs = require('./chunk-XNCOSVNG.cjs');
|
|
7
|
+
var chunk2L4YXZAZ_cjs = require('./chunk-2L4YXZAZ.cjs');
|
|
8
|
+
var chunkR6VX5YTJ_cjs = require('./chunk-R6VX5YTJ.cjs');
|
|
9
9
|
require('./chunk-SBB6C4OP.cjs');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
10
|
+
var chunkV4GILQR6_cjs = require('./chunk-V4GILQR6.cjs');
|
|
11
|
+
var chunkHWVBHU3O_cjs = require('./chunk-HWVBHU3O.cjs');
|
|
12
|
+
var chunkC5C5EF3W_cjs = require('./chunk-C5C5EF3W.cjs');
|
|
13
|
+
var chunk6JI6FWLZ_cjs = require('./chunk-6JI6FWLZ.cjs');
|
|
14
|
+
var chunkS3RMAXH5_cjs = require('./chunk-S3RMAXH5.cjs');
|
|
15
|
+
var chunkVTSH4YPT_cjs = require('./chunk-VTSH4YPT.cjs');
|
|
16
|
+
var chunkYB4XJY5L_cjs = require('./chunk-YB4XJY5L.cjs');
|
|
17
17
|
require('./chunk-3KRL2EGN.cjs');
|
|
18
|
-
var
|
|
19
|
-
var
|
|
18
|
+
var chunk4UFR2LB6_cjs = require('./chunk-4UFR2LB6.cjs');
|
|
19
|
+
var chunkWQDIZH2Z_cjs = require('./chunk-WQDIZH2Z.cjs');
|
|
20
20
|
require('./chunk-5UCXMYE7.cjs');
|
|
21
21
|
var chunkST5YRTTV_cjs = require('./chunk-ST5YRTTV.cjs');
|
|
22
|
-
var
|
|
23
|
-
var
|
|
22
|
+
var chunkR66QG3XT_cjs = require('./chunk-R66QG3XT.cjs');
|
|
23
|
+
var chunkL7POWM5B_cjs = require('./chunk-L7POWM5B.cjs');
|
|
24
24
|
require('./chunk-NAGUZFXX.cjs');
|
|
25
25
|
require('./chunk-3WNW5Y7P.cjs');
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
// src/symbols-catalog.ts
|
|
28
|
+
function humanize(id) {
|
|
29
|
+
return id.replace(/[_-]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
30
|
+
}
|
|
31
|
+
function svgDoc(viewBox, css, inner) {
|
|
32
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${viewBox}" class="lt-symbol"><style>${css}</style>${inner}</svg>`;
|
|
33
|
+
}
|
|
34
|
+
var CIRCUIT_CSS = ".schematex-circuit-body{stroke:#0f172a;stroke-width:1.75;fill:none;stroke-linejoin:round;stroke-linecap:round}.schematex-circuit-fill{stroke:#0f172a;stroke-width:1.5;fill:#0f172a}.schematex-circuit-wire{stroke:#0f172a;stroke-width:1.75;fill:none;stroke-linecap:square}";
|
|
35
|
+
function circuitCatalog() {
|
|
36
|
+
const merged = {
|
|
37
|
+
...chunkV4RO5KYY_cjs.SYMBOLS,
|
|
38
|
+
...chunkV4RO5KYY_cjs.EXTRA_SYMBOLS
|
|
39
|
+
};
|
|
40
|
+
const out = [];
|
|
41
|
+
for (const [id, def] of Object.entries(merged)) {
|
|
42
|
+
if (!def) continue;
|
|
43
|
+
const L = def.length || 40;
|
|
44
|
+
const inner = def.svg();
|
|
45
|
+
out.push({ id, label: humanize(id), svg: svgDoc(`-10 -24 ${L + 20} 48`, CIRCUIT_CSS, inner) });
|
|
46
|
+
}
|
|
47
|
+
return out.sort((a, b) => a.label.localeCompare(b.label));
|
|
48
|
+
}
|
|
49
|
+
var SLD_CSS = ".lt-sld-stroke{stroke:#0f172a;stroke-width:1.8;fill:none}.lt-sld-stroke-thick{stroke:#0f172a;stroke-width:2.4;fill:none;stroke-linecap:round}.lt-sld-fill{fill:#ffffff;stroke:#0f172a;stroke-width:2}.lt-sld-fill-dark{fill:#0f172a;stroke:#0f172a;stroke-width:1}.lt-sld-dot{fill:#0f172a;stroke:none}.lt-sld-wire{stroke:#0f172a;stroke-width:2;fill:none}.lt-sld-bus{stroke:#0f172a;stroke-width:6;stroke-linecap:square}.lt-sld-symbol-text{font:11px sans-serif;fill:#0f172a;dominant-baseline:middle}.lt-sld-wdg{font:bold 10px sans-serif;fill:#0f172a;dominant-baseline:middle}";
|
|
50
|
+
var SLD_TYPES = [
|
|
51
|
+
"utility",
|
|
52
|
+
"generator",
|
|
53
|
+
"solar",
|
|
54
|
+
"wind",
|
|
55
|
+
"ups",
|
|
56
|
+
"transformer",
|
|
57
|
+
"transformer_dy",
|
|
58
|
+
"transformer_yd",
|
|
59
|
+
"transformer_yy",
|
|
60
|
+
"transformer_dd",
|
|
61
|
+
"autotransformer",
|
|
62
|
+
"transformer_3winding",
|
|
63
|
+
"breaker",
|
|
64
|
+
"breaker_vacuum",
|
|
65
|
+
"recloser",
|
|
66
|
+
"switch",
|
|
67
|
+
"switch_load",
|
|
68
|
+
"ground_switch",
|
|
69
|
+
"sectionalizer",
|
|
70
|
+
"fuse",
|
|
71
|
+
"fuse_cl",
|
|
72
|
+
"motor",
|
|
73
|
+
"load",
|
|
74
|
+
"capacitor_bank",
|
|
75
|
+
"harmonic_filter",
|
|
76
|
+
"vfd",
|
|
77
|
+
"ats",
|
|
78
|
+
"ct",
|
|
79
|
+
"pt",
|
|
80
|
+
"relay",
|
|
81
|
+
"surge_arrester",
|
|
82
|
+
"watthour_meter",
|
|
83
|
+
"demand_meter",
|
|
84
|
+
"ground_fault",
|
|
85
|
+
"bus",
|
|
86
|
+
"bus_tie",
|
|
87
|
+
"hub"
|
|
88
|
+
];
|
|
89
|
+
function sldCatalog() {
|
|
90
|
+
const out = [];
|
|
91
|
+
for (const type of SLD_TYPES) {
|
|
92
|
+
let inner;
|
|
93
|
+
try {
|
|
94
|
+
inner = chunkR6VX5YTJ_cjs.renderSymbol(type);
|
|
95
|
+
} catch {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const g = chunkR6VX5YTJ_cjs.geometryFor(type);
|
|
99
|
+
const w = Math.max(g.halfWidth, 18) + 12;
|
|
100
|
+
const top = Math.min(g.topY, -22) - 8;
|
|
101
|
+
const bot = Math.max(g.bottomY, 22) + 8;
|
|
102
|
+
out.push({
|
|
103
|
+
id: type,
|
|
104
|
+
label: humanize(type),
|
|
105
|
+
svg: svgDoc(`${-w} ${top} ${2 * w} ${bot - top}`, SLD_CSS, inner)
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return out.sort((a, b) => a.label.localeCompare(b.label));
|
|
109
|
+
}
|
|
110
|
+
var PID_CSS = ".lt-pid-equip{fill:#ffffff;stroke:#1d1d1d;stroke-width:1.6}.lt-pid-equip-tag{font:600 11px system-ui,sans-serif;fill:#1d1d1d}.lt-pid-process{stroke:#1d1d1d;stroke-width:2.6;fill:none}.lt-pid-process-min{stroke:#1d1d1d;stroke-width:1.5;fill:none}";
|
|
111
|
+
function pidCatalog() {
|
|
112
|
+
const out = [];
|
|
113
|
+
const pad = 12;
|
|
114
|
+
for (const [id, g] of Object.entries(chunk4XR7X7XW_cjs.GEOMETRY)) {
|
|
115
|
+
let inner;
|
|
116
|
+
try {
|
|
117
|
+
inner = chunk4XR7X7XW_cjs.renderEquip(id, "");
|
|
118
|
+
} catch {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
out.push({
|
|
122
|
+
id,
|
|
123
|
+
label: humanize(id),
|
|
124
|
+
svg: svgDoc(
|
|
125
|
+
`${-g.width / 2 - pad} ${-g.height / 2 - pad} ${g.width + 2 * pad} ${g.height + 2 * pad}`,
|
|
126
|
+
PID_CSS,
|
|
127
|
+
inner
|
|
128
|
+
)
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return out.sort((a, b) => a.label.localeCompare(b.label));
|
|
132
|
+
}
|
|
133
|
+
var FC_ICON_CSS = ".sx-fc-icon{stroke:#0f172a;fill:none}.sx-fc-icon-fill{fill:#0f172a}";
|
|
134
|
+
function flowchartIconCatalog() {
|
|
135
|
+
return chunk6JI6FWLZ_cjs.iconNames().map((name) => ({
|
|
136
|
+
id: name,
|
|
137
|
+
label: humanize(name),
|
|
138
|
+
svg: svgDoc("-13 -13 26 26", FC_ICON_CSS, chunk6JI6FWLZ_cjs.renderIcon(name))
|
|
139
|
+
})).sort((a, b) => a.label.localeCompare(b.label));
|
|
140
|
+
}
|
|
141
|
+
var LOGIC_CSS = ".schematex-logic-gate-body{fill:none;stroke:#0f172a;stroke-width:1.75;stroke-linejoin:round}.schematex-logic-bubble{fill:#ffffff;stroke:#0f172a;stroke-width:1.5}.schematex-logic-wire{stroke:#0f172a;stroke-width:1.5;fill:none;stroke-linecap:square}.schematex-logic-gate-iec-label{font:bold 13px sans-serif;fill:#0f172a}";
|
|
142
|
+
var LOGIC_TYPES = [
|
|
143
|
+
"AND",
|
|
144
|
+
"OR",
|
|
145
|
+
"NOT",
|
|
146
|
+
"NAND",
|
|
147
|
+
"NOR",
|
|
148
|
+
"XOR",
|
|
149
|
+
"XNOR",
|
|
150
|
+
"BUF",
|
|
151
|
+
"TRISTATE_BUF",
|
|
152
|
+
"OPEN_DRAIN",
|
|
153
|
+
"SCHMITT",
|
|
154
|
+
"DFF",
|
|
155
|
+
"JKFF",
|
|
156
|
+
"SRFF",
|
|
157
|
+
"TFF",
|
|
158
|
+
"LATCH_D",
|
|
159
|
+
"LATCH_SR",
|
|
160
|
+
"MUX",
|
|
161
|
+
"DEMUX",
|
|
162
|
+
"DECODER",
|
|
163
|
+
"ENCODER",
|
|
164
|
+
"COUNTER",
|
|
165
|
+
"SHIFT_REG"
|
|
166
|
+
];
|
|
167
|
+
var SINGLE_INPUT = /* @__PURE__ */ new Set(["NOT", "BUF", "SCHMITT", "TRISTATE_BUF", "TRISTATE_INV", "OPEN_DRAIN", "DFF", "TFF"]);
|
|
168
|
+
function logicCatalog() {
|
|
169
|
+
const out = [];
|
|
170
|
+
for (const type of LOGIC_TYPES) {
|
|
171
|
+
let g;
|
|
172
|
+
try {
|
|
173
|
+
g = chunkR66QG3XT_cjs.getGateGeometry(type, SINGLE_INPUT.has(type) ? 1 : 2);
|
|
174
|
+
} catch {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
const parts = [`<path d="${g.ansiPath}" class="schematex-logic-gate-body"/>`];
|
|
178
|
+
for (const p of g.inputPins) parts.push(`<line x1="${p.x - 10}" y1="${p.y}" x2="${p.x}" y2="${p.y}" class="schematex-logic-wire"/>`);
|
|
179
|
+
for (const p of g.outputPins) {
|
|
180
|
+
const bub = p.bubble || g.outputBubble;
|
|
181
|
+
const ox = bub ? p.x + 6 : p.x;
|
|
182
|
+
if (bub) parts.push(`<circle cx="${p.x + 3}" cy="${p.y}" r="3" class="schematex-logic-bubble"/>`);
|
|
183
|
+
parts.push(`<line x1="${ox}" y1="${p.y}" x2="${ox + 10}" y2="${p.y}" class="schematex-logic-wire"/>`);
|
|
184
|
+
}
|
|
185
|
+
out.push({
|
|
186
|
+
id: type,
|
|
187
|
+
label: humanize(type),
|
|
188
|
+
svg: svgDoc(`-14 -6 ${g.width + 28} ${g.height + 12}`, LOGIC_CSS, parts.join(""))
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return out.sort((a, b) => a.label.localeCompare(b.label));
|
|
192
|
+
}
|
|
193
|
+
var NETWORK_CSS = ".sx-net-body{fill:#ffffff;stroke:#0f172a;stroke-width:2}.sx-net-detail{fill:none;stroke:#0f172a;stroke-width:1}.sx-net-glyph{fill:#2563eb;stroke:none}.sx-net-glyph-line{fill:none;stroke:#2563eb;stroke-width:1.4}.sx-net-icontext{font:700 8px sans-serif;fill:#2563eb}.sx-net-cloud-body{fill:#f1f5f9;stroke:#0f172a;stroke-width:2}.sx-net-cloudtext{font:600 13px sans-serif;fill:#0f172a}.sx-net-bus{stroke:#0f172a;stroke-width:4;stroke-linecap:round}";
|
|
194
|
+
var NETWORK_KINDS = [
|
|
195
|
+
"router",
|
|
196
|
+
"switch",
|
|
197
|
+
"l3switch",
|
|
198
|
+
"poeswitch",
|
|
199
|
+
"firewall",
|
|
200
|
+
"loadbalancer",
|
|
201
|
+
"ap",
|
|
202
|
+
"wlc",
|
|
203
|
+
"gateway",
|
|
204
|
+
"modem",
|
|
205
|
+
"ids",
|
|
206
|
+
"proxy",
|
|
207
|
+
"vpngw",
|
|
208
|
+
"server",
|
|
209
|
+
"serverfarm",
|
|
210
|
+
"pc",
|
|
211
|
+
"laptop",
|
|
212
|
+
"mobile",
|
|
213
|
+
"ipphone",
|
|
214
|
+
"printer",
|
|
215
|
+
"storage",
|
|
216
|
+
"camera",
|
|
217
|
+
"nvr",
|
|
218
|
+
"dvr",
|
|
219
|
+
"encoder",
|
|
220
|
+
"monitor",
|
|
221
|
+
"internet",
|
|
222
|
+
"cloud"
|
|
223
|
+
];
|
|
224
|
+
function networkCatalog() {
|
|
225
|
+
const out = [];
|
|
226
|
+
for (const kind of NETWORK_KINDS) {
|
|
227
|
+
const { w, h } = chunk4XR7X7XW_cjs.iconSize(kind);
|
|
228
|
+
const device = { id: kind, kind, label: humanize(kind), groups: [] };
|
|
229
|
+
let inner;
|
|
230
|
+
try {
|
|
231
|
+
inner = chunk4XR7X7XW_cjs.drawDeviceIcon(device, { x: 0, y: 0, w, h });
|
|
232
|
+
} catch {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
out.push({
|
|
236
|
+
id: kind,
|
|
237
|
+
label: humanize(kind),
|
|
238
|
+
svg: svgDoc(`-6 -6 ${w + 12} ${h + 12}`, NETWORK_CSS, inner)
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
return out.sort((a, b) => a.label.localeCompare(b.label));
|
|
242
|
+
}
|
|
243
|
+
var CATALOGS = {
|
|
244
|
+
circuit: () => ({
|
|
245
|
+
type: "circuit",
|
|
246
|
+
label: "Circuit components",
|
|
247
|
+
note: "IEEE 315 / ANSI Y32.2 schematic symbols the netlist/positional engine draws.",
|
|
248
|
+
entries: circuitCatalog()
|
|
249
|
+
}),
|
|
250
|
+
sld: () => ({
|
|
251
|
+
type: "sld",
|
|
252
|
+
label: "Single-line apparatus",
|
|
253
|
+
note: "IEEE 315 power-apparatus symbols \u2014 sources, transformers, switching, protection, loads.",
|
|
254
|
+
entries: sldCatalog()
|
|
255
|
+
}),
|
|
256
|
+
pid: () => ({
|
|
257
|
+
type: "pid",
|
|
258
|
+
label: "P&ID equipment",
|
|
259
|
+
note: "ANSI/ISA-5.1 process equipment \u2014 tanks, columns, exchangers, pumps, and more.",
|
|
260
|
+
entries: pidCatalog()
|
|
261
|
+
}),
|
|
262
|
+
logic: () => ({
|
|
263
|
+
type: "logic",
|
|
264
|
+
label: "Logic gates",
|
|
265
|
+
note: "IEEE 91 ANSI gate bodies \u2014 combinational gates, flip-flops, latches, MUX/decoder, counters.",
|
|
266
|
+
entries: logicCatalog()
|
|
267
|
+
}),
|
|
268
|
+
network: () => ({
|
|
269
|
+
type: "network",
|
|
270
|
+
label: "Network devices",
|
|
271
|
+
note: "Cisco-convention topology icons \u2014 routers, switches, firewalls, servers, cameras, clouds.",
|
|
272
|
+
entries: networkCatalog()
|
|
273
|
+
}),
|
|
274
|
+
flowchart: () => ({
|
|
275
|
+
type: "flowchart",
|
|
276
|
+
label: "Node icons",
|
|
277
|
+
note: "Inline node icons (servers, databases, cloud, gear\u2026) usable on any flowchart node.",
|
|
278
|
+
entries: flowchartIconCatalog()
|
|
279
|
+
})
|
|
280
|
+
};
|
|
281
|
+
var SYMBOL_CATALOG_TYPES = Object.keys(CATALOGS);
|
|
282
|
+
function getSymbolCatalog(type) {
|
|
283
|
+
const factory = CATALOGS[type];
|
|
284
|
+
return factory ? factory() : null;
|
|
285
|
+
}
|
|
28
286
|
|
|
29
287
|
Object.defineProperty(exports, "decisiontree", {
|
|
30
288
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
289
|
+
get: function () { return chunk4XR7X7XW_cjs.decisiontree; }
|
|
290
|
+
});
|
|
291
|
+
Object.defineProperty(exports, "network", {
|
|
292
|
+
enumerable: true,
|
|
293
|
+
get: function () { return chunk4XR7X7XW_cjs.network; }
|
|
32
294
|
});
|
|
33
295
|
Object.defineProperty(exports, "parse", {
|
|
34
296
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
297
|
+
get: function () { return chunk4XR7X7XW_cjs.parse; }
|
|
36
298
|
});
|
|
37
299
|
Object.defineProperty(exports, "parseResult", {
|
|
38
300
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
301
|
+
get: function () { return chunk4XR7X7XW_cjs.parseResult; }
|
|
40
302
|
});
|
|
41
303
|
Object.defineProperty(exports, "pert", {
|
|
42
304
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
305
|
+
get: function () { return chunk4XR7X7XW_cjs.pert; }
|
|
306
|
+
});
|
|
307
|
+
Object.defineProperty(exports, "petri", {
|
|
308
|
+
enumerable: true,
|
|
309
|
+
get: function () { return chunk4XR7X7XW_cjs.petri; }
|
|
44
310
|
});
|
|
45
311
|
Object.defineProperty(exports, "pid", {
|
|
46
312
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
313
|
+
get: function () { return chunk4XR7X7XW_cjs.pid; }
|
|
48
314
|
});
|
|
49
315
|
Object.defineProperty(exports, "prisma", {
|
|
50
316
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
317
|
+
get: function () { return chunk4XR7X7XW_cjs.prisma; }
|
|
52
318
|
});
|
|
53
319
|
Object.defineProperty(exports, "render", {
|
|
54
320
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
321
|
+
get: function () { return chunk4XR7X7XW_cjs.render; }
|
|
56
322
|
});
|
|
57
323
|
Object.defineProperty(exports, "renderPreview", {
|
|
58
324
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
325
|
+
get: function () { return chunk4XR7X7XW_cjs.renderPreview; }
|
|
60
326
|
});
|
|
61
327
|
Object.defineProperty(exports, "renderResult", {
|
|
62
328
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
329
|
+
get: function () { return chunk4XR7X7XW_cjs.renderResult; }
|
|
330
|
+
});
|
|
331
|
+
Object.defineProperty(exports, "sequence", {
|
|
332
|
+
enumerable: true,
|
|
333
|
+
get: function () { return chunk4XR7X7XW_cjs.sequence; }
|
|
64
334
|
});
|
|
65
335
|
Object.defineProperty(exports, "state", {
|
|
66
336
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
337
|
+
get: function () { return chunk4XR7X7XW_cjs.state; }
|
|
68
338
|
});
|
|
69
339
|
Object.defineProperty(exports, "timeline", {
|
|
70
340
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
341
|
+
get: function () { return chunk4XR7X7XW_cjs.timeline; }
|
|
72
342
|
});
|
|
73
343
|
Object.defineProperty(exports, "usecase", {
|
|
74
344
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
345
|
+
get: function () { return chunk4XR7X7XW_cjs.usecase; }
|
|
76
346
|
});
|
|
77
347
|
Object.defineProperty(exports, "orgchart", {
|
|
78
348
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
349
|
+
get: function () { return chunkFKJBXGWP_cjs.orgchart; }
|
|
80
350
|
});
|
|
81
351
|
Object.defineProperty(exports, "circuit", {
|
|
82
352
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
353
|
+
get: function () { return chunkV4RO5KYY_cjs.circuit; }
|
|
84
354
|
});
|
|
85
355
|
Object.defineProperty(exports, "blockdiagram", {
|
|
86
356
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
357
|
+
get: function () { return chunkXNCOSVNG_cjs.blockdiagram; }
|
|
88
358
|
});
|
|
89
359
|
Object.defineProperty(exports, "ladder", {
|
|
90
360
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
361
|
+
get: function () { return chunk2L4YXZAZ_cjs.ladder; }
|
|
92
362
|
});
|
|
93
363
|
Object.defineProperty(exports, "sld", {
|
|
94
364
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
365
|
+
get: function () { return chunkR6VX5YTJ_cjs.sld; }
|
|
96
366
|
});
|
|
97
367
|
Object.defineProperty(exports, "entity", {
|
|
98
368
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
369
|
+
get: function () { return chunkV4GILQR6_cjs.entity; }
|
|
100
370
|
});
|
|
101
371
|
Object.defineProperty(exports, "fishbone", {
|
|
102
372
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
373
|
+
get: function () { return chunkHWVBHU3O_cjs.fishbone; }
|
|
104
374
|
});
|
|
105
375
|
Object.defineProperty(exports, "venn", {
|
|
106
376
|
enumerable: true,
|
|
107
|
-
get: function () { return
|
|
377
|
+
get: function () { return chunkC5C5EF3W_cjs.venn; }
|
|
108
378
|
});
|
|
109
379
|
Object.defineProperty(exports, "flowchart", {
|
|
110
380
|
enumerable: true,
|
|
111
|
-
get: function () { return
|
|
381
|
+
get: function () { return chunk6JI6FWLZ_cjs.flowchart; }
|
|
112
382
|
});
|
|
113
383
|
Object.defineProperty(exports, "genogram", {
|
|
114
384
|
enumerable: true,
|
|
115
|
-
get: function () { return
|
|
385
|
+
get: function () { return chunkS3RMAXH5_cjs.genogram; }
|
|
116
386
|
});
|
|
117
387
|
Object.defineProperty(exports, "ecomap", {
|
|
118
388
|
enumerable: true,
|
|
119
|
-
get: function () { return
|
|
389
|
+
get: function () { return chunkVTSH4YPT_cjs.ecomap; }
|
|
120
390
|
});
|
|
121
391
|
Object.defineProperty(exports, "pedigree", {
|
|
122
392
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
393
|
+
get: function () { return chunkYB4XJY5L_cjs.pedigree; }
|
|
124
394
|
});
|
|
125
395
|
Object.defineProperty(exports, "phylo", {
|
|
126
396
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
397
|
+
get: function () { return chunk4UFR2LB6_cjs.phylo; }
|
|
128
398
|
});
|
|
129
399
|
Object.defineProperty(exports, "sociogram", {
|
|
130
400
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
401
|
+
get: function () { return chunkWQDIZH2Z_cjs.sociogram; }
|
|
132
402
|
});
|
|
133
403
|
Object.defineProperty(exports, "timing", {
|
|
134
404
|
enumerable: true,
|
|
@@ -136,51 +406,69 @@ Object.defineProperty(exports, "timing", {
|
|
|
136
406
|
});
|
|
137
407
|
Object.defineProperty(exports, "logic", {
|
|
138
408
|
enumerable: true,
|
|
139
|
-
get: function () { return
|
|
409
|
+
get: function () { return chunkR66QG3XT_cjs.logic; }
|
|
140
410
|
});
|
|
141
411
|
Object.defineProperty(exports, "BASE_THEMES", {
|
|
142
412
|
enumerable: true,
|
|
143
|
-
get: function () { return
|
|
413
|
+
get: function () { return chunkL7POWM5B_cjs.BASE_THEMES; }
|
|
144
414
|
});
|
|
145
415
|
Object.defineProperty(exports, "BIOLOGY_TOKENS", {
|
|
146
416
|
enumerable: true,
|
|
147
|
-
get: function () { return
|
|
417
|
+
get: function () { return chunkL7POWM5B_cjs.BIOLOGY_TOKENS; }
|
|
418
|
+
});
|
|
419
|
+
Object.defineProperty(exports, "NETWORK_TOKENS", {
|
|
420
|
+
enumerable: true,
|
|
421
|
+
get: function () { return chunkL7POWM5B_cjs.NETWORK_TOKENS; }
|
|
148
422
|
});
|
|
149
423
|
Object.defineProperty(exports, "PERSON_TOKENS", {
|
|
150
424
|
enumerable: true,
|
|
151
|
-
get: function () { return
|
|
425
|
+
get: function () { return chunkL7POWM5B_cjs.PERSON_TOKENS; }
|
|
426
|
+
});
|
|
427
|
+
Object.defineProperty(exports, "PETRI_TOKENS", {
|
|
428
|
+
enumerable: true,
|
|
429
|
+
get: function () { return chunkL7POWM5B_cjs.PETRI_TOKENS; }
|
|
152
430
|
});
|
|
153
431
|
Object.defineProperty(exports, "VENN_TOKENS", {
|
|
154
432
|
enumerable: true,
|
|
155
|
-
get: function () { return
|
|
433
|
+
get: function () { return chunkL7POWM5B_cjs.VENN_TOKENS; }
|
|
156
434
|
});
|
|
157
435
|
Object.defineProperty(exports, "resolveBaseTheme", {
|
|
158
436
|
enumerable: true,
|
|
159
|
-
get: function () { return
|
|
437
|
+
get: function () { return chunkL7POWM5B_cjs.resolveBaseTheme; }
|
|
160
438
|
});
|
|
161
439
|
Object.defineProperty(exports, "resolveBiologyTheme", {
|
|
162
440
|
enumerable: true,
|
|
163
|
-
get: function () { return
|
|
441
|
+
get: function () { return chunkL7POWM5B_cjs.resolveBiologyTheme; }
|
|
164
442
|
});
|
|
165
443
|
Object.defineProperty(exports, "resolveFishboneTheme", {
|
|
166
444
|
enumerable: true,
|
|
167
|
-
get: function () { return
|
|
445
|
+
get: function () { return chunkL7POWM5B_cjs.resolveFishboneTheme; }
|
|
168
446
|
});
|
|
169
447
|
Object.defineProperty(exports, "resolveGenogramTheme", {
|
|
170
448
|
enumerable: true,
|
|
171
|
-
get: function () { return
|
|
449
|
+
get: function () { return chunkL7POWM5B_cjs.resolveGenogramTheme; }
|
|
450
|
+
});
|
|
451
|
+
Object.defineProperty(exports, "resolveNetworkTheme", {
|
|
452
|
+
enumerable: true,
|
|
453
|
+
get: function () { return chunkL7POWM5B_cjs.resolveNetworkTheme; }
|
|
172
454
|
});
|
|
173
455
|
Object.defineProperty(exports, "resolvePersonTheme", {
|
|
174
456
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
457
|
+
get: function () { return chunkL7POWM5B_cjs.resolvePersonTheme; }
|
|
458
|
+
});
|
|
459
|
+
Object.defineProperty(exports, "resolvePetriTheme", {
|
|
460
|
+
enumerable: true,
|
|
461
|
+
get: function () { return chunkL7POWM5B_cjs.resolvePetriTheme; }
|
|
176
462
|
});
|
|
177
463
|
Object.defineProperty(exports, "resolveTimelineTheme", {
|
|
178
464
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
465
|
+
get: function () { return chunkL7POWM5B_cjs.resolveTimelineTheme; }
|
|
180
466
|
});
|
|
181
467
|
Object.defineProperty(exports, "resolveVennTheme", {
|
|
182
468
|
enumerable: true,
|
|
183
|
-
get: function () { return
|
|
469
|
+
get: function () { return chunkL7POWM5B_cjs.resolveVennTheme; }
|
|
184
470
|
});
|
|
471
|
+
exports.SYMBOL_CATALOG_TYPES = SYMBOL_CATALOG_TYPES;
|
|
472
|
+
exports.getSymbolCatalog = getSymbolCatalog;
|
|
185
473
|
//# sourceMappingURL=index.cjs.map
|
|
186
474
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
|
1
|
+
{"version":3,"sources":["../src/symbols-catalog.ts"],"names":["SYMBOLS","EXTRA_SYMBOLS","renderSymbol","geometryFor","GEOMETRY","renderEquip","iconNames","renderIcon","getGateGeometry","iconSize","drawDeviceIcon"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Domain symbol catalogs — the real symbols an engine uses *inside* a diagram\n * (circuit components, SLD apparatus, P&ID equipment, flowchart node icons),\n * each rendered standalone for the /icons showcase. This is distinct from the\n * per-type representative glyph (assets/icons/*.svg).\n *\n * Each entry's `svg` is a complete, self-styled <svg> so consumers can drop it\n * straight into the page.\n */\nimport type { DiagramType, SLDNodeType, LogicGateType } from \"./core/types\";\nimport { SYMBOLS, EXTRA_SYMBOLS } from \"./diagrams/circuit/symbols\";\nimport { renderSymbol as sldRenderSymbol, geometryFor } from \"./diagrams/sld/symbols\";\nimport { renderEquip, GEOMETRY as PID_GEOMETRY } from \"./diagrams/pid/symbols\";\nimport { iconNames, renderIcon } from \"./diagrams/flowchart/icons\";\nimport { getGateGeometry } from \"./diagrams/logic/symbols\";\nimport { drawDeviceIcon, iconSize } from \"./diagrams/network/symbols\";\n\nexport interface SymbolCatalogEntry {\n id: string;\n label: string;\n svg: string;\n}\n\nexport interface SymbolCatalog {\n type: DiagramType;\n /** Human label for the catalog section, e.g. \"Circuit components\". */\n label: string;\n /** Short description of what the symbols are. */\n note: string;\n entries: SymbolCatalogEntry[];\n}\n\nfunction humanize(id: string): string {\n return id\n .replace(/[_-]+/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n}\n\nfunction svgDoc(viewBox: string, css: string, inner: string): string {\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" class=\"lt-symbol\">` +\n `<style>${css}</style>${inner}</svg>`;\n}\n\n// ── Circuit (IEEE 315) ─────────────────────────────────────────────\nconst CIRCUIT_CSS =\n \".schematex-circuit-body{stroke:#0f172a;stroke-width:1.75;fill:none;stroke-linejoin:round;stroke-linecap:round}\" +\n \".schematex-circuit-fill{stroke:#0f172a;stroke-width:1.5;fill:#0f172a}\" +\n \".schematex-circuit-wire{stroke:#0f172a;stroke-width:1.75;fill:none;stroke-linecap:square}\";\n\nfunction circuitCatalog(): SymbolCatalogEntry[] {\n const merged: Record<string, { length: number; svg: () => string }> = {\n ...(SYMBOLS as Record<string, { length: number; svg: () => string }>),\n ...(EXTRA_SYMBOLS as Record<string, { length: number; svg: () => string }>),\n };\n const out: SymbolCatalogEntry[] = [];\n for (const [id, def] of Object.entries(merged)) {\n if (!def) continue;\n const L = def.length || 40;\n const inner = def.svg();\n out.push({ id, label: humanize(id), svg: svgDoc(`-10 -24 ${L + 20} 48`, CIRCUIT_CSS, inner) });\n }\n return out.sort((a, b) => a.label.localeCompare(b.label));\n}\n\n// ── SLD (IEEE 315 / IEC 60617) ─────────────────────────────────────\nconst SLD_CSS =\n \".lt-sld-stroke{stroke:#0f172a;stroke-width:1.8;fill:none}\" +\n \".lt-sld-stroke-thick{stroke:#0f172a;stroke-width:2.4;fill:none;stroke-linecap:round}\" +\n \".lt-sld-fill{fill:#ffffff;stroke:#0f172a;stroke-width:2}\" +\n \".lt-sld-fill-dark{fill:#0f172a;stroke:#0f172a;stroke-width:1}\" +\n \".lt-sld-dot{fill:#0f172a;stroke:none}\" +\n \".lt-sld-wire{stroke:#0f172a;stroke-width:2;fill:none}\" +\n \".lt-sld-bus{stroke:#0f172a;stroke-width:6;stroke-linecap:square}\" +\n \".lt-sld-symbol-text{font:11px sans-serif;fill:#0f172a;dominant-baseline:middle}\" +\n \".lt-sld-wdg{font:bold 10px sans-serif;fill:#0f172a;dominant-baseline:middle}\";\n\nconst SLD_TYPES: SLDNodeType[] = [\n \"utility\", \"generator\", \"solar\", \"wind\", \"ups\", \"transformer\", \"transformer_dy\",\n \"transformer_yd\", \"transformer_yy\", \"transformer_dd\", \"autotransformer\",\n \"transformer_3winding\", \"breaker\", \"breaker_vacuum\", \"recloser\", \"switch\",\n \"switch_load\", \"ground_switch\", \"sectionalizer\", \"fuse\", \"fuse_cl\", \"motor\",\n \"load\", \"capacitor_bank\", \"harmonic_filter\", \"vfd\", \"ats\", \"ct\", \"pt\", \"relay\",\n \"surge_arrester\", \"watthour_meter\", \"demand_meter\", \"ground_fault\", \"bus\",\n \"bus_tie\", \"hub\",\n];\n\nfunction sldCatalog(): SymbolCatalogEntry[] {\n const out: SymbolCatalogEntry[] = [];\n for (const type of SLD_TYPES) {\n let inner: string;\n try {\n inner = sldRenderSymbol(type);\n } catch {\n continue;\n }\n const g = geometryFor(type);\n const w = Math.max(g.halfWidth, 18) + 12;\n const top = Math.min(g.topY, -22) - 8;\n const bot = Math.max(g.bottomY, 22) + 8;\n out.push({\n id: type,\n label: humanize(type),\n svg: svgDoc(`${-w} ${top} ${2 * w} ${bot - top}`, SLD_CSS, inner),\n });\n }\n return out.sort((a, b) => a.label.localeCompare(b.label));\n}\n\n// ── P&ID (ISA-5.1) equipment ───────────────────────────────────────\nconst PID_CSS =\n \".lt-pid-equip{fill:#ffffff;stroke:#1d1d1d;stroke-width:1.6}\" +\n \".lt-pid-equip-tag{font:600 11px system-ui,sans-serif;fill:#1d1d1d}\" +\n \".lt-pid-process{stroke:#1d1d1d;stroke-width:2.6;fill:none}\" +\n \".lt-pid-process-min{stroke:#1d1d1d;stroke-width:1.5;fill:none}\";\n\nfunction pidCatalog(): SymbolCatalogEntry[] {\n const out: SymbolCatalogEntry[] = [];\n const pad = 12;\n for (const [id, g] of Object.entries(PID_GEOMETRY)) {\n let inner: string;\n try {\n inner = renderEquip(id as Parameters<typeof renderEquip>[0], \"\");\n } catch {\n continue;\n }\n out.push({\n id,\n label: humanize(id),\n svg: svgDoc(\n `${-g.width / 2 - pad} ${-g.height / 2 - pad} ${g.width + 2 * pad} ${g.height + 2 * pad}`,\n PID_CSS,\n inner,\n ),\n });\n }\n return out.sort((a, b) => a.label.localeCompare(b.label));\n}\n\n// ── Flowchart node icons ───────────────────────────────────────────\nconst FC_ICON_CSS =\n \".sx-fc-icon{stroke:#0f172a;fill:none}.sx-fc-icon-fill{fill:#0f172a}\";\n\nfunction flowchartIconCatalog(): SymbolCatalogEntry[] {\n return iconNames()\n .map((name) => ({\n id: name,\n label: humanize(name),\n svg: svgDoc(\"-13 -13 26 26\", FC_ICON_CSS, renderIcon(name)),\n }))\n .sort((a, b) => a.label.localeCompare(b.label));\n}\n\n// ── Logic gates (IEEE 91) ──────────────────────────────────────────\nconst LOGIC_CSS =\n \".schematex-logic-gate-body{fill:none;stroke:#0f172a;stroke-width:1.75;stroke-linejoin:round}\" +\n \".schematex-logic-bubble{fill:#ffffff;stroke:#0f172a;stroke-width:1.5}\" +\n \".schematex-logic-wire{stroke:#0f172a;stroke-width:1.5;fill:none;stroke-linecap:square}\" +\n \".schematex-logic-gate-iec-label{font:bold 13px sans-serif;fill:#0f172a}\";\n\nconst LOGIC_TYPES: LogicGateType[] = [\n \"AND\", \"OR\", \"NOT\", \"NAND\", \"NOR\", \"XOR\", \"XNOR\", \"BUF\", \"TRISTATE_BUF\",\n \"OPEN_DRAIN\", \"SCHMITT\", \"DFF\", \"JKFF\", \"SRFF\", \"TFF\", \"LATCH_D\", \"LATCH_SR\",\n \"MUX\", \"DEMUX\", \"DECODER\", \"ENCODER\", \"COUNTER\", \"SHIFT_REG\",\n];\nconst SINGLE_INPUT = new Set<LogicGateType>([\"NOT\", \"BUF\", \"SCHMITT\", \"TRISTATE_BUF\", \"TRISTATE_INV\", \"OPEN_DRAIN\", \"DFF\", \"TFF\"]);\n\nfunction logicCatalog(): SymbolCatalogEntry[] {\n const out: SymbolCatalogEntry[] = [];\n for (const type of LOGIC_TYPES) {\n let g;\n try {\n g = getGateGeometry(type, SINGLE_INPUT.has(type) ? 1 : 2);\n } catch {\n continue;\n }\n const parts = [`<path d=\"${g.ansiPath}\" class=\"schematex-logic-gate-body\"/>`];\n for (const p of g.inputPins) parts.push(`<line x1=\"${p.x - 10}\" y1=\"${p.y}\" x2=\"${p.x}\" y2=\"${p.y}\" class=\"schematex-logic-wire\"/>`);\n for (const p of g.outputPins) {\n const bub = p.bubble || g.outputBubble;\n const ox = bub ? p.x + 6 : p.x;\n if (bub) parts.push(`<circle cx=\"${p.x + 3}\" cy=\"${p.y}\" r=\"3\" class=\"schematex-logic-bubble\"/>`);\n parts.push(`<line x1=\"${ox}\" y1=\"${p.y}\" x2=\"${ox + 10}\" y2=\"${p.y}\" class=\"schematex-logic-wire\"/>`);\n }\n out.push({\n id: type,\n label: humanize(type),\n svg: svgDoc(`-14 -6 ${g.width + 28} ${g.height + 12}`, LOGIC_CSS, parts.join(\"\")),\n });\n }\n return out.sort((a, b) => a.label.localeCompare(b.label));\n}\n\n// ── Network devices (Cisco-convention icons) ───────────────────────\nconst NETWORK_CSS =\n \".sx-net-body{fill:#ffffff;stroke:#0f172a;stroke-width:2}\" +\n \".sx-net-detail{fill:none;stroke:#0f172a;stroke-width:1}\" +\n \".sx-net-glyph{fill:#2563eb;stroke:none}\" +\n \".sx-net-glyph-line{fill:none;stroke:#2563eb;stroke-width:1.4}\" +\n \".sx-net-icontext{font:700 8px sans-serif;fill:#2563eb}\" +\n \".sx-net-cloud-body{fill:#f1f5f9;stroke:#0f172a;stroke-width:2}\" +\n \".sx-net-cloudtext{font:600 13px sans-serif;fill:#0f172a}\" +\n \".sx-net-bus{stroke:#0f172a;stroke-width:4;stroke-linecap:round}\";\n\nconst NETWORK_KINDS = [\n \"router\", \"switch\", \"l3switch\", \"poeswitch\", \"firewall\", \"loadbalancer\", \"ap\",\n \"wlc\", \"gateway\", \"modem\", \"ids\", \"proxy\", \"vpngw\", \"server\", \"serverfarm\",\n \"pc\", \"laptop\", \"mobile\", \"ipphone\", \"printer\", \"storage\", \"camera\", \"nvr\",\n \"dvr\", \"encoder\", \"monitor\", \"internet\", \"cloud\",\n] as const;\n\nfunction networkCatalog(): SymbolCatalogEntry[] {\n const out: SymbolCatalogEntry[] = [];\n for (const kind of NETWORK_KINDS) {\n const { w, h } = iconSize(kind as Parameters<typeof iconSize>[0]);\n const device = { id: kind, kind, label: humanize(kind), groups: [] } as Parameters<typeof drawDeviceIcon>[0];\n let inner: string;\n try {\n inner = drawDeviceIcon(device, { x: 0, y: 0, w, h });\n } catch {\n continue;\n }\n out.push({\n id: kind,\n label: humanize(kind),\n svg: svgDoc(`-6 -6 ${w + 12} ${h + 12}`, NETWORK_CSS, inner),\n });\n }\n return out.sort((a, b) => a.label.localeCompare(b.label));\n}\n\nconst CATALOGS: Partial<Record<DiagramType, () => SymbolCatalog>> = {\n circuit: () => ({\n type: \"circuit\",\n label: \"Circuit components\",\n note: \"IEEE 315 / ANSI Y32.2 schematic symbols the netlist/positional engine draws.\",\n entries: circuitCatalog(),\n }),\n sld: () => ({\n type: \"sld\",\n label: \"Single-line apparatus\",\n note: \"IEEE 315 power-apparatus symbols — sources, transformers, switching, protection, loads.\",\n entries: sldCatalog(),\n }),\n pid: () => ({\n type: \"pid\",\n label: \"P&ID equipment\",\n note: \"ANSI/ISA-5.1 process equipment — tanks, columns, exchangers, pumps, and more.\",\n entries: pidCatalog(),\n }),\n logic: () => ({\n type: \"logic\",\n label: \"Logic gates\",\n note: \"IEEE 91 ANSI gate bodies — combinational gates, flip-flops, latches, MUX/decoder, counters.\",\n entries: logicCatalog(),\n }),\n network: () => ({\n type: \"network\",\n label: \"Network devices\",\n note: \"Cisco-convention topology icons — routers, switches, firewalls, servers, cameras, clouds.\",\n entries: networkCatalog(),\n }),\n flowchart: () => ({\n type: \"flowchart\",\n label: \"Node icons\",\n note: \"Inline node icons (servers, databases, cloud, gear…) usable on any flowchart node.\",\n entries: flowchartIconCatalog(),\n }),\n};\n\n/** Diagram types that ship a renderable domain symbol catalog. */\nexport const SYMBOL_CATALOG_TYPES = Object.keys(CATALOGS) as DiagramType[];\n\nexport function getSymbolCatalog(type: string): SymbolCatalog | null {\n const factory = CATALOGS[type as DiagramType];\n return factory ? factory() : null;\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export { S as SchematexConfig,
|
|
1
|
+
export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-BEJTXyBA.cjs';
|
|
2
|
+
import { D as DiagramPlugin, a as DiagramType } from './diagnostics-B-ffSEhl.cjs';
|
|
3
|
+
export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-B-ffSEhl.cjs';
|
|
2
4
|
export { genogram } from './diagrams/genogram/index.cjs';
|
|
3
5
|
export { ecomap } from './diagrams/ecomap/index.cjs';
|
|
4
6
|
export { pedigree } from './diagrams/pedigree/index.cjs';
|
|
@@ -13,9 +15,8 @@ export { sld } from './diagrams/sld/index.cjs';
|
|
|
13
15
|
export { entity } from './diagrams/entity/index.cjs';
|
|
14
16
|
export { fishbone } from './diagrams/fishbone/index.cjs';
|
|
15
17
|
export { venn } from './diagrams/venn/index.cjs';
|
|
16
|
-
export { B as BASE_THEMES, a as BIOLOGY_TOKENS, b as BaseTheme, c as BiologyTokens, P as PERSON_TOKENS,
|
|
18
|
+
export { B as BASE_THEMES, a as BIOLOGY_TOKENS, b as BaseTheme, c as BiologyTokens, N as NETWORK_TOKENS, d as NetworkTokens, P as PERSON_TOKENS, e as PETRI_TOKENS, f as PersonTokens, g as PetriTokens, R as ResolvedTheme, T as ThemeName, h as TimelineTokens, V as VENN_TOKENS, i as VennTokens, j as flowchart, r as resolveBaseTheme, k as resolveBiologyTheme, l as resolveFishboneTheme, m as resolveGenogramTheme, n as resolveNetworkTheme, o as resolvePersonTheme, p as resolvePetriTheme, q as resolveTimelineTheme, s as resolveVennTheme } from './index-S0njakQ2.cjs';
|
|
17
19
|
export { orgchart } from './diagrams/orgchart/index.cjs';
|
|
18
|
-
import { D as DiagramPlugin } from './types-WTr9W5Ud.cjs';
|
|
19
20
|
|
|
20
21
|
declare const decisiontree: DiagramPlugin;
|
|
21
22
|
|
|
@@ -31,4 +32,37 @@ declare const usecase: DiagramPlugin;
|
|
|
31
32
|
|
|
32
33
|
declare const pert: DiagramPlugin;
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
declare const sequence: DiagramPlugin;
|
|
36
|
+
|
|
37
|
+
declare const petri: DiagramPlugin;
|
|
38
|
+
|
|
39
|
+
declare const network: DiagramPlugin;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Domain symbol catalogs — the real symbols an engine uses *inside* a diagram
|
|
43
|
+
* (circuit components, SLD apparatus, P&ID equipment, flowchart node icons),
|
|
44
|
+
* each rendered standalone for the /icons showcase. This is distinct from the
|
|
45
|
+
* per-type representative glyph (assets/icons/*.svg).
|
|
46
|
+
*
|
|
47
|
+
* Each entry's `svg` is a complete, self-styled <svg> so consumers can drop it
|
|
48
|
+
* straight into the page.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
interface SymbolCatalogEntry {
|
|
52
|
+
id: string;
|
|
53
|
+
label: string;
|
|
54
|
+
svg: string;
|
|
55
|
+
}
|
|
56
|
+
interface SymbolCatalog {
|
|
57
|
+
type: DiagramType;
|
|
58
|
+
/** Human label for the catalog section, e.g. "Circuit components". */
|
|
59
|
+
label: string;
|
|
60
|
+
/** Short description of what the symbols are. */
|
|
61
|
+
note: string;
|
|
62
|
+
entries: SymbolCatalogEntry[];
|
|
63
|
+
}
|
|
64
|
+
/** Diagram types that ship a renderable domain symbol catalog. */
|
|
65
|
+
declare const SYMBOL_CATALOG_TYPES: DiagramType[];
|
|
66
|
+
declare function getSymbolCatalog(type: string): SymbolCatalog | null;
|
|
67
|
+
|
|
68
|
+
export { SYMBOL_CATALOG_TYPES, type SymbolCatalog, type SymbolCatalogEntry, decisiontree, getSymbolCatalog, network, pert, petri, pid, prisma, sequence, state, timeline, usecase };
|