schematex 0.9.2 → 0.9.4

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 (173) hide show
  1. package/README.md +42 -2
  2. package/README.zh-CN.md +2 -2
  3. package/dist/ai/ai-sdk.cjs +23 -23
  4. package/dist/ai/ai-sdk.d.cts +3 -3
  5. package/dist/ai/ai-sdk.d.ts +3 -3
  6. package/dist/ai/ai-sdk.js +18 -18
  7. package/dist/ai/index.cjs +32 -32
  8. package/dist/ai/index.d.cts +4 -4
  9. package/dist/ai/index.d.ts +4 -4
  10. package/dist/ai/index.js +19 -19
  11. package/dist/{api-OED2jUVj.d.ts → api-1xoGiseb.d.cts} +2 -2
  12. package/dist/{api-BDMaX1cT.d.cts → api-CgXRSnCn.d.ts} +2 -2
  13. package/dist/browser.cjs +24 -24
  14. package/dist/browser.d.cts +3 -3
  15. package/dist/browser.d.ts +3 -3
  16. package/dist/browser.js +18 -18
  17. package/dist/{chunk-HILYXWGJ.cjs → chunk-35NGXDT2.cjs} +12 -12
  18. package/dist/{chunk-HILYXWGJ.cjs.map → chunk-35NGXDT2.cjs.map} +1 -1
  19. package/dist/{chunk-HJA7MIMV.js → chunk-3J4DZPZC.js} +3 -3
  20. package/dist/{chunk-HJA7MIMV.js.map → chunk-3J4DZPZC.js.map} +1 -1
  21. package/dist/{chunk-IQLZUCWI.js → chunk-3PH2MQGN.js} +3 -3
  22. package/dist/{chunk-IQLZUCWI.js.map → chunk-3PH2MQGN.js.map} +1 -1
  23. package/dist/{chunk-VZVREOTM.js → chunk-3WX24RCH.js} +3 -3
  24. package/dist/{chunk-VZVREOTM.js.map → chunk-3WX24RCH.js.map} +1 -1
  25. package/dist/{chunk-XA6XIAMN.cjs → chunk-4AC6I7KJ.cjs} +4 -4
  26. package/dist/{chunk-XA6XIAMN.cjs.map → chunk-4AC6I7KJ.cjs.map} +1 -1
  27. package/dist/{chunk-TYEQC7PV.js → chunk-4MRVJI7G.js} +166 -5
  28. package/dist/chunk-4MRVJI7G.js.map +1 -0
  29. package/dist/{chunk-6BJKQULN.cjs → chunk-4OC3CTGE.cjs} +4 -4
  30. package/dist/{chunk-6BJKQULN.cjs.map → chunk-4OC3CTGE.cjs.map} +1 -1
  31. package/dist/{chunk-4MGALM2C.cjs → chunk-5ZQRHDMQ.cjs} +4 -4
  32. package/dist/{chunk-4MGALM2C.cjs.map → chunk-5ZQRHDMQ.cjs.map} +1 -1
  33. package/dist/{chunk-PSQGLE6U.cjs → chunk-627GHE2N.cjs} +5 -5
  34. package/dist/{chunk-PSQGLE6U.cjs.map → chunk-627GHE2N.cjs.map} +1 -1
  35. package/dist/{chunk-56DSMSXK.js → chunk-64LABNTF.js} +3 -3
  36. package/dist/{chunk-56DSMSXK.js.map → chunk-64LABNTF.js.map} +1 -1
  37. package/dist/{chunk-GYTU7L4L.cjs → chunk-6QZQTASC.cjs} +12 -12
  38. package/dist/{chunk-GYTU7L4L.cjs.map → chunk-6QZQTASC.cjs.map} +1 -1
  39. package/dist/{chunk-MYVY55DO.cjs → chunk-6ZD7TCWO.cjs} +15 -15
  40. package/dist/{chunk-MYVY55DO.cjs.map → chunk-6ZD7TCWO.cjs.map} +1 -1
  41. package/dist/{chunk-7Z2GDS4G.js → chunk-AXMBXAEA.js} +3 -3
  42. package/dist/{chunk-7Z2GDS4G.js.map → chunk-AXMBXAEA.js.map} +1 -1
  43. package/dist/{chunk-VY4JOTM2.js → chunk-B4CMWA6Y.js} +3 -3
  44. package/dist/{chunk-VY4JOTM2.js.map → chunk-B4CMWA6Y.js.map} +1 -1
  45. package/dist/{chunk-2ASZMLC3.cjs → chunk-C4Y24X3U.cjs} +4 -4
  46. package/dist/{chunk-2ASZMLC3.cjs.map → chunk-C4Y24X3U.cjs.map} +1 -1
  47. package/dist/{chunk-NT6VVMLW.cjs → chunk-ENUM7GMZ.cjs} +168 -4
  48. package/dist/chunk-ENUM7GMZ.cjs.map +1 -0
  49. package/dist/{chunk-VYAUTNHC.cjs → chunk-GAQ36VFD.cjs} +4 -4
  50. package/dist/{chunk-VYAUTNHC.cjs.map → chunk-GAQ36VFD.cjs.map} +1 -1
  51. package/dist/{chunk-NTQBNBBP.cjs → chunk-GTCAJPQR.cjs} +4307 -282
  52. package/dist/chunk-GTCAJPQR.cjs.map +1 -0
  53. package/dist/{chunk-KR7PPCC4.js → chunk-GYYYULBL.js} +3 -3
  54. package/dist/{chunk-KR7PPCC4.js.map → chunk-GYYYULBL.js.map} +1 -1
  55. package/dist/{chunk-WFVRUUJW.cjs → chunk-INVLJYAE.cjs} +4 -4
  56. package/dist/{chunk-WFVRUUJW.cjs.map → chunk-INVLJYAE.cjs.map} +1 -1
  57. package/dist/{chunk-2A5HJFOX.cjs → chunk-ITI3STJ6.cjs} +4 -4
  58. package/dist/{chunk-2A5HJFOX.cjs.map → chunk-ITI3STJ6.cjs.map} +1 -1
  59. package/dist/{chunk-TMAOPJCT.js → chunk-JEMAOC2D.js} +3 -3
  60. package/dist/{chunk-TMAOPJCT.js.map → chunk-JEMAOC2D.js.map} +1 -1
  61. package/dist/{chunk-2RFFCZ3I.js → chunk-M26ORU4P.js} +3 -3
  62. package/dist/{chunk-2RFFCZ3I.js.map → chunk-M26ORU4P.js.map} +1 -1
  63. package/dist/{chunk-CURAZVOH.js → chunk-NIYB6CHH.js} +728 -4
  64. package/dist/chunk-NIYB6CHH.js.map +1 -0
  65. package/dist/{chunk-JR6JNQEZ.js → chunk-NKYR4PAS.js} +3 -3
  66. package/dist/{chunk-JR6JNQEZ.js.map → chunk-NKYR4PAS.js.map} +1 -1
  67. package/dist/{chunk-MUE45N2A.cjs → chunk-OJ3P4IC4.cjs} +4 -4
  68. package/dist/{chunk-MUE45N2A.cjs.map → chunk-OJ3P4IC4.cjs.map} +1 -1
  69. package/dist/{chunk-VMUNKEB2.js → chunk-PFZKW3HE.js} +3 -3
  70. package/dist/{chunk-VMUNKEB2.js.map → chunk-PFZKW3HE.js.map} +1 -1
  71. package/dist/{chunk-MERU76LW.js → chunk-RDYACU2G.js} +3 -3
  72. package/dist/{chunk-MERU76LW.js.map → chunk-RDYACU2G.js.map} +1 -1
  73. package/dist/{chunk-TWTUIUNK.js → chunk-SXOAAQNY.js} +3 -3
  74. package/dist/{chunk-TWTUIUNK.js.map → chunk-SXOAAQNY.js.map} +1 -1
  75. package/dist/{chunk-3DSNGR26.cjs → chunk-TX3YWZZX.cjs} +730 -6
  76. package/dist/chunk-TX3YWZZX.cjs.map +1 -0
  77. package/dist/{chunk-TP7LQ5PF.js → chunk-UFXDAIDD.js} +4126 -102
  78. package/dist/chunk-UFXDAIDD.js.map +1 -0
  79. package/dist/{chunk-7JJQEECD.cjs → chunk-VY6UZYYL.cjs} +15 -15
  80. package/dist/{chunk-7JJQEECD.cjs.map → chunk-VY6UZYYL.cjs.map} +1 -1
  81. package/dist/{chunk-V3JTVTPY.cjs → chunk-VYQXB2RC.cjs} +12 -12
  82. package/dist/{chunk-V3JTVTPY.cjs.map → chunk-VYQXB2RC.cjs.map} +1 -1
  83. package/dist/{chunk-L2NY4XEY.cjs → chunk-WJXLF42K.cjs} +4 -4
  84. package/dist/{chunk-L2NY4XEY.cjs.map → chunk-WJXLF42K.cjs.map} +1 -1
  85. package/dist/{chunk-VWIKDJNV.js → chunk-XCCXG6RR.js} +3 -3
  86. package/dist/{chunk-VWIKDJNV.js.map → chunk-XCCXG6RR.js.map} +1 -1
  87. package/dist/{chunk-7SVB3XA7.js → chunk-ZCHGIWJK.js} +3 -3
  88. package/dist/{chunk-7SVB3XA7.js.map → chunk-ZCHGIWJK.js.map} +1 -1
  89. package/dist/{diagnostics-hObcaaFC.d.ts → diagnostics-CDwnQ65n.d.cts} +1 -1
  90. package/dist/{diagnostics-hObcaaFC.d.cts → diagnostics-CDwnQ65n.d.ts} +1 -1
  91. package/dist/diagrams/blockdiagram/index.cjs +6 -6
  92. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  93. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  94. package/dist/diagrams/blockdiagram/index.js +2 -2
  95. package/dist/diagrams/circuit/index.cjs +9 -9
  96. package/dist/diagrams/circuit/index.d.cts +1 -1
  97. package/dist/diagrams/circuit/index.d.ts +1 -1
  98. package/dist/diagrams/circuit/index.js +2 -2
  99. package/dist/diagrams/ecomap/index.cjs +7 -7
  100. package/dist/diagrams/ecomap/index.d.cts +1 -1
  101. package/dist/diagrams/ecomap/index.d.ts +1 -1
  102. package/dist/diagrams/ecomap/index.js +2 -2
  103. package/dist/diagrams/entity/index.cjs +6 -6
  104. package/dist/diagrams/entity/index.d.cts +1 -1
  105. package/dist/diagrams/entity/index.d.ts +1 -1
  106. package/dist/diagrams/entity/index.js +2 -2
  107. package/dist/diagrams/fishbone/index.cjs +8 -8
  108. package/dist/diagrams/fishbone/index.d.cts +1 -1
  109. package/dist/diagrams/fishbone/index.d.ts +1 -1
  110. package/dist/diagrams/fishbone/index.js +2 -2
  111. package/dist/diagrams/flowchart/index.cjs +8 -8
  112. package/dist/diagrams/flowchart/index.d.cts +2 -2
  113. package/dist/diagrams/flowchart/index.d.ts +2 -2
  114. package/dist/diagrams/flowchart/index.js +2 -2
  115. package/dist/diagrams/genogram/index.cjs +9 -9
  116. package/dist/diagrams/genogram/index.d.cts +1 -1
  117. package/dist/diagrams/genogram/index.d.ts +1 -1
  118. package/dist/diagrams/genogram/index.js +2 -2
  119. package/dist/diagrams/ladder/index.cjs +6 -6
  120. package/dist/diagrams/ladder/index.d.cts +1 -1
  121. package/dist/diagrams/ladder/index.d.ts +1 -1
  122. package/dist/diagrams/ladder/index.js +2 -2
  123. package/dist/diagrams/logic/index.cjs +8 -8
  124. package/dist/diagrams/logic/index.d.cts +1 -1
  125. package/dist/diagrams/logic/index.d.ts +1 -1
  126. package/dist/diagrams/logic/index.js +2 -2
  127. package/dist/diagrams/orgchart/index.cjs +8 -8
  128. package/dist/diagrams/orgchart/index.d.cts +1 -1
  129. package/dist/diagrams/orgchart/index.d.ts +1 -1
  130. package/dist/diagrams/orgchart/index.js +2 -2
  131. package/dist/diagrams/pedigree/index.cjs +7 -7
  132. package/dist/diagrams/pedigree/index.d.cts +1 -1
  133. package/dist/diagrams/pedigree/index.d.ts +1 -1
  134. package/dist/diagrams/pedigree/index.js +2 -2
  135. package/dist/diagrams/phylo/index.cjs +7 -7
  136. package/dist/diagrams/phylo/index.d.cts +1 -1
  137. package/dist/diagrams/phylo/index.d.ts +1 -1
  138. package/dist/diagrams/phylo/index.js +2 -2
  139. package/dist/diagrams/sld/index.cjs +8 -8
  140. package/dist/diagrams/sld/index.d.cts +1 -1
  141. package/dist/diagrams/sld/index.d.ts +1 -1
  142. package/dist/diagrams/sld/index.js +2 -2
  143. package/dist/diagrams/sociogram/index.cjs +6 -6
  144. package/dist/diagrams/sociogram/index.d.cts +1 -1
  145. package/dist/diagrams/sociogram/index.d.ts +1 -1
  146. package/dist/diagrams/sociogram/index.js +2 -2
  147. package/dist/diagrams/timing/index.d.cts +1 -1
  148. package/dist/diagrams/timing/index.d.ts +1 -1
  149. package/dist/diagrams/venn/index.cjs +9 -9
  150. package/dist/diagrams/venn/index.d.cts +1 -1
  151. package/dist/diagrams/venn/index.d.ts +1 -1
  152. package/dist/diagrams/venn/index.js +2 -2
  153. package/dist/{index-Cq8y1aaa.d.ts → index-CYSH3_ca.d.ts} +1 -1
  154. package/dist/{index-BiXWjQht.d.cts → index-DNOoLmYX.d.cts} +1 -1
  155. package/dist/index.cjs +111 -85
  156. package/dist/index.cjs.map +1 -1
  157. package/dist/index.d.cts +4 -4
  158. package/dist/index.d.ts +4 -4
  159. package/dist/index.js +48 -22
  160. package/dist/index.js.map +1 -1
  161. package/dist/react.cjs +18 -18
  162. package/dist/react.d.cts +2 -2
  163. package/dist/react.d.ts +2 -2
  164. package/dist/react.js +17 -17
  165. package/dist/{tools-BbTuTWs_.d.ts → tools-BhTti-oG.d.ts} +3 -3
  166. package/dist/{tools-D5dkAqNy.d.cts → tools-CbYmQ3hH.d.cts} +3 -3
  167. package/package.json +1 -1
  168. package/dist/chunk-3DSNGR26.cjs.map +0 -1
  169. package/dist/chunk-CURAZVOH.js.map +0 -1
  170. package/dist/chunk-NT6VVMLW.cjs.map +0 -1
  171. package/dist/chunk-NTQBNBBP.cjs.map +0 -1
  172. package/dist/chunk-TP7LQ5PF.js.map +0 -1
  173. package/dist/chunk-TYEQC7PV.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,26 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var chunkNTQBNBBP_cjs = require('./chunk-NTQBNBBP.cjs');
