schematex 0.9.9 → 0.9.11

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 (87) hide show
  1. package/dist/ai/ai-sdk.cjs +9 -9
  2. package/dist/ai/ai-sdk.d.cts +3 -3
  3. package/dist/ai/ai-sdk.d.ts +3 -3
  4. package/dist/ai/ai-sdk.js +4 -4
  5. package/dist/ai/index.cjs +18 -18
  6. package/dist/ai/index.d.cts +4 -4
  7. package/dist/ai/index.d.ts +4 -4
  8. package/dist/ai/index.js +5 -5
  9. package/dist/{api-D_d-JklT.d.ts → api-DAiP83-P.d.ts} +1 -1
  10. package/dist/{api-DnTyW-6F.d.cts → api-DecITB-t.d.cts} +1 -1
  11. package/dist/browser.cjs +10 -10
  12. package/dist/browser.d.cts +3 -3
  13. package/dist/browser.d.ts +3 -3
  14. package/dist/browser.js +4 -4
  15. package/dist/{chunk-IHX6J4HF.js → chunk-32LOZTNP.js} +178 -4
  16. package/dist/chunk-32LOZTNP.js.map +1 -0
  17. package/dist/{chunk-RCR4UGKV.js → chunk-4QBC4475.js} +35 -20
  18. package/dist/chunk-4QBC4475.js.map +1 -0
  19. package/dist/{chunk-OY2CXLVY.cjs → chunk-5YTFNOKY.cjs} +170 -15
  20. package/dist/{chunk-OY2CXLVY.cjs.map → chunk-5YTFNOKY.cjs.map} +1 -1
  21. package/dist/{chunk-EUN6FEGE.cjs → chunk-6ZTPWE22.cjs} +37 -22
  22. package/dist/chunk-6ZTPWE22.cjs.map +1 -0
  23. package/dist/{chunk-TXWVJAMR.cjs → chunk-HEGDKO2E.cjs} +178 -4
  24. package/dist/chunk-HEGDKO2E.cjs.map +1 -0
  25. package/dist/{chunk-T5QOVX2I.js → chunk-RU3N57OB.js} +168 -13
  26. package/dist/{chunk-T5QOVX2I.js.map → chunk-RU3N57OB.js.map} +1 -1
  27. package/dist/{chunk-MVTYPWHO.js → chunk-WTGABYFK.js} +80 -17
  28. package/dist/chunk-WTGABYFK.js.map +1 -0
  29. package/dist/{chunk-MXV3XJFH.cjs → chunk-YN7EBTWB.cjs} +80 -17
  30. package/dist/chunk-YN7EBTWB.cjs.map +1 -0
  31. package/dist/{diagnostics-D2qkBfFx.d.cts → diagnostics-Bps9pzlF.d.cts} +8 -2
  32. package/dist/{diagnostics-D2qkBfFx.d.ts → diagnostics-Bps9pzlF.d.ts} +8 -2
  33. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  34. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  35. package/dist/diagrams/circuit/index.cjs +8 -8
  36. package/dist/diagrams/circuit/index.d.cts +1 -1
  37. package/dist/diagrams/circuit/index.d.ts +1 -1
  38. package/dist/diagrams/circuit/index.js +1 -1
  39. package/dist/diagrams/ecomap/index.d.cts +1 -1
  40. package/dist/diagrams/ecomap/index.d.ts +1 -1
  41. package/dist/diagrams/entity/index.d.cts +1 -1
  42. package/dist/diagrams/entity/index.d.ts +1 -1
  43. package/dist/diagrams/fishbone/index.d.cts +1 -1
  44. package/dist/diagrams/fishbone/index.d.ts +1 -1
  45. package/dist/diagrams/flowchart/index.d.cts +2 -2
  46. package/dist/diagrams/flowchart/index.d.ts +2 -2
  47. package/dist/diagrams/genogram/index.d.cts +1 -1
  48. package/dist/diagrams/genogram/index.d.ts +1 -1
  49. package/dist/diagrams/ladder/index.d.cts +1 -1
  50. package/dist/diagrams/ladder/index.d.ts +1 -1
  51. package/dist/diagrams/logic/index.d.cts +1 -1
  52. package/dist/diagrams/logic/index.d.ts +1 -1
  53. package/dist/diagrams/orgchart/index.d.cts +1 -1
  54. package/dist/diagrams/orgchart/index.d.ts +1 -1
  55. package/dist/diagrams/pedigree/index.d.cts +1 -1
  56. package/dist/diagrams/pedigree/index.d.ts +1 -1
  57. package/dist/diagrams/phylo/index.d.cts +1 -1
  58. package/dist/diagrams/phylo/index.d.ts +1 -1
  59. package/dist/diagrams/sld/index.cjs +7 -7
  60. package/dist/diagrams/sld/index.d.cts +4 -1
  61. package/dist/diagrams/sld/index.d.ts +4 -1
  62. package/dist/diagrams/sld/index.js +1 -1
  63. package/dist/diagrams/sociogram/index.d.cts +1 -1
  64. package/dist/diagrams/sociogram/index.d.ts +1 -1
  65. package/dist/diagrams/timing/index.d.cts +1 -1
  66. package/dist/diagrams/timing/index.d.ts +1 -1
  67. package/dist/diagrams/venn/index.d.cts +1 -1
  68. package/dist/diagrams/venn/index.d.ts +1 -1
  69. package/dist/{index-D9u0YRxL.d.ts → index-F6MCisQe.d.ts} +1 -1
  70. package/dist/{index-JZlLiE6K.d.cts → index-fvBAmlv7.d.cts} +1 -1
  71. package/dist/index.cjs +43 -43
  72. package/dist/index.d.cts +4 -4
  73. package/dist/index.d.ts +4 -4
  74. package/dist/index.js +6 -6
  75. package/dist/react.cjs +4 -4
  76. package/dist/react.d.cts +2 -2
  77. package/dist/react.d.ts +2 -2
  78. package/dist/react.js +3 -3
  79. package/dist/{tools-DM0aLCbc.d.ts → tools-CdzIw2Az.d.ts} +2 -2
  80. package/dist/{tools-DAKYNcPv.d.cts → tools-vyVK2DHa.d.cts} +2 -2
  81. package/package.json +1 -1
  82. package/dist/chunk-EUN6FEGE.cjs.map +0 -1
  83. package/dist/chunk-IHX6J4HF.js.map +0 -1
  84. package/dist/chunk-MVTYPWHO.js.map +0 -1
  85. package/dist/chunk-MXV3XJFH.cjs.map +0 -1
  86. package/dist/chunk-RCR4UGKV.js.map +0 -1
  87. package/dist/chunk-TXWVJAMR.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { parseResult, renderResult } from './chunk-T5QOVX2I.js';
