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.
Files changed (182) hide show
  1. package/README.md +75 -1
  2. package/dist/ai/ai-sdk.cjs +23 -23
  3. package/dist/ai/ai-sdk.d.cts +4 -4
  4. package/dist/ai/ai-sdk.d.ts +4 -4
  5. package/dist/ai/ai-sdk.js +18 -18
  6. package/dist/ai/index.cjs +35 -27
  7. package/dist/ai/index.d.cts +4 -4
  8. package/dist/ai/index.d.ts +4 -4
  9. package/dist/ai/index.js +18 -18
  10. package/dist/{api-Cr_MxttI.d.ts → api-BEJTXyBA.d.cts} +3 -40
  11. package/dist/{api-C5SECOxZ.d.cts → api-DFrSR3lw.d.ts} +3 -40
  12. package/dist/browser.cjs +24 -24
  13. package/dist/browser.d.cts +3 -3
  14. package/dist/browser.d.ts +3 -3
  15. package/dist/browser.js +18 -18
  16. package/dist/{chunk-N7W5KZK7.cjs → chunk-2L4YXZAZ.cjs} +4 -4
  17. package/dist/{chunk-N7W5KZK7.cjs.map → chunk-2L4YXZAZ.cjs.map} +1 -1
  18. package/dist/{chunk-ZYRCPSBU.js → chunk-3IE7KZY4.js} +4 -4
  19. package/dist/{chunk-ZYRCPSBU.js.map → chunk-3IE7KZY4.js.map} +1 -1
  20. package/dist/{chunk-ZX74KJPM.js → chunk-3VB5AT4R.js} +3 -3
  21. package/dist/{chunk-ZX74KJPM.js.map → chunk-3VB5AT4R.js.map} +1 -1
  22. package/dist/{chunk-S2KJRHDZ.cjs → chunk-4UFR2LB6.cjs} +13 -13
  23. package/dist/{chunk-S2KJRHDZ.cjs.map → chunk-4UFR2LB6.cjs.map} +1 -1
  24. package/dist/{chunk-4QPDZJAL.cjs → chunk-4XR7X7XW.cjs} +11569 -9045
  25. package/dist/chunk-4XR7X7XW.cjs.map +1 -0
  26. package/dist/{chunk-6OSUNBZY.js → chunk-522WB2EH.js} +135 -7
  27. package/dist/chunk-522WB2EH.js.map +1 -0
  28. package/dist/{chunk-QTNPMIO2.cjs → chunk-6JI6FWLZ.cjs} +341 -35
  29. package/dist/chunk-6JI6FWLZ.cjs.map +1 -0
  30. package/dist/{chunk-UFTYX73U.js → chunk-7F76AWOI.js} +339 -35
  31. package/dist/chunk-7F76AWOI.js.map +1 -0
  32. package/dist/{chunk-BW4KGTV7.cjs → chunk-C5C5EF3W.cjs} +4 -4
  33. package/dist/{chunk-BW4KGTV7.cjs.map → chunk-C5C5EF3W.cjs.map} +1 -1
  34. package/dist/{chunk-VJGMEGMR.js → chunk-DOK7LKLO.js} +125 -13
  35. package/dist/chunk-DOK7LKLO.js.map +1 -0
  36. package/dist/{chunk-L3CTXXVZ.js → chunk-FBS3PACU.js} +3 -3
  37. package/dist/{chunk-L3CTXXVZ.js.map → chunk-FBS3PACU.js.map} +1 -1
  38. package/dist/{chunk-QUKVGHN4.cjs → chunk-FKJBXGWP.cjs} +4 -4
  39. package/dist/{chunk-QUKVGHN4.cjs.map → chunk-FKJBXGWP.cjs.map} +1 -1
  40. package/dist/{chunk-SZK376QB.js → chunk-H4MT5TJP.js} +3 -3
  41. package/dist/{chunk-SZK376QB.js.map → chunk-H4MT5TJP.js.map} +1 -1
  42. package/dist/{chunk-3M6T7KB4.js → chunk-HAZALB7U.js} +3 -3
  43. package/dist/{chunk-3M6T7KB4.js.map → chunk-HAZALB7U.js.map} +1 -1
  44. package/dist/{chunk-VFZOPRQP.cjs → chunk-HWVBHU3O.cjs} +5 -5
  45. package/dist/{chunk-VFZOPRQP.cjs.map → chunk-HWVBHU3O.cjs.map} +1 -1
  46. package/dist/{chunk-OK5ZS3LU.js → chunk-I2GQYOZ5.js} +11586 -9069
  47. package/dist/chunk-I2GQYOZ5.js.map +1 -0
  48. package/dist/{chunk-D7EHZFK4.cjs → chunk-L7POWM5B.cjs} +138 -2
  49. package/dist/chunk-L7POWM5B.cjs.map +1 -0
  50. package/dist/{chunk-2VNMKOUO.js → chunk-LRI4RH2N.js} +135 -3
  51. package/dist/chunk-LRI4RH2N.js.map +1 -0
  52. package/dist/{chunk-EPKIJEH7.js → chunk-MFAMNFPA.js} +63 -6
  53. package/dist/chunk-MFAMNFPA.js.map +1 -0
  54. package/dist/{chunk-VDSYMSUY.js → chunk-MVIEIKOI.js} +3 -3
  55. package/dist/{chunk-VDSYMSUY.js.map → chunk-MVIEIKOI.js.map} +1 -1
  56. package/dist/{chunk-ZL5RB4UV.js → chunk-N5B242WY.js} +3 -3
  57. package/dist/{chunk-ZL5RB4UV.js.map → chunk-N5B242WY.js.map} +1 -1
  58. package/dist/{chunk-VKPCR7BG.js → chunk-OTSVMKII.js} +883 -12
  59. package/dist/chunk-OTSVMKII.js.map +1 -0
  60. package/dist/{chunk-YLEVMOK2.cjs → chunk-R66QG3XT.cjs} +5 -4
  61. package/dist/{chunk-YLEVMOK2.cjs.map → chunk-R66QG3XT.cjs.map} +1 -1
  62. package/dist/{chunk-3M6WB62Y.cjs → chunk-R6VX5YTJ.cjs} +139 -7
  63. package/dist/chunk-R6VX5YTJ.cjs.map +1 -0
  64. package/dist/{chunk-I55HO32M.js → chunk-RJMCWT7Z.js} +3 -3
  65. package/dist/{chunk-I55HO32M.js.map → chunk-RJMCWT7Z.js.map} +1 -1
  66. package/dist/{chunk-TZTCIAYW.cjs → chunk-S3RMAXH5.cjs} +137 -25
  67. package/dist/chunk-S3RMAXH5.cjs.map +1 -0
  68. package/dist/{chunk-HK56GQQP.cjs → chunk-SSLNPHCL.cjs} +886 -13
  69. package/dist/chunk-SSLNPHCL.cjs.map +1 -0
  70. package/dist/{chunk-IBRW3UOA.js → chunk-TWLKXV2O.js} +3 -3
  71. package/dist/{chunk-IBRW3UOA.js.map → chunk-TWLKXV2O.js.map} +1 -1
  72. package/dist/{chunk-VCH7RI5H.js → chunk-UWA5MWCI.js} +4 -4
  73. package/dist/chunk-UWA5MWCI.js.map +1 -0
  74. package/dist/{chunk-RYVV5UVI.cjs → chunk-V4GILQR6.cjs} +4 -4
  75. package/dist/{chunk-RYVV5UVI.cjs.map → chunk-V4GILQR6.cjs.map} +1 -1
  76. package/dist/{chunk-QMTWG6JL.cjs → chunk-V4RO5KYY.cjs} +6 -4
  77. package/dist/chunk-V4RO5KYY.cjs.map +1 -0
  78. package/dist/{chunk-VZ5LDNHK.cjs → chunk-VTSH4YPT.cjs} +12 -12
  79. package/dist/{chunk-VZ5LDNHK.cjs.map → chunk-VTSH4YPT.cjs.map} +1 -1
  80. package/dist/{chunk-UUBNQV2T.cjs → chunk-WQDIZH2Z.cjs} +12 -12
  81. package/dist/{chunk-UUBNQV2T.cjs.map → chunk-WQDIZH2Z.cjs.map} +1 -1
  82. package/dist/{chunk-SUIDD2C5.cjs → chunk-XNCOSVNG.cjs} +63 -6
  83. package/dist/chunk-XNCOSVNG.cjs.map +1 -0
  84. package/dist/{chunk-EGSUMHCS.cjs → chunk-YB4XJY5L.cjs} +12 -12
  85. package/dist/{chunk-EGSUMHCS.cjs.map → chunk-YB4XJY5L.cjs.map} +1 -1
  86. package/dist/{chunk-JHDR56XO.js → chunk-YS6CGUNH.js} +3 -3
  87. package/dist/{chunk-JHDR56XO.js.map → chunk-YS6CGUNH.js.map} +1 -1
  88. package/dist/{types-WTr9W5Ud.d.ts → diagnostics-B-ffSEhl.d.cts} +82 -2
  89. package/dist/{types-WTr9W5Ud.d.cts → diagnostics-B-ffSEhl.d.ts} +82 -2
  90. package/dist/diagrams/blockdiagram/index.cjs +5 -5
  91. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  92. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  93. package/dist/diagrams/blockdiagram/index.js +1 -1
  94. package/dist/diagrams/circuit/index.cjs +8 -8
  95. package/dist/diagrams/circuit/index.d.cts +1 -1
  96. package/dist/diagrams/circuit/index.d.ts +1 -1
  97. package/dist/diagrams/circuit/index.js +2 -2
  98. package/dist/diagrams/ecomap/index.cjs +7 -7
  99. package/dist/diagrams/ecomap/index.d.cts +1 -1
  100. package/dist/diagrams/ecomap/index.d.ts +1 -1
  101. package/dist/diagrams/ecomap/index.js +2 -2
  102. package/dist/diagrams/entity/index.cjs +6 -6
  103. package/dist/diagrams/entity/index.d.cts +1 -1
  104. package/dist/diagrams/entity/index.d.ts +1 -1
  105. package/dist/diagrams/entity/index.js +2 -2
  106. package/dist/diagrams/fishbone/index.cjs +8 -8
  107. package/dist/diagrams/fishbone/index.d.cts +1 -1
  108. package/dist/diagrams/fishbone/index.d.ts +1 -1
  109. package/dist/diagrams/fishbone/index.js +2 -2
  110. package/dist/diagrams/flowchart/index.cjs +8 -8
  111. package/dist/diagrams/flowchart/index.d.cts +2 -2
  112. package/dist/diagrams/flowchart/index.d.ts +2 -2
  113. package/dist/diagrams/flowchart/index.js +2 -2
  114. package/dist/diagrams/genogram/index.cjs +9 -9
  115. package/dist/diagrams/genogram/index.d.cts +1 -1
  116. package/dist/diagrams/genogram/index.d.ts +1 -1
  117. package/dist/diagrams/genogram/index.js +2 -2
  118. package/dist/diagrams/ladder/index.cjs +6 -6
  119. package/dist/diagrams/ladder/index.d.cts +1 -1
  120. package/dist/diagrams/ladder/index.d.ts +1 -1
  121. package/dist/diagrams/ladder/index.js +2 -2
  122. package/dist/diagrams/logic/index.cjs +6 -6
  123. package/dist/diagrams/logic/index.d.cts +1 -1
  124. package/dist/diagrams/logic/index.d.ts +1 -1
  125. package/dist/diagrams/logic/index.js +2 -2
  126. package/dist/diagrams/orgchart/index.cjs +7 -7
  127. package/dist/diagrams/orgchart/index.d.cts +1 -1
  128. package/dist/diagrams/orgchart/index.d.ts +1 -1
  129. package/dist/diagrams/orgchart/index.js +2 -2
  130. package/dist/diagrams/pedigree/index.cjs +7 -7
  131. package/dist/diagrams/pedigree/index.d.cts +1 -1
  132. package/dist/diagrams/pedigree/index.d.ts +1 -1
  133. package/dist/diagrams/pedigree/index.js +2 -2
  134. package/dist/diagrams/phylo/index.cjs +7 -7
  135. package/dist/diagrams/phylo/index.d.cts +1 -1
  136. package/dist/diagrams/phylo/index.d.ts +1 -1
  137. package/dist/diagrams/phylo/index.js +2 -2
  138. package/dist/diagrams/sld/index.cjs +14 -6
  139. package/dist/diagrams/sld/index.d.cts +14 -2
  140. package/dist/diagrams/sld/index.d.ts +14 -2
  141. package/dist/diagrams/sld/index.js +2 -2
  142. package/dist/diagrams/sociogram/index.cjs +6 -6
  143. package/dist/diagrams/sociogram/index.d.cts +1 -1
  144. package/dist/diagrams/sociogram/index.d.ts +1 -1
  145. package/dist/diagrams/sociogram/index.js +2 -2
  146. package/dist/diagrams/timing/index.d.cts +1 -1
  147. package/dist/diagrams/timing/index.d.ts +1 -1
  148. package/dist/diagrams/venn/index.cjs +9 -9
  149. package/dist/diagrams/venn/index.d.cts +1 -1
  150. package/dist/diagrams/venn/index.d.ts +1 -1
  151. package/dist/diagrams/venn/index.js +2 -2
  152. package/dist/{index-BD2yDfQM.d.cts → index-DPWdYfNx.d.ts} +60 -2
  153. package/dist/{index-C30zQWZI.d.ts → index-S0njakQ2.d.cts} +60 -2
  154. package/dist/index.cjs +344 -56
  155. package/dist/index.cjs.map +1 -1
  156. package/dist/index.d.cts +38 -4
  157. package/dist/index.d.ts +38 -4
  158. package/dist/index.js +284 -17
  159. package/dist/index.js.map +1 -1
  160. package/dist/react.cjs +18 -18
  161. package/dist/react.d.cts +2 -2
  162. package/dist/react.d.ts +2 -2
  163. package/dist/react.js +17 -17
  164. package/dist/{tools-DlpuE76u.d.cts → tools-CeGGMCs7.d.cts} +12 -4
  165. package/dist/{tools-BHWaJPOl.d.ts → tools-kK_enDwb.d.ts} +12 -4
  166. package/package.json +1 -1
  167. package/dist/chunk-2VNMKOUO.js.map +0 -1
  168. package/dist/chunk-3M6WB62Y.cjs.map +0 -1
  169. package/dist/chunk-4QPDZJAL.cjs.map +0 -1
  170. package/dist/chunk-6OSUNBZY.js.map +0 -1
  171. package/dist/chunk-D7EHZFK4.cjs.map +0 -1
  172. package/dist/chunk-EPKIJEH7.js.map +0 -1
  173. package/dist/chunk-HK56GQQP.cjs.map +0 -1
  174. package/dist/chunk-OK5ZS3LU.js.map +0 -1
  175. package/dist/chunk-QMTWG6JL.cjs.map +0 -1
  176. package/dist/chunk-QTNPMIO2.cjs.map +0 -1
  177. package/dist/chunk-SUIDD2C5.cjs.map +0 -1
  178. package/dist/chunk-TZTCIAYW.cjs.map +0 -1
  179. package/dist/chunk-UFTYX73U.js.map +0 -1
  180. package/dist/chunk-VCH7RI5H.js.map +0 -1
  181. package/dist/chunk-VJGMEGMR.js.map +0 -1
  182. 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 chunk4QPDZJAL_cjs = require('./chunk-4QPDZJAL.cjs');
