schematex 0.3.3 → 0.4.0

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 (214) hide show
  1. package/README.md +25 -5
  2. package/dist/ai/ai-sdk.cjs +24 -23
  3. package/dist/ai/ai-sdk.cjs.map +1 -1
  4. package/dist/ai/ai-sdk.d.cts +2 -2
  5. package/dist/ai/ai-sdk.d.ts +2 -2
  6. package/dist/ai/ai-sdk.js +19 -18
  7. package/dist/ai/ai-sdk.js.map +1 -1
  8. package/dist/ai/index.cjs +27 -26
  9. package/dist/ai/index.d.cts +2 -2
  10. package/dist/ai/index.d.ts +2 -2
  11. package/dist/ai/index.js +19 -18
  12. package/dist/{api-BuFilDQB.d.cts → api-BIj9t4Oc.d.cts} +1 -1
  13. package/dist/{api-BuFilDQB.d.ts → api-BIj9t4Oc.d.ts} +1 -1
  14. package/dist/browser.cjs +21 -20
  15. package/dist/browser.cjs.map +1 -1
  16. package/dist/browser.d.cts +2 -2
  17. package/dist/browser.d.ts +2 -2
  18. package/dist/browser.js +19 -18
  19. package/dist/browser.js.map +1 -1
  20. package/dist/{chunk-YUPG2M3I.cjs → chunk-2Z543TC3.cjs} +8 -7
  21. package/dist/chunk-2Z543TC3.cjs.map +1 -0
  22. package/dist/{chunk-MNOO7STY.js → chunk-3ADSXODY.js} +428 -10
  23. package/dist/chunk-3ADSXODY.js.map +1 -0
  24. package/dist/{chunk-AVIKQZSX.cjs → chunk-3MJKJX27.cjs} +2 -3
  25. package/dist/chunk-3MJKJX27.cjs.map +1 -0
  26. package/dist/{chunk-UDJ2KN2A.js → chunk-5FF2IT3C.js} +6 -5
  27. package/dist/chunk-5FF2IT3C.js.map +1 -0
  28. package/dist/chunk-5IKOLUWK.js +89 -0
  29. package/dist/chunk-5IKOLUWK.js.map +1 -0
  30. package/dist/{chunk-6TIN33CA.js → chunk-6URNSB6G.js} +6 -5
  31. package/dist/chunk-6URNSB6G.js.map +1 -0
  32. package/dist/{chunk-ZZJDGGC3.cjs → chunk-6WORZSL3.cjs} +3 -3
  33. package/dist/{chunk-ZZJDGGC3.cjs.map → chunk-6WORZSL3.cjs.map} +1 -1
  34. package/dist/{chunk-GLFBHQSQ.js → chunk-6XGSEG3K.js} +2 -3
  35. package/dist/chunk-6XGSEG3K.js.map +1 -0
  36. package/dist/{chunk-UWRTV6IV.cjs → chunk-7LNIBHO6.cjs} +430 -12
  37. package/dist/chunk-7LNIBHO6.cjs.map +1 -0
  38. package/dist/{chunk-PG6TDGKI.cjs → chunk-BW4KGTV7.cjs} +66 -32
  39. package/dist/chunk-BW4KGTV7.cjs.map +1 -0
  40. package/dist/{chunk-ZFNZ2FYI.cjs → chunk-E2EJRVWS.cjs} +44 -13
  41. package/dist/chunk-E2EJRVWS.cjs.map +1 -0
  42. package/dist/{chunk-66XQBGX7.js → chunk-EPKIJEH7.js} +6 -5
  43. package/dist/chunk-EPKIJEH7.js.map +1 -0
  44. package/dist/{chunk-55UEHL57.cjs → chunk-GZY4CJ23.cjs} +6 -5
  45. package/dist/chunk-GZY4CJ23.cjs.map +1 -0
  46. package/dist/{chunk-U3KRKXF7.js → chunk-I55HO32M.js} +6 -5
  47. package/dist/chunk-I55HO32M.js.map +1 -0
  48. package/dist/{chunk-GVCPFBAV.js → chunk-J7JWMQD5.js} +8 -7
  49. package/dist/chunk-J7JWMQD5.js.map +1 -0
  50. package/dist/{chunk-UT4TIDAA.js → chunk-JDBG5DU2.js} +6 -5
  51. package/dist/chunk-JDBG5DU2.js.map +1 -0
  52. package/dist/{chunk-QOLBWCF5.cjs → chunk-K6RAUXRQ.cjs} +2 -3
  53. package/dist/chunk-K6RAUXRQ.cjs.map +1 -0
  54. package/dist/{chunk-FIVUMDLF.js → chunk-KVP7AORH.js} +44 -13
  55. package/dist/chunk-KVP7AORH.js.map +1 -0
  56. package/dist/{chunk-5U2W3HQA.js → chunk-L3CTXXVZ.js} +66 -32
  57. package/dist/chunk-L3CTXXVZ.js.map +1 -0
  58. package/dist/{chunk-WTF6JXHN.js → chunk-LPKVIRYT.js} +2 -3
  59. package/dist/chunk-LPKVIRYT.js.map +1 -0
  60. package/dist/chunk-NAGUZFXX.cjs +94 -0
  61. package/dist/chunk-NAGUZFXX.cjs.map +1 -0
  62. package/dist/{chunk-APV4AWQ5.cjs → chunk-O2HN4WRG.cjs} +6240 -62
  63. package/dist/chunk-O2HN4WRG.cjs.map +1 -0
  64. package/dist/{chunk-6YUP3QMA.js → chunk-O4RHSAHR.js} +6224 -46
  65. package/dist/chunk-O4RHSAHR.js.map +1 -0
  66. package/dist/{chunk-HOI6QKC6.cjs → chunk-O5POCPXZ.cjs} +2 -3
  67. package/dist/chunk-O5POCPXZ.cjs.map +1 -0
  68. package/dist/{chunk-UDGU73RL.cjs → chunk-OIZ4MYSF.cjs} +6 -5
  69. package/dist/chunk-OIZ4MYSF.cjs.map +1 -0
  70. package/dist/{chunk-IAEABLIV.cjs → chunk-QUKVGHN4.cjs} +6 -5
  71. package/dist/chunk-QUKVGHN4.cjs.map +1 -0
  72. package/dist/{chunk-N56YC75X.cjs → chunk-RYVV5UVI.cjs} +6 -5
  73. package/dist/chunk-RYVV5UVI.cjs.map +1 -0
  74. package/dist/{chunk-CWZKP3CJ.cjs → chunk-S2KJRHDZ.cjs} +4 -6
  75. package/dist/chunk-S2KJRHDZ.cjs.map +1 -0
  76. package/dist/{chunk-ZCW7YH3C.cjs → chunk-ST5YRTTV.cjs} +6 -5
  77. package/dist/chunk-ST5YRTTV.cjs.map +1 -0
  78. package/dist/{chunk-QXL7AY2H.cjs → chunk-SUIDD2C5.cjs} +6 -5
  79. package/dist/chunk-SUIDD2C5.cjs.map +1 -0
  80. package/dist/{chunk-XV2DTN6G.js → chunk-SZK376QB.js} +6 -5
  81. package/dist/chunk-SZK376QB.js.map +1 -0
  82. package/dist/{chunk-7EWFVNYD.cjs → chunk-UUBNQV2T.cjs} +4 -6
  83. package/dist/chunk-UUBNQV2T.cjs.map +1 -0
  84. package/dist/{chunk-PAG3BNIV.js → chunk-VDSYMSUY.js} +4 -6
  85. package/dist/chunk-VDSYMSUY.js.map +1 -0
  86. package/dist/{chunk-TQU44E46.js → chunk-WHNIK4LK.js} +2 -3
  87. package/dist/chunk-WHNIK4LK.js.map +1 -0
  88. package/dist/{chunk-Q5OFA4I2.cjs → chunk-YLEVMOK2.cjs} +23 -9
  89. package/dist/chunk-YLEVMOK2.cjs.map +1 -0
  90. package/dist/{chunk-X5QJO4ZD.js → chunk-YWDODCW2.js} +3 -3
  91. package/dist/{chunk-X5QJO4ZD.js.map → chunk-YWDODCW2.js.map} +1 -1
  92. package/dist/{chunk-AC3XH3LB.js → chunk-ZX74KJPM.js} +4 -6
  93. package/dist/chunk-ZX74KJPM.js.map +1 -0
  94. package/dist/{chunk-IQRRZPVZ.js → chunk-ZYRCPSBU.js} +23 -9
  95. package/dist/chunk-ZYRCPSBU.js.map +1 -0
  96. package/dist/diagrams/blockdiagram/index.cjs +6 -5
  97. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  98. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  99. package/dist/diagrams/blockdiagram/index.js +2 -1
  100. package/dist/diagrams/circuit/index.cjs +8 -7
  101. package/dist/diagrams/circuit/index.d.cts +1 -1
  102. package/dist/diagrams/circuit/index.d.ts +1 -1
  103. package/dist/diagrams/circuit/index.js +2 -1
  104. package/dist/diagrams/ecomap/index.cjs +6 -6
  105. package/dist/diagrams/ecomap/index.d.cts +1 -1
  106. package/dist/diagrams/ecomap/index.d.ts +1 -1
  107. package/dist/diagrams/ecomap/index.js +1 -1
  108. package/dist/diagrams/entity/index.cjs +6 -5
  109. package/dist/diagrams/entity/index.d.cts +1 -1
  110. package/dist/diagrams/entity/index.d.ts +1 -1
  111. package/dist/diagrams/entity/index.js +2 -1
  112. package/dist/diagrams/fishbone/index.cjs +7 -7
  113. package/dist/diagrams/fishbone/index.d.cts +1 -1
  114. package/dist/diagrams/fishbone/index.d.ts +1 -1
  115. package/dist/diagrams/fishbone/index.js +1 -1
  116. package/dist/diagrams/flowchart/index.cjs +7 -7
  117. package/dist/diagrams/flowchart/index.d.cts +2 -2
  118. package/dist/diagrams/flowchart/index.d.ts +2 -2
  119. package/dist/diagrams/flowchart/index.js +1 -1
  120. package/dist/diagrams/genogram/index.cjs +8 -8
  121. package/dist/diagrams/genogram/index.d.cts +1 -1
  122. package/dist/diagrams/genogram/index.d.ts +1 -1
  123. package/dist/diagrams/genogram/index.js +1 -1
  124. package/dist/diagrams/ladder/index.cjs +6 -5
  125. package/dist/diagrams/ladder/index.d.cts +1 -1
  126. package/dist/diagrams/ladder/index.d.ts +1 -1
  127. package/dist/diagrams/ladder/index.js +2 -1
  128. package/dist/diagrams/logic/index.cjs +6 -5
  129. package/dist/diagrams/logic/index.d.cts +1 -1
  130. package/dist/diagrams/logic/index.d.ts +1 -1
  131. package/dist/diagrams/logic/index.js +2 -1
  132. package/dist/diagrams/orgchart/index.cjs +7 -6
  133. package/dist/diagrams/orgchart/index.d.cts +1 -1
  134. package/dist/diagrams/orgchart/index.d.ts +1 -1
  135. package/dist/diagrams/orgchart/index.js +2 -1
  136. package/dist/diagrams/pedigree/index.cjs +6 -6
  137. package/dist/diagrams/pedigree/index.d.cts +1 -1
  138. package/dist/diagrams/pedigree/index.d.ts +1 -1
  139. package/dist/diagrams/pedigree/index.js +1 -1
  140. package/dist/diagrams/phylo/index.cjs +7 -6
  141. package/dist/diagrams/phylo/index.d.cts +1 -1
  142. package/dist/diagrams/phylo/index.d.ts +1 -1
  143. package/dist/diagrams/phylo/index.js +2 -1
  144. package/dist/diagrams/sld/index.cjs +6 -5
  145. package/dist/diagrams/sld/index.d.cts +1 -1
  146. package/dist/diagrams/sld/index.d.ts +1 -1
  147. package/dist/diagrams/sld/index.js +2 -1
  148. package/dist/diagrams/sociogram/index.cjs +6 -5
  149. package/dist/diagrams/sociogram/index.d.cts +1 -1
  150. package/dist/diagrams/sociogram/index.d.ts +1 -1
  151. package/dist/diagrams/sociogram/index.js +2 -1
  152. package/dist/diagrams/timing/index.cjs +5 -4
  153. package/dist/diagrams/timing/index.d.cts +1 -1
  154. package/dist/diagrams/timing/index.d.ts +1 -1
  155. package/dist/diagrams/timing/index.js +2 -1
  156. package/dist/diagrams/venn/index.cjs +9 -8
  157. package/dist/diagrams/venn/index.d.cts +1 -1
  158. package/dist/diagrams/venn/index.d.ts +1 -1
  159. package/dist/diagrams/venn/index.js +2 -1
  160. package/dist/export.cjs +1 -1
  161. package/dist/export.cjs.map +1 -1
  162. package/dist/export.d.cts +1 -1
  163. package/dist/export.d.ts +1 -1
  164. package/dist/export.js +1 -1
  165. package/dist/export.js.map +1 -1
  166. package/dist/{index-D3u6vcA4.d.ts → index-CGK0xVls.d.ts} +3 -3
  167. package/dist/{index-bdfj6FpQ.d.cts → index-OW8eDrKj.d.cts} +3 -3
  168. package/dist/index.cjs +40 -39
  169. package/dist/index.d.cts +3 -3
  170. package/dist/index.d.ts +3 -3
  171. package/dist/index.js +18 -17
  172. package/dist/react.cjs +19 -18
  173. package/dist/react.cjs.map +1 -1
  174. package/dist/react.d.cts +1 -1
  175. package/dist/react.d.ts +1 -1
  176. package/dist/react.js +18 -17
  177. package/dist/react.js.map +1 -1
  178. package/dist/{types-DnU2UlWz.d.ts → types-Gkyab1sL.d.cts} +5 -1
  179. package/dist/{types-DnU2UlWz.d.cts → types-Gkyab1sL.d.ts} +5 -1
  180. package/package.json +2 -2
  181. package/dist/chunk-55UEHL57.cjs.map +0 -1
  182. package/dist/chunk-5U2W3HQA.js.map +0 -1
  183. package/dist/chunk-66XQBGX7.js.map +0 -1
  184. package/dist/chunk-6TIN33CA.js.map +0 -1
  185. package/dist/chunk-6YUP3QMA.js.map +0 -1
  186. package/dist/chunk-7EWFVNYD.cjs.map +0 -1
  187. package/dist/chunk-AC3XH3LB.js.map +0 -1
  188. package/dist/chunk-APV4AWQ5.cjs.map +0 -1
  189. package/dist/chunk-AVIKQZSX.cjs.map +0 -1
  190. package/dist/chunk-CWZKP3CJ.cjs.map +0 -1
  191. package/dist/chunk-FIVUMDLF.js.map +0 -1
  192. package/dist/chunk-GLFBHQSQ.js.map +0 -1
  193. package/dist/chunk-GVCPFBAV.js.map +0 -1
  194. package/dist/chunk-HOI6QKC6.cjs.map +0 -1
  195. package/dist/chunk-IAEABLIV.cjs.map +0 -1
  196. package/dist/chunk-IQRRZPVZ.js.map +0 -1
  197. package/dist/chunk-MNOO7STY.js.map +0 -1
  198. package/dist/chunk-N56YC75X.cjs.map +0 -1
  199. package/dist/chunk-PAG3BNIV.js.map +0 -1
  200. package/dist/chunk-PG6TDGKI.cjs.map +0 -1
  201. package/dist/chunk-Q5OFA4I2.cjs.map +0 -1
  202. package/dist/chunk-QOLBWCF5.cjs.map +0 -1
  203. package/dist/chunk-QXL7AY2H.cjs.map +0 -1
  204. package/dist/chunk-TQU44E46.js.map +0 -1
  205. package/dist/chunk-U3KRKXF7.js.map +0 -1
  206. package/dist/chunk-UDGU73RL.cjs.map +0 -1
  207. package/dist/chunk-UDJ2KN2A.js.map +0 -1
  208. package/dist/chunk-UT4TIDAA.js.map +0 -1
  209. package/dist/chunk-UWRTV6IV.cjs.map +0 -1
  210. package/dist/chunk-WTF6JXHN.js.map +0 -1
  211. package/dist/chunk-XV2DTN6G.js.map +0 -1
  212. package/dist/chunk-YUPG2M3I.cjs.map +0 -1
  213. package/dist/chunk-ZCW7YH3C.cjs.map +0 -1
  214. package/dist/chunk-ZFNZ2FYI.cjs.map +0 -1