4
- var chunk6BJKQULN_cjs = require('./chunk-6BJKQULN.cjs');
5
- var chunkXA6XIAMN_cjs = require('./chunk-XA6XIAMN.cjs');
6
- var chunk2ASZMLC3_cjs = require('./chunk-2ASZMLC3.cjs');
7
- var chunkWFVRUUJW_cjs = require('./chunk-WFVRUUJW.cjs');
8
- var chunkL2NY4XEY_cjs = require('./chunk-L2NY4XEY.cjs');
9
- var chunkVYAUTNHC_cjs = require('./chunk-VYAUTNHC.cjs');
10
- var chunkPSQGLE6U_cjs = require('./chunk-PSQGLE6U.cjs');
11
- var chunk2A5HJFOX_cjs = require('./chunk-2A5HJFOX.cjs');
12
- var chunkMUE45N2A_cjs = require('./chunk-MUE45N2A.cjs');
13
- var chunk7JJQEECD_cjs = require('./chunk-7JJQEECD.cjs');
14
- var chunkV3JTVTPY_cjs = require('./chunk-V3JTVTPY.cjs');
15
- var chunkGYTU7L4L_cjs = require('./chunk-GYTU7L4L.cjs');
3
+ var chunkGTCAJPQR_cjs = require('./chunk-GTCAJPQR.cjs');
4
+ var chunk4OC3CTGE_cjs = require('./chunk-4OC3CTGE.cjs');
5
+ var chunk4AC6I7KJ_cjs = require('./chunk-4AC6I7KJ.cjs');
6
+ var chunkC4Y24X3U_cjs = require('./chunk-C4Y24X3U.cjs');
7
+ var chunkINVLJYAE_cjs = require('./chunk-INVLJYAE.cjs');
8
+ var chunkWJXLF42K_cjs = require('./chunk-WJXLF42K.cjs');
9
+ var chunkGAQ36VFD_cjs = require('./chunk-GAQ36VFD.cjs');
10
+ var chunk627GHE2N_cjs = require('./chunk-627GHE2N.cjs');
11
+ var chunkITI3STJ6_cjs = require('./chunk-ITI3STJ6.cjs');
12
+ var chunkOJ3P4IC4_cjs = require('./chunk-OJ3P4IC4.cjs');
13
+ var chunkVY6UZYYL_cjs = require('./chunk-VY6UZYYL.cjs');
14
+ var chunkVYQXB2RC_cjs = require('./chunk-VYQXB2RC.cjs');
15
+ var chunk6QZQTASC_cjs = require('./chunk-6QZQTASC.cjs');
16
16
  require('./chunk-3KRL2EGN.cjs');