4
- var chunkQUKVGHN4_cjs = require('./chunk-QUKVGHN4.cjs');
5
- var chunkQMTWG6JL_cjs = require('./chunk-QMTWG6JL.cjs');
6
- var chunkSUIDD2C5_cjs = require('./chunk-SUIDD2C5.cjs');
7
- var chunkN7W5KZK7_cjs = require('./chunk-N7W5KZK7.cjs');
8
- var chunk3M6WB62Y_cjs = require('./chunk-3M6WB62Y.cjs');
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 chunkRYVV5UVI_cjs = require('./chunk-RYVV5UVI.cjs');
11
- var chunkVFZOPRQP_cjs = require('./chunk-VFZOPRQP.cjs');
12
- var chunkBW4KGTV7_cjs = require('./chunk-BW4KGTV7.cjs');
13
- var chunkQTNPMIO2_cjs = require('./chunk-QTNPMIO2.cjs');
14
- var chunkTZTCIAYW_cjs = require('./chunk-TZTCIAYW.cjs');
15
- var chunkVZ5LDNHK_cjs = require('./chunk-VZ5LDNHK.cjs');
16
- var chunkEGSUMHCS_cjs = require('./chunk-EGSUMHCS.cjs');
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 chunkS2KJRHDZ_cjs = require('./chunk-S2KJRHDZ.cjs');
19
- var chunkUUBNQV2T_cjs = require('./chunk-UUBNQV2T.cjs');
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 chunkYLEVMOK2_cjs = require('./chunk-YLEVMOK2.cjs');
23
- var chunkD7EHZFK4_cjs = require('./chunk-D7EHZFK4.cjs');
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 chunk4QPDZJAL_cjs.decisiontree; }
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 chunk4QPDZJAL_cjs.parse; }
297
+ get: function () { return chunk4XR7X7XW_cjs.parse; }
36
298
  });
