sldeditor 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/canvas/BusLayer.d.ts.map +1 -1
  2. package/dist/canvas/CanvasSvg.d.ts.map +1 -1
  3. package/dist/canvas/JunctionLayer.d.ts +12 -0
  4. package/dist/canvas/JunctionLayer.d.ts.map +1 -0
  5. package/dist/canvas/WirePreview.d.ts +5 -4
  6. package/dist/canvas/WirePreview.d.ts.map +1 -1
  7. package/dist/canvas/hit-test.d.ts +6 -5
  8. package/dist/canvas/hit-test.d.ts.map +1 -1
  9. package/dist/canvas/resolve-wire-target.d.ts.map +1 -1
  10. package/dist/canvas/tools/JunctionTool.d.ts +3 -0
  11. package/dist/canvas/tools/JunctionTool.d.ts.map +1 -0
  12. package/dist/canvas/tools/SelectTool.d.ts.map +1 -1
  13. package/dist/canvas/tools/WireTool.d.ts.map +1 -1
  14. package/dist/canvas/tools/index.d.ts.map +1 -1
  15. package/dist/canvas/useKeyboardShortcuts.d.ts.map +1 -1
  16. package/dist/canvas/wire-target-bus.d.ts +4 -1
  17. package/dist/canvas/wire-target-bus.d.ts.map +1 -1
  18. package/dist/compiler/auto-route.d.ts.map +1 -1
  19. package/dist/compiler/compile.d.ts.map +1 -1
  20. package/dist/compiler/index.d.ts +1 -1
  21. package/dist/compiler/index.d.ts.map +1 -1
  22. package/dist/compiler/internal-model.d.ts +7 -1
  23. package/dist/compiler/internal-model.d.ts.map +1 -1
  24. package/dist/components/FloatingToolbar.d.ts.map +1 -1
  25. package/dist/components/PropertyPanel.d.ts.map +1 -1
  26. package/dist/i18n/messages.d.ts +16 -6
  27. package/dist/i18n/messages.d.ts.map +1 -1
  28. package/dist/index.d.ts +3 -3
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/lib/export-image.d.ts.map +1 -1
  31. package/dist/model/index.d.ts +1 -1
  32. package/dist/model/index.d.ts.map +1 -1
  33. package/dist/model/types.d.ts +25 -4
  34. package/dist/model/types.d.ts.map +1 -1
  35. package/dist/sldeditor.cjs +52 -47
  36. package/dist/sldeditor.cjs.map +1 -1
  37. package/dist/sldeditor.js +5596 -5245
  38. package/dist/sldeditor.js.map +1 -1
  39. package/dist/store/id-allocator.d.ts +1 -0
  40. package/dist/store/id-allocator.d.ts.map +1 -1
  41. package/dist/store/index.d.ts +2 -2
  42. package/dist/store/index.d.ts.map +1 -1
  43. package/dist/store/store.d.ts +36 -2
  44. package/dist/store/store.d.ts.map +1 -1
  45. package/dist/style.css +1 -1
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BusLayer.d.ts","sourceRoot":"","sources":["../../src/canvas/BusLayer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAgB,QAAQ,4CA0EvB"}
1
+ {"version":3,"file":"BusLayer.d.ts","sourceRoot":"","sources":["../../src/canvas/BusLayer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAgB,QAAQ,4CA4EvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasSvg.d.ts","sourceRoot":"","sources":["../../src/canvas/CanvasSvg.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA0DH,wBAAgB,SAAS,4CAiRxB"}
1
+ {"version":3,"file":"CanvasSvg.d.ts","sourceRoot":"","sources":["../../src/canvas/CanvasSvg.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2DH,wBAAgB,SAAS,4CAkRxB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Renders one `<circle>` per junction — a free-standing point connection node
3
+ * (first-class peer to `Bus`). Tagged with `data-junction-id` so hit-test and
4
+ * the wire tool can attach to it, and `data-node-id` so a click resolves to
5
+ * the junction's electrical node, mirroring the bus/wire tagging convention.
6
+ *
7
+ * Junctions are always visible (unlike device terminals, which the wire tool
8
+ * reveals on demand) because they are model objects the user placed, not
9
+ * transient pins.
10
+ */
11
+ export declare function JunctionLayer(): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=JunctionLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JunctionLayer.d.ts","sourceRoot":"","sources":["../../src/canvas/JunctionLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,wBAAgB,aAAa,4CAmC5B"}
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Dashed line from the chosen first terminal to the current cursor position
3
- * while the wire tool is mid-drag. When the cursor is over a valid drop
4
- * target (a terminal or a bus body), an additional ring + dot marks the
5
- * exact landing point so the user can release with confidence.
2
+ * Dashed line from the wire-drag origin to the current cursor while the wire
3
+ * tool is mid-drag. The origin may be an existing terminal/bus/junction or a
4
+ * free point in space (which will mint a junction on release). When the cursor
5
+ * is over a valid drop target, a ring + dot marks the exact landing point; a
6
+ * hollow ring marks a spot where a release would create a new junction.
6
7
  */
7
8
  export declare function WirePreview(): import("react/jsx-runtime").JSX.Element | null;
8
9
  //# sourceMappingURL=WirePreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WirePreview.d.ts","sourceRoot":"","sources":["../../src/canvas/WirePreview.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,wBAAgB,WAAW,mDA0D1B"}
1
+ {"version":3,"file":"WirePreview.d.ts","sourceRoot":"","sources":["../../src/canvas/WirePreview.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,wBAAgB,WAAW,mDAoD1B"}
@@ -1,11 +1,12 @@
1
- import { AnnotationId, BusId, ElementId, NodeId, WireEnd, WireId } from '../model';
1
+ import { AnnotationId, BusId, ElementId, JunctionId, NodeId, WireEnd, WireId } from '../model';
2
2
  export declare function hitElement(target: EventTarget | null): ElementId | null;
3
3
  export declare function hitBus(target: EventTarget | null): BusId | null;
4
+ export declare function hitJunction(target: EventTarget | null): JunctionId | null;
4
5
  /**
5
- * Returns either a device terminal ref ("X.Y") or a bare bus id under the
6
- * cursor. Direct hit on a `data-terminal-id` node wins; otherwise if the
7
- * click landed on a bus body fall back to the bus id so the wire tool can
8
- * attach anywhere along the bus.
6
+ * Returns the connectable WireEnd under the cursor a device terminal ref
7
+ * ("X.Y"), a bare bus id, or a bare junction id. Direct hit on a
8
+ * `data-terminal-id` node wins; otherwise fall back to a junction dot or a bus
9
+ * body so the wire tool can attach to any of them.
9
10
  */
10
11
  export declare function hitTerminal(target: EventTarget | null): WireEnd | null;
11
12
  export declare function hitNode(target: EventTarget | null): NodeId | null;
@@ -1 +1 @@
1
- {"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../../src/canvas/hit-test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,KAAK,EACL,SAAS,EACT,MAAM,EAEN,OAAO,EACP,MAAM,EACP,MAAM,UAAU,CAAC;AAOlB,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEvE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAMtE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAK7E"}
1
+ {"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../../src/canvas/hit-test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,MAAM,EAEN,OAAO,EACP,MAAM,EACP,MAAM,UAAU,CAAC;AAOlB,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEvE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAE/D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAQtE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAK7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-wire-target.d.ts","sourceRoot":"","sources":["../../src/canvas/resolve-wire-target.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,UAAU,GAAG,IAAI,CAwBnB"}
1
+ {"version":3,"file":"resolve-wire-target.d.ts","sourceRoot":"","sources":["../../src/canvas/resolve-wire-target.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,UAAU,GAAG,IAAI,CA4BnB"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from './types';
2
+ export declare const JunctionTool: Tool;
3
+ //# sourceMappingURL=JunctionTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JunctionTool.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/JunctionTool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAKpC,eAAO,MAAM,YAAY,EAAE,IAY1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTool.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/SelectTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAyCpC,eAAO,MAAM,UAAU,EAAE,IAibxB,CAAC"}
1
+ {"version":3,"file":"SelectTool.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/SelectTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AA4CpC,eAAO,MAAM,UAAU,EAAE,IA8cxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WireTool.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/WireTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,QAAQ,EAAE,IA0EtB,CAAC"}
1
+ {"version":3,"file":"WireTool.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/WireTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AA4EpC,eAAO,MAAM,QAAQ,EAAE,IAuFtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAQ5C,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAOtC,CAAC;AAEF,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/canvas/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAS5C,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAQtC,CAAC;AAEF,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardShortcuts.d.ts","sourceRoot":"","sources":["../../src/canvas/useKeyboardShortcuts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAiCvC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAoH3C"}
1
+ {"version":3,"file":"useKeyboardShortcuts.d.ts","sourceRoot":"","sources":["../../src/canvas/useKeyboardShortcuts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAiCvC;AAGD,wBAAgB,oBAAoB,IAAI,IAAI,CAwH3C"}
@@ -1,10 +1,13 @@
1
1
  import { WireEnd } from '../model';
2
2
  export interface WireTarget {
3
- ref: WireEnd;
3
+ /** Existing connectable ref, or null when this target will mint a junction. */
4
+ ref: WireEnd | null;
4
5
  /** World-frame coords of where the connection will physically attach. */
5
6
  world: [number, number];
6
7
  /** True when the target is a bare bus id. */
7
8
  isBus: boolean;
9
+ /** Set when releasing here mints a junction (empty space, or a wire tap). */
10
+ create?: 'junction';
8
11
  }
9
12
  type Listener = (target: WireTarget | null) => void;
10
13
  export declare function publishWireTarget(t: WireTarget | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"wire-target-bus.d.ts","sourceRoot":"","sources":["../../src/canvas/wire-target-bus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,yEAAyE;IACzE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;AAKpD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAa5D;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,IAAI,CAK5D"}
1
+ {"version":3,"file":"wire-target-bus.d.ts","sourceRoot":"","sources":["../../src/canvas/wire-target-bus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,yEAAyE;IACzE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;AAKpD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAa5D;AAED,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,IAAI,CAK5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-route.d.ts","sourceRoot":"","sources":["../../src/compiler/auto-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3B,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,EAAE,EAAE,CAAC;CACZ;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CA6B5E;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,EAAE,GAAG,IAAI,EACnB,KAAK,EAAE,aAAa,GACnB,EAAE,GAAG,IAAI,CAgBX"}
1
+ {"version":3,"file":"auto-route.d.ts","sourceRoot":"","sources":["../../src/compiler/auto-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3B,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,EAAE,EAAE,CAAC;CACZ;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CA6B5E;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,EAAE,GAAG,IAAI,EACnB,KAAK,EAAE,aAAa,GACnB,EAAE,GAAG,IAAI,CAmBX"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAGV,WAAW,EAOZ,MAAM,UAAU,CAAC;AAKlB,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAyB1B,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CA6O3D"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAGV,WAAW,EASZ,MAAM,UAAU,CAAC;AAKlB,OAAO,EAKL,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAC;AAyB1B,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CA2S3D"}
@@ -1,6 +1,6 @@
1
1
  export { compile } from './compile';
2
2
  export { LIBRARY, getLibraryEntry } from './library-index';
3
3
  export { busAxisFromRot, emptyInternalModel, resolvePlacement, } from './internal-model';
4
- export type { BusGeometry, ConnectivityNode, Diagnostic, InternalModel, ResolvedBus, ResolvedElement, ResolvedPlacement, TerminalGeometry, WireRender, } from './internal-model';
4
+ export type { BusGeometry, ConnectivityNode, Diagnostic, InternalModel, ResolvedBus, ResolvedElement, ResolvedJunction, ResolvedPlacement, TerminalGeometry, WireRender, } from './internal-model';
5
5
  export { orientationVec, transformOrientation, transformPoint, } from './transforms';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Bus, BusId, Element, ElementId, LibraryEntry, NodeId, Orientation, Placement, TerminalRef, WireEnd } from '../model';
1
+ import { Bus, BusId, Element, ElementId, Junction, JunctionId, LibraryEntry, NodeId, Orientation, Placement, TerminalRef, WireEnd } from '../model';
2
2
  /** Element + the resolved library record for its `kind`. */
3
3
  export interface ResolvedElement {
4
4
  element: Element;
@@ -22,6 +22,11 @@ export interface ResolvedBus {
22
22
  bus: Bus;
23
23
  geometry: BusGeometry;
24
24
  }
25
+ export interface ResolvedJunction {
26
+ junction: Junction;
27
+ /** Canvas coordinate of the point node. */
28
+ world: [number, number];
29
+ }
25
30
  export interface TerminalGeometry {
26
31
  ref: TerminalRef;
27
32
  elementId: ElementId;
@@ -58,6 +63,7 @@ export interface WireRender {
58
63
  export interface InternalModel {
59
64
  elements: Map<ElementId, ResolvedElement>;
60
65
  buses: Map<BusId, ResolvedBus>;
66
+ junctions: Map<JunctionId, ResolvedJunction>;
61
67
  terminals: Map<TerminalRef, TerminalGeometry>;
62
68
  nodes: Map<NodeId, ConnectivityNode>;
63
69
  layout: Map<ElementId, ResolvedPlacement>;
@@ -1 +1 @@
1
- {"version":3,"file":"internal-model.d.ts","sourceRoot":"","sources":["../../src/compiler/internal-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,GAAG,EACH,KAAK,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,MAAM,EACN,WAAW,EACX,SAAS,EACT,WAAW,EACX,OAAO,EACR,MAAM,UAAU,CAAC;AAElB,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;IACxB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,6DAA6D;IAC7D,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,UAAU,EAAE,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACzB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1C,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC1C,qCAAqC;IACrC,WAAW,EAAE,GAAG,CAAC,OAAO,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACxD,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;IAClD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,IAAI,aAAa,CAYlD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAMjE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAEjE"}
1
+ {"version":3,"file":"internal-model.d.ts","sourceRoot":"","sources":["../../src/compiler/internal-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AA+JA,wBAAgB,eAAe,4CAyG9B"}
1
+ {"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AA6KA,wBAAgB,eAAe,4CAyG9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyPanel.d.ts","sourceRoot":"","sources":["../../src/components/PropertyPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,wBAAgB,aAAa,mDAqE5B"}
1
+ {"version":3,"file":"PropertyPanel.d.ts","sourceRoot":"","sources":["../../src/components/PropertyPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,wBAAgB,aAAa,mDAwE5B"}
@@ -42,6 +42,8 @@ export declare const messages: {
42
42
  readonly 'props.node': "电气节点";
43
43
  readonly 'props.wire': "连线";
44
44
  readonly 'props.bus': "母线";
45
+ readonly 'props.junction': "接线柱";
46
+ readonly 'props.junctionPos': "位置";
45
47
  readonly 'props.nSelected': "{n} 选中";
46
48
  readonly 'props.empty': "未选中";
47
49
  readonly 'props.multi': "已选中 {n} 个元件";
@@ -83,9 +85,11 @@ export declare const messages: {
83
85
  readonly 'tool.pan': "平移";
84
86
  readonly 'tool.panHint': "拖动画布;空格键可临时切换";
85
87
  readonly 'tool.wire': "连线";
86
- readonly 'tool.wireHint': "从一个端子拖动到另一个端子完成连线";
88
+ readonly 'tool.wireHint': "从端子/母线/接线柱拖出;拖到空白处会自动新建接线柱,拖到已有连线上可打接点";
87
89
  readonly 'tool.bus': "母线";
88
90
  readonly 'tool.busHint': "画布上拖动一段母线,按下定起点、释放定终点";
91
+ readonly 'tool.junction': "接线柱";
92
+ readonly 'tool.junctionHint': "点击画布放置一个接线柱(接点),连线可自由连到它";
89
93
  readonly 'tool.place': "元件";
90
94
  readonly 'tool.placeHint': "点击画布放置;或从端子/母线拖出,同时放置并连接";
91
95
  readonly 'tool.text': "文字";
@@ -93,10 +97,11 @@ export declare const messages: {
93
97
  readonly 'mode.selectWithSel': "拖动元件移动 · 拖端子连线 · 右键打开菜单";
94
98
  readonly 'mode.selectEmpty': "点选元件 · 拖动移动 · 框选多个 · 右键打开菜单";
95
99
  readonly 'mode.pan': "拖动画布 · 滚轮缩放 · 按住空格可在其他工具下临时平移";
96
- readonly 'mode.wireDragging': "拖到另一个端子或母线上释放完成连线";
97
- readonly 'mode.wireInit': "从端子按下,拖动到另一个端子或母线上释放";
100
+ readonly 'mode.wireDragging': "拖到端子/母线/接线柱释放;空白处释放会新建接线柱";
101
+ readonly 'mode.wireInit': "从任意连接点或空白处按下,拖到目标释放;空白处会新建接线柱";
98
102
  readonly 'mode.busDragging': "拖动决定母线方向,释放定终点";
99
103
  readonly 'mode.busInit': "在画布按下定起点,拖动后释放定终点";
104
+ readonly 'mode.junction': "点击画布放置一个接线柱";
100
105
  readonly 'mode.placeNoKind': "从左侧元件库选择一种元件";
101
106
  readonly 'mode.placeFromTerm': "拖到目标位置释放,新元件将连接到起点端子";
102
107
  readonly 'mode.placeNormal': "点击空白放置;或从已有端子 / 母线拖出,同时放置并连接";
@@ -212,6 +217,8 @@ export declare const messages: {
212
217
  readonly 'props.node': "Electrical node";
213
218
  readonly 'props.wire': "Wire";
214
219
  readonly 'props.bus': "Bus";
220
+ readonly 'props.junction': "Junction";
221
+ readonly 'props.junctionPos': "Position";
215
222
  readonly 'props.nSelected': "{n} selected";
216
223
  readonly 'props.empty': "Nothing selected";
217
224
  readonly 'props.multi': "{n} elements selected";
@@ -253,9 +260,11 @@ export declare const messages: {
253
260
  readonly 'tool.pan': "Pan";
254
261
  readonly 'tool.panHint': "Drag the canvas; Space toggles temporarily";
255
262
  readonly 'tool.wire': "Wire";
256
- readonly 'tool.wireHint': "Drag from one terminal to another to wire";
263
+ readonly 'tool.wireHint': "Drag from a pin/bus/junction; into empty space drops a junction, onto a wire taps it";
257
264
  readonly 'tool.bus': "Busbar";
258
265
  readonly 'tool.busHint': "Drag on the canvas — press to set start, release to set end";
266
+ readonly 'tool.junction': "Junction";
267
+ readonly 'tool.junctionHint': "Click the canvas to drop a junction (node); wires attach to it freely";
259
268
  readonly 'tool.place': "Place";
260
269
  readonly 'tool.placeHint': "Click to place; or drag from a terminal/bus to place and connect";
261
270
  readonly 'tool.text': "Text";
@@ -263,10 +272,11 @@ export declare const messages: {
263
272
  readonly 'mode.selectWithSel': "Drag elements · drag terminals to wire · right-click for menu";
264
273
  readonly 'mode.selectEmpty': "Click to pick · drag to move · marquee for multiple · right-click for menu";
265
274
  readonly 'mode.pan': "Drag the canvas · scroll to zoom · hold Space to pan in any tool";
266
- readonly 'mode.wireDragging': "Release on another terminal or busbar to complete the wire";
267
- readonly 'mode.wireInit': "Press on a terminal, drag to another terminal or busbar, release";
275
+ readonly 'mode.wireDragging': "Release on a pin/bus/junction; release in empty space drops a junction";
276
+ readonly 'mode.wireInit': "Press on any connection point or empty space, drag to a target and release";
268
277
  readonly 'mode.busDragging': "Drag sets bus direction; release sets the end";
269
278
  readonly 'mode.busInit': "Press on the canvas to set start, drag, release to set end";
279
+ readonly 'mode.junction': "Click the canvas to drop a junction";
270
280
  readonly 'mode.placeNoKind': "Pick an element kind from the library on the left";
271
281
  readonly 'mode.placeFromTerm': "Release at the target — the new element will connect back to the source terminal";
272
282
  readonly 'mode.placeNormal': "Click empty space to place; or drag from a terminal / bus to place and connect";
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyXX,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmYX,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export { OneLineEditor } from './OneLineEditor';
2
2
  export type { OneLineEditorProps } from './OneLineEditor';
3
3
  export type { OneLineEditorProps as SldEditorProps } from './OneLineEditor';
4
- export type { Bus, BusId, BusLayout, DiagramFile, DiagramMeta, DiagramVersion, Element, ElementId, LibraryEntry, LibraryLabelAnchor, LibraryParamField, LibrarySource, LibraryStateField, LibraryStretchable, LibraryTerminal, NodeId, Orientation, ParamValue, PinName, Placement, TerminalRef, Wire, WireEnd, WireId, } from './model';
4
+ export type { Bus, BusId, BusLayout, DiagramFile, DiagramMeta, DiagramVersion, Element, ElementId, Junction, JunctionId, JunctionLayout, LibraryEntry, LibraryLabelAnchor, LibraryParamField, LibrarySource, LibraryStateField, LibraryStretchable, LibraryTerminal, NodeId, Orientation, ParamValue, PinName, Placement, TerminalRef, Wire, WireEnd, WireId, } from './model';
5
5
  export { compile, LIBRARY, getLibraryEntry, emptyInternalModel, resolvePlacement, transformPoint, transformOrientation, orientationVec, } from './compiler';
6
- export type { BusGeometry, ConnectivityNode, Diagnostic, InternalModel, ResolvedBus, ResolvedElement, ResolvedPlacement, TerminalGeometry, WireRender, } from './compiler';
6
+ export type { BusGeometry, ConnectivityNode, Diagnostic, InternalModel, ResolvedBus, ResolvedElement, ResolvedJunction, ResolvedPlacement, TerminalGeometry, WireRender, } from './compiler';
7
7
  export { useEditorStore } from './store';
8
8
  export type { EditorState } from './store';
9
- export { newBusId, newElementId, wireIdFromEnds, } from './store/id-allocator';
9
+ export { newBusId, newElementId, newJunctionId, wireIdFromEnds, } from './store/id-allocator';
10
10
  export { useLocale } from './i18n';
11
11
  export type { Locale } from './i18n';
12
12
  export { applyTheme, getInitialTheme } from './hooks/use-theme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5E,YAAY,EACV,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,OAAO,EACP,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKzE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5E,YAAY,EACV,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,OAAO,EACP,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKzE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"export-image.d.ts","sourceRoot":"","sources":["../../src/lib/export-image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAqB1D,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;iEAC6D;IAC7D,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,aAAkB,GACvB,MAAM,CA0GR;AAqHD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,SAAgB,EACxB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,SAAgB,EACxB,IAAI,CAAC,EAAE,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"export-image.d.ts","sourceRoot":"","sources":["../../src/lib/export-image.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAqB1D,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;iEAC6D;IAC7D,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,aAAkB,GACvB,MAAM,CAkHR;AAsHD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,SAAgB,EACxB,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,SAAgB,EACxB,IAAI,CAAC,EAAE,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1,4 +1,4 @@
1
- export type { AnnotationId, Bus, BusId, BusLayout, DiagramFile, DiagramMeta, DiagramVersion, Element, ElementId, LabelMode, NodeId, ParamValue, PinName, Placement, TerminalRef, TextAnnotation, Wire, WireEnd, WireId, } from './types';
1
+ export type { AnnotationId, Bus, BusId, BusLayout, DiagramFile, DiagramMeta, DiagramVersion, Element, ElementId, Junction, JunctionId, JunctionLayout, LabelMode, NodeId, ParamValue, PinName, Placement, TerminalRef, TextAnnotation, Wire, WireEnd, WireId, } from './types';
2
2
  export type { LibraryEntry, LibraryTerminal, LibraryStretchable, LibraryStateField, LibraryParamField, LibraryLabelAnchor, LibrarySource, Orientation, } from './library';
3
3
  export { normalizePath } from './wire-path';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACd,IAAI,EACJ,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACd,IAAI,EACJ,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -4,14 +4,17 @@ export type ElementId = string;
4
4
  export type PinName = string;
5
5
  export type NodeId = string;
6
6
  export type BusId = ElementId;
7
+ export type JunctionId = ElementId;
7
8
  export type WireId = string;
8
9
  /** "elementId.pinName" — dotted form for device pins. */
9
10
  export type TerminalRef = `${ElementId}.${PinName}`;
10
11
  /**
11
- * Either a device terminal ("X.Y") or a bare bus id ("X"). Disambiguated by
12
- * the presence of a `.` bus ids are never dotted.
12
+ * A wire endpoint. Either a device terminal ("X.Y") or a bare **node** id
13
+ * a bus id or a junction id. Disambiguated by the presence of a `.`: dotted is
14
+ * always a device pin, bare is a node resolved against `buses` then `junctions`
15
+ * (node ids share one namespace, so the two never collide).
13
16
  */
14
- export type WireEnd = TerminalRef | BusId;
17
+ export type WireEnd = TerminalRef | BusId | JunctionId;
15
18
  export type ParamValue = number | string | boolean;
16
19
  export type LabelMode = 'off' | 'id' | 'all';
17
20
  export interface DiagramFile {
@@ -21,7 +24,14 @@ export interface DiagramFile {
21
24
  elements: Element[];
22
25
  /** Bus collection. Each bus is a hyperedge node, not an element. */
23
26
  buses?: Bus[];
24
- /** Binary line segments between two endpoints (terminal pin or bare bus id). */
27
+ /**
28
+ * Junction collection. A junction is a free-standing point connection node —
29
+ * a first-class peer to `Bus` (it has geometry but no span). Wires meeting at
30
+ * a junction share one electrical node, so junctions back free point-to-point
31
+ * wiring without abusing buses.
32
+ */
33
+ junctions?: Junction[];
34
+ /** Binary line segments between two endpoints (terminal pin, bus, or junction). */
25
35
  wires?: Wire[];
26
36
  /** Device placements only. Bus geometry lives in `Bus.layout`. */
27
37
  layout?: Record<ElementId, Placement>;
@@ -57,6 +67,17 @@ export interface BusLayout {
57
67
  span: number;
58
68
  rot?: 0 | 90 | 180 | 270;
59
69
  }
70
+ export interface Junction {
71
+ id: JunctionId;
72
+ name?: string;
73
+ note?: string;
74
+ params?: Record<string, ParamValue>;
75
+ /** If absent, auto-layout computes the point (midpoint of wire neighbors). */
76
+ layout?: JunctionLayout;
77
+ }
78
+ export interface JunctionLayout {
79
+ at: [number, number];
80
+ }
60
81
  export interface Wire {
61
82
  id: WireId;
62
83
  ends: [WireEnd, WireEnd];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}