schematex 0.3.4 → 0.4.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 +5 -4
- package/dist/ai/ai-sdk.cjs +20 -19
- package/dist/ai/ai-sdk.cjs.map +1 -1
- package/dist/ai/ai-sdk.d.cts +2 -2
- package/dist/ai/ai-sdk.d.ts +2 -2
- package/dist/ai/ai-sdk.js +15 -14
- package/dist/ai/ai-sdk.js.map +1 -1
- package/dist/ai/index.cjs +23 -22
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.js +15 -14
- package/dist/{api-BuFilDQB.d.cts → api-BIj9t4Oc.d.cts} +1 -1
- package/dist/{api-BuFilDQB.d.ts → api-BIj9t4Oc.d.ts} +1 -1
- package/dist/browser.cjs +17 -16
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +2 -2
- package/dist/browser.d.ts +2 -2
- package/dist/browser.js +15 -14
- package/dist/browser.js.map +1 -1
- package/dist/{chunk-4THC4VUA.cjs → chunk-2Z543TC3.cjs} +7 -6
- package/dist/chunk-2Z543TC3.cjs.map +1 -0
- package/dist/{chunk-DNZV4V4R.js → chunk-4SJSIJK2.js} +831 -10
- package/dist/chunk-4SJSIJK2.js.map +1 -0
- package/dist/{chunk-ZKDL6Y3O.js → chunk-5FF2IT3C.js} +5 -4
- package/dist/chunk-5FF2IT3C.js.map +1 -0
- package/dist/chunk-5IKOLUWK.js +89 -0
- package/dist/chunk-5IKOLUWK.js.map +1 -0
- package/dist/{chunk-3RAVPXLN.js → chunk-6URNSB6G.js} +5 -4
- package/dist/chunk-6URNSB6G.js.map +1 -0
- package/dist/{chunk-MIKCKV27.cjs → chunk-BW4KGTV7.cjs} +65 -31
- package/dist/chunk-BW4KGTV7.cjs.map +1 -0
- package/dist/{chunk-DBMZEZLF.cjs → chunk-DHHVYSQX.cjs} +6229 -51
- package/dist/chunk-DHHVYSQX.cjs.map +1 -0
- package/dist/{chunk-6ULC3UHJ.cjs → chunk-E2EJRVWS.cjs} +43 -12
- package/dist/chunk-E2EJRVWS.cjs.map +1 -0
- package/dist/{chunk-5CTERELC.js → chunk-EPKIJEH7.js} +5 -4
- package/dist/chunk-EPKIJEH7.js.map +1 -0
- package/dist/{chunk-IFR34VTL.cjs → chunk-GZY4CJ23.cjs} +5 -4
- package/dist/chunk-GZY4CJ23.cjs.map +1 -0
- package/dist/{chunk-TWAC2IIS.js → chunk-I55HO32M.js} +5 -4
- package/dist/chunk-I55HO32M.js.map +1 -0
- package/dist/{chunk-5SKT7RYR.js → chunk-J7JWMQD5.js} +7 -6
- package/dist/chunk-J7JWMQD5.js.map +1 -0
- package/dist/{chunk-PWI4NFYR.js → chunk-JDBG5DU2.js} +5 -4
- package/dist/chunk-JDBG5DU2.js.map +1 -0
- package/dist/{chunk-VRE5VWDQ.js → chunk-KVP7AORH.js} +43 -12
- package/dist/chunk-KVP7AORH.js.map +1 -0
- package/dist/{chunk-IURM4ZWE.js → chunk-L3CTXXVZ.js} +65 -31
- package/dist/chunk-L3CTXXVZ.js.map +1 -0
- package/dist/chunk-NAGUZFXX.cjs +94 -0
- package/dist/chunk-NAGUZFXX.cjs.map +1 -0
- package/dist/{chunk-H5JYZ5YS.cjs → chunk-OIZ4MYSF.cjs} +5 -4
- package/dist/chunk-OIZ4MYSF.cjs.map +1 -0
- package/dist/{chunk-T47A6XUK.cjs → chunk-QUKVGHN4.cjs} +5 -4
- package/dist/chunk-QUKVGHN4.cjs.map +1 -0
- package/dist/{chunk-V4OVUBLA.cjs → chunk-RYVV5UVI.cjs} +5 -4
- package/dist/chunk-RYVV5UVI.cjs.map +1 -0
- package/dist/{chunk-CQP5YHVK.cjs → chunk-S2KJRHDZ.cjs} +4 -5
- package/dist/chunk-S2KJRHDZ.cjs.map +1 -0
- package/dist/{chunk-5COUZTVA.cjs → chunk-ST5YRTTV.cjs} +5 -4
- package/dist/chunk-ST5YRTTV.cjs.map +1 -0
- package/dist/{chunk-CS67UBP3.cjs → chunk-SUIDD2C5.cjs} +5 -4
- package/dist/chunk-SUIDD2C5.cjs.map +1 -0
- package/dist/{chunk-DHKKDIVT.js → chunk-SZK376QB.js} +5 -4
- package/dist/chunk-SZK376QB.js.map +1 -0
- package/dist/{chunk-WIFGBWET.cjs → chunk-UUBNQV2T.cjs} +4 -5
- package/dist/chunk-UUBNQV2T.cjs.map +1 -0
- package/dist/{chunk-I6VEXSUK.js → chunk-VDSYMSUY.js} +4 -5
- package/dist/chunk-VDSYMSUY.js.map +1 -0
- package/dist/{chunk-J3Y2QDJR.cjs → chunk-WCAADEXJ.cjs} +833 -12
- package/dist/chunk-WCAADEXJ.cjs.map +1 -0
- package/dist/{chunk-XSNNGYXZ.cjs → chunk-YLEVMOK2.cjs} +22 -8
- package/dist/chunk-YLEVMOK2.cjs.map +1 -0
- package/dist/{chunk-HKJRHXGZ.js → chunk-Z5NGIM4Z.js} +6217 -39
- package/dist/chunk-Z5NGIM4Z.js.map +1 -0
- package/dist/{chunk-ZQZNWAHH.js → chunk-ZX74KJPM.js} +4 -5
- package/dist/chunk-ZX74KJPM.js.map +1 -0
- package/dist/{chunk-IZMAZOQI.js → chunk-ZYRCPSBU.js} +22 -8
- package/dist/chunk-ZYRCPSBU.js.map +1 -0
- package/dist/diagrams/blockdiagram/index.cjs +6 -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 +2 -1
- package/dist/diagrams/circuit/index.cjs +8 -7
- 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 -1
- package/dist/diagrams/ecomap/index.d.cts +1 -1
- package/dist/diagrams/ecomap/index.d.ts +1 -1
- package/dist/diagrams/entity/index.cjs +6 -5
- 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 -1
- package/dist/diagrams/fishbone/index.d.cts +1 -1
- package/dist/diagrams/fishbone/index.d.ts +1 -1
- package/dist/diagrams/flowchart/index.cjs +7 -7
- package/dist/diagrams/flowchart/index.d.cts +2 -2
- package/dist/diagrams/flowchart/index.d.ts +2 -2
- package/dist/diagrams/flowchart/index.js +1 -1
- package/dist/diagrams/genogram/index.d.cts +1 -1
- package/dist/diagrams/genogram/index.d.ts +1 -1
- package/dist/diagrams/ladder/index.cjs +6 -5
- 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 -1
- package/dist/diagrams/logic/index.cjs +6 -5
- 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 -1
- package/dist/diagrams/orgchart/index.cjs +7 -6
- 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 -1
- package/dist/diagrams/pedigree/index.d.cts +1 -1
- package/dist/diagrams/pedigree/index.d.ts +1 -1
- package/dist/diagrams/phylo/index.cjs +7 -6
- 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 -1
- package/dist/diagrams/sld/index.cjs +6 -5
- package/dist/diagrams/sld/index.d.cts +1 -1
- package/dist/diagrams/sld/index.d.ts +1 -1
- package/dist/diagrams/sld/index.js +2 -1
- package/dist/diagrams/sociogram/index.cjs +6 -5
- 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 -1
- package/dist/diagrams/timing/index.cjs +5 -4
- package/dist/diagrams/timing/index.d.cts +1 -1
- package/dist/diagrams/timing/index.d.ts +1 -1
- package/dist/diagrams/timing/index.js +2 -1
- package/dist/diagrams/venn/index.cjs +9 -8
- 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 -1
- package/dist/{index-D3u6vcA4.d.ts → index-CGK0xVls.d.ts} +3 -3
- package/dist/{index-bdfj6FpQ.d.cts → index-OW8eDrKj.d.cts} +3 -3
- package/dist/index.cjs +32 -31
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +14 -13
- package/dist/react.cjs +15 -14
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +14 -13
- package/dist/react.js.map +1 -1
- package/dist/{types-DnU2UlWz.d.ts → types-Gkyab1sL.d.cts} +5 -1
- package/dist/{types-DnU2UlWz.d.cts → types-Gkyab1sL.d.ts} +5 -1
- package/package.json +2 -2
- package/dist/chunk-3RAVPXLN.js.map +0 -1
- package/dist/chunk-4THC4VUA.cjs.map +0 -1
- package/dist/chunk-5COUZTVA.cjs.map +0 -1
- package/dist/chunk-5CTERELC.js.map +0 -1
- package/dist/chunk-5SKT7RYR.js.map +0 -1
- package/dist/chunk-6ULC3UHJ.cjs.map +0 -1
- package/dist/chunk-CQP5YHVK.cjs.map +0 -1
- package/dist/chunk-CS67UBP3.cjs.map +0 -1
- package/dist/chunk-DBMZEZLF.cjs.map +0 -1
- package/dist/chunk-DHKKDIVT.js.map +0 -1
- package/dist/chunk-DNZV4V4R.js.map +0 -1
- package/dist/chunk-H5JYZ5YS.cjs.map +0 -1
- package/dist/chunk-HKJRHXGZ.js.map +0 -1
- package/dist/chunk-I6VEXSUK.js.map +0 -1
- package/dist/chunk-IFR34VTL.cjs.map +0 -1
- package/dist/chunk-IURM4ZWE.js.map +0 -1
- package/dist/chunk-IZMAZOQI.js.map +0 -1
- package/dist/chunk-J3Y2QDJR.cjs.map +0 -1
- package/dist/chunk-MIKCKV27.cjs.map +0 -1
- package/dist/chunk-PWI4NFYR.js.map +0 -1
- package/dist/chunk-T47A6XUK.cjs.map +0 -1
- package/dist/chunk-TWAC2IIS.js.map +0 -1
- package/dist/chunk-V4OVUBLA.cjs.map +0 -1
- package/dist/chunk-VRE5VWDQ.js.map +0 -1
- package/dist/chunk-WIFGBWET.cjs.map +0 -1
- package/dist/chunk-XSNNGYXZ.cjs.map +0 -1
- package/dist/chunk-ZKDL6Y3O.js.map +0 -1
- package/dist/chunk-ZQZNWAHH.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as FlowchartAST, o as FlowchartLayoutResult, D as DiagramPlugin } from './types-
|
|
1
|
+
import { n as FlowchartAST, o as FlowchartLayoutResult, D as DiagramPlugin } from './types-Gkyab1sL.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Flowchart DSL parser.
|
|
@@ -63,8 +63,8 @@ declare function parseFlowchart(source: string): FlowchartAST;
|
|
|
63
63
|
declare const FC_CONST: {
|
|
64
64
|
readonly nodeWidth: 120;
|
|
65
65
|
readonly nodeHeight: 44;
|
|
66
|
-
readonly nodeSpacingX:
|
|
67
|
-
readonly layerSpacingY:
|
|
66
|
+
readonly nodeSpacingX: 40;
|
|
67
|
+
readonly layerSpacingY: 76;
|
|
68
68
|
readonly dummyWidth: 1;
|
|
69
69
|
readonly padding: 24;
|
|
70
70
|
/** Latin/digit avg width at 12px font. CJK uses cjkCharWidth instead. */
|
package/dist/index.cjs
CHANGED
|
@@ -1,75 +1,76 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
3
|
+
var chunkDHHVYSQX_cjs = require('./chunk-DHHVYSQX.cjs');
|
|
4
|
+
var chunkQUKVGHN4_cjs = require('./chunk-QUKVGHN4.cjs');
|
|
5
|
+
var chunk2Z543TC3_cjs = require('./chunk-2Z543TC3.cjs');
|
|
6
|
+
var chunkSUIDD2C5_cjs = require('./chunk-SUIDD2C5.cjs');
|
|
7
|
+
var chunkGZY4CJ23_cjs = require('./chunk-GZY4CJ23.cjs');
|
|
8
|
+
var chunkOIZ4MYSF_cjs = require('./chunk-OIZ4MYSF.cjs');
|
|
9
|
+
var chunkRYVV5UVI_cjs = require('./chunk-RYVV5UVI.cjs');
|
|
10
10
|
var chunk6WORZSL3_cjs = require('./chunk-6WORZSL3.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var chunkBW4KGTV7_cjs = require('./chunk-BW4KGTV7.cjs');
|
|
12
|
+
var chunkE2EJRVWS_cjs = require('./chunk-E2EJRVWS.cjs');
|
|
13
13
|
var chunkK6RAUXRQ_cjs = require('./chunk-K6RAUXRQ.cjs');
|
|
14
14
|
var chunk3MJKJX27_cjs = require('./chunk-3MJKJX27.cjs');
|
|
15
15
|
var chunkO5POCPXZ_cjs = require('./chunk-O5POCPXZ.cjs');
|
|
16
|
-
var
|
|
17
|
-
var
|
|
16
|
+
var chunkS2KJRHDZ_cjs = require('./chunk-S2KJRHDZ.cjs');
|
|
17
|
+
var chunkUUBNQV2T_cjs = require('./chunk-UUBNQV2T.cjs');
|
|
18
18
|
require('./chunk-5UCXMYE7.cjs');
|
|
19
|
-
var
|
|
20
|
-
var
|
|
19
|
+
var chunkST5YRTTV_cjs = require('./chunk-ST5YRTTV.cjs');
|
|
20
|
+
var chunkYLEVMOK2_cjs = require('./chunk-YLEVMOK2.cjs');
|
|
21
21
|
var chunkD7EHZFK4_cjs = require('./chunk-D7EHZFK4.cjs');
|
|
22
|
+
require('./chunk-NAGUZFXX.cjs');
|
|
22
23
|
require('./chunk-3WNW5Y7P.cjs');
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
Object.defineProperty(exports, "decisiontree", {
|
|
27
28
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkDHHVYSQX_cjs.decisiontree; }
|
|
29
30
|
});
|
|
30
31
|
Object.defineProperty(exports, "parse", {
|
|
31
32
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkDHHVYSQX_cjs.parse; }
|
|
33
34
|
});
|
|
34
35
|
Object.defineProperty(exports, "pid", {
|
|
35
36
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkDHHVYSQX_cjs.pid; }
|
|
37
38
|
});
|
|
38
39
|
Object.defineProperty(exports, "render", {
|
|
39
40
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkDHHVYSQX_cjs.render; }
|
|
41
42
|
});
|
|
42
43
|
Object.defineProperty(exports, "state", {
|
|
43
44
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkDHHVYSQX_cjs.state; }
|
|
45
46
|
});
|
|
46
47
|
Object.defineProperty(exports, "timeline", {
|
|
47
48
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkDHHVYSQX_cjs.timeline; }
|
|
49
50
|
});
|
|
50
51
|
Object.defineProperty(exports, "orgchart", {
|
|
51
52
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkQUKVGHN4_cjs.orgchart; }
|
|
53
54
|
});
|
|
54
55
|
Object.defineProperty(exports, "circuit", {
|
|
55
56
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunk2Z543TC3_cjs.circuit; }
|
|
57
58
|
});
|
|
58
59
|
Object.defineProperty(exports, "blockdiagram", {
|
|
59
60
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkSUIDD2C5_cjs.blockdiagram; }
|
|
61
62
|
});
|
|
62
63
|
Object.defineProperty(exports, "ladder", {
|
|
63
64
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkGZY4CJ23_cjs.ladder; }
|
|
65
66
|
});
|
|
66
67
|
Object.defineProperty(exports, "sld", {
|
|
67
68
|
enumerable: true,
|
|
68
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkOIZ4MYSF_cjs.sld; }
|
|
69
70
|
});
|
|
70
71
|
Object.defineProperty(exports, "entity", {
|
|
71
72
|
enumerable: true,
|
|
72
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkRYVV5UVI_cjs.entity; }
|
|
73
74
|
});
|
|
74
75
|
Object.defineProperty(exports, "fishbone", {
|
|
75
76
|
enumerable: true,
|
|
@@ -77,11 +78,11 @@ Object.defineProperty(exports, "fishbone", {
|
|
|
77
78
|
});
|
|
78
79
|
Object.defineProperty(exports, "venn", {
|
|
79
80
|
enumerable: true,
|
|
80
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkBW4KGTV7_cjs.venn; }
|
|
81
82
|
});
|
|
82
83
|
Object.defineProperty(exports, "flowchart", {
|
|
83
84
|
enumerable: true,
|
|
84
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkE2EJRVWS_cjs.flowchart; }
|
|
85
86
|
});
|
|
86
87
|
Object.defineProperty(exports, "genogram", {
|
|
87
88
|
enumerable: true,
|
|
@@ -97,19 +98,19 @@ Object.defineProperty(exports, "pedigree", {
|
|
|
97
98
|
});
|
|
98
99
|
Object.defineProperty(exports, "phylo", {
|
|
99
100
|
enumerable: true,
|
|
100
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkS2KJRHDZ_cjs.phylo; }
|
|
101
102
|
});
|
|
102
103
|
Object.defineProperty(exports, "sociogram", {
|
|
103
104
|
enumerable: true,
|
|
104
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkUUBNQV2T_cjs.sociogram; }
|
|
105
106
|
});
|
|
106
107
|
Object.defineProperty(exports, "timing", {
|
|
107
108
|
enumerable: true,
|
|
108
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkST5YRTTV_cjs.timing; }
|
|
109
110
|
});
|
|
110
111
|
Object.defineProperty(exports, "logic", {
|
|
111
112
|
enumerable: true,
|
|
112
|
-
get: function () { return
|
|
113
|
+
get: function () { return chunkYLEVMOK2_cjs.logic; }
|
|
113
114
|
});
|
|
114
115
|
Object.defineProperty(exports, "BASE_THEMES", {
|
|
115
116
|
enumerable: true,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { S as SchematexConfig, p as parse, r as render } from './api-
|
|
1
|
+
export { S as SchematexConfig, p as parse, r as render } from './api-BIj9t4Oc.cjs';
|
|
2
2
|
export { genogram } from './diagrams/genogram/index.cjs';
|
|
3
3
|
export { ecomap } from './diagrams/ecomap/index.cjs';
|
|
4
4
|
export { pedigree } from './diagrams/pedigree/index.cjs';
|
|
@@ -13,9 +13,9 @@ export { sld } from './diagrams/sld/index.cjs';
|
|
|
13
13
|
export { entity } from './diagrams/entity/index.cjs';
|
|
14
14
|
export { fishbone } from './diagrams/fishbone/index.cjs';
|
|
15
15
|
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, d as PersonTokens, R as ResolvedTheme, T as ThemeName, e as TimelineTokens, V as VENN_TOKENS, f as VennTokens, g as flowchart, r as resolveBaseTheme, h as resolveBiologyTheme, i as resolveFishboneTheme, j as resolveGenogramTheme, k as resolvePersonTheme, l as resolveTimelineTheme, m as resolveVennTheme } from './index-
|
|
16
|
+
export { B as BASE_THEMES, a as BIOLOGY_TOKENS, b as BaseTheme, c as BiologyTokens, P as PERSON_TOKENS, d as PersonTokens, R as ResolvedTheme, T as ThemeName, e as TimelineTokens, V as VENN_TOKENS, f as VennTokens, g as flowchart, r as resolveBaseTheme, h as resolveBiologyTheme, i as resolveFishboneTheme, j as resolveGenogramTheme, k as resolvePersonTheme, l as resolveTimelineTheme, m as resolveVennTheme } from './index-OW8eDrKj.cjs';
|
|
17
17
|
export { orgchart } from './diagrams/orgchart/index.cjs';
|
|
18
|
-
import { D as DiagramPlugin } from './types-
|
|
18
|
+
import { D as DiagramPlugin } from './types-Gkyab1sL.cjs';
|
|
19
19
|
|
|
20
20
|
declare const decisiontree: DiagramPlugin;
|
|
21
21
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { S as SchematexConfig, p as parse, r as render } from './api-
|
|
1
|
+
export { S as SchematexConfig, p as parse, r as render } from './api-BIj9t4Oc.js';
|
|
2
2
|
export { genogram } from './diagrams/genogram/index.js';
|
|
3
3
|
export { ecomap } from './diagrams/ecomap/index.js';
|
|
4
4
|
export { pedigree } from './diagrams/pedigree/index.js';
|
|
@@ -13,9 +13,9 @@ export { sld } from './diagrams/sld/index.js';
|
|
|
13
13
|
export { entity } from './diagrams/entity/index.js';
|
|
14
14
|
export { fishbone } from './diagrams/fishbone/index.js';
|
|
15
15
|
export { venn } from './diagrams/venn/index.js';
|
|
16
|
-
export { B as BASE_THEMES, a as BIOLOGY_TOKENS, b as BaseTheme, c as BiologyTokens, P as PERSON_TOKENS, d as PersonTokens, R as ResolvedTheme, T as ThemeName, e as TimelineTokens, V as VENN_TOKENS, f as VennTokens, g as flowchart, r as resolveBaseTheme, h as resolveBiologyTheme, i as resolveFishboneTheme, j as resolveGenogramTheme, k as resolvePersonTheme, l as resolveTimelineTheme, m as resolveVennTheme } from './index-
|
|
16
|
+
export { B as BASE_THEMES, a as BIOLOGY_TOKENS, b as BaseTheme, c as BiologyTokens, P as PERSON_TOKENS, d as PersonTokens, R as ResolvedTheme, T as ThemeName, e as TimelineTokens, V as VENN_TOKENS, f as VennTokens, g as flowchart, r as resolveBaseTheme, h as resolveBiologyTheme, i as resolveFishboneTheme, j as resolveGenogramTheme, k as resolvePersonTheme, l as resolveTimelineTheme, m as resolveVennTheme } from './index-CGK0xVls.js';
|
|
17
17
|
export { orgchart } from './diagrams/orgchart/index.js';
|
|
18
|
-
import { D as DiagramPlugin } from './types-
|
|
18
|
+
import { D as DiagramPlugin } from './types-Gkyab1sL.js';
|
|
19
19
|
|
|
20
20
|
declare const decisiontree: DiagramPlugin;
|
|
21
21
|
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
export { decisiontree, parse, pid, render, state, timeline } from './chunk-
|
|
2
|
-
export { orgchart } from './chunk-
|
|
3
|
-
export { circuit } from './chunk-
|
|
4
|
-
export { blockdiagram } from './chunk-
|
|
5
|
-
export { ladder } from './chunk-
|
|
6
|
-
export { sld } from './chunk-
|
|
7
|
-
export { entity } from './chunk-
|
|
1
|
+
export { decisiontree, parse, pid, render, state, timeline } from './chunk-Z5NGIM4Z.js';
|
|
2
|
+
export { orgchart } from './chunk-I55HO32M.js';
|
|
3
|
+
export { circuit } from './chunk-J7JWMQD5.js';
|
|
4
|
+
export { blockdiagram } from './chunk-EPKIJEH7.js';
|
|
5
|
+
export { ladder } from './chunk-5FF2IT3C.js';
|
|
6
|
+
export { sld } from './chunk-JDBG5DU2.js';
|
|
7
|
+
export { entity } from './chunk-SZK376QB.js';
|
|
8
8
|
export { fishbone } from './chunk-YWDODCW2.js';
|
|
9
|
-
export { venn } from './chunk-
|
|
10
|
-
export { flowchart } from './chunk-
|
|
9
|
+
export { venn } from './chunk-L3CTXXVZ.js';
|
|
10
|
+
export { flowchart } from './chunk-KVP7AORH.js';
|
|
11
11
|
export { genogram } from './chunk-WHNIK4LK.js';
|
|
12
12
|
export { ecomap } from './chunk-LPKVIRYT.js';
|
|
13
13
|
export { pedigree } from './chunk-6XGSEG3K.js';
|
|
14
|
-
export { phylo } from './chunk-
|
|
15
|
-
export { sociogram } from './chunk-
|
|
14
|
+
export { phylo } from './chunk-VDSYMSUY.js';
|
|
15
|
+
export { sociogram } from './chunk-ZX74KJPM.js';
|
|
16
16
|
import './chunk-FO7BLCEW.js';
|
|
17
|
-
export { timing } from './chunk-
|
|
18
|
-
export { logic } from './chunk-
|
|
17
|
+
export { timing } from './chunk-6URNSB6G.js';
|
|
18
|
+
export { logic } from './chunk-ZYRCPSBU.js';
|
|
19
19
|
export { BASE_THEMES, BIOLOGY_TOKENS, PERSON_TOKENS, VENN_TOKENS, resolveBaseTheme, resolveBiologyTheme, resolveFishboneTheme, resolveGenogramTheme, resolvePersonTheme, resolveTimelineTheme, resolveVennTheme } from './chunk-2VNMKOUO.js';
|
|
20
|
+
import './chunk-5IKOLUWK.js';
|
|
20
21
|
import './chunk-SYYBKDL7.js';
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/react.cjs
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
7
|
-
require('./chunk-
|
|
8
|
-
require('./chunk-
|
|
9
|
-
require('./chunk-
|
|
3
|
+
var chunkDHHVYSQX_cjs = require('./chunk-DHHVYSQX.cjs');
|
|
4
|
+
require('./chunk-QUKVGHN4.cjs');
|
|
5
|
+
require('./chunk-2Z543TC3.cjs');
|
|
6
|
+
require('./chunk-SUIDD2C5.cjs');
|
|
7
|
+
require('./chunk-GZY4CJ23.cjs');
|
|
8
|
+
require('./chunk-OIZ4MYSF.cjs');
|
|
9
|
+
require('./chunk-RYVV5UVI.cjs');
|
|
10
10
|
require('./chunk-6WORZSL3.cjs');
|
|
11
|
-
require('./chunk-
|
|
12
|
-
require('./chunk-
|
|
11
|
+
require('./chunk-BW4KGTV7.cjs');
|
|
12
|
+
require('./chunk-E2EJRVWS.cjs');
|
|
13
13
|
require('./chunk-K6RAUXRQ.cjs');
|
|
14
14
|
require('./chunk-3MJKJX27.cjs');
|
|
15
15
|
require('./chunk-O5POCPXZ.cjs');
|
|
16
|
-
require('./chunk-
|
|
17
|
-
require('./chunk-
|
|
16
|
+
require('./chunk-S2KJRHDZ.cjs');
|
|
17
|
+
require('./chunk-UUBNQV2T.cjs');
|
|
18
18
|
require('./chunk-5UCXMYE7.cjs');
|
|
19
|
-
require('./chunk-
|
|
20
|
-
require('./chunk-
|
|
19
|
+
require('./chunk-ST5YRTTV.cjs');
|
|
20
|
+
require('./chunk-YLEVMOK2.cjs');
|
|
21
21
|
require('./chunk-D7EHZFK4.cjs');
|
|
22
|
+
require('./chunk-NAGUZFXX.cjs');
|
|
22
23
|
require('./chunk-3WNW5Y7P.cjs');
|
|
23
24
|
var react = require('react');
|
|
24
25
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -35,7 +36,7 @@ function SchematexDiagram({
|
|
|
35
36
|
}) {
|
|
36
37
|
const svg = react.useMemo(() => {
|
|
37
38
|
try {
|
|
38
|
-
return
|
|
39
|
+
return chunkDHHVYSQX_cjs.render(dsl, { type, theme, fontFamily, padding });
|
|
39
40
|
} catch (err) {
|
|
40
41
|
const e = err instanceof Error ? err : new Error(String(err));
|
|
41
42
|
onError?.(e);
|
package/dist/react.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react.tsx"],"names":["useMemo","render","jsx"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/react.tsx"],"names":["useMemo","render","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqCO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,GAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,GAAA,GAAMA,cAAQ,MAAM;AACxB,IAAA,IAAI;AACF,MAAA,OAAOC,yBAAO,GAAA,EAAK,EAAE,MAAM,KAAA,EAAO,UAAA,EAAY,SAAS,CAAA;AAAA,IACzD,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,CAAA,GAAI,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAC5D,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EAEF,GAAG,CAAC,GAAA,EAAK,MAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAC,CAAA;AAE1C,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,KAAA;AAAA,MAEA,uBAAA,EAAyB,EAAE,MAAA,EAAQ,GAAA,IAAO,EAAA;AAAG;AAAA,GAC/C;AAEJ","file":"react.cjs","sourcesContent":["/**\n * React component for Schematex diagrams.\n *\n * @example\n * ```tsx\n * import { SchematexDiagram } from 'schematex/react';\n *\n * <SchematexDiagram\n * dsl=\"genogram\\n alice [female]\"\n * theme=\"monochrome\"\n * className=\"my-diagram\"\n * />\n * ```\n */\n\nimport { useMemo } from \"react\";\nimport { render, type SchematexConfig } from \"./core/api\";\n\nexport interface SchematexDiagramProps {\n /** DSL text to render */\n dsl: string;\n /** Diagram type override (auto-detected from DSL if omitted) */\n type?: SchematexConfig[\"type\"];\n /** Theme name: 'default' | 'monochrome' | 'dark' */\n theme?: string;\n /** Font family override */\n fontFamily?: string;\n /** Canvas padding in px */\n padding?: number;\n /** className for the wrapper div */\n className?: string;\n /** Inline style for the wrapper div */\n style?: React.CSSProperties;\n /** Called when render throws a parse/layout error */\n onError?: (error: Error) => void;\n}\n\nexport function SchematexDiagram({\n dsl,\n type,\n theme,\n fontFamily,\n padding,\n className,\n style,\n onError,\n}: SchematexDiagramProps) {\n const svg = useMemo(() => {\n try {\n return render(dsl, { type, theme, fontFamily, padding });\n } catch (err) {\n const e = err instanceof Error ? err : new Error(String(err));\n onError?.(e);\n return null;\n }\n // onError excluded — a fresh callback shouldn't bust the memo.\n }, [dsl, type, theme, fontFamily, padding]);\n\n return (\n <div\n className={className}\n style={style}\n // SVG is generated by our own renderer — safe\n dangerouslySetInnerHTML={{ __html: svg ?? \"\" }}\n />\n );\n}\n"]}
|
package/dist/react.d.cts
CHANGED
package/dist/react.d.ts
CHANGED
package/dist/react.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { render } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
1
|
+
import { render } from './chunk-Z5NGIM4Z.js';
|
|
2
|
+
import './chunk-I55HO32M.js';
|
|
3
|
+
import './chunk-J7JWMQD5.js';
|
|
4
|
+
import './chunk-EPKIJEH7.js';
|
|
5
|
+
import './chunk-5FF2IT3C.js';
|
|
6
|
+
import './chunk-JDBG5DU2.js';
|
|
7
|
+
import './chunk-SZK376QB.js';
|
|
8
8
|
import './chunk-YWDODCW2.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-L3CTXXVZ.js';
|
|
10
|
+
import './chunk-KVP7AORH.js';
|
|
11
11
|
import './chunk-WHNIK4LK.js';
|
|
12
12
|
import './chunk-LPKVIRYT.js';
|
|
13
13
|
import './chunk-6XGSEG3K.js';
|
|
14
|
-
import './chunk-
|
|
15
|
-
import './chunk-
|
|
14
|
+
import './chunk-VDSYMSUY.js';
|
|
15
|
+
import './chunk-ZX74KJPM.js';
|
|
16
16
|
import './chunk-FO7BLCEW.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
17
|
+
import './chunk-6URNSB6G.js';
|
|
18
|
+
import './chunk-ZYRCPSBU.js';
|
|
19
19
|
import './chunk-2VNMKOUO.js';
|
|
20
|
+
import './chunk-5IKOLUWK.js';
|
|
20
21
|
import './chunk-SYYBKDL7.js';
|
|
21
22
|
import { useMemo } from 'react';
|
|
22
23
|
import { jsx } from 'react/jsx-runtime';
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/react.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqCO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,GAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,GAAA,GAAM,QAAQ,MAAM;AACxB,IAAA,IAAI;AACF,MAAA,OAAO,OAAO,GAAA,EAAK,EAAE,MAAM,KAAA,EAAO,UAAA,EAAY,SAAS,CAAA;AAAA,IACzD,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,CAAA,GAAI,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AAC5D,MAAA,OAAA,GAAU,CAAC,CAAA;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EAEF,GAAG,CAAC,GAAA,EAAK,MAAM,KAAA,EAAO,UAAA,EAAY,OAAO,CAAC,CAAA;AAE1C,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,KAAA;AAAA,MAEA,uBAAA,EAAyB,EAAE,MAAA,EAAQ,GAAA,IAAO,EAAA;AAAG;AAAA,GAC/C;AAEJ","file":"react.js","sourcesContent":["/**\n * React component for Schematex diagrams.\n *\n * @example\n * ```tsx\n * import { SchematexDiagram } from 'schematex/react';\n *\n * <SchematexDiagram\n * dsl=\"genogram\\n alice [female]\"\n * theme=\"monochrome\"\n * className=\"my-diagram\"\n * />\n * ```\n */\n\nimport { useMemo } from \"react\";\nimport { render, type SchematexConfig } from \"./core/api\";\n\nexport interface SchematexDiagramProps {\n /** DSL text to render */\n dsl: string;\n /** Diagram type override (auto-detected from DSL if omitted) */\n type?: SchematexConfig[\"type\"];\n /** Theme name: 'default' | 'monochrome' | 'dark' */\n theme?: string;\n /** Font family override */\n fontFamily?: string;\n /** Canvas padding in px */\n padding?: number;\n /** className for the wrapper div */\n className?: string;\n /** Inline style for the wrapper div */\n style?: React.CSSProperties;\n /** Called when render throws a parse/layout error */\n onError?: (error: Error) => void;\n}\n\nexport function SchematexDiagram({\n dsl,\n type,\n theme,\n fontFamily,\n padding,\n className,\n style,\n onError,\n}: SchematexDiagramProps) {\n const svg = useMemo(() => {\n try {\n return render(dsl, { type, theme, fontFamily, padding });\n } catch (err) {\n const e = err instanceof Error ? err : new Error(String(err));\n onError?.(e);\n return null;\n }\n // onError excluded — a fresh callback shouldn't bust the memo.\n }, [dsl, type, theme, fontFamily, padding]);\n\n return (\n <div\n className={className}\n style={style}\n // SVG is generated by our own renderer — safe\n dangerouslySetInnerHTML={{ __html: svg ?? \"\" }}\n />\n );\n}\n"]}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Layout: DiagramAST → LayoutResult
|
|
9
9
|
* - Renderer: LayoutResult → SVG string
|
|
10
10
|
*/
|
|
11
|
-
type DiagramType = "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid";
|
|
11
|
+
type DiagramType = "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid" | "erd" | "breadboard" | "bpmn" | "fbd" | "sfc";
|
|
12
12
|
type GenogramMode = "medical" | "heritage";
|
|
13
13
|
/**
|
|
14
14
|
* Standard legend positions:
|
|
@@ -388,6 +388,8 @@ interface LogicGateInput {
|
|
|
388
388
|
id: string;
|
|
389
389
|
label: string;
|
|
390
390
|
isActiveLow?: boolean;
|
|
391
|
+
/** True when the parser inferred this input from a gate reference rather than an explicit declaration. */
|
|
392
|
+
autoDeclared?: boolean;
|
|
391
393
|
}
|
|
392
394
|
interface LogicGateOutput {
|
|
393
395
|
id: string;
|
|
@@ -405,6 +407,8 @@ interface LogicGateAST {
|
|
|
405
407
|
gates: LogicGateNode[];
|
|
406
408
|
modules?: LogicGateModule[];
|
|
407
409
|
metadata?: Record<string, string>;
|
|
410
|
+
/** Non-fatal parser warnings (e.g. signals auto-declared as inputs). */
|
|
411
|
+
warnings?: string[];
|
|
408
412
|
}
|
|
409
413
|
type CircuitComponentType = "resistor" | "potentiometer" | "rheostat" | "thermistor_ntc" | "thermistor_ptc" | "ldr" | "varistor" | "fuse" | "fuse_slow" | "capacitor" | "electrolytic_cap" | "variable_cap" | "inductor" | "inductor_iron" | "inductor_ferrite" | "variable_inductor" | "ferrite_bead" | "crystal" | "transformer" | "diode" | "zener" | "schottky" | "led" | "photodiode" | "varactor" | "tvs_diode" | "bridge_rectifier" | "npn" | "pnp" | "darlington_npn" | "darlington_pnp" | "nmos" | "pmos" | "nmos_depletion" | "jfet_n" | "jfet_p" | "igbt" | "scr" | "triac" | "diac" | "phototransistor" | "optocoupler" | "opamp" | "comparator" | "schmitt_buffer" | "tri_state_buffer" | "instrumentation_amp" | "generic_ic" | "voltage_regulator" | "dc_dc_converter" | "555_timer" | "terminal_block" | "voltage_source" | "current_source" | "ac_source" | "battery" | "vcc" | "ground" | "gnd_signal" | "gnd_chassis" | "gnd_digital" | "switch_spst" | "switch_spdt" | "switch_dpdt" | "push_no" | "push_nc" | "relay_coil" | "relay_no" | "relay_nc" | "motor" | "speaker" | "microphone" | "buzzer" | "ammeter" | "voltmeter" | "wattmeter" | "oscilloscope" | "wire" | "dot" | "label" | "port" | "test_point" | "no_connect" | "antenna";
|
|
410
414
|
type CircuitDirection = "right" | "left" | "up" | "down";
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Layout: DiagramAST → LayoutResult
|
|
9
9
|
* - Renderer: LayoutResult → SVG string
|
|
10
10
|
*/
|
|
11
|
-
type DiagramType = "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid";
|
|
11
|
+
type DiagramType = "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid" | "erd" | "breadboard" | "bpmn" | "fbd" | "sfc";
|
|
12
12
|
type GenogramMode = "medical" | "heritage";
|
|
13
13
|
/**
|
|
14
14
|
* Standard legend positions:
|
|
@@ -388,6 +388,8 @@ interface LogicGateInput {
|
|
|
388
388
|
id: string;
|
|
389
389
|
label: string;
|
|
390
390
|
isActiveLow?: boolean;
|
|
391
|
+
/** True when the parser inferred this input from a gate reference rather than an explicit declaration. */
|
|
392
|
+
autoDeclared?: boolean;
|
|
391
393
|
}
|
|
392
394
|
interface LogicGateOutput {
|
|
393
395
|
id: string;
|
|
@@ -405,6 +407,8 @@ interface LogicGateAST {
|
|
|
405
407
|
gates: LogicGateNode[];
|
|
406
408
|
modules?: LogicGateModule[];
|
|
407
409
|
metadata?: Record<string, string>;
|
|
410
|
+
/** Non-fatal parser warnings (e.g. signals auto-declared as inputs). */
|
|
411
|
+
warnings?: string[];
|
|
408
412
|
}
|
|
409
413
|
type CircuitComponentType = "resistor" | "potentiometer" | "rheostat" | "thermistor_ntc" | "thermistor_ptc" | "ldr" | "varistor" | "fuse" | "fuse_slow" | "capacitor" | "electrolytic_cap" | "variable_cap" | "inductor" | "inductor_iron" | "inductor_ferrite" | "variable_inductor" | "ferrite_bead" | "crystal" | "transformer" | "diode" | "zener" | "schottky" | "led" | "photodiode" | "varactor" | "tvs_diode" | "bridge_rectifier" | "npn" | "pnp" | "darlington_npn" | "darlington_pnp" | "nmos" | "pmos" | "nmos_depletion" | "jfet_n" | "jfet_p" | "igbt" | "scr" | "triac" | "diac" | "phototransistor" | "optocoupler" | "opamp" | "comparator" | "schmitt_buffer" | "tri_state_buffer" | "instrumentation_amp" | "generic_ic" | "voltage_regulator" | "dc_dc_converter" | "555_timer" | "terminal_block" | "voltage_source" | "current_source" | "ac_source" | "battery" | "vcc" | "ground" | "gnd_signal" | "gnd_chassis" | "gnd_digital" | "switch_spst" | "switch_spdt" | "switch_dpdt" | "push_no" | "push_nc" | "relay_coil" | "relay_no" | "relay_nc" | "motor" | "speaker" | "microphone" | "buzzer" | "ammeter" | "voltmeter" | "wattmeter" | "oscilloscope" | "wire" | "dot" | "label" | "port" | "test_point" | "no_connect" | "antenna";
|
|
410
414
|
type CircuitDirection = "right" | "left" | "up" | "down";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "schematex",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Every diagram a doctor, engineer, or lawyer would actually use.
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"description": "Every diagram a doctor, engineer, or lawyer would actually use. 27 industry-standard diagrams (genogram, pedigree, ladder logic, SLD, FBD, SFC, P&ID, UML state diagram, phylo, fishbone, entity structure, ...) from a text DSL. Free, fully open source, made for AI. Pure SVG, zero dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/diagrams/timing/parser.ts","../src/diagrams/timing/renderer.ts","../src/diagrams/timing/index.ts"],"names":["text","title"],"mappings":"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","file":"chunk-3RAVPXLN.js","sourcesContent":["import type { TimingAST, TimingSignal, TimingGroup } from \"../../core/types\";\n\nexport class TimingParseError extends Error {\n constructor(\n message: string,\n public line?: number,\n public column?: number,\n public source?: string\n ) {\n super(line !== undefined ? `Line ${line}: ${message}` : message);\n this.name = \"TimingParseError\";\n }\n}\n\nconst VALID_STATES = /^[01xzpPnNhHlLudD=.23456789]+$/;\n\nfunction splitDataList(rest: string): { wave: string; data: string[] } {\n // Wave string is first token; remaining tokens are quoted strings or a `data: [...]` form\n const trimmed = rest.trim();\n // Accept: `wave data: [\"a\",\"b\"]` or `wave \"a\" \"b\" \"c\"`\n const m = trimmed.match(/^(\\S+)\\s*(.*)$/);\n if (!m) return { wave: trimmed, data: [] };\n const wave = m[1];\n const remainder = m[2].trim();\n if (!remainder) return { wave, data: [] };\n\n const data: string[] = [];\n // Strip `data:` prefix + optional brackets\n let r = remainder.replace(/^data\\s*:\\s*/, \"\").trim();\n if (r.startsWith(\"[\") && r.endsWith(\"]\")) r = r.slice(1, -1);\n const re = /\"([^\"]*)\"/g;\n let match: RegExpExecArray | null;\n while ((match = re.exec(r)) !== null) data.push(match[1]);\n return { wave, data };\n}\n\nexport function parseTiming(text: string): TimingAST {\n const lines = text.split(\"\\n\").map((l) => l.replace(/\\r$/, \"\"));\n const signals: Array<TimingSignal | TimingGroup> = [];\n let title: string | undefined;\n let hscale: number | undefined;\n let currentGroup: TimingGroup | null = null;\n\n for (let i = 0; i < lines.length; i++) {\n const raw = lines[i] ?? \"\";\n const lineNo = i + 1;\n const line = raw.trim();\n if (!line || line.startsWith(\"#\")) continue;\n\n // Header: `timing \"title\" [hscale: 2]`\n if (/^timing\\b/i.test(line)) {\n const titleMatch = line.match(/\"([^\"]*)\"/);\n if (titleMatch) title = titleMatch[1];\n const hs = line.match(/hscale\\s*:\\s*(\\d+(?:\\.\\d+)?)/);\n if (hs) hscale = parseFloat(hs[1]);\n continue;\n }\n\n // Group start: `[GroupName]` or `group \"name\" {`\n const groupOpen = line.match(/^\\[([^\\]]+)\\]$/) || line.match(/^group\\s+\"([^\"]+)\"\\s*\\{?$/);\n if (groupOpen) {\n currentGroup = { label: groupOpen[1], signals: [] };\n signals.push(currentGroup);\n continue;\n }\n if (line === \"}\") {\n currentGroup = null;\n continue;\n }\n if (line === \"---\") {\n currentGroup = null;\n continue;\n }\n\n // Signal: `NAME: wave ...`\n const sigMatch = line.match(/^([^:]+):\\s*(.+)$/);\n if (sigMatch) {\n const name = sigMatch[1].trim();\n const { wave, data } = splitDataList(sigMatch[2]);\n if (!VALID_STATES.test(wave)) {\n throw new TimingParseError(`Invalid wave string \"${wave}\" for signal ${name}`, lineNo, undefined, line);\n }\n const signal: TimingSignal = { name, wave, data: data.length ? data : undefined };\n if (currentGroup) currentGroup.signals.push(signal);\n else signals.push(signal);\n continue;\n }\n }\n\n return { type: \"timing\", title, hscale, signals };\n}\n","import type { TimingAST, TimingSignal, TimingGroup } from \"../../core/types\";\nimport { svgRoot, defs, group, el, text, title as titleEl, desc } from \"../../core/svg\";\n\nconst NAME_W = 120;\nconst SIG_H = 36;\nconst PAD_TOP = 12;\nconst PAD_BOT = 12;\nconst PAD_V = 6; // vertical padding inside band for rail spacing\nconst DEFAULT_PW = 40;\nconst GROUP_LABEL_H = 22;\n\ntype FlatRow =\n | { kind: \"signal\"; signal: TimingSignal; indent: number }\n | { kind: \"group\"; label: string; indent: number };\n\nfunction flatten(items: Array<TimingSignal | TimingGroup>, indent = 0): FlatRow[] {\n const out: FlatRow[] = [];\n for (const item of items) {\n if (\"wave\" in item) {\n out.push({ kind: \"signal\", signal: item, indent });\n } else {\n out.push({ kind: \"group\", label: item.label, indent });\n out.push(...flatten(item.signals, indent + 1));\n }\n }\n return out;\n}\n\ninterface WaveCtx {\n pw: number;\n yHi: number;\n yLo: number;\n yMid: number;\n h: number;\n}\n\ntype PrevState = \"hi\" | \"lo\" | \"bus\" | \"z\" | \"x\" | \"none\";\n\nfunction renderWave(signal: TimingSignal, ctx: WaveCtx): { svg: string; labels: string } {\n const { pw, yHi, yLo, yMid } = ctx;\n const wave = signal.wave;\n const paths: string[] = [];\n const busRects: string[] = [];\n const busTexts: string[] = [];\n const xPatchRects: string[] = [];\n const zLines: string[] = [];\n\n let prev: PrevState = \"none\";\n let prevChar = \"\";\n let busStartX = 0;\n let busIndex = 0;\n let dataIdx = 0;\n let linePath = \"\";\n\n const startLine = (x: number, y: number) => {\n if (linePath) paths.push(linePath);\n linePath = `M ${x},${y}`;\n };\n const extendLineTo = (x: number, y: number) => {\n linePath += ` L ${x},${y}`;\n };\n const flushLine = () => {\n if (linePath) {\n paths.push(linePath);\n linePath = \"\";\n }\n };\n\n const closeBus = (x: number) => {\n const start = busStartX;\n const end = x;\n const inset = Math.min(5, (end - start) / 2);\n // Trapezoid outline\n const d = `M ${start + inset},${yHi} L ${end - inset},${yHi} L ${end},${yMid} L ${end - inset},${yLo} L ${start + inset},${yLo} L ${start},${yMid} Z`;\n busRects.push(\n el(\"path\", { class: \"schematex-timing-bus\", d, \"data-bus-index\": String(busIndex) })\n );\n // Data label\n const label = signal.data?.[dataIdx] ?? \"\";\n if (label) {\n busTexts.push(\n text(\n {\n x: (start + end) / 2,\n y: yMid + 4,\n class: \"schematex-timing-bus-label\",\n \"text-anchor\": \"middle\",\n },\n label\n )\n );\n }\n dataIdx++;\n busIndex++;\n };\n\n for (let i = 0; i < wave.length; i++) {\n const ch = wave[i];\n const x = i * pw;\n const xNext = x + pw;\n\n // Handle continuation '.'\n const effective = ch === \".\" ? prevChar : ch;\n\n switch (effective) {\n case \"0\":\n case \"l\":\n case \"L\": {\n if (prev === \"bus\") closeBus(x);\n if (prev === \"x\" || prev === \"z\" || prev === \"none\" || prev === \"bus\") {\n flushLine();\n startLine(x, yLo);\n } else if (prev === \"hi\") {\n extendLineTo(x, yLo);\n }\n extendLineTo(xNext, yLo);\n prev = \"lo\";\n break;\n }\n case \"1\":\n case \"h\":\n case \"H\": {\n if (prev === \"bus\") closeBus(x);\n if (prev === \"x\" || prev === \"z\" || prev === \"none\" || prev === \"bus\") {\n flushLine();\n startLine(x, yHi);\n } else if (prev === \"lo\") {\n extendLineTo(x, yHi);\n }\n extendLineTo(xNext, yHi);\n prev = \"hi\";\n break;\n }\n case \"p\":\n case \"P\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n // One-period positive clock: lo→hi at x, hi until midpoint, lo at mid, lo until xNext\n startLine(x, yLo);\n extendLineTo(x, yHi);\n extendLineTo(x + pw / 2, yHi);\n extendLineTo(x + pw / 2, yLo);\n extendLineTo(xNext, yLo);\n flushLine();\n prev = \"lo\";\n break;\n }\n case \"n\":\n case \"N\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yHi);\n extendLineTo(x, yLo);\n extendLineTo(x + pw / 2, yLo);\n extendLineTo(x + pw / 2, yHi);\n extendLineTo(xNext, yHi);\n flushLine();\n prev = \"hi\";\n break;\n }\n case \"u\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yLo);\n extendLineTo(xNext, yHi);\n prev = \"hi\";\n break;\n }\n case \"d\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yHi);\n extendLineTo(xNext, yLo);\n prev = \"lo\";\n break;\n }\n case \"z\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n zLines.push(\n el(\"line\", {\n x1: x,\n y1: yMid,\n x2: xNext,\n y2: yMid,\n class: \"schematex-timing-hiz\",\n })\n );\n prev = \"z\";\n break;\n }\n case \"x\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n xPatchRects.push(\n el(\"rect\", {\n x,\n y: yHi,\n width: pw,\n height: yLo - yHi,\n class: \"schematex-timing-unknown\",\n fill: \"url(#schematex-timing-xhatch)\",\n })\n );\n prev = \"x\";\n break;\n }\n case \"=\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n // Each fresh bus char (not '.') begins a new segment.\n const isContinuation = ch === \".\";\n if (!isContinuation && prev === \"bus\") closeBus(x);\n if (prev !== \"bus\" || !isContinuation) {\n flushLine();\n busStartX = x;\n }\n prev = \"bus\";\n break;\n }\n default: {\n // unknown char -> treat as x\n flushLine();\n xPatchRects.push(\n el(\"rect\", {\n x,\n y: yHi,\n width: pw,\n height: yLo - yHi,\n class: \"schematex-timing-unknown\",\n fill: \"url(#schematex-timing-xhatch)\",\n })\n );\n prev = \"x\";\n }\n }\n\n prevChar = effective;\n }\n\n // Close trailing bus\n if (prev === \"bus\") closeBus(wave.length * pw);\n flushLine();\n\n const waveSvg = paths\n .map((d) => el(\"path\", { class: \"schematex-timing-wave\", d }))\n .concat(xPatchRects, zLines, busRects)\n .join(\"\");\n\n return { svg: waveSvg, labels: busTexts.join(\"\") };\n}\n\nexport function renderTiming(ast: TimingAST): string {\n const pw = DEFAULT_PW * (ast.hscale ?? 1);\n const rows = flatten(ast.signals);\n const maxWaveLen = Math.max(\n 1,\n ...rows.flatMap((r) => (r.kind === \"signal\" ? [r.signal.wave.length] : []))\n );\n const waveAreaW = maxWaveLen * pw;\n const width = NAME_W + waveAreaW + 20;\n\n let y = PAD_TOP;\n const rowYs: number[] = [];\n for (const r of rows) {\n rowYs.push(y);\n y += r.kind === \"group\" ? GROUP_LABEL_H : SIG_H;\n }\n const height = y + PAD_BOT + 10;\n\n // Render rows\n const waveSvgs: string[] = [];\n const labelSvgs: string[] = [];\n const nameSvgs: string[] = [];\n const gridLines: string[] = [];\n\n // Grid: vertical period ticks across signal area\n for (let i = 0; i <= maxWaveLen; i++) {\n const xg = NAME_W + i * pw;\n gridLines.push(\n el(\"line\", {\n x1: xg,\n y1: PAD_TOP,\n x2: xg,\n y2: height - PAD_BOT,\n class: \"schematex-timing-grid\",\n })\n );\n }\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const ry = rowYs[i];\n\n if (row.kind === \"group\") {\n nameSvgs.push(\n text(\n {\n x: 6 + row.indent * 10,\n y: ry + GROUP_LABEL_H - 6,\n class: \"schematex-timing-group-label\",\n },\n row.label\n )\n );\n continue;\n }\n\n const signal = row.signal;\n const yHi = ry + PAD_V;\n const yLo = ry + SIG_H - PAD_V;\n const yMid = ry + SIG_H / 2;\n\n // Signal name (right-aligned in name column). `~NAME` or `/NAME` → overlined active-low.\n const activeLow = signal.name.startsWith(\"~\") || signal.name.startsWith(\"/\");\n const displayName = activeLow ? signal.name.slice(1) : signal.name;\n nameSvgs.push(\n text(\n {\n x: NAME_W - 8,\n y: yMid + 4,\n class: activeLow\n ? \"schematex-timing-name schematex-timing-name-activelow\"\n : \"schematex-timing-name\",\n \"text-anchor\": \"end\",\n },\n displayName\n )\n );\n\n const { svg, labels } = renderWave(signal, {\n pw,\n yHi,\n yLo,\n yMid,\n h: SIG_H - 2 * PAD_V,\n });\n\n waveSvgs.push(\n group(\n {\n transform: `translate(${NAME_W}, 0)`,\n \"data-signal\": signal.name,\n },\n [svg]\n )\n );\n labelSvgs.push(\n group({ transform: `translate(${NAME_W}, 0)` }, [labels])\n );\n }\n\n const xhatch = el(\n \"pattern\",\n {\n id: \"schematex-timing-xhatch\",\n patternUnits: \"userSpaceOnUse\",\n width: 6,\n height: 6,\n },\n [\n el(\"rect\", { x: 0, y: 0, width: 6, height: 6, fill: \"#f5f5f5\" }),\n el(\"path\", {\n d: \"M 0,6 L 6,0 M -1,1 L 1,-1 M 5,7 L 7,5\",\n stroke: \"#999\",\n \"stroke-width\": 0.8,\n }),\n ]\n );\n\n const css = `\n.schematex-timing { font-family: system-ui, -apple-system, sans-serif; }\n.schematex-timing-name { font: 12px monospace; fill: #111; }\n.schematex-timing-name-activelow { text-decoration: overline; }\n.schematex-timing-group-label { font: bold 12px sans-serif; fill: #111; }\n.schematex-timing-wave { stroke: #111; stroke-width: 1.75; fill: none; stroke-linejoin: miter; stroke-linecap: square; }\n.schematex-timing-bus { fill: none; stroke: #111; stroke-width: 1.5; }\n.schematex-timing-bus-label { font: 11px monospace; fill: #111; }\n.schematex-timing-unknown { stroke: #555; stroke-width: 0.5; }\n.schematex-timing-hiz { stroke: #555; stroke-width: 1.5; stroke-dasharray: 4 3; }\n.schematex-timing-grid { stroke: #eee; stroke-width: 0.5; }\n`.trim();\n\n return svgRoot(\n {\n class: \"schematex-timing\",\n viewBox: `0 0 ${width} ${height}`,\n width,\n height,\n role: \"img\",\n \"data-diagram-type\": \"timing\",\n },\n [\n titleEl(ast.title ?? \"Timing Diagram\"),\n desc(`Digital timing diagram with ${rows.filter((r) => r.kind === \"signal\").length} signals`),\n defs([xhatch, el(\"style\", {}, css)]),\n group({ class: \"schematex-timing-grid-g\" }, gridLines),\n group({ class: \"schematex-timing-waves\" }, waveSvgs),\n group({ class: \"schematex-timing-labels\" }, labelSvgs),\n group({ class: \"schematex-timing-names\" }, nameSvgs),\n ast.title\n ? text(\n {\n x: width / 2,\n y: 14,\n \"text-anchor\": \"middle\",\n class: \"schematex-timing-title\",\n style: \"font: bold 13px sans-serif; fill: #333;\",\n },\n ast.title\n )\n : \"\",\n ]\n );\n}\n","import type { DiagramPlugin } from \"../../core/types\";\nimport { parseTiming } from \"./parser\";\nimport { renderTiming } from \"./renderer\";\n\nexport const timing: DiagramPlugin = {\n type: \"timing\",\n detect(text: string): boolean {\n const first = text.trim().split(\"\\n\")[0]?.trim().toLowerCase() ?? \"\";\n return first.startsWith(\"timing\");\n },\n parse: parseTiming,\n\n render(text: string): string {\n const ast = parseTiming(text);\n return renderTiming(ast);\n },\n};\n\nexport { parseTiming } from \"./parser\";\nexport { renderTiming } from \"./renderer\";\n"]}
|