37
299
  Object.defineProperty(exports, "parseResult", {
38
300
  enumerable: true,
39
- get: function () { return chunk4QPDZJAL_cjs.parseResult; }
301
+ get: function () { return chunk4XR7X7XW_cjs.parseResult; }
40
302
  });
41
303
  Object.defineProperty(exports, "pert", {
42
304
  enumerable: true,
43
- get: function () { return chunk4QPDZJAL_cjs.pert; }
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 chunk4QPDZJAL_cjs.pid; }
313
+ get: function () { return chunk4XR7X7XW_cjs.pid; }
48
314
  });
49
315
  Object.defineProperty(exports, "prisma", {
50
316
  enumerable: true,
51
- get: function () { return chunk4QPDZJAL_cjs.prisma; }
317
+ get: function () { return chunk4XR7X7XW_cjs.prisma; }
52
318
  });
53
319
  Object.defineProperty(exports, "render", {
54
320
  enumerable: true,
55
- get: function () { return chunk4QPDZJAL_cjs.render; }
321
+ get: function () { return chunk4XR7X7XW_cjs.render; }
56
322
  });
57
323
  Object.defineProperty(exports, "renderPreview", {
58
324
  enumerable: true,
59
- get: function () { return chunk4QPDZJAL_cjs.renderPreview; }
325
+ get: function () { return chunk4XR7X7XW_cjs.renderPreview; }
60
326
  });
