schematex 0.9.10 → 0.9.12

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 (109) hide show
  1. package/dist/ai/ai-sdk.cjs +10 -9
  2. package/dist/ai/ai-sdk.cjs.map +1 -1
  3. package/dist/ai/ai-sdk.d.cts +5 -5
  4. package/dist/ai/ai-sdk.d.ts +5 -5
  5. package/dist/ai/ai-sdk.js +5 -4
  6. package/dist/ai/ai-sdk.js.map +1 -1
  7. package/dist/ai/index.cjs +19 -18
  8. package/dist/ai/index.cjs.map +1 -1
  9. package/dist/ai/index.d.cts +4 -4
  10. package/dist/ai/index.d.ts +4 -4
  11. package/dist/ai/index.js +6 -5
  12. package/dist/ai/index.js.map +1 -1
  13. package/dist/{api-D_d-JklT.d.ts → api-C9ufsgIb.d.ts} +2 -2
  14. package/dist/{api-DnTyW-6F.d.cts → api-DAUFeETp.d.cts} +2 -2
  15. package/dist/browser.cjs +11 -10
  16. package/dist/browser.cjs.map +1 -1
  17. package/dist/browser.d.cts +3 -3
  18. package/dist/browser.d.ts +3 -3
  19. package/dist/browser.js +5 -4
  20. package/dist/browser.js.map +1 -1
  21. package/dist/{chunk-IHX6J4HF.js → chunk-32LOZTNP.js} +178 -4
  22. package/dist/chunk-32LOZTNP.js.map +1 -0
  23. package/dist/{chunk-CXA45HIT.js → chunk-6KW7XSUR.js} +203 -12
  24. package/dist/chunk-6KW7XSUR.js.map +1 -0
  25. package/dist/{chunk-TXWVJAMR.cjs → chunk-HEGDKO2E.cjs} +178 -4
  26. package/dist/chunk-HEGDKO2E.cjs.map +1 -0
  27. package/dist/chunk-IBZKIMT5.cjs +826 -0
  28. package/dist/chunk-IBZKIMT5.cjs.map +1 -0
  29. package/dist/{chunk-T5QOVX2I.js → chunk-JLLDJCLW.js} +13194 -13037
  30. package/dist/chunk-JLLDJCLW.js.map +1 -0
  31. package/dist/{chunk-OY2CXLVY.cjs → chunk-MGMR6V6N.cjs} +13196 -13037
  32. package/dist/chunk-MGMR6V6N.cjs.map +1 -0
  33. package/dist/{chunk-MXV3XJFH.cjs → chunk-OGF7QM74.cjs} +80 -17
  34. package/dist/chunk-OGF7QM74.cjs.map +1 -0
  35. package/dist/chunk-PGMKMIGM.js +818 -0
  36. package/dist/chunk-PGMKMIGM.js.map +1 -0
  37. package/dist/{chunk-MVTYPWHO.js → chunk-Q5MQLUOH.js} +80 -17
  38. package/dist/chunk-Q5MQLUOH.js.map +1 -0
  39. package/dist/{chunk-CA54ESRT.cjs → chunk-YLG7S4SM.cjs} +205 -14
  40. package/dist/chunk-YLG7S4SM.cjs.map +1 -0
  41. package/dist/{diagnostics-D2qkBfFx.d.cts → diagnostics-DSxLohjY.d.cts} +9 -3
  42. package/dist/{diagnostics-D2qkBfFx.d.ts → diagnostics-DSxLohjY.d.ts} +9 -3
  43. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  44. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  45. package/dist/diagrams/circuit/index.cjs +8 -8
  46. package/dist/diagrams/circuit/index.d.cts +1 -1
  47. package/dist/diagrams/circuit/index.d.ts +1 -1
  48. package/dist/diagrams/circuit/index.js +1 -1
  49. package/dist/diagrams/ecomap/index.d.cts +1 -1
  50. package/dist/diagrams/ecomap/index.d.ts +1 -1
  51. package/dist/diagrams/entity/index.d.cts +1 -1
  52. package/dist/diagrams/entity/index.d.ts +1 -1
  53. package/dist/diagrams/fishbone/index.d.cts +1 -1
  54. package/dist/diagrams/fishbone/index.d.ts +1 -1
  55. package/dist/diagrams/flowchart/index.d.cts +2 -2
  56. package/dist/diagrams/flowchart/index.d.ts +2 -2
  57. package/dist/diagrams/genogram/index.d.cts +1 -1
  58. package/dist/diagrams/genogram/index.d.ts +1 -1
  59. package/dist/diagrams/ladder/index.d.cts +1 -1
  60. package/dist/diagrams/ladder/index.d.ts +1 -1
  61. package/dist/diagrams/logic/index.d.cts +1 -1
  62. package/dist/diagrams/logic/index.d.ts +1 -1
  63. package/dist/diagrams/orgchart/index.d.cts +1 -1
  64. package/dist/diagrams/orgchart/index.d.ts +1 -1
  65. package/dist/diagrams/pedigree/index.d.cts +1 -1
  66. package/dist/diagrams/pedigree/index.d.ts +1 -1
  67. package/dist/diagrams/phylo/index.d.cts +1 -1
  68. package/dist/diagrams/phylo/index.d.ts +1 -1
  69. package/dist/diagrams/siteplan/index.cjs +38 -0
  70. package/dist/diagrams/siteplan/index.cjs.map +1 -0
  71. package/dist/diagrams/siteplan/index.d.cts +122 -0
  72. package/dist/diagrams/siteplan/index.d.ts +122 -0
  73. package/dist/diagrams/siteplan/index.js +5 -0
  74. package/dist/diagrams/siteplan/index.js.map +1 -0
  75. package/dist/diagrams/sld/index.cjs +7 -7
  76. package/dist/diagrams/sld/index.d.cts +4 -1
  77. package/dist/diagrams/sld/index.d.ts +4 -1
  78. package/dist/diagrams/sld/index.js +1 -1
  79. package/dist/diagrams/sociogram/index.d.cts +1 -1
  80. package/dist/diagrams/sociogram/index.d.ts +1 -1
  81. package/dist/diagrams/timing/index.d.cts +1 -1
  82. package/dist/diagrams/timing/index.d.ts +1 -1
  83. package/dist/diagrams/venn/index.d.cts +1 -1
  84. package/dist/diagrams/venn/index.d.ts +1 -1
  85. package/dist/{index-JZlLiE6K.d.cts → index-CDDfbChc.d.cts} +1 -1
  86. package/dist/{index-D9u0YRxL.d.ts → index-CZa2pU0T.d.ts} +1 -1
  87. package/dist/index.cjs +56 -43
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.cts +10 -5
  90. package/dist/index.d.ts +10 -5
  91. package/dist/index.js +7 -6
  92. package/dist/index.js.map +1 -1
  93. package/dist/react.cjs +5 -4
  94. package/dist/react.cjs.map +1 -1
  95. package/dist/react.d.cts +2 -2
  96. package/dist/react.d.ts +2 -2
  97. package/dist/react.js +4 -3
  98. package/dist/react.js.map +1 -1
  99. package/dist/{tools-DAKYNcPv.d.cts → tools-Bvw6dwIR.d.cts} +2 -2
  100. package/dist/{tools-DM0aLCbc.d.ts → tools-DtuvE-K4.d.ts} +2 -2
  101. package/package.json +6 -1
  102. package/dist/chunk-CA54ESRT.cjs.map +0 -1
  103. package/dist/chunk-CXA45HIT.js.map +0 -1
  104. package/dist/chunk-IHX6J4HF.js.map +0 -1
  105. package/dist/chunk-MVTYPWHO.js.map +0 -1
  106. package/dist/chunk-MXV3XJFH.cjs.map +0 -1
  107. package/dist/chunk-OY2CXLVY.cjs.map +0 -1
  108. package/dist/chunk-T5QOVX2I.js.map +0 -1
  109. package/dist/chunk-TXWVJAMR.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMXV3XJFH_cjs = require('../../chunk-MXV3XJFH.cjs');
