@classytic/labs 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.mjs +18 -0
- package/dist/biology/enzyme-rate/preset.mjs +5 -5
- package/dist/biology/genetic-cross/core.d.mts +7 -7
- package/dist/biology/genetic-cross/core.mjs +4 -4
- package/dist/biology/genetic-cross/grid.mjs +132 -123
- package/dist/biology/genetic-cross/preset.mjs +4 -4
- package/dist/biology/genetic-cross/sex-linked.mjs +7 -7
- package/dist/biology/photosynthesis-factors/preset.mjs +8 -8
- package/dist/biology/respiration/preset.mjs +4 -4
- package/dist/biology/sequence/central-dogma.mjs +5 -5
- package/dist/biology/sequence/core.d.mts +6 -6
- package/dist/biology/sequence/core.mjs +1 -1
- package/dist/biology/sequence/preset.mjs +6 -6
- package/dist/blocks/authoring.mjs +5 -5
- package/dist/blocks/biology.d.mts +2 -2
- package/dist/blocks/biology.mjs +5 -5
- package/dist/blocks/chem.d.mts +2 -2
- package/dist/blocks/chem.mjs +13 -13
- package/dist/blocks/circuits.d.mts +293 -4
- package/dist/blocks/circuits.mjs +874 -9
- package/dist/blocks/discrete.d.mts +30 -2
- package/dist/blocks/discrete.mjs +74 -4
- package/dist/blocks/economics.mjs +1 -1
- package/dist/blocks/geography.mjs +1 -1
- package/dist/blocks/geometry.mjs +3 -3
- package/dist/blocks/ict.d.mts +90 -1
- package/dist/blocks/ict.mjs +217 -7
- package/dist/blocks/index.d.mts +3064 -657
- package/dist/blocks/index.mjs +9 -9
- package/dist/blocks/lab-block.mjs +5 -5
- package/dist/blocks/lab-config.d.mts +1 -1
- package/dist/blocks/lab-config.mjs +4 -4
- package/dist/blocks/lab-gallery.d.mts +1 -1
- package/dist/blocks/lab-gallery.mjs +2 -2
- package/dist/blocks/language.d.mts +6 -6
- package/dist/blocks/language.mjs +12 -12
- package/dist/blocks/lesson.mjs +4 -4
- package/dist/blocks/math.d.mts +577 -11
- package/dist/blocks/math.mjs +1648 -14
- package/dist/blocks/ml.d.mts +45 -1
- package/dist/blocks/ml.mjs +80 -6
- package/dist/blocks/physics.d.mts +9 -4
- package/dist/blocks/physics.mjs +75 -28
- package/dist/blocks/statistics.mjs +1 -1
- package/dist/build/CircuitEditor.d.mts +14 -0
- package/dist/build/CircuitEditor.mjs +787 -0
- package/dist/build/CircuitPlayer.d.mts +19 -0
- package/dist/build/CircuitPlayer.mjs +53 -0
- package/dist/build/CircuitScene.d.mts +61 -0
- package/dist/build/CircuitScene.mjs +383 -0
- package/dist/build/contract.d.mts +116 -0
- package/dist/build/editor-ops.d.mts +65 -0
- package/dist/build/editor-ops.mjs +306 -0
- package/dist/build/editor-ui.mjs +121 -0
- package/dist/build/flow.d.mts +14 -0
- package/dist/build/flow.mjs +119 -0
- package/dist/build/index.d.mts +10 -0
- package/dist/build/index.mjs +10 -0
- package/dist/build/parts/ammeter.d.mts +1 -0
- package/dist/build/parts/ammeter.mjs +32 -0
- package/dist/build/parts/bulb.d.mts +1 -0
- package/dist/build/parts/bulb.mjs +50 -0
- package/dist/build/parts/capacitor.d.mts +1 -0
- package/dist/build/parts/capacitor.mjs +26 -0
- package/dist/build/parts/cell.d.mts +1 -0
- package/dist/build/parts/cell.mjs +40 -0
- package/dist/build/parts/diode.d.mts +1 -0
- package/dist/build/parts/diode.mjs +33 -0
- package/dist/build/parts/index.d.mts +5 -0
- package/dist/build/parts/index.mjs +43 -0
- package/dist/build/parts/mosfet.d.mts +1 -0
- package/dist/build/parts/mosfet.mjs +95 -0
- package/dist/build/parts/node.d.mts +1 -0
- package/dist/build/parts/node.mjs +32 -0
- package/dist/build/parts/resistor.d.mts +1 -0
- package/dist/build/parts/resistor.mjs +49 -0
- package/dist/build/parts/shared.mjs +42 -0
- package/dist/build/parts/switch.d.mts +1 -0
- package/dist/build/parts/switch.mjs +34 -0
- package/dist/build/parts.d.mts +1 -0
- package/dist/build/registry.d.mts +9 -0
- package/dist/build/registry.mjs +15 -0
- package/dist/build/solve.d.mts +8 -0
- package/dist/build/solve.mjs +0 -0
- package/dist/catalog/registry.d.mts +2 -2
- package/dist/catalog/templates.d.mts +1 -1
- package/dist/catalog/templates.mjs +6 -6
- package/dist/chem/battery.mjs +1 -1
- package/dist/chem/bohr-atom.mjs +4 -4
- package/dist/chem/diffusion/preset.mjs +4 -4
- package/dist/chem/electrochem/preset.mjs +5 -5
- package/dist/chem/equilibrium/preset.d.mts +1 -1
- package/dist/chem/equilibrium/preset.mjs +6 -6
- package/dist/chem/gas-box/preset.mjs +6 -6
- package/dist/chem/kinetics/preset.mjs +6 -6
- package/dist/chem/periodic-trends/preset.mjs +7 -7
- package/dist/chem/reaction-lab.mjs +3 -3
- package/dist/chem/reaction-profile.mjs +4 -4
- package/dist/chem/solution/dilution.mjs +6 -6
- package/dist/chem/solution/field.d.mts +2 -2
- package/dist/chem/solution/field.mjs +2 -2
- package/dist/chem/solution/solution-box.mjs +7 -7
- package/dist/chem/stoichiometry/preset.mjs +5 -5
- package/dist/chem/titration/preset.mjs +5 -5
- package/dist/circuits/ac-dc/asset.mjs +1 -1
- package/dist/circuits/ac-dc/preset.mjs +2 -2
- package/dist/circuits/brownout/index.d.mts +1 -0
- package/dist/circuits/brownout/preset.d.mts +22 -0
- package/dist/circuits/brownout/preset.mjs +399 -0
- package/dist/circuits/capacitor-leak/preset.mjs +13 -8
- package/dist/circuits/circuit/asset.mjs +71 -14
- package/dist/circuits/circuit/preset.mjs +23 -5
- package/dist/circuits/circuit-builder.mjs +60 -132
- package/dist/circuits/circuit-lab.mjs +60 -40
- package/dist/circuits/cmos-gate/index.d.mts +1 -0
- package/dist/circuits/cmos-gate/preset.d.mts +75 -0
- package/dist/circuits/cmos-gate/preset.mjs +1491 -0
- package/dist/circuits/diode/index.d.mts +1 -0
- package/dist/circuits/diode/preset.d.mts +25 -0
- package/dist/circuits/diode/preset.mjs +266 -0
- package/dist/circuits/index.d.mts +7 -1
- package/dist/circuits/index.mjs +7 -1
- package/dist/circuits/rc-charging/index.d.mts +1 -0
- package/dist/circuits/rc-charging/preset.d.mts +27 -0
- package/dist/circuits/rc-charging/preset.mjs +329 -0
- package/dist/circuits/semiconductor/index.d.mts +1 -0
- package/dist/circuits/semiconductor/preset.d.mts +102 -0
- package/dist/circuits/semiconductor/preset.mjs +1855 -0
- package/dist/circuits/transistor/index.d.mts +1 -0
- package/dist/circuits/transistor/preset.d.mts +27 -0
- package/dist/circuits/transistor/preset.mjs +329 -0
- package/dist/commerce/accounting/core.d.mts +1 -1
- package/dist/commerce/accounting/equation-balance.mjs +5 -5
- package/dist/commerce/accounting/journal-poster.mjs +8 -8
- package/dist/commerce/accounting/statement-sorter.mjs +4 -4
- package/dist/commerce/economics/core.d.mts +2 -2
- package/dist/commerce/economics/core.mjs +1 -1
- package/dist/commerce/economics/demand-shift-vs-move.mjs +6 -6
- package/dist/commerce/economics/elasticity-revenue.mjs +6 -6
- package/dist/commerce/economics/market-equilibrium.mjs +5 -5
- package/dist/core/easing.d.mts +3 -3
- package/dist/core/easing.mjs +2 -2
- package/dist/core/numeric.d.mts +3 -3
- package/dist/core/numeric.mjs +2 -2
- package/dist/core/reactive.d.mts +1 -1
- package/dist/core/reactive.mjs +1 -1
- package/dist/core/rng.d.mts +2 -2
- package/dist/core/rng.mjs +1 -1
- package/dist/core/tex.mjs +2 -2
- package/dist/core/timeline.d.mts +1 -1
- package/dist/core/timeline.mjs +1 -1
- package/dist/core/util.mjs +11 -1
- package/dist/discrete/arrangements/preset.mjs +6 -14
- package/dist/discrete/bayes/preset.mjs +43 -35
- package/dist/discrete/binomial/preset.mjs +2 -2
- package/dist/discrete/combination-studio/figure.d.mts +6 -0
- package/dist/discrete/combination-studio/figure.mjs +159 -0
- package/dist/discrete/combination-studio/index.d.mts +2 -0
- package/dist/discrete/combination-studio/preset.d.mts +44 -0
- package/dist/discrete/combination-studio/preset.mjs +440 -0
- package/dist/discrete/core/combinatorics.d.mts +23 -3
- package/dist/discrete/core/combinatorics.mjs +38 -3
- package/dist/discrete/core/pigeonhole.d.mts +1 -1
- package/dist/discrete/core/pigeonhole.mjs +1 -1
- package/dist/discrete/core/probability.d.mts +3 -3
- package/dist/discrete/core/probability.mjs +3 -3
- package/dist/discrete/core/sets.d.mts +1 -1
- package/dist/discrete/counting-slots/preset.mjs +8 -8
- package/dist/discrete/counting-tree/preset.mjs +65 -8
- package/dist/discrete/expected-value/preset.mjs +13 -13
- package/dist/discrete/hypergeometric/preset.mjs +48 -15
- package/dist/discrete/index.d.mts +4 -2
- package/dist/discrete/index.mjs +4 -2
- package/dist/discrete/karnaugh/preset.mjs +26 -20
- package/dist/discrete/lln/preset.mjs +44 -3
- package/dist/discrete/logic-circuit/preset.mjs +2 -2
- package/dist/discrete/monte-carlo/preset.d.mts +1 -1
- package/dist/discrete/monte-carlo/preset.mjs +14 -14
- package/dist/discrete/monty-hall/preset.mjs +6 -6
- package/dist/discrete/outcome-builder/preset.mjs +3 -3
- package/dist/discrete/pascal/preset.mjs +37 -7
- package/dist/discrete/rules.d.mts +20 -0
- package/dist/discrete/rules.mjs +264 -0
- package/dist/discrete/sample-space/preset.mjs +4 -4
- package/dist/discrete/selection/preset.mjs +7 -13
- package/dist/discrete/truth-table/preset.mjs +32 -9
- package/dist/discrete/venn/preset.mjs +71 -48
- package/dist/geography/cycle-lab/preset.mjs +17 -10
- package/dist/geography/cycles.d.mts +3 -3
- package/dist/geography/cycles.mjs +3 -3
- package/dist/geometry/board/preset.d.mts +2 -0
- package/dist/geometry/board/preset.mjs +11 -15
- package/dist/geometry/builder.mjs +3 -3
- package/dist/ict/number-systems/base-odometer.mjs +4 -4
- package/dist/ict/number-systems/bit-grouper.d.mts +1 -1
- package/dist/ict/number-systems/bit-grouper.mjs +4 -4
- package/dist/ict/number-systems/place-value-dial.d.mts +1 -1
- package/dist/ict/number-systems/place-value-dial.mjs +3 -3
- package/dist/ict/number-systems/wheel.d.mts +3 -3
- package/dist/ict/number-systems/wheel.mjs +4 -4
- package/dist/kit/annotate.mjs +3 -3
- package/dist/kit/answer-check.d.mts +2 -2
- package/dist/kit/answer-check.mjs +34 -6
- package/dist/kit/ask.d.mts +19 -0
- package/dist/kit/ask.mjs +46 -0
- package/dist/kit/bar-strip.mjs +53 -0
- package/dist/kit/calc.d.mts +33 -0
- package/dist/kit/calc.mjs +27 -0
- package/dist/kit/carrier-engine.mjs +147 -0
- package/dist/kit/clue-scene.d.mts +86 -0
- package/dist/kit/clue-scene.mjs +424 -0
- package/dist/kit/cluster.d.mts +30 -0
- package/dist/kit/cluster.mjs +81 -0
- package/dist/kit/controls.mjs +11 -5
- package/dist/kit/coords.d.mts +88 -0
- package/dist/kit/coords.mjs +192 -0
- package/dist/kit/data-scene.d.mts +27 -0
- package/dist/kit/data-scene.mjs +199 -0
- package/dist/kit/diagram.mjs +111 -50
- package/dist/kit/electronics.mjs +552 -60
- package/dist/kit/expr-analysis.d.mts +18 -6
- package/dist/kit/expr-analysis.mjs +82 -28
- package/dist/kit/frame.d.mts +3 -3
- package/dist/kit/frame.mjs +25 -6
- package/dist/kit/gameshow.mjs +2 -2
- package/dist/kit/index.d.mts +14 -2
- package/dist/kit/index.mjs +13 -1
- package/dist/kit/logic-gates.mjs +246 -47
- package/dist/kit/palette.mjs +26 -0
- package/dist/kit/pedagogy.d.mts +4 -4
- package/dist/kit/pedagogy.mjs +21 -17
- package/dist/kit/play.d.mts +1 -1
- package/dist/kit/play.mjs +3 -3
- package/dist/kit/predict.d.mts +55 -0
- package/dist/kit/predict.mjs +146 -0
- package/dist/kit/receipt.d.mts +29 -0
- package/dist/kit/receipt.mjs +94 -0
- package/dist/kit/rich.mjs +2 -2
- package/dist/kit/rule.d.mts +59 -0
- package/dist/kit/rule.mjs +215 -0
- package/dist/kit/scale.mjs +1 -1
- package/dist/kit/scene-library.d.mts +22 -0
- package/dist/kit/scene-library.mjs +311 -0
- package/dist/kit/scene-studio.d.mts +14 -0
- package/dist/kit/scene-studio.mjs +338 -0
- package/dist/kit/scenes.d.mts +31 -0
- package/dist/kit/scenes.mjs +569 -0
- package/dist/kit/slot-fill.d.mts +61 -0
- package/dist/kit/slot-fill.mjs +207 -0
- package/dist/kit/solve.d.mts +21 -0
- package/dist/kit/solve.mjs +75 -0
- package/dist/kit/space.mjs +5 -5
- package/dist/kit/steps.mjs +2 -2
- package/dist/kit/vessel.d.mts +69 -0
- package/dist/kit/vessel.mjs +191 -0
- package/dist/language/agreement/preset.mjs +2 -2
- package/dist/language/article-lens/preset.d.mts +1 -1
- package/dist/language/article-lens/preset.mjs +8 -8
- package/dist/language/deck.d.mts +3 -3
- package/dist/language/deck.mjs +1 -1
- package/dist/language/preposition-scene/preset.d.mts +2 -2
- package/dist/language/preposition-scene/preset.mjs +5 -5
- package/dist/language/sentence-builder/preset.mjs +5 -5
- package/dist/language/transform/preset.d.mts +2 -2
- package/dist/language/transform/preset.mjs +5 -5
- package/dist/language/ui.d.mts +3 -3
- package/dist/language/ui.mjs +4 -4
- package/dist/language/word-match/preset.mjs +3 -3
- package/dist/logic/LogicBuildLab.d.mts +22 -0
- package/dist/logic/LogicBuildLab.mjs +170 -0
- package/dist/logic/LogicEditScene.d.mts +31 -0
- package/dist/logic/LogicEditScene.mjs +276 -0
- package/dist/logic/LogicEditor.d.mts +14 -0
- package/dist/logic/LogicEditor.mjs +413 -0
- package/dist/logic/LogicScene.d.mts +32 -0
- package/dist/logic/LogicScene.mjs +277 -0
- package/dist/logic/contract.d.mts +72 -0
- package/dist/logic/display.d.mts +24 -0
- package/dist/logic/display.mjs +127 -0
- package/dist/logic/edit-ops.d.mts +44 -0
- package/dist/logic/edit-ops.mjs +177 -0
- package/dist/logic/evaluate.d.mts +11 -0
- package/dist/logic/evaluate.mjs +93 -0
- package/dist/logic/gates.d.mts +10 -0
- package/dist/logic/gates.mjs +73 -0
- package/dist/logic/index.d.mts +14 -0
- package/dist/logic/index.mjs +13 -0
- package/dist/logic/lab.d.mts +32 -0
- package/dist/logic/lab.mjs +160 -0
- package/dist/logic/presets.d.mts +12 -0
- package/dist/logic/presets.mjs +241 -0
- package/dist/logic/registry.d.mts +9 -0
- package/dist/logic/registry.mjs +15 -0
- package/dist/math/area-model/preset.mjs +70 -44
- package/dist/math/balance-algebra/preset.mjs +14 -5
- package/dist/math/broken-tree/index.d.mts +1 -0
- package/dist/math/broken-tree/preset.d.mts +26 -0
- package/dist/math/broken-tree/preset.mjs +435 -0
- package/dist/math/circle/index.d.mts +1 -0
- package/dist/math/circle/preset.d.mts +44 -0
- package/dist/math/circle/preset.mjs +198 -0
- package/dist/math/complex/core.d.mts +93 -0
- package/dist/math/complex/core.mjs +239 -0
- package/dist/math/complex/index.d.mts +3 -0
- package/dist/math/complex/preset.d.mts +31 -0
- package/dist/math/complex/preset.mjs +377 -0
- package/dist/math/complex/rules.d.mts +6 -0
- package/dist/math/complex/rules.mjs +121 -0
- package/dist/math/conic/index.d.mts +1 -0
- package/dist/math/conic/preset.d.mts +30 -0
- package/dist/math/conic/preset.mjs +334 -0
- package/dist/math/derivation.mjs +5 -5
- package/dist/math/derivative-explorer/preset.mjs +5 -5
- package/dist/math/domain-range/index.d.mts +1 -0
- package/dist/math/domain-range/preset.d.mts +33 -0
- package/dist/math/domain-range/preset.mjs +313 -0
- package/dist/math/fraction-bar/index.d.mts +1 -0
- package/dist/math/fraction-bar/preset.d.mts +27 -0
- package/dist/math/fraction-bar/preset.mjs +197 -0
- package/dist/math/function-machine/preset.mjs +2 -2
- package/dist/math/gradient-descent.mjs +6 -6
- package/dist/math/grapher/preset.d.mts +1 -1
- package/dist/math/grapher/preset.mjs +4 -4
- package/dist/math/harmonic-form/preset.mjs +6 -6
- package/dist/math/index.d.mts +27 -2
- package/dist/math/index.mjs +27 -2
- package/dist/math/integral-explorer/preset.mjs +2 -2
- package/dist/math/interactive/preset.mjs +3 -3
- package/dist/math/limit-explorer/preset.mjs +4 -4
- package/dist/math/linear-model/index.d.mts +1 -0
- package/dist/math/linear-model/preset.d.mts +53 -0
- package/dist/math/linear-model/preset.mjs +164 -0
- package/dist/math/linear-system/preset.mjs +4 -4
- package/dist/math/mystery-bucket/preset.mjs +6 -6
- package/dist/math/number-line/preset.mjs +3 -2
- package/dist/math/parabola/preset.mjs +4 -3
- package/dist/math/pattern/preset.mjs +7 -13
- package/dist/math/percent-bar/index.d.mts +1 -0
- package/dist/math/percent-bar/preset.d.mts +37 -0
- package/dist/math/percent-bar/preset.mjs +275 -0
- package/dist/math/poly/core.d.mts +50 -0
- package/dist/math/poly/core.mjs +268 -0
- package/dist/math/poly/index.d.mts +3 -0
- package/dist/math/poly/preset.d.mts +23 -0
- package/dist/math/poly/preset.mjs +141 -0
- package/dist/math/poly/steps.d.mts +10 -0
- package/dist/math/poly/steps.mjs +99 -0
- package/dist/math/rate-machine/index.d.mts +1 -0
- package/dist/math/rate-machine/preset.d.mts +35 -0
- package/dist/math/rate-machine/preset.mjs +281 -0
- package/dist/math/ratio-share/index.d.mts +1 -0
- package/dist/math/ratio-share/preset.d.mts +24 -0
- package/dist/math/ratio-share/preset.mjs +204 -0
- package/dist/math/receipt/index.d.mts +1 -0
- package/dist/math/receipt/preset.d.mts +22 -0
- package/dist/math/receipt/preset.mjs +137 -0
- package/dist/math/sequence-predict/index.d.mts +1 -0
- package/dist/math/sequence-predict/preset.d.mts +34 -0
- package/dist/math/sequence-predict/preset.mjs +130 -0
- package/dist/math/straight-line/index.d.mts +1 -0
- package/dist/math/straight-line/preset.d.mts +37 -0
- package/dist/math/straight-line/preset.mjs +374 -0
- package/dist/math/system-solve/index.d.mts +1 -0
- package/dist/math/system-solve/preset.d.mts +21 -0
- package/dist/math/system-solve/preset.mjs +227 -0
- package/dist/math/transform/index.d.mts +1 -0
- package/dist/math/transform/preset.d.mts +41 -0
- package/dist/math/transform/preset.mjs +343 -0
- package/dist/math/triangle-trig/preset.mjs +12 -9
- package/dist/math/trig/core.d.mts +37 -0
- package/dist/math/trig/core.mjs +150 -0
- package/dist/math/trig/diagrams.d.mts +1 -0
- package/dist/math/trig/diagrams.mjs +321 -0
- package/dist/math/trig/index.d.mts +3 -0
- package/dist/math/trig/preset.d.mts +25 -0
- package/dist/math/trig/preset.mjs +260 -0
- package/dist/math/trig/rules.d.mts +6 -0
- package/dist/math/trig/rules.mjs +159 -0
- package/dist/math/trig-explorer.mjs +4 -4
- package/dist/ml/boundary/preset.mjs +8 -3
- package/dist/ml/classifier/preset.mjs +31 -6
- package/dist/ml/kmeans/preset.mjs +4 -4
- package/dist/ml/knn/preset.mjs +47 -12
- package/dist/ml/regression/preset.mjs +36 -7
- package/dist/physics/atwood/preset.mjs +4 -4
- package/dist/physics/bullet-walls/preset.d.mts +1 -1
- package/dist/physics/bullet-walls/preset.mjs +7 -7
- package/dist/physics/carnot/preset.mjs +6 -6
- package/dist/physics/circular-motion/preset.mjs +36 -5
- package/dist/physics/collision-track/preset.mjs +35 -5
- package/dist/physics/efficiency/preset.d.mts +2 -2
- package/dist/physics/efficiency/preset.mjs +5 -5
- package/dist/physics/electric-field/preset.mjs +32 -23
- package/dist/physics/electric-flux/index.d.mts +1 -0
- package/dist/physics/electric-flux/preset.d.mts +29 -0
- package/dist/physics/electric-flux/preset.mjs +264 -0
- package/dist/physics/energy-skate/preset.mjs +5 -5
- package/dist/physics/entropy/preset.mjs +7 -7
- package/dist/physics/expansion/preset.mjs +13 -13
- package/dist/physics/exponential/asset.mjs +1 -1
- package/dist/physics/exponential/preset.mjs +4 -4
- package/dist/physics/gas-process/preset.mjs +3 -3
- package/dist/physics/gauss-law/index.d.mts +1 -0
- package/dist/physics/gauss-law/preset.d.mts +20 -0
- package/dist/physics/gauss-law/preset.mjs +286 -0
- package/dist/physics/gravitation/preset.mjs +7 -7
- package/dist/physics/gravity-drop.mjs +4 -4
- package/dist/physics/heat-transfer/preset.d.mts +1 -1
- package/dist/physics/heat-transfer/preset.mjs +10 -10
- package/dist/physics/impulse/preset.mjs +5 -5
- package/dist/physics/index.d.mts +4 -1
- package/dist/physics/index.mjs +4 -1
- package/dist/physics/kepler/preset.mjs +4 -4
- package/dist/physics/lever/preset.mjs +3 -3
- package/dist/physics/lorentz/preset.mjs +11 -11
- package/dist/physics/magnetism/preset.mjs +3 -3
- package/dist/physics/optics/preset.mjs +2 -2
- package/dist/physics/orbit-lab.mjs +5 -5
- package/dist/physics/projectile-lab.mjs +4 -4
- package/dist/physics/rain-relative/preset.mjs +5 -5
- package/dist/physics/ramp-forces/preset.mjs +5 -5
- package/dist/physics/river-boat.mjs +6 -6
- package/dist/physics/shm/preset.mjs +9 -9
- package/dist/physics/stopping-distance/preset.mjs +3 -3
- package/dist/physics/temperature-scales/preset.mjs +105 -116
- package/dist/physics/terminal-velocity/preset.mjs +5 -5
- package/dist/physics/thermal/preset.mjs +5 -5
- package/dist/physics/vector-board/preset.mjs +7 -6
- package/dist/physics/vector-scene.mjs +2 -2
- package/dist/physics/vector-types/preset.mjs +37 -3
- package/dist/physics/water-density/preset.mjs +12 -12
- package/dist/physics/waves/doppler.mjs +2 -2
- package/dist/physics/waves/preset.mjs +4 -4
- package/dist/physics/waves/ripple.mjs +6 -6
- package/dist/physics/waves/string.mjs +5 -5
- package/dist/physics/work-energy/preset.mjs +4 -4
- package/dist/physics/work-potential/index.d.mts +1 -0
- package/dist/physics/work-potential/preset.d.mts +20 -0
- package/dist/physics/work-potential/preset.mjs +276 -0
- package/dist/schemas/index.d.mts +6 -6
- package/dist/schemas/index.mjs +3 -3
- package/dist/statistics/center-spread/preset.mjs +3 -3
- package/dist/statistics/core/descriptive.d.mts +2 -2
- package/dist/statistics/core/descriptive.mjs +2 -2
- package/dist/statistics/core/normal.d.mts +3 -3
- package/dist/statistics/core/normal.mjs +3 -3
- package/dist/statistics/core/sequences.d.mts +1 -1
- package/dist/statistics/galton/preset.mjs +2 -2
- package/dist/statistics/histogram/preset.mjs +6 -6
- package/dist/statistics/normal/preset.mjs +2 -2
- package/dist/statistics/sampling/preset.mjs +4 -4
- package/dist/statistics/sequence/preset.mjs +58 -15
- package/dist/statistics/z-table/preset.mjs +17 -4
- package/package.json +11 -3
- package/styles.css +4 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
declare namespace core_d_exports {
|
|
2
|
+
export { Complex, DEG2RAD, I, MAX_POW, MAX_ROOTS, ONE, RAD2DEG, TWO_PI, ZERO, abs, add, arg, argDeg, conj, cx, div, eq, fromPolar, iPow, isFiniteC, mul, neg, nthRoots, omega, powInt, rootsOfUnity, scale, sub, toPolar, toStr, toTex };
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Complex-number kernel, the pure engine every complex/Argand/polar lab computes
|
|
6
|
+
* against (so a lab — or an agent — never hand-rolls a²+b² or atan2). A complex
|
|
7
|
+
* number is rectangular `{ re, im }`; the polar view (modulus r, argument θ) is
|
|
8
|
+
* derived, exactly the (x, y) ↔ (r, θ) bridge the vector labs already teach.
|
|
9
|
+
*
|
|
10
|
+
* Engineered for CORRECTNESS + SAFETY (no NaN spirals, no overflow, no runaway
|
|
11
|
+
* loops):
|
|
12
|
+
* • modulus uses Math.hypot (no re²+im² overflow);
|
|
13
|
+
* • division uses Smith's algorithm (scale by the larger term, avoids overflow
|
|
14
|
+
* / underflow), with a near-zero-denominator guard;
|
|
15
|
+
* • integer powers use exponentiation-by-squaring, |n| capped (MAX_POW), with a
|
|
16
|
+
* finiteness guard so r^n that overflows returns an explicit ∞, not garbage;
|
|
17
|
+
* • iⁿ is computed EXACTLY from n mod 4 (no float drift in the i, −1, −i, 1 cycle);
|
|
18
|
+
* • rootsOfUnity / nthRoots cap n (MAX_ROOTS) so an author can't request a
|
|
19
|
+
* billion-element array.
|
|
20
|
+
*/
|
|
21
|
+
interface Complex {
|
|
22
|
+
re: number;
|
|
23
|
+
im: number;
|
|
24
|
+
}
|
|
25
|
+
declare const TWO_PI: number;
|
|
26
|
+
declare const RAD2DEG: number;
|
|
27
|
+
declare const DEG2RAD: number;
|
|
28
|
+
/** Hard caps so an authored value can never blow memory or hang a loop. */
|
|
29
|
+
declare const MAX_POW = 1024;
|
|
30
|
+
declare const MAX_ROOTS = 360;
|
|
31
|
+
declare const cx: (re: number, im?: number) => Complex;
|
|
32
|
+
declare const ZERO: Complex;
|
|
33
|
+
declare const ONE: Complex;
|
|
34
|
+
declare const I: Complex;
|
|
35
|
+
declare const isFiniteC: (z: Complex) => boolean;
|
|
36
|
+
declare const add: (a: Complex, b: Complex) => Complex;
|
|
37
|
+
declare const sub: (a: Complex, b: Complex) => Complex;
|
|
38
|
+
declare const neg: (a: Complex) => Complex;
|
|
39
|
+
declare const conj: (a: Complex) => Complex;
|
|
40
|
+
declare const scale: (a: Complex, k: number) => Complex;
|
|
41
|
+
/** (a+bi)(c+di) = (ac − bd) + (ad + bc)i. */
|
|
42
|
+
declare const mul: (a: Complex, b: Complex) => Complex;
|
|
43
|
+
/**
|
|
44
|
+
* Complex division via Smith's algorithm: divide through by the LARGER of the
|
|
45
|
+
* denominator's components so the intermediate ratio stays in [−1, 1] (no
|
|
46
|
+
* overflow when |b| is huge, no underflow when tiny). Returns an ∞/NaN complex
|
|
47
|
+
* for a (near-)zero denominator rather than throwing.
|
|
48
|
+
*/
|
|
49
|
+
declare function div(a: Complex, b: Complex): Complex;
|
|
50
|
+
/** Modulus |z| = √(re² + im²), via hypot so large components don't overflow. */
|
|
51
|
+
declare const abs: (z: Complex) => number;
|
|
52
|
+
/** Argument arg(z) in RADIANS, in (−π, π]. arg(0) = 0 by convention. */
|
|
53
|
+
declare const arg: (z: Complex) => number;
|
|
54
|
+
/** Argument in DEGREES, in (−180, 180]. */
|
|
55
|
+
declare const argDeg: (z: Complex) => number;
|
|
56
|
+
/** Polar → rectangular: r·e^{iθ} = r(cosθ + i sinθ), θ in radians. */
|
|
57
|
+
declare const fromPolar: (r: number, theta: number) => Complex;
|
|
58
|
+
/** Rectangular → polar { r, theta(rad) }. */
|
|
59
|
+
declare const toPolar: (z: Complex) => {
|
|
60
|
+
r: number;
|
|
61
|
+
theta: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* iⁿ for any integer n, EXACTLY (no De Moivre float drift): the 4-cycle
|
|
65
|
+
* 1, i, −1, −i. Negative n handled by the (n mod 4 + 4) mod 4 normalisation.
|
|
66
|
+
*/
|
|
67
|
+
declare function iPow(n: number): Complex;
|
|
68
|
+
/**
|
|
69
|
+
* zⁿ for an INTEGER n via exponentiation-by-squaring (negative n inverts).
|
|
70
|
+
* |n| is capped at MAX_POW; an overflowing magnitude returns an explicit ∞
|
|
71
|
+
* complex (finite check) instead of looping into garbage.
|
|
72
|
+
*/
|
|
73
|
+
declare function powInt(z: Complex, n: number): Complex;
|
|
74
|
+
/**
|
|
75
|
+
* The n nth-roots of UNITY: e^{2πik/n}, k = 0…n−1 (so ω = roots[1] is the
|
|
76
|
+
* primitive root). For n = 2 → {1, −1}; n = 3 → {1, ω, ω²}; n = 4 → {1, i, −1, −i}.
|
|
77
|
+
* n is clamped to [1, MAX_ROOTS]. The k = n/2 (real −1) and k = 0 (real 1) entries
|
|
78
|
+
* are snapped to exact values so labels read cleanly.
|
|
79
|
+
*/
|
|
80
|
+
declare function rootsOfUnity(n: number): Complex[];
|
|
81
|
+
/** The n nth-roots of any z: |z|^{1/n} · e^{i(arg z + 2πk)/n}, k = 0…n−1. */
|
|
82
|
+
declare function nthRoots(z: Complex, n: number): Complex[];
|
|
83
|
+
/** The primitive nth root of unity ω (default the CUBE root, n = 3): e^{2πi/n}.
|
|
84
|
+
* For n = 3: ω = −½ + (√3/2)i, with ω³ = 1 and 1 + ω + ω² = 0. */
|
|
85
|
+
declare const omega: (n?: number) => Complex;
|
|
86
|
+
/** Equal within a tolerance (default 1e-9), on both components. */
|
|
87
|
+
declare const eq: (a: Complex, b: Complex, eps?: number) => boolean;
|
|
88
|
+
/** Plain string, e.g. "3 − 2i", "i", "−1", "0", "2i". */
|
|
89
|
+
declare function toStr(z: Complex, dp?: number): string;
|
|
90
|
+
/** LaTeX form for <Tex> (uses real minus signs, "i"). */
|
|
91
|
+
declare function toTex(z: Complex, dp?: number): string;
|
|
92
|
+
//#endregion
|
|
93
|
+
export { Complex, core_d_exports };
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/math/complex/core.ts
|
|
4
|
+
var core_exports = /* @__PURE__ */ __exportAll({
|
|
5
|
+
DEG2RAD: () => DEG2RAD,
|
|
6
|
+
I: () => I,
|
|
7
|
+
MAX_POW: () => MAX_POW,
|
|
8
|
+
MAX_ROOTS: () => 360,
|
|
9
|
+
ONE: () => ONE,
|
|
10
|
+
RAD2DEG: () => RAD2DEG,
|
|
11
|
+
TWO_PI: () => TWO_PI,
|
|
12
|
+
ZERO: () => ZERO,
|
|
13
|
+
abs: () => abs,
|
|
14
|
+
add: () => add,
|
|
15
|
+
arg: () => arg,
|
|
16
|
+
argDeg: () => argDeg,
|
|
17
|
+
conj: () => conj,
|
|
18
|
+
cx: () => cx,
|
|
19
|
+
div: () => div,
|
|
20
|
+
eq: () => eq,
|
|
21
|
+
fromPolar: () => fromPolar,
|
|
22
|
+
iPow: () => iPow,
|
|
23
|
+
isFiniteC: () => isFiniteC,
|
|
24
|
+
mul: () => mul,
|
|
25
|
+
neg: () => neg,
|
|
26
|
+
nthRoots: () => nthRoots,
|
|
27
|
+
omega: () => omega,
|
|
28
|
+
powInt: () => powInt,
|
|
29
|
+
rootsOfUnity: () => rootsOfUnity,
|
|
30
|
+
scale: () => scale,
|
|
31
|
+
sub: () => sub,
|
|
32
|
+
toPolar: () => toPolar,
|
|
33
|
+
toStr: () => toStr,
|
|
34
|
+
toTex: () => toTex
|
|
35
|
+
});
|
|
36
|
+
const TWO_PI = Math.PI * 2;
|
|
37
|
+
const RAD2DEG = 180 / Math.PI;
|
|
38
|
+
const DEG2RAD = Math.PI / 180;
|
|
39
|
+
/** Hard caps so an authored value can never blow memory or hang a loop. */
|
|
40
|
+
const MAX_POW = 1024;
|
|
41
|
+
const MAX_ROOTS = 360;
|
|
42
|
+
const cx = (re, im = 0) => ({
|
|
43
|
+
re,
|
|
44
|
+
im
|
|
45
|
+
});
|
|
46
|
+
const ZERO = {
|
|
47
|
+
re: 0,
|
|
48
|
+
im: 0
|
|
49
|
+
};
|
|
50
|
+
const ONE = {
|
|
51
|
+
re: 1,
|
|
52
|
+
im: 0
|
|
53
|
+
};
|
|
54
|
+
const I = {
|
|
55
|
+
re: 0,
|
|
56
|
+
im: 1
|
|
57
|
+
};
|
|
58
|
+
const isFiniteC = (z) => Number.isFinite(z.re) && Number.isFinite(z.im);
|
|
59
|
+
const add = (a, b) => ({
|
|
60
|
+
re: a.re + b.re,
|
|
61
|
+
im: a.im + b.im
|
|
62
|
+
});
|
|
63
|
+
const sub = (a, b) => ({
|
|
64
|
+
re: a.re - b.re,
|
|
65
|
+
im: a.im - b.im
|
|
66
|
+
});
|
|
67
|
+
const neg = (a) => ({
|
|
68
|
+
re: -a.re,
|
|
69
|
+
im: -a.im
|
|
70
|
+
});
|
|
71
|
+
const conj = (a) => ({
|
|
72
|
+
re: a.re,
|
|
73
|
+
im: -a.im
|
|
74
|
+
});
|
|
75
|
+
const scale = (a, k) => ({
|
|
76
|
+
re: a.re * k,
|
|
77
|
+
im: a.im * k
|
|
78
|
+
});
|
|
79
|
+
/** (a+bi)(c+di) = (ac − bd) + (ad + bc)i. */
|
|
80
|
+
const mul = (a, b) => ({
|
|
81
|
+
re: a.re * b.re - a.im * b.im,
|
|
82
|
+
im: a.re * b.im + a.im * b.re
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Complex division via Smith's algorithm: divide through by the LARGER of the
|
|
86
|
+
* denominator's components so the intermediate ratio stays in [−1, 1] (no
|
|
87
|
+
* overflow when |b| is huge, no underflow when tiny). Returns an ∞/NaN complex
|
|
88
|
+
* for a (near-)zero denominator rather than throwing.
|
|
89
|
+
*/
|
|
90
|
+
function div(a, b) {
|
|
91
|
+
const { re: c, im: d } = b;
|
|
92
|
+
if (c === 0 && d === 0) return {
|
|
93
|
+
re: a.re / 0,
|
|
94
|
+
im: a.im / 0
|
|
95
|
+
};
|
|
96
|
+
if (Math.abs(c) >= Math.abs(d)) {
|
|
97
|
+
const r = d / c, den = c + d * r;
|
|
98
|
+
return {
|
|
99
|
+
re: (a.re + a.im * r) / den,
|
|
100
|
+
im: (a.im - a.re * r) / den
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const r = c / d, den = c * r + d;
|
|
104
|
+
return {
|
|
105
|
+
re: (a.re * r + a.im) / den,
|
|
106
|
+
im: (a.im * r - a.re) / den
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Modulus |z| = √(re² + im²), via hypot so large components don't overflow. */
|
|
110
|
+
const abs = (z) => Math.hypot(z.re, z.im);
|
|
111
|
+
/** Argument arg(z) in RADIANS, in (−π, π]. arg(0) = 0 by convention. */
|
|
112
|
+
const arg = (z) => z.re === 0 && z.im === 0 ? 0 : Math.atan2(z.im, z.re);
|
|
113
|
+
/** Argument in DEGREES, in (−180, 180]. */
|
|
114
|
+
const argDeg = (z) => arg(z) * RAD2DEG;
|
|
115
|
+
/** Polar → rectangular: r·e^{iθ} = r(cosθ + i sinθ), θ in radians. */
|
|
116
|
+
const fromPolar = (r, theta) => ({
|
|
117
|
+
re: r * Math.cos(theta),
|
|
118
|
+
im: r * Math.sin(theta)
|
|
119
|
+
});
|
|
120
|
+
/** Rectangular → polar { r, theta(rad) }. */
|
|
121
|
+
const toPolar = (z) => ({
|
|
122
|
+
r: abs(z),
|
|
123
|
+
theta: arg(z)
|
|
124
|
+
});
|
|
125
|
+
/**
|
|
126
|
+
* iⁿ for any integer n, EXACTLY (no De Moivre float drift): the 4-cycle
|
|
127
|
+
* 1, i, −1, −i. Negative n handled by the (n mod 4 + 4) mod 4 normalisation.
|
|
128
|
+
*/
|
|
129
|
+
function iPow(n) {
|
|
130
|
+
if (!Number.isInteger(n)) return {
|
|
131
|
+
re: NaN,
|
|
132
|
+
im: NaN
|
|
133
|
+
};
|
|
134
|
+
switch ((n % 4 + 4) % 4) {
|
|
135
|
+
case 0: return {
|
|
136
|
+
re: 1,
|
|
137
|
+
im: 0
|
|
138
|
+
};
|
|
139
|
+
case 1: return {
|
|
140
|
+
re: 0,
|
|
141
|
+
im: 1
|
|
142
|
+
};
|
|
143
|
+
case 2: return {
|
|
144
|
+
re: -1,
|
|
145
|
+
im: 0
|
|
146
|
+
};
|
|
147
|
+
default: return {
|
|
148
|
+
re: 0,
|
|
149
|
+
im: -1
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* zⁿ for an INTEGER n via exponentiation-by-squaring (negative n inverts).
|
|
155
|
+
* |n| is capped at MAX_POW; an overflowing magnitude returns an explicit ∞
|
|
156
|
+
* complex (finite check) instead of looping into garbage.
|
|
157
|
+
*/
|
|
158
|
+
function powInt(z, n) {
|
|
159
|
+
if (!Number.isInteger(n)) return {
|
|
160
|
+
re: NaN,
|
|
161
|
+
im: NaN
|
|
162
|
+
};
|
|
163
|
+
if (Math.abs(n) > 1024) return {
|
|
164
|
+
re: Infinity,
|
|
165
|
+
im: Infinity
|
|
166
|
+
};
|
|
167
|
+
if (n === 0) return { ...ONE };
|
|
168
|
+
let base = n < 0 ? div(ONE, z) : z;
|
|
169
|
+
let e = Math.abs(n);
|
|
170
|
+
let acc = { ...ONE };
|
|
171
|
+
while (e > 0) {
|
|
172
|
+
if (e & 1) acc = mul(acc, base);
|
|
173
|
+
e >>= 1;
|
|
174
|
+
if (e > 0) base = mul(base, base);
|
|
175
|
+
if (!isFiniteC(acc)) return {
|
|
176
|
+
re: Infinity,
|
|
177
|
+
im: Infinity
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
return acc;
|
|
181
|
+
}
|
|
182
|
+
/** Clamp an nth-root count to a safe, sane range [1, MAX_ROOTS]. */
|
|
183
|
+
const safeN = (n) => Number.isInteger(n) && n >= 1 ? Math.min(n, 360) : 1;
|
|
184
|
+
/**
|
|
185
|
+
* The n nth-roots of UNITY: e^{2πik/n}, k = 0…n−1 (so ω = roots[1] is the
|
|
186
|
+
* primitive root). For n = 2 → {1, −1}; n = 3 → {1, ω, ω²}; n = 4 → {1, i, −1, −i}.
|
|
187
|
+
* n is clamped to [1, MAX_ROOTS]. The k = n/2 (real −1) and k = 0 (real 1) entries
|
|
188
|
+
* are snapped to exact values so labels read cleanly.
|
|
189
|
+
*/
|
|
190
|
+
function rootsOfUnity(n) {
|
|
191
|
+
const m = safeN(n);
|
|
192
|
+
return Array.from({ length: m }, (_, k) => {
|
|
193
|
+
if (k === 0) return {
|
|
194
|
+
re: 1,
|
|
195
|
+
im: 0
|
|
196
|
+
};
|
|
197
|
+
if (m % 2 === 0 && k === m / 2) return {
|
|
198
|
+
re: -1,
|
|
199
|
+
im: 0
|
|
200
|
+
};
|
|
201
|
+
return fromPolar(1, TWO_PI * k / m);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
/** The n nth-roots of any z: |z|^{1/n} · e^{i(arg z + 2πk)/n}, k = 0…n−1. */
|
|
205
|
+
function nthRoots(z, n) {
|
|
206
|
+
const m = safeN(n);
|
|
207
|
+
const { r, theta } = toPolar(z);
|
|
208
|
+
const root = Math.pow(r, 1 / m);
|
|
209
|
+
return Array.from({ length: m }, (_, k) => fromPolar(root, (theta + TWO_PI * k) / m));
|
|
210
|
+
}
|
|
211
|
+
/** The primitive nth root of unity ω (default the CUBE root, n = 3): e^{2πi/n}.
|
|
212
|
+
* For n = 3: ω = −½ + (√3/2)i, with ω³ = 1 and 1 + ω + ω² = 0. */
|
|
213
|
+
const omega = (n = 3) => fromPolar(1, TWO_PI / safeN(n));
|
|
214
|
+
/** Equal within a tolerance (default 1e-9), on both components. */
|
|
215
|
+
const eq = (a, b, eps = 1e-9) => Math.abs(a.re - b.re) <= eps && Math.abs(a.im - b.im) <= eps;
|
|
216
|
+
const numStr = (n, dp) => {
|
|
217
|
+
if (!Number.isFinite(n)) return n > 0 ? "∞" : "−∞";
|
|
218
|
+
const r = Math.round(n * 10 ** dp) / 10 ** dp;
|
|
219
|
+
return Object.is(r, -0) ? "0" : String(r).replace(/^-/, "−");
|
|
220
|
+
};
|
|
221
|
+
/** Plain string, e.g. "3 − 2i", "i", "−1", "0", "2i". */
|
|
222
|
+
function toStr(z, dp = 2) {
|
|
223
|
+
if (!isFiniteC(z)) return "∞";
|
|
224
|
+
const re = Math.round(z.re * 10 ** dp) / 10 ** dp;
|
|
225
|
+
const im = Math.round(z.im * 10 ** dp) / 10 ** dp;
|
|
226
|
+
if (im === 0) return numStr(re, dp);
|
|
227
|
+
const imPart = im === 1 ? "i" : im === -1 ? "−i" : `${numStr(Math.abs(im), dp)}i`;
|
|
228
|
+
if (re === 0) return im < 0 && im !== -1 ? `−${imPart}` : im === -1 ? "−i" : imPart;
|
|
229
|
+
const sign = im < 0 ? "−" : "+";
|
|
230
|
+
const mag = Math.abs(im) === 1 ? "i" : `${numStr(Math.abs(im), dp)}i`;
|
|
231
|
+
return `${numStr(re, dp)} ${sign} ${mag}`;
|
|
232
|
+
}
|
|
233
|
+
/** LaTeX form for <Tex> (uses real minus signs, "i"). */
|
|
234
|
+
function toTex(z, dp = 2) {
|
|
235
|
+
return toStr(z, dp).replace(/−/g, "-");
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
//#endregion
|
|
239
|
+
export { I, ONE, ZERO, abs, add, arg, argDeg, core_exports, cx, div, eq, fromPolar, iPow, isFiniteC, mul, powInt, rootsOfUnity, sub, toStr, toTex };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/math/complex/preset.d.ts
|
|
4
|
+
type ComplexMode = 'point' | 'multiply' | 'power' | 'roots';
|
|
5
|
+
interface ComplexPlaneProps {
|
|
6
|
+
start?: {
|
|
7
|
+
re: number;
|
|
8
|
+
im: number;
|
|
9
|
+
};
|
|
10
|
+
mode?: ComplexMode;
|
|
11
|
+
/** roots mode: how many nth-roots of unity to draw (clamped 2..12). */
|
|
12
|
+
rootsN?: number;
|
|
13
|
+
/** power mode: highest power to plot (clamped 2..6). */
|
|
14
|
+
powerN?: number;
|
|
15
|
+
/** grid snap in units (0 = free). Default 1. */
|
|
16
|
+
snap?: number;
|
|
17
|
+
/** view half-extent ±range on both axes. Default 6. */
|
|
18
|
+
range?: number;
|
|
19
|
+
/** target z for a checkpoint ("drag to 3 + 4i"). */
|
|
20
|
+
target?: {
|
|
21
|
+
re: number;
|
|
22
|
+
im: number;
|
|
23
|
+
};
|
|
24
|
+
height?: number;
|
|
25
|
+
title?: string;
|
|
26
|
+
prompt?: string;
|
|
27
|
+
activity?: string;
|
|
28
|
+
}
|
|
29
|
+
declare function ComplexPlaneLab(props?: ComplexPlaneProps): ReactNode;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { ComplexMode, ComplexPlaneLab, ComplexPlaneProps };
|