61
327
  Object.defineProperty(exports, "renderResult", {
62
328
  enumerable: true,
63
- get: function () { return chunk4QPDZJAL_cjs.renderResult; }
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 chunk4QPDZJAL_cjs.state; }
337
+ get: function () { return chunk4XR7X7XW_cjs.state; }
68
338
  });
69
339
  Object.defineProperty(exports, "timeline", {
70
340
  enumerable: true,
71
- get: function () { return chunk4QPDZJAL_cjs.timeline; }
341
+ get: function () { return chunk4XR7X7XW_cjs.timeline; }
72
342
  });
73
343
  Object.defineProperty(exports, "usecase", {
74
344
  enumerable: true,
75
- get: function () { return chunk4QPDZJAL_cjs.usecase; }
345
+ get: function () { return chunk4XR7X7XW_cjs.usecase; }
76
346
  });
77
347
  Object.defineProperty(exports, "orgchart", {
78
348
  enumerable: true,
79
- get: function () { return chunkQUKVGHN4_cjs.orgchart; }
349
+ get: function () { return chunkFKJBXGWP_cjs.orgchart; }
80
350
  });
81
351
  Object.defineProperty(exports, "circuit", {
82
352
  enumerable: true,
83
- get: function () { return chunkQMTWG6JL_cjs.circuit; }
353
+ get: function () { return chunkV4RO5KYY_cjs.circuit; }
84
354
  });