17
- var chunkMYVY55DO_cjs = require('./chunk-MYVY55DO.cjs');
18
- var chunkHILYXWGJ_cjs = require('./chunk-HILYXWGJ.cjs');
17
+ var chunk6ZD7TCWO_cjs = require('./chunk-6ZD7TCWO.cjs');
18
+ var chunk35NGXDT2_cjs = require('./chunk-35NGXDT2.cjs');
19
19
  require('./chunk-5UCXMYE7.cjs');
20
20
  var chunkJHJJT5H5_cjs = require('./chunk-JHJJT5H5.cjs');
21
- var chunk4MGALM2C_cjs = require('./chunk-4MGALM2C.cjs');
21
+ var chunk5ZQRHDMQ_cjs = require('./chunk-5ZQRHDMQ.cjs');
22
22
  require('./chunk-SBB6C4OP.cjs');
23
- var chunkNT6VVMLW_cjs = require('./chunk-NT6VVMLW.cjs');
23
+ var chunkENUM7GMZ_cjs = require('./chunk-ENUM7GMZ.cjs');
24
24
  require('./chunk-VHDSPI6A.cjs');
25
25
  require('./chunk-3WNW5Y7P.cjs');
26
26
 
@@ -34,8 +34,8 @@ function svgDoc(viewBox, css, inner) {
34
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
35
  function circuitCatalog() {
36
36
  const merged = {
37
- ...chunkXA6XIAMN_cjs.SYMBOLS,
38
- ...chunkXA6XIAMN_cjs.EXTRA_SYMBOLS
37
+ ...chunk4AC6I7KJ_cjs.SYMBOLS,
38
+ ...chunk4AC6I7KJ_cjs.EXTRA_SYMBOLS
39
39
  };
40
40
  const out = [];
41
41
  for (const [id, def] of Object.entries(merged)) {
@@ -91,11 +91,11 @@ function sldCatalog() {
91
91
  for (const type of SLD_TYPES) {
92
92
  let inner;
93
93
  try {
94
- inner = chunkL2NY4XEY_cjs.renderSymbol(type);
94
+ inner = chunkWJXLF42K_cjs.renderSymbol(type);
95
95
  } catch {
96
96
  continue;
97
97
  }
98
- const g = chunkL2NY4XEY_cjs.geometryFor(type);
98
+ const g = chunkWJXLF42K_cjs.geometryFor(type);
99
99
  const w = Math.max(g.halfWidth, 18) + 12;
100
100
  const top = Math.min(g.topY, -22) - 8;
101
101
  const bot = Math.max(g.bottomY, 22) + 8;
@@ -111,10 +111,10 @@ var PID_CSS = ".lt-pid-equip{fill:#ffffff;stroke:#1d1d1d;stroke-width:1.6}.lt-pi
111
111
  function pidCatalog() {
112
112
  const out = [];
113
113
  const pad = 12;
114
- for (const [id, g] of Object.entries(chunkNTQBNBBP_cjs.GEOMETRY)) {
114
+ for (const [id, g] of Object.entries(chunkGTCAJPQR_cjs.GEOMETRY)) {
115
115
  let inner;
116
116
  try {
117
- inner = chunkNTQBNBBP_cjs.renderEquip(id, "");
117
+ inner = chunkGTCAJPQR_cjs.renderEquip(id, "");
118
118
  } catch {
119
119
  continue;
120
120
  }
@@ -132,10 +132,10 @@ function pidCatalog() {
132
132
  }
133
133
  var FC_ICON_CSS = ".sx-fc-icon{stroke:#0f172a;fill:none}.sx-fc-icon-fill{fill:#0f172a}";
134
134
  function flowchartIconCatalog() {
135
- return chunkMUE45N2A_cjs.iconNames().map((name) => ({
135
+ return chunkOJ3P4IC4_cjs.iconNames().map((name) => ({
136
136
  id: name,
137
137
  label: humanize(name),
138
- svg: svgDoc("-13 -13 26 26", FC_ICON_CSS, chunkMUE45N2A_cjs.renderIcon(name))
138
+ svg: svgDoc("-13 -13 26 26", FC_ICON_CSS, chunkOJ3P4IC4_cjs.renderIcon(name))
139
139
  })).sort((a, b) => a.label.localeCompare(b.label));
140
140
  }
141
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}";
@@ -170,7 +170,7 @@ function logicCatalog() {
170
170
  for (const type of LOGIC_TYPES) {
171
171
  let g;
172
172
  try {
173
- g = chunk4MGALM2C_cjs.getGateGeometry(type, SINGLE_INPUT.has(type) ? 1 : 2);
173
+ g = chunk5ZQRHDMQ_cjs.getGateGeometry(type, SINGLE_INPUT.has(type) ? 1 : 2);
174
174
  } catch {
175
175
  continue;
176
176
  }
@@ -224,11 +224,11 @@ var NETWORK_KINDS = [
224
224
  function networkCatalog() {
225
225
  const out = [];
226
226
  for (const kind of NETWORK_KINDS) {
227
- const { w, h } = chunkNTQBNBBP_cjs.iconSize(kind);
227
+ const { w, h } = chunkGTCAJPQR_cjs.iconSize(kind);
228
228
  const device = { id: kind, kind, label: humanize(kind), groups: [] };
229
229
  let inner;
230
230
  try {
231
- inner = chunkNTQBNBBP_cjs.drawDeviceIcon(device, { x: 0, y: 0, w, h });
231
+ inner = chunkGTCAJPQR_cjs.drawDeviceIcon(device, { x: 0, y: 0, w, h });
232
232
  } catch {
233
233
  continue;
234
234
  }
@@ -240,6 +240,26 @@ function networkCatalog() {
240
240
  }
241
241
  return out.sort((a, b) => a.label.localeCompare(b.label));
242
242
  }
243
+ var FLOORPLAN_CSS = ".sx-fp-furn{fill:#ffffff;stroke:#475569;stroke-width:1.2}.sx-fp-furn-nofill{fill:none;stroke:#475569;stroke-width:1.2}.sx-fp-furn-line{fill:none;stroke:#475569;stroke-width:1}.sx-fp-furn-dash{fill:none;stroke:#475569;stroke-width:1;stroke-dasharray:4 3}.sx-fp-furn-dot{fill:#475569;stroke:none}.sx-fp-furn-solid{fill:#334155;stroke:none}.sx-fp-board-inner{fill:#ffffff;stroke:none}.sx-fp-chair{fill:#f1f5f9;stroke:#475569;stroke-width:1}.sx-fp-rug{fill:none;stroke:#94a3b8;stroke-width:1.2;stroke-dasharray:5 4}.sx-fp-hatch{fill:none;stroke:#cbd5e1;stroke-width:1}.sx-fp-furn-text{font-weight:600;font-family:sans-serif;fill:#475569}";
244
+ function floorplanCatalog() {
245
+ const scale = 40;
246
+ const px = (m) => Math.round(m * scale * 100) / 100;
247
+ const out = [];
248
+ for (const [id, def] of Object.entries(chunkGTCAJPQR_cjs.FLOORPLAN_SYMBOLS)) {
249
+ const [mt, mr, mb, ml] = def.envelope ?? [0, 0, 0, 0];
250
+ const pad = 5;
251
+ const x0 = -px(ml) - pad;
252
+ const y0 = -px(mt) - pad;
253
+ const w = px(def.w + ml + mr) + 2 * pad;
254
+ const h = px(def.h + mt + mb) + 2 * pad;
255
+ out.push({
256
+ id,
257
+ label: humanize(id),
258
+ svg: svgDoc(`${x0} ${y0} ${w} ${h}`, FLOORPLAN_CSS, def.draw({ w: def.w, h: def.h, px }))
259
+ });
260
+ }
261
+ return out.sort((a, b) => a.label.localeCompare(b.label));
262
+ }
243
263
  var CATALOGS = {
244
264
  circuit: () => ({
245
265
  type: "circuit",
@@ -276,6 +296,12 @@ var CATALOGS = {
276
296
  label: "Node icons",
277
297
  note: "Inline node icons (servers, databases, cloud, gear\u2026) usable on any flowchart node.",
278
298
  entries: flowchartIconCatalog()
299
+ }),
300
+ floorplan: () => ({
301
+ type: "floorplan",
302
+ label: "Floor plan furniture & fixtures",
303
+ note: "AGS plan-view symbols \u2014 auto-seated tables, beds, kitchen/bath fixtures, classroom and event/banquet furniture.",
304
+ entries: floorplanCatalog()
279
305
  })
280
306
  };
281
307
  var SYMBOL_CATALOG_TYPES = Object.keys(CATALOGS);
@@ -286,167 +312,167 @@ function getSymbolCatalog(type) {
286
312
 
287
313
  Object.defineProperty(exports, "bowtie", {
288
314
  enumerable: true,
289
- get: function () { return chunkNTQBNBBP_cjs.bowtie; }
315
+ get: function () { return chunkGTCAJPQR_cjs.bowtie; }
290
316
  });
291
317
  Object.defineProperty(exports, "causalloop", {
292
318
  enumerable: true,
293
- get: function () { return chunkNTQBNBBP_cjs.causalloop; }
319
+ get: function () { return chunkGTCAJPQR_cjs.causalloop; }
294
320
  });
295
321
  Object.defineProperty(exports, "decisiontree", {
296
322
  enumerable: true,
297
- get: function () { return chunkNTQBNBBP_cjs.decisiontree; }
323
+ get: function () { return chunkGTCAJPQR_cjs.decisiontree; }
298
324
  });
299
325
  Object.defineProperty(exports, "epc", {
300
326
  enumerable: true,
301
- get: function () { return chunkNTQBNBBP_cjs.epc; }
327
+ get: function () { return chunkGTCAJPQR_cjs.epc; }
302
328
  });
303
329
  Object.defineProperty(exports, "eventtree", {
304
330
  enumerable: true,
305
- get: function () { return chunkNTQBNBBP_cjs.eventtree; }
331
+ get: function () { return chunkGTCAJPQR_cjs.eventtree; }
306
332
  });
307
333
  Object.defineProperty(exports, "faulttree", {
308
334
  enumerable: true,
309
- get: function () { return chunkNTQBNBBP_cjs.faulttree; }
335
+ get: function () { return chunkGTCAJPQR_cjs.faulttree; }
310
336
  });
311
337
  Object.defineProperty(exports, "fmea", {
312
338
  enumerable: true,
313
- get: function () { return chunkNTQBNBBP_cjs.fmea; }
339
+ get: function () { return chunkGTCAJPQR_cjs.fmea; }
314
340
  });
315
341
  Object.defineProperty(exports, "gitgraph", {
316
342
  enumerable: true,
317
- get: function () { return chunkNTQBNBBP_cjs.gitgraph; }
343
+ get: function () { return chunkGTCAJPQR_cjs.gitgraph; }
318
344
  });
319
345
  Object.defineProperty(exports, "idef0", {
320
346
  enumerable: true,
321
- get: function () { return chunkNTQBNBBP_cjs.idef0; }
347
+ get: function () { return chunkGTCAJPQR_cjs.idef0; }
322
348
  });
323
349
  Object.defineProperty(exports, "markov", {
324
350
  enumerable: true,
325
- get: function () { return chunkNTQBNBBP_cjs.markov; }
351
+ get: function () { return chunkGTCAJPQR_cjs.markov; }
326
352
  });
327
353
  Object.defineProperty(exports, "network", {
328
354
  enumerable: true,
329
- get: function () { return chunkNTQBNBBP_cjs.network; }
355
+ get: function () { return chunkGTCAJPQR_cjs.network; }
330
356
  });
331
357
  Object.defineProperty(exports, "parse", {
332
358
  enumerable: true,
333
- get: function () { return chunkNTQBNBBP_cjs.parse; }
359
+ get: function () { return chunkGTCAJPQR_cjs.parse; }
334
360
  });
335
361
  Object.defineProperty(exports, "parseResult", {
336
362
  enumerable: true,
337
- get: function () { return chunkNTQBNBBP_cjs.parseResult; }
363
+ get: function () { return chunkGTCAJPQR_cjs.parseResult; }
338
364
  });
339
365
  Object.defineProperty(exports, "pert", {
340
366
  enumerable: true,
341
- get: function () { return chunkNTQBNBBP_cjs.pert; }
367
+ get: function () { return chunkGTCAJPQR_cjs.pert; }
342
368
  });
343
369
  Object.defineProperty(exports, "petri", {
344
370
  enumerable: true,
345
- get: function () { return chunkNTQBNBBP_cjs.petri; }
371
+ get: function () { return chunkGTCAJPQR_cjs.petri; }
346
372
  });
347
373
  Object.defineProperty(exports, "pid", {
348
374
  enumerable: true,
349
- get: function () { return chunkNTQBNBBP_cjs.pid; }
375
+ get: function () { return chunkGTCAJPQR_cjs.pid; }
350
376
  });
351
377
  Object.defineProperty(exports, "prisma", {
352
378
  enumerable: true,
353
- get: function () { return chunkNTQBNBBP_cjs.prisma; }
379
+ get: function () { return chunkGTCAJPQR_cjs.prisma; }
354
380
  });
355
381
  Object.defineProperty(exports, "render", {
356
382
  enumerable: true,
357
- get: function () { return chunkNTQBNBBP_cjs.render; }
383
+ get: function () { return chunkGTCAJPQR_cjs.render; }
358
384
  });
359
385
  Object.defineProperty(exports, "renderPreview", {
360
386
  enumerable: true,
361
- get: function () { return chunkNTQBNBBP_cjs.renderPreview; }
387
+ get: function () { return chunkGTCAJPQR_cjs.renderPreview; }
362
388
  });
363
389
  Object.defineProperty(exports, "renderResult", {
364
390
  enumerable: true,
365
- get: function () { return chunkNTQBNBBP_cjs.renderResult; }
391
+ get: function () { return chunkGTCAJPQR_cjs.renderResult; }
366
392
  });
367
393
  Object.defineProperty(exports, "sequence", {
368
394
  enumerable: true,
369
- get: function () { return chunkNTQBNBBP_cjs.sequence; }
395
+ get: function () { return chunkGTCAJPQR_cjs.sequence; }
370
396
  });
371
397
  Object.defineProperty(exports, "state", {
372
398
  enumerable: true,
373
- get: function () { return chunkNTQBNBBP_cjs.state; }
399
+ get: function () { return chunkGTCAJPQR_cjs.state; }
374
400
  });
375
401
  Object.defineProperty(exports, "threatmodel", {
376
402
  enumerable: true,
377
- get: function () { return chunkNTQBNBBP_cjs.threatmodel; }
403
+ get: function () { return chunkGTCAJPQR_cjs.threatmodel; }
378
404
  });
379
405
  Object.defineProperty(exports, "timeline", {
380
406
  enumerable: true,
381
- get: function () { return chunkNTQBNBBP_cjs.timeline; }
407
+ get: function () { return chunkGTCAJPQR_cjs.timeline; }
382
408
  });
383
409
  Object.defineProperty(exports, "umlclass", {
384
410
  enumerable: true,
385
- get: function () { return chunkNTQBNBBP_cjs.umlclass; }
411
+ get: function () { return chunkGTCAJPQR_cjs.umlclass; }
386
412
  });
387
413
  Object.defineProperty(exports, "usecase", {
388
414
  enumerable: true,
389
- get: function () { return chunkNTQBNBBP_cjs.usecase; }
415
+ get: function () { return chunkGTCAJPQR_cjs.usecase; }
390
416
  });
391
417
  Object.defineProperty(exports, "welding", {
392
418
  enumerable: true,
393
- get: function () { return chunkNTQBNBBP_cjs.welding; }
419
+ get: function () { return chunkGTCAJPQR_cjs.welding; }
394
420
  });
395
421
  Object.defineProperty(exports, "orgchart", {
396
422
  enumerable: true,
397
- get: function () { return chunk6BJKQULN_cjs.orgchart; }
423
+ get: function () { return chunk4OC3CTGE_cjs.orgchart; }
398
424
  });
399
425
  Object.defineProperty(exports, "circuit", {
400
426
  enumerable: true,
401
- get: function () { return chunkXA6XIAMN_cjs.circuit; }
427
+ get: function () { return chunk4AC6I7KJ_cjs.circuit; }
402
428
  });
403
429
  Object.defineProperty(exports, "blockdiagram", {
404
430
  enumerable: true,
405
- get: function () { return chunk2ASZMLC3_cjs.blockdiagram; }
431
+ get: function () { return chunkC4Y24X3U_cjs.blockdiagram; }
406
432
  });
407
433
  Object.defineProperty(exports, "ladder", {
408
434
  enumerable: true,
409
- get: function () { return chunkWFVRUUJW_cjs.ladder; }
435
+ get: function () { return chunkINVLJYAE_cjs.ladder; }
410
436
  });
411
437
  Object.defineProperty(exports, "sld", {
412
438
  enumerable: true,
413
- get: function () { return chunkL2NY4XEY_cjs.sld; }
439
+ get: function () { return chunkWJXLF42K_cjs.sld; }
414
440
  });
415
441
  Object.defineProperty(exports, "entity", {
416
442
  enumerable: true,
417
- get: function () { return chunkVYAUTNHC_cjs.entity; }
443
+ get: function () { return chunkGAQ36VFD_cjs.entity; }
418
444
  });
419
445
  Object.defineProperty(exports, "fishbone", {
420
446
  enumerable: true,
421
- get: function () { return chunkPSQGLE6U_cjs.fishbone; }
447
+ get: function () { return chunk627GHE2N_cjs.fishbone; }
422
448
  });
423
449
  Object.defineProperty(exports, "venn", {
424
450
  enumerable: true,
425
- get: function () { return chunk2A5HJFOX_cjs.venn; }
451
+ get: function () { return chunkITI3STJ6_cjs.venn; }
426
452
  });
427
453
  Object.defineProperty(exports, "flowchart", {
428
454
  enumerable: true,
429
- get: function () { return chunkMUE45N2A_cjs.flowchart; }
455
+ get: function () { return chunkOJ3P4IC4_cjs.flowchart; }
430
456
  });
431
457
  Object.defineProperty(exports, "genogram", {
432
458
  enumerable: true,
433
- get: function () { return chunk7JJQEECD_cjs.genogram; }
459
+ get: function () { return chunkVY6UZYYL_cjs.genogram; }
434
460
  });
435
461
  Object.defineProperty(exports, "ecomap", {
436
462
  enumerable: true,
437
- get: function () { return chunkV3JTVTPY_cjs.ecomap; }
463
+ get: function () { return chunkVYQXB2RC_cjs.ecomap; }
438
464
  });
439
465
  Object.defineProperty(exports, "pedigree", {
440
466
  enumerable: true,
441
- get: function () { return chunkGYTU7L4L_cjs.pedigree; }
467
+ get: function () { return chunk6QZQTASC_cjs.pedigree; }
442
468
  });
443
469
  Object.defineProperty(exports, "phylo", {
444
470
  enumerable: true,
445
- get: function () { return chunkMYVY55DO_cjs.phylo; }
471
+ get: function () { return chunk6ZD7TCWO_cjs.phylo; }
446
472
  });
447
473
  Object.defineProperty(exports, "sociogram", {
448
474
  enumerable: true,
449
- get: function () { return chunkHILYXWGJ_cjs.sociogram; }
475
+ get: function () { return chunk35NGXDT2_cjs.sociogram; }
450
476
  });
451
477
  Object.defineProperty(exports, "timing", {
452
478
  enumerable: true,
@@ -454,67 +480,67 @@ Object.defineProperty(exports, "timing", {
454
480
  });
455
481
  Object.defineProperty(exports, "logic", {
456
482
  enumerable: true,
457
- get: function () { return chunk4MGALM2C_cjs.logic; }
483
+ get: function () { return chunk5ZQRHDMQ_cjs.logic; }
458
484
  });
459
485
  Object.defineProperty(exports, "BASE_THEMES", {
460
486
  enumerable: true,
461
- get: function () { return chunkNT6VVMLW_cjs.BASE_THEMES; }
487
+ get: function () { return chunkENUM7GMZ_cjs.BASE_THEMES; }
462
488
  });
463
489
  Object.defineProperty(exports, "BIOLOGY_TOKENS", {
464
490
  enumerable: true,
465
- get: function () { return chunkNT6VVMLW_cjs.BIOLOGY_TOKENS; }
491
+ get: function () { return chunkENUM7GMZ_cjs.BIOLOGY_TOKENS; }
466
492
  });
467
493
  Object.defineProperty(exports, "NETWORK_TOKENS", {
468
494
  enumerable: true,
469
- get: function () { return chunkNT6VVMLW_cjs.NETWORK_TOKENS; }
495
+ get: function () { return chunkENUM7GMZ_cjs.NETWORK_TOKENS; }
470
496
  });
471
497
  Object.defineProperty(exports, "PERSON_TOKENS", {
472
498
  enumerable: true,
473
- get: function () { return chunkNT6VVMLW_cjs.PERSON_TOKENS; }
499
+ get: function () { return chunkENUM7GMZ_cjs.PERSON_TOKENS; }
474
500
  });
475
501
  Object.defineProperty(exports, "PETRI_TOKENS", {
476
502
  enumerable: true,
477
- get: function () { return chunkNT6VVMLW_cjs.PETRI_TOKENS; }
503
+ get: function () { return chunkENUM7GMZ_cjs.PETRI_TOKENS; }
478
504
  });
479
505
  Object.defineProperty(exports, "VENN_TOKENS", {
480
506
  enumerable: true,
481
- get: function () { return chunkNT6VVMLW_cjs.VENN_TOKENS; }
507
+ get: function () { return chunkENUM7GMZ_cjs.VENN_TOKENS; }
482
508
  });
483
509
  Object.defineProperty(exports, "resolveBaseTheme", {
484
510
  enumerable: true,
485
- get: function () { return chunkNT6VVMLW_cjs.resolveBaseTheme; }
511
+ get: function () { return chunkENUM7GMZ_cjs.resolveBaseTheme; }
486
512
  });
487
513
  Object.defineProperty(exports, "resolveBiologyTheme", {
488
514
  enumerable: true,
489
- get: function () { return chunkNT6VVMLW_cjs.resolveBiologyTheme; }
515
+ get: function () { return chunkENUM7GMZ_cjs.resolveBiologyTheme; }
490
516
  });
491
517
  Object.defineProperty(exports, "resolveFishboneTheme", {
492
518
  enumerable: true,
493
- get: function () { return chunkNT6VVMLW_cjs.resolveFishboneTheme; }
519
+ get: function () { return chunkENUM7GMZ_cjs.resolveFishboneTheme; }
494
520
  });
495
521
  Object.defineProperty(exports, "resolveGenogramTheme", {
496
522
  enumerable: true,
497
- get: function () { return chunkNT6VVMLW_cjs.resolveGenogramTheme; }
523
+ get: function () { return chunkENUM7GMZ_cjs.resolveGenogramTheme; }
498
524
  });
499
525
  Object.defineProperty(exports, "resolveNetworkTheme", {
500
526
  enumerable: true,
501
- get: function () { return chunkNT6VVMLW_cjs.resolveNetworkTheme; }
527
+ get: function () { return chunkENUM7GMZ_cjs.resolveNetworkTheme; }
502
528
  });
503
529
  Object.defineProperty(exports, "resolvePersonTheme", {
504
530
  enumerable: true,
505
- get: function () { return chunkNT6VVMLW_cjs.resolvePersonTheme; }
531
+ get: function () { return chunkENUM7GMZ_cjs.resolvePersonTheme; }
506
532
  });
507
533
  Object.defineProperty(exports, "resolvePetriTheme", {
508
534
  enumerable: true,
509
- get: function () { return chunkNT6VVMLW_cjs.resolvePetriTheme; }
535
+ get: function () { return chunkENUM7GMZ_cjs.resolvePetriTheme; }
510
536
  });
511
537
  Object.defineProperty(exports, "resolveTimelineTheme", {
512
538
  enumerable: true,
513
- get: function () { return chunkNT6VVMLW_cjs.resolveTimelineTheme; }
539
+ get: function () { return chunkENUM7GMZ_cjs.resolveTimelineTheme; }
514
540
  });
515
541
  Object.defineProperty(exports, "resolveVennTheme", {
516
542
  enumerable: true,
517
- get: function () { return chunkNT6VVMLW_cjs.resolveVennTheme; }
543
+ get: function () { return chunkENUM7GMZ_cjs.resolveVennTheme; }
518
544
  });
519
545
  exports.SYMBOL_CATALOG_TYPES = SYMBOL_CATALOG_TYPES;
520
546
  exports.getSymbolCatalog = getSymbolCatalog;
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["../src/symbols-catalog.ts"],"names":["SYMBOLS","EXTRA_SYMBOLS","renderSymbol","geometryFor","GEOMETRY","renderEquip","iconNames","renderIcon","getGateGeometry","iconSize","drawDeviceIcon","FLOORPLAN_SYMBOLS"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAAS,SAAS,EAAA,EAAoB;AACpC,EAAA,OAAO,EAAA,CACJ,OAAA,CAAQ,QAAA,EAAU,GAAG,CAAA,CACrB,OAAA,CAAQ,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAa,CAAA;AAC5C;AAEA,SAAS,MAAA,CAAO,OAAA,EAAiB,GAAA,EAAa,KAAA,EAAuB;AACnE,EAAA,OAAO,CAAA,iDAAA,EAAoD,OAAO,CAAA,2BAAA,EACtD,GAAG,WAAW,KAAK,CAAA,MAAA,CAAA;AACjC;AAGA,IAAM,WAAA,GACJ,8QAAA;AAIF,SAAS,cAAA,GAAuC;AAC9C,EAAA,MAAM,MAAA,GAAgE;AAAA,IACpE,GAAIA,yBAAA;AAAA,IACJ,GAAIC;AAAA,GACN;AACA,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,CAAC,EAAA,EAAI,GAAG,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC9C,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,MAAM,CAAA,GAAI,IAAI,MAAA,IAAU,EAAA;AACxB,IAAA,MAAM,KAAA,GAAQ,IAAI,GAAA,EAAI;AACtB,IAAA,GAAA,CAAI,KAAK,EAAE,EAAA,EAAI,KAAA,EAAO,QAAA,CAAS,EAAE,CAAA,EAAG,GAAA,EAAK,MAAA,CAAO,CAAA,QAAA,EAAW,IAAI,EAAE,CAAA,GAAA,CAAA,EAAO,WAAA,EAAa,KAAK,GAAG,CAAA;AAAA,EAC/F;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAGA,IAAM,OAAA,GACJ,yjBAAA;AAUF,IAAM,SAAA,GAA2B;AAAA,EAC/B,SAAA;AAAA,EAAW,WAAA;AAAA,EAAa,OAAA;AAAA,EAAS,MAAA;AAAA,EAAQ,KAAA;AAAA,EAAO,aAAA;AAAA,EAAe,gBAAA;AAAA,EAC/D,gBAAA;AAAA,EAAkB,gBAAA;AAAA,EAAkB,gBAAA;AAAA,EAAkB,iBAAA;AAAA,EACtD,sBAAA;AAAA,EAAwB,SAAA;AAAA,EAAW,gBAAA;AAAA,EAAkB,UAAA;AAAA,EAAY,QAAA;AAAA,EACjE,aAAA;AAAA,EAAe,eAAA;AAAA,EAAiB,eAAA;AAAA,EAAiB,MAAA;AAAA,EAAQ,SAAA;AAAA,EAAW,OAAA;AAAA,EACpE,MAAA;AAAA,EAAQ,gBAAA;AAAA,EAAkB,iBAAA;AAAA,EAAmB,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,IAAA;AAAA,EAAM,IAAA;AAAA,EAAM,OAAA;AAAA,EACvE,gBAAA;AAAA,EAAkB,gBAAA;AAAA,EAAkB,cAAA;AAAA,EAAgB,cAAA;AAAA,EAAgB,KAAA;AAAA,EACpE,SAAA;AAAA,EAAW;AACb,CAAA;AAEA,SAAS,UAAA,GAAmC;AAC1C,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,QAAQ,SAAA,EAAW;AAC5B,IAAA,IAAI,KAAA;AACJ,IAAA,IAAI;AACF,MAAA,KAAA,GAAQC,+BAAgB,IAAI,CAAA;AAAA,IAC9B,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AACA,IAAA,MAAM,CAAA,GAAIC,8BAAY,IAAI,CAAA;AAC1B,IAAA,MAAM,IAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,SAAA,EAAW,EAAE,CAAA,GAAI,EAAA;AACtC,IAAA,MAAM,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,IAAA,EAAM,GAAG,CAAA,GAAI,CAAA;AACpC,IAAA,MAAM,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,OAAA,EAAS,EAAE,CAAA,GAAI,CAAA;AACtC,IAAA,GAAA,CAAI,IAAA,CAAK;AAAA,MACP,EAAA,EAAI,IAAA;AAAA,MACJ,KAAA,EAAO,SAAS,IAAI,CAAA;AAAA,MACpB,GAAA,EAAK,MAAA,CAAO,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,CAAA,GAAI,CAAC,CAAA,CAAA,EAAI,GAAA,GAAM,GAAG,CAAA,CAAA,EAAI,SAAS,KAAK;AAAA,KACjE,CAAA;AAAA,EACH;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAGA,IAAM,OAAA,GACJ,uPAAA;AAKF,SAAS,UAAA,GAAmC;AAC1C,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,MAAM,GAAA,GAAM,EAAA;AACZ,EAAA,KAAA,MAAW,CAAC,EAAA,EAAI,CAAC,KAAK,MAAA,CAAO,OAAA,CAAQC,0BAAY,CAAA,EAAG;AAClD,IAAA,IAAI,KAAA;AACJ,IAAA,IAAI;AACF,MAAA,KAAA,GAAQC,6BAAA,CAAY,IAAyC,EAAE,CAAA;AAAA,IACjE,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AACA,IAAA,GAAA,CAAI,IAAA,CAAK;AAAA,MACP,EAAA;AAAA,MACA,KAAA,EAAO,SAAS,EAAE,CAAA;AAAA,MAClB,GAAA,EAAK,MAAA;AAAA,QACH,CAAA,EAAG,CAAC,CAAA,CAAE,KAAA,GAAQ,IAAI,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,MAAA,GAAS,IAAI,GAAG,CAAA,CAAA,EAAI,EAAE,KAAA,GAAQ,CAAA,GAAI,GAAG,CAAA,CAAA,EAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,GAAG,CAAA,CAAA;AAAA,QACvF,OAAA;AAAA,QACA;AAAA;AACF,KACD,CAAA;AAAA,EACH;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAGA,IAAM,WAAA,GACJ,qEAAA;AAEF,SAAS,oBAAA,GAA6C;AACpD,EAAA,OAAOC,2BAAA,EAAU,CACd,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,IACd,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,SAAS,IAAI,CAAA;AAAA,IACpB,KAAK,MAAA,CAAO,eAAA,EAAiB,WAAA,EAAaC,4BAAA,CAAW,IAAI,CAAC;AAAA,GAC5D,CAAE,CAAA,CACD,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAClD;AAGA,IAAM,SAAA,GACJ,gUAAA;AAKF,IAAM,WAAA,GAA+B;AAAA,EACnC,KAAA;AAAA,EAAO,IAAA;AAAA,EAAM,KAAA;AAAA,EAAO,MAAA;AAAA,EAAQ,KAAA;AAAA,EAAO,KAAA;AAAA,EAAO,MAAA;AAAA,EAAQ,KAAA;AAAA,EAAO,cAAA;AAAA,EACzD,YAAA;AAAA,EAAc,SAAA;AAAA,EAAW,KAAA;AAAA,EAAO,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,KAAA;AAAA,EAAO,SAAA;AAAA,EAAW,UAAA;AAAA,EAClE,KAAA;AAAA,EAAO,OAAA;AAAA,EAAS,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW;AACnD,CAAA;AACA,IAAM,YAAA,mBAAe,IAAI,GAAA,CAAmB,CAAC,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,cAAA,EAAgB,cAAA,EAAgB,YAAA,EAAc,KAAA,EAAO,KAAK,CAAC,CAAA;AAEjI,SAAS,YAAA,GAAqC;AAC5C,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,IAAA,IAAI,CAAA;AACJ,IAAA,IAAI;AACF,MAAA,CAAA,GAAIC,kCAAgB,IAAA,EAAM,YAAA,CAAa,IAAI,IAAI,CAAA,GAAI,IAAI,CAAC,CAAA;AAAA,IAC1D,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,SAAA,EAAY,CAAA,CAAE,QAAQ,CAAA,qCAAA,CAAuC,CAAA;AAC5E,IAAA,KAAA,MAAW,KAAK,CAAA,CAAE,SAAA,QAAiB,IAAA,CAAK,CAAA,UAAA,EAAa,EAAE,CAAA,GAAI,EAAE,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,gCAAA,CAAkC,CAAA;AACnI,IAAA,KAAA,MAAW,CAAA,IAAK,EAAE,UAAA,EAAY;AAC5B,MAAA,MAAM,GAAA,GAAM,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,YAAA;AAC1B,MAAA,MAAM,EAAA,GAAK,GAAA,GAAM,CAAA,CAAE,CAAA,GAAI,IAAI,CAAA,CAAE,CAAA;AAC7B,MAAA,IAAI,GAAA,EAAK,KAAA,CAAM,IAAA,CAAK,CAAA,YAAA,EAAe,CAAA,CAAE,IAAI,CAAC,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,wCAAA,CAA0C,CAAA;AAChG,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,UAAA,EAAa,EAAE,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,MAAA,EAAS,EAAA,GAAK,EAAE,CAAA,MAAA,EAAS,CAAA,CAAE,CAAC,CAAA,gCAAA,CAAkC,CAAA;AAAA,IACtG;AACA,IAAA,GAAA,CAAI,IAAA,CAAK;AAAA,MACP,EAAA,EAAI,IAAA;AAAA,MACJ,KAAA,EAAO,SAAS,IAAI,CAAA;AAAA,MACpB,GAAA,EAAK,MAAA,CAAO,CAAA,OAAA,EAAU,CAAA,CAAE,QAAQ,EAAE,CAAA,CAAA,EAAI,CAAA,CAAE,MAAA,GAAS,EAAE,CAAA,CAAA,EAAI,SAAA,EAAW,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC;AAAA,KACjF,CAAA;AAAA,EACH;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAGA,IAAM,WAAA,GACJ,gcAAA;AASF,IAAM,aAAA,GAAgB;AAAA,EACpB,QAAA;AAAA,EAAU,QAAA;AAAA,EAAU,UAAA;AAAA,EAAY,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,cAAA;AAAA,EAAgB,IAAA;AAAA,EACzE,KAAA;AAAA,EAAO,SAAA;AAAA,EAAW,OAAA;AAAA,EAAS,KAAA;AAAA,EAAO,OAAA;AAAA,EAAS,OAAA;AAAA,EAAS,QAAA;AAAA,EAAU,YAAA;AAAA,EAC9D,IAAA;AAAA,EAAM,QAAA;AAAA,EAAU,QAAA;AAAA,EAAU,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,QAAA;AAAA,EAAU,KAAA;AAAA,EACrE,KAAA;AAAA,EAAO,SAAA;AAAA,EAAW,SAAA;AAAA,EAAW,UAAA;AAAA,EAAY;AAC3C,CAAA;AAEA,SAAS,cAAA,GAAuC;AAC9C,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,IAAA,MAAM,EAAE,CAAA,EAAG,CAAA,EAAE,GAAIC,2BAAS,IAAsC,CAAA;AAChE,IAAA,MAAM,MAAA,GAAS,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,QAAA,CAAS,IAAI,CAAA,EAAG,MAAA,EAAQ,EAAC,EAAE;AACnE,IAAA,IAAI,KAAA;AACJ,IAAA,IAAI;AACF,MAAA,KAAA,GAAQC,gCAAA,CAAe,QAAQ,EAAE,CAAA,EAAG,GAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA,IACrD,CAAA,CAAA,MAAQ;AACN,MAAA;AAAA,IACF;AACA,IAAA,GAAA,CAAI,IAAA,CAAK;AAAA,MACP,EAAA,EAAI,IAAA;AAAA,MACJ,KAAA,EAAO,SAAS,IAAI,CAAA;AAAA,MACpB,GAAA,EAAK,MAAA,CAAO,CAAA,MAAA,EAAS,CAAA,GAAI,EAAE,IAAI,CAAA,GAAI,EAAE,CAAA,CAAA,EAAI,WAAA,EAAa,KAAK;AAAA,KAC5D,CAAA;AAAA,EACH;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAGA,IAAM,aAAA,GACJ,2nBAAA;AAYF,SAAS,gBAAA,GAAyC;AAChD,EAAA,MAAM,KAAA,GAAQ,EAAA;AACd,EAAA,MAAM,EAAA,GAAK,CAAC,CAAA,KAAsB,IAAA,CAAK,MAAM,CAAA,GAAI,KAAA,GAAQ,GAAG,CAAA,GAAI,GAAA;AAChE,EAAA,MAAM,MAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,CAAC,EAAA,EAAI,GAAG,KAAK,MAAA,CAAO,OAAA,CAAQC,mCAAiB,CAAA,EAAG;AACzD,IAAA,MAAM,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA,GAAI,GAAA,CAAI,QAAA,IAAY,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AACpD,IAAA,MAAM,GAAA,GAAM,CAAA;AACZ,IAAA,MAAM,EAAA,GAAK,CAAC,EAAA,CAAG,EAAE,CAAA,GAAI,GAAA;AACrB,IAAA,MAAM,EAAA,GAAK,CAAC,EAAA,CAAG,EAAE,CAAA,GAAI,GAAA;AACrB,IAAA,MAAM,IAAI,EAAA,CAAG,GAAA,CAAI,IAAI,EAAA,GAAK,EAAE,IAAI,CAAA,GAAI,GAAA;AACpC,IAAA,MAAM,IAAI,EAAA,CAAG,GAAA,CAAI,IAAI,EAAA,GAAK,EAAE,IAAI,CAAA,GAAI,GAAA;AACpC,IAAA,GAAA,CAAI,IAAA,CAAK;AAAA,MACP,EAAA;AAAA,MACA,KAAA,EAAO,SAAS,EAAE,CAAA;AAAA,MAClB,GAAA,EAAK,OAAO,CAAA,EAAG,EAAE,IAAI,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,eAAe,GAAA,CAAI,IAAA,CAAK,EAAE,CAAA,EAAG,GAAA,CAAI,CAAA,EAAG,GAAG,GAAA,CAAI,CAAA,EAAG,EAAA,EAAI,CAAC;AAAA,KACzF,CAAA;AAAA,EACH;AACA,EAAA,OAAO,GAAA,CAAI,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,CAAM,aAAA,CAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AAC1D;AAEA,IAAM,QAAA,GAA8D;AAAA,EAClE,SAAS,OAAO;AAAA,IACd,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,oBAAA;AAAA,IACP,IAAA,EAAM,8EAAA;AAAA,IACN,SAAS,cAAA;AAAe,GAC1B,CAAA;AAAA,EACA,KAAK,OAAO;AAAA,IACV,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,uBAAA;AAAA,IACP,IAAA,EAAM,8FAAA;AAAA,IACN,SAAS,UAAA;AAAW,GACtB,CAAA;AAAA,EACA,KAAK,OAAO;AAAA,IACV,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM,oFAAA;AAAA,IACN,SAAS,UAAA;AAAW,GACtB,CAAA;AAAA,EACA,OAAO,OAAO;AAAA,IACZ,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM,kGAAA;AAAA,IACN,SAAS,YAAA;AAAa,GACxB,CAAA;AAAA,EACA,SAAS,OAAO;AAAA,IACd,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM,gGAAA;AAAA,IACN,SAAS,cAAA;AAAe,GAC1B,CAAA;AAAA,EACA,WAAW,OAAO;AAAA,IAChB,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM,yFAAA;AAAA,IACN,SAAS,oBAAA;AAAqB,GAChC,CAAA;AAAA,EACA,WAAW,OAAO;AAAA,IAChB,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,iCAAA;AAAA,IACP,IAAA,EAAM,sHAAA;AAAA,IACN,SAAS,gBAAA;AAAiB,GAC5B;AACF,CAAA;AAGO,IAAM,oBAAA,GAAuB,MAAA,CAAO,IAAA,CAAK,QAAQ;AAEjD,SAAS,iBAAiB,IAAA,EAAoC;AACnE,EAAA,MAAM,OAAA,GAAU,SAAS,IAAmB,CAAA;AAC5C,EAAA,OAAO,OAAA,GAAU,SAAQ,GAAI,IAAA;AAC/B","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\";\nimport { FLOORPLAN_SYMBOLS } from \"./diagrams/floorplan/catalog\";\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\n// ── Floor plan furniture & fixtures (AGS plan view) ────────────────\nconst FLOORPLAN_CSS =\n \".sx-fp-furn{fill:#ffffff;stroke:#475569;stroke-width:1.2}\" +\n \".sx-fp-furn-nofill{fill:none;stroke:#475569;stroke-width:1.2}\" +\n \".sx-fp-furn-line{fill:none;stroke:#475569;stroke-width:1}\" +\n \".sx-fp-furn-dash{fill:none;stroke:#475569;stroke-width:1;stroke-dasharray:4 3}\" +\n \".sx-fp-furn-dot{fill:#475569;stroke:none}\" +\n \".sx-fp-furn-solid{fill:#334155;stroke:none}\" +\n \".sx-fp-board-inner{fill:#ffffff;stroke:none}\" +\n \".sx-fp-chair{fill:#f1f5f9;stroke:#475569;stroke-width:1}\" +\n \".sx-fp-rug{fill:none;stroke:#94a3b8;stroke-width:1.2;stroke-dasharray:5 4}\" +\n \".sx-fp-hatch{fill:none;stroke:#cbd5e1;stroke-width:1}\" +\n \".sx-fp-furn-text{font-weight:600;font-family:sans-serif;fill:#475569}\";\n\nfunction floorplanCatalog(): SymbolCatalogEntry[] {\n const scale = 40; // px per meter for the standalone sheet\n const px = (m: number): number => Math.round(m * scale * 100) / 100;\n const out: SymbolCatalogEntry[] = [];\n for (const [id, def] of Object.entries(FLOORPLAN_SYMBOLS)) {\n const [mt, mr, mb, ml] = def.envelope ?? [0, 0, 0, 0];\n const pad = 5;\n const x0 = -px(ml) - pad;\n const y0 = -px(mt) - pad;\n const w = px(def.w + ml + mr) + 2 * pad;\n const h = px(def.h + mt + mb) + 2 * pad;\n out.push({\n id,\n label: humanize(id),\n svg: svgDoc(`${x0} ${y0} ${w} ${h}`, FLOORPLAN_CSS, def.draw({ w: def.w, h: def.h, px })),\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 floorplan: () => ({\n type: \"floorplan\",\n label: \"Floor plan furniture & fixtures\",\n note: \"AGS plan-view symbols — auto-seated tables, beds, kitchen/bath fixtures, classroom and event/banquet furniture.\",\n entries: floorplanCatalog(),\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,6 +1,6 @@
1
- export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-BDMaX1cT.cjs';
2
- import { D as DiagramPlugin, a as DiagramType } from './diagnostics-hObcaaFC.cjs';
3
- export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-hObcaaFC.cjs';
1
+ export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-1xoGiseb.cjs';
2
+ import { D as DiagramPlugin, a as DiagramType } from './diagnostics-CDwnQ65n.cjs';
3
+ export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-CDwnQ65n.cjs';
4
4
  export { genogram } from './diagrams/genogram/index.cjs';
5
5
  export { ecomap } from './diagrams/ecomap/index.cjs';
6
6
  export { pedigree } from './diagrams/pedigree/index.cjs';
@@ -15,7 +15,7 @@ export { sld } from './diagrams/sld/index.cjs';
15
15
  export { entity } from './diagrams/entity/index.cjs';
16
16
  export { fishbone } from './diagrams/fishbone/index.cjs';
17
17
  export { venn } from './diagrams/venn/index.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-BiXWjQht.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-DNOoLmYX.cjs';
19
19
  export { orgchart } from './diagrams/orgchart/index.cjs';
20
20
 
21
21
  declare const decisiontree: DiagramPlugin;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-OED2jUVj.js';
2
- import { D as DiagramPlugin, a as DiagramType } from './diagnostics-hObcaaFC.js';
3
- export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-hObcaaFC.js';
1
+ export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-CgXRSnCn.js';
2
+ import { D as DiagramPlugin, a as DiagramType } from './diagnostics-CDwnQ65n.js';
3
+ export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-CDwnQ65n.js';
4
4
  export { genogram } from './diagrams/genogram/index.js';
5
5
  export { ecomap } from './diagrams/ecomap/index.js';
6
6
  export { pedigree } from './diagrams/pedigree/index.js';
@@ -15,7 +15,7 @@ export { sld } from './diagrams/sld/index.js';
15
15
  export { entity } from './diagrams/entity/index.js';
16
16
  export { fishbone } from './diagrams/fishbone/index.js';
17
17
  export { venn } from './diagrams/venn/index.js';
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-Cq8y1aaa.js';
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-CYSH3_ca.js';
19
19
  export { orgchart } from './diagrams/orgchart/index.js';
20
20
 
21
21
  declare const decisiontree: DiagramPlugin;