package/README.md CHANGED
@@ -29,13 +29,14 @@
29
29
 
30
30
  ---
31
31
 
32
- **Schematex** is the open-source rendering engine for the diagrams professionals actually use — medical, electrical, legal, and analytical. 22 diagram families across six domains:
32
+ **Schematex** is the open-source rendering engine for the diagrams professionals actually use — medical, electrical, legal, and analytical. 27 diagram families across seven domains:
33
33
 
34
34
  - 👪 **Relationships** — genograms, ecomaps, pedigrees, sociograms, phylogenetic trees
35
- - ⚡ **Electrical & Industrial** — ladder logic, single-line diagrams, circuit schematics, logic gates, timing, block diagrams, **P&ID** (ISA-5.1)
35
+ - ⚡ **Electrical & Industrial** — ladder logic, single-line diagrams, circuit schematics, logic gates, timing, block diagrams, **FBD**, **SFC**, breadboard, **P&ID** (ISA-5.1)
36
36
  - 🏢 **Corporate & Legal** — entity structures, cap tables
37
37
  - 🐟 **Causality & Analysis** — fishbone / Ishikawa, decision trees (Howard-Raiffa EV · CART/sklearn · taxonomy)
38
- - 🔄 **Behavior modeling** — UML 2.5 / Harel **state diagrams** (Mermaid-compatible superset)
38
+ - 🔄 **Behavior modeling** — UML 2.5 / Harel **state diagrams** (Mermaid-compatible superset), **BPMN 2.0** (OMG)
39
+ - 🗄️ **Data modeling** — ERD crow's-foot notation
39
40
  - 📅 **Timelines** — proportional / equidistant / log axis · swimlane · gantt · lollipop · BC dates · geological Ma scale