85
355
  Object.defineProperty(exports, "blockdiagram", {
86
356
  enumerable: true,
87
- get: function () { return chunkSUIDD2C5_cjs.blockdiagram; }
357
+ get: function () { return chunkXNCOSVNG_cjs.blockdiagram; }
88
358
  });
89
359
  Object.defineProperty(exports, "ladder", {
90
360
  enumerable: true,
91
- get: function () { return chunkN7W5KZK7_cjs.ladder; }
361
+ get: function () { return chunk2L4YXZAZ_cjs.ladder; }
92
362
  });
93
363
  Object.defineProperty(exports, "sld", {
94
364
  enumerable: true,
95
- get: function () { return chunk3M6WB62Y_cjs.sld; }
365
+ get: function () { return chunkR6VX5YTJ_cjs.sld; }
96
366
  });
97
367
  Object.defineProperty(exports, "entity", {
98
368
  enumerable: true,
99
- get: function () { return chunkRYVV5UVI_cjs.entity; }
369
+ get: function () { return chunkV4GILQR6_cjs.entity; }
100
370
  });
101
371
  Object.defineProperty(exports, "fishbone", {
102
372
  enumerable: true,
103
- get: function () { return chunkVFZOPRQP_cjs.fishbone; }
373
+ get: function () { return chunkHWVBHU3O_cjs.fishbone; }
104
374
  });
