@tscircuit/schematic-viewer 1.1.9 → 1.1.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.
- package/dist/index.js +23575 -1378
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -0
- package/package.json +5 -8
- package/src/Schematic.tsx +2 -0
- package/src/lib/types/core.ts +17 -2
- package/src/lib/types/source-component.ts +5 -1
- package/src/lib/utils/collect-element-refs.ts +1 -0
- package/src/schematic-components/SVGPathComponent.tsx +2 -1
- package/src/schematic-components/SchematicComponent.tsx +2 -0
- package/src/schematic-components/SchematicElement.tsx +7 -0
- package/src/schematic-components/SchematicPath.tsx +51 -0
- package/src/stories/component-drawing-example.stories.tsx +17 -0
- package/src/stories/schematic-path.stories.tsx +40 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"inputs":{"node_modules/transformation-matrix/src/applyToPoint.js":{"bytes":822,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/fromObject.js":{"bytes":472,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/fromString.js":{"bytes":804,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/identity.js":{"bytes":168,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/inverse.js":{"bytes":516,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/utils.js":{"bytes":391,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/isAffineMatrix.js":{"bytes":581,"imports":[{"path":"node_modules/transformation-matrix/src/utils.js","kind":"import-statement","original":"./utils"}],"format":"esm"},"node_modules/transformation-matrix/src/translate.js":{"bytes":288,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/transform.js":{"bytes":1142,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/rotate.js":{"bytes":1216,"imports":[{"path":"node_modules/transformation-matrix/src/utils.js","kind":"import-statement","original":"./utils"},{"path":"node_modules/transformation-matrix/src/translate.js","kind":"import-statement","original":"./translate"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"}],"format":"esm"},"node_modules/transformation-matrix/src/scale.js":{"bytes":815,"imports":[{"path":"node_modules/transformation-matrix/src/utils.js","kind":"import-statement","original":"./utils"},{"path":"node_modules/transformation-matrix/src/translate.js","kind":"import-statement","original":"./translate"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"}],"format":"esm"},"node_modules/transformation-matrix/src/shear.js":{"bytes":264,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/skew.js":{"bytes":615,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/toString.js":{"bytes":898,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/smoothMatrix.js":{"bytes":723,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/fromTriangles.js":{"bytes":1742,"imports":[{"path":"node_modules/transformation-matrix/src/inverse.js","kind":"import-statement","original":"./inverse"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"},{"path":"node_modules/transformation-matrix/src/smoothMatrix.js","kind":"import-statement","original":"./smoothMatrix"}],"format":"esm"},"node_modules/transformation-matrix/src/fromDefinition.js":{"bytes":2973,"imports":[{"path":"node_modules/transformation-matrix/src/fromObject.js","kind":"import-statement","original":"./fromObject"},{"path":"node_modules/transformation-matrix/src/translate.js","kind":"import-statement","original":"./translate"},{"path":"node_modules/transformation-matrix/src/scale.js","kind":"import-statement","original":"./scale"},{"path":"node_modules/transformation-matrix/src/rotate.js","kind":"import-statement","original":"./rotate"},{"path":"node_modules/transformation-matrix/src/skew.js","kind":"import-statement","original":"./skew"},{"path":"node_modules/transformation-matrix/src/shear.js","kind":"import-statement","original":"./shear"}],"format":"esm"},"node_modules/transformation-matrix/src/fromTransformAttribute.autogenerated.js":{"bytes":34651,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/fromTransformAttribute.js":{"bytes":860,"imports":[{"path":"node_modules/transformation-matrix/src/fromTransformAttribute.autogenerated.js","kind":"import-statement","original":"./fromTransformAttribute.autogenerated"}],"format":"esm"},"node_modules/transformation-matrix/src/decompose.js":{"bytes":2247,"imports":[{"path":"node_modules/transformation-matrix/src/scale.js","kind":"import-statement","original":"./scale"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"}],"format":"esm"},"node_modules/transformation-matrix/src/flip.js":{"bytes":591,"imports":[],"format":"esm"},"node_modules/transformation-matrix/src/fromMovingPoints.js":{"bytes":2112,"imports":[{"path":"node_modules/transformation-matrix/src/translate.js","kind":"import-statement","original":"./translate"},{"path":"node_modules/transformation-matrix/src/applyToPoint.js","kind":"import-statement","original":"./applyToPoint"},{"path":"node_modules/transformation-matrix/src/rotate.js","kind":"import-statement","original":"./rotate"},{"path":"node_modules/transformation-matrix/src/scale.js","kind":"import-statement","original":"./scale"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"}],"format":"esm"},"node_modules/transformation-matrix/src/index.js":{"bytes":577,"imports":[{"path":"node_modules/transformation-matrix/src/applyToPoint.js","kind":"import-statement","original":"./applyToPoint"},{"path":"node_modules/transformation-matrix/src/fromObject.js","kind":"import-statement","original":"./fromObject"},{"path":"node_modules/transformation-matrix/src/fromString.js","kind":"import-statement","original":"./fromString"},{"path":"node_modules/transformation-matrix/src/identity.js","kind":"import-statement","original":"./identity"},{"path":"node_modules/transformation-matrix/src/inverse.js","kind":"import-statement","original":"./inverse"},{"path":"node_modules/transformation-matrix/src/isAffineMatrix.js","kind":"import-statement","original":"./isAffineMatrix"},{"path":"node_modules/transformation-matrix/src/rotate.js","kind":"import-statement","original":"./rotate"},{"path":"node_modules/transformation-matrix/src/scale.js","kind":"import-statement","original":"./scale"},{"path":"node_modules/transformation-matrix/src/shear.js","kind":"import-statement","original":"./shear"},{"path":"node_modules/transformation-matrix/src/skew.js","kind":"import-statement","original":"./skew"},{"path":"node_modules/transformation-matrix/src/toString.js","kind":"import-statement","original":"./toString"},{"path":"node_modules/transformation-matrix/src/transform.js","kind":"import-statement","original":"./transform"},{"path":"node_modules/transformation-matrix/src/translate.js","kind":"import-statement","original":"./translate"},{"path":"node_modules/transformation-matrix/src/fromTriangles.js","kind":"import-statement","original":"./fromTriangles"},{"path":"node_modules/transformation-matrix/src/smoothMatrix.js","kind":"import-statement","original":"./smoothMatrix"},{"path":"node_modules/transformation-matrix/src/fromDefinition.js","kind":"import-statement","original":"./fromDefinition"},{"path":"node_modules/transformation-matrix/src/fromTransformAttribute.js","kind":"import-statement","original":"./fromTransformAttribute"},{"path":"node_modules/transformation-matrix/src/decompose.js","kind":"import-statement","original":"./decompose"},{"path":"node_modules/transformation-matrix/src/flip.js","kind":"import-statement","original":"./flip"},{"path":"node_modules/transformation-matrix/src/fromMovingPoints.js","kind":"import-statement","original":"./fromMovingPoints"}],"format":"esm"},"node_modules/@tscircuit/sparkfun-packages/dist/index.js":{"bytes":53208,"imports":[],"format":"cjs"},"node_modules/parsel-js/dist/parsel.min.js":{"bytes":4552,"imports":[],"format":"esm"},"node_modules/glpk.js/dist/glpk.js":{"bytes":52312,"imports":[{"path":"path","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"crypto","kind":"require-call","external":true}],"format":"cjs"},"node_modules/rsmt-ts/dist/index.js":{"bytes":45177,"imports":[{"path":"node_modules/glpk.js/dist/glpk.js","kind":"require-call","original":"glpk.js"}],"format":"cjs"},"node_modules/rectilinear-router/dist/index.js":{"bytes":2470,"imports":[{"path":"node_modules/rsmt-ts/dist/index.js","kind":"require-call","original":"rsmt-ts"}],"format":"cjs"},"node_modules/heap/lib/heap.js":{"bytes":8393,"imports":[],"format":"cjs"},"node_modules/heap/index.js":{"bytes":40,"imports":[{"path":"node_modules/heap/lib/heap.js","kind":"require-call","original":"./lib/heap"}],"format":"cjs"},"node_modules/pathfinding/src/core/Node.js":{"bytes":807,"imports":[],"format":"cjs"},"node_modules/pathfinding/src/core/DiagonalMovement.js":{"bytes":154,"imports":[],"format":"cjs"},"node_modules/pathfinding/src/core/Grid.js":{"bytes":6666,"imports":[{"path":"node_modules/pathfinding/src/core/Node.js","kind":"require-call","original":"./Node"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"./DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/core/Util.js":{"bytes":6207,"imports":[],"format":"cjs"},"node_modules/pathfinding/src/core/Heuristic.js":{"bytes":1140,"imports":[],"format":"cjs"},"node_modules/pathfinding/src/finders/AStarFinder.js":{"bytes":4753,"imports":[{"path":"node_modules/heap/index.js","kind":"require-call","original":"heap"},{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/Heuristic.js","kind":"require-call","original":"../core/Heuristic"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BestFirstFinder.js":{"bytes":957,"imports":[{"path":"node_modules/pathfinding/src/finders/AStarFinder.js","kind":"require-call","original":"./AStarFinder"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BreadthFirstFinder.js":{"bytes":2562,"imports":[{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/DijkstraFinder.js":{"bytes":775,"imports":[{"path":"node_modules/pathfinding/src/finders/AStarFinder.js","kind":"require-call","original":"./AStarFinder"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BiAStarFinder.js":{"bytes":6860,"imports":[{"path":"node_modules/heap/index.js","kind":"require-call","original":"heap"},{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/Heuristic.js","kind":"require-call","original":"../core/Heuristic"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BiBestFirstFinder.js":{"bytes":993,"imports":[{"path":"node_modules/pathfinding/src/finders/BiAStarFinder.js","kind":"require-call","original":"./BiAStarFinder"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BiBreadthFirstFinder.js":{"bytes":3676,"imports":[{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/BiDijkstraFinder.js":{"bytes":810,"imports":[{"path":"node_modules/pathfinding/src/finders/BiAStarFinder.js","kind":"require-call","original":"./BiAStarFinder"}],"format":"cjs"},"node_modules/pathfinding/src/finders/IDAStarFinder.js":{"bytes":7236,"imports":[{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/Heuristic.js","kind":"require-call","original":"../core/Heuristic"},{"path":"node_modules/pathfinding/src/core/Node.js","kind":"require-call","original":"../core/Node"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JumpPointFinderBase.js":{"bytes":3553,"imports":[{"path":"node_modules/heap/index.js","kind":"require-call","original":"heap"},{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"../core/Util"},{"path":"node_modules/pathfinding/src/core/Heuristic.js","kind":"require-call","original":"../core/Heuristic"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JPFNeverMoveDiagonally.js":{"bytes":3858,"imports":[{"path":"node_modules/pathfinding/src/finders/JumpPointFinderBase.js","kind":"require-call","original":"./JumpPointFinderBase"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JPFAlwaysMoveDiagonally.js":{"bytes":5030,"imports":[{"path":"node_modules/pathfinding/src/finders/JumpPointFinderBase.js","kind":"require-call","original":"./JumpPointFinderBase"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfNoObstacles.js":{"bytes":6178,"imports":[{"path":"node_modules/pathfinding/src/finders/JumpPointFinderBase.js","kind":"require-call","original":"./JumpPointFinderBase"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfAtMostOneObstacle.js":{"bytes":5503,"imports":[{"path":"node_modules/pathfinding/src/finders/JumpPointFinderBase.js","kind":"require-call","original":"./JumpPointFinderBase"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"}],"format":"cjs"},"node_modules/pathfinding/src/finders/JumpPointFinder.js":{"bytes":1296,"imports":[{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"../core/DiagonalMovement"},{"path":"node_modules/pathfinding/src/finders/JPFNeverMoveDiagonally.js","kind":"require-call","original":"./JPFNeverMoveDiagonally"},{"path":"node_modules/pathfinding/src/finders/JPFAlwaysMoveDiagonally.js","kind":"require-call","original":"./JPFAlwaysMoveDiagonally"},{"path":"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfNoObstacles.js","kind":"require-call","original":"./JPFMoveDiagonallyIfNoObstacles"},{"path":"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfAtMostOneObstacle.js","kind":"require-call","original":"./JPFMoveDiagonallyIfAtMostOneObstacle"}],"format":"cjs"},"node_modules/pathfinding/src/PathFinding.js":{"bytes":1120,"imports":[{"path":"node_modules/heap/index.js","kind":"require-call","original":"heap"},{"path":"node_modules/pathfinding/src/core/Node.js","kind":"require-call","original":"./core/Node"},{"path":"node_modules/pathfinding/src/core/Grid.js","kind":"require-call","original":"./core/Grid"},{"path":"node_modules/pathfinding/src/core/Util.js","kind":"require-call","original":"./core/Util"},{"path":"node_modules/pathfinding/src/core/DiagonalMovement.js","kind":"require-call","original":"./core/DiagonalMovement"},{"path":"node_modules/pathfinding/src/core/Heuristic.js","kind":"require-call","original":"./core/Heuristic"},{"path":"node_modules/pathfinding/src/finders/AStarFinder.js","kind":"require-call","original":"./finders/AStarFinder"},{"path":"node_modules/pathfinding/src/finders/BestFirstFinder.js","kind":"require-call","original":"./finders/BestFirstFinder"},{"path":"node_modules/pathfinding/src/finders/BreadthFirstFinder.js","kind":"require-call","original":"./finders/BreadthFirstFinder"},{"path":"node_modules/pathfinding/src/finders/DijkstraFinder.js","kind":"require-call","original":"./finders/DijkstraFinder"},{"path":"node_modules/pathfinding/src/finders/BiAStarFinder.js","kind":"require-call","original":"./finders/BiAStarFinder"},{"path":"node_modules/pathfinding/src/finders/BiBestFirstFinder.js","kind":"require-call","original":"./finders/BiBestFirstFinder"},{"path":"node_modules/pathfinding/src/finders/BiBreadthFirstFinder.js","kind":"require-call","original":"./finders/BiBreadthFirstFinder"},{"path":"node_modules/pathfinding/src/finders/BiDijkstraFinder.js","kind":"require-call","original":"./finders/BiDijkstraFinder"},{"path":"node_modules/pathfinding/src/finders/IDAStarFinder.js","kind":"require-call","original":"./finders/IDAStarFinder"},{"path":"node_modules/pathfinding/src/finders/JumpPointFinder.js","kind":"require-call","original":"./finders/JumpPointFinder"}],"format":"cjs"},"node_modules/pathfinding/index.js":{"bytes":48,"imports":[{"path":"node_modules/pathfinding/src/PathFinding.js","kind":"require-call","original":"./src/PathFinding"}],"format":"cjs"},"node_modules/@tscircuit/routing/dist/index.js":{"bytes":22825,"imports":[{"path":"node_modules/pathfinding/index.js","kind":"require-call","original":"pathfinding"}],"format":"cjs"},"node_modules/lodash._objecttypes/index.js":{"bytes":650,"imports":[],"format":"cjs"},"node_modules/lodash.isobject/index.js":{"bytes":1186,"imports":[{"path":"node_modules/lodash._objecttypes/index.js","kind":"require-call","original":"lodash._objecttypes"}],"format":"cjs"},"node_modules/lodash._renative/index.js":{"bytes":801,"imports":[],"format":"cjs"},"node_modules/lodash._shimkeys/index.js":{"bytes":1225,"imports":[{"path":"node_modules/lodash._objecttypes/index.js","kind":"require-call","original":"lodash._objecttypes"}],"format":"cjs"},"node_modules/lodash.keys/index.js":{"bytes":1253,"imports":[{"path":"node_modules/lodash.isobject/index.js","kind":"require-call","original":"lodash.isobject"},{"path":"node_modules/lodash._renative/index.js","kind":"require-call","original":"lodash._renative"},{"path":"node_modules/lodash._shimkeys/index.js","kind":"require-call","original":"lodash._shimkeys"}],"format":"cjs"},"node_modules/lodash.noop/index.js":{"bytes":670,"imports":[],"format":"cjs"},"node_modules/lodash._basecreate/index.js":{"bytes":1432,"imports":[{"path":"node_modules/lodash.isobject/index.js","kind":"require-call","original":"lodash.isobject"},{"path":"node_modules/lodash.noop/index.js","kind":"require-call","original":"lodash.noop"},{"path":"node_modules/lodash._renative/index.js","kind":"require-call","original":"lodash._renative"}],"format":"cjs"},"node_modules/lodash._setbinddata/index.js":{"bytes":1298,"imports":[{"path":"node_modules/lodash.noop/index.js","kind":"require-call","original":"lodash.noop"},{"path":"node_modules/lodash._renative/index.js","kind":"require-call","original":"lodash._renative"}],"format":"cjs"},"node_modules/lodash._basebind/index.js":{"bytes":1800,"imports":[{"path":"node_modules/lodash._basecreate/index.js","kind":"require-call","original":"lodash._basecreate"},{"path":"node_modules/lodash.isobject/index.js","kind":"require-call","original":"lodash.isobject"},{"path":"node_modules/lodash._setbinddata/index.js","kind":"require-call","original":"lodash._setbinddata"}],"format":"cjs"},"node_modules/lodash._slice/index.js":{"bytes":1210,"imports":[],"format":"cjs"},"node_modules/lodash._basecreatewrapper/index.js":{"bytes":2350,"imports":[{"path":"node_modules/lodash._basecreate/index.js","kind":"require-call","original":"lodash._basecreate"},{"path":"node_modules/lodash.isobject/index.js","kind":"require-call","original":"lodash.isobject"},{"path":"node_modules/lodash._setbinddata/index.js","kind":"require-call","original":"lodash._setbinddata"},{"path":"node_modules/lodash._slice/index.js","kind":"require-call","original":"lodash._slice"}],"format":"cjs"},"node_modules/lodash.isfunction/index.js":{"bytes":774,"imports":[],"format":"cjs"},"node_modules/lodash._createwrapper/index.js":{"bytes":3331,"imports":[{"path":"node_modules/lodash._basebind/index.js","kind":"require-call","original":"lodash._basebind"},{"path":"node_modules/lodash._basecreatewrapper/index.js","kind":"require-call","original":"lodash._basecreatewrapper"},{"path":"node_modules/lodash.isfunction/index.js","kind":"require-call","original":"lodash.isfunction"}],"format":"cjs"},"node_modules/lodash.bind/index.js":{"bytes":1391,"imports":[{"path":"node_modules/lodash._createwrapper/index.js","kind":"require-call","original":"lodash._createwrapper"},{"path":"node_modules/lodash._renative/index.js","kind":"require-call","original":"lodash._renative"},{"path":"node_modules/lodash._slice/index.js","kind":"require-call","original":"lodash._slice"}],"format":"cjs"},"node_modules/lodash.identity/index.js":{"bytes":766,"imports":[],"format":"cjs"},"node_modules/lodash.support/index.js":{"bytes":1147,"imports":[{"path":"node_modules/lodash._renative/index.js","kind":"require-call","original":"lodash._renative"}],"format":"cjs"},"node_modules/lodash._basecreatecallback/index.js":{"bytes":2735,"imports":[{"path":"node_modules/lodash.bind/index.js","kind":"require-call","original":"lodash.bind"},{"path":"node_modules/lodash.identity/index.js","kind":"require-call","original":"lodash.identity"},{"path":"node_modules/lodash._setbinddata/index.js","kind":"require-call","original":"lodash._setbinddata"},{"path":"node_modules/lodash.support/index.js","kind":"require-call","original":"lodash.support"}],"format":"cjs"},"node_modules/lodash.forown/index.js":{"bytes":1987,"imports":[{"path":"node_modules/lodash._basecreatecallback/index.js","kind":"require-call","original":"lodash._basecreatecallback"},{"path":"node_modules/lodash.keys/index.js","kind":"require-call","original":"lodash.keys"},{"path":"node_modules/lodash._objecttypes/index.js","kind":"require-call","original":"lodash._objecttypes"}],"format":"cjs"},"node_modules/lodash.foreach/index.js":{"bytes":2135,"imports":[{"path":"node_modules/lodash._basecreatecallback/index.js","kind":"require-call","original":"lodash._basecreatecallback"},{"path":"node_modules/lodash.forown/index.js","kind":"require-call","original":"lodash.forown"}],"format":"cjs"},"node_modules/convert-units/lib/definitions/length.js":{"bytes":1196,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/area.js":{"bytes":1367,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/mass.js":{"bytes":1056,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/volume.js":{"bytes":2958,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/each.js":{"bytes":352,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/temperature.js":{"bytes":845,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/time.js":{"bytes":1241,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/digital.js":{"bytes":1249,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/partsPer.js":{"bytes":696,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/speed.js":{"bytes":889,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/pace.js":{"bytes":782,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/pressure.js":{"bytes":1163,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/current.js":{"bytes":454,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/voltage.js":{"bytes":442,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/power.js":{"bytes":651,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/reactivePower.js":{"bytes":847,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/apparentPower.js":{"bytes":751,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/energy.js":{"bytes":918,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/reactiveEnergy.js":{"bytes":906,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/volumeFlowRate.js":{"bytes":5189,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/illuminance.js":{"bytes":472,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/frequency.js":{"bytes":1204,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/definitions/angle.js":{"bytes":662,"imports":[],"format":"cjs"},"node_modules/convert-units/lib/index.js":{"bytes":7567,"imports":[{"path":"node_modules/lodash.keys/index.js","kind":"require-call","original":"lodash.keys"},{"path":"node_modules/lodash.foreach/index.js","kind":"require-call","original":"lodash.foreach"},{"path":"node_modules/convert-units/lib/definitions/length.js","kind":"require-call","original":"./definitions/length"},{"path":"node_modules/convert-units/lib/definitions/area.js","kind":"require-call","original":"./definitions/area"},{"path":"node_modules/convert-units/lib/definitions/mass.js","kind":"require-call","original":"./definitions/mass"},{"path":"node_modules/convert-units/lib/definitions/volume.js","kind":"require-call","original":"./definitions/volume"},{"path":"node_modules/convert-units/lib/definitions/each.js","kind":"require-call","original":"./definitions/each"},{"path":"node_modules/convert-units/lib/definitions/temperature.js","kind":"require-call","original":"./definitions/temperature"},{"path":"node_modules/convert-units/lib/definitions/time.js","kind":"require-call","original":"./definitions/time"},{"path":"node_modules/convert-units/lib/definitions/digital.js","kind":"require-call","original":"./definitions/digital"},{"path":"node_modules/convert-units/lib/definitions/partsPer.js","kind":"require-call","original":"./definitions/partsPer"},{"path":"node_modules/convert-units/lib/definitions/speed.js","kind":"require-call","original":"./definitions/speed"},{"path":"node_modules/convert-units/lib/definitions/pace.js","kind":"require-call","original":"./definitions/pace"},{"path":"node_modules/convert-units/lib/definitions/pressure.js","kind":"require-call","original":"./definitions/pressure"},{"path":"node_modules/convert-units/lib/definitions/current.js","kind":"require-call","original":"./definitions/current"},{"path":"node_modules/convert-units/lib/definitions/voltage.js","kind":"require-call","original":"./definitions/voltage"},{"path":"node_modules/convert-units/lib/definitions/power.js","kind":"require-call","original":"./definitions/power"},{"path":"node_modules/convert-units/lib/definitions/reactivePower.js","kind":"require-call","original":"./definitions/reactivePower"},{"path":"node_modules/convert-units/lib/definitions/apparentPower.js","kind":"require-call","original":"./definitions/apparentPower"},{"path":"node_modules/convert-units/lib/definitions/energy.js","kind":"require-call","original":"./definitions/energy"},{"path":"node_modules/convert-units/lib/definitions/reactiveEnergy.js","kind":"require-call","original":"./definitions/reactiveEnergy"},{"path":"node_modules/convert-units/lib/definitions/volumeFlowRate.js","kind":"require-call","original":"./definitions/volumeFlowRate"},{"path":"node_modules/convert-units/lib/definitions/illuminance.js","kind":"require-call","original":"./definitions/illuminance"},{"path":"node_modules/convert-units/lib/definitions/frequency.js","kind":"require-call","original":"./definitions/frequency"},{"path":"node_modules/convert-units/lib/definitions/angle.js","kind":"require-call","original":"./definitions/angle"}],"format":"cjs"},"node_modules/@lume/kiwi/es/maptype.js":{"bytes":4441,"imports":[],"format":"esm"},"node_modules/@lume/kiwi/es/variable.js":{"bytes":3811,"imports":[{"path":"node_modules/@lume/kiwi/es/expression.js","kind":"import-statement","original":"./expression.js"}],"format":"esm"},"node_modules/@lume/kiwi/es/expression.js":{"bytes":5663,"imports":[{"path":"node_modules/@lume/kiwi/es/maptype.js","kind":"import-statement","original":"./maptype.js"},{"path":"node_modules/@lume/kiwi/es/variable.js","kind":"import-statement","original":"./variable.js"}],"format":"esm"},"node_modules/@lume/kiwi/es/strength.js":{"bytes":1663,"imports":[],"format":"esm"},"node_modules/@lume/kiwi/es/constraint.js":{"bytes":2892,"imports":[{"path":"node_modules/@lume/kiwi/es/expression.js","kind":"import-statement","original":"./expression.js"},{"path":"node_modules/@lume/kiwi/es/strength.js","kind":"import-statement","original":"./strength.js"}],"format":"esm"},"node_modules/@lume/kiwi/es/solver.js":{"bytes":33876,"imports":[{"path":"node_modules/@lume/kiwi/es/constraint.js","kind":"import-statement","original":"./constraint.js"},{"path":"node_modules/@lume/kiwi/es/expression.js","kind":"import-statement","original":"./expression.js"},{"path":"node_modules/@lume/kiwi/es/maptype.js","kind":"import-statement","original":"./maptype.js"},{"path":"node_modules/@lume/kiwi/es/strength.js","kind":"import-statement","original":"./strength.js"}],"format":"esm"},"node_modules/@lume/kiwi/es/kiwi.js":{"bytes":524,"imports":[{"path":"node_modules/@lume/kiwi/es/constraint.js","kind":"import-statement","original":"./constraint.js"},{"path":"node_modules/@lume/kiwi/es/expression.js","kind":"import-statement","original":"./expression.js"},{"path":"node_modules/@lume/kiwi/es/solver.js","kind":"import-statement","original":"./solver.js"},{"path":"node_modules/@lume/kiwi/es/strength.js","kind":"import-statement","original":"./strength.js"},{"path":"node_modules/@lume/kiwi/es/variable.js","kind":"import-statement","original":"./variable.js"}],"format":"esm"},"node_modules/@tscircuit/builder/dist/index.js":{"bytes":440649,"imports":[{"path":"node_modules/transformation-matrix/src/index.js","kind":"import-statement","original":"transformation-matrix"},{"path":"node_modules/@tscircuit/sparkfun-packages/dist/index.js","kind":"import-statement","original":"@tscircuit/sparkfun-packages"},{"path":"node_modules/parsel-js/dist/parsel.min.js","kind":"import-statement","original":"parsel-js"},{"path":"node_modules/rectilinear-router/dist/index.js","kind":"import-statement","original":"rectilinear-router"},{"path":"node_modules/@tscircuit/routing/dist/index.js","kind":"import-statement","original":"@tscircuit/routing"},{"path":"node_modules/convert-units/lib/index.js","kind":"import-statement","original":"convert-units"},{"path":"node_modules/@lume/kiwi/es/kiwi.js","kind":"import-statement","original":"@lume/kiwi"}],"format":"esm"},"src/lib/utils/collect-element-refs.ts":{"bytes":782,"imports":[{"path":"@tscircuit/builder","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicGroup.tsx":{"bytes":54,"imports":[],"format":"esm"},"node_modules/zustand/esm/vanilla.js":{"bytes":911,"imports":[],"format":"esm"},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js":{"bytes":1045,"imports":[{"path":"react","kind":"require-call","external":true}],"format":"cjs"},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js":{"bytes":8420,"imports":[{"path":"react","kind":"require-call","external":true}],"format":"cjs"},"node_modules/use-sync-external-store/shim/index.js":{"bytes":238,"imports":[{"path":"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","kind":"require-call","original":"../cjs/use-sync-external-store-shim.production.min.js"},{"path":"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","kind":"require-call","original":"../cjs/use-sync-external-store-shim.development.js"}],"format":"cjs"},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js":{"bytes":1107,"imports":[{"path":"react","kind":"require-call","external":true},{"path":"node_modules/use-sync-external-store/shim/index.js","kind":"require-call","original":"use-sync-external-store/shim"}],"format":"cjs"},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js":{"bytes":5695,"imports":[{"path":"react","kind":"require-call","external":true},{"path":"node_modules/use-sync-external-store/shim/index.js","kind":"require-call","original":"use-sync-external-store/shim"}],"format":"cjs"},"node_modules/use-sync-external-store/shim/with-selector.js":{"bytes":266,"imports":[{"path":"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","kind":"require-call","original":"../cjs/use-sync-external-store-shim/with-selector.production.min.js"},{"path":"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","kind":"require-call","original":"../cjs/use-sync-external-store-shim/with-selector.development.js"}],"format":"cjs"},"node_modules/zustand/esm/index.js":{"bytes":1049,"imports":[{"path":"node_modules/zustand/esm/vanilla.js","kind":"import-statement","original":"zustand/vanilla"},{"path":"node_modules/zustand/esm/vanilla.js","kind":"import-statement","original":"zustand/vanilla"},{"path":"node_modules/zustand/esm/vanilla.js","kind":"import-statement","original":"zustand/vanilla"},{"path":"react","kind":"import-statement","external":true},{"path":"node_modules/use-sync-external-store/shim/with-selector.js","kind":"import-statement","original":"use-sync-external-store/shim/with-selector.js"}],"format":"esm"},"src/lib/render-context/index.ts":{"bytes":520,"imports":[{"path":"node_modules/zustand/esm/index.js","kind":"import-statement","original":"zustand"},{"path":"node_modules/transformation-matrix/src/index.js","kind":"import-statement","original":"transformation-matrix"}],"format":"esm"},"node_modules/parse-svg-path/index.js":{"bytes":1204,"imports":[],"format":"cjs"},"node_modules/abs-svg-path/index.js":{"bytes":991,"imports":[],"format":"cjs"},"node_modules/svg-arc-to-cubic-bezier/modules/index.js":{"bytes":5457,"imports":[],"format":"esm"},"node_modules/normalize-svg-path/index.js":{"bytes":2797,"imports":[{"path":"node_modules/svg-arc-to-cubic-bezier/modules/index.js","kind":"require-call","original":"svg-arc-to-cubic-bezier"}],"format":"cjs"},"node_modules/is-svg-path/index.js":{"bytes":310,"imports":[],"format":"cjs"},"node_modules/svg-path-bounds/index.js":{"bytes":1204,"imports":[{"path":"node_modules/parse-svg-path/index.js","kind":"require-call","original":"parse-svg-path"},{"path":"node_modules/abs-svg-path/index.js","kind":"require-call","original":"abs-svg-path"},{"path":"node_modules/normalize-svg-path/index.js","kind":"require-call","original":"normalize-svg-path"},{"path":"node_modules/is-svg-path/index.js","kind":"require-call","original":"is-svg-path"}],"format":"cjs"},"src/lib/utils/get-svg-path-bounds.ts":{"bytes":559,"imports":[{"path":"node_modules/svg-path-bounds/index.js","kind":"import-statement","original":"svg-path-bounds"}],"format":"esm"},"src/schematic-components/SVGPathComponent.tsx":{"bytes":1982,"imports":[{"path":"src/lib/render-context/index.ts","kind":"import-statement","original":"lib/render-context"},{"path":"src/lib/utils/get-svg-path-bounds.ts","kind":"import-statement","original":"lib/utils/get-svg-path-bounds"},{"path":"node_modules/transformation-matrix/src/index.js","kind":"import-statement","original":"transformation-matrix"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimpleResistor.tsx":{"bytes":626,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimpleCapacitor.tsx":{"bytes":733,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/hooks/use-maybe-promise.ts":{"bytes":367,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/lib/hooks/index.ts":{"bytes":36,"imports":[{"path":"src/lib/hooks/use-maybe-promise.ts","kind":"import-statement","original":"./use-maybe-promise"}],"format":"esm"},"src/schematic-components/ProjectComponent.tsx":{"bytes":1896,"imports":[{"path":"src/lib/hooks/index.ts","kind":"import-statement","original":"lib/hooks"},{"path":"node_modules/@tscircuit/builder/dist/index.js","kind":"import-statement","original":"@tscircuit/builder"},{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"./"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/utils/direction-to-vec.ts":{"bytes":1642,"imports":[],"format":"esm"},"src/schematic-components/SchematicPort.tsx":{"bytes":943,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/lib/utils/direction-to-vec.ts","kind":"import-statement","original":"lib/utils/direction-to-vec"},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"./"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"node_modules/debounce/index.js":{"bytes":1843,"imports":[],"format":"cjs"},"node_modules/react-use-measure/dist/web.js":{"bytes":5369,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"node_modules/debounce/index.js","kind":"import-statement","original":"debounce"}],"format":"esm"},"src/schematic-components/SchematicText.tsx":{"bytes":1170,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"./SVGPathComponent","kind":"import-statement","external":true},{"path":"svg-path-generator","kind":"import-statement","external":true},{"path":"lib/utils/get-svg-path-bounds","kind":"import-statement","external":true},{"path":"src/lib/render-context/index.ts","kind":"import-statement","original":"lib/render-context"},{"path":"node_modules/transformation-matrix/src/index.js","kind":"import-statement","original":"transformation-matrix"},{"path":"node_modules/react-use-measure/dist/web.js","kind":"import-statement","original":"react-use-measure"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"node_modules/svg-path-generator/lib/svg-path-generator.js":{"bytes":1953,"imports":[],"format":"cjs"},"node_modules/svg-path-generator/index.js":{"bytes":56,"imports":[{"path":"node_modules/svg-path-generator/lib/svg-path-generator.js","kind":"require-call","original":"./lib/svg-path-generator"}],"format":"cjs"},"src/schematic-components/RenderError.tsx":{"bytes":370,"imports":[{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicTrace.tsx":{"bytes":1274,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"node_modules/svg-path-generator/index.js","kind":"import-statement","original":"svg-path-generator"},{"path":"src/lib/utils/get-svg-path-bounds.ts","kind":"import-statement","original":"lib/utils/get-svg-path-bounds"},{"path":"src/schematic-components/RenderError.tsx","kind":"import-statement","original":"./RenderError"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicBug.tsx":{"bytes":2193,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"lodash/range","kind":"import-statement","external":true},{"path":"node_modules/@tscircuit/builder/dist/index.js","kind":"import-statement","original":"@tscircuit/builder"},{"path":"src/lib/utils/get-svg-path-bounds.ts","kind":"import-statement","original":"lib/utils/get-svg-path-bounds"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimplePowerSource.tsx":{"bytes":632,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimpleGround.tsx":{"bytes":614,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimpleInductor.tsx":{"bytes":897,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SimpleDiode.tsx":{"bytes":1059,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/index.tsx":{"bytes":530,"imports":[{"path":"src/schematic-components/SchematicGroup.tsx","kind":"import-statement","original":"./SchematicGroup"},{"path":"src/schematic-components/SimpleResistor.tsx","kind":"import-statement","original":"./SimpleResistor"},{"path":"src/schematic-components/SimpleCapacitor.tsx","kind":"import-statement","original":"./SimpleCapacitor"},{"path":"src/schematic-components/SVGPathComponent.tsx","kind":"import-statement","original":"./SVGPathComponent"},{"path":"src/schematic-components/ProjectComponent.tsx","kind":"import-statement","original":"./ProjectComponent"},{"path":"src/schematic-components/SchematicComponent.tsx","kind":"import-statement","original":"./SchematicComponent"},{"path":"src/schematic-components/SchematicPort.tsx","kind":"import-statement","original":"./SchematicPort"},{"path":"src/schematic-components/SchematicText.tsx","kind":"import-statement","original":"./SchematicText"},{"path":"src/schematic-components/ProjectComponent.tsx","kind":"import-statement","original":"./ProjectComponent"},{"path":"src/schematic-components/SchematicTrace.tsx","kind":"import-statement","original":"./SchematicTrace"},{"path":"src/schematic-components/SchematicBug.tsx","kind":"import-statement","original":"./SchematicBug"},{"path":"src/schematic-components/SimplePowerSource.tsx","kind":"import-statement","original":"./SimplePowerSource"},{"path":"src/schematic-components/SimpleGround.tsx","kind":"import-statement","original":"./SimpleGround"},{"path":"src/schematic-components/SimpleInductor.tsx","kind":"import-statement","original":"./SimpleInductor"},{"path":"src/schematic-components/RenderError.tsx","kind":"import-statement","original":"./RenderError"},{"path":"src/schematic-components/SimpleDiode.tsx","kind":"import-statement","original":"./SimpleDiode"}],"format":"esm"},"src/schematic-components/SchematicComponent.tsx":{"bytes":1453,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"./"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicBox.tsx":{"bytes":649,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"lib/utils/direction-to-vec","kind":"import-statement","external":true},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"./"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicLine.tsx":{"bytes":1198,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"lib/utils/direction-to-vec","kind":"import-statement","external":true},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"."},{"path":"node_modules/svg-path-generator/index.js","kind":"import-statement","original":"svg-path-generator"},{"path":"src/lib/utils/get-svg-path-bounds.ts","kind":"import-statement","original":"lib/utils/get-svg-path-bounds"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicPath.tsx":{"bytes":1298,"imports":[{"path":"lib/types","kind":"import-statement","external":true},{"path":"lib/utils/direction-to-vec","kind":"import-statement","external":true},{"path":"src/schematic-components/index.tsx","kind":"import-statement","original":"."},{"path":"node_modules/svg-path-generator/index.js","kind":"import-statement","original":"svg-path-generator"},{"path":"src/lib/utils/get-svg-path-bounds.ts","kind":"import-statement","original":"lib/utils/get-svg-path-bounds"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/SchematicElement.tsx":{"bytes":2089,"imports":[{"path":"@tscircuit/builder","kind":"import-statement","external":true},{"path":"src/lib/utils/collect-element-refs.ts","kind":"import-statement","original":"lib/utils/collect-element-refs"},{"path":"src/schematic-components/SchematicComponent.tsx","kind":"import-statement","original":"./SchematicComponent"},{"path":"src/schematic-components/SchematicPort.tsx","kind":"import-statement","original":"./SchematicPort"},{"path":"src/schematic-components/SchematicText.tsx","kind":"import-statement","original":"./SchematicText"},{"path":"src/schematic-components/SchematicBox.tsx","kind":"import-statement","original":"./SchematicBox"},{"path":"src/schematic-components/SchematicTrace.tsx","kind":"import-statement","original":"./SchematicTrace"},{"path":"src/schematic-components/SchematicLine.tsx","kind":"import-statement","original":"./SchematicLine"},{"path":"src/schematic-components/RenderError.tsx","kind":"import-statement","original":"./RenderError"},{"path":"src/schematic-components/SchematicPath.tsx","kind":"import-statement","original":"./SchematicPath"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/schematic-components/TableViewer.tsx":{"bytes":345,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@tscircuit/table-viewer","kind":"dynamic-import","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/Schematic.tsx":{"bytes":4479,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"schematic-components","kind":"import-statement","external":true},{"path":"react-supergrid","kind":"import-statement","external":true},{"path":"node_modules/@tscircuit/builder/dist/index.js","kind":"import-statement","original":"@tscircuit/builder"},{"path":"node_modules/@tscircuit/builder/dist/index.js","kind":"import-statement","original":"@tscircuit/builder"},{"path":"@tscircuit/react-fiber","kind":"import-statement","external":true},{"path":"src/schematic-components/SchematicElement.tsx","kind":"import-statement","original":"schematic-components/SchematicElement"},{"path":"lib/utils/collect-element-refs","kind":"import-statement","external":true},{"path":"use-mouse-matrix-transform","kind":"import-statement","external":true},{"path":"react-error-boundary","kind":"import-statement","external":true},{"path":"node_modules/transformation-matrix/src/index.js","kind":"import-statement","original":"transformation-matrix"},{"path":"src/lib/render-context/index.ts","kind":"import-statement","original":"lib/render-context"},{"path":"node_modules/react-use-measure/dist/web.js","kind":"import-statement","original":"react-use-measure"},{"path":"src/schematic-components/TableViewer.tsx","kind":"import-statement","original":"./schematic-components/TableViewer"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":28,"imports":[{"path":"src/Schematic.tsx","kind":"import-statement","original":"./Schematic"}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2065279},"dist/index.js":{"imports":[{"path":"path","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"fs","kind":"require-call","external":true},{"path":"path","kind":"require-call","external":true},{"path":"crypto","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react-supergrid","kind":"require-call","external":true},{"path":"@tscircuit/react-fiber","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"use-mouse-matrix-transform","kind":"require-call","external":true},{"path":"react-error-boundary","kind":"require-call","external":true},{"path":"react","kind":"require-call","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true},{"path":"@tscircuit/table-viewer","kind":"dynamic-import","external":true},{"path":"react/jsx-runtime","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"node_modules/@tscircuit/sparkfun-packages/dist/index.js":{"bytesInOutput":68255},"node_modules/glpk.js/dist/glpk.js":{"bytesInOutput":81318},"node_modules/rsmt-ts/dist/index.js":{"bytesInOutput":52416},"node_modules/rectilinear-router/dist/index.js":{"bytesInOutput":2682},"node_modules/heap/lib/heap.js":{"bytesInOutput":8256},"node_modules/heap/index.js":{"bytesInOutput":130},"node_modules/pathfinding/src/core/Node.js":{"bytesInOutput":273},"node_modules/pathfinding/src/core/DiagonalMovement.js":{"bytesInOutput":298},"node_modules/pathfinding/src/core/Grid.js":{"bytesInOutput":3991},"node_modules/pathfinding/src/core/Util.js":{"bytesInOutput":3878},"node_modules/pathfinding/src/core/Heuristic.js":{"bytesInOutput":1260},"node_modules/pathfinding/src/finders/AStarFinder.js":{"bytesInOutput":2797},"node_modules/pathfinding/src/finders/BestFirstFinder.js":{"bytesInOutput":523},"node_modules/pathfinding/src/finders/BreadthFirstFinder.js":{"bytesInOutput":1769},"node_modules/pathfinding/src/finders/DijkstraFinder.js":{"bytesInOutput":466},"node_modules/pathfinding/src/finders/BiAStarFinder.js":{"bytesInOutput":4078},"node_modules/pathfinding/src/finders/BiBestFirstFinder.js":{"bytesInOutput":545},"node_modules/pathfinding/src/finders/BiBreadthFirstFinder.js":{"bytesInOutput":2718},"node_modules/pathfinding/src/finders/BiDijkstraFinder.js":{"bytesInOutput":488},"node_modules/pathfinding/src/finders/IDAStarFinder.js":{"bytesInOutput":3445},"node_modules/pathfinding/src/finders/JumpPointFinderBase.js":{"bytesInOutput":2552},"node_modules/pathfinding/src/finders/JPFNeverMoveDiagonally.js":{"bytesInOutput":2946},"node_modules/pathfinding/src/finders/JPFAlwaysMoveDiagonally.js":{"bytesInOutput":3744},"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfNoObstacles.js":{"bytesInOutput":4300},"node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfAtMostOneObstacle.js":{"bytesInOutput":4109},"node_modules/pathfinding/src/finders/JumpPointFinder.js":{"bytesInOutput":1054},"node_modules/pathfinding/src/PathFinding.js":{"bytesInOutput":884},"node_modules/pathfinding/index.js":{"bytesInOutput":150},"node_modules/@tscircuit/routing/dist/index.js":{"bytesInOutput":25007},"node_modules/lodash._objecttypes/index.js":{"bytesInOutput":315},"node_modules/lodash.isobject/index.js":{"bytesInOutput":269},"node_modules/lodash._renative/index.js":{"bytesInOutput":367},"node_modules/lodash._shimkeys/index.js":{"bytesInOutput":624},"node_modules/lodash.keys/index.js":{"bytesInOutput":480},"node_modules/lodash.noop/index.js":{"bytesInOutput":157},"node_modules/lodash._basecreate/index.js":{"bytesInOutput":834},"node_modules/lodash._setbinddata/index.js":{"bytesInOutput":738},"node_modules/lodash._basebind/index.js":{"bytesInOutput":908},"node_modules/lodash._slice/index.js":{"bytesInOutput":492},"node_modules/lodash._basecreatewrapper/index.js":{"bytesInOutput":1711},"node_modules/lodash.isfunction/index.js":{"bytesInOutput":222},"node_modules/lodash._createwrapper/index.js":{"bytesInOutput":1791},"node_modules/lodash.bind/index.js":{"bytesInOutput":432},"node_modules/lodash.identity/index.js":{"bytesInOutput":197},"node_modules/lodash.support/index.js":{"bytesInOutput":397},"node_modules/lodash._basecreatecallback/index.js":{"bytesInOutput":1910},"node_modules/lodash.forown/index.js":{"bytesInOutput":925},"node_modules/lodash.foreach/index.js":{"bytesInOutput":738},"node_modules/convert-units/lib/definitions/length.js":{"bytesInOutput":1637},"node_modules/convert-units/lib/definitions/area.js":{"bytesInOutput":1850},"node_modules/convert-units/lib/definitions/mass.js":{"bytesInOutput":1488},"node_modules/convert-units/lib/definitions/volume.js":{"bytesInOutput":3888},"node_modules/convert-units/lib/definitions/each.js":{"bytesInOutput":560},"node_modules/convert-units/lib/definitions/temperature.js":{"bytesInOutput":1222},"node_modules/convert-units/lib/definitions/time.js":{"bytesInOutput":1709},"node_modules/convert-units/lib/definitions/digital.js":{"bytesInOutput":1751},"node_modules/convert-units/lib/definitions/partsPer.js":{"bytesInOutput":935},"node_modules/convert-units/lib/definitions/speed.js":{"bytesInOutput":1182},"node_modules/convert-units/lib/definitions/pace.js":{"bytesInOutput":1060},"node_modules/convert-units/lib/definitions/pressure.js":{"bytesInOutput":1601},"node_modules/convert-units/lib/definitions/current.js":{"bytesInOutput":711},"node_modules/convert-units/lib/definitions/voltage.js":{"bytesInOutput":699},"node_modules/convert-units/lib/definitions/power.js":{"bytesInOutput":955},"node_modules/convert-units/lib/definitions/reactivePower.js":{"bytesInOutput":1167},"node_modules/convert-units/lib/definitions/apparentPower.js":{"bytesInOutput":1071},"node_modules/convert-units/lib/definitions/energy.js":{"bytesInOutput":1280},"node_modules/convert-units/lib/definitions/reactiveEnergy.js":{"bytesInOutput":1228},"node_modules/convert-units/lib/definitions/volumeFlowRate.js":{"bytesInOutput":6560},"node_modules/convert-units/lib/definitions/illuminance.js":{"bytesInOutput":720},"node_modules/convert-units/lib/definitions/frequency.js":{"bytesInOutput":1652},"node_modules/convert-units/lib/definitions/angle.js":{"bytesInOutput":990},"node_modules/convert-units/lib/index.js":{"bytesInOutput":6636},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js":{"bytesInOutput":1445},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js":{"bytesInOutput":5088},"node_modules/use-sync-external-store/shim/index.js":{"bytesInOutput":356},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js":{"bytesInOutput":1750},"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js":{"bytesInOutput":4053},"node_modules/use-sync-external-store/shim/with-selector.js":{"bytesInOutput":343},"node_modules/parse-svg-path/index.js":{"bytesInOutput":1181},"node_modules/abs-svg-path/index.js":{"bytesInOutput":1366},"node_modules/svg-arc-to-cubic-bezier/modules/index.js":{"bytesInOutput":5863},"node_modules/normalize-svg-path/index.js":{"bytesInOutput":3112},"node_modules/is-svg-path/index.js":{"bytesInOutput":401},"node_modules/svg-path-bounds/index.js":{"bytesInOutput":1434},"node_modules/debounce/index.js":{"bytesInOutput":1419},"node_modules/svg-path-generator/lib/svg-path-generator.js":{"bytesInOutput":2249},"node_modules/svg-path-generator/index.js":{"bytesInOutput":172},"src/index.ts":{"bytesInOutput":123},"src/Schematic.tsx":{"bytesInOutput":4416},"node_modules/@tscircuit/builder/dist/index.js":{"bytesInOutput":440419},"node_modules/transformation-matrix/src/applyToPoint.js":{"bytesInOutput":320},"node_modules/transformation-matrix/src/index.js":{"bytesInOutput":0},"node_modules/transformation-matrix/src/utils.js":{"bytesInOutput":67},"node_modules/transformation-matrix/src/translate.js":{"bytesInOutput":112},"node_modules/transformation-matrix/src/transform.js":{"bytesInOutput":780},"node_modules/transformation-matrix/src/rotate.js":{"bytesInOutput":415},"node_modules/transformation-matrix/src/scale.js":{"bytesInOutput":351},"node_modules/transformation-matrix/src/skew.js":{"bytesInOutput":20},"node_modules/transformation-matrix/src/fromTransformAttribute.autogenerated.js":{"bytesInOutput":4412},"node_modules/parsel-js/dist/parsel.min.js":{"bytesInOutput":5187},"node_modules/@lume/kiwi/es/maptype.js":{"bytesInOutput":2329},"node_modules/@lume/kiwi/es/variable.js":{"bytesInOutput":1594},"node_modules/@lume/kiwi/es/expression.js":{"bytesInOutput":3182},"node_modules/@lume/kiwi/es/strength.js":{"bytesInOutput":741},"node_modules/@lume/kiwi/es/constraint.js":{"bytesInOutput":1235},"node_modules/@lume/kiwi/es/kiwi.js":{"bytesInOutput":0},"node_modules/@lume/kiwi/es/solver.js":{"bytesInOutput":18897},"src/lib/utils/collect-element-refs.ts":{"bytesInOutput":638},"src/schematic-components/index.tsx":{"bytesInOutput":0},"node_modules/zustand/esm/vanilla.js":{"bytesInOutput":871},"node_modules/zustand/esm/index.js":{"bytesInOutput":836},"src/lib/render-context/index.ts":{"bytesInOutput":260},"src/lib/utils/get-svg-path-bounds.ts":{"bytesInOutput":591},"src/schematic-components/SVGPathComponent.tsx":{"bytesInOutput":1580},"src/schematic-components/SimpleResistor.tsx":{"bytesInOutput":495},"src/schematic-components/SimpleCapacitor.tsx":{"bytesInOutput":600},"src/lib/hooks/use-maybe-promise.ts":{"bytesInOutput":38},"src/lib/hooks/index.ts":{"bytesInOutput":0},"src/schematic-components/ProjectComponent.tsx":{"bytesInOutput":56},"src/lib/utils/direction-to-vec.ts":{"bytesInOutput":327},"src/schematic-components/SchematicPort.tsx":{"bytesInOutput":743},"node_modules/react-use-measure/dist/web.js":{"bytesInOutput":4903},"src/schematic-components/SchematicText.tsx":{"bytesInOutput":886},"src/schematic-components/SchematicTrace.tsx":{"bytesInOutput":1225},"src/schematic-components/RenderError.tsx":{"bytesInOutput":444},"src/schematic-components/SchematicBug.tsx":{"bytesInOutput":1582},"src/schematic-components/SimplePowerSource.tsx":{"bytesInOutput":496},"src/schematic-components/SimpleGround.tsx":{"bytesInOutput":489},"src/schematic-components/SimpleInductor.tsx":{"bytesInOutput":768},"src/schematic-components/SimpleDiode.tsx":{"bytesInOutput":57},"src/schematic-components/SchematicComponent.tsx":{"bytesInOutput":1392},"src/schematic-components/SchematicBox.tsx":{"bytesInOutput":548},"src/schematic-components/SchematicLine.tsx":{"bytesInOutput":982},"src/schematic-components/SchematicPath.tsx":{"bytesInOutput":1214},"src/schematic-components/SchematicElement.tsx":{"bytesInOutput":1569},"src/schematic-components/TableViewer.tsx":{"bytesInOutput":525}},"bytes":890134}}}
|
package/package.json
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/schematic-viewer",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.11",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "tscircuit/schematic-viewer",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"start": "storybook dev -p 6006",
|
|
9
9
|
"typecheck": "tsc --noEmit",
|
|
10
|
-
"build": "tsup ./src/index.ts --dts --sourcemap",
|
|
10
|
+
"build": "tsup ./src/index.ts --metafile --dts --sourcemap",
|
|
11
11
|
"yalc": "npm run build && yalc push",
|
|
12
12
|
"storybook": "storybook dev -p 6006",
|
|
13
13
|
"build-storybook": "storybook build"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@tscircuit/builder": "*",
|
|
17
16
|
"@tscircuit/react-fiber": "*",
|
|
18
17
|
"@tscircuit/table-viewer": "*",
|
|
19
18
|
"react": "*"
|
|
@@ -32,17 +31,15 @@
|
|
|
32
31
|
"@storybook/nextjs": "^7.4.0",
|
|
33
32
|
"@storybook/react": "^7.4.0",
|
|
34
33
|
"@storybook/testing-library": "^0.0.14-next.2",
|
|
35
|
-
"@tscircuit/builder": "^1.5.
|
|
36
|
-
"@tscircuit/react-fiber": "^1.0.
|
|
34
|
+
"@tscircuit/builder": "^1.5.17",
|
|
35
|
+
"@tscircuit/react-fiber": "^1.0.12",
|
|
37
36
|
"@tscircuit/routing": "^1.3.0",
|
|
38
37
|
"@tscircuit/table-viewer": "^0.0.6",
|
|
39
38
|
"@types/node": "^18.6.0",
|
|
40
39
|
"@types/react": "^18.0.15",
|
|
41
40
|
"ava": "^4.3.1",
|
|
42
|
-
"babel-loader": "^8.2.5",
|
|
43
41
|
"esbuild": "^0.15.10",
|
|
44
42
|
"esbuild-register": "^3.3.3",
|
|
45
|
-
"framer-motion": "^6",
|
|
46
43
|
"next": "^12.2.3",
|
|
47
44
|
"parse-svg-path": "^0.1.2",
|
|
48
45
|
"react": "^18.2.0",
|
|
@@ -54,7 +51,7 @@
|
|
|
54
51
|
"svg-path-bounds": "^1.0.2",
|
|
55
52
|
"svg-path-generator": "^1.1.0",
|
|
56
53
|
"transformation-matrix": "^2.12.0",
|
|
57
|
-
"tsup": "^6.
|
|
54
|
+
"tsup": "^6.7.0",
|
|
58
55
|
"type-fest": "^2.17.0",
|
|
59
56
|
"typescript": "^4.8.4",
|
|
60
57
|
"zustand": "^4.0.0"
|
package/src/Schematic.tsx
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
findBoundsAndCenter,
|
|
9
9
|
transformSchematicElement,
|
|
10
10
|
} from "@tscircuit/builder"
|
|
11
|
+
import * as builder1 from "@tscircuit/builder"
|
|
11
12
|
import { createRoot } from "@tscircuit/react-fiber"
|
|
12
13
|
import { SchematicElement } from "schematic-components/SchematicElement"
|
|
13
14
|
import { collectElementRefs } from "lib/utils/collect-element-refs"
|
|
@@ -62,6 +63,7 @@ export const Schematic = ({
|
|
|
62
63
|
},
|
|
63
64
|
// initialTransform: compose(scale(100, 100, 0, 0)),
|
|
64
65
|
})
|
|
66
|
+
console.log({ builder1 })
|
|
65
67
|
const setElementsAndCamera = useCallback(
|
|
66
68
|
(elements: Array<AnyElement>) => {
|
|
67
69
|
const elmBounds = (ref.current as HTMLDivElement).getBoundingClientRect()
|
package/src/lib/types/core.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SourceComponent } from "./source-component"
|
|
1
|
+
import { AnySourceComponent, SourceComponent } from "./source-component"
|
|
2
2
|
|
|
3
3
|
export interface SchematicConfig {
|
|
4
4
|
type: "schematic_config"
|
|
@@ -69,6 +69,19 @@ export interface SchematicLine {
|
|
|
69
69
|
y2: number
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
export interface SchematicPath {
|
|
73
|
+
type: "schematic_path"
|
|
74
|
+
drawing_type: "path"
|
|
75
|
+
schematic_component_id: string
|
|
76
|
+
points: Array<{
|
|
77
|
+
x: number
|
|
78
|
+
y: number
|
|
79
|
+
}>
|
|
80
|
+
is_filled: boolean
|
|
81
|
+
is_closed: boolean
|
|
82
|
+
fill_color?: "red" | "blue"
|
|
83
|
+
}
|
|
84
|
+
|
|
72
85
|
export interface SchematicTrace {
|
|
73
86
|
type: "schematic_trace"
|
|
74
87
|
schematic_trace_id: string
|
|
@@ -177,7 +190,7 @@ export interface Project {
|
|
|
177
190
|
export type AnyElement =
|
|
178
191
|
| Project
|
|
179
192
|
| SourceConfig
|
|
180
|
-
|
|
|
193
|
+
| AnySourceComponent
|
|
181
194
|
| SourceGroup
|
|
182
195
|
| SourceTrace
|
|
183
196
|
| SourcePort
|
|
@@ -192,6 +205,8 @@ export type AnyElement =
|
|
|
192
205
|
| SchematicConfig
|
|
193
206
|
| SchematicPort
|
|
194
207
|
| SchematicText
|
|
208
|
+
| SchematicLine
|
|
209
|
+
| SchematicPath
|
|
195
210
|
|
|
196
211
|
export type ElementType = AnyElement["type"]
|
|
197
212
|
export type ElementOfType<T extends ElementType> = Extract<
|
|
@@ -56,8 +56,12 @@ export type AnySourceComponent =
|
|
|
56
56
|
| SimpleGround
|
|
57
57
|
| SimpleDiode
|
|
58
58
|
| LightEmittingDiode
|
|
59
|
+
| Omit<SourceComponentBase, "ftype">
|
|
59
60
|
|
|
60
|
-
export type SourceComponentFType =
|
|
61
|
+
export type SourceComponentFType = Extract<
|
|
62
|
+
AnySourceComponent,
|
|
63
|
+
{ ftype: string }
|
|
64
|
+
>["ftype"]
|
|
61
65
|
export type SourceComponent<
|
|
62
66
|
T extends SourceComponentFType = SourceComponentFType
|
|
63
67
|
> = Extract<AnySourceComponent, { ftype: T }>
|
|
@@ -10,6 +10,7 @@ interface Props {
|
|
|
10
10
|
paths: Array<{
|
|
11
11
|
strokeWidth: number
|
|
12
12
|
stroke: string
|
|
13
|
+
fill?: string
|
|
13
14
|
d: string
|
|
14
15
|
}>
|
|
15
16
|
}
|
|
@@ -51,7 +52,7 @@ export const SVGPathComponent = ({ size, center, rotation, paths }: Props) => {
|
|
|
51
52
|
{paths.map((p, i) => (
|
|
52
53
|
<path
|
|
53
54
|
key={i}
|
|
54
|
-
fill="none"
|
|
55
|
+
fill={p.fill ?? "none"}
|
|
55
56
|
strokeLinecap="round"
|
|
56
57
|
strokeWidth={2 * (p.strokeWidth || 1)}
|
|
57
58
|
stroke={p.stroke || "red"}
|
|
@@ -15,6 +15,8 @@ interface Props {
|
|
|
15
15
|
*/
|
|
16
16
|
export const SchematicComponent = ({ component }: Props) => {
|
|
17
17
|
const { source, schematic } = component
|
|
18
|
+
if (!source.ftype) return null
|
|
19
|
+
|
|
18
20
|
switch (source.ftype) {
|
|
19
21
|
case "simple_resistor": {
|
|
20
22
|
return <Component.SimpleResistor component={{ source, schematic }} />
|
|
@@ -7,6 +7,7 @@ import SchematicBox from "./SchematicBox"
|
|
|
7
7
|
import SchematicTrace from "./SchematicTrace"
|
|
8
8
|
import SchematicLine from "./SchematicLine"
|
|
9
9
|
import RenderError from "./RenderError"
|
|
10
|
+
import SchematicPath from "./SchematicPath"
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Render any @tsbuilder/builder AnyElement that can be put on a schematic.
|
|
@@ -52,6 +53,12 @@ export const SchematicElement = ({
|
|
|
52
53
|
)
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
if (element.type === "schematic_path") {
|
|
57
|
+
return (
|
|
58
|
+
<SchematicPath path={collectElementRefs(element, allElements) as any} />
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
55
62
|
if (element.type === "schematic_text") {
|
|
56
63
|
return <SchematicText schematic_text={element} />
|
|
57
64
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as Type from "lib/types"
|
|
2
|
+
import { directionToVec } from "lib/utils/direction-to-vec"
|
|
3
|
+
import * as Component from "."
|
|
4
|
+
import Path from "svg-path-generator"
|
|
5
|
+
import getSVGPathBounds from "lib/utils/get-svg-path-bounds"
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
path: {
|
|
9
|
+
schematic: Type.SchematicPath
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const SchematicPath = (props: Props) => {
|
|
14
|
+
const { points, is_filled, is_closed, fill_color } = props.path.schematic
|
|
15
|
+
|
|
16
|
+
if (points.length === 0) return null
|
|
17
|
+
const path = Path()
|
|
18
|
+
path.moveTo(points[0].x, points[0].y)
|
|
19
|
+
for (const point of points.slice(1)) {
|
|
20
|
+
path.lineTo(point.x, point.y)
|
|
21
|
+
}
|
|
22
|
+
if (is_closed) {
|
|
23
|
+
path.closePath()
|
|
24
|
+
}
|
|
25
|
+
const d = path.toString()
|
|
26
|
+
const pathBounds = getSVGPathBounds(d)
|
|
27
|
+
pathBounds.height = Math.max(pathBounds.height, 1)
|
|
28
|
+
pathBounds.width = Math.max(pathBounds.width, 1)
|
|
29
|
+
const center = {
|
|
30
|
+
x: pathBounds.minX + pathBounds.width / 2,
|
|
31
|
+
y: pathBounds.minY + pathBounds.height / 2,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<Component.SVGPathComponent
|
|
36
|
+
rotation={0}
|
|
37
|
+
center={center}
|
|
38
|
+
size={pathBounds}
|
|
39
|
+
paths={[
|
|
40
|
+
{
|
|
41
|
+
stroke: is_filled ? "none" : fill_color ?? "red",
|
|
42
|
+
strokeWidth: 0.02,
|
|
43
|
+
fill: is_filled ? fill_color ?? "red" : undefined,
|
|
44
|
+
d: d,
|
|
45
|
+
},
|
|
46
|
+
]}
|
|
47
|
+
/>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default SchematicPath
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Schematic } from "Schematic"
|
|
2
|
+
|
|
3
|
+
export const ComponentDrawingExample = () => {
|
|
4
|
+
return (
|
|
5
|
+
<Schematic style={{ height: 600 }}>
|
|
6
|
+
<component>
|
|
7
|
+
<schematicbox x={0} y={0} width="6mm" height="6mm" />
|
|
8
|
+
<schematicline x1={0} y1={0} x2={1} y2={1} />
|
|
9
|
+
</component>
|
|
10
|
+
</Schematic>
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
title: "ComponentDrawingExample",
|
|
16
|
+
component: ComponentDrawingExample,
|
|
17
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AnyElement } from "lib/types"
|
|
2
|
+
import { Schematic } from "../Schematic"
|
|
3
|
+
|
|
4
|
+
const soup: AnyElement[] = [
|
|
5
|
+
{
|
|
6
|
+
type: "source_component",
|
|
7
|
+
source_component_id: "source_component_1",
|
|
8
|
+
name: "my source component",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
type: "schematic_component",
|
|
12
|
+
schematic_component_id: "schematic_component_1",
|
|
13
|
+
center: { x: 0, y: 0 },
|
|
14
|
+
rotation: 0,
|
|
15
|
+
size: { width: 1, height: 1 },
|
|
16
|
+
source_component_id: "source_component_1",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: "schematic_path",
|
|
20
|
+
drawing_type: "path",
|
|
21
|
+
is_filled: true,
|
|
22
|
+
is_closed: true,
|
|
23
|
+
fill_color: "red",
|
|
24
|
+
points: [
|
|
25
|
+
{ x: 0, y: 0 },
|
|
26
|
+
{ x: 1, y: 1 },
|
|
27
|
+
{ x: 0, y: 1 },
|
|
28
|
+
],
|
|
29
|
+
schematic_component_id: "schematic_component_1",
|
|
30
|
+
},
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
export const SchematicPathSoup = () => {
|
|
34
|
+
return <Schematic style={{ height: 500 }} soup={soup} />
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default {
|
|
38
|
+
title: "SchematicPathSoup",
|
|
39
|
+
component: SchematicPathSoup,
|
|
40
|
+
}
|