3
+ var chunkOGF7QM74_cjs = require('../../chunk-OGF7QM74.cjs');
4
4
  require('../../chunk-3KRL2EGN.cjs');
5
5
  require('../../chunk-SBB6C4OP.cjs');
6
6
  require('../../chunk-7OOUU6BL.cjs');
@@ -11,27 +11,27 @@ require('../../chunk-3WNW5Y7P.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "layoutSLD", {
13
13
  enumerable: true,
14
- get: function () { return chunkMXV3XJFH_cjs.layoutSLD; }
14
+ get: function () { return chunkOGF7QM74_cjs.layoutSLD; }
15
15
  });
16
16
  Object.defineProperty(exports, "lintSLD", {
17
17
  enumerable: true,
18
- get: function () { return chunkMXV3XJFH_cjs.lintSLD; }
18
+ get: function () { return chunkOGF7QM74_cjs.lintSLD; }
19
19
  });
20
20
  Object.defineProperty(exports, "lintSLDAst", {
21
21
  enumerable: true,
22
- get: function () { return chunkMXV3XJFH_cjs.lintSLDAst; }
22
+ get: function () { return chunkOGF7QM74_cjs.lintSLDAst; }
23
23
  });
24
24
  Object.defineProperty(exports, "parseSLDDSL", {
25
25
  enumerable: true,
26
- get: function () { return chunkMXV3XJFH_cjs.parseSLDDSL; }
26
+ get: function () { return chunkOGF7QM74_cjs.parseSLDDSL; }
27
27
  });