1
+ import { parseResult, renderResult } from './chunk-RU3N57OB.js';
2
2
 
3
3
  // src/ai/registry.ts
4
4
  var DIAGRAM_REGISTRY = [
@@ -2037,7 +2037,7 @@ If the LED doesn't light up, three things to check, in order: LED polarity (the
2037
2037
  "seating-chart"
2038
2038
  ],
2039
2039
  "complexity": 3,
2040
- "featured": false,
2040
+ "featured": true,
2041
2041
  "dsl": 'floorplan "Wedding Seating Chart" unit m\nroom hall "Grand Ballroom" at 0,0 size 17x13 nolabel\ndoor hall south at 50% width 1.8\nfurniture head-table "Head Table" in hall at 5.5,0.6 size 6x0.9 seats "Bride" "Groom" "Mom" "Dad" "MOH" "Best Man"\nfurniture round-table-8 "Table 1" in hall at 1,3.6 seats "Alice" "Bob" "Carol" "Dave" "Eve" "Frank" "Grace" "Heidi"\nfurniture round-table-8 "Table 2" in hall at 7,3.6 seats "Ivan" "Judy" "Mallory" "Niaj" "Olivia" "Peggy"\nfurniture round-table-8 "Table 3" in hall at 13,3.6 seats "\u5F20\u4F1F" "\u674E\u5A1C" "\u738B\u82B3" "\u5218\u6D0B"\nfurniture round-table-8 "Table 4" in hall at 1,8.4 seats "Quinn" "Rupert" "Sybil" "Trent" "Uma" "Vera"\nfurniture round-table-8 "Table 5" in hall at 7,8.4 seats "Walt" "Xena" "Yuki" "Zane"\nfurniture dance-floor "Dance Floor" in hall at 12,8 size 4.5x4.5',
2042
2042
  "notes": '## What this shows\n\nEach table is an individual `furniture` statement with a `seats "\u2026"` clause, so the engine writes guest names onto the chairs in seating order \u2014 round tables clockwise from the top, the head table along its single facing edge. That is the difference between a *venue plan* (where the tables go) and a *seating chart* (who sits where), which is the deliverable guests actually read off the easel.\n\nNames map to chairs one-for-one: **Table 3** lists four guests on an eight-chair round, so four chairs are named and four stay empty \u2014 no error. CJK names (`\u5F20\u4F1F`, `\u674E\u5A1C`) are quoted like any label. Because names render horizontally, the tables are left unrotated.'
2043
2043
  },
@@ -2662,7 +2662,7 @@ If the LED doesn't light up, three things to check, in order: LED polarity (the
2662
2662
  "biology"
2663
2663
  ],
2664
2664
  "complexity": 1,
2665
- "featured": false,
2665
+ "featured": true,
2666
2666
  "dsl": 'matrix punnett "Eye color (Bb \xD7 Bb)"\ncross: Bb x Bb\ntrait B: "Brown eyes" / "Blue eyes"',