105
375
  Object.defineProperty(exports, "venn", {
106
376
  enumerable: true,
107
- get: function () { return chunkBW4KGTV7_cjs.venn; }
377
+ get: function () { return chunkC5C5EF3W_cjs.venn; }
108
378
  });
109
379
  Object.defineProperty(exports, "flowchart", {
110
380
  enumerable: true,
111
- get: function () { return chunkQTNPMIO2_cjs.flowchart; }
381
+ get: function () { return chunk6JI6FWLZ_cjs.flowchart; }
112
382
  });
113
383
  Object.defineProperty(exports, "genogram", {
114
384
  enumerable: true,
115
- get: function () { return chunkTZTCIAYW_cjs.genogram; }
385
+ get: function () { return chunkS3RMAXH5_cjs.genogram; }
116
386
  });
117
387
  Object.defineProperty(exports, "ecomap", {
118
388
  enumerable: true,
119
- get: function () { return chunkVZ5LDNHK_cjs.ecomap; }
389
+ get: function () { return chunkVTSH4YPT_cjs.ecomap; }
120
390
  });
121
391
  Object.defineProperty(exports, "pedigree", {
122
392
  enumerable: true,
123
- get: function () { return chunkEGSUMHCS_cjs.pedigree; }
393
+ get: function () { return chunkYB4XJY5L_cjs.pedigree; }
124
394
  });
125
395
  Object.defineProperty(exports, "phylo", {
126
396
  enumerable: true,
127
- get: function () { return chunkS2KJRHDZ_cjs.phylo; }
397
+ get: function () { return chunk4UFR2LB6_cjs.phylo; }
128
398
  });
129
399
  Object.defineProperty(exports, "sociogram", {
130
400
  enumerable: true,
131
- get: function () { return chunkUUBNQV2T_cjs.sociogram; }
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 chunkYLEVMOK2_cjs.logic; }
409
+ get: function () { return chunkR66QG3XT_cjs.logic; }
140
410
  });
141
411
  Object.defineProperty(exports, "BASE_THEMES", {
142
412
  enumerable: true,
143
- get: function () { return chunkD7EHZFK4_cjs.BASE_THEMES; }
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 chunkD7EHZFK4_cjs.BIOLOGY_TOKENS; }
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 chunkD7EHZFK4_cjs.PERSON_TOKENS; }
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 chunkD7EHZFK4_cjs.VENN_TOKENS; }
433
+ get: function () { return chunkL7POWM5B_cjs.VENN_TOKENS; }
156
434
  });
157
435
  Object.defineProperty(exports, "resolveBaseTheme", {
158
436
  enumerable: true,
159
- get: function () { return chunkD7EHZFK4_cjs.resolveBaseTheme; }
437
+ get: function () { return chunkL7POWM5B_cjs.resolveBaseTheme; }
160
438
  });
161
439
  Object.defineProperty(exports, "resolveBiologyTheme", {
162
440
  enumerable: true,
163
- get: function () { return chunkD7EHZFK4_cjs.resolveBiologyTheme; }
441
+ get: function () { return chunkL7POWM5B_cjs.resolveBiologyTheme; }
164
442
  });
165
443
  Object.defineProperty(exports, "resolveFishboneTheme", {
166
444
  enumerable: true,
167
- get: function () { return chunkD7EHZFK4_cjs.resolveFishboneTheme; }
445
+ get: function () { return chunkL7POWM5B_cjs.resolveFishboneTheme; }
168
446
  });
169
447
  Object.defineProperty(exports, "resolveGenogramTheme", {
170
448
  enumerable: true,
171
- get: function () { return chunkD7EHZFK4_cjs.resolveGenogramTheme; }
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 chunkD7EHZFK4_cjs.resolvePersonTheme; }
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 chunkD7EHZFK4_cjs.resolveTimelineTheme; }
465
+ get: function () { return chunkL7POWM5B_cjs.resolveTimelineTheme; }
180
466
  });
181
467
  Object.defineProperty(exports, "resolveVennTheme", {
182
468
  enumerable: true,
183
- get: function () { return chunkD7EHZFK4_cjs.resolveVennTheme; }
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
@@ -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, a as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus, p as parse, e as parseResult, r as render, f as renderPreview, g as renderResult } from './api-C5SECOxZ.cjs';
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, 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-BD2yDfQM.cjs';
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
- export { decisiontree, pert, pid, prisma, state, timeline, usecase };
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 };