28
28
  Object.defineProperty(exports, "renderSLD", {
29
29
  enumerable: true,
30
- get: function () { return chunkMXV3XJFH_cjs.renderSLD; }
30
+ get: function () { return chunkOGF7QM74_cjs.renderSLD; }
31
31
  });
32
32
  Object.defineProperty(exports, "sld", {
33
33
  enumerable: true,
34
- get: function () { return chunkMXV3XJFH_cjs.sld; }
34
+ get: function () { return chunkOGF7QM74_cjs.sld; }
35
35
  });
36
36
  //# sourceMappingURL=index.cjs.map
37
37
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import { S as SchematexDiagnostic, n as SLDAST, R as RenderConfig, o as SLDNode, p as SLDNodeType, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.cjs';
1
+ import { S as SchematexDiagnostic, n as SLDAST, R as RenderConfig, o as SLDNode, p as SLDNodeType, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.cjs';
2
2
 
3
3
  /**
4
4
  * SLD standard-compatibility lint.
@@ -45,6 +45,9 @@ interface SLDLayoutEdge {
45
45
  to: string;
46
46
  path: string;
47
47
  cable?: string;
48
+ cableCsa?: string;
49
+ cableLengthM?: string;
50
+ cableInsulation?: string;
48
51
  label?: string;
49
52
  midX: number;
50
53
  midY: number;
@@ -1,4 +1,4 @@
1
- import { S as SchematexDiagnostic, n as SLDAST, R as RenderConfig, o as SLDNode, p as SLDNodeType, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.js';
1
+ import { S as SchematexDiagnostic, n as SLDAST, R as RenderConfig, o as SLDNode, p as SLDNodeType, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.js';
2
2
 
3
3
  /**
4
4
  * SLD standard-compatibility lint.
@@ -45,6 +45,9 @@ interface SLDLayoutEdge {
45
45
  to: string;
46
46
  path: string;
47
47
  cable?: string;
48
+ cableCsa?: string;
49
+ cableLengthM?: string;
50
+ cableInsulation?: string;
48
51
  label?: string;
49
52
  midX: number;
50
53
  midY: number;
@@ -1,4 +1,4 @@
1
- export { layoutSLD, lintSLD, lintSLDAst, parseSLDDSL, renderSLD, sld } from '../../chunk-MVTYPWHO.js';
1
+ export { layoutSLD, lintSLD, lintSLDAst, parseSLDDSL, renderSLD, sld } from '../../chunk-Q5MQLUOH.js';
2
2
  import '../../chunk-2KTQ75LN.js';
3
3
  import '../../chunk-PIV2A3HG.js';
4
4
  import '../../chunk-JVNV2T2T.js';
@@ -1,4 +1,4 @@
1
- import { h as LegendOverrides, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.cjs';
1
+ import { h as LegendOverrides, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.cjs';
2
2
 
3
3
  type SociogramLayout = "circular" | "force-directed" | "concentric";
4
4
  type EdgeValence = "positive" | "negative" | "neutral";
@@ -1,4 +1,4 @@
1
- import { h as LegendOverrides, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.js';
1
+ import { h as LegendOverrides, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.js';
2
2
 
3
3
  type SociogramLayout = "circular" | "force-directed" | "concentric";
4
4
  type EdgeValence = "positive" | "negative" | "neutral";
@@ -1,4 +1,4 @@
1
- import { T as TimingAST, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.cjs';
1
+ import { T as TimingAST, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.cjs';
2
2
 
3
3
  declare function parseTiming(text: string): TimingAST;
4
4
 
@@ -1,4 +1,4 @@
1
- import { T as TimingAST, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.js';
1
+ import { T as TimingAST, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.js';
2
2
 
3
3
  declare function parseTiming(text: string): TimingAST;
4
4
 
@@ -1,4 +1,4 @@
1
- import { V as VennAST, s as VennLayoutResult, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.cjs';
1
+ import { V as VennAST, s as VennLayoutResult, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.cjs';
2
2
 
3
3
  /**
4
4
  * Venn / Euler DSL parser (hand-written recursive descent).
@@ -1,4 +1,4 @@
1
- import { V as VennAST, s as VennLayoutResult, D as DiagramPlugin } from '../../diagnostics-D2qkBfFx.js';
1
+ import { V as VennAST, s as VennLayoutResult, D as DiagramPlugin } from '../../diagnostics-DSxLohjY.js';
2
2
 
3
3
  /**
4
4
  * Venn / Euler DSL parser (hand-written recursive descent).
@@ -1,4 +1,4 @@
1
- import { t as FlowchartAST, u as FlowchartLayoutResult, D as DiagramPlugin } from './diagnostics-D2qkBfFx.cjs';
1
+ import { t as FlowchartAST, u as FlowchartLayoutResult, D as DiagramPlugin } from './diagnostics-DSxLohjY.cjs';
2
2
 
3
3
  /**
4
4
  * Flowchart DSL parser.
@@ -1,4 +1,4 @@
1
- import { t as FlowchartAST, u as FlowchartLayoutResult, D as DiagramPlugin } from './diagnostics-D2qkBfFx.js';
1
+ import { t as FlowchartAST, u as FlowchartLayoutResult, D as DiagramPlugin } from './diagnostics-DSxLohjY.js';
2
2
 
3
3
  /**
4
4
  * Flowchart DSL parser.
package/dist/index.cjs CHANGED
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkOY2CXLVY_cjs = require('./chunk-OY2CXLVY.cjs');
3
+ var chunkMGMR6V6N_cjs = require('./chunk-MGMR6V6N.cjs');
4
4
  var chunkUHRNFBWY_cjs = require('./chunk-UHRNFBWY.cjs');
5
- var chunkTXWVJAMR_cjs = require('./chunk-TXWVJAMR.cjs');
5
+ var chunkIBZKIMT5_cjs = require('./chunk-IBZKIMT5.cjs');
6
+ var chunkHEGDKO2E_cjs = require('./chunk-HEGDKO2E.cjs');
6
7
  var chunkT55OQILI_cjs = require('./chunk-T55OQILI.cjs');
7
8
  var chunkGTCGATOL_cjs = require('./chunk-GTCGATOL.cjs');
8
- var chunkMXV3XJFH_cjs = require('./chunk-MXV3XJFH.cjs');
9
+ var chunkOGF7QM74_cjs = require('./chunk-OGF7QM74.cjs');
9
10
  var chunk4MANMKQ4_cjs = require('./chunk-4MANMKQ4.cjs');
10
11
  var chunkYFPDZVB7_cjs = require('./chunk-YFPDZVB7.cjs');
11
12
  var chunk3JN4762U_cjs = require('./chunk-3JN4762U.cjs');
@@ -34,8 +35,8 @@ function svgDoc(viewBox, css, inner) {
34
35
  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
36
  function circuitCatalog() {
36
37
  const merged = {
37
- ...chunkTXWVJAMR_cjs.SYMBOLS,
38
- ...chunkTXWVJAMR_cjs.EXTRA_SYMBOLS
38
+ ...chunkHEGDKO2E_cjs.SYMBOLS,
39
+ ...chunkHEGDKO2E_cjs.EXTRA_SYMBOLS
39
40
  };
40
41
  const out = [];
41
42
  for (const [id, def] of Object.entries(merged)) {
@@ -91,11 +92,11 @@ function sldCatalog() {
91
92
  for (const type of SLD_TYPES) {
92
93
  let inner;
93
94
  try {
94
- inner = chunkMXV3XJFH_cjs.renderSymbol(type);
95
+ inner = chunkOGF7QM74_cjs.renderSymbol(type);
95
96
  } catch {
96
97
  continue;
97
98
  }
98
- const g = chunkMXV3XJFH_cjs.geometryFor(type);
99
+ const g = chunkOGF7QM74_cjs.geometryFor(type);
99
100
  const w = Math.max(g.halfWidth, 18) + 12;
100
101
  const top = Math.min(g.topY, -22) - 8;
101
102
  const bot = Math.max(g.bottomY, 22) + 8;
@@ -111,10 +112,10 @@ var PID_CSS = ".lt-pid-equip{fill:#ffffff;stroke:#1d1d1d;stroke-width:1.6}.lt-pi
111
112
  function pidCatalog() {
112
113
  const out = [];
113
114
  const pad = 12;
114
- for (const [id, g] of Object.entries(chunkOY2CXLVY_cjs.GEOMETRY)) {
115
+ for (const [id, g] of Object.entries(chunkMGMR6V6N_cjs.GEOMETRY)) {
115
116
  let inner;
116
117
  try {
117
- inner = chunkOY2CXLVY_cjs.renderEquip(id, "");
118
+ inner = chunkMGMR6V6N_cjs.renderEquip(id, "");
118
119
  } catch {
119
120
  continue;
120
121
  }
@@ -224,11 +225,11 @@ var NETWORK_KINDS = [
224
225
  function networkCatalog() {
225
226
  const out = [];
226
227
  for (const kind of NETWORK_KINDS) {
227
- const { w, h } = chunkOY2CXLVY_cjs.iconSize(kind);
228
+ const { w, h } = chunkMGMR6V6N_cjs.iconSize(kind);
228
229
  const device = { id: kind, kind, label: humanize(kind), groups: [] };
229
230
  let inner;
230
231
  try {
231
- inner = chunkOY2CXLVY_cjs.drawDeviceIcon(device, { x: 0, y: 0, w, h });
232
+ inner = chunkMGMR6V6N_cjs.drawDeviceIcon(device, { x: 0, y: 0, w, h });
232
233
  } catch {
233
234
  continue;
234
235
  }
@@ -245,7 +246,7 @@ function floorplanCatalog() {
245
246
  const scale = 40;
246
247
  const px = (m) => Math.round(m * scale * 100) / 100;
247
248
  const out = [];
248
- for (const [id, def] of Object.entries(chunkOY2CXLVY_cjs.FLOORPLAN_SYMBOLS)) {
249
+ for (const [id, def] of Object.entries(chunkMGMR6V6N_cjs.FLOORPLAN_SYMBOLS)) {
249
250
  const [mt, mr, mb, ml] = def.envelope ?? [0, 0, 0, 0];
250
251
  const pad = 5;
251
252
  const x0 = -px(ml) - pad;
@@ -312,127 +313,139 @@ function getSymbolCatalog(type) {
312
313
 
313
314
  Object.defineProperty(exports, "bowtie", {
314
315
  enumerable: true,
315
- get: function () { return chunkOY2CXLVY_cjs.bowtie; }
316
+ get: function () { return chunkMGMR6V6N_cjs.bowtie; }
316
317
  });
317
318
  Object.defineProperty(exports, "causalloop", {
318
319
  enumerable: true,
319
- get: function () { return chunkOY2CXLVY_cjs.causalloop; }
320
+ get: function () { return chunkMGMR6V6N_cjs.causalloop; }
320
321
  });
321
322
  Object.defineProperty(exports, "comparison", {
322
323
  enumerable: true,
323
- get: function () { return chunkOY2CXLVY_cjs.comparison; }
324
+ get: function () { return chunkMGMR6V6N_cjs.comparison; }
324
325
  });
325
326
  Object.defineProperty(exports, "decisiontree", {
326
327
  enumerable: true,
327
- get: function () { return chunkOY2CXLVY_cjs.decisiontree; }
328
+ get: function () { return chunkMGMR6V6N_cjs.decisiontree; }
328
329
  });
329
330
  Object.defineProperty(exports, "epc", {
330
331
  enumerable: true,
331
- get: function () { return chunkOY2CXLVY_cjs.epc; }
332
+ get: function () { return chunkMGMR6V6N_cjs.epc; }
332
333
  });
333
334
  Object.defineProperty(exports, "eventtree", {
334
335
  enumerable: true,
335
- get: function () { return chunkOY2CXLVY_cjs.eventtree; }
336
+ get: function () { return chunkMGMR6V6N_cjs.eventtree; }
336
337
  });
337
338
  Object.defineProperty(exports, "faulttree", {
338
339
  enumerable: true,
339
- get: function () { return chunkOY2CXLVY_cjs.faulttree; }
340
+ get: function () { return chunkMGMR6V6N_cjs.faulttree; }
341
+ });
342
+ Object.defineProperty(exports, "floorplan", {
343
+ enumerable: true,
344
+ get: function () { return chunkMGMR6V6N_cjs.floorplan; }
340
345
  });
341
346
  Object.defineProperty(exports, "fmea", {
342
347
  enumerable: true,
343
- get: function () { return chunkOY2CXLVY_cjs.fmea; }
348
+ get: function () { return chunkMGMR6V6N_cjs.fmea; }
344
349
  });
345
350
  Object.defineProperty(exports, "gitgraph", {
346
351
  enumerable: true,
347
- get: function () { return chunkOY2CXLVY_cjs.gitgraph; }
352
+ get: function () { return chunkMGMR6V6N_cjs.gitgraph; }
348
353
  });
349
354
  Object.defineProperty(exports, "idef0", {
350
355
  enumerable: true,
351
- get: function () { return chunkOY2CXLVY_cjs.idef0; }
356
+ get: function () { return chunkMGMR6V6N_cjs.idef0; }
352
357
  });
353
358
  Object.defineProperty(exports, "markov", {
354
359
  enumerable: true,
355
- get: function () { return chunkOY2CXLVY_cjs.markov; }
360
+ get: function () { return chunkMGMR6V6N_cjs.markov; }
356
361
  });
357
362
  Object.defineProperty(exports, "network", {
358
363
  enumerable: true,
359
- get: function () { return chunkOY2CXLVY_cjs.network; }
364
+ get: function () { return chunkMGMR6V6N_cjs.network; }
360
365
  });
361
366
  Object.defineProperty(exports, "parse", {
362
367
  enumerable: true,
363
- get: function () { return chunkOY2CXLVY_cjs.parse; }
368
+ get: function () { return chunkMGMR6V6N_cjs.parse; }
364
369
  });
365
370
  Object.defineProperty(exports, "parseResult", {
366
371
  enumerable: true,
367
- get: function () { return chunkOY2CXLVY_cjs.parseResult; }
372
+ get: function () { return chunkMGMR6V6N_cjs.parseResult; }
368
373
  });
369
374
  Object.defineProperty(exports, "pert", {
370
375
  enumerable: true,
371
- get: function () { return chunkOY2CXLVY_cjs.pert; }
376
+ get: function () { return chunkMGMR6V6N_cjs.pert; }
372
377
  });
373
378
  Object.defineProperty(exports, "petri", {
374
379
  enumerable: true,
375
- get: function () { return chunkOY2CXLVY_cjs.petri; }
380
+ get: function () { return chunkMGMR6V6N_cjs.petri; }
376
381
  });
377
382
  Object.defineProperty(exports, "pid", {
378
383
  enumerable: true,
379
- get: function () { return chunkOY2CXLVY_cjs.pid; }
384
+ get: function () { return chunkMGMR6V6N_cjs.pid; }
385
+ });
386
+ Object.defineProperty(exports, "playbook", {
387
+ enumerable: true,
388
+ get: function () { return chunkMGMR6V6N_cjs.playbook; }
380
389
  });
381
390
  Object.defineProperty(exports, "prisma", {
382
391
  enumerable: true,
383
- get: function () { return chunkOY2CXLVY_cjs.prisma; }
392
+ get: function () { return chunkMGMR6V6N_cjs.prisma; }
384
393
  });
385
394
  Object.defineProperty(exports, "rbd", {
386
395
  enumerable: true,
387
- get: function () { return chunkOY2CXLVY_cjs.rbd; }
396
+ get: function () { return chunkMGMR6V6N_cjs.rbd; }
388
397
  });
389
398
  Object.defineProperty(exports, "render", {
390
399
  enumerable: true,
391
- get: function () { return chunkOY2CXLVY_cjs.render; }
400
+ get: function () { return chunkMGMR6V6N_cjs.render; }
392
401
  });
393
402
  Object.defineProperty(exports, "renderPreview", {
394
403
  enumerable: true,
395
- get: function () { return chunkOY2CXLVY_cjs.renderPreview; }
404
+ get: function () { return chunkMGMR6V6N_cjs.renderPreview; }
396
405
  });
397
406
  Object.defineProperty(exports, "renderResult", {
398
407
  enumerable: true,
399
- get: function () { return chunkOY2CXLVY_cjs.renderResult; }
408
+ get: function () { return chunkMGMR6V6N_cjs.renderResult; }
400
409
  });
401
410
  Object.defineProperty(exports, "sequence", {
402
411
  enumerable: true,
403
- get: function () { return chunkOY2CXLVY_cjs.sequence; }
412
+ get: function () { return chunkMGMR6V6N_cjs.sequence; }
404
413
  });
405
414
  Object.defineProperty(exports, "state", {
406
415
  enumerable: true,
407
- get: function () { return chunkOY2CXLVY_cjs.state; }
416
+ get: function () { return chunkMGMR6V6N_cjs.state; }
408
417
  });
409
418
  Object.defineProperty(exports, "threatmodel", {
410
419
  enumerable: true,
411
- get: function () { return chunkOY2CXLVY_cjs.threatmodel; }
420
+ get: function () { return chunkMGMR6V6N_cjs.threatmodel; }
412
421
  });
413
422
  Object.defineProperty(exports, "timeline", {
414
423
  enumerable: true,
415
- get: function () { return chunkOY2CXLVY_cjs.timeline; }
424
+ get: function () { return chunkMGMR6V6N_cjs.timeline; }
416
425
  });
417
426
  Object.defineProperty(exports, "umlclass", {
418
427
  enumerable: true,
419
- get: function () { return chunkOY2CXLVY_cjs.umlclass; }
428
+ get: function () { return chunkMGMR6V6N_cjs.umlclass; }
420
429
  });
421
430
  Object.defineProperty(exports, "usecase", {
422
431
  enumerable: true,
423
- get: function () { return chunkOY2CXLVY_cjs.usecase; }
432
+ get: function () { return chunkMGMR6V6N_cjs.usecase; }
424
433
  });
425
434
  Object.defineProperty(exports, "welding", {
426
435
  enumerable: true,
427
- get: function () { return chunkOY2CXLVY_cjs.welding; }
436
+ get: function () { return chunkMGMR6V6N_cjs.welding; }
428
437
  });
429
438
  Object.defineProperty(exports, "orgchart", {
430
439
  enumerable: true,
431
440
  get: function () { return chunkUHRNFBWY_cjs.orgchart; }
432
441
  });
442
+ Object.defineProperty(exports, "siteplan", {
443
+ enumerable: true,
444
+ get: function () { return chunkIBZKIMT5_cjs.siteplan; }
445
+ });
433
446
  Object.defineProperty(exports, "circuit", {
434
447
  enumerable: true,
435
- get: function () { return chunkTXWVJAMR_cjs.circuit; }
448
+ get: function () { return chunkHEGDKO2E_cjs.circuit; }
436
449
  });
437
450
  Object.defineProperty(exports, "blockdiagram", {
438
451
  enumerable: true,
@@ -444,7 +457,7 @@ Object.defineProperty(exports, "ladder", {
444
457
  });
445
458
  Object.defineProperty(exports, "sld", {
446
459
  enumerable: true,
447
- get: function () { return chunkMXV3XJFH_cjs.sld; }
460
+ get: function () { return chunkOGF7QM74_cjs.sld; }
448
461
  });
449
462
  Object.defineProperty(exports, "entity", {
450
463
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/symbols-catalog.ts"],"names":["SYMBOLS","EXTRA_SYMBOLS","renderSymbol","geometryFor","GEOMETRY","renderEquip","iconNames","renderIcon","getGateGeometry","iconSize","drawDeviceIcon","FLOORPLAN_SYMBOLS"],"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\";\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"]}
1
+ {"version":3,"sources":["../src/symbols-catalog.ts"],"names":["SYMBOLS","EXTRA_SYMBOLS","renderSymbol","geometryFor","GEOMETRY","renderEquip","iconNames","renderIcon","getGateGeometry","iconSize","drawDeviceIcon","FLOORPLAN_SYMBOLS"],"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\";\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-DnTyW-6F.cjs';
2
- import { D as DiagramPlugin, a as DiagramType } from './diagnostics-D2qkBfFx.cjs';
3
- export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-D2qkBfFx.cjs';
1
+ export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-DAUFeETp.cjs';
2
+ import { D as DiagramPlugin, a as DiagramType } from './diagnostics-DSxLohjY.cjs';
3
+ export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-DSxLohjY.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,8 +15,9 @@ 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-JZlLiE6K.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-CDDfbChc.cjs';
19
19
  export { orgchart } from './diagrams/orgchart/index.cjs';
20
+ export { siteplan } from './diagrams/siteplan/index.cjs';
20
21
 
21
22
  declare const decisiontree: DiagramPlugin;
22
23
 
@@ -78,6 +79,10 @@ declare const rbd: DiagramPlugin;
78
79
 
79
80
  declare const comparison: DiagramPlugin;
80
81
 
82
+ declare const floorplan: DiagramPlugin;
83
+
84
+ declare const playbook: DiagramPlugin;
85
+
81
86
  /**
82
87
  * Domain symbol catalogs — the real symbols an engine uses *inside* a diagram
83
88
  * (circuit components, SLD apparatus, P&ID equipment, flowchart node icons),
@@ -105,4 +110,4 @@ interface SymbolCatalog {
105
110
  declare const SYMBOL_CATALOG_TYPES: DiagramType[];
106
111
  declare function getSymbolCatalog(type: string): SymbolCatalog | null;
107
112
 
108
- export { SYMBOL_CATALOG_TYPES, type SymbolCatalog, type SymbolCatalogEntry, bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, fmea, getSymbolCatalog, gitgraph, idef0, markov, network, pert, petri, pid, prisma, rbd, sequence, state, threatmodel, timeline, umlclass, usecase, welding };
113
+ export { SYMBOL_CATALOG_TYPES, type SymbolCatalog, type SymbolCatalogEntry, bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, floorplan, fmea, getSymbolCatalog, gitgraph, idef0, markov, network, pert, petri, pid, playbook, prisma, rbd, sequence, state, threatmodel, timeline, umlclass, usecase, welding };
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-D_d-JklT.js';
2
- import { D as DiagramPlugin, a as DiagramType } from './diagnostics-D2qkBfFx.js';
3
- export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-D2qkBfFx.js';
1
+ export { S as SchematexConfig, p as parse, a as parseResult, r as render, b as renderPreview, c as renderResult } from './api-C9ufsgIb.js';
2
+ import { D as DiagramPlugin, a as DiagramType } from './diagnostics-DSxLohjY.js';
3
+ export { S as SchematexDiagnostic, b as SchematexParseResult, c as SchematexRenderResult, d as SchematexResultStatus } from './diagnostics-DSxLohjY.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,8 +15,9 @@ 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-D9u0YRxL.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-CZa2pU0T.js';
19
19
  export { orgchart } from './diagrams/orgchart/index.js';
20
+ export { siteplan } from './diagrams/siteplan/index.js';
20
21
 
21
22
  declare const decisiontree: DiagramPlugin;
22
23
 
@@ -78,6 +79,10 @@ declare const rbd: DiagramPlugin;
78
79
 
79
80
  declare const comparison: DiagramPlugin;
80
81
 
82
+ declare const floorplan: DiagramPlugin;
83
+
84
+ declare const playbook: DiagramPlugin;
85
+
81
86
  /**
82
87
  * Domain symbol catalogs — the real symbols an engine uses *inside* a diagram
83
88
  * (circuit components, SLD apparatus, P&ID equipment, flowchart node icons),
@@ -105,4 +110,4 @@ interface SymbolCatalog {
105
110
  declare const SYMBOL_CATALOG_TYPES: DiagramType[];
106
111
  declare function getSymbolCatalog(type: string): SymbolCatalog | null;
107
112
 
108
- export { SYMBOL_CATALOG_TYPES, type SymbolCatalog, type SymbolCatalogEntry, bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, fmea, getSymbolCatalog, gitgraph, idef0, markov, network, pert, petri, pid, prisma, rbd, sequence, state, threatmodel, timeline, umlclass, usecase, welding };
113
+ export { SYMBOL_CATALOG_TYPES, type SymbolCatalog, type SymbolCatalogEntry, bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, floorplan, fmea, getSymbolCatalog, gitgraph, idef0, markov, network, pert, petri, pid, playbook, prisma, rbd, sequence, state, threatmodel, timeline, umlclass, usecase, welding };
package/dist/index.js CHANGED
@@ -1,12 +1,13 @@
1
- import { FLOORPLAN_SYMBOLS, iconSize, drawDeviceIcon, GEOMETRY, renderEquip } from './chunk-T5QOVX2I.js';
2
- export { bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, fmea, gitgraph, idef0, markov, network, parse, parseResult, pert, petri, pid, prisma, rbd, render, renderPreview, renderResult, sequence, state, threatmodel, timeline, umlclass, usecase, welding } from './chunk-T5QOVX2I.js';
1
+ import { FLOORPLAN_SYMBOLS, iconSize, drawDeviceIcon, GEOMETRY, renderEquip } from './chunk-JLLDJCLW.js';
2
+ export { bowtie, causalloop, comparison, decisiontree, epc, eventtree, faulttree, floorplan, fmea, gitgraph, idef0, markov, network, parse, parseResult, pert, petri, pid, playbook, prisma, rbd, render, renderPreview, renderResult, sequence, state, threatmodel, timeline, umlclass, usecase, welding } from './chunk-JLLDJCLW.js';
3
3
  export { orgchart } from './chunk-EB7T5SEO.js';
4
- import { EXTRA_SYMBOLS, SYMBOLS } from './chunk-IHX6J4HF.js';
5
- export { circuit } from './chunk-IHX6J4HF.js';
4
+ export { siteplan } from './chunk-PGMKMIGM.js';
5
+ import { EXTRA_SYMBOLS, SYMBOLS } from './chunk-32LOZTNP.js';
6
+ export { circuit } from './chunk-32LOZTNP.js';
6
7
  export { blockdiagram } from './chunk-P4U565XH.js';
7
8
  export { ladder } from './chunk-W4UVDMUC.js';
8
- import { renderSymbol, geometryFor } from './chunk-MVTYPWHO.js';
9
- export { sld } from './chunk-MVTYPWHO.js';
9
+ import { renderSymbol, geometryFor } from './chunk-Q5MQLUOH.js';
10
+ export { sld } from './chunk-Q5MQLUOH.js';
10
11
  export { entity } from './chunk-2IRYXK4M.js';
11
12
  export { fishbone } from './chunk-NP7N3DZG.js';
12
13
  export { venn } from './chunk-KUSW5I2P.js';