2667
2667
  "notes": "## What this shows\n\nThe **monohybrid cross** is where every genetics course starts: one gene, two heterozygous parents. Here both parents are `Bb` for eye colour \u2014 `B` (brown) is dominant, `b` (blue) recessive. You write only the cross; the engine does the Mendelian bookkeeping.\n\nEach `Bb` parent makes two gametes, `B` and `b`, so the grid is 2\xD72. The engine fills it \u2014 `BB`, `Bb`, `Bb`, `bb` \u2014 and computes the two ratios every student memorises: a **3:1 phenotype ratio** (3 brown-eyed : 1 blue-eyed) and a **1:2:1 genotype ratio** (1 `BB` : 2 `Bb` : 1 `bb`). The single recessive `bb` box is tinted apart from the three dominant boxes, and the `trait` line names the phenotypes so the legend reads in plain English. Allele case sets dominance \u2014 uppercase is dominant \u2014 so the notation is exactly what a textbook uses."
2668
2668
  },
@@ -2699,7 +2699,7 @@ If the LED doesn't light up, three things to check, in order: LED polarity (the
2699
2699
  "voice-of-customer"
2700
2700
  ],
2701
2701
  "complexity": 3,
2702
- "featured": false,
2702
+ "featured": true,
2703
2703
  "dsl": 'matrix qfd "Coffee maker"\nwhat: "Quiet operation" weight: 5\nwhat: "Brews fast" weight: 3\nwhat: "Energy efficient" weight: 4\nhow: "Fan RPM" dir: down\nhow: "Heater watts" dir: up\nhow: "Insulation" dir: up\nrel (0,0): 9\nrel (0,2): 3\nrel (1,1): 9\nrel (2,1): 3\nrel (2,2): 9\nroof (0,1): --\nroof (1,2): +',
2704
2704
  "notes": "## What this shows\n\nThe **House of Quality** \u2014 the core matrix of Akao's Quality Function Deployment \u2014 translates what customers want into the engineering characteristics that deliver it. Customer requirements (**WHATs**) are the rows, each with an importance weight; engineering characteristics (**HOWs**) are the columns; the body cells record how strongly each HOW serves each WHAT on the 9 / 3 / 1 strong-medium-weak scale.\n\nThe differentiator is the computed row at the foot of the house: each column's **technical importance** is the sum of `weight \xD7 strength` down that column, here **45 / 39 / 51** \u2014 so Insulation (51) is the highest-leverage characteristic to invest in and Heater watts (39) the lowest. (Add `normalize: true` to read these as 33% / 29% / 38% instead.) Above the columns, the **roof** is a half-matrix of diamond cells recording HOW-to-HOW correlations: `roof (0,1): --` flags that lowering Fan RPM while raising Heater watts is a trade-off, while `roof (1,2): +` flags that Heater watts and Insulation reinforce each other."
2705
2705
  },
@@ -2717,7 +2717,7 @@ If the LED doesn't light up, three things to check, in order: LED polarity (the
2717
2717
  "process-scoping"
2718
2718
  ],
2719
2719
  "complexity": 2,
2720
- "featured": false,
2720
+ "featured": true,
2721
2721
  "dsl": 'matrix sipoc "Order fulfilment"\nsuppliers: "Vendor", "Warehouse"\ninputs: "PO", "Stock levels"\nprocess: "Receive order", "Pick", "Pack", "Ship"\noutputs: "Shipped package", "Invoice"\ncustomers: "End customer", "Finance"',
2722
2722
  "notes": "## What this shows\n\nA **SIPOC** is the first artifact a Six Sigma team builds in the *Define* phase of DMAIC. It names \u2014 in five columns read left to right \u2014 everyone and everything the process touches: **S**uppliers hand in **I**nputs, the **P**rocess turns them into **O**utputs, and **C**ustomers receive them. Here the order-fulfilment process runs `Receive order \u2192 Pick \u2192 Pack \u2192 Ship`, fed by purchase orders and stock levels from the vendor and warehouse, and producing a shipped package for the end customer and an invoice for finance.\n\nThe point of a SIPOC is boundary-setting before measurement: it forces the team to agree where the process starts, where it ends, and who hands work in and out of it. The five columns always render in canonical S-I-P-O-C order, so the diagram reads correctly even when the blocks are authored out of sequence."
2723
2723
  },