40
41
 
41
42
  Mermaid draws generic flowcharts. Schematex draws the diagrams doctors, engineers, and lawyers actually use — a genogram a genetic counselor accepts clinically, ladder logic that maps 1:1 to IEC 61131-3, a cap table that survives a Series A review.
@@ -71,7 +72,7 @@ import { render } from 'schematex/genogram';
71
72
 
72
73
  ## Gallery
73
74
 
74
- 22 diagram types, one unified pipeline. **Try any of these live at [schematex.dev/playground](https://schematex.dev/playground).**
75
+ 27 diagram types, one unified pipeline. **Try any of these live at [schematex.dev/playground](https://schematex.dev/playground).**
75
76
 
76
77
  ### 👪 Genogram — *McGoldrick family-systems standard*
77
78
 
@@ -534,12 +535,31 @@ import { SchematexDiagram } from 'schematex/react';
534
535
 
535
536
  // Export (browser Canvas)
536
537
  import { svgToPngBlob, downloadBlob, printSvgAsPdf } from 'schematex/export';
537
- const blob = await svgToPngBlob(svg, { scale: 2 });
538
+ const blob = await svgToPngBlob(svg, { scale: 2 }); // transparent PNG
539
+ const opaque = await svgToPngBlob(svg, { background: 'white' }); // opt-in fill
538
540
  downloadBlob(blob, 'diagram.png');
539
541
  ```
540
542
 
541
543
  See the [API reference →](https://schematex.dev/docs/api).
542
544
 
545
+ ### Backgrounds & dark mode
546
+
547
+ Schematex SVGs are **background-agnostic by default** — no fill is baked into the
548
+ output, so a diagram inherits whatever color its host element provides. This
549
+ keeps the same SVG embeddable in light pages, dark canvases, or print PDFs.
550
+
551
+ When using `theme: "dark"`, the diagram's strokes and text are designed for a
552
+ dark surface — wrap the SVG in a container with a dark background, e.g.:
553
+
554
+ ```html
555
+ <div style="background: #0f172a; padding: 16px;">
556
+ <!-- schematex SVG with theme: "dark" -->
557
+ </div>
558
+ ```
559
+
560
+ PNG export (`svgToPngBlob`) defaults to a transparent background. Pass
561
+ `background: 'white'` (or any color) to bake one in.
562
+
543
563
  ## Ecosystem
544
564
 
545
565
  - **React** — `schematex/react` — `<SchematexDiagram dsl="..." />` component
@@ -1,25 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var chunkUWRTV6IV_cjs = require('../chunk-UWRTV6IV.cjs');
4
- require('../chunk-APV4AWQ5.cjs');
5
- require('../chunk-IAEABLIV.cjs');
6
- require('../chunk-YUPG2M3I.cjs');
7
- require('../chunk-QXL7AY2H.cjs');
8
- require('../chunk-55UEHL57.cjs');
9
- require('../chunk-UDGU73RL.cjs');
10
- require('../chunk-N56YC75X.cjs');
11
- require('../chunk-ZZJDGGC3.cjs');
12
- require('../chunk-PG6TDGKI.cjs');
13
- require('../chunk-ZFNZ2FYI.cjs');
14
- require('../chunk-QOLBWCF5.cjs');
15
- require('../chunk-AVIKQZSX.cjs');
16
- require('../chunk-HOI6QKC6.cjs');
17
- require('../chunk-CWZKP3CJ.cjs');
18
- require('../chunk-7EWFVNYD.cjs');
3
+ var chunk7LNIBHO6_cjs = require('../chunk-7LNIBHO6.cjs');
4
+ require('../chunk-O2HN4WRG.cjs');
5
+ require('../chunk-QUKVGHN4.cjs');
6
+ require('../chunk-2Z543TC3.cjs');
7
+ require('../chunk-SUIDD2C5.cjs');
8
+ require('../chunk-GZY4CJ23.cjs');
9
+ require('../chunk-OIZ4MYSF.cjs');
10
+ require('../chunk-RYVV5UVI.cjs');
11
+ require('../chunk-6WORZSL3.cjs');
12
+ require('../chunk-BW4KGTV7.cjs');
13
+ require('../chunk-E2EJRVWS.cjs');
14
+ require('../chunk-K6RAUXRQ.cjs');
15
+ require('../chunk-3MJKJX27.cjs');
16
+ require('../chunk-O5POCPXZ.cjs');
17
+ require('../chunk-S2KJRHDZ.cjs');
18
+ require('../chunk-UUBNQV2T.cjs');
19
19
  require('../chunk-5UCXMYE7.cjs');
20
- require('../chunk-ZCW7YH3C.cjs');
21
- require('../chunk-Q5OFA4I2.cjs');
20
+ require('../chunk-ST5YRTTV.cjs');
21
+ require('../chunk-YLEVMOK2.cjs');
22
22
  require('../chunk-D7EHZFK4.cjs');
23
+ require('../chunk-NAGUZFXX.cjs');
23
24
  require('../chunk-3WNW5Y7P.cjs');
24
25
  var ai = require('ai');
25
26
  var zod = require('zod');
@@ -28,7 +29,7 @@ var schematexTools = {
28
29
  listDiagrams: ai.tool({
29
30
  description: "List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.",
30
31
  inputSchema: zod.z.object({}),
31
- execute: async () => chunkUWRTV6IV_cjs.listDiagrams()
32
+ execute: async () => chunk7LNIBHO6_cjs.listDiagrams()
32
33
  }),
33
34
  getSyntax: ai.tool({
34
35
  description: "Return a compact syntax reference for one diagram type \u2014 rules, grammar (EBNF), and inline examples. Trimmed for LLM consumption (~2,000\u20134,000 tokens). Call after listDiagrams once you've chosen a type.",
@@ -37,7 +38,7 @@ var schematexTools = {
37
38
  "Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone')."
38
39
  )
39
40
  }),
40
- execute: async ({ type }) => chunkUWRTV6IV_cjs.getSyntax(type)
41
+ execute: async ({ type }) => chunk7LNIBHO6_cjs.getSyntax(type)
41
42
  }),
42
43
  getExamples: ai.tool({
43
44
  description: "Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.",
@@ -47,7 +48,7 @@ var schematexTools = {
47
48
  preferFeatured: zod.z.boolean().optional().describe("Rank featured examples first."),
48
49
  maxComplexity: zod.z.number().int().min(1).max(5).optional().describe("Only return examples with complexity <= this value (1=simplest).")
49
50
  }),
50
- execute: async (args) => chunkUWRTV6IV_cjs.getExamples(args.type, {
51
+ execute: async (args) => chunk7LNIBHO6_cjs.getExamples(args.type, {
51
52
  limit: args.limit,
52
53
  preferFeatured: args.preferFeatured,
53
54
  maxComplexity: args.maxComplexity
@@ -61,7 +62,7 @@ var schematexTools = {
61
62
  ),
62
63
  dsl: zod.z.string().describe("The DSL source text to validate.")
63
64
  }),
64
- execute: async ({ type, dsl }) => chunkUWRTV6IV_cjs.validateDsl(type, dsl)
65
+ execute: async ({ type, dsl }) => chunk7LNIBHO6_cjs.validateDsl(type, dsl)
65
66
  }),
66
67
  renderDsl: ai.tool({
67
68
  description: "Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.",
@@ -76,7 +77,7 @@ var schematexTools = {
76
77
  dsl,
77
78
  theme,
78
79
  padding
79
- }) => chunkUWRTV6IV_cjs.renderDsl(type, dsl, { theme, padding })
80
+ }) => chunk7LNIBHO6_cjs.renderDsl(type, dsl, { theme, padding })
80
81
  })
81
82
  };
82
83
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":["tool","z","listDiagrams","getSyntax","getExamples","validateDsl","renderDsl"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAcA,OAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAaC,KAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAYC,8BAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAWF,OAAA,CAAK;AAAA,IACd,WAAA,EACE,sNAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CACH,MAAA,EAAO,CACP,QAAA;AAAA,QACC;AAAA;AACF,KACH,CAAA;AAAA,IACD,SAAS,OAAO,EAAE,IAAA,EAAK,KAAwBE,4BAAc,IAAI;AAAA,GAClE,CAAA;AAAA,EAED,aAAaH,OAAA,CAAK;AAAA,IAChB,WAAA,EACE,8IAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA,MAC5C,KAAA,EAAOA,KAAA,CACJ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA,CACN,QAAA,EAAS,CACT,SAAS,qCAAqC,CAAA;AAAA,MACjD,gBAAgBA,KAAA,CACb,OAAA,GACA,QAAA,EAAS,CACT,SAAS,+BAA+B,CAAA;AAAA,MAC3C,aAAA,EAAeA,KAAA,CACZ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,CAAC,CAAA,CACL,QAAA,EAAS,CACT,SAAS,kEAAkE;AAAA,KAC/E,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,IAAA,KAMdG,6BAAA,CAAgB,KAAK,IAAA,EAAM;AAAA,MACzB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,eAAe,IAAA,CAAK;AAAA,KACrB;AAAA,GACJ,CAAA;AAAA,EAED,aAAaJ,OAAA,CAAK;AAAA,IAChB,WAAA,EACE,6KAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CACH,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,QACC;AAAA,OACF;AAAA,MACF,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC;AAAA,KAC5D,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,EAAE,IAAA,EAAM,KAAI,KAC1BI,6BAAA,CAAgB,MAAM,GAAG;AAAA,GAC5B,CAAA;AAAA,EAED,WAAWL,OAAA,CAAK;AAAA,IACd,WAAA,EACE,sKAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,MAAMA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,MAC/E,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC,CAAA;AAAA,MACzD,OAAOA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,MAC7E,SAASA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B;AAAA,KACnE,CAAA;AAAA,IACD,SAAS,OAAO;AAAA,MACd,IAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,UAMIK,2BAAA,CAAc,IAAA,EAAM,KAAK,EAAE,KAAA,EAAO,SAAS;AAAA,GAClD;AACH","file":"ai-sdk.cjs","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return a compact syntax reference for one diagram type — rules, grammar (EBNF), and inline examples. Trimmed for LLM consumption (~2,000–4,000 tokens). Call after listDiagrams once you've chosen a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n }),\n execute: async ({ type }: { type: string }) => getSyntaxImpl(type),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL to the user and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Diagram type. Optional — Schematex auto-detects from the first line if omitted.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z.string().optional().describe(\"Diagram type (auto-detected if omitted).\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
1
+ {"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":["tool","z","listDiagrams","getSyntax","getExamples","validateDsl","renderDsl"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAcA,OAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAaC,KAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAYC,8BAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAWF,OAAA,CAAK;AAAA,IACd,WAAA,EACE,sNAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CACH,MAAA,EAAO,CACP,QAAA;AAAA,QACC;AAAA;AACF,KACH,CAAA;AAAA,IACD,SAAS,OAAO,EAAE,IAAA,EAAK,KAAwBE,4BAAc,IAAI;AAAA,GAClE,CAAA;AAAA,EAED,aAAaH,OAAA,CAAK;AAAA,IAChB,WAAA,EACE,8IAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA,MAC5C,KAAA,EAAOA,KAAA,CACJ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA,CACN,QAAA,EAAS,CACT,SAAS,qCAAqC,CAAA;AAAA,MACjD,gBAAgBA,KAAA,CACb,OAAA,GACA,QAAA,EAAS,CACT,SAAS,+BAA+B,CAAA;AAAA,MAC3C,aAAA,EAAeA,KAAA,CACZ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,CAAC,CAAA,CACL,QAAA,EAAS,CACT,SAAS,kEAAkE;AAAA,KAC/E,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,IAAA,KAMdG,6BAAA,CAAgB,KAAK,IAAA,EAAM;AAAA,MACzB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,eAAe,IAAA,CAAK;AAAA,KACrB;AAAA,GACJ,CAAA;AAAA,EAED,aAAaJ,OAAA,CAAK;AAAA,IAChB,WAAA,EACE,6KAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,KAAA,CACH,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,QACC;AAAA,OACF;AAAA,MACF,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC;AAAA,KAC5D,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,EAAE,IAAA,EAAM,KAAI,KAC1BI,6BAAA,CAAgB,MAAM,GAAG;AAAA,GAC5B,CAAA;AAAA,EAED,WAAWL,OAAA,CAAK;AAAA,IACd,WAAA,EACE,sKAAA;AAAA,IACF,WAAA,EAAaC,MAAE,MAAA,CAAO;AAAA,MACpB,MAAMA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,MAC/E,GAAA,EAAKA,KAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC,CAAA;AAAA,MACzD,OAAOA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,MAC7E,SAASA,KAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B;AAAA,KACnE,CAAA;AAAA,IACD,SAAS,OAAO;AAAA,MACd,IAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,UAMIK,2BAAA,CAAc,IAAA,EAAM,KAAK,EAAE,KAAA,EAAO,SAAS;AAAA,GAClD;AACH","file":"ai-sdk.cjs","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return a compact syntax reference for one diagram type — rules, grammar (EBNF), and inline examples. Trimmed for LLM consumption (~2,000–4,000 tokens). Call after listDiagrams once you've chosen a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n }),\n execute: async ({ type }: { type: string }) => getSyntaxImpl(type),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL to the user and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Diagram type. Optional — Schematex auto-detects from the first line if omitted.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z.string().optional().describe(\"Diagram type (auto-detected if omitted).\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
@@ -1,7 +1,7 @@
1
1
  import * as ai from 'ai';
2
2
  import { DiagramListItem, GetSyntaxResult, GetExamplesResult, ValidateDslResult, RenderDslResult } from './index.cjs';
3
- import '../api-BuFilDQB.cjs';
4
- import '../types-DnU2UlWz.cjs';
3
+ import '../api-BIj9t4Oc.cjs';
4
+ import '../types-Gkyab1sL.cjs';
5
5
 
6
6
  declare const schematexTools: {
7
7
  readonly listDiagrams: ai.Tool<{}, DiagramListItem[]>;
@@ -1,7 +1,7 @@
1
1
  import * as ai from 'ai';
2
2
  import { DiagramListItem, GetSyntaxResult, GetExamplesResult, ValidateDslResult, RenderDslResult } from './index.js';
3
- import '../api-BuFilDQB.js';
4
- import '../types-DnU2UlWz.js';
3
+ import '../api-BIj9t4Oc.js';
4
+ import '../types-Gkyab1sL.js';
5
5
 
6
6
  declare const schematexTools: {
7
7
  readonly listDiagrams: ai.Tool<{}, DiagramListItem[]>;
package/dist/ai/ai-sdk.js CHANGED
@@ -1,23 +1,24 @@
1
- import { renderDsl, validateDsl, getExamples, getSyntax, listDiagrams } from '../chunk-MNOO7STY.js';
2
- import '../chunk-6YUP3QMA.js';
3
- import '../chunk-U3KRKXF7.js';
4
- import '../chunk-GVCPFBAV.js';
5
- import '../chunk-66XQBGX7.js';
6
- import '../chunk-UDJ2KN2A.js';
7
- import '../chunk-UT4TIDAA.js';
8
- import '../chunk-XV2DTN6G.js';
9
- import '../chunk-X5QJO4ZD.js';
10
- import '../chunk-5U2W3HQA.js';
11
- import '../chunk-FIVUMDLF.js';
12
- import '../chunk-TQU44E46.js';
13
- import '../chunk-WTF6JXHN.js';
14
- import '../chunk-GLFBHQSQ.js';
15
- import '../chunk-PAG3BNIV.js';
16
- import '../chunk-AC3XH3LB.js';
1
+ import { renderDsl, validateDsl, getExamples, getSyntax, listDiagrams } from '../chunk-3ADSXODY.js';
2
+ import '../chunk-O4RHSAHR.js';
3
+ import '../chunk-I55HO32M.js';
4
+ import '../chunk-J7JWMQD5.js';
5
+ import '../chunk-EPKIJEH7.js';
6
+ import '../chunk-5FF2IT3C.js';
7
+ import '../chunk-JDBG5DU2.js';
8
+ import '../chunk-SZK376QB.js';
9
+ import '../chunk-YWDODCW2.js';
10
+ import '../chunk-L3CTXXVZ.js';
11
+ import '../chunk-KVP7AORH.js';
12
+ import '../chunk-WHNIK4LK.js';
13
+ import '../chunk-LPKVIRYT.js';
14
+ import '../chunk-6XGSEG3K.js';
15
+ import '../chunk-VDSYMSUY.js';
16
+ import '../chunk-ZX74KJPM.js';
17
17
  import '../chunk-FO7BLCEW.js';
18
- import '../chunk-6TIN33CA.js';
19
- import '../chunk-IQRRZPVZ.js';
18
+ import '../chunk-6URNSB6G.js';
19
+ import '../chunk-ZYRCPSBU.js';
20
20
  import '../chunk-2VNMKOUO.js';
21
+ import '../chunk-5IKOLUWK.js';
21
22
  import '../chunk-SYYBKDL7.js';
22
23
  import { tool } from 'ai';
23
24
  import { z } from 'zod';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAc,IAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAY,YAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAW,IAAA,CAAK;AAAA,IACd,WAAA,EACE,sNAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CACH,MAAA,EAAO,CACP,QAAA;AAAA,QACC;AAAA;AACF,KACH,CAAA;AAAA,IACD,SAAS,OAAO,EAAE,IAAA,EAAK,KAAwB,UAAc,IAAI;AAAA,GAClE,CAAA;AAAA,EAED,aAAa,IAAA,CAAK;AAAA,IAChB,WAAA,EACE,8IAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA,MAC5C,KAAA,EAAO,CAAA,CACJ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA,CACN,QAAA,EAAS,CACT,SAAS,qCAAqC,CAAA;AAAA,MACjD,gBAAgB,CAAA,CACb,OAAA,GACA,QAAA,EAAS,CACT,SAAS,+BAA+B,CAAA;AAAA,MAC3C,aAAA,EAAe,CAAA,CACZ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,CAAC,CAAA,CACL,QAAA,EAAS,CACT,SAAS,kEAAkE;AAAA,KAC/E,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,IAAA,KAMd,WAAA,CAAgB,KAAK,IAAA,EAAM;AAAA,MACzB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,eAAe,IAAA,CAAK;AAAA,KACrB;AAAA,GACJ,CAAA;AAAA,EAED,aAAa,IAAA,CAAK;AAAA,IAChB,WAAA,EACE,6KAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CACH,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,QACC;AAAA,OACF;AAAA,MACF,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC;AAAA,KAC5D,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,EAAE,IAAA,EAAM,KAAI,KAC1B,WAAA,CAAgB,MAAM,GAAG;AAAA,GAC5B,CAAA;AAAA,EAED,WAAW,IAAA,CAAK;AAAA,IACd,WAAA,EACE,sKAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAM,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,MAC/E,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC,CAAA;AAAA,MACzD,OAAO,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,MAC7E,SAAS,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B;AAAA,KACnE,CAAA;AAAA,IACD,SAAS,OAAO;AAAA,MACd,IAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,UAMI,SAAA,CAAc,IAAA,EAAM,KAAK,EAAE,KAAA,EAAO,SAAS;AAAA,GAClD;AACH","file":"ai-sdk.js","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return a compact syntax reference for one diagram type — rules, grammar (EBNF), and inline examples. Trimmed for LLM consumption (~2,000–4,000 tokens). Call after listDiagrams once you've chosen a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n }),\n execute: async ({ type }: { type: string }) => getSyntaxImpl(type),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL to the user and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Diagram type. Optional — Schematex auto-detects from the first line if omitted.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z.string().optional().describe(\"Diagram type (auto-detected if omitted).\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
1
+ {"version":3,"sources":["../../src/ai/ai-sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,cAAA,GAAiB;AAAA,EAC5B,cAAc,IAAA,CAAK;AAAA,IACjB,WAAA,EACE,8JAAA;AAAA,IACF,WAAA,EAAa,CAAA,CAAE,MAAA,CAAO,EAAE,CAAA;AAAA,IACxB,OAAA,EAAS,YAAY,YAAA;AAAiB,GACvC,CAAA;AAAA,EAED,WAAW,IAAA,CAAK;AAAA,IACd,WAAA,EACE,sNAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CACH,MAAA,EAAO,CACP,QAAA;AAAA,QACC;AAAA;AACF,KACH,CAAA;AAAA,IACD,SAAS,OAAO,EAAE,IAAA,EAAK,KAAwB,UAAc,IAAI;AAAA,GAClE,CAAA;AAAA,EAED,aAAa,IAAA,CAAK;AAAA,IAChB,WAAA,EACE,8IAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB,CAAA;AAAA,MAC5C,KAAA,EAAO,CAAA,CACJ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,EAAE,CAAA,CACN,QAAA,EAAS,CACT,SAAS,qCAAqC,CAAA;AAAA,MACjD,gBAAgB,CAAA,CACb,OAAA,GACA,QAAA,EAAS,CACT,SAAS,+BAA+B,CAAA;AAAA,MAC3C,aAAA,EAAe,CAAA,CACZ,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,CAAC,CAAA,CACL,QAAA,EAAS,CACT,SAAS,kEAAkE;AAAA,KAC/E,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,IAAA,KAMd,WAAA,CAAgB,KAAK,IAAA,EAAM;AAAA,MACzB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,gBAAgB,IAAA,CAAK,cAAA;AAAA,MACrB,eAAe,IAAA,CAAK;AAAA,KACrB;AAAA,GACJ,CAAA;AAAA,EAED,aAAa,IAAA,CAAK;AAAA,IAChB,WAAA,EACE,6KAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAM,CAAA,CACH,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,QACC;AAAA,OACF;AAAA,MACF,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kCAAkC;AAAA,KAC5D,CAAA;AAAA,IACD,OAAA,EAAS,OAAO,EAAE,IAAA,EAAM,KAAI,KAC1B,WAAA,CAAgB,MAAM,GAAG;AAAA,GAC5B,CAAA;AAAA,EAED,WAAW,IAAA,CAAK;AAAA,IACd,WAAA,EACE,sKAAA;AAAA,IACF,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAM,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,MAC/E,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC,CAAA;AAAA,MACzD,OAAO,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,MAC7E,SAAS,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,0BAA0B;AAAA,KACnE,CAAA;AAAA,IACD,SAAS,OAAO;AAAA,MACd,IAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,UAMI,SAAA,CAAc,IAAA,EAAM,KAAK,EAAE,KAAA,EAAO,SAAS;AAAA,GAClD;AACH","file":"ai-sdk.js","sourcesContent":["/**\n * Vercel AI SDK adapter — ready-to-use `tools` object for `generateText` /\n * `streamText`.\n *\n * @example\n * ```ts\n * import { streamText } from 'ai';\n * import { schematexTools } from 'schematex/ai/sdk';\n *\n * const result = streamText({\n * model: 'anthropic/claude-opus-4-7',\n * tools: schematexTools,\n * maxSteps: 5,\n * system: `You write Schematex DSL. Discover types with listDiagrams,\n * then fetch getSyntax + getExamples before writing. Call validateDsl\n * before returning DSL to the user.`,\n * prompt: userMessage,\n * });\n * ```\n *\n * Peer-deps `ai` and `zod` are optional — this module only loads if both\n * are installed.\n */\nimport { tool } from \"ai\";\nimport { z } from \"zod\";\n\nimport {\n listDiagrams as listDiagramsImpl,\n getSyntax as getSyntaxImpl,\n getExamples as getExamplesImpl,\n validateDsl as validateDslImpl,\n renderDsl as renderDslImpl,\n} from \"./tools\";\n\nexport const schematexTools = {\n listDiagrams: tool({\n description:\n \"List every Schematex diagram type with a tagline, 'use when' hint, domain cluster, and authoritative standard. Call this first to discover what's available.\",\n inputSchema: z.object({}),\n execute: async () => listDiagramsImpl(),\n }),\n\n getSyntax: tool({\n description:\n \"Return a compact syntax reference for one diagram type — rules, grammar (EBNF), and inline examples. Trimmed for LLM consumption (~2,000–4,000 tokens). Call after listDiagrams once you've chosen a type.\",\n inputSchema: z.object({\n type: z\n .string()\n .describe(\n \"Diagram type id from listDiagrams (e.g. 'genogram', 'sld', 'fishbone').\"\n ),\n }),\n execute: async ({ type }: { type: string }) => getSyntaxImpl(type),\n }),\n\n getExamples: tool({\n description:\n \"Return curated real-world DSL examples for a diagram type, each with scenario notes and tags. Use as few-shot context before generating DSL.\",\n inputSchema: z.object({\n type: z.string().describe(\"Diagram type id.\"),\n limit: z\n .number()\n .int()\n .min(1)\n .max(10)\n .optional()\n .describe(\"Max examples to return (default 5).\"),\n preferFeatured: z\n .boolean()\n .optional()\n .describe(\"Rank featured examples first.\"),\n maxComplexity: z\n .number()\n .int()\n .min(1)\n .max(5)\n .optional()\n .describe(\"Only return examples with complexity <= this value (1=simplest).\"),\n }),\n execute: async (args: {\n type: string;\n limit?: number;\n preferFeatured?: boolean;\n maxComplexity?: number;\n }) =>\n getExamplesImpl(args.type, {\n limit: args.limit,\n preferFeatured: args.preferFeatured,\n maxComplexity: args.maxComplexity,\n }),\n }),\n\n validateDsl: tool({\n description:\n \"Validate Schematex DSL. Returns { ok: true } or { ok: false, errors: [{line, column, message, source}] }. Call before returning DSL to the user and self-correct on errors.\",\n inputSchema: z.object({\n type: z\n .string()\n .optional()\n .describe(\n \"Diagram type. Optional — Schematex auto-detects from the first line if omitted.\"\n ),\n dsl: z.string().describe(\"The DSL source text to validate.\"),\n }),\n execute: async ({ type, dsl }: { type?: string; dsl: string }) =>\n validateDslImpl(type, dsl),\n }),\n\n renderDsl: tool({\n description:\n \"Render Schematex DSL to an SVG string. Returns { ok: true, svg } or { ok: false, errors }. Use when the caller needs the actual diagram output, not just validation.\",\n inputSchema: z.object({\n type: z.string().optional().describe(\"Diagram type (auto-detected if omitted).\"),\n dsl: z.string().describe(\"The DSL source text to render.\"),\n theme: z.string().optional().describe(\"Theme name, e.g. 'default' or 'dark'.\"),\n padding: z.number().optional().describe(\"Outer padding in pixels.\"),\n }),\n execute: async ({\n type,\n dsl,\n theme,\n padding,\n }: {\n type?: string;\n dsl: string;\n theme?: string;\n padding?: number;\n }) => renderDslImpl(type, dsl, { theme, padding }),\n }),\n} as const;\n\nexport type SchematexTools = typeof schematexTools;\n"]}
package/dist/ai/index.cjs CHANGED
@@ -1,60 +1,61 @@
1
1
  'use strict';
2
2
 
3
- var chunkUWRTV6IV_cjs = require('../chunk-UWRTV6IV.cjs');
4
- require('../chunk-APV4AWQ5.cjs');
5
- require('../chunk-IAEABLIV.cjs');
6
- require('../chunk-YUPG2M3I.cjs');
7
- require('../chunk-QXL7AY2H.cjs');
8
- require('../chunk-55UEHL57.cjs');
9
- require('../chunk-UDGU73RL.cjs');
10
- require('../chunk-N56YC75X.cjs');
11
- require('../chunk-ZZJDGGC3.cjs');
12
- require('../chunk-PG6TDGKI.cjs');
13
- require('../chunk-ZFNZ2FYI.cjs');
14
- require('../chunk-QOLBWCF5.cjs');
15
- require('../chunk-AVIKQZSX.cjs');
16
- require('../chunk-HOI6QKC6.cjs');
17
- require('../chunk-CWZKP3CJ.cjs');
18
- require('../chunk-7EWFVNYD.cjs');
3
+ var chunk7LNIBHO6_cjs = require('../chunk-7LNIBHO6.cjs');
4
+ require('../chunk-O2HN4WRG.cjs');
5
+ require('../chunk-QUKVGHN4.cjs');
6
+ require('../chunk-2Z543TC3.cjs');
7
+ require('../chunk-SUIDD2C5.cjs');
8
+ require('../chunk-GZY4CJ23.cjs');
9
+ require('../chunk-OIZ4MYSF.cjs');
10
+ require('../chunk-RYVV5UVI.cjs');
11
+ require('../chunk-6WORZSL3.cjs');
12
+ require('../chunk-BW4KGTV7.cjs');
13
+ require('../chunk-E2EJRVWS.cjs');
14
+ require('../chunk-K6RAUXRQ.cjs');
15
+ require('../chunk-3MJKJX27.cjs');
16
+ require('../chunk-O5POCPXZ.cjs');
17
+ require('../chunk-S2KJRHDZ.cjs');
18
+ require('../chunk-UUBNQV2T.cjs');
19
19
  require('../chunk-5UCXMYE7.cjs');
20
- require('../chunk-ZCW7YH3C.cjs');
21
- require('../chunk-Q5OFA4I2.cjs');
20
+ require('../chunk-ST5YRTTV.cjs');
21
+ require('../chunk-YLEVMOK2.cjs');
22
22
  require('../chunk-D7EHZFK4.cjs');
23
+ require('../chunk-NAGUZFXX.cjs');
23
24
  require('../chunk-3WNW5Y7P.cjs');
24
25
 
25
26
 
26
27
 
27
28
  Object.defineProperty(exports, "DIAGRAM_REGISTRY", {
28
29
  enumerable: true,
29
- get: function () { return chunkUWRTV6IV_cjs.DIAGRAM_REGISTRY; }
30
+ get: function () { return chunk7LNIBHO6_cjs.DIAGRAM_REGISTRY; }
30
31
  });
31
32
  Object.defineProperty(exports, "getAllDiagramTypes", {
32
33
  enumerable: true,
33
- get: function () { return chunkUWRTV6IV_cjs.getAllDiagramTypes; }
34
+ get: function () { return chunk7LNIBHO6_cjs.getAllDiagramTypes; }
34
35
  });
35
36
  Object.defineProperty(exports, "getDiagramMeta", {
36
37
  enumerable: true,
37
- get: function () { return chunkUWRTV6IV_cjs.getDiagramMeta; }
38
+ get: function () { return chunk7LNIBHO6_cjs.getDiagramMeta; }
38
39
  });
39
40
  Object.defineProperty(exports, "getExamples", {
40
41
  enumerable: true,
41
- get: function () { return chunkUWRTV6IV_cjs.getExamples; }
42
+ get: function () { return chunk7LNIBHO6_cjs.getExamples; }
42
43
  });
43
44
  Object.defineProperty(exports, "getSyntax", {
44
45
  enumerable: true,
45
- get: function () { return chunkUWRTV6IV_cjs.getSyntax; }
46
+ get: function () { return chunk7LNIBHO6_cjs.getSyntax; }
46
47
  });
47
48
  Object.defineProperty(exports, "listDiagrams", {
48
49
  enumerable: true,
49
- get: function () { return chunkUWRTV6IV_cjs.listDiagrams; }
50
+ get: function () { return chunk7LNIBHO6_cjs.listDiagrams; }
50
51
  });
51
52
  Object.defineProperty(exports, "renderDsl", {
52
53
  enumerable: true,
53
- get: function () { return chunkUWRTV6IV_cjs.renderDsl; }
54
+ get: function () { return chunk7LNIBHO6_cjs.renderDsl; }
54
55
  });
55
56
  Object.defineProperty(exports, "validateDsl", {
56
57
  enumerable: true,
57
- get: function () { return chunkUWRTV6IV_cjs.validateDsl; }
58
+ get: function () { return chunk7LNIBHO6_cjs.validateDsl; }
58
59
  });
59
60
  //# sourceMappingURL=index.cjs.map
60
61
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
- import { S as SchematexConfig } from '../api-BuFilDQB.cjs';
2
- import { q as DiagramType } from '../types-DnU2UlWz.cjs';
1
+ import { S as SchematexConfig } from '../api-BIj9t4Oc.cjs';
2
+ import { q as DiagramType } from '../types-Gkyab1sL.cjs';
3
3
 
4
4
  /**
5
5
  * Diagram registry — metadata for every diagram type Schematex supports.
@@ -1,5 +1,5 @@
1
- import { S as SchematexConfig } from '../api-BuFilDQB.js';
2
- import { q as DiagramType } from '../types-DnU2UlWz.js';
1
+ import { S as SchematexConfig } from '../api-BIj9t4Oc.js';
2
+ import { q as DiagramType } from '../types-Gkyab1sL.js';
3
3
 
4
4
  /**
5
5
  * Diagram registry — metadata for every diagram type Schematex supports.
package/dist/ai/index.js CHANGED
@@ -1,23 +1,24 @@
1
- export { DIAGRAM_REGISTRY, getAllDiagramTypes, getDiagramMeta, getExamples, getSyntax, listDiagrams, renderDsl, validateDsl } from '../chunk-MNOO7STY.js';
2
- import '../chunk-6YUP3QMA.js';
3
- import '../chunk-U3KRKXF7.js';
4
- import '../chunk-GVCPFBAV.js';
5
- import '../chunk-66XQBGX7.js';
6
- import '../chunk-UDJ2KN2A.js';
7
- import '../chunk-UT4TIDAA.js';
8
- import '../chunk-XV2DTN6G.js';
9
- import '../chunk-X5QJO4ZD.js';
10
- import '../chunk-5U2W3HQA.js';
11
- import '../chunk-FIVUMDLF.js';
12
- import '../chunk-TQU44E46.js';
13
- import '../chunk-WTF6JXHN.js';
14
- import '../chunk-GLFBHQSQ.js';
15
- import '../chunk-PAG3BNIV.js';
16
- import '../chunk-AC3XH3LB.js';
1
+ export { DIAGRAM_REGISTRY, getAllDiagramTypes, getDiagramMeta, getExamples, getSyntax, listDiagrams, renderDsl, validateDsl } from '../chunk-3ADSXODY.js';
2
+ import '../chunk-O4RHSAHR.js';
3
+ import '../chunk-I55HO32M.js';
4
+ import '../chunk-J7JWMQD5.js';
5
+ import '../chunk-EPKIJEH7.js';
6
+ import '../chunk-5FF2IT3C.js';
7
+ import '../chunk-JDBG5DU2.js';
8
+ import '../chunk-SZK376QB.js';
9
+ import '../chunk-YWDODCW2.js';
10
+ import '../chunk-L3CTXXVZ.js';
11
+ import '../chunk-KVP7AORH.js';
12
+ import '../chunk-WHNIK4LK.js';
13
+ import '../chunk-LPKVIRYT.js';
14
+ import '../chunk-6XGSEG3K.js';
15
+ import '../chunk-VDSYMSUY.js';
16
+ import '../chunk-ZX74KJPM.js';
17
17
  import '../chunk-FO7BLCEW.js';
18
- import '../chunk-6TIN33CA.js';
19
- import '../chunk-IQRRZPVZ.js';
18
+ import '../chunk-6URNSB6G.js';
19
+ import '../chunk-ZYRCPSBU.js';
20
20
  import '../chunk-2VNMKOUO.js';
21
+ import '../chunk-5IKOLUWK.js';
21
22
  import '../chunk-SYYBKDL7.js';
22
23
  //# sourceMappingURL=index.js.map
23
24
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  interface SchematexConfig {
2
- type?: "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid";
2
+ type?: "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid" | "erd" | "breadboard" | "bpmn" | "fbd" | "sfc";
3
3
  width?: number;
4
4
  height?: number;
5
5
  padding?: number;
@@ -1,5 +1,5 @@
1
1
  interface SchematexConfig {
2
- type?: "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid";
2
+ type?: "genogram" | "ecomap" | "pedigree" | "phylo" | "sociogram" | "timing" | "logic" | "circuit" | "blockdiagram" | "ladder" | "sld" | "entity" | "fishbone" | "venn" | "flowchart" | "mindmap" | "matrix" | "orgchart" | "decisiontree" | "timeline" | "state" | "pid" | "erd" | "breadboard" | "bpmn" | "fbd" | "sfc";
3
3
  width?: number;
4
4
  height?: number;
5
5
  padding?: number;
package/dist/browser.cjs CHANGED
@@ -1,29 +1,30 @@
1
1
  'use strict';
2
2
 
3
- var chunkAPV4AWQ5_cjs = require('./chunk-APV4AWQ5.cjs');
4
- require('./chunk-IAEABLIV.cjs');
5
- require('./chunk-YUPG2M3I.cjs');
6
- require('./chunk-QXL7AY2H.cjs');
7
- require('./chunk-55UEHL57.cjs');
8
- require('./chunk-UDGU73RL.cjs');
9
- require('./chunk-N56YC75X.cjs');
10
- require('./chunk-ZZJDGGC3.cjs');
11
- require('./chunk-PG6TDGKI.cjs');
12
- require('./chunk-ZFNZ2FYI.cjs');
13
- require('./chunk-QOLBWCF5.cjs');
14
- require('./chunk-AVIKQZSX.cjs');
15
- require('./chunk-HOI6QKC6.cjs');
16
- require('./chunk-CWZKP3CJ.cjs');
17
- require('./chunk-7EWFVNYD.cjs');
3
+ var chunkO2HN4WRG_cjs = require('./chunk-O2HN4WRG.cjs');
4
+ require('./chunk-QUKVGHN4.cjs');
5
+ require('./chunk-2Z543TC3.cjs');
6
+ require('./chunk-SUIDD2C5.cjs');
7
+ require('./chunk-GZY4CJ23.cjs');
8
+ require('./chunk-OIZ4MYSF.cjs');
9
+ require('./chunk-RYVV5UVI.cjs');
10
+ require('./chunk-6WORZSL3.cjs');
11
+ require('./chunk-BW4KGTV7.cjs');
12
+ require('./chunk-E2EJRVWS.cjs');
13
+ require('./chunk-K6RAUXRQ.cjs');
14
+ require('./chunk-3MJKJX27.cjs');
15
+ require('./chunk-O5POCPXZ.cjs');
16
+ require('./chunk-S2KJRHDZ.cjs');
17
+ require('./chunk-UUBNQV2T.cjs');
18
18
  require('./chunk-5UCXMYE7.cjs');
19
- require('./chunk-ZCW7YH3C.cjs');
20
- require('./chunk-Q5OFA4I2.cjs');
19
+ require('./chunk-ST5YRTTV.cjs');
20
+ require('./chunk-YLEVMOK2.cjs');
21
21
  require('./chunk-D7EHZFK4.cjs');
22
+ require('./chunk-NAGUZFXX.cjs');
22
23
  require('./chunk-3WNW5Y7P.cjs');
23
24
 
24
25
  // src/browser.ts
25
26
  function renderToElement(text, config) {
26
- const svgString = chunkAPV4AWQ5_cjs.render(text, config);
27
+ const svgString = chunkO2HN4WRG_cjs.render(text, config);
27
28
  const parser = new DOMParser();
28
29
  const doc = parser.parseFromString(svgString, "image/svg+xml");
29
30
  const el = doc.documentElement;
@@ -34,12 +35,12 @@ function renderToElement(text, config) {
34
35
  return el;
35
36
  }
36
37
  function renderToContainer(text, container, config) {
37
- container.innerHTML = chunkAPV4AWQ5_cjs.render(text, config);
38
+ container.innerHTML = chunkO2HN4WRG_cjs.render(text, config);
38
39
  }
39
40
 
40
41
  Object.defineProperty(exports, "render", {
41
42
  enumerable: true,
42
- get: function () { return chunkAPV4AWQ5_cjs.render; }
43
+ get: function () { return chunkO2HN4WRG_cjs.render; }
43
44
  });
44
45
  exports.renderToContainer = renderToContainer;
45
46
  exports.renderToElement = renderToElement;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser.ts"],"names":["render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,eAAA,CACd,MACA,MAAA,EACe;AACf,EAAA,MAAM,SAAA,GAAYA,wBAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAC7B,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,eAAA,CAAgB,SAAA,EAAW,eAAe,CAAA;AAC7D,EAAA,MAAM,KAAK,GAAA,CAAI,eAAA;AACf,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,aAAA,CAAc,aAAa,CAAA;AAClD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,UAAA,CAAW,WAAW,CAAA,CAAE,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,EAAA;AACT;AAKO,SAAS,iBAAA,CACd,IAAA,EACA,SAAA,EACA,MAAA,EACM;AACN,EAAA,SAAA,CAAU,SAAA,GAAYA,wBAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAC3C","file":"browser.cjs","sourcesContent":["/**\n * Browser-specific utilities for Schematex.\n *\n * These APIs require a DOM environment. Do not import in SSR/Node contexts.\n *\n * @example\n * ```ts\n * import { renderToElement, renderToContainer } from 'schematex/browser';\n *\n * const svg = renderToElement('genogram\\n alice [female]');\n * document.getElementById('diagram')!.appendChild(svg);\n * ```\n */\n\nimport { render, type SchematexConfig } from \"./core/api\";\n\n/**\n * Render DSL text to a live `SVGSVGElement` ready to insert into the DOM.\n */\nexport function renderToElement(\n text: string,\n config?: SchematexConfig\n): SVGSVGElement {\n const svgString = render(text, config);\n const parser = new DOMParser();\n const doc = parser.parseFromString(svgString, \"image/svg+xml\");\n const el = doc.documentElement;\n const parseError = doc.querySelector(\"parsererror\");\n if (parseError) {\n throw new Error(`SVG parse error: ${parseError.textContent}`);\n }\n return el as unknown as SVGSVGElement;\n}\n\n/**\n * Render DSL text and inject SVG into a container element (replaces innerHTML).\n */\nexport function renderToContainer(\n text: string,\n container: Element,\n config?: SchematexConfig\n): void {\n container.innerHTML = render(text, config);\n}\n\nexport { render, type SchematexConfig } from \"./core/api\";\n"]}
1
+ {"version":3,"sources":["../src/browser.ts"],"names":["render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,eAAA,CACd,MACA,MAAA,EACe;AACf,EAAA,MAAM,SAAA,GAAYA,wBAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAC7B,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,eAAA,CAAgB,SAAA,EAAW,eAAe,CAAA;AAC7D,EAAA,MAAM,KAAK,GAAA,CAAI,eAAA;AACf,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,aAAA,CAAc,aAAa,CAAA;AAClD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,UAAA,CAAW,WAAW,CAAA,CAAE,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,EAAA;AACT;AAKO,SAAS,iBAAA,CACd,IAAA,EACA,SAAA,EACA,MAAA,EACM;AACN,EAAA,SAAA,CAAU,SAAA,GAAYA,wBAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAC3C","file":"browser.cjs","sourcesContent":["/**\n * Browser-specific utilities for Schematex.\n *\n * These APIs require a DOM environment. Do not import in SSR/Node contexts.\n *\n * @example\n * ```ts\n * import { renderToElement, renderToContainer } from 'schematex/browser';\n *\n * const svg = renderToElement('genogram\\n alice [female]');\n * document.getElementById('diagram')!.appendChild(svg);\n * ```\n */\n\nimport { render, type SchematexConfig } from \"./core/api\";\n\n/**\n * Render DSL text to a live `SVGSVGElement` ready to insert into the DOM.\n */\nexport function renderToElement(\n text: string,\n config?: SchematexConfig\n): SVGSVGElement {\n const svgString = render(text, config);\n const parser = new DOMParser();\n const doc = parser.parseFromString(svgString, \"image/svg+xml\");\n const el = doc.documentElement;\n const parseError = doc.querySelector(\"parsererror\");\n if (parseError) {\n throw new Error(`SVG parse error: ${parseError.textContent}`);\n }\n return el as unknown as SVGSVGElement;\n}\n\n/**\n * Render DSL text and inject SVG into a container element (replaces innerHTML).\n */\nexport function renderToContainer(\n text: string,\n container: Element,\n config?: SchematexConfig\n): void {\n container.innerHTML = render(text, config);\n}\n\nexport { render, type SchematexConfig } from \"./core/api\";\n"]}
@@ -1,5 +1,5 @@
1
- import { S as SchematexConfig } from './api-BuFilDQB.cjs';
2
- export { r as render } from './api-BuFilDQB.cjs';
1
+ import { S as SchematexConfig } from './api-BIj9t4Oc.cjs';
2
+ export { r as render } from './api-BIj9t4Oc.cjs';
3
3
 
4
4
  /**
5
5
  * Browser-specific utilities for Schematex.
package/dist/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SchematexConfig } from './api-BuFilDQB.js';
2
- export { r as render } from './api-BuFilDQB.js';
1
+ import { S as SchematexConfig } from './api-BIj9t4Oc.js';
2
+ export { r as render } from './api-BIj9t4Oc.js';
3
3
 
4
4
  /**
5
5
  * Browser-specific utilities for Schematex.
package/dist/browser.js CHANGED
@@ -1,23 +1,24 @@
1
- import { render } from './chunk-6YUP3QMA.js';
2
- export { render } from './chunk-6YUP3QMA.js';
3
- import './chunk-U3KRKXF7.js';
4
- import './chunk-GVCPFBAV.js';
5
- import './chunk-66XQBGX7.js';
6
- import './chunk-UDJ2KN2A.js';
7
- import './chunk-UT4TIDAA.js';
8
- import './chunk-XV2DTN6G.js';
9
- import './chunk-X5QJO4ZD.js';
10
- import './chunk-5U2W3HQA.js';
11
- import './chunk-FIVUMDLF.js';
12
- import './chunk-TQU44E46.js';
13
- import './chunk-WTF6JXHN.js';
14
- import './chunk-GLFBHQSQ.js';
15
- import './chunk-PAG3BNIV.js';
16
- import './chunk-AC3XH3LB.js';
1
+ import { render } from './chunk-O4RHSAHR.js';
2
+ export { render } from './chunk-O4RHSAHR.js';
3
+ import './chunk-I55HO32M.js';
4
+ import './chunk-J7JWMQD5.js';
5
+ import './chunk-EPKIJEH7.js';
6
+ import './chunk-5FF2IT3C.js';
7
+ import './chunk-JDBG5DU2.js';
8
+ import './chunk-SZK376QB.js';
9
+ import './chunk-YWDODCW2.js';
10
+ import './chunk-L3CTXXVZ.js';
11
+ import './chunk-KVP7AORH.js';
12
+ import './chunk-WHNIK4LK.js';
13
+ import './chunk-LPKVIRYT.js';
14
+ import './chunk-6XGSEG3K.js';
15
+ import './chunk-VDSYMSUY.js';
16
+ import './chunk-ZX74KJPM.js';
17
17
  import './chunk-FO7BLCEW.js';
18
- import './chunk-6TIN33CA.js';
19
- import './chunk-IQRRZPVZ.js';
18
+ import './chunk-6URNSB6G.js';
19
+ import './chunk-ZYRCPSBU.js';
20
20
  import './chunk-2VNMKOUO.js';
21
+ import './chunk-5IKOLUWK.js';
21
22
  import './chunk-SYYBKDL7.js';
22
23
 
23
24
  // src/browser.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,eAAA,CACd,MACA,MAAA,EACe;AACf,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAC7B,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,eAAA,CAAgB,SAAA,EAAW,eAAe,CAAA;AAC7D,EAAA,MAAM,KAAK,GAAA,CAAI,eAAA;AACf,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,aAAA,CAAc,aAAa,CAAA;AAClD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,UAAA,CAAW,WAAW,CAAA,CAAE,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,EAAA;AACT;AAKO,SAAS,iBAAA,CACd,IAAA,EACA,SAAA,EACA,MAAA,EACM;AACN,EAAA,SAAA,CAAU,SAAA,GAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAC3C","file":"browser.js","sourcesContent":["/**\n * Browser-specific utilities for Schematex.\n *\n * These APIs require a DOM environment. Do not import in SSR/Node contexts.\n *\n * @example\n * ```ts\n * import { renderToElement, renderToContainer } from 'schematex/browser';\n *\n * const svg = renderToElement('genogram\\n alice [female]');\n * document.getElementById('diagram')!.appendChild(svg);\n * ```\n */\n\nimport { render, type SchematexConfig } from \"./core/api\";\n\n/**\n * Render DSL text to a live `SVGSVGElement` ready to insert into the DOM.\n */\nexport function renderToElement(\n text: string,\n config?: SchematexConfig\n): SVGSVGElement {\n const svgString = render(text, config);\n const parser = new DOMParser();\n const doc = parser.parseFromString(svgString, \"image/svg+xml\");\n const el = doc.documentElement;\n const parseError = doc.querySelector(\"parsererror\");\n if (parseError) {\n throw new Error(`SVG parse error: ${parseError.textContent}`);\n }\n return el as unknown as SVGSVGElement;\n}\n\n/**\n * Render DSL text and inject SVG into a container element (replaces innerHTML).\n */\nexport function renderToContainer(\n text: string,\n container: Element,\n config?: SchematexConfig\n): void {\n container.innerHTML = render(text, config);\n}\n\nexport { render, type SchematexConfig } from \"./core/api\";\n"]}
1
+ {"version":3,"sources":["../src/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,eAAA,CACd,MACA,MAAA,EACe;AACf,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,EAAU;AAC7B,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,eAAA,CAAgB,SAAA,EAAW,eAAe,CAAA;AAC7D,EAAA,MAAM,KAAK,GAAA,CAAI,eAAA;AACf,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,aAAA,CAAc,aAAa,CAAA;AAClD,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iBAAA,EAAoB,UAAA,CAAW,WAAW,CAAA,CAAE,CAAA;AAAA,EAC9D;AACA,EAAA,OAAO,EAAA;AACT;AAKO,SAAS,iBAAA,CACd,IAAA,EACA,SAAA,EACA,MAAA,EACM;AACN,EAAA,SAAA,CAAU,SAAA,GAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA;AAC3C","file":"browser.js","sourcesContent":["/**\n * Browser-specific utilities for Schematex.\n *\n * These APIs require a DOM environment. Do not import in SSR/Node contexts.\n *\n * @example\n * ```ts\n * import { renderToElement, renderToContainer } from 'schematex/browser';\n *\n * const svg = renderToElement('genogram\\n alice [female]');\n * document.getElementById('diagram')!.appendChild(svg);\n * ```\n */\n\nimport { render, type SchematexConfig } from \"./core/api\";\n\n/**\n * Render DSL text to a live `SVGSVGElement` ready to insert into the DOM.\n */\nexport function renderToElement(\n text: string,\n config?: SchematexConfig\n): SVGSVGElement {\n const svgString = render(text, config);\n const parser = new DOMParser();\n const doc = parser.parseFromString(svgString, \"image/svg+xml\");\n const el = doc.documentElement;\n const parseError = doc.querySelector(\"parsererror\");\n if (parseError) {\n throw new Error(`SVG parse error: ${parseError.textContent}`);\n }\n return el as unknown as SVGSVGElement;\n}\n\n/**\n * Render DSL text and inject SVG into a container element (replaces innerHTML).\n */\nexport function renderToContainer(\n text: string,\n container: Element,\n config?: SchematexConfig\n): void {\n container.innerHTML = render(text, config);\n}\n\nexport { render, type SchematexConfig } from \"./core/api\";\n"]}