@@ -4935,7 +4935,7 @@ var PROFILES = {
4935
4935
  type: "timing",
4936
4936
  header: 'timing "Title"',
4937
4937
  mode: "WaveDrom signals, with clock/run-length shorthands",
4938
- keywords: 'timing "title" [hscale: N] \xB7 SIGNAME: wave_spec \xB7 wave chars 0 1 x z = . u d p P n N h H l L 2-9 \xB7 clock N [neg] \xB7 rle <state>*<count> \u2026 \xB7 data: ["a","b"] for = and digit segments \xB7 [GroupName] or group "name" { \u2026 } \xB7 --- spacer \xB7 phase: FLOAT (0.0\u20131.0)',
4938
+ keywords: 'timing "title" [hscale: N] \xB7 SIGNAME: wave_spec \xB7 wave chars 0 1 x z = . u d p P n N h H l L 2-9 \xB7 clock N [neg] \xB7 rle <state>*<count> \u2026 \xB7 data: ["a","b"] for = and digit segments \xB7 [GroupName] or group "name" { \u2026 } \xB7 --- spacer',
4939
4939
  forms: [
4940
4940
  'timing "Synchronous Bus Read"',
4941
4941
  "CLK: clock 8",
@@ -4995,7 +4995,7 @@ var PROFILES = {
4995
4995
  type: "circuit",
4996
4996
  header: 'circuit "Title" netlist',
4997
4997
  mode: "SPICE-style netlist (recommended for generation)",
4998
- keywords: 'header: circuit "name" netlist \xB7 ID net1 net2 [value] [key=value \u2026] \xB7 prefixes R(resistor) C(capacitor) L(inductor) D(diode) V(voltage_source) I(current_source) Q(BJT) M(MOSFET) J(jfet) S(switch) F(fuse) B(battery) K(relay) U/X(ic) W(wire) T(terminal) \xB7 ground nets 0/gnd/ground/earth/vss/agnd/dgnd \xB7 type= override \xB7 dir=(right|left|up|down) \xB7 pins="\u2026" \xB7 positional mode (no netlist): id: type dir [label= value= at=] \xB7 wire right|left|up|down \xB7 at: id.pin \xB7 net NAME \xB7 ground vcc no_connect',
4998
+ keywords: 'header: circuit "name" netlist \xB7 ID net1 net2 [value] [key=value \u2026] \xB7 prefixes R(resistor) C(capacitor) L(inductor) D(diode) V(voltage_source) I(current_source) Q(BJT) M(MOSFET) J(jfet) S(switch) F(fuse) B(battery) K(relay) U/X(ic) W(wire) T(terminal) \xB7 ground nets 0/gnd/ground/earth/vss/agnd/dgnd \xB7 type= override \xB7 dir=(right|left|up|down) \xB7 pins="\u2026" \xB7 positional mode (no netlist): id: type dir [label= value= at=x,y width= height= length=] \xB7 panel primitives: enclosure/cabinet/panel din_rail wire_duct plc terminal_block contactor relay_coil pilot_light selector_switch emergency_stop \xB7 wire right|left|up|down \xB7 at: id.pin or x,y \xB7 net NAME \xB7 ground vcc no_connect',
4999
4999
  forms: [
5000
5000
  'circuit "Bridge Rectifier Supply" netlist',
5001
5001
  "V1 ac1 ac2 12Vac",
@@ -5010,10 +5010,11 @@ var PROFILES = {
5010
5010
  'Always use netlist mode (`circuit "name" netlist`). Each line is one component; no cursor state to track.',
5011
5011
  "Two components sharing a net name are wired together. Ground is `0`, `GND`, or an alias (`AGND`, `VSS`, `earth`); all normalise to one GND rail.",
5012
5012
  "The id first letter sets the type (R=resistor, C=capacitor, L=inductor, D=diode, V=voltage_source, Q=BJT, M=MOSFET). Use `type=` only when the prefix is ambiguous.",
5013
- "Optional `dir=right|left|up|down` nudges a symbol's orientation (e.g. `C1 vout 0 100n dir=down` for a shunt cap); it does not set position."
5013
+ "Optional `dir=right|left|up|down` nudges a symbol's orientation (e.g. `C1 vout 0 100n dir=down` for a shunt cap); it does not set position.",
5014
+ "For control cabinet / panel-layout drawings, use positional mode (no `netlist`) with absolute `at=x,y`: start with `enclosure width=\u2026 height=\u2026`, add `wire_duct`, `din_rail`, `plc`, `terminal_block`, `contactor`, and front-panel controls."
5014
5015
  ],
5015
5016
  avoid: [
5016
- "Avoid positional cursor mode (`wire`, `at:`) \u2014 it requires tracking mental cursor state and is not recommended for generation.",
5017
+ "Avoid positional cursor mode (`wire`, `at:`) for ordinary schematics \u2014 use it only for cabinet/panel layouts where physical placement matters.",
5017
5018
  "Do not invent coordinates; the auto-layout engine places components from net connectivity. `dir=` only rotates a symbol.",
5018
5019
  "Don't give a multi-terminal part fewer nets than it has pins (a `transformer` needs 4: `T1 p1 p2 s1 s2 type=transformer`)."
5019
5020
  ],
@@ -5088,7 +5089,7 @@ var PROFILES = {
5088
5089
  type: "sld",
5089
5090
  header: 'sld "Title"',
5090
5091
  mode: "equipment declarations + directed power-flow edges",
5091
- keywords: 'sld "title" [standard: ansi|iec|abnt|as-nzs] \xB7 ID = nodeType [label:"\u2026" voltage:"\u2026" rating:"\u2026" device:"\u2026"] \xB7 ID -> ID [cable:"\u2026" label:"\u2026"] \xB7 sources: utility generator solar wind ups \xB7 transformers: transformer transformer_dy transformer_yd transformer_yy transformer_dd autotransformer transformer_3winding \xB7 buses: bus bus_tie hub \xB7 switching: breaker breaker_vacuum switch switch_load ground_switch ats recloser sectionalizer fuse fuse_cl \xB7 protection: ct pt relay surge_arrester ground_fault \xB7 loads: motor load capacitor_bank harmonic_filter vfd \xB7 metering: watthour_meter demand_meter \xB7 aliases: mcb/mccb->breaker rcd/rcbo/rccb->ground_fault isolator/disconnector->switch_load panel/consumer_unit/distribution_board->bus',
5092
+ keywords: 'sld "title" [standard: ansi|iec|abnt|as-nzs] \xB7 ID = nodeType [label:"\u2026" voltage:"\u2026" rating:"\u2026" device:"\u2026" curve:"\u2026" icn:"\u2026" rcd_type:"\u2026" sensitivity:"\u2026"] \xB7 ID -> ID [cable:"\u2026" cable_csa:"\u2026" cable_length_m:"\u2026" cable_insulation:"\u2026" label:"\u2026"] \xB7 sources: utility generator solar wind ups \xB7 transformers: transformer transformer_dy transformer_yd transformer_yy transformer_dd autotransformer transformer_3winding \xB7 buses: bus bus_tie hub consumer_unit \xB7 switching: breaker breaker_vacuum switch switch_load ground_switch ats recloser sectionalizer fuse fuse_cl \xB7 protection: ct pt relay surge_arrester ground_fault rcd \xB7 loads: motor load capacitor_bank harmonic_filter vfd \xB7 metering: watthour_meter demand_meter \xB7 aliases: mcb/mccb->breaker rcd/rcbo/rccb->rcd isolator/disconnector->switch_load panel/consumer_unit/distribution_board->consumer_unit',
5092
5093
  forms: [
5093
5094
  'sld "Utility + Generator Backup"',
5094
5095
  'UTIL = utility [voltage: "480V", label: "Utility"]',
@@ -5106,7 +5107,7 @@ var PROFILES = {
5106
5107
  prefer: [
5107
5108
  "Declare every node as `id = nodeType [attrs]` before any `->` connection references it.",
5108
5109
  "Use one `from -> to` edge per line \u2014 SLD does not support chained arrows like `a -> b -> c`.",
5109
- 'Annotate nodes with `[label: "\u2026", rating: "\u2026", voltage: "\u2026"]`; annotate edges with `[cable: "\u2026", label: "\u2026"]`.'
5110
+ 'Annotate nodes with `[label: "\u2026", rating: "\u2026", voltage: "\u2026"]`; for IEC residential boards use `consumer_unit`, `rcd`, breaker `curve`/`icn`, RCD `rcd_type`/`sensitivity`, and edge `cable_csa`/`cable_insulation`.'
5110
5111
  ],
5111
5112
  avoid: [
5112
5113
  "Avoid nodeTypes not in the catalog \u2014 an unrecognised type renders as a flagged `?` placeholder; pick the closest canonical type or alias (meter->watthour_meter, inverter->vfd, isolator->switch_load).",
@@ -5287,7 +5288,7 @@ var PROFILES = {
5287
5288
  type: "matrix",
5288
5289
  header: 'matrix "Title"',
5289
5290
  mode: "quadrant scatter (default) | named templates | heatmap | sipoc | qfd | punnett",
5290
- keywords: 'header variants: matrix "Title" | matrix <template> "Title" | matrix heatmap NxM | matrix correlation | matrix sipoc | matrix qfd | matrix punnett \xB7 templates: eisenhower impact-effort rice bcg ansoff johari 9-box risk-matrix \xB7 quadrant: x-axis: Low -> High \xB7 y-axis: Low -> High \xB7 "Label" at (x,y) [size:N category:C shape:circle|square|triangle|diamond] \xB7 quadrant Q1..Q4 "name" \xB7 Q1:/"Q1: text" cell shortcuts \xB7 style: table \xB7 config: offChartPolicy=clamp-badge|drop bubbleScale=area|radius',
5291
+ keywords: 'header variants: matrix "Title" | matrix <template> "Title" | matrix heatmap NxM | matrix correlation | matrix sipoc | matrix qfd | matrix punnett \xB7 templates: eisenhower impact-effort rice bcg ansoff johari 9-box risk-matrix \xB7 quadrant: x-axis: Low -> High \xB7 y-axis: Low -> High \xB7 "Label" at (x,y) [size:N category:C shape:circle|square|triangle|diamond] \xB7 quadrant Q1..Q4 "name" \xB7 Q1:/"Q1: text" cell shortcuts \xB7 style: table \xB7 config: offChartPolicy=clamp-badge|drop bubbleScale=area|radius \xB7 QFD body (under `matrix qfd`): what: "Need" [weight: N] \xB7 how: "Spec" [dir: up|down|target] \xB7 rel (whatIdx, howIdx): 9|3|1 \xB7 roof (i, j): ++|+|-|-- \xB7 [normalize: percent] \u2014 engine computes the technical-importance row \xB7 SIPOC body (under `matrix sipoc`): suppliers:/inputs:/process:/outputs:/customers: "A", "B", \u2026 (each column one line) \xB7 Punnett body (under `matrix punnett`): cross: Bb x Bb (genotype pairs, separator x/\xD7/*) \xB7 trait B: "Brown" / "Blue" (dominant / recessive phenotype names) \u2014 engine computes the genotype + phenotype ratios',
5291
5292
  forms: [
5292
5293
  'matrix eisenhower "This Week"',
5293
5294
  "style: table",
@@ -5297,12 +5298,24 @@ var PROFILES = {
5297
5298
  "",
5298
5299
  'matrix bcg "Product Portfolio"',
5299
5300
  '"Platform SDK" at (0.8, 0.8) size: 5 category: star',
5300
- '"Legacy API" at (0.85, 0.15) size: 4 category: cashcow'
5301
+ '"Legacy API" at (0.85, 0.15) size: 4 category: cashcow',
5302
+ "",
5303
+ 'matrix qfd "House of Quality"',
5304
+ 'what: "Quiet operation" weight: 5',
5305
+ 'how: "Fan RPM" dir: down',
5306
+ "rel (1, 1): 9",
5307
+ "",
5308
+ 'matrix punnett "Monohybrid Cross"',
5309
+ "cross: Bb x Bb",
5310
+ 'trait B: "Brown" / "Blue"'
5301
5311
  ],
5302
5312
  prefer: [
5303
5313
  "Use a named template (`eisenhower`, `impact-effort`, `bcg`, `ansoff`, `johari`, `9-box`, `risk-matrix`, `rice`) for first-shot generation \u2014 it pre-fills axes and quadrant labels.",
5304
5314
  "Add `style: table` with `Q1:`/`Q2:`/`Q3:`/`Q4:` item lines for the four-cell list layout instead of a scatter.",
5305
- "Quadrant scatter coordinates are normalized `[0,1]` fractions; add `size: N` for a bubble chart and `category:` to drive legend color."
5315
+ "Quadrant scatter coordinates are normalized `[0,1]` fractions; add `size: N` for a bubble chart and `category:` to drive legend color.",
5316
+ 'For QFD / House of Quality, lead with the header `matrix qfd "\u2026"`, then list customer needs as `what: "\u2026" weight: N` and engineering specs as `how: "\u2026" dir: up|down`, then weight the cells with `rel (whatIdx, howIdx): 9|3|1` (1-based, in declaration order) \u2014 the engine computes the technical-importance row, so never type it yourself.',
5317
+ 'For SIPOC, header `matrix sipoc "\u2026"`, then one line per column: `suppliers:`, `inputs:`, `process:`, `outputs:`, `customers:`, each a comma-separated quoted list.',
5318
+ 'For a Punnett square, header `matrix punnett "\u2026"`, then `cross: <genotype> x <genotype>` (even-length allele pairs like `Bb` or `RrYy`) and optional `trait <Letter>: "Dominant" / "Recessive"` \u2014 the engine fills the grid and computes the genotype/phenotype ratios.'
5306
5319
  ],
5307
5320
  avoid: [
5308
5321
  "Don't mix `sipoc:`/`qfd:`/`punnett:` sub-keywords in plain quadrant mode \u2014 they activate only under the matching header mode (`matrix sipoc`).",
@@ -5502,7 +5515,7 @@ var PROFILES = {
5502
5515
  type: "breadboard",
5503
5516
  header: "breadboard",
5504
5517
  mode: "parts section + wires section; breadboard-native hole/rail coordinates",
5505
- keywords: 'breadboard \xB7 board: mini|half|full \xB7 title: "\u2026" \xB7 parts section: id: KIND [args] @placement \xB7 wire kinds: resistor led cap-elec cap-ceramic diode button dip header \xB7 mcu uno|nano|esp32|pico \xB7 sensor hcsr04|dht11|dht22 \xB7 display oled-ssd1306|lcd-1602-i2c \xB7 actuator servo-sg90 \xB7 placement: @5e (hole) @5e..9e (span) @+t8 @-t8 @+b14 @-b14 (rails) @beside-left @beside-right @above @below \xB7 wires section: ep --color-- ep [via @coord] \xB7 colors: red black blue yellow orange green white purple brown grey \xB7 endpoints: @coord or partId:pin',
5518
+ keywords: 'breadboard \xB7 board: mini|half|full \xB7 title: "\u2026" \xB7 parts section: id: KIND [args] @placement \xB7 wire kinds: resistor led cap-elec cap-ceramic diode button dip header potentiometer \xB7 mcu uno|nano|esp32|esp32-c3|esp32-s3|pico \xB7 sensor hcsr04|dht11|dht22|vl53l0x \xB7 display oled-ssd1306|lcd-1602-i2c|tm1637 \xB7 module rotary-ky040|l298n \xB7 actuator servo-sg90 \xB7 pin aliases: ESP GPIO22 accepts D22/IO22/22, VIN accepts 5V/VBUS, Arduino A4/A5 accept SDA/SCL \xB7 placement: @5e (hole) @5e..9e (span) @+t8 @-t8 @+b14 @-b14 (rails) @beside-left @beside-right @above @below \xB7 wires section: ep --color-- ep [via @coord] \xB7 colors: red black blue yellow orange green white purple brown grey \xB7 endpoints: @coord or partId:pin',
5506
5519
  forms: [
5507
5520
  "breadboard",
5508
5521
  "board: half",
@@ -5528,7 +5541,7 @@ var PROFILES = {
5528
5541
  ],
5529
5542
  repair: [
5530
5543
  "'Unknown board' -> set `board:` to `mini`, `half`, or `full`.",
5531
- "'Unknown part kind' -> use a supported kind (`resistor` `led` `cap-elec` `diode` `button` `dip` `header`) or a compound (`mcu uno`, `sensor hcsr04`, `display oled-ssd1306`).",
5544
+ "'Unknown part kind' -> use a supported kind (`resistor` `led` `cap-elec` `diode` `button` `dip` `header` `potentiometer`) or a compound (`mcu esp32`, `sensor hcsr04`, `display tm1637`, `module l298n`).",
5532
5545
  "'Wire references unknown part' -> add `X: KIND @placement` to the `parts` section before `wires`."
5533
5546
  ]
5534
5547
  },
@@ -6335,7 +6348,7 @@ var PROFILES = {
6335
6348
  type: "floorplan",
6336
6349
  header: 'floorplan "Title" [unit m|ft]',
6337
6350
  mode: "explicit dimensions + relative room placement; furniture room-relative from each room's top-left",
6338
- keywords: 'room id "Label" at x,y | right-of/left-of/above/below ref [offset n] [align start|center|end] size WxH [fill #hex] [nolabel] \xB7 extend <room> at x,y | right-of ref size WxH (L/T/U rooms) \xB7 north [deg] \xB7 door <room> north|south|east|west | between A B at N% [width n] [hinge left|right] [swing in|out] [type single|double|sliding|pocket|bifold] \xB7 window <wallref> at N% [width n] [type fixed|sliding|casement|bay] \xB7 opening <wallref|between A B> at N% [width n] \xB7 furniture <type> in room at x,y [size WxH] [rotate deg] ["label"] \xB7 grid|row <type> in room rows R cols C [count N] area x1,y1 x2,y2 [itemsize WxH] \xB7 arc <type> in room count N center x,y radius r from deg to deg \xB7 types: bed-double/single/queen/king bunk-bed crib sofa loveseat sectional armchair ottoman coffee-table side-table tv tv-stand fireplace floor-lamp rug wardrobe dresser nightstand bookshelf plant piano piano-upright pool-table ceiling-fan dining-table counter wall-cabinet island kitchen-sink stove range-hood fridge dishwasher bar-stool toilet sink vanity bidet urinal bathtub shower washer dryer stairs stairs-l stairs-u spiral-stairs elevator column desk-chair desk desk-l chair whiteboard smartboard bookcase cubbies filing-cabinet lockers kidney-table round-table-4/6/8/10 conference-table banquet-table head-table stage dance-floor bar dj-booth cocktail-table podium row-chairs shelving checkout clothing-rack fitting-room pallet-rack loading-dock forklift salon-chair shampoo-bowl manicure-table treadmill weight-bench power-rack yoga-mat tree car',
6351
+ keywords: 'room id "Label" at x,y | right-of/left-of/above/below ref [offset n] [align start|center|end] size WxH [fill #hex] [nolabel] \xB7 extend <room> at x,y | right-of ref size WxH (L/T/U rooms) \xB7 north [deg] \xB7 door <room> north|south|east|west | between A B at N% [width n] [hinge left|right] [swing in|out] [type single|double|sliding|pocket|bifold] \xB7 window <wallref> at N% [width n] [type fixed|sliding|casement|bay] \xB7 opening <wallref|between A B> at N% [width n] \xB7 furniture <type> in room at x,y [size WxH or square size N] [rotate deg] ["label"] [seats "Name" "Name" \u2026] \xB7 aliases: section->sectional socket/receptacle->outlet/duplex-outlet consumer-unit/db->distribution-board \xB7 grid|row <type> in room rows R cols C [count N] area x1,y1 x2,y2 [itemsize WxH] \xB7 arc <type> in room count N center x,y radius r from deg to deg \xB7 types: bed-double/single/queen/king bunk-bed crib sofa loveseat sectional armchair ottoman coffee-table side-table tv tv-stand fireplace floor-lamp rug wardrobe dresser nightstand bookshelf plant piano piano-upright pool-table ceiling-fan dining-table counter wall-cabinet island kitchen-sink stove range-hood fridge dishwasher bar-stool toilet sink vanity bidet urinal bathtub shower washer dryer stairs stairs-l stairs-u spiral-stairs elevator column desk-chair desk desk-l chair whiteboard smartboard bookcase cubbies filing-cabinet lockers kidney-table round-table-4/6/8/10 conference-table banquet-table head-table stage dance-floor bar dj-booth cocktail-table podium row-chairs shelving checkout clothing-rack fitting-room pallet-rack loading-dock forklift salon-chair shampoo-bowl manicure-table treadmill weight-bench power-rack yoga-mat outlet duplex-outlet switch light ceiling-light data-outlet electrical-panel distribution-board tree car',
6339
6352
  forms: [
6340
6353
  'floorplan "Two-Bedroom Apartment" unit m',
6341
6354
  'room living "Living Room" at 0,0 size 5.2x4.2',
@@ -6351,9 +6364,11 @@ var PROFILES = {
6351
6364
  "Furniture `at x,y` is relative to its room's interior top-left corner, in the plan unit.",
6352
6365
  "Use `grid`/`row`/`arc` for repeated items (desks, banquet tables, ceremony chairs) instead of many `furniture` lines; `count` truncates row-major.",
6353
6366
  "Round tables auto-seat their chairs (round-table-8 = 8 chairs); dining/banquet/conference tables auto-seat both long edges; leave chair clearance \u2265 0.5 m around tables.",
6367
+ 'For a seating chart / plan de table / \u5E2D\u6B21\u8868 \u2014 who sits where, not just where the tables go \u2014 add `seats "Alice" "Bob" \u2026` to each table: the names are written onto the chairs in seating order (round tables clockwise from top, head/long tables along the seated edge). Fewer names than chairs is fine (extras stay empty); CJK names quote like any label.',
6354
6368
  "For L/T/U-shaped rooms, declare the main rectangle then `extend <room> at x,y size WxH` \u2014 the extension must share an edge; the engine merges walls and sums the area.",
6355
6369
  'Stairs are furniture: `furniture stairs in hall at x,y` (also stairs-l, stairs-u, spiral-stairs) \u2014 they draw treads, the UP arrow, and the cut-plane break line automatically; label "DN" for a descending run.',
6356
- "Commercial & site symbols: retail uses shelving/checkout/clothing-rack/fitting-room; warehouse uses pallet-rack/loading-dock/forklift; salon uses salon-chair/shampoo-bowl/manicure-table; gym uses treadmill/weight-bench/power-rack/yoga-mat; `tree` and `car` are sized for site plans, landscaping, and parking stalls."
6370
+ "Commercial & site symbols: retail uses shelving/checkout/clothing-rack/fitting-room; warehouse uses pallet-rack/loading-dock/forklift; salon uses salon-chair/shampoo-bowl/manicure-table; gym uses treadmill/weight-bench/power-rack/yoga-mat; `tree` and `car` are sized for site plans, landscaping, and parking stalls.",
6371
+ "For electrical fittings plans, stay in `floorplan` and add overlay furniture: `duplex-outlet`, `switch`, `ceiling-light`, `data-outlet`, `electrical-panel`, `distribution-board`. Use `sld` for the panel internals, not floorplan."
6357
6372
  ],
6358
6373
  avoid: [
6359
6374
  "Don't overlap room rectangles \u2014 adjacency means edges touch exactly (right-of/below guarantee this).",
@@ -6561,5 +6576,5 @@ function matchRepair(repairs, message) {
6561
6576
  }
6562
6577
 
6563
6578
  export { DIAGRAM_REGISTRY, DIAGRAM_SINCE, getAllDiagramTypes, getDiagramMeta, getDiagramSince, getExamples, getSyntax, listDiagrams, renderDsl, resolveDiagramType, validateDsl };
6564
- //# sourceMappingURL=chunk-RCR4UGKV.js.map
6565
- //# sourceMappingURL=chunk-RCR4UGKV.js.map
6579
+ //# sourceMappingURL=chunk-4QBC4475.js.map
6580
+ //# sourceMappingURL=chunk-4QBC4475.js.map