@classytic/labs 0.2.0 β†’ 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3475) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +243 -14
  3. package/dist/_virtual/_rolldown/runtime.mjs +19 -1
  4. package/dist/algorithms/GraphAlgorithmLab.d.mts +13 -0
  5. package/dist/algorithms/GraphAlgorithmLab.mjs +183 -0
  6. package/dist/algorithms/GraphView.d.mts +14 -0
  7. package/dist/algorithms/GraphView.mjs +86 -0
  8. package/dist/algorithms/GridPathLab.d.mts +10 -0
  9. package/dist/algorithms/GridPathLab.mjs +164 -0
  10. package/dist/algorithms/GrowthLab.d.mts +12 -0
  11. package/dist/algorithms/GrowthLab.mjs +191 -0
  12. package/dist/algorithms/HashLab.d.mts +13 -0
  13. package/dist/algorithms/HashLab.mjs +200 -0
  14. package/dist/algorithms/HeapDualView.d.mts +11 -0
  15. package/dist/algorithms/HeapDualView.mjs +115 -0
  16. package/dist/algorithms/HeapQuestLab.d.mts +14 -0
  17. package/dist/algorithms/HeapQuestLab.mjs +152 -0
  18. package/dist/algorithms/LearningChecks.mjs +36 -0
  19. package/dist/algorithms/ListLab.d.mts +14 -0
  20. package/dist/algorithms/ListLab.mjs +208 -0
  21. package/dist/algorithms/SearchLab.d.mts +11 -0
  22. package/dist/algorithms/SearchLab.mjs +201 -0
  23. package/dist/algorithms/SortingLab.d.mts +14 -0
  24. package/dist/algorithms/SortingLab.mjs +190 -0
  25. package/dist/algorithms/TraceTransport.d.mts +12 -0
  26. package/dist/algorithms/TraceTransport.mjs +191 -0
  27. package/dist/algorithms/TreeQuestLab.d.mts +17 -0
  28. package/dist/algorithms/TreeQuestLab.mjs +289 -0
  29. package/dist/algorithms/TreeScene.d.mts +11 -0
  30. package/dist/algorithms/TreeScene.mjs +203 -0
  31. package/dist/algorithms/contract.d.mts +75 -0
  32. package/dist/algorithms/core/index.d.mts +17 -0
  33. package/dist/algorithms/core/index.mjs +16 -0
  34. package/dist/algorithms/cost-derivation/core.d.mts +66 -0
  35. package/dist/algorithms/cost-derivation/core.mjs +93 -0
  36. package/dist/algorithms/cost-derivation/index.d.mts +3 -0
  37. package/dist/algorithms/cost-derivation/preset.d.mts +13 -0
  38. package/dist/algorithms/cost-derivation/preset.mjs +371 -0
  39. package/dist/algorithms/dp/index.d.mts +3 -0
  40. package/dist/algorithms/dp/index.mjs +3 -0
  41. package/dist/algorithms/dp.d.mts +6 -0
  42. package/dist/algorithms/dp.mjs +32 -0
  43. package/dist/algorithms/graph/index.d.mts +5 -0
  44. package/dist/algorithms/graph/index.mjs +5 -0
  45. package/dist/algorithms/graph.d.mts +8 -0
  46. package/dist/algorithms/graph.mjs +148 -0
  47. package/dist/algorithms/growth.d.mts +56 -0
  48. package/dist/algorithms/growth.mjs +99 -0
  49. package/dist/algorithms/hashing.d.mts +63 -0
  50. package/dist/algorithms/hashing.mjs +121 -0
  51. package/dist/algorithms/heap/index.d.mts +3 -0
  52. package/dist/algorithms/heap/index.mjs +4 -0
  53. package/dist/algorithms/heap.d.mts +37 -0
  54. package/dist/algorithms/heap.mjs +190 -0
  55. package/dist/algorithms/index.d.mts +34 -0
  56. package/dist/algorithms/index.mjs +32 -0
  57. package/dist/algorithms/lists.d.mts +53 -0
  58. package/dist/algorithms/lists.mjs +254 -0
  59. package/dist/algorithms/normalize.d.mts +5 -0
  60. package/dist/algorithms/normalize.mjs +27 -0
  61. package/dist/algorithms/presets.d.mts +5 -0
  62. package/dist/algorithms/presets.mjs +94 -0
  63. package/dist/algorithms/react/index.d.mts +9 -0
  64. package/dist/algorithms/react/index.mjs +12 -0
  65. package/dist/algorithms/search.d.mts +44 -0
  66. package/dist/algorithms/search.mjs +65 -0
  67. package/dist/algorithms/sequence-contract.d.mts +39 -0
  68. package/dist/algorithms/sequence-contract.mjs +5 -0
  69. package/dist/algorithms/sorting.d.mts +29 -0
  70. package/dist/algorithms/sorting.mjs +219 -0
  71. package/dist/algorithms/tree/index.d.mts +6 -0
  72. package/dist/algorithms/tree/index.mjs +6 -0
  73. package/dist/algorithms/tree-builder.d.mts +7 -0
  74. package/dist/algorithms/tree-builder.mjs +54 -0
  75. package/dist/algorithms/tree-contract.d.mts +95 -0
  76. package/dist/algorithms/tree-layout.d.mts +8 -0
  77. package/dist/algorithms/tree-layout.mjs +47 -0
  78. package/dist/algorithms/tree-presets.d.mts +6 -0
  79. package/dist/algorithms/tree-presets.mjs +92 -0
  80. package/dist/algorithms/tree.d.mts +9 -0
  81. package/dist/algorithms/tree.mjs +375 -0
  82. package/dist/authoring/evidence.mjs +68 -0
  83. package/dist/authoring/index.d.mts +10 -0
  84. package/dist/authoring/index.mjs +20 -0
  85. package/dist/authoring/quality.d.mts +19 -0
  86. package/dist/authoring/quality.mjs +81 -0
  87. package/dist/authoring/report.d.mts +32 -0
  88. package/dist/authoring/report.mjs +38 -0
  89. package/dist/biology/cell-division/activity.d.mts +1 -0
  90. package/dist/biology/cell-division/activity.mjs +82 -0
  91. package/dist/biology/cell-division/core.d.mts +24 -0
  92. package/dist/biology/cell-division/core.mjs +88 -0
  93. package/dist/biology/cell-division/index.d.mts +8 -0
  94. package/dist/biology/cell-division/meiosis-activity.d.mts +1 -0
  95. package/dist/biology/cell-division/meiosis-activity.mjs +81 -0
  96. package/dist/biology/cell-division/meiosis-core.d.mts +19 -0
  97. package/dist/biology/cell-division/meiosis-core.mjs +89 -0
  98. package/dist/biology/cell-division/meiosis-preset.d.mts +25 -0
  99. package/dist/biology/cell-division/meiosis-preset.mjs +117 -0
  100. package/dist/biology/cell-division/meiosis-scene.d.mts +7 -0
  101. package/dist/biology/cell-division/meiosis-scene.mjs +149 -0
  102. package/dist/biology/cell-division/preset.d.mts +27 -0
  103. package/dist/biology/cell-division/preset.mjs +228 -0
  104. package/dist/biology/cell-energy/activity.d.mts +1 -0
  105. package/dist/biology/cell-energy/activity.mjs +74 -0
  106. package/dist/biology/cell-energy/core.d.mts +20 -0
  107. package/dist/biology/cell-energy/core.mjs +17 -0
  108. package/dist/biology/cell-energy/index.d.mts +4 -0
  109. package/dist/biology/cell-energy/preset.d.mts +27 -0
  110. package/dist/biology/cell-energy/preset.mjs +110 -0
  111. package/dist/biology/cell-sample-investigator/core.d.mts +18 -0
  112. package/dist/biology/cell-sample-investigator/core.mjs +56 -0
  113. package/dist/biology/cell-sample-investigator.d.mts +17 -0
  114. package/dist/biology/cell-sample-investigator.mjs +446 -0
  115. package/dist/biology/cell-system/activity.d.mts +1 -0
  116. package/dist/biology/cell-system/activity.mjs +74 -0
  117. package/dist/biology/cell-system/core.d.mts +18 -0
  118. package/dist/biology/cell-system/core.mjs +63 -0
  119. package/dist/biology/cell-system/index.d.mts +4 -0
  120. package/dist/biology/cell-system/preset.d.mts +22 -0
  121. package/dist/biology/cell-system/preset.mjs +82 -0
  122. package/dist/biology/enzyme-rate/index.d.mts +2 -1
  123. package/dist/biology/enzyme-rate/preset.d.mts +1 -11
  124. package/dist/biology/enzyme-rate/preset.mjs +115 -46
  125. package/dist/biology/genetic-cross/core.mjs +1 -1
  126. package/dist/biology/genetic-cross/grid.mjs +119 -106
  127. package/dist/biology/genetic-cross/index.d.mts +2 -1
  128. package/dist/biology/genetic-cross/preset.d.mts +2 -11
  129. package/dist/biology/genetic-cross/preset.mjs +17 -60
  130. package/dist/biology/genetic-cross/sex-linked.d.mts +1 -12
  131. package/dist/biology/genetic-cross/sex-linked.mjs +33 -74
  132. package/dist/biology/index.d.mts +24 -1
  133. package/dist/biology/index.mjs +14 -1
  134. package/dist/biology/membrane-transport/activity.d.mts +1 -0
  135. package/dist/biology/membrane-transport/activity.mjs +74 -0
  136. package/dist/biology/membrane-transport/core.d.mts +22 -0
  137. package/dist/biology/membrane-transport/core.mjs +49 -0
  138. package/dist/biology/membrane-transport/index.d.mts +4 -0
  139. package/dist/biology/membrane-transport/preset.d.mts +27 -0
  140. package/dist/biology/membrane-transport/preset.mjs +131 -0
  141. package/dist/biology/photosynthesis-factors/index.d.mts +2 -1
  142. package/dist/biology/photosynthesis-factors/preset.d.mts +1 -11
  143. package/dist/biology/photosynthesis-factors/preset.mjs +129 -75
  144. package/dist/biology/punnett-cross/index.d.mts +2 -1
  145. package/dist/biology/punnett-cross/preset.d.mts +1 -12
  146. package/dist/biology/punnett-cross/preset.mjs +2 -1
  147. package/dist/biology/respiration/index.d.mts +2 -1
  148. package/dist/biology/respiration/preset.d.mts +1 -7
  149. package/dist/biology/respiration/preset.mjs +75 -64
  150. package/dist/biology/sequence/central-dogma.d.mts +1 -7
  151. package/dist/biology/sequence/central-dogma.mjs +195 -188
  152. package/dist/biology/sequence/index.d.mts +2 -1
  153. package/dist/biology/sequence/preset.d.mts +1 -8
  154. package/dist/biology/sequence/preset.mjs +172 -128
  155. package/dist/blocks/authoring.d.mts +0 -1
  156. package/dist/blocks/authoring.mjs +329 -171
  157. package/dist/blocks/catalog.d.mts +16 -0
  158. package/dist/blocks/catalog.mjs +9 -0
  159. package/dist/blocks/domains.d.mts +10 -0
  160. package/dist/blocks/domains.mjs +14 -0
  161. package/dist/blocks/gallery.d.mts +3 -0
  162. package/dist/blocks/gallery.mjs +6 -0
  163. package/dist/blocks/index.d.mts +7 -6951
  164. package/dist/blocks/index.mjs +9 -107
  165. package/dist/blocks/lab-block.mjs +15 -43
  166. package/dist/blocks/lab-config.d.mts +1 -8
  167. package/dist/blocks/lab-config.mjs +109 -32
  168. package/dist/blocks/lazy-resolve.d.mts +16 -0
  169. package/dist/blocks/lazy-resolve.mjs +24 -0
  170. package/dist/blocks/lazy.d.mts +8 -0
  171. package/dist/blocks/lazy.mjs +12 -0
  172. package/dist/blocks/lesson.d.mts +1 -7
  173. package/dist/blocks/lesson.mjs +12 -11
  174. package/dist/blocks/resolve.d.mts +2 -0
  175. package/dist/blocks/resolve.mjs +5 -0
  176. package/dist/build/CircuitEditor.d.mts +1 -5
  177. package/dist/build/CircuitEditor.mjs +380 -368
  178. package/dist/build/CircuitPlayer.d.mts +1 -7
  179. package/dist/build/CircuitScene.d.mts +8 -10
  180. package/dist/build/CircuitScene.mjs +298 -209
  181. package/dist/build/contract.d.mts +1 -2
  182. package/dist/build/editor/index.d.mts +4 -0
  183. package/dist/build/editor/index.mjs +6 -0
  184. package/dist/build/editor-ops.d.mts +0 -1
  185. package/dist/build/editor-ops.mjs +3 -2
  186. package/dist/build/editor-ui.mjs +60 -83
  187. package/dist/build/flow.d.mts +0 -1
  188. package/dist/build/index.d.mts +2 -2
  189. package/dist/build/parts/ammeter.d.mts +1 -1
  190. package/dist/build/parts/ammeter.mjs +1 -1
  191. package/dist/build/parts/bulb.d.mts +1 -1
  192. package/dist/build/parts/bulb.mjs +1 -1
  193. package/dist/build/parts/capacitor.d.mts +1 -1
  194. package/dist/build/parts/capacitor.mjs +1 -1
  195. package/dist/build/parts/cell.d.mts +1 -1
  196. package/dist/build/parts/cell.mjs +1 -1
  197. package/dist/build/parts/diode.d.mts +1 -1
  198. package/dist/build/parts/diode.mjs +1 -1
  199. package/dist/build/parts/index.d.mts +10 -0
  200. package/dist/build/parts/index.mjs +1 -1
  201. package/dist/build/parts/mosfet.d.mts +1 -1
  202. package/dist/build/parts/mosfet.mjs +3 -2
  203. package/dist/build/parts/node.d.mts +1 -1
  204. package/dist/build/parts/node.mjs +1 -1
  205. package/dist/build/parts/resistor.d.mts +1 -1
  206. package/dist/build/parts/resistor.mjs +1 -1
  207. package/dist/build/parts/shared.mjs +1 -1
  208. package/dist/build/parts/switch.d.mts +1 -1
  209. package/dist/build/parts/switch.mjs +1 -1
  210. package/dist/build/registry.d.mts +0 -1
  211. package/dist/build/runtime/index.d.mts +8 -0
  212. package/dist/build/runtime/index.mjs +10 -0
  213. package/dist/build/solve.d.mts +0 -1
  214. package/dist/build/solve.mjs +0 -0
  215. package/dist/build/viewport.mjs +231 -0
  216. package/dist/catalog/registry.d.mts +1 -2
  217. package/dist/chem/applied-chemistry-lab.d.mts +10 -0
  218. package/dist/chem/applied-chemistry-lab.mjs +341 -0
  219. package/dist/chem/battery.d.mts +3 -6
  220. package/dist/chem/battery.mjs +320 -191
  221. package/dist/chem/bohr-atom.d.mts +3 -6
  222. package/dist/chem/bohr-atom.mjs +80 -26
  223. package/dist/chem/crystal-lattice/activity.d.mts +5 -0
  224. package/dist/chem/crystal-lattice/activity.mjs +95 -0
  225. package/dist/chem/crystal-lattice/core.d.mts +19 -0
  226. package/dist/chem/crystal-lattice/core.mjs +101 -0
  227. package/dist/chem/crystal-lattice/index.d.mts +4 -0
  228. package/dist/chem/crystal-lattice/preset.d.mts +28 -0
  229. package/dist/chem/crystal-lattice/preset.mjs +244 -0
  230. package/dist/chem/diffusion/asset.mjs +76 -38
  231. package/dist/chem/diffusion/index.d.mts +2 -1
  232. package/dist/chem/diffusion/preset.d.mts +3 -6
  233. package/dist/chem/diffusion/preset.mjs +145 -91
  234. package/dist/chem/electrochem/index.d.mts +3 -1
  235. package/dist/chem/electrochem/preset.d.mts +3 -10
  236. package/dist/chem/electrochem/preset.mjs +157 -345
  237. package/dist/chem/electrochem/scene.d.mts +2 -0
  238. package/dist/chem/electrochem/scene.mjs +370 -0
  239. package/dist/chem/equation-conservation-desk.d.mts +22 -0
  240. package/dist/chem/equation-conservation-desk.mjs +250 -0
  241. package/dist/chem/equilibrium/index.d.mts +2 -1
  242. package/dist/chem/equilibrium/preset.d.mts +3 -13
  243. package/dist/chem/equilibrium/preset.mjs +343 -281
  244. package/dist/chem/evidence-scenes.mjs +460 -0
  245. package/dist/chem/formula-forge.d.mts +11 -0
  246. package/dist/chem/formula-forge.mjs +347 -0
  247. package/dist/chem/gas-box/index.d.mts +2 -1
  248. package/dist/chem/gas-box/preset.d.mts +3 -12
  249. package/dist/chem/gas-box/preset.mjs +203 -151
  250. package/dist/chem/index.d.mts +49 -2
  251. package/dist/chem/index.mjs +32 -1
  252. package/dist/chem/industrial-process-lab.d.mts +10 -0
  253. package/dist/chem/industrial-process-lab.mjs +197 -0
  254. package/dist/chem/kinetics/index.d.mts +2 -1
  255. package/dist/chem/kinetics/preset.d.mts +3 -11
  256. package/dist/chem/kinetics/preset.mjs +331 -329
  257. package/dist/chem/mole-factory.d.mts +11 -0
  258. package/dist/chem/mole-factory.mjs +351 -0
  259. package/dist/chem/molecular-geometry/activity.d.mts +5 -0
  260. package/dist/chem/molecular-geometry/activity.mjs +90 -0
  261. package/dist/chem/molecular-geometry/core.d.mts +30 -0
  262. package/dist/chem/molecular-geometry/core.mjs +156 -0
  263. package/dist/chem/molecular-geometry/index.d.mts +4 -0
  264. package/dist/chem/molecular-geometry/preset.d.mts +31 -0
  265. package/dist/chem/molecular-geometry/preset.mjs +292 -0
  266. package/dist/chem/o-level-concepts.d.mts +32 -0
  267. package/dist/chem/o-level-concepts.mjs +700 -0
  268. package/dist/chem/orbital-overlap/activity.d.mts +5 -0
  269. package/dist/chem/orbital-overlap/activity.mjs +82 -0
  270. package/dist/chem/orbital-overlap/core.d.mts +12 -0
  271. package/dist/chem/orbital-overlap/core.mjs +27 -0
  272. package/dist/chem/orbital-overlap/index.d.mts +4 -0
  273. package/dist/chem/orbital-overlap/preset.d.mts +25 -0
  274. package/dist/chem/orbital-overlap/preset.mjs +200 -0
  275. package/dist/chem/orbitals/activity.d.mts +5 -0
  276. package/dist/chem/orbitals/activity.mjs +90 -0
  277. package/dist/chem/orbitals/core.d.mts +27 -0
  278. package/dist/chem/orbitals/core.mjs +100 -0
  279. package/dist/chem/orbitals/index.d.mts +4 -0
  280. package/dist/chem/orbitals/preset.d.mts +29 -0
  281. package/dist/chem/orbitals/preset.mjs +213 -0
  282. package/dist/chem/particle-theatre.d.mts +11 -0
  283. package/dist/chem/particle-theatre.mjs +362 -0
  284. package/dist/chem/periodic-trends/index.d.mts +2 -1
  285. package/dist/chem/periodic-trends/preset.d.mts +4 -8
  286. package/dist/chem/periodic-trends/preset.mjs +354 -728
  287. package/dist/chem/ratio-normalizer/core.d.mts +37 -0
  288. package/dist/chem/ratio-normalizer/core.mjs +84 -0
  289. package/dist/chem/ratio-normalizer/index.d.mts +3 -0
  290. package/dist/chem/ratio-normalizer/preset.d.mts +14 -0
  291. package/dist/chem/ratio-normalizer/preset.mjs +241 -0
  292. package/dist/chem/reaction-lab.d.mts +3 -7
  293. package/dist/chem/reaction-lab.mjs +193 -92
  294. package/dist/chem/reaction-profile.d.mts +3 -8
  295. package/dist/chem/reaction-profile.mjs +202 -181
  296. package/dist/chem/solubility-kitchen.d.mts +11 -0
  297. package/dist/chem/solubility-kitchen.mjs +267 -0
  298. package/dist/chem/solution/dilution.d.mts +4 -12
  299. package/dist/chem/solution/dilution.mjs +166 -131
  300. package/dist/chem/solution/field.d.mts +13 -15
  301. package/dist/chem/solution/field.mjs +122 -88
  302. package/dist/chem/solution/index.d.mts +2 -1
  303. package/dist/chem/solution/solution-box.d.mts +4 -12
  304. package/dist/chem/solution/solution-box.mjs +133 -84
  305. package/dist/chem/solution-mixer.d.mts +11 -0
  306. package/dist/chem/solution-mixer.mjs +268 -0
  307. package/dist/chem/species-workshop.d.mts +11 -0
  308. package/dist/chem/species-workshop.mjs +274 -0
  309. package/dist/chem/stereochemistry/activity.d.mts +5 -0
  310. package/dist/chem/stereochemistry/activity.mjs +88 -0
  311. package/dist/chem/stereochemistry/core.d.mts +25 -0
  312. package/dist/chem/stereochemistry/core.mjs +129 -0
  313. package/dist/chem/stereochemistry/index.d.mts +4 -0
  314. package/dist/chem/stereochemistry/preset.d.mts +30 -0
  315. package/dist/chem/stereochemistry/preset.mjs +245 -0
  316. package/dist/chem/stoichiometry/index.d.mts +2 -1
  317. package/dist/chem/stoichiometry/preset.d.mts +4 -10
  318. package/dist/chem/stoichiometry/preset.mjs +295 -197
  319. package/dist/chem/structure-detective.d.mts +12 -0
  320. package/dist/chem/structure-detective.mjs +496 -0
  321. package/dist/chem/titration/index.d.mts +2 -1
  322. package/dist/chem/titration/preset.d.mts +8 -12
  323. package/dist/chem/titration/preset.mjs +470 -325
  324. package/dist/chem/visual/atom.mjs +41 -0
  325. package/dist/circuits/ac-dc/activity-plan.mjs +70 -0
  326. package/dist/circuits/ac-dc/asset.mjs +2 -2
  327. package/dist/circuits/ac-dc/index.d.mts +2 -1
  328. package/dist/circuits/ac-dc/preset.d.mts +6 -7
  329. package/dist/circuits/ac-dc/preset.mjs +234 -42
  330. package/dist/circuits/ac-response/activity.mjs +121 -0
  331. package/dist/circuits/ac-response/preset.mjs +474 -0
  332. package/dist/circuits/brownout/activity-plan.mjs +83 -0
  333. package/dist/circuits/brownout/index.d.mts +2 -1
  334. package/dist/circuits/brownout/preset.d.mts +3 -10
  335. package/dist/circuits/brownout/preset.mjs +215 -261
  336. package/dist/circuits/capacitor-leak/activity-plan.mjs +83 -0
  337. package/dist/circuits/capacitor-leak/index.d.mts +2 -1
  338. package/dist/circuits/capacitor-leak/preset.d.mts +5 -12
  339. package/dist/circuits/capacitor-leak/preset.mjs +411 -164
  340. package/dist/circuits/cell-combination/activity.mjs +119 -0
  341. package/dist/circuits/cell-combination/core.mjs +115 -0
  342. package/dist/circuits/cell-combination/preset.mjs +265 -0
  343. package/dist/circuits/circuit/activity-plan.mjs +83 -0
  344. package/dist/circuits/circuit/asset.d.mts +0 -1
  345. package/dist/circuits/circuit/asset.mjs +74 -186
  346. package/dist/circuits/circuit/index.d.mts +2 -1
  347. package/dist/circuits/circuit/preset.d.mts +4 -8
  348. package/dist/circuits/circuit/preset.mjs +58 -47
  349. package/dist/circuits/circuit-builder.d.mts +7 -20
  350. package/dist/circuits/circuit-builder.mjs +16 -320
  351. package/dist/circuits/circuit-divider-activity-plan.mjs +101 -0
  352. package/dist/circuits/circuit-lab.d.mts +4 -8
  353. package/dist/circuits/circuit-lab.mjs +137 -159
  354. package/dist/circuits/cmos-gate/activity-plans.mjs +309 -0
  355. package/dist/circuits/cmos-gate/index.d.mts +6 -1
  356. package/dist/circuits/cmos-gate/inverter.d.mts +16 -0
  357. package/dist/circuits/cmos-gate/inverter.mjs +279 -0
  358. package/dist/circuits/cmos-gate/model.mjs +186 -0
  359. package/dist/circuits/cmos-gate/nand.d.mts +15 -0
  360. package/dist/circuits/cmos-gate/nand.mjs +289 -0
  361. package/dist/circuits/cmos-gate/nor.d.mts +15 -0
  362. package/dist/circuits/cmos-gate/nor.mjs +324 -0
  363. package/dist/circuits/cmos-gate/preset.d.mts +5 -75
  364. package/dist/circuits/cmos-gate/rnmos-not.d.mts +17 -0
  365. package/dist/circuits/cmos-gate/rnmos-not.mjs +265 -0
  366. package/dist/circuits/cmos-gate/shared.mjs +6 -0
  367. package/dist/circuits/diode/activity-plan.mjs +97 -0
  368. package/dist/circuits/diode/index.d.mts +2 -1
  369. package/dist/circuits/diode/preset.d.mts +3 -11
  370. package/dist/circuits/diode/preset.mjs +321 -106
  371. package/dist/circuits/energy-cost/activity.mjs +120 -0
  372. package/dist/circuits/energy-cost/core.mjs +93 -0
  373. package/dist/circuits/energy-cost/preset.mjs +278 -0
  374. package/dist/circuits/index.d.mts +26 -3
  375. package/dist/circuits/index.mjs +15 -3
  376. package/dist/circuits/kirchhoff/core.d.mts +70 -0
  377. package/dist/circuits/kirchhoff/core.mjs +187 -0
  378. package/dist/circuits/kirchhoff/index.d.mts +3 -0
  379. package/dist/circuits/kirchhoff/preset.d.mts +37 -0
  380. package/dist/circuits/kirchhoff/preset.mjs +929 -0
  381. package/dist/circuits/meter-conversion/activity.mjs +119 -0
  382. package/dist/circuits/meter-conversion/core.mjs +114 -0
  383. package/dist/circuits/meter-conversion/preset.mjs +311 -0
  384. package/dist/circuits/network-reduction/activity.mjs +140 -0
  385. package/dist/circuits/network-reduction/preset.mjs +424 -0
  386. package/dist/circuits/network-reduction/presets.mjs +239 -0
  387. package/dist/circuits/null-balance/activity.mjs +96 -0
  388. package/dist/circuits/null-balance/core.mjs +145 -0
  389. package/dist/circuits/null-balance/preset.mjs +375 -0
  390. package/dist/circuits/potential-divider/core.d.mts +42 -0
  391. package/dist/circuits/potential-divider/core.mjs +80 -0
  392. package/dist/circuits/potential-divider/index.d.mts +3 -0
  393. package/dist/circuits/potential-divider/preset.d.mts +35 -0
  394. package/dist/circuits/potential-divider/preset.mjs +686 -0
  395. package/dist/circuits/rc-charging/activity-plan.mjs +101 -0
  396. package/dist/circuits/rc-charging/index.d.mts +2 -1
  397. package/dist/circuits/rc-charging/preset.d.mts +3 -12
  398. package/dist/circuits/rc-charging/preset.mjs +378 -116
  399. package/dist/circuits/semiconductor/bjt-inside.d.mts +15 -0
  400. package/dist/circuits/semiconductor/bjt-inside.mjs +303 -0
  401. package/dist/circuits/semiconductor/conduction.d.mts +13 -0
  402. package/dist/circuits/semiconductor/conduction.mjs +201 -0
  403. package/dist/circuits/semiconductor/device-activity-plans.mjs +230 -0
  404. package/dist/circuits/semiconductor/hall-effect.d.mts +13 -0
  405. package/dist/circuits/semiconductor/hall-effect.mjs +250 -0
  406. package/dist/circuits/semiconductor/index.d.mts +8 -1
  407. package/dist/circuits/semiconductor/mosfet-inside.d.mts +17 -0
  408. package/dist/circuits/semiconductor/mosfet-inside.mjs +459 -0
  409. package/dist/circuits/semiconductor/pn-junction.d.mts +17 -0
  410. package/dist/circuits/semiconductor/pn-junction.mjs +336 -0
  411. package/dist/circuits/semiconductor/preset.d.mts +7 -102
  412. package/dist/circuits/semiconductor/shared.mjs +183 -0
  413. package/dist/circuits/semiconductor/silicon-lattice.d.mts +22 -0
  414. package/dist/circuits/semiconductor/silicon-lattice.mjs +266 -0
  415. package/dist/circuits/semiconductor/transport-activity-plans.mjs +251 -0
  416. package/dist/circuits/transistor/activity-plan.mjs +90 -0
  417. package/dist/circuits/transistor/index.d.mts +2 -1
  418. package/dist/circuits/transistor/preset.d.mts +3 -12
  419. package/dist/circuits/transistor/preset.mjs +325 -150
  420. package/dist/commerce/accounting/core.d.mts +3 -18
  421. package/dist/commerce/accounting/core.mjs +4 -26
  422. package/dist/commerce/accounting/equation-balance.d.mts +1 -11
  423. package/dist/commerce/accounting/equation-balance.mjs +189 -77
  424. package/dist/commerce/accounting/index.d.mts +2 -1
  425. package/dist/commerce/accounting/journal-poster.d.mts +1 -9
  426. package/dist/commerce/accounting/journal-poster.mjs +346 -292
  427. package/dist/commerce/accounting/statement-sorter.d.mts +1 -9
  428. package/dist/commerce/accounting/statement-sorter.mjs +231 -171
  429. package/dist/commerce/activity.d.mts +40 -0
  430. package/dist/commerce/activity.mjs +64 -0
  431. package/dist/commerce/economics/demand-shift-vs-move.d.mts +1 -13
  432. package/dist/commerce/economics/demand-shift-vs-move.mjs +210 -89
  433. package/dist/commerce/economics/elasticity-revenue.d.mts +1 -11
  434. package/dist/commerce/economics/elasticity-revenue.mjs +190 -64
  435. package/dist/commerce/economics/index.d.mts +2 -1
  436. package/dist/commerce/economics/market-equilibrium.d.mts +1 -13
  437. package/dist/commerce/economics/market-equilibrium.mjs +222 -68
  438. package/dist/commerce/finance/apportion.d.mts +22 -0
  439. package/dist/commerce/finance/apportion.mjs +233 -0
  440. package/dist/commerce/finance/break-even.d.mts +17 -0
  441. package/dist/commerce/finance/break-even.mjs +359 -0
  442. package/dist/commerce/finance/business-lesson.d.mts +41 -0
  443. package/dist/commerce/finance/business-lesson.mjs +390 -0
  444. package/dist/commerce/finance/club-subscriptions/preset.mjs +420 -0
  445. package/dist/commerce/finance/compound-interest.d.mts +23 -0
  446. package/dist/commerce/finance/compound-interest.mjs +509 -0
  447. package/dist/commerce/finance/depreciation.d.mts +18 -0
  448. package/dist/commerce/finance/depreciation.mjs +341 -0
  449. package/dist/commerce/finance/eoq.d.mts +16 -0
  450. package/dist/commerce/finance/eoq.mjs +266 -0
  451. package/dist/commerce/finance/incomplete-records/core.mjs +69 -0
  452. package/dist/commerce/finance/incomplete-records/preset.mjs +212 -0
  453. package/dist/commerce/finance/index.d.mts +13 -0
  454. package/dist/commerce/finance/inventory-policy.d.mts +28 -0
  455. package/dist/commerce/finance/inventory-policy.mjs +56 -0
  456. package/dist/commerce/finance/limited-company.d.mts +15 -0
  457. package/dist/commerce/finance/limited-company.mjs +419 -0
  458. package/dist/commerce/finance/manufacturing-flow/preset.mjs +134 -0
  459. package/dist/commerce/finance/manufacturing-flow/scene.mjs +257 -0
  460. package/dist/commerce/finance/partnership-split/preset.mjs +218 -0
  461. package/dist/commerce/finance/ratio-lab.d.mts +22 -0
  462. package/dist/commerce/finance/ratio-lab.mjs +420 -0
  463. package/dist/commerce/finance/statement-builder.d.mts +22 -0
  464. package/dist/commerce/finance/statement-builder.mjs +313 -0
  465. package/dist/commerce/finance/supply-chain.d.mts +23 -0
  466. package/dist/commerce/finance/supply-chain.mjs +350 -0
  467. package/dist/commerce/finance/warehouse-allocation.d.mts +18 -0
  468. package/dist/commerce/finance/warehouse-allocation.mjs +49 -0
  469. package/dist/commerce/index.d.mts +17 -1
  470. package/dist/commerce/index.mjs +14 -1
  471. package/dist/core/embedding.d.mts +14 -0
  472. package/dist/core/embedding.mjs +107 -0
  473. package/dist/core/index.d.mts +3 -3
  474. package/dist/core/index.mjs +2 -2
  475. package/dist/core/next-token.d.mts +9 -0
  476. package/dist/core/next-token.mjs +88 -0
  477. package/dist/core/numeric.d.mts +1 -8
  478. package/dist/core/numeric.mjs +1 -15
  479. package/dist/core/tex.d.mts +1 -6
  480. package/dist/core/timeline.d.mts +0 -1
  481. package/dist/core/timeline.mjs +13 -10
  482. package/dist/core/util.d.mts +0 -5
  483. package/dist/core/util.mjs +6 -13
  484. package/dist/data/core/evaluation-leakage.d.mts +16 -0
  485. package/dist/data/core/evaluation-leakage.mjs +24 -0
  486. package/dist/data/core/record-model.d.mts +29 -0
  487. package/dist/data/core/record-model.mjs +39 -0
  488. package/dist/data/foundation/design-records.d.mts +8 -0
  489. package/dist/data/foundation/design-records.mjs +60 -0
  490. package/dist/data/foundation/dirty-data.d.mts +8 -0
  491. package/dist/data/foundation/dirty-data.mjs +119 -0
  492. package/dist/data/index.d.mts +7 -0
  493. package/dist/data/index.mjs +8 -0
  494. package/dist/data/visuals/leakage-board.d.mts +10 -0
  495. package/dist/data/visuals/leakage-board.mjs +87 -0
  496. package/dist/data/visuals/record-model-board.d.mts +11 -0
  497. package/dist/data/visuals/record-model-board.mjs +188 -0
  498. package/dist/databases/core/access-path.d.mts +21 -0
  499. package/dist/databases/core/access-path.mjs +72 -0
  500. package/dist/databases/core/b-plus-tree.d.mts +21 -0
  501. package/dist/databases/core/b-plus-tree.mjs +54 -0
  502. package/dist/databases/core/query-plan.d.mts +32 -0
  503. package/dist/databases/core/query-plan.mjs +54 -0
  504. package/dist/databases/foundation/b-plus-range.d.mts +8 -0
  505. package/dist/databases/foundation/b-plus-range.mjs +81 -0
  506. package/dist/databases/foundation/index-detective.d.mts +8 -0
  507. package/dist/databases/foundation/index-detective.mjs +113 -0
  508. package/dist/databases/foundation/query-plan.d.mts +8 -0
  509. package/dist/databases/foundation/query-plan.mjs +90 -0
  510. package/dist/databases/foundation/range-query.d.mts +8 -0
  511. package/dist/databases/foundation/range-query.mjs +113 -0
  512. package/dist/databases/index.d.mts +14 -0
  513. package/dist/databases/index.mjs +15 -0
  514. package/dist/databases/visuals/access-path-primitives.d.mts +43 -0
  515. package/dist/databases/visuals/access-path-primitives.mjs +151 -0
  516. package/dist/databases/visuals/b-plus-tree-board.d.mts +9 -0
  517. package/dist/databases/visuals/b-plus-tree-board.mjs +96 -0
  518. package/dist/databases/visuals/index-detective-board.d.mts +12 -0
  519. package/dist/databases/visuals/index-detective-board.mjs +187 -0
  520. package/dist/databases/visuals/query-plan-board.d.mts +11 -0
  521. package/dist/databases/visuals/query-plan-board.mjs +118 -0
  522. package/dist/databases/visuals/query-plan-primitives.d.mts +17 -0
  523. package/dist/databases/visuals/query-plan-primitives.mjs +92 -0
  524. package/dist/databases/visuals/range-query-board.d.mts +11 -0
  525. package/dist/databases/visuals/range-query-board.mjs +97 -0
  526. package/dist/deep-learning/core/attention.d.mts +24 -0
  527. package/dist/deep-learning/core/attention.mjs +123 -0
  528. package/dist/deep-learning/core/causal-mask.d.mts +18 -0
  529. package/dist/deep-learning/core/causal-mask.mjs +35 -0
  530. package/dist/deep-learning/core/context-window.d.mts +15 -0
  531. package/dist/deep-learning/core/context-window.mjs +31 -0
  532. package/dist/deep-learning/core/convolution.d.mts +22 -0
  533. package/dist/deep-learning/core/convolution.mjs +91 -0
  534. package/dist/deep-learning/core/dense-layer.d.mts +49 -0
  535. package/dist/deep-learning/core/dense-layer.mjs +108 -0
  536. package/dist/deep-learning/core/embedding-neighborhood.d.mts +10 -0
  537. package/dist/deep-learning/core/embedding-neighborhood.mjs +92 -0
  538. package/dist/deep-learning/core/encoder-decoder.d.mts +17 -0
  539. package/dist/deep-learning/core/encoder-decoder.mjs +39 -0
  540. package/dist/deep-learning/core/feed-forward-network.d.mts +13 -0
  541. package/dist/deep-learning/core/feed-forward-network.mjs +27 -0
  542. package/dist/deep-learning/core/gradient-run.d.mts +12 -0
  543. package/dist/deep-learning/core/gradient-run.mjs +20 -0
  544. package/dist/deep-learning/core/gradient-step.d.mts +24 -0
  545. package/dist/deep-learning/core/gradient-step.mjs +34 -0
  546. package/dist/deep-learning/core/layer-normalization.d.mts +16 -0
  547. package/dist/deep-learning/core/layer-normalization.mjs +28 -0
  548. package/dist/deep-learning/core/learning-loop.d.mts +20 -0
  549. package/dist/deep-learning/core/learning-loop.mjs +36 -0
  550. package/dist/deep-learning/core/linear-algebra.d.mts +10 -0
  551. package/dist/deep-learning/core/linear-algebra.mjs +16 -0
  552. package/dist/deep-learning/core/linear-fit.d.mts +20 -0
  553. package/dist/deep-learning/core/linear-fit.mjs +31 -0
  554. package/dist/deep-learning/core/loss.d.mts +11 -0
  555. package/dist/deep-learning/core/loss.mjs +15 -0
  556. package/dist/deep-learning/core/memory-relay.d.mts +15 -0
  557. package/dist/deep-learning/core/memory-relay.mjs +31 -0
  558. package/dist/deep-learning/core/multi-head-attention.d.mts +17 -0
  559. package/dist/deep-learning/core/multi-head-attention.mjs +103 -0
  560. package/dist/deep-learning/core/multimodal-alignment.d.mts +18 -0
  561. package/dist/deep-learning/core/multimodal-alignment.mjs +70 -0
  562. package/dist/deep-learning/core/neural-trace.d.mts +20 -0
  563. package/dist/deep-learning/core/neural-trace.mjs +29 -0
  564. package/dist/deep-learning/core/position.d.mts +17 -0
  565. package/dist/deep-learning/core/position.mjs +64 -0
  566. package/dist/deep-learning/core/query-key-value.d.mts +31 -0
  567. package/dist/deep-learning/core/query-key-value.mjs +37 -0
  568. package/dist/deep-learning/core/residual-stream.d.mts +12 -0
  569. package/dist/deep-learning/core/residual-stream.mjs +16 -0
  570. package/dist/deep-learning/core/scaled-dot-product-attention.d.mts +24 -0
  571. package/dist/deep-learning/core/scaled-dot-product-attention.mjs +41 -0
  572. package/dist/deep-learning/core/token-generation.d.mts +14 -0
  573. package/dist/deep-learning/core/token-generation.mjs +23 -0
  574. package/dist/deep-learning/core/transformer-block.d.mts +23 -0
  575. package/dist/deep-learning/core/transformer-block.mjs +25 -0
  576. package/dist/deep-learning/core/unembedding.d.mts +25 -0
  577. package/dist/deep-learning/core/unembedding.mjs +23 -0
  578. package/dist/deep-learning/foundation/activation-gates.d.mts +12 -0
  579. package/dist/deep-learning/foundation/activation-gates.mjs +63 -0
  580. package/dist/deep-learning/foundation/affine-neuron.d.mts +14 -0
  581. package/dist/deep-learning/foundation/affine-neuron.mjs +75 -0
  582. package/dist/deep-learning/foundation/anomaly-detector.d.mts +8 -0
  583. package/dist/deep-learning/foundation/anomaly-detector.mjs +79 -0
  584. package/dist/deep-learning/foundation/attention-routing.d.mts +8 -0
  585. package/dist/deep-learning/foundation/attention-routing.mjs +41 -0
  586. package/dist/deep-learning/foundation/autoencoder.d.mts +8 -0
  587. package/dist/deep-learning/foundation/autoencoder.mjs +74 -0
  588. package/dist/deep-learning/foundation/causal-mask.d.mts +8 -0
  589. package/dist/deep-learning/foundation/causal-mask.mjs +44 -0
  590. package/dist/deep-learning/foundation/context-window.d.mts +8 -0
  591. package/dist/deep-learning/foundation/context-window.mjs +39 -0
  592. package/dist/deep-learning/foundation/denoising.d.mts +8 -0
  593. package/dist/deep-learning/foundation/denoising.mjs +78 -0
  594. package/dist/deep-learning/foundation/embedding-neighborhood.d.mts +8 -0
  595. package/dist/deep-learning/foundation/embedding-neighborhood.mjs +41 -0
  596. package/dist/deep-learning/foundation/encoder-decoder.d.mts +8 -0
  597. package/dist/deep-learning/foundation/encoder-decoder.mjs +48 -0
  598. package/dist/deep-learning/foundation/feature-map.d.mts +10 -0
  599. package/dist/deep-learning/foundation/feature-map.mjs +105 -0
  600. package/dist/deep-learning/foundation/feed-forward-network.d.mts +12 -0
  601. package/dist/deep-learning/foundation/feed-forward-network.mjs +70 -0
  602. package/dist/deep-learning/foundation/fit-evidence.d.mts +14 -0
  603. package/dist/deep-learning/foundation/fit-evidence.mjs +96 -0
  604. package/dist/deep-learning/foundation/gradient-step.d.mts +14 -0
  605. package/dist/deep-learning/foundation/gradient-step.mjs +78 -0
  606. package/dist/deep-learning/foundation/latent-space.d.mts +8 -0
  607. package/dist/deep-learning/foundation/latent-space.mjs +41 -0
  608. package/dist/deep-learning/foundation/layer-normalization.d.mts +14 -0
  609. package/dist/deep-learning/foundation/layer-normalization.mjs +65 -0
  610. package/dist/deep-learning/foundation/learning-loop.d.mts +14 -0
  611. package/dist/deep-learning/foundation/learning-loop.mjs +55 -0
  612. package/dist/deep-learning/foundation/loss-error.d.mts +11 -0
  613. package/dist/deep-learning/foundation/loss-error.mjs +50 -0
  614. package/dist/deep-learning/foundation/matrix-vector.d.mts +11 -0
  615. package/dist/deep-learning/foundation/matrix-vector.mjs +61 -0
  616. package/dist/deep-learning/foundation/memory-relay.d.mts +8 -0
  617. package/dist/deep-learning/foundation/memory-relay.mjs +48 -0
  618. package/dist/deep-learning/foundation/multi-head-attention.d.mts +8 -0
  619. package/dist/deep-learning/foundation/multi-head-attention.mjs +59 -0
  620. package/dist/deep-learning/foundation/multimodal-alignment.d.mts +8 -0
  621. package/dist/deep-learning/foundation/multimodal-alignment.mjs +63 -0
  622. package/dist/deep-learning/foundation/pixel-filter.d.mts +8 -0
  623. package/dist/deep-learning/foundation/pixel-filter.mjs +52 -0
  624. package/dist/deep-learning/foundation/position.d.mts +8 -0
  625. package/dist/deep-learning/foundation/position.mjs +40 -0
  626. package/dist/deep-learning/foundation/query-key-value.d.mts +8 -0
  627. package/dist/deep-learning/foundation/query-key-value.mjs +51 -0
  628. package/dist/deep-learning/foundation/residual-stream.d.mts +13 -0
  629. package/dist/deep-learning/foundation/residual-stream.mjs +44 -0
  630. package/dist/deep-learning/foundation/scaled-dot-product-attention.d.mts +10 -0
  631. package/dist/deep-learning/foundation/scaled-dot-product-attention.mjs +122 -0
  632. package/dist/deep-learning/foundation/tiny-network.d.mts +9 -0
  633. package/dist/deep-learning/foundation/tiny-network.mjs +48 -0
  634. package/dist/deep-learning/foundation/token-generation.d.mts +8 -0
  635. package/dist/deep-learning/foundation/token-generation.mjs +45 -0
  636. package/dist/deep-learning/foundation/training-loop.d.mts +14 -0
  637. package/dist/deep-learning/foundation/training-loop.mjs +83 -0
  638. package/dist/deep-learning/foundation/transformer-block.d.mts +13 -0
  639. package/dist/deep-learning/foundation/transformer-block.mjs +74 -0
  640. package/dist/deep-learning/foundation/unembedding.d.mts +14 -0
  641. package/dist/deep-learning/foundation/unembedding.mjs +113 -0
  642. package/dist/deep-learning/index.d.mts +91 -0
  643. package/dist/deep-learning/index.mjs +92 -0
  644. package/dist/deep-learning/visuals/activation-diagram.d.mts +10 -0
  645. package/dist/deep-learning/visuals/activation-diagram.mjs +153 -0
  646. package/dist/deep-learning/visuals/anomaly-diagram.d.mts +11 -0
  647. package/dist/deep-learning/visuals/anomaly-diagram.mjs +175 -0
  648. package/dist/deep-learning/visuals/attention-routing-diagram.d.mts +9 -0
  649. package/dist/deep-learning/visuals/attention-routing-diagram.mjs +160 -0
  650. package/dist/deep-learning/visuals/autoencoder-diagram.d.mts +12 -0
  651. package/dist/deep-learning/visuals/autoencoder-diagram.mjs +161 -0
  652. package/dist/deep-learning/visuals/causal-mask-diagram.d.mts +10 -0
  653. package/dist/deep-learning/visuals/causal-mask-diagram.mjs +183 -0
  654. package/dist/deep-learning/visuals/context-window-diagram.d.mts +9 -0
  655. package/dist/deep-learning/visuals/context-window-diagram.mjs +200 -0
  656. package/dist/deep-learning/visuals/convolution-diagram.d.mts +10 -0
  657. package/dist/deep-learning/visuals/convolution-diagram.mjs +139 -0
  658. package/dist/deep-learning/visuals/denoising-diagram.d.mts +10 -0
  659. package/dist/deep-learning/visuals/denoising-diagram.mjs +103 -0
  660. package/dist/deep-learning/visuals/embedding-neighborhood-diagram.d.mts +9 -0
  661. package/dist/deep-learning/visuals/embedding-neighborhood-diagram.mjs +162 -0
  662. package/dist/deep-learning/visuals/encoder-decoder-diagram.d.mts +10 -0
  663. package/dist/deep-learning/visuals/encoder-decoder-diagram.mjs +229 -0
  664. package/dist/deep-learning/visuals/feature-map-diagram.d.mts +13 -0
  665. package/dist/deep-learning/visuals/feature-map-diagram.mjs +168 -0
  666. package/dist/deep-learning/visuals/feed-forward-workshop-diagram.d.mts +11 -0
  667. package/dist/deep-learning/visuals/feed-forward-workshop-diagram.mjs +131 -0
  668. package/dist/deep-learning/visuals/gradient-step-diagram.d.mts +9 -0
  669. package/dist/deep-learning/visuals/gradient-step-diagram.mjs +126 -0
  670. package/dist/deep-learning/visuals/latent-space-diagram.d.mts +9 -0
  671. package/dist/deep-learning/visuals/latent-space-diagram.mjs +140 -0
  672. package/dist/deep-learning/visuals/layer-normalization-diagram.d.mts +11 -0
  673. package/dist/deep-learning/visuals/layer-normalization-diagram.mjs +191 -0
  674. package/dist/deep-learning/visuals/learning-loop-diagram.d.mts +9 -0
  675. package/dist/deep-learning/visuals/learning-loop-diagram.mjs +148 -0
  676. package/dist/deep-learning/visuals/linear-fit-diagram.d.mts +11 -0
  677. package/dist/deep-learning/visuals/linear-fit-diagram.mjs +113 -0
  678. package/dist/deep-learning/visuals/loss-diagram.d.mts +8 -0
  679. package/dist/deep-learning/visuals/loss-diagram.mjs +173 -0
  680. package/dist/deep-learning/visuals/matrix-vector-diagram.d.mts +12 -0
  681. package/dist/deep-learning/visuals/matrix-vector-diagram.mjs +165 -0
  682. package/dist/deep-learning/visuals/memory-relay-diagram.d.mts +10 -0
  683. package/dist/deep-learning/visuals/memory-relay-diagram.mjs +242 -0
  684. package/dist/deep-learning/visuals/multi-head-attention-diagram.d.mts +10 -0
  685. package/dist/deep-learning/visuals/multi-head-attention-diagram.mjs +170 -0
  686. package/dist/deep-learning/visuals/multimodal-alignment-diagram.d.mts +13 -0
  687. package/dist/deep-learning/visuals/multimodal-alignment-diagram.mjs +138 -0
  688. package/dist/deep-learning/visuals/neuron-diagram.d.mts +12 -0
  689. package/dist/deep-learning/visuals/neuron-diagram.mjs +231 -0
  690. package/dist/deep-learning/visuals/position-diagram.d.mts +10 -0
  691. package/dist/deep-learning/visuals/position-diagram.mjs +157 -0
  692. package/dist/deep-learning/visuals/query-key-value-diagram.d.mts +12 -0
  693. package/dist/deep-learning/visuals/query-key-value-diagram.mjs +247 -0
  694. package/dist/deep-learning/visuals/residual-stream-diagram.d.mts +9 -0
  695. package/dist/deep-learning/visuals/residual-stream-diagram.mjs +221 -0
  696. package/dist/deep-learning/visuals/scaled-attention-mixer.d.mts +15 -0
  697. package/dist/deep-learning/visuals/scaled-attention-mixer.mjs +244 -0
  698. package/dist/deep-learning/visuals/tiny-network-diagram.d.mts +9 -0
  699. package/dist/deep-learning/visuals/tiny-network-diagram.mjs +136 -0
  700. package/dist/deep-learning/visuals/token-generation-diagram.d.mts +10 -0
  701. package/dist/deep-learning/visuals/token-generation-diagram.mjs +199 -0
  702. package/dist/deep-learning/visuals/training-trail-diagram.d.mts +9 -0
  703. package/dist/deep-learning/visuals/training-trail-diagram.mjs +109 -0
  704. package/dist/deep-learning/visuals/transformer-block-diagram.d.mts +11 -0
  705. package/dist/deep-learning/visuals/transformer-block-diagram.mjs +273 -0
  706. package/dist/deep-learning/visuals/unembedding-diagram.d.mts +12 -0
  707. package/dist/deep-learning/visuals/unembedding-diagram.mjs +195 -0
  708. package/dist/discrete/arrangements/preset.d.mts +1 -10
  709. package/dist/discrete/arrangements/preset.mjs +135 -119
  710. package/dist/discrete/bayes/preset.d.mts +1 -15
  711. package/dist/discrete/bayes/preset.mjs +283 -249
  712. package/dist/discrete/binomial/preset.d.mts +1 -11
  713. package/dist/discrete/binomial/preset.mjs +142 -111
  714. package/dist/discrete/combination-studio/figure.d.mts +0 -1
  715. package/dist/discrete/combination-studio/figure.mjs +20 -53
  716. package/dist/discrete/combination-studio/index.d.mts +2 -1
  717. package/dist/discrete/combination-studio/preset.d.mts +1 -12
  718. package/dist/discrete/combination-studio/preset.mjs +109 -166
  719. package/dist/discrete/core/combinatorics.d.mts +5 -2
  720. package/dist/discrete/core/combinatorics.mjs +7 -2
  721. package/dist/discrete/core/inclusionExclusion.d.mts +0 -1
  722. package/dist/discrete/counting-slots/preset.d.mts +1 -13
  723. package/dist/discrete/counting-slots/preset.mjs +185 -223
  724. package/dist/discrete/counting-tree/index.d.mts +2 -1
  725. package/dist/discrete/counting-tree/preset.d.mts +1 -15
  726. package/dist/discrete/counting-tree/preset.mjs +155 -73
  727. package/dist/discrete/expected-value/preset.d.mts +1 -10
  728. package/dist/discrete/expected-value/preset.mjs +153 -235
  729. package/dist/discrete/hypergeometric/preset.d.mts +1 -11
  730. package/dist/discrete/hypergeometric/preset.mjs +155 -117
  731. package/dist/discrete/index.d.mts +28 -4
  732. package/dist/discrete/index.mjs +9 -3
  733. package/dist/discrete/induction/core.mjs +17 -0
  734. package/dist/discrete/induction/index.d.mts +2 -0
  735. package/dist/discrete/induction/preset.d.mts +11 -0
  736. package/dist/discrete/induction/preset.mjs +112 -0
  737. package/dist/discrete/invariant/core.d.mts +8 -0
  738. package/dist/discrete/invariant/core.mjs +17 -0
  739. package/dist/discrete/invariant/index.d.mts +3 -0
  740. package/dist/discrete/invariant/preset.d.mts +14 -0
  741. package/dist/discrete/invariant/preset.mjs +159 -0
  742. package/dist/discrete/karnaugh/index.d.mts +2 -1
  743. package/dist/discrete/karnaugh/preset.d.mts +1 -13
  744. package/dist/discrete/karnaugh/preset.mjs +190 -142
  745. package/dist/discrete/lln/asset.mjs +2 -2
  746. package/dist/discrete/lln/index.d.mts +2 -1
  747. package/dist/discrete/lln/preset.d.mts +1 -7
  748. package/dist/discrete/lln/preset.mjs +151 -55
  749. package/dist/discrete/modular-clock/core.mjs +14 -0
  750. package/dist/discrete/modular-clock/index.d.mts +2 -0
  751. package/dist/discrete/modular-clock/preset.d.mts +13 -0
  752. package/dist/discrete/modular-clock/preset.mjs +192 -0
  753. package/dist/discrete/monte-carlo/index.d.mts +2 -1
  754. package/dist/discrete/monte-carlo/preset.d.mts +1 -15
  755. package/dist/discrete/monte-carlo/preset.mjs +179 -98
  756. package/dist/discrete/monty-hall/index.d.mts +2 -1
  757. package/dist/discrete/monty-hall/preset.d.mts +1 -10
  758. package/dist/discrete/monty-hall/preset.mjs +204 -221
  759. package/dist/discrete/outcome-builder/preset.d.mts +1 -10
  760. package/dist/discrete/outcome-builder/preset.mjs +152 -126
  761. package/dist/discrete/pascal/preset.d.mts +1 -10
  762. package/dist/discrete/pascal/preset.mjs +153 -142
  763. package/dist/discrete/pigeonhole/index.d.mts +2 -0
  764. package/dist/discrete/pigeonhole/preset.d.mts +12 -0
  765. package/dist/discrete/pigeonhole/preset.mjs +129 -0
  766. package/dist/discrete/proof/core.d.mts +74 -0
  767. package/dist/discrete/proof/core.mjs +44 -0
  768. package/dist/discrete/proof-builder/index.d.mts +2 -0
  769. package/dist/discrete/proof-builder/preset.d.mts +12 -0
  770. package/dist/discrete/proof-builder/preset.mjs +239 -0
  771. package/dist/discrete/recurrence/core.mjs +18 -0
  772. package/dist/discrete/recurrence/index.d.mts +2 -0
  773. package/dist/discrete/recurrence/preset.d.mts +12 -0
  774. package/dist/discrete/recurrence/preset.mjs +118 -0
  775. package/dist/discrete/rule-figures.mjs +114 -0
  776. package/dist/discrete/rules.d.mts +1 -2
  777. package/dist/discrete/rules.mjs +101 -1
  778. package/dist/discrete/sample-space/index.d.mts +2 -1
  779. package/dist/discrete/sample-space/preset.d.mts +1 -15
  780. package/dist/discrete/sample-space/preset.mjs +157 -125
  781. package/dist/discrete/selection/preset.d.mts +1 -12
  782. package/dist/discrete/selection/preset.mjs +153 -176
  783. package/dist/discrete/statement-logic/core.d.mts +41 -0
  784. package/dist/discrete/statement-logic/core.mjs +53 -0
  785. package/dist/discrete/statement-logic/index.d.mts +3 -0
  786. package/dist/discrete/statement-logic/preset.d.mts +35 -0
  787. package/dist/discrete/statement-logic/preset.mjs +245 -0
  788. package/dist/discrete/truth-table/index.d.mts +2 -1
  789. package/dist/discrete/truth-table/preset.d.mts +1 -12
  790. package/dist/discrete/truth-table/preset.mjs +138 -140
  791. package/dist/discrete/venn/index.d.mts +2 -1
  792. package/dist/discrete/venn/preset.d.mts +1 -11
  793. package/dist/discrete/venn/preset.mjs +154 -144
  794. package/dist/discrete/visuals/reasoning-scenes.mjs +236 -0
  795. package/dist/distributed-systems/core/sharding.d.mts +19 -0
  796. package/dist/distributed-systems/core/sharding.mjs +24 -0
  797. package/dist/distributed-systems/foundation/shard-key.d.mts +8 -0
  798. package/dist/distributed-systems/foundation/shard-key.mjs +103 -0
  799. package/dist/distributed-systems/index.d.mts +4 -0
  800. package/dist/distributed-systems/index.mjs +5 -0
  801. package/dist/distributed-systems/visuals/shard-key-board.d.mts +20 -0
  802. package/dist/distributed-systems/visuals/shard-key-board.mjs +126 -0
  803. package/dist/domains/accounting/apportion/manifest.mjs +56 -0
  804. package/dist/domains/accounting/apportion/runtime.mjs +5 -0
  805. package/dist/domains/accounting/bank-reconciliation/activity.mjs +96 -0
  806. package/dist/domains/accounting/bank-reconciliation/manifest.mjs +75 -0
  807. package/dist/domains/accounting/bank-reconciliation/runtime.mjs +171 -0
  808. package/dist/domains/accounting/bank-reconciliation/scene.mjs +251 -0
  809. package/dist/domains/accounting/break-even/manifest.mjs +55 -0
  810. package/dist/domains/accounting/break-even/runtime.mjs +5 -0
  811. package/dist/domains/accounting/business-day-mission/activity.mjs +114 -0
  812. package/dist/domains/accounting/business-day-mission/manifest.mjs +58 -0
  813. package/dist/domains/accounting/business-day-mission/runtime.mjs +191 -0
  814. package/dist/domains/accounting/business-day-mission/scene.mjs +184 -0
  815. package/dist/domains/accounting/business-lesson/manifest.mjs +54 -0
  816. package/dist/domains/accounting/business-lesson/runtime.mjs +5 -0
  817. package/dist/domains/accounting/business-lesson/schema.mjs +94 -0
  818. package/dist/domains/accounting/cash-budget-runway/activity.mjs +119 -0
  819. package/dist/domains/accounting/cash-budget-runway/manifest.mjs +74 -0
  820. package/dist/domains/accounting/cash-budget-runway/runtime.mjs +142 -0
  821. package/dist/domains/accounting/club-subscriptions/manifest.mjs +67 -0
  822. package/dist/domains/accounting/club-subscriptions/runtime.mjs +5 -0
  823. package/dist/domains/accounting/company-statement-builder/activity.mjs +114 -0
  824. package/dist/domains/accounting/company-statement-builder/manifest.mjs +68 -0
  825. package/dist/domains/accounting/company-statement-builder/runtime.mjs +110 -0
  826. package/dist/domains/accounting/compound-interest/manifest.mjs +58 -0
  827. package/dist/domains/accounting/compound-interest/runtime.mjs +5 -0
  828. package/dist/domains/accounting/control-account-builder/activity.mjs +96 -0
  829. package/dist/domains/accounting/control-account-builder/manifest.mjs +66 -0
  830. package/dist/domains/accounting/control-account-builder/runtime.mjs +151 -0
  831. package/dist/domains/accounting/control-account-builder/scene.mjs +119 -0
  832. package/dist/domains/accounting/costing-profit-bridge/activity.mjs +119 -0
  833. package/dist/domains/accounting/costing-profit-bridge/manifest.mjs +73 -0
  834. package/dist/domains/accounting/costing-profit-bridge/runtime.mjs +203 -0
  835. package/dist/domains/accounting/depreciation/manifest.mjs +60 -0
  836. package/dist/domains/accounting/depreciation/runtime.mjs +5 -0
  837. package/dist/domains/accounting/eoq/manifest.mjs +57 -0
  838. package/dist/domains/accounting/eoq/runtime.mjs +5 -0
  839. package/dist/domains/accounting/equation-balance/authoring.mjs +159 -0
  840. package/dist/domains/accounting/equation-balance/manifest.mjs +77 -0
  841. package/dist/domains/accounting/equation-balance/runtime.mjs +20 -0
  842. package/dist/domains/accounting/factory-expansion-case/activity.mjs +118 -0
  843. package/dist/domains/accounting/factory-expansion-case/manifest.mjs +59 -0
  844. package/dist/domains/accounting/factory-expansion-case/runtime.mjs +245 -0
  845. package/dist/domains/accounting/incomplete-records/manifest.mjs +71 -0
  846. package/dist/domains/accounting/incomplete-records/runtime.mjs +5 -0
  847. package/dist/domains/accounting/integrated-budget-mission/activity.mjs +115 -0
  848. package/dist/domains/accounting/integrated-budget-mission/manifest.mjs +76 -0
  849. package/dist/domains/accounting/integrated-budget-mission/runtime.mjs +169 -0
  850. package/dist/domains/accounting/integrated-budget-mission/scene.mjs +229 -0
  851. package/dist/domains/accounting/inventory-costing/activity.mjs +119 -0
  852. package/dist/domains/accounting/inventory-costing/manifest.mjs +73 -0
  853. package/dist/domains/accounting/inventory-costing/runtime.mjs +166 -0
  854. package/dist/domains/accounting/inventory-costing/scene.mjs +257 -0
  855. package/dist/domains/accounting/investment-appraisal/activity.mjs +119 -0
  856. package/dist/domains/accounting/investment-appraisal/manifest.mjs +72 -0
  857. package/dist/domains/accounting/investment-appraisal/runtime.mjs +177 -0
  858. package/dist/domains/accounting/journal-poster/manifest.mjs +68 -0
  859. package/dist/domains/accounting/journal-poster/runtime.mjs +20 -0
  860. package/dist/domains/accounting/limited-company/manifest.mjs +55 -0
  861. package/dist/domains/accounting/limited-company/runtime.mjs +5 -0
  862. package/dist/domains/accounting/limiting-factor-mix/activity.mjs +119 -0
  863. package/dist/domains/accounting/limiting-factor-mix/manifest.mjs +65 -0
  864. package/dist/domains/accounting/limiting-factor-mix/runtime.mjs +140 -0
  865. package/dist/domains/accounting/management-scenes.mjs +582 -0
  866. package/dist/domains/accounting/manufacturing-flow/manifest.mjs +75 -0
  867. package/dist/domains/accounting/manufacturing-flow/runtime.mjs +5 -0
  868. package/dist/domains/accounting/operating-budget-chain/activity.mjs +119 -0
  869. package/dist/domains/accounting/operating-budget-chain/manifest.mjs +75 -0
  870. package/dist/domains/accounting/operating-budget-chain/runtime.mjs +167 -0
  871. package/dist/domains/accounting/partnership-split/manifest.mjs +69 -0
  872. package/dist/domains/accounting/partnership-split/runtime.mjs +5 -0
  873. package/dist/domains/accounting/period-adjustment-workbench/activity.mjs +77 -0
  874. package/dist/domains/accounting/period-adjustment-workbench/manifest.mjs +120 -0
  875. package/dist/domains/accounting/period-adjustment-workbench/runtime.mjs +142 -0
  876. package/dist/domains/accounting/period-close-mission/activity.mjs +118 -0
  877. package/dist/domains/accounting/period-close-mission/manifest.mjs +63 -0
  878. package/dist/domains/accounting/period-close-mission/runtime.mjs +327 -0
  879. package/dist/domains/accounting/period-close-mission/scene.mjs +265 -0
  880. package/dist/domains/accounting/process-loss/activity.mjs +119 -0
  881. package/dist/domains/accounting/process-loss/manifest.mjs +60 -0
  882. package/dist/domains/accounting/process-loss/runtime.mjs +136 -0
  883. package/dist/domains/accounting/ratio-lab/manifest.mjs +73 -0
  884. package/dist/domains/accounting/ratio-lab/runtime.mjs +5 -0
  885. package/dist/domains/accounting/reorder-point/manifest.mjs +60 -0
  886. package/dist/domains/accounting/reorder-point/runtime.mjs +5 -0
  887. package/dist/domains/accounting/shared.mjs +65 -0
  888. package/dist/domains/accounting/statement-builder/manifest.mjs +58 -0
  889. package/dist/domains/accounting/statement-builder/runtime.mjs +5 -0
  890. package/dist/domains/accounting/statement-sorter/manifest.mjs +62 -0
  891. package/dist/domains/accounting/statement-sorter/runtime.mjs +20 -0
  892. package/dist/domains/accounting/suspense-reconstruction/activity.mjs +84 -0
  893. package/dist/domains/accounting/suspense-reconstruction/manifest.mjs +75 -0
  894. package/dist/domains/accounting/suspense-reconstruction/runtime.mjs +138 -0
  895. package/dist/domains/accounting/suspense-reconstruction/scene.mjs +176 -0
  896. package/dist/domains/accounting/variance-detective/activity.mjs +119 -0
  897. package/dist/domains/accounting/variance-detective/manifest.mjs +57 -0
  898. package/dist/domains/accounting/variance-detective/runtime.mjs +144 -0
  899. package/dist/domains/accounting/warehouse-allocation/manifest.mjs +53 -0
  900. package/dist/domains/accounting/warehouse-allocation/runtime.mjs +5 -0
  901. package/dist/domains/activity-map.d.mts +8 -0
  902. package/dist/domains/activity-map.mjs +162 -0
  903. package/dist/domains/biology/cell-energy/activity.mjs +3 -0
  904. package/dist/domains/biology/cell-energy/manifest.mjs +65 -0
  905. package/dist/domains/biology/cell-energy/runtime.mjs +3 -0
  906. package/dist/domains/biology/cell-sample-investigator/activity.mjs +53 -0
  907. package/dist/domains/biology/cell-sample-investigator/manifest.mjs +72 -0
  908. package/dist/domains/biology/cell-sample-investigator/runtime.mjs +6 -0
  909. package/dist/domains/biology/cell-system/activity.mjs +3 -0
  910. package/dist/domains/biology/cell-system/manifest.mjs +81 -0
  911. package/dist/domains/biology/cell-system/runtime.mjs +3 -0
  912. package/dist/domains/biology/central-dogma/manifest.mjs +51 -0
  913. package/dist/domains/biology/central-dogma/runtime.mjs +5 -0
  914. package/dist/domains/biology/enzyme-rate/manifest.mjs +69 -0
  915. package/dist/domains/biology/enzyme-rate/runtime.mjs +5 -0
  916. package/dist/domains/biology/genetic-cross/manifest.mjs +132 -0
  917. package/dist/domains/biology/genetic-cross/runtime.mjs +25 -0
  918. package/dist/domains/biology/meiosis-explorer/activity.mjs +3 -0
  919. package/dist/domains/biology/meiosis-explorer/manifest.mjs +71 -0
  920. package/dist/domains/biology/meiosis-explorer/runtime.mjs +3 -0
  921. package/dist/domains/biology/membrane-transport/activity.mjs +3 -0
  922. package/dist/domains/biology/membrane-transport/manifest.mjs +73 -0
  923. package/dist/domains/biology/membrane-transport/runtime.mjs +3 -0
  924. package/dist/domains/biology/mitosis-explorer/activity.mjs +3 -0
  925. package/dist/domains/biology/mitosis-explorer/manifest.mjs +69 -0
  926. package/dist/domains/biology/mitosis-explorer/runtime.mjs +3 -0
  927. package/dist/domains/biology/photosynthesis-factors/manifest.mjs +58 -0
  928. package/dist/domains/biology/photosynthesis-factors/runtime.mjs +5 -0
  929. package/dist/domains/biology/punnett-cross/manifest.mjs +72 -0
  930. package/dist/domains/biology/punnett-cross/runtime.mjs +5 -0
  931. package/dist/domains/biology/respiration/manifest.mjs +55 -0
  932. package/dist/domains/biology/respiration/runtime.mjs +5 -0
  933. package/dist/domains/biology/sequence/manifest.mjs +64 -0
  934. package/dist/domains/biology/sequence/runtime.mjs +19 -0
  935. package/dist/domains/biology/sex-linked-cross/manifest.mjs +75 -0
  936. package/dist/domains/biology/sex-linked-cross/runtime.mjs +5 -0
  937. package/dist/domains/block-loaders.mjs +25 -0
  938. package/dist/domains/block-sets/accounting.mjs +79 -0
  939. package/dist/domains/block-sets/biology.mjs +37 -0
  940. package/dist/domains/block-sets/chem.mjs +157 -0
  941. package/dist/domains/block-sets/circuits.mjs +65 -0
  942. package/dist/domains/block-sets/data.mjs +10 -0
  943. package/dist/domains/block-sets/databases.mjs +17 -0
  944. package/dist/domains/block-sets/discrete.mjs +61 -0
  945. package/dist/domains/block-sets/distributed-systems.mjs +9 -0
  946. package/dist/domains/block-sets/economics.mjs +15 -0
  947. package/dist/domains/block-sets/exam.mjs +9 -0
  948. package/dist/domains/block-sets/geography.mjs +9 -0
  949. package/dist/domains/block-sets/geometry.mjs +10 -0
  950. package/dist/domains/block-sets/ict.mjs +59 -0
  951. package/dist/domains/block-sets/language.mjs +31 -0
  952. package/dist/domains/block-sets/math.mjs +139 -0
  953. package/dist/domains/block-sets/ml.mjs +87 -0
  954. package/dist/domains/block-sets/networking.mjs +125 -0
  955. package/dist/domains/block-sets/physics.mjs +215 -0
  956. package/dist/domains/block-sets/statistics.mjs +27 -0
  957. package/dist/domains/blocks.mjs +11 -0
  958. package/dist/domains/catalog-map.mjs +13246 -0
  959. package/dist/domains/catalog.mjs +10 -0
  960. package/dist/domains/chem/air-composition/manifest.mjs +45 -0
  961. package/dist/domains/chem/air-composition/runtime.mjs +5 -0
  962. package/dist/domains/chem/alkene-geometry/activity.mjs +73 -0
  963. package/dist/domains/chem/alkene-geometry/manifest.mjs +58 -0
  964. package/dist/domains/chem/alkene-geometry/model.mjs +204 -0
  965. package/dist/domains/chem/alkene-geometry/runtime.mjs +122 -0
  966. package/dist/domains/chem/alkene-geometry/scene.mjs +170 -0
  967. package/dist/domains/chem/apparatus-choice/manifest.mjs +51 -0
  968. package/dist/domains/chem/apparatus-choice/runtime.mjs +5 -0
  969. package/dist/domains/chem/applied-chemistry/manifest.mjs +62 -0
  970. package/dist/domains/chem/applied-chemistry/runtime.mjs +5 -0
  971. package/dist/domains/chem/arene-evidence/activity.mjs +86 -0
  972. package/dist/domains/chem/arene-evidence/manifest.mjs +51 -0
  973. package/dist/domains/chem/arene-evidence/model.d.mts +71 -0
  974. package/dist/domains/chem/arene-evidence/model.mjs +116 -0
  975. package/dist/domains/chem/arene-evidence/runtime.mjs +138 -0
  976. package/dist/domains/chem/arene-evidence/scene.d.mts +8 -0
  977. package/dist/domains/chem/arene-evidence/scene.mjs +208 -0
  978. package/dist/domains/chem/atomic-orbital/activity.mjs +3 -0
  979. package/dist/domains/chem/atomic-orbital/manifest.mjs +71 -0
  980. package/dist/domains/chem/atomic-orbital/runtime.mjs +20 -0
  981. package/dist/domains/chem/battery/manifest.mjs +55 -0
  982. package/dist/domains/chem/battery/runtime.mjs +15 -0
  983. package/dist/domains/chem/bohr-atom/manifest.mjs +55 -0
  984. package/dist/domains/chem/bohr-atom/runtime.mjs +15 -0
  985. package/dist/domains/chem/catalytic-cycle/activity.mjs +36 -0
  986. package/dist/domains/chem/catalytic-cycle/manifest.mjs +44 -0
  987. package/dist/domains/chem/catalytic-cycle/model.mjs +61 -0
  988. package/dist/domains/chem/catalytic-cycle/runtime.mjs +61 -0
  989. package/dist/domains/chem/catalytic-cycle/scene.mjs +27 -0
  990. package/dist/domains/chem/change-detective/activity.mjs +81 -0
  991. package/dist/domains/chem/change-detective/manifest.mjs +46 -0
  992. package/dist/domains/chem/change-detective/model.mjs +65 -0
  993. package/dist/domains/chem/change-detective/runtime.mjs +73 -0
  994. package/dist/domains/chem/change-detective/scene.mjs +415 -0
  995. package/dist/domains/chem/chem-qualitative-analysis/activity.mjs +95 -0
  996. package/dist/domains/chem/chem-qualitative-analysis/manifest.mjs +68 -0
  997. package/dist/domains/chem/chem-qualitative-analysis/runtime.mjs +303 -0
  998. package/dist/domains/chem/chromatography-plate/activity.mjs +87 -0
  999. package/dist/domains/chem/chromatography-plate/manifest.mjs +59 -0
  1000. package/dist/domains/chem/chromatography-plate/model.mjs +180 -0
  1001. package/dist/domains/chem/chromatography-plate/runtime.mjs +200 -0
  1002. package/dist/domains/chem/chromatography-plate/scene.mjs +292 -0
  1003. package/dist/domains/chem/complex-colour/activity.mjs +94 -0
  1004. package/dist/domains/chem/complex-colour/manifest.mjs +53 -0
  1005. package/dist/domains/chem/complex-colour/model.mjs +243 -0
  1006. package/dist/domains/chem/complex-colour/runtime.mjs +168 -0
  1007. package/dist/domains/chem/complex-colour/scene.mjs +283 -0
  1008. package/dist/domains/chem/complex-shape/activity.mjs +86 -0
  1009. package/dist/domains/chem/complex-shape/manifest.mjs +52 -0
  1010. package/dist/domains/chem/complex-shape/model.mjs +182 -0
  1011. package/dist/domains/chem/complex-shape/runtime.mjs +162 -0
  1012. package/dist/domains/chem/complex-shape/scene.mjs +270 -0
  1013. package/dist/domains/chem/composition-evidence/activity.mjs +94 -0
  1014. package/dist/domains/chem/composition-evidence/manifest.mjs +71 -0
  1015. package/dist/domains/chem/composition-evidence/model.mjs +60 -0
  1016. package/dist/domains/chem/composition-evidence/runtime.mjs +127 -0
  1017. package/dist/domains/chem/composition-evidence/scene.mjs +308 -0
  1018. package/dist/domains/chem/conductivity-bench/activity.mjs +71 -0
  1019. package/dist/domains/chem/conductivity-bench/manifest.mjs +58 -0
  1020. package/dist/domains/chem/conductivity-bench/model.mjs +257 -0
  1021. package/dist/domains/chem/conductivity-bench/runtime.mjs +136 -0
  1022. package/dist/domains/chem/conductivity-bench/scene.mjs +305 -0
  1023. package/dist/domains/chem/contact-process-control/activity.mjs +75 -0
  1024. package/dist/domains/chem/contact-process-control/manifest.mjs +48 -0
  1025. package/dist/domains/chem/contact-process-control/model.mjs +106 -0
  1026. package/dist/domains/chem/contact-process-control/runtime.mjs +65 -0
  1027. package/dist/domains/chem/contact-process-control/scene.mjs +694 -0
  1028. package/dist/domains/chem/crystal-lattice/activity.mjs +3 -0
  1029. package/dist/domains/chem/crystal-lattice/manifest.mjs +68 -0
  1030. package/dist/domains/chem/crystal-lattice/runtime.mjs +20 -0
  1031. package/dist/domains/chem/dilution/manifest.mjs +57 -0
  1032. package/dist/domains/chem/dilution/runtime.mjs +5 -0
  1033. package/dist/domains/chem/electrochem/manifest.mjs +72 -0
  1034. package/dist/domains/chem/electrochem/runtime.mjs +5 -0
  1035. package/dist/domains/chem/electrolysis-bench/activity.mjs +72 -0
  1036. package/dist/domains/chem/electrolysis-bench/manifest.mjs +71 -0
  1037. package/dist/domains/chem/electrolysis-bench/model.mjs +174 -0
  1038. package/dist/domains/chem/electrolysis-bench/runtime.mjs +169 -0
  1039. package/dist/domains/chem/electrolysis-bench/scene.mjs +291 -0
  1040. package/dist/domains/chem/energy-cycle/activity.mjs +86 -0
  1041. package/dist/domains/chem/energy-cycle/manifest.mjs +52 -0
  1042. package/dist/domains/chem/energy-cycle/model.mjs +249 -0
  1043. package/dist/domains/chem/energy-cycle/runtime.mjs +181 -0
  1044. package/dist/domains/chem/energy-cycle/scene.mjs +277 -0
  1045. package/dist/domains/chem/equation-conservation-desk/activity.mjs +55 -0
  1046. package/dist/domains/chem/equation-conservation-desk/manifest.mjs +61 -0
  1047. package/dist/domains/chem/equation-conservation-desk/runtime.mjs +6 -0
  1048. package/dist/domains/chem/faraday-bench/activity.mjs +51 -0
  1049. package/dist/domains/chem/faraday-bench/manifest.mjs +65 -0
  1050. package/dist/domains/chem/faraday-bench/model.mjs +193 -0
  1051. package/dist/domains/chem/faraday-bench/runtime.mjs +99 -0
  1052. package/dist/domains/chem/faraday-bench/scene.mjs +254 -0
  1053. package/dist/domains/chem/flame-test/activity.mjs +66 -0
  1054. package/dist/domains/chem/flame-test/manifest.mjs +66 -0
  1055. package/dist/domains/chem/flame-test/model.mjs +149 -0
  1056. package/dist/domains/chem/flame-test/runtime.mjs +120 -0
  1057. package/dist/domains/chem/flame-test/scene.mjs +172 -0
  1058. package/dist/domains/chem/formula-forge/activity.mjs +55 -0
  1059. package/dist/domains/chem/formula-forge/manifest.mjs +66 -0
  1060. package/dist/domains/chem/formula-forge/runtime.mjs +6 -0
  1061. package/dist/domains/chem/formula-workbench/activity.mjs +92 -0
  1062. package/dist/domains/chem/formula-workbench/manifest.mjs +73 -0
  1063. package/dist/domains/chem/formula-workbench/model.mjs +89 -0
  1064. package/dist/domains/chem/formula-workbench/runtime.mjs +135 -0
  1065. package/dist/domains/chem/formula-workbench/scene.mjs +275 -0
  1066. package/dist/domains/chem/fuel-cell-flow/activity.mjs +81 -0
  1067. package/dist/domains/chem/fuel-cell-flow/manifest.mjs +49 -0
  1068. package/dist/domains/chem/fuel-cell-flow/model.mjs +63 -0
  1069. package/dist/domains/chem/fuel-cell-flow/runtime.mjs +134 -0
  1070. package/dist/domains/chem/fuel-cell-flow/scene.mjs +245 -0
  1071. package/dist/domains/chem/functional-group-lens/activity.mjs +86 -0
  1072. package/dist/domains/chem/functional-group-lens/manifest.mjs +54 -0
  1073. package/dist/domains/chem/functional-group-lens/model.d.mts +128 -0
  1074. package/dist/domains/chem/functional-group-lens/model.mjs +250 -0
  1075. package/dist/domains/chem/functional-group-lens/runtime.d.mts +16 -0
  1076. package/dist/domains/chem/functional-group-lens/runtime.mjs +135 -0
  1077. package/dist/domains/chem/functional-group-lens/scene.d.mts +8 -0
  1078. package/dist/domains/chem/functional-group-lens/scene.mjs +389 -0
  1079. package/dist/domains/chem/gas-box/manifest.mjs +79 -0
  1080. package/dist/domains/chem/gas-box/runtime.mjs +5 -0
  1081. package/dist/domains/chem/hydrate-cycle/activity.mjs +78 -0
  1082. package/dist/domains/chem/hydrate-cycle/manifest.mjs +47 -0
  1083. package/dist/domains/chem/hydrate-cycle/model.mjs +66 -0
  1084. package/dist/domains/chem/hydrate-cycle/runtime.mjs +72 -0
  1085. package/dist/domains/chem/hydrate-cycle/scene.mjs +187 -0
  1086. package/dist/domains/chem/industrial-process/manifest.mjs +51 -0
  1087. package/dist/domains/chem/industrial-process/runtime.mjs +5 -0
  1088. package/dist/domains/chem/ionic-bond-builder/manifest.mjs +47 -0
  1089. package/dist/domains/chem/ionic-bond-builder/runtime.mjs +5 -0
  1090. package/dist/domains/chem/isomer-builder/activity.mjs +86 -0
  1091. package/dist/domains/chem/isomer-builder/manifest.mjs +52 -0
  1092. package/dist/domains/chem/isomer-builder/model.mjs +345 -0
  1093. package/dist/domains/chem/isomer-builder/runtime.mjs +174 -0
  1094. package/dist/domains/chem/isomer-builder/scene.mjs +216 -0
  1095. package/dist/domains/chem/kinetics/manifest.mjs +59 -0
  1096. package/dist/domains/chem/kinetics/runtime.mjs +5 -0
  1097. package/dist/domains/chem/le-chatelier/manifest.mjs +57 -0
  1098. package/dist/domains/chem/le-chatelier/runtime.mjs +5 -0
  1099. package/dist/domains/chem/mechanism-walk/activity.mjs +53 -0
  1100. package/dist/domains/chem/mechanism-walk/manifest.mjs +53 -0
  1101. package/dist/domains/chem/mechanism-walk/model.mjs +429 -0
  1102. package/dist/domains/chem/mechanism-walk/runtime.mjs +76 -0
  1103. package/dist/domains/chem/mechanism-walk/scene.mjs +36 -0
  1104. package/dist/domains/chem/mole-factory/activity.mjs +55 -0
  1105. package/dist/domains/chem/mole-factory/manifest.mjs +62 -0
  1106. package/dist/domains/chem/mole-factory/runtime.mjs +6 -0
  1107. package/dist/domains/chem/molecular-geometry/activity.mjs +3 -0
  1108. package/dist/domains/chem/molecular-geometry/manifest.mjs +74 -0
  1109. package/dist/domains/chem/molecular-geometry/runtime.mjs +22 -0
  1110. package/dist/domains/chem/nmr-reader/activity.mjs +88 -0
  1111. package/dist/domains/chem/nmr-reader/manifest.mjs +59 -0
  1112. package/dist/domains/chem/nmr-reader/model.mjs +200 -0
  1113. package/dist/domains/chem/nmr-reader/runtime.mjs +167 -0
  1114. package/dist/domains/chem/nmr-reader/scene.mjs +30 -0
  1115. package/dist/domains/chem/orbital-diagram/activity.mjs +74 -0
  1116. package/dist/domains/chem/orbital-diagram/manifest.mjs +58 -0
  1117. package/dist/domains/chem/orbital-diagram/model.mjs +182 -0
  1118. package/dist/domains/chem/orbital-diagram/runtime.mjs +98 -0
  1119. package/dist/domains/chem/orbital-diagram/scene.mjs +289 -0
  1120. package/dist/domains/chem/orbital-overlap/activity.mjs +3 -0
  1121. package/dist/domains/chem/orbital-overlap/manifest.mjs +60 -0
  1122. package/dist/domains/chem/orbital-overlap/runtime.mjs +18 -0
  1123. package/dist/domains/chem/organic-formula-studio/activity.mjs +128 -0
  1124. package/dist/domains/chem/organic-formula-studio/manifest.mjs +67 -0
  1125. package/dist/domains/chem/organic-formula-studio/model.mjs +47 -0
  1126. package/dist/domains/chem/organic-formula-studio/pattern-scene.mjs +344 -0
  1127. package/dist/domains/chem/organic-formula-studio/runtime.mjs +221 -0
  1128. package/dist/domains/chem/organic-formula-studio/scene.mjs +354 -0
  1129. package/dist/domains/chem/organic-formula-studio/topics.mjs +186 -0
  1130. package/dist/domains/chem/organic-reaction-map/manifest.mjs +67 -0
  1131. package/dist/domains/chem/organic-reaction-map/runtime.mjs +5 -0
  1132. package/dist/domains/chem/particle-theatre/manifest.mjs +66 -0
  1133. package/dist/domains/chem/particle-theatre/runtime.mjs +5 -0
  1134. package/dist/domains/chem/percent-lens/activity.mjs +119 -0
  1135. package/dist/domains/chem/percent-lens/manifest.mjs +65 -0
  1136. package/dist/domains/chem/percent-lens/model.mjs +84 -0
  1137. package/dist/domains/chem/percent-lens/runtime.mjs +114 -0
  1138. package/dist/domains/chem/percent-lens/scene.mjs +278 -0
  1139. package/dist/domains/chem/percentage-purity-lab/activity.mjs +85 -0
  1140. package/dist/domains/chem/percentage-purity-lab/manifest.mjs +51 -0
  1141. package/dist/domains/chem/percentage-purity-lab/model.mjs +101 -0
  1142. package/dist/domains/chem/percentage-purity-lab/runtime.mjs +146 -0
  1143. package/dist/domains/chem/percentage-purity-lab/scene.mjs +309 -0
  1144. package/dist/domains/chem/percentage-yield-lab/activity.mjs +54 -0
  1145. package/dist/domains/chem/percentage-yield-lab/manifest.mjs +60 -0
  1146. package/dist/domains/chem/percentage-yield-lab/model.mjs +96 -0
  1147. package/dist/domains/chem/percentage-yield-lab/runtime.mjs +124 -0
  1148. package/dist/domains/chem/percentage-yield-lab/scene.mjs +152 -0
  1149. package/dist/domains/chem/periodic-trends/manifest.mjs +60 -0
  1150. package/dist/domains/chem/periodic-trends/runtime.mjs +5 -0
  1151. package/dist/domains/chem/polymer-builder/activity.mjs +88 -0
  1152. package/dist/domains/chem/polymer-builder/manifest.mjs +63 -0
  1153. package/dist/domains/chem/polymer-builder/model.mjs +200 -0
  1154. package/dist/domains/chem/polymer-builder/runtime.mjs +175 -0
  1155. package/dist/domains/chem/polymer-builder/scene.mjs +170 -0
  1156. package/dist/domains/chem/practical-observation/activity.mjs +66 -0
  1157. package/dist/domains/chem/practical-observation/manifest.mjs +50 -0
  1158. package/dist/domains/chem/practical-observation/model.mjs +487 -0
  1159. package/dist/domains/chem/practical-observation/runtime.mjs +113 -0
  1160. package/dist/domains/chem/practical-observation/scene.mjs +662 -0
  1161. package/dist/domains/chem/precipitation-bench/activity.mjs +65 -0
  1162. package/dist/domains/chem/precipitation-bench/manifest.mjs +61 -0
  1163. package/dist/domains/chem/precipitation-bench/model.mjs +119 -0
  1164. package/dist/domains/chem/precipitation-bench/runtime.mjs +90 -0
  1165. package/dist/domains/chem/precipitation-bench/scene.mjs +215 -0
  1166. package/dist/domains/chem/quantity-route/manifest.mjs +133 -0
  1167. package/dist/domains/chem/quantity-route/runtime.mjs +5 -0
  1168. package/dist/domains/chem/ratio-normalizer/manifest.mjs +61 -0
  1169. package/dist/domains/chem/ratio-normalizer/runtime.mjs +5 -0
  1170. package/dist/domains/chem/reaction-evidence/manifest.mjs +51 -0
  1171. package/dist/domains/chem/reaction-evidence/runtime.mjs +5 -0
  1172. package/dist/domains/chem/reaction-lab/manifest.mjs +56 -0
  1173. package/dist/domains/chem/reaction-lab/runtime.mjs +18 -0
  1174. package/dist/domains/chem/reaction-profile/manifest.mjs +57 -0
  1175. package/dist/domains/chem/reaction-profile/runtime.mjs +17 -0
  1176. package/dist/domains/chem/reagent-ladder/activity.mjs +85 -0
  1177. package/dist/domains/chem/reagent-ladder/manifest.mjs +58 -0
  1178. package/dist/domains/chem/reagent-ladder/model.mjs +120 -0
  1179. package/dist/domains/chem/reagent-ladder/runtime.mjs +107 -0
  1180. package/dist/domains/chem/reagent-ladder/scene.mjs +174 -0
  1181. package/dist/domains/chem/redox-balancer/activity.mjs +86 -0
  1182. package/dist/domains/chem/redox-balancer/manifest.mjs +52 -0
  1183. package/dist/domains/chem/redox-balancer/model.mjs +191 -0
  1184. package/dist/domains/chem/redox-balancer/runtime.mjs +175 -0
  1185. package/dist/domains/chem/redox-balancer/scene.mjs +159 -0
  1186. package/dist/domains/chem/relation-origin/activity.mjs +42 -0
  1187. package/dist/domains/chem/relation-origin/manifest.mjs +61 -0
  1188. package/dist/domains/chem/relation-origin/model.mjs +172 -0
  1189. package/dist/domains/chem/relation-origin/runtime.mjs +114 -0
  1190. package/dist/domains/chem/relation-origin/scene.mjs +195 -0
  1191. package/dist/domains/chem/solubility-kitchen/activity.mjs +54 -0
  1192. package/dist/domains/chem/solubility-kitchen/manifest.mjs +66 -0
  1193. package/dist/domains/chem/solubility-kitchen/runtime.mjs +6 -0
  1194. package/dist/domains/chem/soluble-salt-workshop/activity.mjs +115 -0
  1195. package/dist/domains/chem/soluble-salt-workshop/manifest.mjs +50 -0
  1196. package/dist/domains/chem/soluble-salt-workshop/model.mjs +187 -0
  1197. package/dist/domains/chem/soluble-salt-workshop/runtime.mjs +118 -0
  1198. package/dist/domains/chem/soluble-salt-workshop/scene.mjs +700 -0
  1199. package/dist/domains/chem/solution-box/manifest.mjs +57 -0
  1200. package/dist/domains/chem/solution-box/runtime.mjs +5 -0
  1201. package/dist/domains/chem/solution-mixer/activity.mjs +54 -0
  1202. package/dist/domains/chem/solution-mixer/manifest.mjs +58 -0
  1203. package/dist/domains/chem/solution-mixer/runtime.mjs +6 -0
  1204. package/dist/domains/chem/species-workshop/activity.mjs +55 -0
  1205. package/dist/domains/chem/species-workshop/manifest.mjs +66 -0
  1206. package/dist/domains/chem/species-workshop/runtime.mjs +6 -0
  1207. package/dist/domains/chem/specimen-row/activity.mjs +70 -0
  1208. package/dist/domains/chem/specimen-row/manifest.mjs +57 -0
  1209. package/dist/domains/chem/specimen-row/model.mjs +122 -0
  1210. package/dist/domains/chem/specimen-row/runtime.mjs +105 -0
  1211. package/dist/domains/chem/specimen-row/scene.mjs +230 -0
  1212. package/dist/domains/chem/spectrum-reader/activity.mjs +36 -0
  1213. package/dist/domains/chem/spectrum-reader/manifest.mjs +47 -0
  1214. package/dist/domains/chem/spectrum-reader/model.mjs +244 -0
  1215. package/dist/domains/chem/spectrum-reader/runtime.mjs +62 -0
  1216. package/dist/domains/chem/spectrum-reader/scene.mjs +37 -0
  1217. package/dist/domains/chem/stereochemistry/activity.mjs +3 -0
  1218. package/dist/domains/chem/stereochemistry/manifest.mjs +65 -0
  1219. package/dist/domains/chem/stereochemistry/runtime.mjs +21 -0
  1220. package/dist/domains/chem/stoichiometry/manifest.mjs +61 -0
  1221. package/dist/domains/chem/stoichiometry/runtime.mjs +5 -0
  1222. package/dist/domains/chem/structure-detective/activity.mjs +67 -0
  1223. package/dist/domains/chem/structure-detective/manifest.mjs +59 -0
  1224. package/dist/domains/chem/structure-detective/runtime.mjs +6 -0
  1225. package/dist/domains/chem/synthesis-route/activity.mjs +36 -0
  1226. package/dist/domains/chem/synthesis-route/manifest.mjs +45 -0
  1227. package/dist/domains/chem/synthesis-route/model.mjs +165 -0
  1228. package/dist/domains/chem/synthesis-route/runtime.mjs +67 -0
  1229. package/dist/domains/chem/synthesis-route/scene.mjs +152 -0
  1230. package/dist/domains/chem/titration/manifest.mjs +62 -0
  1231. package/dist/domains/chem/titration/runtime.mjs +5 -0
  1232. package/dist/domains/chem/titration-run/activity.mjs +54 -0
  1233. package/dist/domains/chem/titration-run/manifest.mjs +61 -0
  1234. package/dist/domains/chem/titration-run/model.mjs +174 -0
  1235. package/dist/domains/chem/titration-run/runtime.mjs +113 -0
  1236. package/dist/domains/chem/titration-run/scene.mjs +166 -0
  1237. package/dist/domains/chem/trend-axis/activity.mjs +52 -0
  1238. package/dist/domains/chem/trend-axis/manifest.mjs +57 -0
  1239. package/dist/domains/chem/trend-axis/model.mjs +487 -0
  1240. package/dist/domains/chem/trend-axis/runtime.mjs +87 -0
  1241. package/dist/domains/chem/trend-axis/scene.mjs +246 -0
  1242. package/dist/domains/circuits/ac-dc/manifest.mjs +65 -0
  1243. package/dist/domains/circuits/ac-dc/runtime.mjs +5 -0
  1244. package/dist/domains/circuits/ac-response/activity.mjs +3 -0
  1245. package/dist/domains/circuits/ac-response/manifest.mjs +70 -0
  1246. package/dist/domains/circuits/ac-response/runtime.mjs +3 -0
  1247. package/dist/domains/circuits/bjt-inside/manifest.mjs +57 -0
  1248. package/dist/domains/circuits/bjt-inside/runtime.mjs +5 -0
  1249. package/dist/domains/circuits/brownout/manifest.mjs +59 -0
  1250. package/dist/domains/circuits/brownout/runtime.mjs +5 -0
  1251. package/dist/domains/circuits/capacitor-leak/manifest.mjs +61 -0
  1252. package/dist/domains/circuits/capacitor-leak/runtime.mjs +5 -0
  1253. package/dist/domains/circuits/cell-combination/activity.mjs +3 -0
  1254. package/dist/domains/circuits/cell-combination/manifest.mjs +69 -0
  1255. package/dist/domains/circuits/cell-combination/runtime.mjs +3 -0
  1256. package/dist/domains/circuits/circuit/manifest.mjs +64 -0
  1257. package/dist/domains/circuits/circuit/runtime.mjs +33 -0
  1258. package/dist/domains/circuits/circuit-builder/authoring.mjs +138 -0
  1259. package/dist/domains/circuits/circuit-builder/manifest.mjs +78 -0
  1260. package/dist/domains/circuits/circuit-builder/runtime.mjs +20 -0
  1261. package/dist/domains/circuits/circuit-builder/shared.mjs +16 -0
  1262. package/dist/domains/circuits/circuit-lab/manifest.mjs +64 -0
  1263. package/dist/domains/circuits/circuit-lab/runtime.mjs +21 -0
  1264. package/dist/domains/circuits/circuit-scene/authoring.mjs +33 -0
  1265. package/dist/domains/circuits/circuit-scene/manifest.mjs +101 -0
  1266. package/dist/domains/circuits/circuit-scene/runtime.mjs +25 -0
  1267. package/dist/domains/circuits/cmos-inverter/manifest.mjs +69 -0
  1268. package/dist/domains/circuits/cmos-inverter/runtime.mjs +5 -0
  1269. package/dist/domains/circuits/cmos-nand/manifest.mjs +60 -0
  1270. package/dist/domains/circuits/cmos-nand/runtime.mjs +5 -0
  1271. package/dist/domains/circuits/cmos-nor/manifest.mjs +60 -0
  1272. package/dist/domains/circuits/cmos-nor/runtime.mjs +5 -0
  1273. package/dist/domains/circuits/conduction/manifest.mjs +57 -0
  1274. package/dist/domains/circuits/conduction/runtime.mjs +5 -0
  1275. package/dist/domains/circuits/diode/manifest.mjs +55 -0
  1276. package/dist/domains/circuits/diode/runtime.mjs +5 -0
  1277. package/dist/domains/circuits/energy-cost/activity.mjs +3 -0
  1278. package/dist/domains/circuits/energy-cost/manifest.mjs +79 -0
  1279. package/dist/domains/circuits/energy-cost/runtime.mjs +3 -0
  1280. package/dist/domains/circuits/hall-effect/manifest.mjs +51 -0
  1281. package/dist/domains/circuits/hall-effect/runtime.mjs +5 -0
  1282. package/dist/domains/circuits/kirchhoff-laws/manifest.mjs +64 -0
  1283. package/dist/domains/circuits/kirchhoff-laws/runtime.mjs +5 -0
  1284. package/dist/domains/circuits/meter-conversion/activity.mjs +3 -0
  1285. package/dist/domains/circuits/meter-conversion/manifest.mjs +69 -0
  1286. package/dist/domains/circuits/meter-conversion/runtime.mjs +3 -0
  1287. package/dist/domains/circuits/mosfet-inside/manifest.mjs +58 -0
  1288. package/dist/domains/circuits/mosfet-inside/runtime.mjs +5 -0
  1289. package/dist/domains/circuits/network-reduction/activity.mjs +3 -0
  1290. package/dist/domains/circuits/network-reduction/manifest.mjs +85 -0
  1291. package/dist/domains/circuits/network-reduction/runtime.mjs +3 -0
  1292. package/dist/domains/circuits/null-balance/activity.mjs +3 -0
  1293. package/dist/domains/circuits/null-balance/manifest.mjs +69 -0
  1294. package/dist/domains/circuits/null-balance/runtime.mjs +3 -0
  1295. package/dist/domains/circuits/pn-junction/manifest.mjs +57 -0
  1296. package/dist/domains/circuits/pn-junction/runtime.mjs +5 -0
  1297. package/dist/domains/circuits/potential-divider/manifest.mjs +69 -0
  1298. package/dist/domains/circuits/potential-divider/runtime.mjs +5 -0
  1299. package/dist/domains/circuits/rc-charging/manifest.mjs +59 -0
  1300. package/dist/domains/circuits/rc-charging/runtime.mjs +5 -0
  1301. package/dist/domains/circuits/rnmos-not/manifest.mjs +62 -0
  1302. package/dist/domains/circuits/rnmos-not/runtime.mjs +5 -0
  1303. package/dist/domains/circuits/silicon-lattice/manifest.mjs +63 -0
  1304. package/dist/domains/circuits/silicon-lattice/runtime.mjs +5 -0
  1305. package/dist/domains/circuits/transistor/manifest.mjs +60 -0
  1306. package/dist/domains/circuits/transistor/runtime.mjs +5 -0
  1307. package/dist/domains/data/design-records/manifest.mjs +54 -0
  1308. package/dist/domains/data/design-records/runtime.mjs +3 -0
  1309. package/dist/domains/data/dirty-data/manifest.mjs +53 -0
  1310. package/dist/domains/data/dirty-data/runtime.mjs +3 -0
  1311. package/dist/domains/databases/b-plus-range/manifest.mjs +48 -0
  1312. package/dist/domains/databases/b-plus-range/runtime.mjs +3 -0
  1313. package/dist/domains/databases/index-detective/manifest.mjs +54 -0
  1314. package/dist/domains/databases/index-detective/runtime.mjs +3 -0
  1315. package/dist/domains/databases/query-plan/manifest.mjs +49 -0
  1316. package/dist/domains/databases/query-plan/runtime.mjs +3 -0
  1317. package/dist/domains/databases/range-query/manifest.mjs +53 -0
  1318. package/dist/domains/databases/range-query/runtime.mjs +3 -0
  1319. package/dist/domains/discrete/arrangements/manifest.mjs +55 -0
  1320. package/dist/domains/discrete/arrangements/runtime.mjs +5 -0
  1321. package/dist/domains/discrete/bayes/manifest.mjs +58 -0
  1322. package/dist/domains/discrete/bayes/runtime.mjs +5 -0
  1323. package/dist/domains/discrete/binomial/manifest.mjs +50 -0
  1324. package/dist/domains/discrete/binomial/runtime.mjs +5 -0
  1325. package/dist/domains/discrete/combination-studio/manifest.mjs +74 -0
  1326. package/dist/domains/discrete/combination-studio/runtime.mjs +5 -0
  1327. package/dist/domains/discrete/counting-slots/manifest.mjs +74 -0
  1328. package/dist/domains/discrete/counting-slots/runtime.mjs +5 -0
  1329. package/dist/domains/discrete/counting-tree/manifest.mjs +62 -0
  1330. package/dist/domains/discrete/counting-tree/runtime.mjs +5 -0
  1331. package/dist/domains/discrete/expected-value/manifest.mjs +53 -0
  1332. package/dist/domains/discrete/expected-value/runtime.mjs +5 -0
  1333. package/dist/domains/discrete/hypergeometric/manifest.mjs +56 -0
  1334. package/dist/domains/discrete/hypergeometric/runtime.mjs +5 -0
  1335. package/dist/domains/discrete/induction-ladder/manifest.mjs +54 -0
  1336. package/dist/domains/discrete/induction-ladder/runtime.mjs +5 -0
  1337. package/dist/domains/discrete/invariant-detective/manifest.mjs +61 -0
  1338. package/dist/domains/discrete/invariant-detective/runtime.mjs +5 -0
  1339. package/dist/domains/discrete/karnaugh/manifest.mjs +69 -0
  1340. package/dist/domains/discrete/karnaugh/runtime.mjs +5 -0
  1341. package/dist/domains/discrete/lln/manifest.mjs +52 -0
  1342. package/dist/domains/discrete/lln/runtime.mjs +5 -0
  1343. package/dist/domains/discrete/modular-clock/manifest.mjs +58 -0
  1344. package/dist/domains/discrete/modular-clock/runtime.mjs +5 -0
  1345. package/dist/domains/discrete/monte-carlo/manifest.mjs +76 -0
  1346. package/dist/domains/discrete/monte-carlo/runtime.mjs +5 -0
  1347. package/dist/domains/discrete/monty-hall/manifest.mjs +53 -0
  1348. package/dist/domains/discrete/monty-hall/runtime.mjs +5 -0
  1349. package/dist/domains/discrete/outcome-builder/manifest.mjs +53 -0
  1350. package/dist/domains/discrete/outcome-builder/runtime.mjs +5 -0
  1351. package/dist/domains/discrete/pascal/manifest.mjs +57 -0
  1352. package/dist/domains/discrete/pascal/runtime.mjs +5 -0
  1353. package/dist/domains/discrete/pigeonhole-adversary/manifest.mjs +56 -0
  1354. package/dist/domains/discrete/pigeonhole-adversary/runtime.mjs +5 -0
  1355. package/dist/domains/discrete/proof-builder/manifest.mjs +117 -0
  1356. package/dist/domains/discrete/proof-builder/runtime.mjs +5 -0
  1357. package/dist/domains/discrete/recurrence-builder/manifest.mjs +55 -0
  1358. package/dist/domains/discrete/recurrence-builder/runtime.mjs +5 -0
  1359. package/dist/domains/discrete/rule-card/builtins.mjs +17 -0
  1360. package/dist/domains/discrete/rule-card/manifest.mjs +83 -0
  1361. package/dist/domains/discrete/rule-card/presets.mjs +23 -0
  1362. package/dist/domains/discrete/rule-card/runtime.mjs +30 -0
  1363. package/dist/domains/discrete/sample-space/manifest.mjs +77 -0
  1364. package/dist/domains/discrete/sample-space/runtime.mjs +5 -0
  1365. package/dist/domains/discrete/selection/manifest.mjs +57 -0
  1366. package/dist/domains/discrete/selection/runtime.mjs +5 -0
  1367. package/dist/domains/discrete/statement-logic/manifest.mjs +106 -0
  1368. package/dist/domains/discrete/statement-logic/runtime.mjs +5 -0
  1369. package/dist/domains/discrete/truth-table/manifest.mjs +57 -0
  1370. package/dist/domains/discrete/truth-table/runtime.mjs +5 -0
  1371. package/dist/domains/discrete/venn/manifest.mjs +73 -0
  1372. package/dist/domains/discrete/venn/runtime.mjs +5 -0
  1373. package/dist/domains/distributed-systems/shard-key/manifest.mjs +50 -0
  1374. package/dist/domains/distributed-systems/shard-key/runtime.mjs +3 -0
  1375. package/dist/domains/domain-map.mjs +1008 -0
  1376. package/dist/domains/economics/demand-shift-vs-move/manifest.mjs +47 -0
  1377. package/dist/domains/economics/demand-shift-vs-move/runtime.mjs +5 -0
  1378. package/dist/domains/economics/elasticity-revenue/manifest.mjs +60 -0
  1379. package/dist/domains/economics/elasticity-revenue/runtime.mjs +24 -0
  1380. package/dist/domains/economics/market-equilibrium/manifest.mjs +53 -0
  1381. package/dist/domains/economics/market-equilibrium/runtime.mjs +28 -0
  1382. package/dist/domains/exam/exam-question/manifest.mjs +87 -0
  1383. package/dist/domains/exam/exam-question/runtime.mjs +5 -0
  1384. package/dist/domains/geography/cycle/manifest.mjs +135 -0
  1385. package/dist/domains/geography/cycle/runtime.mjs +26 -0
  1386. package/dist/domains/geometry/geometry-board/authoring.mjs +33 -0
  1387. package/dist/domains/geometry/geometry-board/manifest.mjs +135 -0
  1388. package/dist/domains/geometry/geometry-board/runtime.mjs +16 -0
  1389. package/dist/domains/geometry/geometry-board/scene.mjs +62 -0
  1390. package/dist/domains/geometry/intersecting-circles/manifest.mjs +56 -0
  1391. package/dist/domains/geometry/intersecting-circles/runtime.mjs +16 -0
  1392. package/dist/domains/ict/array-vs-list/manifest.mjs +75 -0
  1393. package/dist/domains/ict/array-vs-list/runtime.mjs +5 -0
  1394. package/dist/domains/ict/base-odometer/manifest.mjs +72 -0
  1395. package/dist/domains/ict/base-odometer/runtime.mjs +5 -0
  1396. package/dist/domains/ict/binary-counter/manifest.mjs +65 -0
  1397. package/dist/domains/ict/binary-counter/runtime.mjs +235 -0
  1398. package/dist/domains/ict/binary-display/manifest.mjs +59 -0
  1399. package/dist/domains/ict/binary-display/runtime.mjs +5 -0
  1400. package/dist/domains/ict/binary-search/manifest.mjs +70 -0
  1401. package/dist/domains/ict/binary-search/runtime.mjs +5 -0
  1402. package/dist/domains/ict/bit-grouper/manifest.mjs +59 -0
  1403. package/dist/domains/ict/bit-grouper/runtime.mjs +5 -0
  1404. package/dist/domains/ict/complexity-growth/manifest.mjs +69 -0
  1405. package/dist/domains/ict/complexity-growth/runtime.mjs +5 -0
  1406. package/dist/domains/ict/cost-derivation/manifest.mjs +56 -0
  1407. package/dist/domains/ict/cost-derivation/runtime.mjs +12 -0
  1408. package/dist/domains/ict/graph-algorithm/authoring.mjs +246 -0
  1409. package/dist/domains/ict/graph-algorithm/manifest.mjs +87 -0
  1410. package/dist/domains/ict/graph-algorithm/runtime.mjs +5 -0
  1411. package/dist/domains/ict/grid-path-dp/authoring.mjs +75 -0
  1412. package/dist/domains/ict/grid-path-dp/manifest.mjs +66 -0
  1413. package/dist/domains/ict/grid-path-dp/runtime.mjs +5 -0
  1414. package/dist/domains/ict/hash-table/manifest.mjs +68 -0
  1415. package/dist/domains/ict/hash-table/runtime.mjs +5 -0
  1416. package/dist/domains/ict/heap-quest/authoring.mjs +123 -0
  1417. package/dist/domains/ict/heap-quest/manifest.mjs +76 -0
  1418. package/dist/domains/ict/heap-quest/runtime.mjs +5 -0
  1419. package/dist/domains/ict/jk-flip-flop/manifest.mjs +65 -0
  1420. package/dist/domains/ict/jk-flip-flop/runtime.mjs +273 -0
  1421. package/dist/domains/ict/latch-vs-flip-flop/manifest.mjs +61 -0
  1422. package/dist/domains/ict/latch-vs-flip-flop/runtime.mjs +227 -0
  1423. package/dist/domains/ict/logic-builder/manifest.mjs +67 -0
  1424. package/dist/domains/ict/logic-builder/runtime.mjs +17 -0
  1425. package/dist/domains/ict/logic-circuit/manifest.mjs +79 -0
  1426. package/dist/domains/ict/logic-circuit/runtime.mjs +26 -0
  1427. package/dist/domains/ict/logic-gate/manifest.mjs +71 -0
  1428. package/dist/domains/ict/logic-gate/runtime.mjs +5 -0
  1429. package/dist/domains/ict/place-value-dial/manifest.mjs +60 -0
  1430. package/dist/domains/ict/place-value-dial/runtime.mjs +5 -0
  1431. package/dist/domains/ict/sequence-detector/manifest.mjs +68 -0
  1432. package/dist/domains/ict/sequence-detector/runtime.mjs +328 -0
  1433. package/dist/domains/ict/shift-register/manifest.mjs +65 -0
  1434. package/dist/domains/ict/shift-register/runtime.mjs +199 -0
  1435. package/dist/domains/ict/sorting-quest/manifest.mjs +76 -0
  1436. package/dist/domains/ict/sorting-quest/runtime.mjs +5 -0
  1437. package/dist/domains/ict/sr-latch/manifest.mjs +65 -0
  1438. package/dist/domains/ict/sr-latch/runtime.mjs +253 -0
  1439. package/dist/domains/ict/tree-quest/authoring.mjs +265 -0
  1440. package/dist/domains/ict/tree-quest/manifest.mjs +90 -0
  1441. package/dist/domains/ict/tree-quest/runtime.mjs +5 -0
  1442. package/dist/domains/ict/twos-complement/manifest.mjs +71 -0
  1443. package/dist/domains/ict/twos-complement/runtime.mjs +276 -0
  1444. package/dist/domains/ict/wire-a-chip/manifest.mjs +72 -0
  1445. package/dist/domains/ict/wire-a-chip/runtime.mjs +287 -0
  1446. package/dist/domains/language/agreement/authoring.mjs +76 -0
  1447. package/dist/domains/language/agreement/manifest.mjs +61 -0
  1448. package/dist/domains/language/agreement/runtime.mjs +20 -0
  1449. package/dist/domains/language/article-lens/authoring.mjs +87 -0
  1450. package/dist/domains/language/article-lens/manifest.mjs +61 -0
  1451. package/dist/domains/language/article-lens/runtime.mjs +20 -0
  1452. package/dist/domains/language/cloze/authoring.mjs +70 -0
  1453. package/dist/domains/language/cloze/manifest.mjs +61 -0
  1454. package/dist/domains/language/cloze/runtime.mjs +20 -0
  1455. package/dist/domains/language/dictation/authoring.mjs +66 -0
  1456. package/dist/domains/language/dictation/manifest.mjs +62 -0
  1457. package/dist/domains/language/dictation/runtime.mjs +19 -0
  1458. package/dist/domains/language/error-correct/authoring.mjs +46 -0
  1459. package/dist/domains/language/error-correct/manifest.mjs +60 -0
  1460. package/dist/domains/language/error-correct/runtime.mjs +19 -0
  1461. package/dist/domains/language/listening/authoring.mjs +83 -0
  1462. package/dist/domains/language/listening/manifest.mjs +67 -0
  1463. package/dist/domains/language/listening/runtime.mjs +20 -0
  1464. package/dist/domains/language/preposition/authoring.mjs +100 -0
  1465. package/dist/domains/language/preposition/manifest.mjs +61 -0
  1466. package/dist/domains/language/preposition/runtime.mjs +20 -0
  1467. package/dist/domains/language/reading/authoring.mjs +87 -0
  1468. package/dist/domains/language/reading/manifest.mjs +62 -0
  1469. package/dist/domains/language/reading/runtime.mjs +22 -0
  1470. package/dist/domains/language/sentence-builder/authoring.mjs +74 -0
  1471. package/dist/domains/language/sentence-builder/manifest.mjs +63 -0
  1472. package/dist/domains/language/sentence-builder/runtime.mjs +22 -0
  1473. package/dist/domains/language/shared.mjs +311 -0
  1474. package/dist/domains/language/transform/authoring.mjs +89 -0
  1475. package/dist/domains/language/transform/manifest.mjs +65 -0
  1476. package/dist/domains/language/transform/runtime.mjs +23 -0
  1477. package/dist/domains/language/word-match/authoring.mjs +83 -0
  1478. package/dist/domains/language/word-match/manifest.mjs +59 -0
  1479. package/dist/domains/language/word-match/runtime.mjs +21 -0
  1480. package/dist/domains/manifests.mjs +1009 -0
  1481. package/dist/domains/math/area-model/manifest.mjs +59 -0
  1482. package/dist/domains/math/area-model/runtime.mjs +17 -0
  1483. package/dist/domains/math/area-rearrange/manifest.mjs +65 -0
  1484. package/dist/domains/math/area-rearrange/runtime.mjs +12 -0
  1485. package/dist/domains/math/authoring-kit.mjs +340 -0
  1486. package/dist/domains/math/balance-algebra/manifest.mjs +60 -0
  1487. package/dist/domains/math/balance-algebra/runtime.mjs +20 -0
  1488. package/dist/domains/math/bearings/manifest.mjs +65 -0
  1489. package/dist/domains/math/bearings/runtime.mjs +12 -0
  1490. package/dist/domains/math/bounds-window/manifest.mjs +64 -0
  1491. package/dist/domains/math/bounds-window/runtime.mjs +29 -0
  1492. package/dist/domains/math/broken-tree/manifest.mjs +59 -0
  1493. package/dist/domains/math/broken-tree/runtime.mjs +12 -0
  1494. package/dist/domains/math/calculus-authoring.mjs +127 -0
  1495. package/dist/domains/math/circle-geometry/authoring.mjs +55 -0
  1496. package/dist/domains/math/circle-geometry/manifest.mjs +65 -0
  1497. package/dist/domains/math/circle-geometry/runtime.mjs +5 -0
  1498. package/dist/domains/math/complex-plane/manifest.mjs +64 -0
  1499. package/dist/domains/math/complex-plane/runtime.mjs +5 -0
  1500. package/dist/domains/math/cone-frustum/manifest.mjs +69 -0
  1501. package/dist/domains/math/cone-frustum/runtime.mjs +20 -0
  1502. package/dist/domains/math/conic/authoring.mjs +84 -0
  1503. package/dist/domains/math/conic/manifest.mjs +67 -0
  1504. package/dist/domains/math/conic/runtime.mjs +5 -0
  1505. package/dist/domains/math/custom-scene/authoring.mjs +34 -0
  1506. package/dist/domains/math/custom-scene/manifest.mjs +74 -0
  1507. package/dist/domains/math/custom-scene/runtime.mjs +29 -0
  1508. package/dist/domains/math/custom-scene/shared.mjs +51 -0
  1509. package/dist/domains/math/derivation/authoring.mjs +65 -0
  1510. package/dist/domains/math/derivation/manifest.mjs +62 -0
  1511. package/dist/domains/math/derivation/runtime.mjs +19 -0
  1512. package/dist/domains/math/derivative-explorer/authoring.mjs +15 -0
  1513. package/dist/domains/math/derivative-explorer/manifest.mjs +55 -0
  1514. package/dist/domains/math/derivative-explorer/runtime.mjs +19 -0
  1515. package/dist/domains/math/differential-equation/authoring.mjs +120 -0
  1516. package/dist/domains/math/differential-equation/manifest.mjs +68 -0
  1517. package/dist/domains/math/differential-equation/runtime.mjs +21 -0
  1518. package/dist/domains/math/division-workbench/manifest.mjs +65 -0
  1519. package/dist/domains/math/division-workbench/runtime.mjs +3 -0
  1520. package/dist/domains/math/domain-range/authoring.mjs +87 -0
  1521. package/dist/domains/math/domain-range/manifest.mjs +63 -0
  1522. package/dist/domains/math/domain-range/runtime.mjs +5 -0
  1523. package/dist/domains/math/exact-triangle/manifest.mjs +62 -0
  1524. package/dist/domains/math/exact-triangle/runtime.mjs +19 -0
  1525. package/dist/domains/math/expression-order/manifest.mjs +77 -0
  1526. package/dist/domains/math/expression-order/runtime.mjs +5 -0
  1527. package/dist/domains/math/fraction-bar/manifest.mjs +61 -0
  1528. package/dist/domains/math/fraction-bar/runtime.mjs +5 -0
  1529. package/dist/domains/math/function-machine/manifest.mjs +74 -0
  1530. package/dist/domains/math/function-machine/runtime.mjs +5 -0
  1531. package/dist/domains/math/fundamental-theorem/authoring.mjs +15 -0
  1532. package/dist/domains/math/fundamental-theorem/manifest.mjs +62 -0
  1533. package/dist/domains/math/fundamental-theorem/runtime.mjs +20 -0
  1534. package/dist/domains/math/geometry-foundations/activity.mjs +3 -0
  1535. package/dist/domains/math/geometry-foundations/manifest.mjs +75 -0
  1536. package/dist/domains/math/geometry-foundations/runtime.mjs +3 -0
  1537. package/dist/domains/math/geometry-transform/manifest.mjs +73 -0
  1538. package/dist/domains/math/geometry-transform/runtime.mjs +42 -0
  1539. package/dist/domains/math/gradient-descent/authoring.mjs +76 -0
  1540. package/dist/domains/math/gradient-descent/manifest.mjs +56 -0
  1541. package/dist/domains/math/gradient-descent/runtime.mjs +20 -0
  1542. package/dist/domains/math/graph/authoring.mjs +156 -0
  1543. package/dist/domains/math/graph/manifest.mjs +63 -0
  1544. package/dist/domains/math/graph/runtime.mjs +20 -0
  1545. package/dist/domains/math/growing-pattern/manifest.mjs +59 -0
  1546. package/dist/domains/math/growing-pattern/runtime.mjs +19 -0
  1547. package/dist/domains/math/harmonic-form/manifest.mjs +53 -0
  1548. package/dist/domains/math/harmonic-form/runtime.mjs +12 -0
  1549. package/dist/domains/math/identity-proof/manifest.mjs +71 -0
  1550. package/dist/domains/math/identity-proof/runtime.mjs +12 -0
  1551. package/dist/domains/math/integral-explorer/authoring.mjs +15 -0
  1552. package/dist/domains/math/integral-explorer/manifest.mjs +57 -0
  1553. package/dist/domains/math/integral-explorer/runtime.mjs +21 -0
  1554. package/dist/domains/math/interactive-problem/authoring.mjs +295 -0
  1555. package/dist/domains/math/interactive-problem/manifest.mjs +65 -0
  1556. package/dist/domains/math/interactive-problem/runtime.mjs +26 -0
  1557. package/dist/domains/math/iteration/manifest.mjs +60 -0
  1558. package/dist/domains/math/iteration/runtime.mjs +12 -0
  1559. package/dist/domains/math/limit-explorer/authoring.mjs +15 -0
  1560. package/dist/domains/math/limit-explorer/manifest.mjs +55 -0
  1561. package/dist/domains/math/limit-explorer/runtime.mjs +19 -0
  1562. package/dist/domains/math/linear-model/manifest.mjs +81 -0
  1563. package/dist/domains/math/linear-model/runtime.mjs +19 -0
  1564. package/dist/domains/math/linear-system/manifest.mjs +59 -0
  1565. package/dist/domains/math/linear-system/runtime.mjs +24 -0
  1566. package/dist/domains/math/linearisation/activity.mjs +94 -0
  1567. package/dist/domains/math/linearisation/manifest.mjs +51 -0
  1568. package/dist/domains/math/linearisation/runtime.mjs +110 -0
  1569. package/dist/domains/math/lines-in-space/manifest.mjs +74 -0
  1570. package/dist/domains/math/lines-in-space/runtime.mjs +12 -0
  1571. package/dist/domains/math/log-law-workbench/activity.mjs +112 -0
  1572. package/dist/domains/math/log-law-workbench/manifest.mjs +51 -0
  1573. package/dist/domains/math/log-law-workbench/runtime.mjs +133 -0
  1574. package/dist/domains/math/measurement/activity.mjs +3 -0
  1575. package/dist/domains/math/measurement/manifest.mjs +81 -0
  1576. package/dist/domains/math/measurement/runtime.mjs +3 -0
  1577. package/dist/domains/math/modulus-cases/activity.mjs +94 -0
  1578. package/dist/domains/math/modulus-cases/manifest.mjs +52 -0
  1579. package/dist/domains/math/modulus-cases/runtime.mjs +105 -0
  1580. package/dist/domains/math/mystery-bucket/manifest.mjs +59 -0
  1581. package/dist/domains/math/mystery-bucket/runtime.mjs +19 -0
  1582. package/dist/domains/math/newton-method/authoring.mjs +72 -0
  1583. package/dist/domains/math/newton-method/manifest.mjs +62 -0
  1584. package/dist/domains/math/newton-method/runtime.mjs +19 -0
  1585. package/dist/domains/math/number-line/manifest.mjs +59 -0
  1586. package/dist/domains/math/number-line/runtime.mjs +19 -0
  1587. package/dist/domains/math/number-structure/manifest.mjs +71 -0
  1588. package/dist/domains/math/number-structure/runtime.mjs +3 -0
  1589. package/dist/domains/math/oblique-triangle/manifest.mjs +67 -0
  1590. package/dist/domains/math/oblique-triangle/runtime.mjs +12 -0
  1591. package/dist/domains/math/partial-fractions/manifest.mjs +71 -0
  1592. package/dist/domains/math/partial-fractions/runtime.mjs +12 -0
  1593. package/dist/domains/math/percent-bar/manifest.mjs +66 -0
  1594. package/dist/domains/math/percent-bar/runtime.mjs +5 -0
  1595. package/dist/domains/math/phase-portrait/authoring.mjs +132 -0
  1596. package/dist/domains/math/phase-portrait/manifest.mjs +65 -0
  1597. package/dist/domains/math/phase-portrait/runtime.mjs +21 -0
  1598. package/dist/domains/math/polynomial-solver/manifest.mjs +57 -0
  1599. package/dist/domains/math/polynomial-solver/runtime.mjs +5 -0
  1600. package/dist/domains/math/radian-wrap/manifest.mjs +56 -0
  1601. package/dist/domains/math/radian-wrap/runtime.mjs +12 -0
  1602. package/dist/domains/math/rate-machine/manifest.mjs +73 -0
  1603. package/dist/domains/math/rate-machine/runtime.mjs +5 -0
  1604. package/dist/domains/math/ratio-share/manifest.mjs +61 -0
  1605. package/dist/domains/math/ratio-share/runtime.mjs +5 -0
  1606. package/dist/domains/math/receipt-totals/manifest.mjs +63 -0
  1607. package/dist/domains/math/receipt-totals/runtime.mjs +24 -0
  1608. package/dist/domains/math/schemas.mjs +79 -0
  1609. package/dist/domains/math/sequence-predict/manifest.mjs +65 -0
  1610. package/dist/domains/math/sequence-predict/runtime.mjs +5 -0
  1611. package/dist/domains/math/shared.mjs +19 -0
  1612. package/dist/domains/math/slide-rule/manifest.mjs +38 -0
  1613. package/dist/domains/math/slide-rule/runtime.mjs +12 -0
  1614. package/dist/domains/math/solid-net/manifest.mjs +65 -0
  1615. package/dist/domains/math/solid-net/runtime.mjs +12 -0
  1616. package/dist/domains/math/solid-slice/manifest.mjs +67 -0
  1617. package/dist/domains/math/solid-slice/runtime.mjs +24 -0
  1618. package/dist/domains/math/straight-line/authoring.mjs +86 -0
  1619. package/dist/domains/math/straight-line/manifest.mjs +76 -0
  1620. package/dist/domains/math/straight-line/runtime.mjs +5 -0
  1621. package/dist/domains/math/system-solve/manifest.mjs +71 -0
  1622. package/dist/domains/math/system-solve/runtime.mjs +36 -0
  1623. package/dist/domains/math/tank-design/manifest.mjs +69 -0
  1624. package/dist/domains/math/tank-design/runtime.mjs +20 -0
  1625. package/dist/domains/math/taylor-series/authoring.mjs +81 -0
  1626. package/dist/domains/math/taylor-series/manifest.mjs +63 -0
  1627. package/dist/domains/math/taylor-series/runtime.mjs +20 -0
  1628. package/dist/domains/math/triangle-trig/authoring.mjs +94 -0
  1629. package/dist/domains/math/triangle-trig/manifest.mjs +75 -0
  1630. package/dist/domains/math/triangle-trig/runtime.mjs +18 -0
  1631. package/dist/domains/math/trig-explorer/manifest.mjs +56 -0
  1632. package/dist/domains/math/trig-explorer/runtime.mjs +16 -0
  1633. package/dist/domains/math/trig-signs/manifest.mjs +57 -0
  1634. package/dist/domains/math/trig-signs/runtime.mjs +5 -0
  1635. package/dist/domains/math/vector-geometry-two-d/activity.mjs +94 -0
  1636. package/dist/domains/math/vector-geometry-two-d/manifest.mjs +52 -0
  1637. package/dist/domains/math/vector-geometry-two-d/runtime.mjs +110 -0
  1638. package/dist/domains/math/vertex-parabola/manifest.mjs +56 -0
  1639. package/dist/domains/math/vertex-parabola/runtime.mjs +12 -0
  1640. package/dist/domains/ml/activation-gates/manifest.mjs +60 -0
  1641. package/dist/domains/ml/activation-gates/runtime.mjs +3 -0
  1642. package/dist/domains/ml/activity.mjs +84 -0
  1643. package/dist/domains/ml/affine-neuron/manifest.mjs +62 -0
  1644. package/dist/domains/ml/affine-neuron/runtime.mjs +3 -0
  1645. package/dist/domains/ml/anomaly-detector/manifest.mjs +52 -0
  1646. package/dist/domains/ml/anomaly-detector/runtime.mjs +3 -0
  1647. package/dist/domains/ml/attention-routing/manifest.mjs +52 -0
  1648. package/dist/domains/ml/attention-routing/runtime.mjs +3 -0
  1649. package/dist/domains/ml/autoencoder/manifest.mjs +52 -0
  1650. package/dist/domains/ml/autoencoder/runtime.mjs +3 -0
  1651. package/dist/domains/ml/causal-mask/manifest.mjs +52 -0
  1652. package/dist/domains/ml/causal-mask/runtime.mjs +3 -0
  1653. package/dist/domains/ml/classifier-threshold/manifest.mjs +68 -0
  1654. package/dist/domains/ml/classifier-threshold/runtime.d.mts +15 -0
  1655. package/dist/domains/ml/classifier-threshold/runtime.mjs +342 -0
  1656. package/dist/domains/ml/context-window/manifest.mjs +53 -0
  1657. package/dist/domains/ml/context-window/runtime.mjs +3 -0
  1658. package/dist/domains/ml/decision-boundary/manifest.mjs +56 -0
  1659. package/dist/domains/ml/decision-boundary/runtime.d.mts +15 -0
  1660. package/dist/domains/ml/decision-boundary/runtime.mjs +451 -0
  1661. package/dist/domains/ml/denoising/manifest.mjs +52 -0
  1662. package/dist/domains/ml/denoising/runtime.mjs +3 -0
  1663. package/dist/domains/ml/embedding-neighborhood/manifest.mjs +52 -0
  1664. package/dist/domains/ml/embedding-neighborhood/runtime.mjs +3 -0
  1665. package/dist/domains/ml/embedding-space/manifest.mjs +75 -0
  1666. package/dist/domains/ml/embedding-space/runtime.mjs +365 -0
  1667. package/dist/domains/ml/encoder-decoder/manifest.mjs +53 -0
  1668. package/dist/domains/ml/encoder-decoder/runtime.mjs +3 -0
  1669. package/dist/domains/ml/feature-map/manifest.mjs +61 -0
  1670. package/dist/domains/ml/feature-map/runtime.mjs +3 -0
  1671. package/dist/domains/ml/feed-forward-network/manifest.mjs +61 -0
  1672. package/dist/domains/ml/feed-forward-network/runtime.mjs +3 -0
  1673. package/dist/domains/ml/fit-evidence/manifest.mjs +62 -0
  1674. package/dist/domains/ml/fit-evidence/runtime.mjs +3 -0
  1675. package/dist/domains/ml/gradient-step/manifest.mjs +58 -0
  1676. package/dist/domains/ml/gradient-step/runtime.mjs +3 -0
  1677. package/dist/domains/ml/kmeans/manifest.mjs +78 -0
  1678. package/dist/domains/ml/kmeans/runtime.d.mts +22 -0
  1679. package/dist/domains/ml/kmeans/runtime.mjs +272 -0
  1680. package/dist/domains/ml/knn/manifest.mjs +58 -0
  1681. package/dist/domains/ml/knn/runtime.d.mts +17 -0
  1682. package/dist/domains/ml/knn/runtime.mjs +404 -0
  1683. package/dist/domains/ml/latent-space/manifest.mjs +52 -0
  1684. package/dist/domains/ml/latent-space/runtime.mjs +3 -0
  1685. package/dist/domains/ml/layer-normalization/manifest.mjs +79 -0
  1686. package/dist/domains/ml/layer-normalization/runtime.mjs +3 -0
  1687. package/dist/domains/ml/learning-loop/manifest.mjs +55 -0
  1688. package/dist/domains/ml/learning-loop/runtime.mjs +3 -0
  1689. package/dist/domains/ml/loss-error/manifest.mjs +57 -0
  1690. package/dist/domains/ml/loss-error/runtime.mjs +3 -0
  1691. package/dist/domains/ml/matrix-vector/manifest.mjs +57 -0
  1692. package/dist/domains/ml/matrix-vector/runtime.mjs +3 -0
  1693. package/dist/domains/ml/memory-relay/manifest.mjs +53 -0
  1694. package/dist/domains/ml/memory-relay/runtime.mjs +3 -0
  1695. package/dist/domains/ml/multi-head-attention/manifest.mjs +52 -0
  1696. package/dist/domains/ml/multi-head-attention/runtime.mjs +3 -0
  1697. package/dist/domains/ml/multimodal-alignment/manifest.mjs +52 -0
  1698. package/dist/domains/ml/multimodal-alignment/runtime.mjs +3 -0
  1699. package/dist/domains/ml/next-token/manifest.mjs +64 -0
  1700. package/dist/domains/ml/next-token/runtime.mjs +271 -0
  1701. package/dist/domains/ml/pixel-filter/manifest.mjs +48 -0
  1702. package/dist/domains/ml/pixel-filter/runtime.mjs +3 -0
  1703. package/dist/domains/ml/position-signals/manifest.mjs +52 -0
  1704. package/dist/domains/ml/position-signals/runtime.mjs +3 -0
  1705. package/dist/domains/ml/query-key-value/manifest.mjs +54 -0
  1706. package/dist/domains/ml/query-key-value/runtime.mjs +3 -0
  1707. package/dist/domains/ml/regression/manifest.mjs +73 -0
  1708. package/dist/domains/ml/regression/runtime.d.mts +20 -0
  1709. package/dist/domains/ml/regression/runtime.mjs +396 -0
  1710. package/dist/domains/ml/residual-stream/manifest.mjs +59 -0
  1711. package/dist/domains/ml/residual-stream/runtime.mjs +3 -0
  1712. package/dist/domains/ml/scaled-dot-product-attention/manifest.mjs +60 -0
  1713. package/dist/domains/ml/scaled-dot-product-attention/runtime.mjs +3 -0
  1714. package/dist/domains/ml/tiny-network/manifest.mjs +56 -0
  1715. package/dist/domains/ml/tiny-network/runtime.mjs +3 -0
  1716. package/dist/domains/ml/token-generation/manifest.mjs +53 -0
  1717. package/dist/domains/ml/token-generation/runtime.mjs +3 -0
  1718. package/dist/domains/ml/training-loop/manifest.mjs +58 -0
  1719. package/dist/domains/ml/training-loop/runtime.mjs +3 -0
  1720. package/dist/domains/ml/transformer-block/manifest.mjs +67 -0
  1721. package/dist/domains/ml/transformer-block/runtime.mjs +3 -0
  1722. package/dist/domains/ml/unembedding/manifest.mjs +61 -0
  1723. package/dist/domains/ml/unembedding/runtime.mjs +3 -0
  1724. package/dist/domains/networking/_shared/decision-scene.mjs +91 -0
  1725. package/dist/domains/networking/adaptive-video-call/activity.mjs +57 -0
  1726. package/dist/domains/networking/adaptive-video-call/manifest.mjs +69 -0
  1727. package/dist/domains/networking/adaptive-video-call/runtime.mjs +132 -0
  1728. package/dist/domains/networking/adaptive-video-call/scene.mjs +194 -0
  1729. package/dist/domains/networking/bottleneck-queue/activity.mjs +33 -0
  1730. package/dist/domains/networking/bottleneck-queue/manifest.mjs +68 -0
  1731. package/dist/domains/networking/bottleneck-queue/runtime.mjs +137 -0
  1732. package/dist/domains/networking/bottleneck-queue/scene.mjs +162 -0
  1733. package/dist/domains/networking/broadcast-delivery/activity.mjs +71 -0
  1734. package/dist/domains/networking/broadcast-delivery/manifest.mjs +76 -0
  1735. package/dist/domains/networking/broadcast-delivery/runtime.mjs +100 -0
  1736. package/dist/domains/networking/broadcast-delivery/scene.mjs +99 -0
  1737. package/dist/domains/networking/cafe-privacy/manifest.mjs +84 -0
  1738. package/dist/domains/networking/cafe-privacy/runtime.mjs +259 -0
  1739. package/dist/domains/networking/cell-size/manifest.mjs +78 -0
  1740. package/dist/domains/networking/cell-size/runtime.mjs +166 -0
  1741. package/dist/domains/networking/cloud-storage-design/activity.mjs +58 -0
  1742. package/dist/domains/networking/cloud-storage-design/manifest.mjs +81 -0
  1743. package/dist/domains/networking/cloud-storage-design/runtime.mjs +108 -0
  1744. package/dist/domains/networking/cloud-storage-design/scene.mjs +134 -0
  1745. package/dist/domains/networking/container-deployment/activity.mjs +58 -0
  1746. package/dist/domains/networking/container-deployment/manifest.mjs +79 -0
  1747. package/dist/domains/networking/container-deployment/runtime.mjs +124 -0
  1748. package/dist/domains/networking/container-deployment/scene.mjs +243 -0
  1749. package/dist/domains/networking/data-recovery-planner/activity.mjs +58 -0
  1750. package/dist/domains/networking/data-recovery-planner/manifest.mjs +74 -0
  1751. package/dist/domains/networking/data-recovery-planner/runtime.mjs +111 -0
  1752. package/dist/domains/networking/data-recovery-planner/scene.mjs +139 -0
  1753. package/dist/domains/networking/dhcp-lease/manifest.mjs +64 -0
  1754. package/dist/domains/networking/dhcp-lease/runtime.mjs +108 -0
  1755. package/dist/domains/networking/distributed-inference-topology/activity.mjs +58 -0
  1756. package/dist/domains/networking/distributed-inference-topology/manifest.mjs +82 -0
  1757. package/dist/domains/networking/distributed-inference-topology/runtime.mjs +142 -0
  1758. package/dist/domains/networking/distributed-inference-topology/scene.mjs +179 -0
  1759. package/dist/domains/networking/dns-resolution/activity.mjs +33 -0
  1760. package/dist/domains/networking/dns-resolution/manifest.mjs +71 -0
  1761. package/dist/domains/networking/dns-resolution/runtime.mjs +80 -0
  1762. package/dist/domains/networking/dns-resolution/scene.mjs +129 -0
  1763. package/dist/domains/networking/edge-cache-delivery/activity.mjs +58 -0
  1764. package/dist/domains/networking/edge-cache-delivery/manifest.mjs +74 -0
  1765. package/dist/domains/networking/edge-cache-delivery/runtime.mjs +111 -0
  1766. package/dist/domains/networking/edge-cache-delivery/scene.mjs +130 -0
  1767. package/dist/domains/networking/ethernet-pinout/manifest.mjs +66 -0
  1768. package/dist/domains/networking/ethernet-pinout/runtime.mjs +254 -0
  1769. package/dist/domains/networking/failure-domain-planner/activity.mjs +58 -0
  1770. package/dist/domains/networking/failure-domain-planner/manifest.mjs +82 -0
  1771. package/dist/domains/networking/failure-domain-planner/runtime.mjs +119 -0
  1772. package/dist/domains/networking/failure-domain-planner/scene.mjs +120 -0
  1773. package/dist/domains/networking/generation-capability/manifest.mjs +73 -0
  1774. package/dist/domains/networking/generation-capability/runtime.mjs +156 -0
  1775. package/dist/domains/networking/geo-market-routing/activity.mjs +58 -0
  1776. package/dist/domains/networking/geo-market-routing/manifest.mjs +79 -0
  1777. package/dist/domains/networking/geo-market-routing/runtime.mjs +122 -0
  1778. package/dist/domains/networking/geo-market-routing/scene.mjs +129 -0
  1779. package/dist/domains/networking/group-message-sync/activity.mjs +33 -0
  1780. package/dist/domains/networking/group-message-sync/manifest.mjs +73 -0
  1781. package/dist/domains/networking/group-message-sync/runtime.mjs +118 -0
  1782. package/dist/domains/networking/group-message-sync/scene.mjs +132 -0
  1783. package/dist/domains/networking/handover-margin/manifest.mjs +81 -0
  1784. package/dist/domains/networking/handover-margin/runtime.mjs +224 -0
  1785. package/dist/domains/networking/home-broadband-journey/activity.mjs +44 -0
  1786. package/dist/domains/networking/home-broadband-journey/manifest.mjs +79 -0
  1787. package/dist/domains/networking/home-broadband-journey/runtime.mjs +108 -0
  1788. package/dist/domains/networking/home-broadband-journey/scene.mjs +133 -0
  1789. package/dist/domains/networking/inference-capacity-planner/activity.mjs +58 -0
  1790. package/dist/domains/networking/inference-capacity-planner/manifest.mjs +82 -0
  1791. package/dist/domains/networking/inference-capacity-planner/runtime.mjs +163 -0
  1792. package/dist/domains/networking/inference-capacity-planner/scene.mjs +138 -0
  1793. package/dist/domains/networking/inference-degradation-planner/activity.mjs +58 -0
  1794. package/dist/domains/networking/inference-degradation-planner/manifest.mjs +81 -0
  1795. package/dist/domains/networking/inference-degradation-planner/runtime.mjs +143 -0
  1796. package/dist/domains/networking/inference-degradation-planner/scene.mjs +130 -0
  1797. package/dist/domains/networking/inference-request-pipeline/activity.mjs +58 -0
  1798. package/dist/domains/networking/inference-request-pipeline/manifest.mjs +86 -0
  1799. package/dist/domains/networking/inference-request-pipeline/runtime.mjs +141 -0
  1800. package/dist/domains/networking/inference-request-pipeline/scene.mjs +137 -0
  1801. package/dist/domains/networking/infrastructure-drift-planner/activity.mjs +58 -0
  1802. package/dist/domains/networking/infrastructure-drift-planner/manifest.mjs +87 -0
  1803. package/dist/domains/networking/infrastructure-drift-planner/runtime.mjs +141 -0
  1804. package/dist/domains/networking/infrastructure-drift-planner/scene.mjs +36 -0
  1805. package/dist/domains/networking/ipv6-neighbor/manifest.mjs +61 -0
  1806. package/dist/domains/networking/ipv6-neighbor/runtime.mjs +124 -0
  1807. package/dist/domains/networking/layer-encapsulation/manifest.mjs +66 -0
  1808. package/dist/domains/networking/layer-encapsulation/runtime.mjs +281 -0
  1809. package/dist/domains/networking/live-stream-pipeline/activity.mjs +72 -0
  1810. package/dist/domains/networking/live-stream-pipeline/manifest.mjs +67 -0
  1811. package/dist/domains/networking/live-stream-pipeline/runtime.mjs +98 -0
  1812. package/dist/domains/networking/live-stream-pipeline/scene.mjs +122 -0
  1813. package/dist/domains/networking/media-encoding/activity.mjs +33 -0
  1814. package/dist/domains/networking/media-encoding/manifest.mjs +72 -0
  1815. package/dist/domains/networking/media-encoding/runtime.mjs +111 -0
  1816. package/dist/domains/networking/media-encoding/scene.mjs +155 -0
  1817. package/dist/domains/networking/message-journey/activity.mjs +51 -0
  1818. package/dist/domains/networking/message-journey/manifest.mjs +80 -0
  1819. package/dist/domains/networking/message-journey/runtime.mjs +170 -0
  1820. package/dist/domains/networking/message-journey/scene.mjs +388 -0
  1821. package/dist/domains/networking/mobile-call-journey/activity.mjs +51 -0
  1822. package/dist/domains/networking/mobile-call-journey/manifest.mjs +81 -0
  1823. package/dist/domains/networking/mobile-call-journey/runtime.mjs +164 -0
  1824. package/dist/domains/networking/mobile-call-journey/scene.mjs +390 -0
  1825. package/dist/domains/networking/model-routing-economics/activity.mjs +58 -0
  1826. package/dist/domains/networking/model-routing-economics/manifest.mjs +79 -0
  1827. package/dist/domains/networking/model-routing-economics/runtime.mjs +124 -0
  1828. package/dist/domains/networking/model-routing-economics/scene.mjs +165 -0
  1829. package/dist/domains/networking/modem-modulation/activity.mjs +33 -0
  1830. package/dist/domains/networking/modem-modulation/manifest.mjs +71 -0
  1831. package/dist/domains/networking/modem-modulation/runtime.mjs +98 -0
  1832. package/dist/domains/networking/modem-modulation/scene.mjs +150 -0
  1833. package/dist/domains/networking/nat-traversal/manifest.mjs +70 -0
  1834. package/dist/domains/networking/nat-traversal/runtime.mjs +115 -0
  1835. package/dist/domains/networking/network-media/manifest.mjs +75 -0
  1836. package/dist/domains/networking/network-media/runtime.mjs +213 -0
  1837. package/dist/domains/networking/orbit-latency/manifest.mjs +83 -0
  1838. package/dist/domains/networking/orbit-latency/runtime.mjs +222 -0
  1839. package/dist/domains/networking/orchestration-reconciler/activity.mjs +58 -0
  1840. package/dist/domains/networking/orchestration-reconciler/manifest.mjs +76 -0
  1841. package/dist/domains/networking/orchestration-reconciler/runtime.mjs +129 -0
  1842. package/dist/domains/networking/orchestration-reconciler/scene.mjs +162 -0
  1843. package/dist/domains/networking/packet-journey/manifest.mjs +61 -0
  1844. package/dist/domains/networking/packet-journey/runtime.d.mts +15 -0
  1845. package/dist/domains/networking/packet-journey/runtime.mjs +237 -0
  1846. package/dist/domains/networking/prefix-cache-planner/activity.mjs +58 -0
  1847. package/dist/domains/networking/prefix-cache-planner/manifest.mjs +79 -0
  1848. package/dist/domains/networking/prefix-cache-planner/runtime.mjs +145 -0
  1849. package/dist/domains/networking/prefix-cache-planner/scene.mjs +120 -0
  1850. package/dist/domains/networking/release-strategy-planner/activity.mjs +56 -0
  1851. package/dist/domains/networking/release-strategy-planner/manifest.mjs +83 -0
  1852. package/dist/domains/networking/release-strategy-planner/runtime.mjs +142 -0
  1853. package/dist/domains/networking/release-strategy-planner/scene.mjs +68 -0
  1854. package/dist/domains/networking/route-learning/manifest.mjs +57 -0
  1855. package/dist/domains/networking/route-learning/runtime.mjs +130 -0
  1856. package/dist/domains/networking/secret-rotation-planner/activity.mjs +57 -0
  1857. package/dist/domains/networking/secret-rotation-planner/manifest.mjs +80 -0
  1858. package/dist/domains/networking/secret-rotation-planner/runtime.mjs +136 -0
  1859. package/dist/domains/networking/secret-rotation-planner/scene.mjs +70 -0
  1860. package/dist/domains/networking/server-deployment/activity.mjs +58 -0
  1861. package/dist/domains/networking/server-deployment/manifest.mjs +89 -0
  1862. package/dist/domains/networking/server-deployment/runtime.mjs +150 -0
  1863. package/dist/domains/networking/server-deployment/scene.mjs +231 -0
  1864. package/dist/domains/networking/service-scaling/activity.mjs +58 -0
  1865. package/dist/domains/networking/service-scaling/manifest.mjs +74 -0
  1866. package/dist/domains/networking/service-scaling/runtime.mjs +120 -0
  1867. package/dist/domains/networking/service-scaling/scene.mjs +134 -0
  1868. package/dist/domains/networking/shared-airtime/manifest.mjs +80 -0
  1869. package/dist/domains/networking/shared-airtime/runtime.mjs +238 -0
  1870. package/dist/domains/networking/signal-through-walls/manifest.mjs +77 -0
  1871. package/dist/domains/networking/signal-through-walls/runtime.mjs +160 -0
  1872. package/dist/domains/networking/slo-incident-console/activity.mjs +58 -0
  1873. package/dist/domains/networking/slo-incident-console/manifest.mjs +83 -0
  1874. package/dist/domains/networking/slo-incident-console/runtime.mjs +128 -0
  1875. package/dist/domains/networking/slo-incident-console/scene.mjs +143 -0
  1876. package/dist/domains/networking/spectrum-map/manifest.mjs +64 -0
  1877. package/dist/domains/networking/spectrum-map/runtime.mjs +149 -0
  1878. package/dist/domains/networking/subnet-builder/manifest.mjs +68 -0
  1879. package/dist/domains/networking/subnet-builder/runtime.mjs +249 -0
  1880. package/dist/domains/networking/switch-learning/manifest.mjs +62 -0
  1881. package/dist/domains/networking/switch-learning/runtime.mjs +250 -0
  1882. package/dist/domains/networking/tcp-handshake/manifest.mjs +81 -0
  1883. package/dist/domains/networking/tcp-handshake/runtime.mjs +257 -0
  1884. package/dist/domains/networking/tcp-sender/manifest.mjs +63 -0
  1885. package/dist/domains/networking/tcp-sender/runtime.mjs +151 -0
  1886. package/dist/domains/networking/tls-connection/activity.mjs +33 -0
  1887. package/dist/domains/networking/tls-connection/manifest.mjs +70 -0
  1888. package/dist/domains/networking/tls-connection/runtime.mjs +94 -0
  1889. package/dist/domains/networking/tls-connection/scene.mjs +96 -0
  1890. package/dist/domains/networking/vlan-designer/manifest.mjs +66 -0
  1891. package/dist/domains/networking/vlan-designer/runtime.mjs +278 -0
  1892. package/dist/domains/networking/vpc-route-planner/activity.mjs +58 -0
  1893. package/dist/domains/networking/vpc-route-planner/manifest.mjs +80 -0
  1894. package/dist/domains/networking/vpc-route-planner/runtime.mjs +107 -0
  1895. package/dist/domains/networking/vpc-route-planner/scene.mjs +145 -0
  1896. package/dist/domains/networking/vpn-tunnel/manifest.mjs +68 -0
  1897. package/dist/domains/networking/vpn-tunnel/runtime.mjs +256 -0
  1898. package/dist/domains/networking/wave-size/manifest.mjs +69 -0
  1899. package/dist/domains/networking/wave-size/runtime.mjs +149 -0
  1900. package/dist/domains/networking/wifi-contention/activity.mjs +33 -0
  1901. package/dist/domains/networking/wifi-contention/manifest.mjs +62 -0
  1902. package/dist/domains/networking/wifi-contention/runtime.mjs +93 -0
  1903. package/dist/domains/networking/wifi-contention/scene.mjs +92 -0
  1904. package/dist/domains/networking/wifi-coverage/manifest.mjs +82 -0
  1905. package/dist/domains/networking/wifi-coverage/runtime.mjs +253 -0
  1906. package/dist/domains/networking/workload-identity-planner/activity.mjs +58 -0
  1907. package/dist/domains/networking/workload-identity-planner/manifest.mjs +82 -0
  1908. package/dist/domains/networking/workload-identity-planner/runtime.mjs +120 -0
  1909. package/dist/domains/networking/workload-identity-planner/scene.mjs +71 -0
  1910. package/dist/domains/physics/ac-generator/manifest.mjs +64 -0
  1911. package/dist/domains/physics/ac-generator/runtime.mjs +5 -0
  1912. package/dist/domains/physics/alternating-current/manifest.mjs +67 -0
  1913. package/dist/domains/physics/alternating-current/runtime.mjs +5 -0
  1914. package/dist/domains/physics/atwood/manifest.mjs +50 -0
  1915. package/dist/domains/physics/atwood/runtime.mjs +5 -0
  1916. package/dist/domains/physics/bloch-sphere/activity.mjs +3 -0
  1917. package/dist/domains/physics/bloch-sphere/manifest.mjs +70 -0
  1918. package/dist/domains/physics/bloch-sphere/runtime.mjs +3 -0
  1919. package/dist/domains/physics/bullet-walls/manifest.mjs +52 -0
  1920. package/dist/domains/physics/bullet-walls/runtime.mjs +5 -0
  1921. package/dist/domains/physics/car-suspension/manifest.mjs +59 -0
  1922. package/dist/domains/physics/car-suspension/runtime.mjs +5 -0
  1923. package/dist/domains/physics/carnot/manifest.mjs +59 -0
  1924. package/dist/domains/physics/carnot/runtime.mjs +5 -0
  1925. package/dist/domains/physics/circuit-fault-detective/activity.mjs +59 -0
  1926. package/dist/domains/physics/circuit-fault-detective/manifest.mjs +59 -0
  1927. package/dist/domains/physics/circuit-fault-detective/runtime.mjs +157 -0
  1928. package/dist/domains/physics/circuit-iv-investigation/activity.mjs +127 -0
  1929. package/dist/domains/physics/circuit-iv-investigation/manifest.mjs +78 -0
  1930. package/dist/domains/physics/circuit-iv-investigation/runtime.mjs +329 -0
  1931. package/dist/domains/physics/circular-motion/manifest.mjs +51 -0
  1932. package/dist/domains/physics/circular-motion/runtime.mjs +5 -0
  1933. package/dist/domains/physics/coil-torque/activity.mjs +3 -0
  1934. package/dist/domains/physics/coil-torque/manifest.mjs +69 -0
  1935. package/dist/domains/physics/coil-torque/runtime.mjs +3 -0
  1936. package/dist/domains/physics/collision-track/manifest.mjs +64 -0
  1937. package/dist/domains/physics/collision-track/runtime.mjs +5 -0
  1938. package/dist/domains/physics/cooling-insulation-investigation/activity.mjs +128 -0
  1939. package/dist/domains/physics/cooling-insulation-investigation/manifest.mjs +78 -0
  1940. package/dist/domains/physics/cooling-insulation-investigation/runtime.mjs +273 -0
  1941. package/dist/domains/physics/coulomb-superposition/activity.mjs +3 -0
  1942. package/dist/domains/physics/coulomb-superposition/manifest.mjs +75 -0
  1943. package/dist/domains/physics/coulomb-superposition/runtime.mjs +3 -0
  1944. package/dist/domains/physics/couple-torque/manifest.mjs +57 -0
  1945. package/dist/domains/physics/couple-torque/runtime.mjs +5 -0
  1946. package/dist/domains/physics/dc-motor/manifest.mjs +58 -0
  1947. package/dist/domains/physics/dc-motor/runtime.mjs +5 -0
  1948. package/dist/domains/physics/density-displacement/activity.mjs +128 -0
  1949. package/dist/domains/physics/density-displacement/manifest.mjs +75 -0
  1950. package/dist/domains/physics/density-displacement/runtime.mjs +197 -0
  1951. package/dist/domains/physics/doppler/manifest.mjs +49 -0
  1952. package/dist/domains/physics/doppler/runtime.mjs +5 -0
  1953. package/dist/domains/physics/double-slit/activity.mjs +3 -0
  1954. package/dist/domains/physics/double-slit/manifest.mjs +62 -0
  1955. package/dist/domains/physics/double-slit/runtime.mjs +3 -0
  1956. package/dist/domains/physics/earth-field/activity.mjs +3 -0
  1957. package/dist/domains/physics/earth-field/manifest.mjs +77 -0
  1958. package/dist/domains/physics/earth-field/runtime.mjs +3 -0
  1959. package/dist/domains/physics/efficiency/manifest.mjs +69 -0
  1960. package/dist/domains/physics/efficiency/runtime.mjs +5 -0
  1961. package/dist/domains/physics/electric-field/manifest.mjs +49 -0
  1962. package/dist/domains/physics/electric-field/runtime.mjs +5 -0
  1963. package/dist/domains/physics/electric-flux/manifest.mjs +53 -0
  1964. package/dist/domains/physics/electric-flux/runtime.mjs +5 -0
  1965. package/dist/domains/physics/energy-resource-grid/activity.mjs +169 -0
  1966. package/dist/domains/physics/energy-resource-grid/manifest.mjs +89 -0
  1967. package/dist/domains/physics/energy-resource-grid/palette.mjs +69 -0
  1968. package/dist/domains/physics/energy-resource-grid/runtime.mjs +1483 -0
  1969. package/dist/domains/physics/energy-skate/manifest.mjs +55 -0
  1970. package/dist/domains/physics/energy-skate/runtime.mjs +5 -0
  1971. package/dist/domains/physics/entropy/manifest.mjs +53 -0
  1972. package/dist/domains/physics/entropy/runtime.mjs +5 -0
  1973. package/dist/domains/physics/falling-target/manifest.mjs +65 -0
  1974. package/dist/domains/physics/falling-target/runtime.mjs +12 -0
  1975. package/dist/domains/physics/fission-chain/activity.mjs +3 -0
  1976. package/dist/domains/physics/fission-chain/manifest.mjs +61 -0
  1977. package/dist/domains/physics/fission-chain/runtime.mjs +3 -0
  1978. package/dist/domains/physics/fluid-pressure/manifest.mjs +61 -0
  1979. package/dist/domains/physics/fluid-pressure/runtime.mjs +5 -0
  1980. package/dist/domains/physics/force-pairs/manifest.mjs +60 -0
  1981. package/dist/domains/physics/force-pairs/runtime.mjs +5 -0
  1982. package/dist/domains/physics/gas-process/manifest.mjs +58 -0
  1983. package/dist/domains/physics/gas-process/runtime.mjs +5 -0
  1984. package/dist/domains/physics/gauss-law/manifest.mjs +51 -0
  1985. package/dist/domains/physics/gauss-law/runtime.mjs +5 -0
  1986. package/dist/domains/physics/generator-grid-mission/activity.mjs +153 -0
  1987. package/dist/domains/physics/generator-grid-mission/manifest.mjs +81 -0
  1988. package/dist/domains/physics/generator-grid-mission/palette.mjs +30 -0
  1989. package/dist/domains/physics/generator-grid-mission/runtime.mjs +466 -0
  1990. package/dist/domains/physics/glass-block-refraction/activity.mjs +128 -0
  1991. package/dist/domains/physics/glass-block-refraction/manifest.mjs +77 -0
  1992. package/dist/domains/physics/glass-block-refraction/runtime.mjs +327 -0
  1993. package/dist/domains/physics/gravitation/manifest.mjs +55 -0
  1994. package/dist/domains/physics/gravitation/runtime.mjs +5 -0
  1995. package/dist/domains/physics/gravity-drop/manifest.mjs +54 -0
  1996. package/dist/domains/physics/gravity-drop/runtime.mjs +5 -0
  1997. package/dist/domains/physics/gravity-profile/manifest.mjs +62 -0
  1998. package/dist/domains/physics/gravity-profile/runtime.mjs +5 -0
  1999. package/dist/domains/physics/guitar-string/manifest.mjs +69 -0
  2000. package/dist/domains/physics/guitar-string/runtime.mjs +5 -0
  2001. package/dist/domains/physics/heat-transfer/manifest.mjs +57 -0
  2002. package/dist/domains/physics/heat-transfer/runtime.mjs +5 -0
  2003. package/dist/domains/physics/heating-curve/manifest.mjs +61 -0
  2004. package/dist/domains/physics/heating-curve/runtime.mjs +5 -0
  2005. package/dist/domains/physics/impulse/manifest.mjs +52 -0
  2006. package/dist/domains/physics/impulse/runtime.mjs +5 -0
  2007. package/dist/domains/physics/intercept/manifest.mjs +68 -0
  2008. package/dist/domains/physics/intercept/runtime.mjs +12 -0
  2009. package/dist/domains/physics/kepler/manifest.mjs +51 -0
  2010. package/dist/domains/physics/kepler/runtime.mjs +5 -0
  2011. package/dist/domains/physics/length-contraction/activity.mjs +3 -0
  2012. package/dist/domains/physics/length-contraction/manifest.mjs +59 -0
  2013. package/dist/domains/physics/length-contraction/runtime.mjs +3 -0
  2014. package/dist/domains/physics/lens-focal-investigation/activity.mjs +128 -0
  2015. package/dist/domains/physics/lens-focal-investigation/manifest.mjs +78 -0
  2016. package/dist/domains/physics/lens-focal-investigation/runtime.mjs +329 -0
  2017. package/dist/domains/physics/lens-imaging/manifest.mjs +57 -0
  2018. package/dist/domains/physics/lens-imaging/runtime.mjs +5 -0
  2019. package/dist/domains/physics/lever/manifest.mjs +60 -0
  2020. package/dist/domains/physics/lever/runtime.mjs +24 -0
  2021. package/dist/domains/physics/lift-weight/manifest.mjs +55 -0
  2022. package/dist/domains/physics/lift-weight/runtime.mjs +5 -0
  2023. package/dist/domains/physics/lifting-work/manifest.mjs +62 -0
  2024. package/dist/domains/physics/lifting-work/runtime.mjs +5 -0
  2025. package/dist/domains/physics/linear-pursuit/manifest.mjs +74 -0
  2026. package/dist/domains/physics/linear-pursuit/runtime.mjs +12 -0
  2027. package/dist/domains/physics/lorentz/manifest.mjs +52 -0
  2028. package/dist/domains/physics/lorentz/runtime.mjs +5 -0
  2029. package/dist/domains/physics/lorentz-transformation/activity.mjs +3 -0
  2030. package/dist/domains/physics/lorentz-transformation/manifest.mjs +65 -0
  2031. package/dist/domains/physics/lorentz-transformation/runtime.mjs +3 -0
  2032. package/dist/domains/physics/magnetic-field/activity.mjs +3 -0
  2033. package/dist/domains/physics/magnetic-field/manifest.mjs +80 -0
  2034. package/dist/domains/physics/magnetic-field/runtime.mjs +3 -0
  2035. package/dist/domains/physics/magnetic-field-mission/activity.mjs +120 -0
  2036. package/dist/domains/physics/magnetic-field-mission/manifest.mjs +73 -0
  2037. package/dist/domains/physics/magnetic-field-mission/palette.mjs +40 -0
  2038. package/dist/domains/physics/magnetic-field-mission/runtime.mjs +547 -0
  2039. package/dist/domains/physics/magnetism/manifest.mjs +52 -0
  2040. package/dist/domains/physics/magnetism/runtime.mjs +5 -0
  2041. package/dist/domains/physics/mirror-imaging/manifest.mjs +57 -0
  2042. package/dist/domains/physics/mirror-imaging/runtime.mjs +5 -0
  2043. package/dist/domains/physics/moving-launcher/manifest.mjs +66 -0
  2044. package/dist/domains/physics/moving-launcher/runtime.mjs +12 -0
  2045. package/dist/domains/physics/muon-survival/activity.mjs +3 -0
  2046. package/dist/domains/physics/muon-survival/manifest.mjs +61 -0
  2047. package/dist/domains/physics/muon-survival/runtime.mjs +3 -0
  2048. package/dist/domains/physics/nuclear-binding-energy/activity.mjs +3 -0
  2049. package/dist/domains/physics/nuclear-binding-energy/manifest.mjs +67 -0
  2050. package/dist/domains/physics/nuclear-binding-energy/runtime.mjs +3 -0
  2051. package/dist/domains/physics/optics/manifest.mjs +53 -0
  2052. package/dist/domains/physics/optics/runtime.mjs +5 -0
  2053. package/dist/domains/physics/orbit-lab/manifest.mjs +49 -0
  2054. package/dist/domains/physics/orbit-lab/runtime.mjs +5 -0
  2055. package/dist/domains/physics/paper5-analysis-lab/activity.mjs +144 -0
  2056. package/dist/domains/physics/paper5-analysis-lab/manifest.mjs +67 -0
  2057. package/dist/domains/physics/paper5-analysis-lab/runtime.mjs +706 -0
  2058. package/dist/domains/physics/pendulum-worlds/manifest.mjs +55 -0
  2059. package/dist/domains/physics/pendulum-worlds/runtime.mjs +5 -0
  2060. package/dist/domains/physics/pet-scan/activity.mjs +3 -0
  2061. package/dist/domains/physics/pet-scan/manifest.mjs +73 -0
  2062. package/dist/domains/physics/pet-scan/runtime.mjs +3 -0
  2063. package/dist/domains/physics/photoelectric-effect/activity.mjs +3 -0
  2064. package/dist/domains/physics/photoelectric-effect/manifest.mjs +67 -0
  2065. package/dist/domains/physics/photoelectric-effect/runtime.mjs +3 -0
  2066. package/dist/domains/physics/physics-practical-studio/activity.mjs +96 -0
  2067. package/dist/domains/physics/physics-practical-studio/core.mjs +75 -0
  2068. package/dist/domains/physics/physics-practical-studio/manifest.mjs +53 -0
  2069. package/dist/domains/physics/physics-practical-studio/runtime.mjs +207 -0
  2070. package/dist/domains/physics/plug-safety-inspector/activity.mjs +97 -0
  2071. package/dist/domains/physics/plug-safety-inspector/manifest.mjs +54 -0
  2072. package/dist/domains/physics/plug-safety-inspector/palette.mjs +44 -0
  2073. package/dist/domains/physics/plug-safety-inspector/runtime.mjs +414 -0
  2074. package/dist/domains/physics/power/manifest.mjs +58 -0
  2075. package/dist/domains/physics/power/runtime.mjs +5 -0
  2076. package/dist/domains/physics/precision-measurement-lab/activity.mjs +148 -0
  2077. package/dist/domains/physics/precision-measurement-lab/manifest.mjs +81 -0
  2078. package/dist/domains/physics/precision-measurement-lab/palette.mjs +41 -0
  2079. package/dist/domains/physics/precision-measurement-lab/runtime.mjs +641 -0
  2080. package/dist/domains/physics/projectile-lab/core/formulas.mjs +26 -0
  2081. package/dist/domains/physics/projectile-lab/core/model.mjs +43 -0
  2082. package/dist/domains/physics/projectile-lab/manifest.mjs +55 -0
  2083. package/dist/domains/physics/projectile-lab/runtime/index.mjs +241 -0
  2084. package/dist/domains/physics/projectile-lab/runtime/svg.mjs +208 -0
  2085. package/dist/domains/physics/quantum-gates/activity.mjs +3 -0
  2086. package/dist/domains/physics/quantum-gates/manifest.mjs +68 -0
  2087. package/dist/domains/physics/quantum-gates/runtime.mjs +3 -0
  2088. package/dist/domains/physics/radiation-half-life-investigation/activity.mjs +154 -0
  2089. package/dist/domains/physics/radiation-half-life-investigation/manifest.mjs +88 -0
  2090. package/dist/domains/physics/radiation-half-life-investigation/palette.mjs +47 -0
  2091. package/dist/domains/physics/radiation-half-life-investigation/runtime.mjs +1036 -0
  2092. package/dist/domains/physics/rain-relative/manifest.mjs +54 -0
  2093. package/dist/domains/physics/rain-relative/runtime.mjs +5 -0
  2094. package/dist/domains/physics/ramp-forces/manifest.mjs +65 -0
  2095. package/dist/domains/physics/ramp-forces/runtime.mjs +25 -0
  2096. package/dist/domains/physics/refraction/manifest.mjs +60 -0
  2097. package/dist/domains/physics/refraction/runtime.mjs +5 -0
  2098. package/dist/domains/physics/relativity-light-clock/activity.mjs +3 -0
  2099. package/dist/domains/physics/relativity-light-clock/manifest.mjs +67 -0
  2100. package/dist/domains/physics/relativity-light-clock/runtime.mjs +12 -0
  2101. package/dist/domains/physics/relativity-simultaneity/activity.mjs +3 -0
  2102. package/dist/domains/physics/relativity-simultaneity/manifest.mjs +59 -0
  2103. package/dist/domains/physics/relativity-simultaneity/runtime.mjs +3 -0
  2104. package/dist/domains/physics/ripple-tank/manifest.mjs +50 -0
  2105. package/dist/domains/physics/ripple-tank/runtime.mjs +5 -0
  2106. package/dist/domains/physics/river-boat/manifest.mjs +52 -0
  2107. package/dist/domains/physics/river-boat/runtime.mjs +17 -0
  2108. package/dist/domains/physics/shm/manifest.mjs +54 -0
  2109. package/dist/domains/physics/shm/runtime.mjs +5 -0
  2110. package/dist/domains/physics/shm-energy/manifest.mjs +58 -0
  2111. package/dist/domains/physics/shm-energy/runtime.mjs +5 -0
  2112. package/dist/domains/physics/shm-graphs/manifest.mjs +56 -0
  2113. package/dist/domains/physics/shm-graphs/runtime.mjs +5 -0
  2114. package/dist/domains/physics/space-evidence-mission/activity.mjs +148 -0
  2115. package/dist/domains/physics/space-evidence-mission/manifest.mjs +88 -0
  2116. package/dist/domains/physics/space-evidence-mission/runtime.mjs +624 -0
  2117. package/dist/domains/physics/spatial-lorentz/activity.mjs +3 -0
  2118. package/dist/domains/physics/spatial-lorentz/manifest.mjs +61 -0
  2119. package/dist/domains/physics/spatial-lorentz/runtime.mjs +20 -0
  2120. package/dist/domains/physics/spin-studio/manifest.mjs +58 -0
  2121. package/dist/domains/physics/spin-studio/runtime.mjs +5 -0
  2122. package/dist/domains/physics/spring-combinations/manifest.mjs +52 -0
  2123. package/dist/domains/physics/spring-combinations/runtime.mjs +5 -0
  2124. package/dist/domains/physics/stopping-distance/manifest.mjs +61 -0
  2125. package/dist/domains/physics/stopping-distance/runtime.mjs +5 -0
  2126. package/dist/domains/physics/stress-strain/manifest.mjs +69 -0
  2127. package/dist/domains/physics/stress-strain/runtime.mjs +5 -0
  2128. package/dist/domains/physics/string-reflection/manifest.mjs +55 -0
  2129. package/dist/domains/physics/string-reflection/runtime.mjs +5 -0
  2130. package/dist/domains/physics/temperature-scales/manifest.mjs +57 -0
  2131. package/dist/domains/physics/temperature-scales/runtime.mjs +5 -0
  2132. package/dist/domains/physics/terminal-velocity/manifest.mjs +51 -0
  2133. package/dist/domains/physics/terminal-velocity/runtime.mjs +5 -0
  2134. package/dist/domains/physics/thermal-expansion/manifest.mjs +54 -0
  2135. package/dist/domains/physics/thermal-expansion/runtime.mjs +5 -0
  2136. package/dist/domains/physics/trolley-acceleration-investigation/activity.mjs +158 -0
  2137. package/dist/domains/physics/trolley-acceleration-investigation/manifest.mjs +78 -0
  2138. package/dist/domains/physics/trolley-acceleration-investigation/runtime.mjs +390 -0
  2139. package/dist/domains/physics/uncertainty-wave-packet/activity.mjs +3 -0
  2140. package/dist/domains/physics/uncertainty-wave-packet/manifest.mjs +58 -0
  2141. package/dist/domains/physics/uncertainty-wave-packet/runtime.mjs +3 -0
  2142. package/dist/domains/physics/vector-board/manifest.mjs +63 -0
  2143. package/dist/domains/physics/vector-board/runtime.mjs +28 -0
  2144. package/dist/domains/physics/vector-types/manifest.mjs +51 -0
  2145. package/dist/domains/physics/vector-types/runtime.mjs +5 -0
  2146. package/dist/domains/physics/venturi/manifest.mjs +56 -0
  2147. package/dist/domains/physics/venturi/runtime.mjs +12 -0
  2148. package/dist/domains/physics/water-density/manifest.mjs +53 -0
  2149. package/dist/domains/physics/water-density/runtime.mjs +5 -0
  2150. package/dist/domains/physics/wave-lab/manifest.mjs +60 -0
  2151. package/dist/domains/physics/wave-lab/runtime.mjs +5 -0
  2152. package/dist/domains/physics/work-energy/manifest.mjs +54 -0
  2153. package/dist/domains/physics/work-energy/runtime.mjs +5 -0
  2154. package/dist/domains/physics/work-potential/manifest.mjs +63 -0
  2155. package/dist/domains/physics/work-potential/runtime.mjs +5 -0
  2156. package/dist/domains/physics/xray-attenuation/activity.mjs +3 -0
  2157. package/dist/domains/physics/xray-attenuation/manifest.mjs +61 -0
  2158. package/dist/domains/physics/xray-attenuation/runtime.mjs +3 -0
  2159. package/dist/domains/physics/xray-tube-spectrum/activity.mjs +3 -0
  2160. package/dist/domains/physics/xray-tube-spectrum/manifest.mjs +61 -0
  2161. package/dist/domains/physics/xray-tube-spectrum/runtime.mjs +3 -0
  2162. package/dist/domains/render-map.mjs +1012 -0
  2163. package/dist/domains/render.d.mts +8 -0
  2164. package/dist/domains/render.mjs +23 -0
  2165. package/dist/domains/statistics/center-spread/manifest.mjs +60 -0
  2166. package/dist/domains/statistics/center-spread/runtime.mjs +5 -0
  2167. package/dist/domains/statistics/frequency-density/manifest.mjs +64 -0
  2168. package/dist/domains/statistics/frequency-density/runtime.mjs +12 -0
  2169. package/dist/domains/statistics/galton/manifest.mjs +50 -0
  2170. package/dist/domains/statistics/galton/runtime.mjs +5 -0
  2171. package/dist/domains/statistics/histogram/manifest.mjs +58 -0
  2172. package/dist/domains/statistics/histogram/runtime.mjs +5 -0
  2173. package/dist/domains/statistics/normal/manifest.mjs +56 -0
  2174. package/dist/domains/statistics/normal/runtime.mjs +5 -0
  2175. package/dist/domains/statistics/ogive/manifest.mjs +62 -0
  2176. package/dist/domains/statistics/ogive/runtime.mjs +12 -0
  2177. package/dist/domains/statistics/sampling/manifest.mjs +61 -0
  2178. package/dist/domains/statistics/sampling/runtime.mjs +5 -0
  2179. package/dist/domains/statistics/series/manifest.mjs +55 -0
  2180. package/dist/domains/statistics/series/runtime.mjs +5 -0
  2181. package/dist/domains/statistics/z-table/manifest.mjs +51 -0
  2182. package/dist/domains/statistics/z-table/runtime.mjs +5 -0
  2183. package/dist/exam/exam-question/core.d.mts +95 -0
  2184. package/dist/exam/exam-question/core.mjs +136 -0
  2185. package/dist/exam/exam-question/default-question.d.mts +17 -0
  2186. package/dist/exam/exam-question/default-question.mjs +41 -0
  2187. package/dist/exam/exam-question/index.d.mts +4 -0
  2188. package/dist/exam/exam-question/preset.d.mts +15 -0
  2189. package/dist/exam/exam-question/preset.mjs +233 -0
  2190. package/dist/exam/index.d.mts +5 -0
  2191. package/dist/exam/index.mjs +5 -0
  2192. package/dist/geography/cycle-lab/index.d.mts +2 -1
  2193. package/dist/geography/cycle-lab/preset.d.mts +1 -10
  2194. package/dist/geography/cycle-lab/preset.mjs +218 -102
  2195. package/dist/geography/cycles.d.mts +0 -1
  2196. package/dist/geography/index.d.mts +1 -0
  2197. package/dist/geometry/board/index.d.mts +2 -1
  2198. package/dist/geometry/board/preset.d.mts +12 -8
  2199. package/dist/geometry/board/preset.mjs +65 -21
  2200. package/dist/geometry/builder.d.mts +2 -7
  2201. package/dist/geometry/builder.mjs +21 -11
  2202. package/dist/geometry/index.d.mts +1 -0
  2203. package/dist/geometry/intersecting-circles.d.mts +1 -7
  2204. package/dist/geometry/intersecting-circles.mjs +76 -75
  2205. package/dist/ict/index.d.mts +1 -0
  2206. package/dist/ict/number-systems/base-odometer.d.mts +1 -14
  2207. package/dist/ict/number-systems/base-odometer.mjs +55 -83
  2208. package/dist/ict/number-systems/bit-grouper.d.mts +1 -12
  2209. package/dist/ict/number-systems/bit-grouper.mjs +66 -97
  2210. package/dist/ict/number-systems/index.d.mts +2 -1
  2211. package/dist/ict/number-systems/place-value-dial.d.mts +1 -12
  2212. package/dist/ict/number-systems/place-value-dial.mjs +67 -82
  2213. package/dist/ict/number-systems/wheel.d.mts +4 -25
  2214. package/dist/ict/number-systems/wheel.mjs +24 -49
  2215. package/dist/index.d.mts +3 -3
  2216. package/dist/index.mjs +2 -2
  2217. package/dist/kit/activity-authoring.d.mts +128 -0
  2218. package/dist/kit/activity-authoring.mjs +63 -0
  2219. package/dist/kit/activity.d.mts +146 -0
  2220. package/dist/kit/activity.mjs +497 -0
  2221. package/dist/kit/anim.d.mts +22 -0
  2222. package/dist/kit/annotate.mjs +32 -7
  2223. package/dist/kit/ask.d.mts +1 -2
  2224. package/dist/kit/ask.mjs +1 -1
  2225. package/dist/kit/assets.d.mts +30 -0
  2226. package/dist/kit/assets.mjs +31 -0
  2227. package/dist/kit/authored-activity-runtime.d.mts +70 -0
  2228. package/dist/kit/authored-activity-runtime.mjs +160 -0
  2229. package/dist/kit/authored-response.d.mts +17 -0
  2230. package/dist/kit/authored-response.mjs +215 -0
  2231. package/dist/kit/carrier-engine.mjs +5 -1
  2232. package/dist/kit/celebrate.d.mts +13 -0
  2233. package/dist/kit/celebrate.mjs +80 -0
  2234. package/dist/kit/chemistry/composition-evidence.d.mts +45 -0
  2235. package/dist/kit/chemistry/composition-evidence.mjs +164 -0
  2236. package/dist/kit/chemistry/cycle.mjs +147 -0
  2237. package/dist/kit/chemistry/electrode.d.mts +103 -0
  2238. package/dist/kit/chemistry/electrode.mjs +155 -0
  2239. package/dist/kit/chemistry/equation-model.d.mts +35 -0
  2240. package/dist/kit/chemistry/equation-model.mjs +84 -0
  2241. package/dist/kit/chemistry/flame.d.mts +38 -0
  2242. package/dist/kit/chemistry/flame.mjs +129 -0
  2243. package/dist/kit/chemistry/formula-model.d.mts +38 -0
  2244. package/dist/kit/chemistry/formula-model.mjs +221 -0
  2245. package/dist/kit/chemistry/formula.d.mts +18 -0
  2246. package/dist/kit/chemistry/formula.mjs +94 -0
  2247. package/dist/kit/chemistry/glassware.d.mts +114 -0
  2248. package/dist/kit/chemistry/glassware.mjs +697 -0
  2249. package/dist/kit/chemistry/groups.d.mts +104 -0
  2250. package/dist/kit/chemistry/groups.mjs +317 -0
  2251. package/dist/kit/chemistry/index.d.mts +18 -0
  2252. package/dist/kit/chemistry/mechanism.mjs +248 -0
  2253. package/dist/kit/chemistry/molecule.d.mts +246 -0
  2254. package/dist/kit/chemistry/molecule.mjs +441 -0
  2255. package/dist/kit/chemistry/nmr-figure.d.mts +15 -0
  2256. package/dist/kit/chemistry/nmr-figure.mjs +207 -0
  2257. package/dist/kit/chemistry/observation.d.mts +68 -0
  2258. package/dist/kit/chemistry/observation.mjs +86 -0
  2259. package/dist/kit/chemistry/percent-lens.d.mts +35 -0
  2260. package/dist/kit/chemistry/percent-lens.mjs +44 -0
  2261. package/dist/kit/chemistry/process.d.mts +31 -0
  2262. package/dist/kit/chemistry/process.mjs +234 -0
  2263. package/dist/kit/chemistry/quantity-route-figure.d.mts +25 -0
  2264. package/dist/kit/chemistry/quantity-route-figure.mjs +198 -0
  2265. package/dist/kit/chemistry/quantity-route.d.mts +78 -0
  2266. package/dist/kit/chemistry/quantity-route.mjs +117 -0
  2267. package/dist/kit/chemistry/reaction.mjs +293 -0
  2268. package/dist/kit/chemistry/safety.d.mts +25 -0
  2269. package/dist/kit/chemistry/safety.mjs +77 -0
  2270. package/dist/kit/chemistry/species.mjs +1078 -0
  2271. package/dist/kit/chemistry/spectrum.mjs +252 -0
  2272. package/dist/kit/chemistry/structure-figure.d.mts +38 -0
  2273. package/dist/kit/chemistry/structure-figure.mjs +161 -0
  2274. package/dist/kit/clue-scene.d.mts +8 -39
  2275. package/dist/kit/clue-scene.mjs +146 -219
  2276. package/dist/kit/cluster.d.mts +1 -11
  2277. package/dist/kit/commerce/glyphs.d.mts +144 -0
  2278. package/dist/kit/commerce/glyphs.mjs +569 -0
  2279. package/dist/kit/commerce/index.d.mts +3 -0
  2280. package/dist/kit/commerce/ledger.d.mts +64 -0
  2281. package/dist/kit/commerce/ledger.mjs +224 -0
  2282. package/dist/kit/controls.mjs +207 -29
  2283. package/dist/kit/coords.d.mts +32 -21
  2284. package/dist/kit/coords.mjs +31 -4
  2285. package/dist/kit/cycle.d.mts +2 -12
  2286. package/dist/kit/cycle.mjs +88 -8
  2287. package/dist/kit/data-scene.d.mts +0 -1
  2288. package/dist/kit/data-scene.mjs +75 -62
  2289. package/dist/kit/diagram/annotations.mjs +134 -0
  2290. package/dist/kit/diagram/circuit-box.mjs +76 -0
  2291. package/dist/kit/electronics/_shared.mjs +83 -0
  2292. package/dist/kit/electronics/basics.mjs +590 -0
  2293. package/dist/kit/electronics/icons.mjs +140 -0
  2294. package/dist/kit/electronics/meter.mjs +193 -0
  2295. package/dist/kit/electronics/semiconductor.mjs +195 -0
  2296. package/dist/kit/electronics/signals.mjs +155 -0
  2297. package/dist/kit/electronics/wire.mjs +94 -0
  2298. package/dist/kit/embed.mjs +61 -0
  2299. package/dist/kit/figure/action.d.mts +11 -0
  2300. package/dist/kit/figure/action.mjs +27 -0
  2301. package/dist/kit/figure/beam.d.mts +53 -0
  2302. package/dist/kit/figure/beam.mjs +139 -0
  2303. package/dist/kit/figure/body.d.mts +46 -0
  2304. package/dist/kit/figure/body.mjs +102 -0
  2305. package/dist/kit/figure/container.d.mts +59 -0
  2306. package/dist/kit/figure/container.mjs +203 -0
  2307. package/dist/kit/figure/digits.d.mts +39 -0
  2308. package/dist/kit/figure/digits.mjs +30 -0
  2309. package/dist/kit/figure/figure.d.mts +128 -0
  2310. package/dist/kit/figure/figure.mjs +175 -0
  2311. package/dist/kit/figure/gauge.d.mts +54 -0
  2312. package/dist/kit/figure/gauge.mjs +54 -0
  2313. package/dist/kit/figure/illustration.d.mts +19 -0
  2314. package/dist/kit/figure/illustration.mjs +31 -0
  2315. package/dist/kit/figure/index.d.mts +13 -0
  2316. package/dist/kit/figure/legend.d.mts +27 -0
  2317. package/dist/kit/figure/legend.mjs +71 -0
  2318. package/dist/kit/figure/plot.d.mts +72 -0
  2319. package/dist/kit/figure/plot.mjs +230 -0
  2320. package/dist/kit/figure/system.d.mts +59 -0
  2321. package/dist/kit/figure/system.mjs +205 -0
  2322. package/dist/kit/figure/text.d.mts +102 -0
  2323. package/dist/kit/figure/text.mjs +106 -0
  2324. package/dist/kit/finance-viz/apportion-bar.d.mts +25 -0
  2325. package/dist/kit/finance-viz/apportion-bar.mjs +108 -0
  2326. package/dist/kit/finance-viz/index.d.mts +5 -0
  2327. package/dist/kit/finance-viz/plot-chart.d.mts +40 -0
  2328. package/dist/kit/finance-viz/plot-chart.mjs +79 -0
  2329. package/dist/kit/finance-viz/stock-timeline.d.mts +24 -0
  2330. package/dist/kit/finance-viz/stock-timeline.mjs +78 -0
  2331. package/dist/kit/finance-viz/tradeoff-curve.d.mts +32 -0
  2332. package/dist/kit/finance-viz/tradeoff-curve.mjs +168 -0
  2333. package/dist/kit/frame.d.mts +33 -49
  2334. package/dist/kit/frame.mjs +158 -120
  2335. package/dist/kit/freq-tree.mjs +2 -2
  2336. package/dist/kit/gravitation/index.d.mts +2 -0
  2337. package/dist/kit/gravitation/section.d.mts +60 -0
  2338. package/dist/kit/gravitation/section.mjs +128 -0
  2339. package/dist/kit/guide.d.mts +41 -0
  2340. package/dist/kit/guide.mjs +53 -0
  2341. package/dist/kit/index.d.mts +73 -6
  2342. package/dist/kit/index.mjs +63 -4
  2343. package/dist/kit/instruments-palette.mjs +14 -0
  2344. package/dist/kit/instruments.mjs +679 -0
  2345. package/dist/kit/learning-sequence.d.mts +51 -0
  2346. package/dist/kit/learning-sequence.mjs +102 -0
  2347. package/dist/kit/logic-gates/_shared.mjs +11 -0
  2348. package/dist/kit/logic-gates/display.mjs +281 -0
  2349. package/dist/kit/logic-gates/gate.d.mts +5 -0
  2350. package/dist/kit/logic-gates/gate.mjs +132 -0
  2351. package/dist/kit/magnetism/glyphs.d.mts +179 -0
  2352. package/dist/kit/magnetism/glyphs.mjs +445 -0
  2353. package/dist/kit/magnetism/index.d.mts +2 -0
  2354. package/dist/kit/mechanics/energy.d.mts +221 -0
  2355. package/dist/kit/mechanics/energy.mjs +578 -0
  2356. package/dist/kit/mechanics/index.d.mts +3 -0
  2357. package/dist/kit/mechanics/palette.mjs +27 -0
  2358. package/dist/kit/mechanics/primitives.d.mts +298 -0
  2359. package/dist/kit/mechanics/primitives.mjs +887 -0
  2360. package/dist/kit/networking/access-glyphs.d.mts +2 -0
  2361. package/dist/kit/networking/access-glyphs.mjs +123 -0
  2362. package/dist/kit/networking/glyphs.d.mts +13 -0
  2363. package/dist/kit/networking/glyphs.mjs +147 -0
  2364. package/dist/kit/networking/index.d.mts +7 -0
  2365. package/dist/kit/networking/infrastructure-glyphs.d.mts +2 -0
  2366. package/dist/kit/networking/infrastructure-glyphs.mjs +149 -0
  2367. package/dist/kit/networking/layout.mjs +15 -0
  2368. package/dist/kit/networking/primitives.d.mts +69 -0
  2369. package/dist/kit/networking/primitives.mjs +798 -0
  2370. package/dist/kit/networking/release-glyphs.d.mts +2 -0
  2371. package/dist/kit/networking/release-glyphs.mjs +128 -0
  2372. package/dist/kit/networking/secret-glyphs.d.mts +2 -0
  2373. package/dist/kit/networking/secret-glyphs.mjs +148 -0
  2374. package/dist/kit/palette.mjs +51 -5
  2375. package/dist/kit/pedagogy.d.mts +22 -33
  2376. package/dist/kit/pedagogy.mjs +120 -97
  2377. package/dist/kit/play.d.mts +1 -5
  2378. package/dist/kit/play.mjs +4 -1
  2379. package/dist/kit/predict-gate.d.mts +17 -0
  2380. package/dist/kit/predict-gate.mjs +42 -0
  2381. package/dist/kit/predict.d.mts +1 -19
  2382. package/dist/kit/predict.mjs +10 -10
  2383. package/dist/kit/probability.d.mts +37 -0
  2384. package/dist/kit/probability.mjs +115 -1
  2385. package/dist/kit/proportion.mjs +52 -27
  2386. package/dist/kit/receipt.d.mts +3 -11
  2387. package/dist/kit/receipt.mjs +13 -53
  2388. package/dist/kit/rich.d.mts +1 -4
  2389. package/dist/kit/rich.mjs +41 -1
  2390. package/dist/kit/rule.d.mts +34 -17
  2391. package/dist/kit/rule.mjs +110 -155
  2392. package/dist/kit/scale.mjs +55 -23
  2393. package/dist/kit/scene-library.d.mts +1 -4
  2394. package/dist/kit/scene-library.mjs +51 -89
  2395. package/dist/kit/scene-studio.d.mts +1 -5
  2396. package/dist/kit/scene-studio.mjs +116 -177
  2397. package/dist/kit/scenes.d.mts +0 -1
  2398. package/dist/kit/scenes.mjs +306 -114
  2399. package/dist/kit/simulation/adapter.d.mts +9 -0
  2400. package/dist/kit/simulation/adapter.mjs +11 -0
  2401. package/dist/kit/simulation/behavior.d.mts +15 -0
  2402. package/dist/kit/simulation/behavior.mjs +24 -0
  2403. package/dist/kit/simulation/clock.d.mts +65 -0
  2404. package/dist/kit/simulation/clock.mjs +155 -0
  2405. package/dist/kit/simulation/model.d.mts +133 -0
  2406. package/dist/kit/simulation/model.mjs +79 -0
  2407. package/dist/kit/simulation/rig.d.mts +11 -0
  2408. package/dist/kit/simulation/rig.mjs +11 -0
  2409. package/dist/kit/simulation/use-simulation.d.mts +60 -0
  2410. package/dist/kit/simulation/use-simulation.mjs +92 -0
  2411. package/dist/kit/slot-fill.d.mts +9 -17
  2412. package/dist/kit/slot-fill.mjs +86 -71
  2413. package/dist/kit/space/backdrop.d.mts +39 -0
  2414. package/dist/kit/space/backdrop.mjs +174 -0
  2415. package/dist/kit/space/bodies.d.mts +66 -0
  2416. package/dist/kit/space/bodies.mjs +464 -0
  2417. package/dist/kit/space/index.d.mts +4 -0
  2418. package/dist/kit/space/palette.d.mts +144 -0
  2419. package/dist/kit/space/palette.mjs +165 -0
  2420. package/dist/kit/space-glyphs.mjs +63 -0
  2421. package/dist/kit/steps.d.mts +4 -6
  2422. package/dist/kit/steps.mjs +6 -6
  2423. package/dist/kit/thermal-palette.mjs +38 -0
  2424. package/dist/kit/thermal.mjs +159 -26
  2425. package/dist/kit/ticks.mjs +19 -0
  2426. package/dist/kit/vessel.d.mts +2 -27
  2427. package/dist/kit/vessel.mjs +30 -11
  2428. package/dist/lab-def/attrs.d.mts +31 -0
  2429. package/dist/lab-def/attrs.mjs +65 -0
  2430. package/dist/lab-def/define-lab.d.mts +133 -0
  2431. package/dist/lab-def/define-lab.mjs +15 -0
  2432. package/dist/lab-def/lab-authoring.mjs +39 -0
  2433. package/dist/lab-def/lab-runtime.mjs +154 -0
  2434. package/dist/lab-def/to-block.mjs +56 -0
  2435. package/dist/language/activity.d.mts +17 -0
  2436. package/dist/language/activity.mjs +60 -0
  2437. package/dist/language/agreement/index.d.mts +2 -1
  2438. package/dist/language/agreement/preset.d.mts +9 -6
  2439. package/dist/language/agreement/preset.mjs +59 -30
  2440. package/dist/language/article-lens/index.d.mts +2 -1
  2441. package/dist/language/article-lens/preset.d.mts +7 -8
  2442. package/dist/language/article-lens/preset.mjs +53 -28
  2443. package/dist/language/cloze/index.d.mts +2 -0
  2444. package/dist/language/cloze/preset.d.mts +28 -0
  2445. package/dist/language/cloze/preset.mjs +130 -0
  2446. package/dist/language/deck.d.mts +0 -1
  2447. package/dist/language/dictation/index.d.mts +2 -0
  2448. package/dist/language/dictation/preset.d.mts +14 -0
  2449. package/dist/language/dictation/preset.mjs +171 -0
  2450. package/dist/language/error-correct/index.d.mts +2 -0
  2451. package/dist/language/error-correct/preset.d.mts +22 -0
  2452. package/dist/language/error-correct/preset.mjs +134 -0
  2453. package/dist/language/icon.d.mts +2 -9
  2454. package/dist/language/icon.mjs +4 -10
  2455. package/dist/language/index.d.mts +19 -2
  2456. package/dist/language/index.mjs +8 -2
  2457. package/dist/language/listening/index.d.mts +2 -0
  2458. package/dist/language/listening/preset.d.mts +17 -0
  2459. package/dist/language/listening/preset.mjs +153 -0
  2460. package/dist/language/preposition-scene/index.d.mts +2 -1
  2461. package/dist/language/preposition-scene/preset.d.mts +9 -6
  2462. package/dist/language/preposition-scene/preset.mjs +81 -70
  2463. package/dist/language/reading/index.d.mts +2 -0
  2464. package/dist/language/reading/preset.d.mts +30 -0
  2465. package/dist/language/reading/preset.mjs +63 -0
  2466. package/dist/language/sentence-builder/index.d.mts +2 -1
  2467. package/dist/language/sentence-builder/preset.d.mts +6 -9
  2468. package/dist/language/sentence-builder/preset.mjs +36 -22
  2469. package/dist/language/transform/index.d.mts +2 -1
  2470. package/dist/language/transform/preset.d.mts +6 -9
  2471. package/dist/language/transform/preset.mjs +43 -23
  2472. package/dist/language/ui.d.mts +20 -16
  2473. package/dist/language/ui.mjs +49 -8
  2474. package/dist/language/word-match/index.d.mts +2 -1
  2475. package/dist/language/word-match/preset.d.mts +3 -8
  2476. package/dist/language/word-match/preset.mjs +38 -20
  2477. package/dist/logic/ChipScene.d.mts +20 -0
  2478. package/dist/logic/ChipScene.mjs +314 -0
  2479. package/dist/logic/CounterScene.d.mts +13 -0
  2480. package/dist/logic/CounterScene.mjs +228 -0
  2481. package/dist/logic/DetectorScene.d.mts +15 -0
  2482. package/dist/logic/DetectorScene.mjs +232 -0
  2483. package/dist/logic/LatchScene.d.mts +14 -0
  2484. package/dist/logic/LatchScene.mjs +309 -0
  2485. package/dist/logic/LogicBuildLab.d.mts +1 -8
  2486. package/dist/logic/LogicBuildLab.mjs +18 -63
  2487. package/dist/logic/LogicEditScene.d.mts +5 -11
  2488. package/dist/logic/LogicEditScene.mjs +27 -19
  2489. package/dist/logic/LogicEditor.d.mts +4 -5
  2490. package/dist/logic/LogicEditor.mjs +165 -227
  2491. package/dist/logic/LogicScene.d.mts +1 -11
  2492. package/dist/logic/LogicScene.mjs +87 -23
  2493. package/dist/logic/SequentialLogicLab.d.mts +15 -0
  2494. package/dist/logic/SequentialLogicLab.mjs +179 -0
  2495. package/dist/logic/ShiftScene.d.mts +12 -0
  2496. package/dist/logic/ShiftScene.mjs +171 -0
  2497. package/dist/logic/TimingScene.d.mts +18 -0
  2498. package/dist/logic/TimingScene.mjs +166 -0
  2499. package/dist/logic/TwosScene.d.mts +21 -0
  2500. package/dist/logic/TwosScene.mjs +269 -0
  2501. package/dist/logic/WaveScene.d.mts +34 -0
  2502. package/dist/logic/WaveScene.mjs +123 -0
  2503. package/dist/logic/contract.d.mts +22 -3
  2504. package/dist/logic/counter.d.mts +26 -0
  2505. package/dist/logic/counter.mjs +90 -0
  2506. package/dist/logic/detector.d.mts +72 -0
  2507. package/dist/logic/detector.mjs +93 -0
  2508. package/dist/logic/display.d.mts +1 -9
  2509. package/dist/logic/display.mjs +74 -47
  2510. package/dist/logic/edit-ops.d.mts +0 -1
  2511. package/dist/logic/editor/index.d.mts +6 -0
  2512. package/dist/logic/editor/index.mjs +8 -0
  2513. package/dist/logic/evaluate.d.mts +9 -3
  2514. package/dist/logic/evaluate.mjs +108 -31
  2515. package/dist/logic/ic.d.mts +62 -0
  2516. package/dist/logic/ic.mjs +245 -0
  2517. package/dist/logic/index.d.mts +26 -7
  2518. package/dist/logic/index.mjs +20 -1
  2519. package/dist/logic/lab.d.mts +1 -12
  2520. package/dist/logic/lab.mjs +63 -84
  2521. package/dist/logic/latch.d.mts +61 -0
  2522. package/dist/logic/latch.mjs +68 -0
  2523. package/dist/logic/netlist.d.mts +26 -0
  2524. package/dist/logic/netlist.mjs +29 -0
  2525. package/dist/logic/presets.d.mts +0 -1
  2526. package/dist/logic/registry.d.mts +0 -1
  2527. package/dist/logic/runtime/index.d.mts +14 -0
  2528. package/dist/logic/runtime/index.mjs +15 -0
  2529. package/dist/logic/sequential-presets.d.mts +146 -0
  2530. package/dist/logic/sequential-presets.mjs +179 -0
  2531. package/dist/logic/sequential.d.mts +123 -0
  2532. package/dist/logic/sequential.mjs +187 -0
  2533. package/dist/logic/shift.d.mts +33 -0
  2534. package/dist/logic/shift.mjs +76 -0
  2535. package/dist/logic/timing.d.mts +57 -0
  2536. package/dist/logic/timing.mjs +149 -0
  2537. package/dist/logic/twos.d.mts +65 -0
  2538. package/dist/logic/twos.mjs +97 -0
  2539. package/dist/math/activity.mjs +90 -0
  2540. package/dist/math/area-model/asset.d.mts +0 -1
  2541. package/dist/math/area-model/asset.mjs +24 -14
  2542. package/dist/math/area-model/index.d.mts +2 -1
  2543. package/dist/math/area-model/preset.d.mts +2 -15
  2544. package/dist/math/area-model/preset.mjs +136 -80
  2545. package/dist/math/area-rearrange/core.d.mts +42 -0
  2546. package/dist/math/area-rearrange/core.mjs +188 -0
  2547. package/dist/math/area-rearrange/index.d.mts +3 -0
  2548. package/dist/math/area-rearrange/preset.d.mts +17 -0
  2549. package/dist/math/area-rearrange/preset.mjs +226 -0
  2550. package/dist/math/balance-algebra/asset.d.mts +0 -1
  2551. package/dist/math/balance-algebra/index.d.mts +2 -1
  2552. package/dist/math/balance-algebra/preset.d.mts +3 -9
  2553. package/dist/math/balance-algebra/preset.mjs +47 -17
  2554. package/dist/math/bearings/core.d.mts +76 -0
  2555. package/dist/math/bearings/core.mjs +86 -0
  2556. package/dist/math/bearings/index.d.mts +3 -0
  2557. package/dist/math/bearings/preset.d.mts +18 -0
  2558. package/dist/math/bearings/preset.mjs +338 -0
  2559. package/dist/math/bounds-window/preset.mjs +239 -0
  2560. package/dist/math/broken-tree/index.d.mts +2 -1
  2561. package/dist/math/broken-tree/preset.d.mts +1 -10
  2562. package/dist/math/broken-tree/preset.mjs +87 -52
  2563. package/dist/math/calculus/core.d.mts +30 -0
  2564. package/dist/math/calculus/core.mjs +101 -0
  2565. package/dist/math/calculus/index.d.mts +2 -0
  2566. package/dist/math/calculus/index.mjs +3 -0
  2567. package/dist/math/circle/index.d.mts +2 -1
  2568. package/dist/math/circle/preset.d.mts +1 -15
  2569. package/dist/math/circle/preset.mjs +46 -28
  2570. package/dist/math/complex/index.d.mts +3 -2
  2571. package/dist/math/complex/index.mjs +5 -0
  2572. package/dist/math/complex/preset.d.mts +0 -1
  2573. package/dist/math/complex/preset.mjs +61 -47
  2574. package/dist/math/complex/rule-figures.mjs +328 -0
  2575. package/dist/math/complex/rules.d.mts +11 -2
  2576. package/dist/math/complex/rules.mjs +165 -8
  2577. package/dist/math/cone-frustum/core.mjs +34 -0
  2578. package/dist/math/cone-frustum/preset.mjs +342 -0
  2579. package/dist/math/conic/index.d.mts +2 -1
  2580. package/dist/math/conic/preset.d.mts +0 -1
  2581. package/dist/math/conic/preset.mjs +79 -28
  2582. package/dist/math/derivation.d.mts +14 -6
  2583. package/dist/math/derivation.mjs +118 -60
  2584. package/dist/math/derivative-explorer/index.d.mts +2 -1
  2585. package/dist/math/derivative-explorer/index.mjs +3 -0
  2586. package/dist/math/derivative-explorer/preset.d.mts +1 -8
  2587. package/dist/math/derivative-explorer/preset.mjs +111 -122
  2588. package/dist/math/differential-equation/index.d.mts +2 -0
  2589. package/dist/math/differential-equation/index.mjs +3 -0
  2590. package/dist/math/differential-equation/preset.d.mts +15 -0
  2591. package/dist/math/differential-equation/preset.mjs +276 -0
  2592. package/dist/math/division-workbench/core.d.mts +26 -0
  2593. package/dist/math/division-workbench/core.mjs +53 -0
  2594. package/dist/math/division-workbench/index.d.mts +3 -0
  2595. package/dist/math/division-workbench/preset.d.mts +15 -0
  2596. package/dist/math/division-workbench/preset.mjs +186 -0
  2597. package/dist/math/division-workbench/visuals.mjs +358 -0
  2598. package/dist/math/domain-range/index.d.mts +2 -1
  2599. package/dist/math/domain-range/preset.d.mts +1 -13
  2600. package/dist/math/domain-range/preset.mjs +114 -58
  2601. package/dist/math/exact-triangle/preset.mjs +409 -0
  2602. package/dist/math/expression-order/core.d.mts +32 -0
  2603. package/dist/math/expression-order/core.mjs +141 -0
  2604. package/dist/math/expression-order/index.d.mts +3 -0
  2605. package/dist/math/expression-order/preset.d.mts +30 -0
  2606. package/dist/math/expression-order/preset.mjs +141 -0
  2607. package/dist/math/fraction-bar/index.d.mts +2 -1
  2608. package/dist/math/fraction-bar/preset.d.mts +0 -1
  2609. package/dist/math/fraction-bar/preset.mjs +108 -74
  2610. package/dist/math/function-machine/index.d.mts +2 -1
  2611. package/dist/math/function-machine/preset.d.mts +2 -9
  2612. package/dist/math/function-machine/preset.mjs +35 -16
  2613. package/dist/math/fundamental-theorem/index.d.mts +2 -0
  2614. package/dist/math/fundamental-theorem/index.mjs +3 -0
  2615. package/dist/math/fundamental-theorem/preset.d.mts +13 -0
  2616. package/dist/math/fundamental-theorem/preset.mjs +207 -0
  2617. package/dist/math/geometry-foundations/activity.d.mts +1 -0
  2618. package/dist/math/geometry-foundations/activity.mjs +74 -0
  2619. package/dist/math/geometry-foundations/core.d.mts +22 -0
  2620. package/dist/math/geometry-foundations/core.mjs +62 -0
  2621. package/dist/math/geometry-foundations/index.d.mts +4 -0
  2622. package/dist/math/geometry-foundations/preset.d.mts +18 -0
  2623. package/dist/math/geometry-foundations/preset.mjs +311 -0
  2624. package/dist/math/gradient-descent.d.mts +1 -9
  2625. package/dist/math/gradient-descent.mjs +96 -115
  2626. package/dist/math/grapher/index.d.mts +2 -1
  2627. package/dist/math/grapher/preset.d.mts +3 -12
  2628. package/dist/math/grapher/preset.mjs +207 -191
  2629. package/dist/math/harmonic-form/index.d.mts +2 -1
  2630. package/dist/math/harmonic-form/preset.d.mts +1 -8
  2631. package/dist/math/harmonic-form/preset.mjs +101 -95
  2632. package/dist/math/identity-proof/core.d.mts +86 -0
  2633. package/dist/math/identity-proof/core.mjs +70 -0
  2634. package/dist/math/identity-proof/default-proof.d.mts +13 -0
  2635. package/dist/math/identity-proof/default-proof.mjs +56 -0
  2636. package/dist/math/identity-proof/index.d.mts +4 -0
  2637. package/dist/math/identity-proof/preset.d.mts +13 -0
  2638. package/dist/math/identity-proof/preset.mjs +147 -0
  2639. package/dist/math/index.d.mts +99 -9
  2640. package/dist/math/index.mjs +49 -9
  2641. package/dist/math/integral-explorer/index.d.mts +2 -1
  2642. package/dist/math/integral-explorer/index.mjs +3 -0
  2643. package/dist/math/integral-explorer/preset.d.mts +1 -10
  2644. package/dist/math/integral-explorer/preset.mjs +124 -129
  2645. package/dist/math/interactive/index.d.mts +2 -1
  2646. package/dist/math/interactive/preset.d.mts +2 -14
  2647. package/dist/math/interactive/preset.mjs +69 -35
  2648. package/dist/math/iteration/core.d.mts +87 -0
  2649. package/dist/math/iteration/core.mjs +135 -0
  2650. package/dist/math/iteration/index.d.mts +3 -0
  2651. package/dist/math/iteration/preset.d.mts +28 -0
  2652. package/dist/math/iteration/preset.mjs +243 -0
  2653. package/dist/math/limit-explorer/index.d.mts +2 -1
  2654. package/dist/math/limit-explorer/index.mjs +3 -0
  2655. package/dist/math/limit-explorer/preset.d.mts +1 -8
  2656. package/dist/math/limit-explorer/preset.mjs +71 -92
  2657. package/dist/math/linear-model/index.d.mts +2 -1
  2658. package/dist/math/linear-model/preset.d.mts +0 -1
  2659. package/dist/math/linear-model/preset.mjs +107 -60
  2660. package/dist/math/linear-system/index.d.mts +2 -1
  2661. package/dist/math/linear-system/preset.d.mts +1 -9
  2662. package/dist/math/linear-system/preset.mjs +45 -15
  2663. package/dist/math/lines-in-space/core.d.mts +71 -0
  2664. package/dist/math/lines-in-space/core.mjs +185 -0
  2665. package/dist/math/lines-in-space/index.d.mts +3 -0
  2666. package/dist/math/lines-in-space/preset.d.mts +33 -0
  2667. package/dist/math/lines-in-space/preset.mjs +864 -0
  2668. package/dist/math/measurement/activity.d.mts +1 -0
  2669. package/dist/math/measurement/activity.mjs +74 -0
  2670. package/dist/math/measurement/core.d.mts +27 -0
  2671. package/dist/math/measurement/core.mjs +62 -0
  2672. package/dist/math/measurement/index.d.mts +4 -0
  2673. package/dist/math/measurement/preset.d.mts +23 -0
  2674. package/dist/math/measurement/preset.mjs +667 -0
  2675. package/dist/math/mystery-bucket/asset.d.mts +0 -1
  2676. package/dist/math/mystery-bucket/asset.mjs +2 -1
  2677. package/dist/math/mystery-bucket/index.d.mts +2 -1
  2678. package/dist/math/mystery-bucket/preset.d.mts +2 -11
  2679. package/dist/math/mystery-bucket/preset.mjs +33 -10
  2680. package/dist/math/newton-method/index.d.mts +2 -0
  2681. package/dist/math/newton-method/index.mjs +3 -0
  2682. package/dist/math/newton-method/preset.d.mts +13 -0
  2683. package/dist/math/newton-method/preset.mjs +279 -0
  2684. package/dist/math/number-line/index.d.mts +2 -1
  2685. package/dist/math/number-line/preset.d.mts +1 -10
  2686. package/dist/math/number-line/preset.mjs +48 -18
  2687. package/dist/math/number-structure/core.d.mts +42 -0
  2688. package/dist/math/number-structure/core.mjs +130 -0
  2689. package/dist/math/number-structure/index.d.mts +3 -0
  2690. package/dist/math/number-structure/preset.d.mts +17 -0
  2691. package/dist/math/number-structure/preset.mjs +237 -0
  2692. package/dist/math/number-structure/visuals.mjs +486 -0
  2693. package/dist/math/oblique-triangle/core.d.mts +99 -0
  2694. package/dist/math/oblique-triangle/core.mjs +194 -0
  2695. package/dist/math/oblique-triangle/index.d.mts +3 -0
  2696. package/dist/math/oblique-triangle/preset.d.mts +15 -0
  2697. package/dist/math/oblique-triangle/preset.mjs +423 -0
  2698. package/dist/math/ode/core.d.mts +15 -0
  2699. package/dist/math/ode/core.mjs +73 -0
  2700. package/dist/math/ode/index.d.mts +3 -0
  2701. package/dist/math/ode/index.mjs +4 -0
  2702. package/dist/math/ode/system.d.mts +22 -0
  2703. package/dist/math/ode/system.mjs +73 -0
  2704. package/dist/math/optimization/core.d.mts +21 -0
  2705. package/dist/math/optimization/core.mjs +46 -0
  2706. package/dist/math/optimization/index.d.mts +2 -0
  2707. package/dist/math/optimization/index.mjs +3 -0
  2708. package/dist/math/parabola/index.d.mts +2 -1
  2709. package/dist/math/parabola/preset.d.mts +1 -5
  2710. package/dist/math/parabola/preset.mjs +54 -15
  2711. package/dist/math/partial-fractions/core.d.mts +68 -0
  2712. package/dist/math/partial-fractions/core.mjs +222 -0
  2713. package/dist/math/partial-fractions/index.d.mts +3 -0
  2714. package/dist/math/partial-fractions/preset.d.mts +35 -0
  2715. package/dist/math/partial-fractions/preset.mjs +267 -0
  2716. package/dist/math/pattern/asset.d.mts +0 -1
  2717. package/dist/math/pattern/asset.mjs +2 -1
  2718. package/dist/math/pattern/index.d.mts +2 -1
  2719. package/dist/math/pattern/preset.d.mts +3 -16
  2720. package/dist/math/pattern/preset.mjs +77 -92
  2721. package/dist/math/percent-bar/index.d.mts +2 -1
  2722. package/dist/math/percent-bar/preset.d.mts +0 -1
  2723. package/dist/math/percent-bar/preset.mjs +79 -43
  2724. package/dist/math/phase-portrait/index.d.mts +2 -0
  2725. package/dist/math/phase-portrait/index.mjs +3 -0
  2726. package/dist/math/phase-portrait/preset.d.mts +16 -0
  2727. package/dist/math/phase-portrait/preset.mjs +266 -0
  2728. package/dist/math/poly/index.d.mts +3 -2
  2729. package/dist/math/poly/index.mjs +5 -0
  2730. package/dist/math/poly/preset.d.mts +1 -8
  2731. package/dist/math/poly/preset.mjs +51 -70
  2732. package/dist/math/poly/steps.d.mts +2 -3
  2733. package/dist/math/poly/steps.mjs +6 -6
  2734. package/dist/math/radian-wrap/core.d.mts +38 -0
  2735. package/dist/math/radian-wrap/core.mjs +58 -0
  2736. package/dist/math/radian-wrap/index.d.mts +3 -0
  2737. package/dist/math/radian-wrap/preset.d.mts +13 -0
  2738. package/dist/math/radian-wrap/preset.mjs +228 -0
  2739. package/dist/math/rate-machine/index.d.mts +2 -1
  2740. package/dist/math/rate-machine/preset.d.mts +0 -1
  2741. package/dist/math/rate-machine/preset.mjs +143 -91
  2742. package/dist/math/ratio-share/index.d.mts +2 -1
  2743. package/dist/math/ratio-share/preset.d.mts +0 -1
  2744. package/dist/math/ratio-share/preset.mjs +95 -40
  2745. package/dist/math/receipt/index.d.mts +2 -1
  2746. package/dist/math/receipt/preset.d.mts +0 -1
  2747. package/dist/math/receipt/preset.mjs +66 -60
  2748. package/dist/math/root-finding/core.d.mts +18 -0
  2749. package/dist/math/root-finding/core.mjs +75 -0
  2750. package/dist/math/root-finding/index.d.mts +2 -0
  2751. package/dist/math/root-finding/index.mjs +3 -0
  2752. package/dist/math/sequence-predict/index.d.mts +2 -1
  2753. package/dist/math/sequence-predict/preset.d.mts +0 -1
  2754. package/dist/math/sequence-predict/preset.mjs +46 -43
  2755. package/dist/math/slide-rule/core.d.mts +39 -0
  2756. package/dist/math/slide-rule/core.mjs +104 -0
  2757. package/dist/math/slide-rule/index.d.mts +3 -0
  2758. package/dist/math/slide-rule/preset.d.mts +16 -0
  2759. package/dist/math/slide-rule/preset.mjs +329 -0
  2760. package/dist/math/solid-net/core.d.mts +48 -0
  2761. package/dist/math/solid-net/core.mjs +177 -0
  2762. package/dist/math/solid-net/index.d.mts +3 -0
  2763. package/dist/math/solid-net/preset.d.mts +17 -0
  2764. package/dist/math/solid-net/preset.mjs +433 -0
  2765. package/dist/math/solid-slice/core.mjs +189 -0
  2766. package/dist/math/solid-slice/preset.mjs +278 -0
  2767. package/dist/math/straight-line/index.d.mts +2 -1
  2768. package/dist/math/straight-line/preset.d.mts +0 -1
  2769. package/dist/math/straight-line/preset.mjs +77 -31
  2770. package/dist/math/system-solve/index.d.mts +2 -1
  2771. package/dist/math/system-solve/preset.d.mts +0 -1
  2772. package/dist/math/system-solve/preset.mjs +86 -104
  2773. package/dist/math/tank-design/core.mjs +40 -0
  2774. package/dist/math/tank-design/preset.mjs +465 -0
  2775. package/dist/math/taylor/core.d.mts +8 -0
  2776. package/dist/math/taylor/core.mjs +31 -0
  2777. package/dist/math/taylor/index.d.mts +2 -0
  2778. package/dist/math/taylor/index.mjs +3 -0
  2779. package/dist/math/taylor-series/index.d.mts +2 -0
  2780. package/dist/math/taylor-series/index.mjs +3 -0
  2781. package/dist/math/taylor-series/preset.d.mts +14 -0
  2782. package/dist/math/taylor-series/preset.mjs +244 -0
  2783. package/dist/math/transform/index.d.mts +2 -1
  2784. package/dist/math/transform/preset.d.mts +5 -11
  2785. package/dist/math/transform/preset.mjs +84 -83
  2786. package/dist/math/triangle-trig/index.d.mts +2 -1
  2787. package/dist/math/triangle-trig/preset.d.mts +11 -16
  2788. package/dist/math/triangle-trig/preset.mjs +98 -56
  2789. package/dist/math/trig/core.d.mts +1 -3
  2790. package/dist/math/trig/core.mjs +3 -2
  2791. package/dist/math/trig/diagrams.mjs +45 -19
  2792. package/dist/math/trig/index.d.mts +3 -1
  2793. package/dist/math/trig/preset.d.mts +1 -10
  2794. package/dist/math/trig/preset.mjs +55 -25
  2795. package/dist/math/trig/rules.d.mts +1 -1
  2796. package/dist/math/trig/rules.mjs +71 -10
  2797. package/dist/math/trig-explorer.d.mts +1 -5
  2798. package/dist/math/trig-explorer.mjs +43 -18
  2799. package/dist/ml/index.d.mts +5 -5
  2800. package/dist/ml/index.mjs +5 -5
  2801. package/dist/networking/AirtimeScene.d.mts +10 -0
  2802. package/dist/networking/AirtimeScene.mjs +212 -0
  2803. package/dist/networking/CellularScene.d.mts +36 -0
  2804. package/dist/networking/CellularScene.mjs +406 -0
  2805. package/dist/networking/EncapScene.mjs +212 -0
  2806. package/dist/networking/HandoverScene.d.mts +15 -0
  2807. package/dist/networking/HandoverScene.mjs +196 -0
  2808. package/dist/networking/HandshakeScene.d.mts +11 -0
  2809. package/dist/networking/HandshakeScene.mjs +270 -0
  2810. package/dist/networking/MediaScene.mjs +217 -0
  2811. package/dist/networking/NetworkScene.d.mts +14 -0
  2812. package/dist/networking/NetworkScene.mjs +58 -0
  2813. package/dist/networking/NetworkingPrimitiveScene.d.mts +8 -0
  2814. package/dist/networking/NetworkingPrimitiveScene.mjs +183 -0
  2815. package/dist/networking/PacketInspector.d.mts +8 -0
  2816. package/dist/networking/PacketInspector.mjs +32 -0
  2817. package/dist/networking/PlugScene.mjs +192 -0
  2818. package/dist/networking/PrivacyScene.d.mts +13 -0
  2819. package/dist/networking/PrivacyScene.mjs +307 -0
  2820. package/dist/networking/SatelliteScene.d.mts +10 -0
  2821. package/dist/networking/SatelliteScene.mjs +240 -0
  2822. package/dist/networking/SpectrumScene.d.mts +15 -0
  2823. package/dist/networking/SpectrumScene.mjs +444 -0
  2824. package/dist/networking/SubnetScene.mjs +124 -0
  2825. package/dist/networking/SwitchScene.mjs +339 -0
  2826. package/dist/networking/VlanScene.mjs +203 -0
  2827. package/dist/networking/VpnScene.mjs +193 -0
  2828. package/dist/networking/WifiScene.d.mts +19 -0
  2829. package/dist/networking/WifiScene.mjs +702 -0
  2830. package/dist/networking/index.d.mts +16 -0
  2831. package/dist/networking/index.mjs +16 -0
  2832. package/dist/pathways/biology.d.mts +5 -0
  2833. package/dist/pathways/biology.mjs +60 -0
  2834. package/dist/pathways/calculus.d.mts +5 -0
  2835. package/dist/pathways/calculus.mjs +123 -0
  2836. package/dist/pathways/chemistry.d.mts +7 -0
  2837. package/dist/pathways/chemistry.mjs +87 -0
  2838. package/dist/pathways/cloud-infrastructure.d.mts +6 -0
  2839. package/dist/pathways/cloud-infrastructure.mjs +211 -0
  2840. package/dist/pathways/digital-logic.d.mts +20 -0
  2841. package/dist/pathways/digital-logic.mjs +408 -0
  2842. package/dist/pathways/electronic-circuits.d.mts +14 -0
  2843. package/dist/pathways/electronic-circuits.mjs +142 -0
  2844. package/dist/pathways/electronic-devices.d.mts +17 -0
  2845. package/dist/pathways/electronic-devices.mjs +152 -0
  2846. package/dist/pathways/index.d.mts +12 -0
  2847. package/dist/pathways/index.mjs +13 -0
  2848. package/dist/pathways/network-communication.d.mts +6 -0
  2849. package/dist/pathways/network-communication.mjs +172 -0
  2850. package/dist/pathways/quantum.d.mts +8 -0
  2851. package/dist/pathways/quantum.mjs +56 -0
  2852. package/dist/pathways/relativity.d.mts +5 -0
  2853. package/dist/pathways/relativity.mjs +63 -0
  2854. package/dist/pathways/types.d.mts +56 -0
  2855. package/dist/pathways/types.mjs +26 -0
  2856. package/dist/physics/alternating-current/index.d.mts +3 -0
  2857. package/dist/physics/alternating-current/index.mjs +4 -0
  2858. package/dist/physics/alternating-current/preset.d.mts +21 -0
  2859. package/dist/physics/alternating-current/preset.mjs +1257 -0
  2860. package/dist/physics/astronomy/core.d.mts +111 -0
  2861. package/dist/physics/astronomy/core.mjs +147 -0
  2862. package/dist/physics/attenuation/core.d.mts +106 -0
  2863. package/dist/physics/attenuation/core.mjs +112 -0
  2864. package/dist/physics/atwood/index.d.mts +2 -1
  2865. package/dist/physics/atwood/preset.d.mts +4 -9
  2866. package/dist/physics/atwood/preset.mjs +430 -258
  2867. package/dist/physics/biot-savart/activity.mjs +61 -0
  2868. package/dist/physics/biot-savart/preset.mjs +337 -0
  2869. package/dist/physics/biot-savart/presets.mjs +149 -0
  2870. package/dist/physics/biot-savart/torque-activity.mjs +57 -0
  2871. package/dist/physics/biot-savart/torque-preset.mjs +334 -0
  2872. package/dist/physics/bullet-walls/index.d.mts +2 -1
  2873. package/dist/physics/bullet-walls/model.mjs +81 -0
  2874. package/dist/physics/bullet-walls/preset.d.mts +3 -11
  2875. package/dist/physics/bullet-walls/preset.mjs +228 -290
  2876. package/dist/physics/carnot/index.d.mts +2 -1
  2877. package/dist/physics/carnot/preset.d.mts +3 -10
  2878. package/dist/physics/carnot/preset.mjs +353 -346
  2879. package/dist/physics/circular-motion/index.d.mts +2 -1
  2880. package/dist/physics/circular-motion/model.mjs +46 -0
  2881. package/dist/physics/circular-motion/preset.d.mts +3 -10
  2882. package/dist/physics/circular-motion/preset.mjs +205 -185
  2883. package/dist/physics/collision-track/index.d.mts +2 -1
  2884. package/dist/physics/collision-track/model.mjs +62 -0
  2885. package/dist/physics/collision-track/preset.d.mts +3 -12
  2886. package/dist/physics/collision-track/preset.mjs +356 -248
  2887. package/dist/physics/constants.d.mts +125 -0
  2888. package/dist/physics/constants.mjs +128 -0
  2889. package/dist/physics/couple-torque/index.d.mts +2 -0
  2890. package/dist/physics/couple-torque/preset.d.mts +20 -0
  2891. package/dist/physics/couple-torque/preset.mjs +625 -0
  2892. package/dist/physics/efficiency/index.d.mts +2 -1
  2893. package/dist/physics/efficiency/preset.d.mts +5 -10
  2894. package/dist/physics/efficiency/preset.mjs +228 -168
  2895. package/dist/physics/electric-field/index.d.mts +2 -1
  2896. package/dist/physics/electric-field/preset.d.mts +3 -6
  2897. package/dist/physics/electric-field/preset.mjs +149 -136
  2898. package/dist/physics/electric-flux/index.d.mts +2 -1
  2899. package/dist/physics/electric-flux/preset.d.mts +4 -12
  2900. package/dist/physics/electric-flux/preset.mjs +214 -165
  2901. package/dist/physics/electricity/engine.d.mts +54 -0
  2902. package/dist/physics/electricity/engine.mjs +126 -0
  2903. package/dist/physics/electricity/faults.d.mts +31 -0
  2904. package/dist/physics/electricity/faults.mjs +65 -0
  2905. package/dist/physics/electrostatics/coulomb-activity.mjs +119 -0
  2906. package/dist/physics/electrostatics/coulomb-preset.mjs +331 -0
  2907. package/dist/physics/electrostatics/coulomb-presets.mjs +60 -0
  2908. package/dist/physics/energy/core.d.mts +199 -0
  2909. package/dist/physics/energy/core.mjs +265 -0
  2910. package/dist/physics/energy-skate/index.d.mts +2 -1
  2911. package/dist/physics/energy-skate/model.mjs +92 -0
  2912. package/dist/physics/energy-skate/preset.d.mts +3 -10
  2913. package/dist/physics/energy-skate/preset.mjs +185 -148
  2914. package/dist/physics/entropy/index.d.mts +2 -1
  2915. package/dist/physics/entropy/preset.d.mts +3 -7
  2916. package/dist/physics/entropy/preset.mjs +150 -154
  2917. package/dist/physics/expansion/index.d.mts +2 -1
  2918. package/dist/physics/expansion/preset.d.mts +3 -8
  2919. package/dist/physics/expansion/preset.mjs +202 -163
  2920. package/dist/physics/exponential/asset.mjs +5 -4
  2921. package/dist/physics/exponential/index.d.mts +2 -1
  2922. package/dist/physics/exponential/preset.d.mts +1 -7
  2923. package/dist/physics/exponential/preset.mjs +104 -38
  2924. package/dist/physics/fields/activity.d.mts +23 -0
  2925. package/dist/physics/fields/activity.mjs +113 -0
  2926. package/dist/physics/fields/index.d.mts +10 -0
  2927. package/dist/physics/fields/index.mjs +19 -0
  2928. package/dist/physics/fields/spatial-activity.d.mts +5 -0
  2929. package/dist/physics/fields/spatial-activity.mjs +89 -0
  2930. package/dist/physics/fields/spatial-preset.d.mts +31 -0
  2931. package/dist/physics/fields/spatial-preset.mjs +232 -0
  2932. package/dist/physics/fluid-pressure/index.d.mts +2 -0
  2933. package/dist/physics/fluid-pressure/preset.d.mts +46 -0
  2934. package/dist/physics/fluid-pressure/preset.mjs +727 -0
  2935. package/dist/physics/force-pairs/index.d.mts +2 -0
  2936. package/dist/physics/force-pairs/preset.d.mts +21 -0
  2937. package/dist/physics/force-pairs/preset.mjs +836 -0
  2938. package/dist/physics/gas-process/index.d.mts +2 -1
  2939. package/dist/physics/gas-process/preset.d.mts +3 -11
  2940. package/dist/physics/gas-process/preset.mjs +145 -156
  2941. package/dist/physics/gauss-law/index.d.mts +2 -1
  2942. package/dist/physics/gauss-law/preset.d.mts +4 -9
  2943. package/dist/physics/gauss-law/preset.mjs +159 -115
  2944. package/dist/physics/geomagnetism/activity.mjs +60 -0
  2945. package/dist/physics/geomagnetism/preset.mjs +300 -0
  2946. package/dist/physics/geomagnetism/presets.mjs +68 -0
  2947. package/dist/physics/gravitation/index.d.mts +2 -1
  2948. package/dist/physics/gravitation/preset.d.mts +10 -14
  2949. package/dist/physics/gravitation/preset.mjs +394 -254
  2950. package/dist/physics/gravity-drop.d.mts +6 -2
  2951. package/dist/physics/gravity-drop.mjs +201 -36
  2952. package/dist/physics/gravity-profile/index.d.mts +2 -0
  2953. package/dist/physics/gravity-profile/preset.d.mts +39 -0
  2954. package/dist/physics/gravity-profile/preset.mjs +508 -0
  2955. package/dist/physics/heat-transfer/index.d.mts +2 -1
  2956. package/dist/physics/heat-transfer/preset.d.mts +3 -8
  2957. package/dist/physics/heat-transfer/preset.mjs +493 -421
  2958. package/dist/physics/impulse/index.d.mts +2 -1
  2959. package/dist/physics/impulse/preset.d.mts +3 -11
  2960. package/dist/physics/impulse/preset.mjs +525 -366
  2961. package/dist/physics/index.d.mts +124 -5
  2962. package/dist/physics/index.mjs +70 -3
  2963. package/dist/physics/intercept/animals.mjs +194 -0
  2964. package/dist/physics/intercept/core.d.mts +22 -0
  2965. package/dist/physics/intercept/core.mjs +147 -0
  2966. package/dist/physics/intercept/index.d.mts +2 -0
  2967. package/dist/physics/intercept/preset.d.mts +28 -0
  2968. package/dist/physics/intercept/preset.mjs +450 -0
  2969. package/dist/physics/investigation/circuit.d.mts +41 -0
  2970. package/dist/physics/investigation/circuit.mjs +174 -0
  2971. package/dist/physics/investigation/cooling.d.mts +44 -0
  2972. package/dist/physics/investigation/cooling.mjs +195 -0
  2973. package/dist/physics/investigation/density.d.mts +28 -0
  2974. package/dist/physics/investigation/density.mjs +136 -0
  2975. package/dist/physics/investigation/energy-resource.mjs +453 -0
  2976. package/dist/physics/investigation/engine.d.mts +106 -0
  2977. package/dist/physics/investigation/engine.mjs +126 -0
  2978. package/dist/physics/investigation/measurement.mjs +182 -0
  2979. package/dist/physics/investigation/optics.d.mts +38 -0
  2980. package/dist/physics/investigation/optics.mjs +155 -0
  2981. package/dist/physics/investigation/paper5.mjs +359 -0
  2982. package/dist/physics/investigation/radiation.mjs +304 -0
  2983. package/dist/physics/investigation/refraction.d.mts +40 -0
  2984. package/dist/physics/investigation/refraction.mjs +161 -0
  2985. package/dist/physics/investigation/space.mjs +191 -0
  2986. package/dist/physics/investigation/trolley.d.mts +43 -0
  2987. package/dist/physics/investigation/trolley.mjs +194 -0
  2988. package/dist/physics/investigation-activity.d.mts +25 -0
  2989. package/dist/physics/investigation-activity.mjs +86 -0
  2990. package/dist/physics/kepler/index.d.mts +2 -1
  2991. package/dist/physics/kepler/preset.d.mts +3 -10
  2992. package/dist/physics/kepler/preset.mjs +303 -140
  2993. package/dist/physics/lever/asset.d.mts +0 -1
  2994. package/dist/physics/lever/index.d.mts +2 -1
  2995. package/dist/physics/lever/preset.d.mts +7 -13
  2996. package/dist/physics/lever/preset.mjs +53 -32
  2997. package/dist/physics/lift-weight/index.d.mts +2 -0
  2998. package/dist/physics/lift-weight/preset.d.mts +23 -0
  2999. package/dist/physics/lift-weight/preset.mjs +362 -0
  3000. package/dist/physics/lifting-work/preset.mjs +411 -0
  3001. package/dist/physics/linear-pursuit/core.d.mts +16 -0
  3002. package/dist/physics/linear-pursuit/core.mjs +34 -0
  3003. package/dist/physics/linear-pursuit/index.d.mts +3 -0
  3004. package/dist/physics/linear-pursuit/index.mjs +4 -0
  3005. package/dist/physics/linear-pursuit/preset.d.mts +17 -0
  3006. package/dist/physics/linear-pursuit/preset.mjs +276 -0
  3007. package/dist/physics/linear-pursuit/vehicle.mjs +67 -0
  3008. package/dist/physics/lorentz/core.d.mts +12 -0
  3009. package/dist/physics/lorentz/core.mjs +31 -0
  3010. package/dist/physics/lorentz/index.d.mts +3 -1
  3011. package/dist/physics/lorentz/model.mjs +16 -0
  3012. package/dist/physics/lorentz/preset.d.mts +3 -13
  3013. package/dist/physics/lorentz/preset.mjs +218 -198
  3014. package/dist/physics/machines/ac-generator/core.d.mts +41 -0
  3015. package/dist/physics/machines/ac-generator/core.mjs +63 -0
  3016. package/dist/physics/machines/ac-generator/index.d.mts +3 -0
  3017. package/dist/physics/machines/ac-generator/model.mjs +14 -0
  3018. package/dist/physics/machines/ac-generator/preset.d.mts +30 -0
  3019. package/dist/physics/machines/ac-generator/preset.mjs +684 -0
  3020. package/dist/physics/machines/dc-motor/core.d.mts +28 -0
  3021. package/dist/physics/machines/dc-motor/core.mjs +69 -0
  3022. package/dist/physics/machines/dc-motor/index.d.mts +3 -0
  3023. package/dist/physics/machines/dc-motor/preset.d.mts +30 -0
  3024. package/dist/physics/machines/dc-motor/preset.mjs +689 -0
  3025. package/dist/physics/magnetism/formula-core.d.mts +1 -0
  3026. package/dist/physics/magnetism/formula-core.mjs +30 -0
  3027. package/dist/physics/magnetism/index.d.mts +4 -1
  3028. package/dist/physics/magnetism/preset.d.mts +3 -6
  3029. package/dist/physics/magnetism/preset.mjs +174 -107
  3030. package/dist/physics/mechanics/activity-plan.mjs +53 -0
  3031. package/dist/physics/mechanics/activity.mjs +19 -0
  3032. package/dist/physics/mechanics/core.d.mts +118 -0
  3033. package/dist/physics/mechanics/core.mjs +190 -0
  3034. package/dist/physics/mechanics/glyphs.mjs +250 -0
  3035. package/dist/physics/mechanics/presentation.mjs +182 -0
  3036. package/dist/physics/modern/imaging/activity.d.mts +5 -0
  3037. package/dist/physics/modern/imaging/activity.mjs +79 -0
  3038. package/dist/physics/modern/imaging/index.d.mts +12 -0
  3039. package/dist/physics/modern/imaging/pet-activity.d.mts +5 -0
  3040. package/dist/physics/modern/imaging/pet-activity.mjs +115 -0
  3041. package/dist/physics/modern/imaging/pet-core.d.mts +296 -0
  3042. package/dist/physics/modern/imaging/pet-core.mjs +389 -0
  3043. package/dist/physics/modern/imaging/pet-preset.d.mts +26 -0
  3044. package/dist/physics/modern/imaging/pet-preset.mjs +167 -0
  3045. package/dist/physics/modern/imaging/pet-scene.d.mts +21 -0
  3046. package/dist/physics/modern/imaging/pet-scene.mjs +245 -0
  3047. package/dist/physics/modern/imaging/preset.d.mts +15 -0
  3048. package/dist/physics/modern/imaging/preset.mjs +126 -0
  3049. package/dist/physics/modern/imaging/spectrum-activity.d.mts +5 -0
  3050. package/dist/physics/modern/imaging/spectrum-activity.mjs +79 -0
  3051. package/dist/physics/modern/imaging/spectrum-preset.d.mts +16 -0
  3052. package/dist/physics/modern/imaging/spectrum-preset.mjs +133 -0
  3053. package/dist/physics/modern/imaging/spectrum-scene.d.mts +9 -0
  3054. package/dist/physics/modern/imaging/spectrum-scene.mjs +279 -0
  3055. package/dist/physics/modern/imaging/xray-core.d.mts +74 -0
  3056. package/dist/physics/modern/imaging/xray-core.mjs +115 -0
  3057. package/dist/physics/modern/imaging/xray-scene.mjs +224 -0
  3058. package/dist/physics/modern/imaging/xray-spectrum-core.d.mts +51 -0
  3059. package/dist/physics/modern/imaging/xray-spectrum-core.mjs +94 -0
  3060. package/dist/physics/modern/index.d.mts +58 -0
  3061. package/dist/physics/modern/index.mjs +54 -0
  3062. package/dist/physics/modern/nuclear/activity.d.mts +5 -0
  3063. package/dist/physics/modern/nuclear/activity.mjs +74 -0
  3064. package/dist/physics/modern/nuclear/core.d.mts +74 -0
  3065. package/dist/physics/modern/nuclear/core.mjs +70 -0
  3066. package/dist/physics/modern/nuclear/fission-activity.d.mts +5 -0
  3067. package/dist/physics/modern/nuclear/fission-activity.mjs +96 -0
  3068. package/dist/physics/modern/nuclear/fission-core.d.mts +41 -0
  3069. package/dist/physics/modern/nuclear/fission-core.mjs +67 -0
  3070. package/dist/physics/modern/nuclear/fission-preset.d.mts +15 -0
  3071. package/dist/physics/modern/nuclear/fission-preset.mjs +132 -0
  3072. package/dist/physics/modern/nuclear/fission-scene.mjs +294 -0
  3073. package/dist/physics/modern/nuclear/index.d.mts +8 -0
  3074. package/dist/physics/modern/nuclear/preset.d.mts +14 -0
  3075. package/dist/physics/modern/nuclear/preset.mjs +176 -0
  3076. package/dist/physics/modern/quantum/activity.d.mts +5 -0
  3077. package/dist/physics/modern/quantum/activity.mjs +74 -0
  3078. package/dist/physics/modern/quantum/bloch-activity.d.mts +5 -0
  3079. package/dist/physics/modern/quantum/bloch-activity.mjs +74 -0
  3080. package/dist/physics/modern/quantum/bloch-preset.d.mts +20 -0
  3081. package/dist/physics/modern/quantum/bloch-preset.mjs +232 -0
  3082. package/dist/physics/modern/quantum/double-slit-activity.d.mts +5 -0
  3083. package/dist/physics/modern/quantum/double-slit-activity.mjs +74 -0
  3084. package/dist/physics/modern/quantum/double-slit-core.d.mts +48 -0
  3085. package/dist/physics/modern/quantum/double-slit-core.mjs +64 -0
  3086. package/dist/physics/modern/quantum/double-slit-preset.d.mts +15 -0
  3087. package/dist/physics/modern/quantum/double-slit-preset.mjs +327 -0
  3088. package/dist/physics/modern/quantum/gates-activity.d.mts +5 -0
  3089. package/dist/physics/modern/quantum/gates-activity.mjs +74 -0
  3090. package/dist/physics/modern/quantum/gates-core.d.mts +18 -0
  3091. package/dist/physics/modern/quantum/gates-core.mjs +54 -0
  3092. package/dist/physics/modern/quantum/gates-preset.d.mts +15 -0
  3093. package/dist/physics/modern/quantum/gates-preset.mjs +102 -0
  3094. package/dist/physics/modern/quantum/index.d.mts +17 -0
  3095. package/dist/physics/modern/quantum/photoelectric-core.d.mts +43 -0
  3096. package/dist/physics/modern/quantum/photoelectric-core.mjs +49 -0
  3097. package/dist/physics/modern/quantum/preset.d.mts +16 -0
  3098. package/dist/physics/modern/quantum/preset.mjs +229 -0
  3099. package/dist/physics/modern/quantum/qubit-core.d.mts +49 -0
  3100. package/dist/physics/modern/quantum/qubit-core.mjs +52 -0
  3101. package/dist/physics/modern/quantum/uncertainty-activity.d.mts +5 -0
  3102. package/dist/physics/modern/quantum/uncertainty-activity.mjs +74 -0
  3103. package/dist/physics/modern/quantum/uncertainty-core.d.mts +11 -0
  3104. package/dist/physics/modern/quantum/uncertainty-core.mjs +19 -0
  3105. package/dist/physics/modern/quantum/uncertainty-preset.d.mts +13 -0
  3106. package/dist/physics/modern/quantum/uncertainty-preset.mjs +157 -0
  3107. package/dist/physics/modern/relativity/activity.d.mts +5 -0
  3108. package/dist/physics/modern/relativity/activity.mjs +80 -0
  3109. package/dist/physics/modern/relativity/core.d.mts +29 -0
  3110. package/dist/physics/modern/relativity/core.mjs +60 -0
  3111. package/dist/physics/modern/relativity/explorer-activity.d.mts +5 -0
  3112. package/dist/physics/modern/relativity/explorer-activity.mjs +74 -0
  3113. package/dist/physics/modern/relativity/explorer-core.d.mts +15 -0
  3114. package/dist/physics/modern/relativity/explorer-core.mjs +21 -0
  3115. package/dist/physics/modern/relativity/explorer-preset.d.mts +14 -0
  3116. package/dist/physics/modern/relativity/explorer-preset.mjs +341 -0
  3117. package/dist/physics/modern/relativity/index.d.mts +19 -0
  3118. package/dist/physics/modern/relativity/length-activity.d.mts +5 -0
  3119. package/dist/physics/modern/relativity/length-activity.mjs +79 -0
  3120. package/dist/physics/modern/relativity/length-core.d.mts +20 -0
  3121. package/dist/physics/modern/relativity/length-core.mjs +33 -0
  3122. package/dist/physics/modern/relativity/length-preset.d.mts +13 -0
  3123. package/dist/physics/modern/relativity/length-preset.mjs +185 -0
  3124. package/dist/physics/modern/relativity/light-clock.d.mts +8 -0
  3125. package/dist/physics/modern/relativity/light-clock.mjs +237 -0
  3126. package/dist/physics/modern/relativity/muon-activity.d.mts +5 -0
  3127. package/dist/physics/modern/relativity/muon-activity.mjs +79 -0
  3128. package/dist/physics/modern/relativity/muon-core.d.mts +39 -0
  3129. package/dist/physics/modern/relativity/muon-core.mjs +66 -0
  3130. package/dist/physics/modern/relativity/muon-preset.d.mts +15 -0
  3131. package/dist/physics/modern/relativity/muon-preset.mjs +120 -0
  3132. package/dist/physics/modern/relativity/muon-scene.d.mts +10 -0
  3133. package/dist/physics/modern/relativity/muon-scene.mjs +144 -0
  3134. package/dist/physics/modern/relativity/preset.d.mts +17 -0
  3135. package/dist/physics/modern/relativity/preset.mjs +132 -0
  3136. package/dist/physics/modern/relativity/scene-primitives.mjs +244 -0
  3137. package/dist/physics/modern/relativity/simultaneity-activity.d.mts +5 -0
  3138. package/dist/physics/modern/relativity/simultaneity-activity.mjs +80 -0
  3139. package/dist/physics/modern/relativity/simultaneity-core.d.mts +20 -0
  3140. package/dist/physics/modern/relativity/simultaneity-core.mjs +33 -0
  3141. package/dist/physics/modern/relativity/simultaneity-preset.d.mts +13 -0
  3142. package/dist/physics/modern/relativity/simultaneity-preset.mjs +319 -0
  3143. package/dist/physics/modern/relativity/spacetime.d.mts +8 -0
  3144. package/dist/physics/modern/relativity/spacetime.mjs +168 -0
  3145. package/dist/physics/modern/shared/experiment-transport.d.mts +28 -0
  3146. package/dist/physics/modern/shared/experiment-transport.mjs +87 -0
  3147. package/dist/physics/modern/shared/index.d.mts +2 -0
  3148. package/dist/physics/optics/activity-plan.mjs +53 -0
  3149. package/dist/physics/optics/activity.mjs +36 -0
  3150. package/dist/physics/optics/asset.d.mts +0 -1
  3151. package/dist/physics/optics/asset.mjs +1 -1
  3152. package/dist/physics/optics/imaging-activity.mjs +64 -0
  3153. package/dist/physics/optics/index.d.mts +5 -1
  3154. package/dist/physics/optics/lens.d.mts +18 -0
  3155. package/dist/physics/optics/lens.mjs +402 -0
  3156. package/dist/physics/optics/mirror.d.mts +18 -0
  3157. package/dist/physics/optics/mirror.mjs +394 -0
  3158. package/dist/physics/optics/preset.d.mts +6 -4
  3159. package/dist/physics/optics/preset.mjs +48 -27
  3160. package/dist/physics/optics/refraction.d.mts +25 -0
  3161. package/dist/physics/optics/refraction.mjs +425 -0
  3162. package/dist/physics/orbit-lab.d.mts +12 -3
  3163. package/dist/physics/orbit-lab.mjs +336 -197
  3164. package/dist/physics/orbital/core.d.mts +69 -0
  3165. package/dist/physics/orbital/core.mjs +93 -0
  3166. package/dist/physics/orbital/model.d.mts +50 -0
  3167. package/dist/physics/orbital/model.mjs +66 -0
  3168. package/dist/physics/power/index.d.mts +2 -0
  3169. package/dist/physics/power/preset.d.mts +25 -0
  3170. package/dist/physics/power/preset.mjs +556 -0
  3171. package/dist/physics/projectiles/core.d.mts +8 -0
  3172. package/dist/physics/projectiles/core.mjs +194 -0
  3173. package/dist/physics/projectiles/falling-target.d.mts +23 -0
  3174. package/dist/physics/projectiles/falling-target.mjs +338 -0
  3175. package/dist/physics/projectiles/glyphs.mjs +269 -0
  3176. package/dist/physics/projectiles/index.d.mts +4 -0
  3177. package/dist/physics/projectiles/moving-launcher.d.mts +30 -0
  3178. package/dist/physics/projectiles/moving-launcher.mjs +481 -0
  3179. package/dist/physics/rain-relative/index.d.mts +2 -1
  3180. package/dist/physics/rain-relative/model.mjs +14 -0
  3181. package/dist/physics/rain-relative/preset.d.mts +4 -8
  3182. package/dist/physics/rain-relative/preset.mjs +249 -130
  3183. package/dist/physics/ramp-forces/index.d.mts +2 -1
  3184. package/dist/physics/ramp-forces/preset.d.mts +3 -14
  3185. package/dist/physics/ramp-forces/preset.mjs +362 -286
  3186. package/dist/physics/river-boat.d.mts +5 -9
  3187. package/dist/physics/river-boat.mjs +194 -76
  3188. package/dist/physics/river-crossing.mjs +101 -0
  3189. package/dist/physics/shm/core.mjs +58 -0
  3190. package/dist/physics/shm/energy.d.mts +24 -0
  3191. package/dist/physics/shm/energy.mjs +654 -0
  3192. package/dist/physics/shm/graphs.d.mts +20 -0
  3193. package/dist/physics/shm/graphs.mjs +483 -0
  3194. package/dist/physics/shm/index.d.mts +6 -1
  3195. package/dist/physics/shm/pendulum-worlds.d.mts +18 -0
  3196. package/dist/physics/shm/pendulum-worlds.mjs +356 -0
  3197. package/dist/physics/shm/preset.d.mts +3 -12
  3198. package/dist/physics/shm/preset.mjs +571 -252
  3199. package/dist/physics/shm/springs.d.mts +23 -0
  3200. package/dist/physics/shm/springs.mjs +404 -0
  3201. package/dist/physics/spin-studio/index.d.mts +2 -0
  3202. package/dist/physics/spin-studio/preset.d.mts +20 -0
  3203. package/dist/physics/spin-studio/preset.mjs +395 -0
  3204. package/dist/physics/stopping-distance/index.d.mts +2 -1
  3205. package/dist/physics/stopping-distance/preset.d.mts +3 -13
  3206. package/dist/physics/stopping-distance/preset.mjs +288 -181
  3207. package/dist/physics/stress-strain/core.d.mts +127 -0
  3208. package/dist/physics/stress-strain/core.mjs +161 -0
  3209. package/dist/physics/stress-strain/index.d.mts +3 -0
  3210. package/dist/physics/stress-strain/preset.d.mts +28 -0
  3211. package/dist/physics/stress-strain/preset.mjs +879 -0
  3212. package/dist/physics/suspension/index.d.mts +2 -0
  3213. package/dist/physics/suspension/preset.d.mts +26 -0
  3214. package/dist/physics/suspension/preset.mjs +887 -0
  3215. package/dist/physics/temperature-scales/index.d.mts +2 -1
  3216. package/dist/physics/temperature-scales/preset.d.mts +12 -7
  3217. package/dist/physics/temperature-scales/preset.mjs +172 -186
  3218. package/dist/physics/terminal-velocity/index.d.mts +2 -1
  3219. package/dist/physics/terminal-velocity/model.mjs +54 -0
  3220. package/dist/physics/terminal-velocity/preset.d.mts +3 -10
  3221. package/dist/physics/terminal-velocity/preset.mjs +286 -254
  3222. package/dist/physics/thermal/activity-plan.mjs +53 -0
  3223. package/dist/physics/thermal/activity.d.mts +8 -0
  3224. package/dist/physics/thermal/activity.mjs +19 -0
  3225. package/dist/physics/thermal/index.d.mts +3 -1
  3226. package/dist/physics/thermal/model.mjs +46 -0
  3227. package/dist/physics/thermal/preset.d.mts +1 -17
  3228. package/dist/physics/thermal/preset.mjs +485 -295
  3229. package/dist/physics/ultrasound/core.d.mts +221 -0
  3230. package/dist/physics/ultrasound/core.mjs +235 -0
  3231. package/dist/physics/vector-board/index.d.mts +2 -1
  3232. package/dist/physics/vector-board/preset.d.mts +23 -18
  3233. package/dist/physics/vector-board/preset.mjs +396 -181
  3234. package/dist/physics/vector-board/view.mjs +3 -16
  3235. package/dist/physics/vector-types/index.d.mts +2 -1
  3236. package/dist/physics/vector-types/preset.d.mts +5 -5
  3237. package/dist/physics/vector-types/preset.mjs +104 -33
  3238. package/dist/physics/venturi/core.mjs +67 -0
  3239. package/dist/physics/venturi/index.d.mts +2 -0
  3240. package/dist/physics/venturi/preset.d.mts +18 -0
  3241. package/dist/physics/venturi/preset.mjs +340 -0
  3242. package/dist/physics/water-density/index.d.mts +2 -1
  3243. package/dist/physics/water-density/preset.d.mts +3 -7
  3244. package/dist/physics/water-density/preset.mjs +193 -209
  3245. package/dist/physics/waves/activity-plan.mjs +62 -0
  3246. package/dist/physics/waves/doppler-core.d.mts +106 -0
  3247. package/dist/physics/waves/doppler-core.mjs +157 -0
  3248. package/dist/physics/waves/doppler-model.mjs +90 -0
  3249. package/dist/physics/waves/doppler.d.mts +3 -10
  3250. package/dist/physics/waves/doppler.mjs +93 -118
  3251. package/dist/physics/waves/guitar.d.mts +22 -0
  3252. package/dist/physics/waves/guitar.mjs +807 -0
  3253. package/dist/physics/waves/index.d.mts +3 -1
  3254. package/dist/physics/waves/interference-core.d.mts +157 -0
  3255. package/dist/physics/waves/interference-core.mjs +207 -0
  3256. package/dist/physics/waves/preset.d.mts +3 -13
  3257. package/dist/physics/waves/preset.mjs +237 -239
  3258. package/dist/physics/waves/ripple.d.mts +3 -11
  3259. package/dist/physics/waves/ripple.mjs +144 -117
  3260. package/dist/physics/waves/string.d.mts +3 -12
  3261. package/dist/physics/waves/string.mjs +141 -142
  3262. package/dist/physics/waves/wave-activity.mjs +108 -0
  3263. package/dist/physics/work-energy/index.d.mts +2 -1
  3264. package/dist/physics/work-energy/preset.d.mts +3 -7
  3265. package/dist/physics/work-energy/preset.mjs +308 -177
  3266. package/dist/physics/work-potential/index.d.mts +2 -1
  3267. package/dist/physics/work-potential/preset.d.mts +17 -9
  3268. package/dist/physics/work-potential/preset.mjs +220 -196
  3269. package/dist/schemas/activity-authoring.d.mts +232 -0
  3270. package/dist/schemas/activity-authoring.mjs +316 -0
  3271. package/dist/schemas/index.d.mts +37 -4
  3272. package/dist/schemas/index.mjs +107 -20
  3273. package/dist/shared/fields.mjs +39 -0
  3274. package/dist/statistics/center-spread/preset.d.mts +1 -14
  3275. package/dist/statistics/center-spread/preset.mjs +137 -92
  3276. package/dist/statistics/frequency-density/core.d.mts +73 -0
  3277. package/dist/statistics/frequency-density/core.mjs +72 -0
  3278. package/dist/statistics/frequency-density/index.d.mts +3 -0
  3279. package/dist/statistics/frequency-density/preset.d.mts +22 -0
  3280. package/dist/statistics/frequency-density/preset.mjs +181 -0
  3281. package/dist/statistics/galton/preset.d.mts +1 -12
  3282. package/dist/statistics/galton/preset.mjs +129 -74
  3283. package/dist/statistics/histogram/preset.d.mts +1 -12
  3284. package/dist/statistics/histogram/preset.mjs +189 -83
  3285. package/dist/statistics/index.d.mts +7 -1
  3286. package/dist/statistics/index.mjs +5 -1
  3287. package/dist/statistics/normal/preset.d.mts +1 -13
  3288. package/dist/statistics/normal/preset.mjs +159 -76
  3289. package/dist/statistics/ogive/core.d.mts +54 -0
  3290. package/dist/statistics/ogive/core.mjs +73 -0
  3291. package/dist/statistics/ogive/index.d.mts +3 -0
  3292. package/dist/statistics/ogive/preset.d.mts +14 -0
  3293. package/dist/statistics/ogive/preset.mjs +242 -0
  3294. package/dist/statistics/sampling/preset.d.mts +1 -14
  3295. package/dist/statistics/sampling/preset.mjs +162 -96
  3296. package/dist/statistics/sequence/preset.d.mts +1 -12
  3297. package/dist/statistics/sequence/preset.mjs +100 -86
  3298. package/dist/statistics/z-table/preset.d.mts +1 -12
  3299. package/dist/statistics/z-table/preset.mjs +178 -138
  3300. package/dist/tex/index.d.mts +2 -0
  3301. package/dist/tex/index.mjs +3 -0
  3302. package/dist/three/biology/cell-energy.d.mts +9 -0
  3303. package/dist/three/biology/cell-energy.mjs +151 -0
  3304. package/dist/three/biology/cell-system.d.mts +14 -0
  3305. package/dist/three/biology/cell-system.mjs +139 -0
  3306. package/dist/three/biology/cell-world.d.mts +37 -0
  3307. package/dist/three/biology/cell-world.mjs +346 -0
  3308. package/dist/three/biology/index.d.mts +8 -0
  3309. package/dist/three/biology/index.mjs +9 -0
  3310. package/dist/three/biology/meiosis-explorer.d.mts +9 -0
  3311. package/dist/three/biology/meiosis-explorer.mjs +292 -0
  3312. package/dist/three/biology/membrane-transport.d.mts +9 -0
  3313. package/dist/three/biology/membrane-transport.mjs +164 -0
  3314. package/dist/three/biology/mitosis-explorer.d.mts +9 -0
  3315. package/dist/three/biology/mitosis-explorer.mjs +722 -0
  3316. package/dist/three/biology/organelles.d.mts +19 -0
  3317. package/dist/three/biology/organelles.mjs +192 -0
  3318. package/dist/three/chemistry/atomic-orbital.d.mts +9 -0
  3319. package/dist/three/chemistry/atomic-orbital.mjs +122 -0
  3320. package/dist/three/chemistry/crystal-lattice.d.mts +9 -0
  3321. package/dist/three/chemistry/crystal-lattice.mjs +173 -0
  3322. package/dist/three/chemistry/index.d.mts +6 -0
  3323. package/dist/three/chemistry/index.mjs +7 -0
  3324. package/dist/three/chemistry/molecular-geometry.d.mts +9 -0
  3325. package/dist/three/chemistry/molecular-geometry.mjs +209 -0
  3326. package/dist/three/chemistry/orbital-overlap.d.mts +9 -0
  3327. package/dist/three/chemistry/orbital-overlap.mjs +144 -0
  3328. package/dist/three/chemistry/stereochemistry.d.mts +9 -0
  3329. package/dist/three/chemistry/stereochemistry.mjs +150 -0
  3330. package/dist/three/index.d.mts +14 -0
  3331. package/dist/three/index.mjs +12 -0
  3332. package/dist/three/model-asset.d.mts +21 -0
  3333. package/dist/three/model-asset.mjs +63 -0
  3334. package/dist/three/palette.d.mts +11 -0
  3335. package/dist/three/palette.mjs +75 -0
  3336. package/dist/three/physics/bloch-sphere.d.mts +11 -0
  3337. package/dist/three/physics/bloch-sphere.mjs +209 -0
  3338. package/dist/three/physics/index.d.mts +3 -0
  3339. package/dist/three/physics/index.mjs +4 -0
  3340. package/dist/three/physics/spatial-lorentz.d.mts +9 -0
  3341. package/dist/three/physics/spatial-lorentz.mjs +162 -0
  3342. package/dist/three/primitives.d.mts +86 -0
  3343. package/dist/three/primitives.mjs +347 -0
  3344. package/dist/three/surface.d.mts +23 -0
  3345. package/dist/three/surface.mjs +178 -0
  3346. package/package.json +271 -95
  3347. package/styles/commerce.css +826 -0
  3348. package/styles/core.css +4083 -0
  3349. package/styles/domains/algorithms.css +7 -0
  3350. package/styles/domains/biology.css +4 -0
  3351. package/styles/domains/chemistry.css +4 -0
  3352. package/styles/domains/circuits.css +4 -0
  3353. package/styles/domains/discrete.css +9 -0
  3354. package/styles/domains/editor.css +4 -0
  3355. package/styles/domains/ict.css +4 -0
  3356. package/styles/domains/logic.css +5 -0
  3357. package/styles/domains/math.css +9 -0
  3358. package/styles/domains/ml.css +4 -0
  3359. package/styles/domains/networking.css +4 -0
  3360. package/styles/domains/parts/algorithms-0.css +441 -0
  3361. package/styles/domains/parts/algorithms-1.css +521 -0
  3362. package/styles/domains/parts/algorithms-2.css +122 -0
  3363. package/styles/domains/parts/algorithms-3.css +91 -0
  3364. package/styles/domains/parts/biology.css +436 -0
  3365. package/styles/domains/parts/chemistry.css +1698 -0
  3366. package/styles/domains/parts/circuits.css +349 -0
  3367. package/styles/domains/parts/discrete-1.css +142 -0
  3368. package/styles/domains/parts/discrete-2.css +181 -0
  3369. package/styles/domains/parts/discrete-3.css +116 -0
  3370. package/styles/domains/parts/discrete-4.css +194 -0
  3371. package/styles/domains/parts/discrete-5.css +111 -0
  3372. package/styles/domains/parts/discrete-6.css +106 -0
  3373. package/styles/domains/parts/editor.css +290 -0
  3374. package/styles/domains/parts/ict.css +242 -0
  3375. package/styles/domains/parts/logic-1.css +286 -0
  3376. package/styles/domains/parts/logic-2.css +208 -0
  3377. package/styles/domains/parts/math-1.css +329 -0
  3378. package/styles/domains/parts/math-2.css +284 -0
  3379. package/styles/domains/parts/math-3.css +299 -0
  3380. package/styles/domains/parts/math-4.css +75 -0
  3381. package/styles/domains/parts/math-5.css +305 -0
  3382. package/styles/domains/parts/math-6.css +202 -0
  3383. package/styles/domains/parts/ml.css +243 -0
  3384. package/styles/domains/parts/networking.css +212 -0
  3385. package/styles/domains/parts/physics-1.css +483 -0
  3386. package/styles/domains/parts/physics-2.css +664 -0
  3387. package/styles/domains/parts/physics-3.css +433 -0
  3388. package/styles/domains/parts/probability-1.css +54 -0
  3389. package/styles/domains/parts/probability-2.css +392 -0
  3390. package/styles/domains/parts/probability-3.css +111 -0
  3391. package/styles/domains/parts/statistics.css +250 -0
  3392. package/styles/domains/physics.css +6 -0
  3393. package/styles/domains/probability.css +6 -0
  3394. package/styles/domains/statistics.css +4 -0
  3395. package/styles/domains.css +47 -0
  3396. package/styles/exam.css +206 -0
  3397. package/styles/figure.css +373 -0
  3398. package/styles/modern-physics.css +155 -0
  3399. package/styles/three.css +299 -0
  3400. package/styles.css +22 -263
  3401. package/dist/blocks/accounting.d.mts +0 -142
  3402. package/dist/blocks/accounting.mjs +0 -446
  3403. package/dist/blocks/biology.d.mts +0 -197
  3404. package/dist/blocks/biology.mjs +0 -513
  3405. package/dist/blocks/chem.d.mts +0 -128
  3406. package/dist/blocks/chem.mjs +0 -486
  3407. package/dist/blocks/circuits.d.mts +0 -375
  3408. package/dist/blocks/circuits.mjs +0 -1213
  3409. package/dist/blocks/discrete.d.mts +0 -90
  3410. package/dist/blocks/discrete.mjs +0 -384
  3411. package/dist/blocks/economics.d.mts +0 -56
  3412. package/dist/blocks/economics.mjs +0 -203
  3413. package/dist/blocks/geography.d.mts +0 -58
  3414. package/dist/blocks/geography.mjs +0 -115
  3415. package/dist/blocks/geometry.d.mts +0 -28
  3416. package/dist/blocks/geometry.mjs +0 -160
  3417. package/dist/blocks/ict.d.mts +0 -154
  3418. package/dist/blocks/ict.mjs +0 -407
  3419. package/dist/blocks/lab-block.d.mts +0 -16
  3420. package/dist/blocks/lab-gallery.d.mts +0 -30
  3421. package/dist/blocks/lab-gallery.mjs +0 -208
  3422. package/dist/blocks/language.d.mts +0 -349
  3423. package/dist/blocks/language.mjs +0 -750
  3424. package/dist/blocks/math.d.mts +0 -977
  3425. package/dist/blocks/math.mjs +0 -3170
  3426. package/dist/blocks/ml.d.mts +0 -128
  3427. package/dist/blocks/ml.mjs +0 -220
  3428. package/dist/blocks/physics.d.mts +0 -264
  3429. package/dist/blocks/physics.mjs +0 -915
  3430. package/dist/blocks/statistics.d.mts +0 -29
  3431. package/dist/blocks/statistics.mjs +0 -123
  3432. package/dist/build/parts.d.mts +0 -1
  3433. package/dist/circuits/cmos-gate/preset.mjs +0 -1491
  3434. package/dist/circuits/semiconductor/preset.mjs +0 -1855
  3435. package/dist/discrete/logic-circuit/index.d.mts +0 -1
  3436. package/dist/discrete/logic-circuit/preset.d.mts +0 -47
  3437. package/dist/discrete/logic-circuit/preset.mjs +0 -307
  3438. package/dist/kit/answer-check.d.mts +0 -38
  3439. package/dist/kit/answer-check.mjs +0 -93
  3440. package/dist/kit/calc.d.mts +0 -33
  3441. package/dist/kit/calc.mjs +0 -27
  3442. package/dist/kit/diagram.mjs +0 -237
  3443. package/dist/kit/electronics.mjs +0 -849
  3444. package/dist/kit/expr-analysis.d.mts +0 -49
  3445. package/dist/kit/expr-analysis.mjs +0 -165
  3446. package/dist/kit/logic-gates.d.mts +0 -6
  3447. package/dist/kit/logic-gates.mjs +0 -409
  3448. package/dist/kit/solve.d.mts +0 -21
  3449. package/dist/kit/solve.mjs +0 -75
  3450. package/dist/kit/space.mjs +0 -326
  3451. package/dist/math/complex/core.d.mts +0 -93
  3452. package/dist/math/complex/core.mjs +0 -239
  3453. package/dist/math/poly/core.d.mts +0 -50
  3454. package/dist/math/poly/core.mjs +0 -268
  3455. package/dist/ml/boundary/index.d.mts +0 -1
  3456. package/dist/ml/boundary/preset.d.mts +0 -24
  3457. package/dist/ml/boundary/preset.mjs +0 -390
  3458. package/dist/ml/classifier/index.d.mts +0 -1
  3459. package/dist/ml/classifier/preset.d.mts +0 -25
  3460. package/dist/ml/classifier/preset.mjs +0 -340
  3461. package/dist/ml/kmeans/index.d.mts +0 -1
  3462. package/dist/ml/kmeans/preset.d.mts +0 -33
  3463. package/dist/ml/kmeans/preset.mjs +0 -236
  3464. package/dist/ml/knn/index.d.mts +0 -1
  3465. package/dist/ml/knn/preset.d.mts +0 -28
  3466. package/dist/ml/knn/preset.mjs +0 -314
  3467. package/dist/ml/regression/index.d.mts +0 -1
  3468. package/dist/ml/regression/preset.d.mts +0 -32
  3469. package/dist/ml/regression/preset.mjs +0 -423
  3470. package/dist/physics/projectile-lab.d.mts +0 -10
  3471. package/dist/physics/projectile-lab.mjs +0 -354
  3472. package/dist/physics/vector-board/view.d.mts +0 -49
  3473. package/dist/physics/vector-scene.d.mts +0 -41
  3474. package/dist/physics/vector-scene.mjs +0 -211
  3475. package/dist/physics/waves/core.mjs +0 -33
@@ -1,3170 +0,0 @@
1
- import { Grapher } from "../math/grapher/preset.mjs";
2
- import { DerivativeExplorer } from "../math/derivative-explorer/preset.mjs";
3
- import { IntegralExplorer } from "../math/integral-explorer/preset.mjs";
4
- import { LimitExplorer } from "../math/limit-explorer/preset.mjs";
5
- import { LinearSystemLab } from "../math/linear-system/preset.mjs";
6
- import { NumberLineLab } from "../math/number-line/preset.mjs";
7
- import { AreaModelLab } from "../math/area-model/preset.mjs";
8
- import { GrowingPatternLab } from "../math/pattern/preset.mjs";
9
- import { MysteryBucketLab } from "../math/mystery-bucket/preset.mjs";
10
- import { BalanceAlgebraLab } from "../math/balance-algebra/preset.mjs";
11
- import { VertexParabolaLab } from "../math/parabola/preset.mjs";
12
- import { FunctionMachineLab } from "../math/function-machine/preset.mjs";
13
- import { TRIG_FNS, TrigExplorer } from "../math/trig-explorer.mjs";
14
- import { Derivation } from "../math/derivation.mjs";
15
- import { GradientDescent } from "../math/gradient-descent.mjs";
16
- import { InteractiveProblem } from "../math/interactive/preset.mjs";
17
- import { TriangleTrig } from "../math/triangle-trig/preset.mjs";
18
- import { StraightLineLab } from "../math/straight-line/preset.mjs";
19
- import { CircleLab } from "../math/circle/preset.mjs";
20
- import { ConicLab } from "../math/conic/preset.mjs";
21
- import { DomainRangeLab } from "../math/domain-range/preset.mjs";
22
- import { listScenes } from "../kit/scenes.mjs";
23
- import { LinearModelLab } from "../math/linear-model/preset.mjs";
24
- import { RateMachineLab } from "../math/rate-machine/preset.mjs";
25
- import { SequencePredict } from "../math/sequence-predict/preset.mjs";
26
- import { PercentBarLab } from "../math/percent-bar/preset.mjs";
27
- import { ComplexPlaneLab } from "../math/complex/preset.mjs";
28
- import { TrigSignsLab } from "../math/trig/preset.mjs";
29
- import { FractionBarLab } from "../math/fraction-bar/preset.mjs";
30
- import { RatioShareLab } from "../math/ratio-share/preset.mjs";
31
- import { TransformLab } from "../math/transform/preset.mjs";
32
- import { ReceiptLab } from "../math/receipt/preset.mjs";
33
- import { listClueScenes } from "../kit/clue-scene.mjs";
34
- import { SystemSolveLab } from "../math/system-solve/preset.mjs";
35
- import { PolynomialSolverLab } from "../math/poly/preset.mjs";
36
- import { registerDataScene } from "../kit/data-scene.mjs";
37
- import { SceneStudio } from "../kit/scene-studio.mjs";
38
- import { ChipToggle, ConfigPanel, ConfigRow, NumField, SelectField, SmallButton, TextField } from "./authoring.mjs";
39
- import { labBlock } from "./lab-block.mjs";
40
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
41
- import { z } from "zod";
42
- import { defineBlock } from "@classytic/cms-ui/contract";
43
-
44
- //#region src/blocks/math.tsx
45
- const levelSceneOptions = () => ["none", ...listScenes("level").map((s) => s.name)];
46
- const countSceneOptions = () => listScenes("count").map((s) => s.name);
47
- const clueSceneOptions = () => listClueScenes().map((s) => s.name);
48
- const resolveFns = (raw) => Array.isArray(raw) && raw.length ? raw : ["sin", "cos"];
49
- const TrigExplorerBlock = defineBlock({
50
- key: "trig-explorer",
51
- void: true,
52
- label: "Trig explorer",
53
- description: "Unit circle ↔ wave, drag the angle; sin & cos trace out. (tan/cot: use Graph)",
54
- category: "interactive",
55
- schema: z.object({
56
- functions: z.array(z.enum(["sin", "cos"])).optional(),
57
- startDeg: z.number().optional()
58
- }),
59
- Component: ({ attributes, mode, updateAttributes }) => {
60
- const fns = resolveFns(attributes.functions);
61
- const widget = /* @__PURE__ */ jsx(TrigExplorer, {
62
- functions: fns,
63
- startDeg: attributes.startDeg
64
- });
65
- if (mode !== "editing" || !updateAttributes) return widget;
66
- const toggle = (fn) => {
67
- const next = fns.includes(fn) ? fns.filter((f) => f !== fn) : [...fns, fn];
68
- updateAttributes({ functions: next.length ? next : fns });
69
- };
70
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(ConfigPanel, { children: /* @__PURE__ */ jsx(ConfigRow, {
71
- label: "Functions",
72
- children: TRIG_FNS.map((fn) => /* @__PURE__ */ jsx(ChipToggle, {
73
- active: fns.includes(fn),
74
- onClick: () => toggle(fn),
75
- children: fn
76
- }, fn))
77
- }) }), widget] });
78
- }
79
- });
80
- const equationSchema = z.union([z.string(), z.object({
81
- expr: z.string(),
82
- color: z.string().optional()
83
- })]);
84
- const paramSchema = z.object({
85
- name: z.string(),
86
- min: z.number(),
87
- max: z.number(),
88
- step: z.number().optional(),
89
- value: z.number()
90
- });
91
- const asExprStrings = (raw) => {
92
- if (typeof raw === "string") return [raw];
93
- if (Array.isArray(raw)) return raw.map((e) => typeof e === "string" ? e : String(e?.expr ?? ""));
94
- return ["sin(x)"];
95
- };
96
- const asParams = (raw) => Array.isArray(raw) ? raw : [];
97
- const GraphBlock = defineBlock({
98
- key: "graph",
99
- void: true,
100
- label: "Graph (equation)",
101
- description: "Plot equations you type, y = aΒ·sin(bΒ·x), x^2, … with learner sliders.",
102
- category: "interactive",
103
- schema: z.object({
104
- equations: z.array(equationSchema).optional(),
105
- params: z.array(paramSchema).optional(),
106
- xRange: z.tuple([z.number(), z.number()]).optional(),
107
- yScale: z.enum(["linear", "log"]).optional(),
108
- title: z.string().optional()
109
- }),
110
- Component: ({ attributes, mode, updateAttributes }) => {
111
- const equations = asExprStrings(attributes.equations);
112
- const params = asParams(attributes.params);
113
- const xRange = attributes.xRange ?? [-6.5, 6.5];
114
- const yScale = attributes.yScale === "log" ? "log" : "linear";
115
- const title = attributes.title ?? "Graph";
116
- const widget = /* @__PURE__ */ jsx(Grapher, {
117
- equations,
118
- params,
119
- xRange,
120
- yScale,
121
- title
122
- });
123
- if (mode !== "editing" || !updateAttributes) return widget;
124
- const setEq = (i, v) => {
125
- const next = [...equations];
126
- next[i] = v;
127
- updateAttributes({ equations: next });
128
- };
129
- const setParam = (i, patch) => {
130
- updateAttributes({ params: params.map((p, j) => j === i ? {
131
- ...p,
132
- ...patch
133
- } : p) });
134
- };
135
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
136
- /* @__PURE__ */ jsx(ConfigRow, {
137
- label: "Title",
138
- children: /* @__PURE__ */ jsx(TextField, {
139
- value: title,
140
- onChange: (v) => updateAttributes({ title: v }),
141
- className: "flex-1"
142
- })
143
- }),
144
- /* @__PURE__ */ jsxs("div", {
145
- className: "space-y-1.5",
146
- children: [
147
- /* @__PURE__ */ jsx("span", {
148
- className: "font-medium text-muted-foreground",
149
- children: "Equations (use x and your slider names)"
150
- }),
151
- equations.map((eq, i) => /* @__PURE__ */ jsxs("div", {
152
- className: "flex items-center gap-2",
153
- children: [
154
- /* @__PURE__ */ jsx("span", {
155
- className: "font-mono text-muted-foreground",
156
- children: "y ="
157
- }),
158
- /* @__PURE__ */ jsx(TextField, {
159
- value: eq,
160
- mono: true,
161
- placeholder: "a*sin(b*x) + c",
162
- onChange: (v) => setEq(i, v),
163
- className: "flex-1"
164
- }),
165
- equations.length > 1 && /* @__PURE__ */ jsx(SmallButton, {
166
- tone: "danger",
167
- onClick: () => updateAttributes({ equations: equations.filter((_, j) => j !== i) }),
168
- children: "βœ•"
169
- })
170
- ]
171
- }, i)),
172
- /* @__PURE__ */ jsx(SmallButton, {
173
- onClick: () => updateAttributes({ equations: [...equations, ""] }),
174
- children: "+ equation"
175
- })
176
- ]
177
- }),
178
- /* @__PURE__ */ jsxs("div", {
179
- className: "space-y-1.5",
180
- children: [
181
- /* @__PURE__ */ jsx("span", {
182
- className: "font-medium text-muted-foreground",
183
- children: "Sliders (learner-draggable)"
184
- }),
185
- params.map((p, i) => /* @__PURE__ */ jsxs("div", {
186
- className: "flex flex-wrap items-center gap-1.5",
187
- children: [
188
- /* @__PURE__ */ jsx(TextField, {
189
- value: p.name,
190
- mono: true,
191
- placeholder: "a",
192
- onChange: (v) => setParam(i, { name: v }),
193
- className: "w-14"
194
- }),
195
- /* @__PURE__ */ jsx("span", {
196
- className: "text-muted-foreground",
197
- children: "from"
198
- }),
199
- /* @__PURE__ */ jsx(NumField, {
200
- value: p.min,
201
- onChange: (v) => setParam(i, { min: v })
202
- }),
203
- /* @__PURE__ */ jsx("span", {
204
- className: "text-muted-foreground",
205
- children: "to"
206
- }),
207
- /* @__PURE__ */ jsx(NumField, {
208
- value: p.max,
209
- onChange: (v) => setParam(i, { max: v })
210
- }),
211
- /* @__PURE__ */ jsx("span", {
212
- className: "text-muted-foreground",
213
- children: "="
214
- }),
215
- /* @__PURE__ */ jsx(NumField, {
216
- value: p.value,
217
- onChange: (v) => setParam(i, { value: v })
218
- }),
219
- /* @__PURE__ */ jsx(SmallButton, {
220
- tone: "danger",
221
- onClick: () => updateAttributes({ params: params.filter((_, j) => j !== i) }),
222
- children: "βœ•"
223
- })
224
- ]
225
- }, i)),
226
- /* @__PURE__ */ jsx(SmallButton, {
227
- onClick: () => updateAttributes({ params: [...params, {
228
- name: nextParamName(params),
229
- min: 0,
230
- max: 3,
231
- value: 1,
232
- step: .1
233
- }] }),
234
- children: "+ slider"
235
- })
236
- ]
237
- }),
238
- /* @__PURE__ */ jsxs(ConfigRow, {
239
- label: "x window",
240
- children: [
241
- /* @__PURE__ */ jsx(NumField, {
242
- value: xRange[0],
243
- onChange: (v) => updateAttributes({ xRange: [v, xRange[1]] })
244
- }),
245
- /* @__PURE__ */ jsx("span", {
246
- className: "text-muted-foreground",
247
- children: "to"
248
- }),
249
- /* @__PURE__ */ jsx(NumField, {
250
- value: xRange[1],
251
- onChange: (v) => updateAttributes({ xRange: [xRange[0], v] })
252
- })
253
- ]
254
- }),
255
- /* @__PURE__ */ jsxs(ConfigRow, {
256
- label: "y scale",
257
- children: [/* @__PURE__ */ jsx(ChipToggle, {
258
- active: yScale !== "log",
259
- onClick: () => updateAttributes({ yScale: "linear" }),
260
- children: "linear"
261
- }), /* @__PURE__ */ jsx(ChipToggle, {
262
- active: yScale === "log",
263
- onClick: () => updateAttributes({ yScale: "log" }),
264
- children: "log"
265
- })]
266
- })
267
- ] }), widget] });
268
- }
269
- });
270
- const DerivativeExplorerBlock = defineBlock({
271
- key: "derivative-explorer",
272
- void: true,
273
- label: "Derivative explorer",
274
- description: "Drag a point; the secant becomes the exact tangent. Shows fβ€²(x).",
275
- category: "interactive",
276
- schema: z.object({
277
- equation: z.string().optional(),
278
- xRange: z.tuple([z.number(), z.number()]).optional(),
279
- startX: z.number().optional(),
280
- title: z.string().optional()
281
- }),
282
- Component: ({ attributes, mode, updateAttributes }) => {
283
- const equation = typeof attributes.equation === "string" && attributes.equation.trim() ? attributes.equation : "0.15*x^3 - x";
284
- const xRange = attributes.xRange ?? [-4, 4];
285
- const title = attributes.title ?? "The derivative is a slope";
286
- const widget = /* @__PURE__ */ jsx(DerivativeExplorer, {
287
- equation,
288
- xRange,
289
- startX: attributes.startX,
290
- title
291
- });
292
- if (mode !== "editing" || !updateAttributes) return widget;
293
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
294
- /* @__PURE__ */ jsx(ConfigRow, {
295
- label: "Title",
296
- children: /* @__PURE__ */ jsx(TextField, {
297
- value: title,
298
- onChange: (v) => updateAttributes({ title: v }),
299
- className: "flex-1"
300
- })
301
- }),
302
- /* @__PURE__ */ jsx(ConfigRow, {
303
- label: "f(x) =",
304
- children: /* @__PURE__ */ jsx(TextField, {
305
- value: equation,
306
- mono: true,
307
- placeholder: "0.15*x^3 - x",
308
- onChange: (v) => updateAttributes({ equation: v }),
309
- className: "flex-1"
310
- })
311
- }),
312
- /* @__PURE__ */ jsxs(ConfigRow, {
313
- label: "x window",
314
- children: [
315
- /* @__PURE__ */ jsx(NumField, {
316
- value: xRange[0],
317
- onChange: (v) => updateAttributes({ xRange: [v, xRange[1]] })
318
- }),
319
- /* @__PURE__ */ jsx("span", {
320
- className: "text-muted-foreground",
321
- children: "to"
322
- }),
323
- /* @__PURE__ */ jsx(NumField, {
324
- value: xRange[1],
325
- onChange: (v) => updateAttributes({ xRange: [xRange[0], v] })
326
- })
327
- ]
328
- })
329
- ] }), widget] });
330
- }
331
- });
332
- const GradientDescentBlock = defineBlock({
333
- key: "gradient-descent",
334
- void: true,
335
- label: "Gradient descent",
336
- description: "Walk downhill on a loss surface f(x,y) using exact βˆ‚f/βˆ‚x, βˆ‚f/βˆ‚y, the calculus behind ML.",
337
- category: "interactive",
338
- schema: z.object({
339
- equation: z.string().optional(),
340
- range: z.tuple([z.number(), z.number()]).optional(),
341
- learningRate: z.number().optional(),
342
- title: z.string().optional()
343
- }),
344
- Component: ({ attributes, mode, updateAttributes }) => {
345
- const equation = typeof attributes.equation === "string" && attributes.equation.trim() ? attributes.equation : "x^2 + 2*y^2";
346
- const range = attributes.range ?? [-3, 3];
347
- const title = attributes.title ?? "Gradient descent";
348
- const widget = /* @__PURE__ */ jsx(GradientDescent, {
349
- equation,
350
- range,
351
- learningRate: attributes.learningRate,
352
- title
353
- });
354
- if (mode !== "editing" || !updateAttributes) return widget;
355
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
356
- /* @__PURE__ */ jsx(ConfigRow, {
357
- label: "Title",
358
- children: /* @__PURE__ */ jsx(TextField, {
359
- value: title,
360
- onChange: (v) => updateAttributes({ title: v }),
361
- className: "flex-1"
362
- })
363
- }),
364
- /* @__PURE__ */ jsx(ConfigRow, {
365
- label: "f(x,y) =",
366
- children: /* @__PURE__ */ jsx(TextField, {
367
- value: equation,
368
- mono: true,
369
- placeholder: "x^2 + 2*y^2",
370
- onChange: (v) => updateAttributes({ equation: v }),
371
- className: "flex-1"
372
- })
373
- }),
374
- /* @__PURE__ */ jsxs(ConfigRow, {
375
- label: "region",
376
- children: [
377
- /* @__PURE__ */ jsx(NumField, {
378
- value: range[0],
379
- onChange: (v) => updateAttributes({ range: [v, range[1]] })
380
- }),
381
- /* @__PURE__ */ jsx("span", {
382
- className: "text-muted-foreground",
383
- children: "to"
384
- }),
385
- /* @__PURE__ */ jsx(NumField, {
386
- value: range[1],
387
- onChange: (v) => updateAttributes({ range: [range[0], v] })
388
- })
389
- ]
390
- })
391
- ] }), widget] });
392
- }
393
- });
394
- const IntegralExplorerBlock = defineBlock({
395
- key: "integral-explorer",
396
- void: true,
397
- label: "Integral explorer",
398
- description: "Area under a curve via Riemann rectangles, drag endpoints, add n, converge.",
399
- category: "interactive",
400
- schema: z.object({
401
- equation: z.string().optional(),
402
- xRange: z.tuple([z.number(), z.number()]).optional(),
403
- a: z.number().optional(),
404
- b: z.number().optional(),
405
- n: z.number().optional(),
406
- title: z.string().optional()
407
- }),
408
- Component: ({ attributes, mode, updateAttributes }) => {
409
- const equation = typeof attributes.equation === "string" && attributes.equation.trim() ? attributes.equation : "0.4*x^2 + 0.5";
410
- const xRange = attributes.xRange ?? [-1, 4];
411
- const title = attributes.title ?? "The integral is an area";
412
- const widget = /* @__PURE__ */ jsx(IntegralExplorer, {
413
- equation,
414
- xRange,
415
- a: attributes.a,
416
- b: attributes.b,
417
- n: attributes.n,
418
- title
419
- });
420
- if (mode !== "editing" || !updateAttributes) return widget;
421
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
422
- /* @__PURE__ */ jsx(ConfigRow, {
423
- label: "Title",
424
- children: /* @__PURE__ */ jsx(TextField, {
425
- value: title,
426
- onChange: (v) => updateAttributes({ title: v }),
427
- className: "flex-1"
428
- })
429
- }),
430
- /* @__PURE__ */ jsx(ConfigRow, {
431
- label: "f(x) =",
432
- children: /* @__PURE__ */ jsx(TextField, {
433
- value: equation,
434
- mono: true,
435
- placeholder: "0.4*x^2 + 0.5",
436
- onChange: (v) => updateAttributes({ equation: v }),
437
- className: "flex-1"
438
- })
439
- }),
440
- /* @__PURE__ */ jsxs(ConfigRow, {
441
- label: "x window",
442
- children: [
443
- /* @__PURE__ */ jsx(NumField, {
444
- value: xRange[0],
445
- onChange: (v) => updateAttributes({ xRange: [v, xRange[1]] })
446
- }),
447
- /* @__PURE__ */ jsx("span", {
448
- className: "text-muted-foreground",
449
- children: "to"
450
- }),
451
- /* @__PURE__ */ jsx(NumField, {
452
- value: xRange[1],
453
- onChange: (v) => updateAttributes({ xRange: [xRange[0], v] })
454
- })
455
- ]
456
- })
457
- ] }), widget] });
458
- }
459
- });
460
- const LimitExplorerBlock = defineBlock({
461
- key: "limit-explorer",
462
- void: true,
463
- label: "Limit explorer",
464
- description: "Approach x β†’ c from both sides; see the limit even where f(c) is a hole.",
465
- category: "interactive",
466
- schema: z.object({
467
- equation: z.string().optional(),
468
- xRange: z.tuple([z.number(), z.number()]).optional(),
469
- c: z.number().optional(),
470
- title: z.string().optional()
471
- }),
472
- Component: ({ attributes, mode, updateAttributes }) => {
473
- const equation = typeof attributes.equation === "string" && attributes.equation.trim() ? attributes.equation : "(x^2 - 1)/(x - 1)";
474
- const xRange = attributes.xRange ?? [-1, 3];
475
- const title = attributes.title ?? "Approaching a limit";
476
- const widget = /* @__PURE__ */ jsx(LimitExplorer, {
477
- equation,
478
- xRange,
479
- c: attributes.c,
480
- title
481
- });
482
- if (mode !== "editing" || !updateAttributes) return widget;
483
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
484
- /* @__PURE__ */ jsx(ConfigRow, {
485
- label: "Title",
486
- children: /* @__PURE__ */ jsx(TextField, {
487
- value: title,
488
- onChange: (v) => updateAttributes({ title: v }),
489
- className: "flex-1"
490
- })
491
- }),
492
- /* @__PURE__ */ jsx(ConfigRow, {
493
- label: "f(x) =",
494
- children: /* @__PURE__ */ jsx(TextField, {
495
- value: equation,
496
- mono: true,
497
- placeholder: "(x^2 - 1)/(x - 1)",
498
- onChange: (v) => updateAttributes({ equation: v }),
499
- className: "flex-1"
500
- })
501
- }),
502
- /* @__PURE__ */ jsxs(ConfigRow, {
503
- label: "x window",
504
- children: [
505
- /* @__PURE__ */ jsx(NumField, {
506
- value: xRange[0],
507
- onChange: (v) => updateAttributes({ xRange: [v, xRange[1]] })
508
- }),
509
- /* @__PURE__ */ jsx("span", {
510
- className: "text-muted-foreground",
511
- children: "to"
512
- }),
513
- /* @__PURE__ */ jsx(NumField, {
514
- value: xRange[1],
515
- onChange: (v) => updateAttributes({ xRange: [xRange[0], v] })
516
- })
517
- ]
518
- })
519
- ] }), widget] });
520
- }
521
- });
522
- const derivationStepSchema = z.union([z.string(), z.object({
523
- tex: z.string(),
524
- note: z.string().optional()
525
- })]);
526
- const asSteps = (raw) => {
527
- if (!Array.isArray(raw)) return [{ tex: "a^2 + b^2 = c^2" }];
528
- const out = raw.map((s) => typeof s === "string" ? { tex: s } : s).filter((s) => !!s && typeof s.tex === "string");
529
- return out.length ? out : [{ tex: "a^2 + b^2 = c^2" }];
530
- };
531
- const DerivationBlock = defineBlock({
532
- key: "derivation",
533
- void: true,
534
- label: "Derivation (steps)",
535
- description: "A step-by-step equation derivation in LaTeX, revealed one line at a time.",
536
- category: "interactive",
537
- schema: z.object({
538
- steps: z.array(derivationStepSchema).optional(),
539
- title: z.string().optional()
540
- }),
541
- Component: ({ attributes, mode, updateAttributes }) => {
542
- const steps = asSteps(attributes.steps);
543
- const title = attributes.title ?? "Derivation";
544
- const widget = /* @__PURE__ */ jsx(Derivation, {
545
- steps,
546
- title
547
- });
548
- if (mode !== "editing" || !updateAttributes) return widget;
549
- const setStep = (i, patch) => updateAttributes({ steps: steps.map((s, j) => j === i ? {
550
- ...s,
551
- ...patch
552
- } : s) });
553
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [/* @__PURE__ */ jsx(ConfigRow, {
554
- label: "Title",
555
- children: /* @__PURE__ */ jsx(TextField, {
556
- value: title,
557
- onChange: (v) => updateAttributes({ title: v }),
558
- className: "flex-1"
559
- })
560
- }), /* @__PURE__ */ jsxs("div", {
561
- className: "space-y-1.5",
562
- children: [
563
- /* @__PURE__ */ jsx("span", {
564
- className: "font-medium text-muted-foreground",
565
- children: "Steps (LaTeX + optional note)"
566
- }),
567
- steps.map((s, i) => /* @__PURE__ */ jsxs("div", {
568
- className: "flex flex-wrap items-center gap-1.5",
569
- children: [
570
- /* @__PURE__ */ jsx("span", {
571
- className: "font-mono text-muted-foreground",
572
- children: i + 1
573
- }),
574
- /* @__PURE__ */ jsx(TextField, {
575
- value: s.tex,
576
- mono: true,
577
- placeholder: "\\\\frac{y-y_P}{x-x_P} = ...",
578
- onChange: (v) => setStep(i, { tex: v }),
579
- className: "min-w-[12rem] flex-1"
580
- }),
581
- /* @__PURE__ */ jsx(TextField, {
582
- value: s.note ?? "",
583
- placeholder: "why…",
584
- onChange: (v) => setStep(i, { note: v }),
585
- className: "w-32"
586
- }),
587
- steps.length > 1 && /* @__PURE__ */ jsx(SmallButton, {
588
- tone: "danger",
589
- onClick: () => updateAttributes({ steps: steps.filter((_, j) => j !== i) }),
590
- children: "βœ•"
591
- })
592
- ]
593
- }, i)),
594
- /* @__PURE__ */ jsx(SmallButton, {
595
- onClick: () => updateAttributes({ steps: [...steps, { tex: "" }] }),
596
- children: "+ step"
597
- })
598
- ]
599
- })] }), widget] });
600
- }
601
- });
602
- function nextParamName(params) {
603
- const used = new Set(params.map((p) => p.name));
604
- for (const n of [
605
- "a",
606
- "b",
607
- "c",
608
- "d",
609
- "k",
610
- "m",
611
- "n",
612
- "p",
613
- "q"
614
- ]) if (!used.has(n)) return n;
615
- return `p${params.length + 1}`;
616
- }
617
- /** System-of-equations render: two clue lines (slope-intercept) from scalar
618
- * props, so the editor form + MDX stay simple number fields. */
619
- function LinearSystemView({ m1 = 1, b1 = 1, m2 = -1, b2 = 5 }) {
620
- return /* @__PURE__ */ jsx(LinearSystemLab, { lines: [{
621
- m: m1,
622
- b: b1,
623
- label: "clue A"
624
- }, {
625
- m: m2,
626
- b: b2,
627
- label: "clue B"
628
- }] });
629
- }
630
- const LinearSystemBlock = defineBlock({
631
- key: "linear-system",
632
- tag: "LinearSystem",
633
- void: true,
634
- label: "System of equations (x & y)",
635
- description: "Two clue lines on a grid, drag to the crossing point that obeys both. The advanced \"find x and y\" lab.",
636
- category: "interactive",
637
- schema: z.object({
638
- m1: z.number().default(1),
639
- b1: z.number().default(1),
640
- m2: z.number().default(-1),
641
- b2: z.number().default(5)
642
- }),
643
- Component: ({ attributes, mode, updateAttributes }) => {
644
- const { m1 = 1, b1 = 1, m2 = -1, b2 = 5 } = attributes;
645
- const widget = /* @__PURE__ */ jsx(LinearSystemView, {
646
- m1,
647
- b1,
648
- m2,
649
- b2
650
- });
651
- if (mode !== "editing" || !updateAttributes) return widget;
652
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [/* @__PURE__ */ jsxs(ConfigRow, {
653
- label: "clue A: y =",
654
- children: [
655
- /* @__PURE__ */ jsx(NumField, {
656
- value: m1,
657
- onChange: (v) => updateAttributes({ m1: v })
658
- }),
659
- /* @__PURE__ */ jsx("span", {
660
- className: "text-muted-foreground",
661
- children: "x +"
662
- }),
663
- /* @__PURE__ */ jsx(NumField, {
664
- value: b1,
665
- onChange: (v) => updateAttributes({ b1: v })
666
- })
667
- ]
668
- }), /* @__PURE__ */ jsxs(ConfigRow, {
669
- label: "clue B: y =",
670
- children: [
671
- /* @__PURE__ */ jsx(NumField, {
672
- value: m2,
673
- onChange: (v) => updateAttributes({ m2: v })
674
- }),
675
- /* @__PURE__ */ jsx("span", {
676
- className: "text-muted-foreground",
677
- children: "x +"
678
- }),
679
- /* @__PURE__ */ jsx(NumField, {
680
- value: b2,
681
- onChange: (v) => updateAttributes({ b2: v })
682
- })
683
- ]
684
- })] }), widget] });
685
- }
686
- });
687
- const NumberLineBlock = defineBlock({
688
- key: "number-line",
689
- tag: "NumberLine",
690
- void: true,
691
- label: "Number line",
692
- description: "A draggable marker on a number line (incl. below zero), optionally pose a target to land on.",
693
- category: "interactive",
694
- schema: z.object({
695
- min: z.number().default(-8),
696
- max: z.number().default(8),
697
- start: z.number().default(0),
698
- target: z.number().optional()
699
- }),
700
- Component: ({ attributes, mode, updateAttributes }) => {
701
- const { min = -8, max = 8, start = 0, target } = attributes;
702
- const widget = /* @__PURE__ */ jsx(NumberLineLab, {
703
- min,
704
- max,
705
- start,
706
- target
707
- });
708
- if (mode !== "editing" || !updateAttributes) return widget;
709
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
710
- /* @__PURE__ */ jsx(ConfigRow, {
711
- label: "from",
712
- children: /* @__PURE__ */ jsx(NumField, {
713
- value: min,
714
- onChange: (v) => updateAttributes({ min: v })
715
- })
716
- }),
717
- /* @__PURE__ */ jsx(ConfigRow, {
718
- label: "to",
719
- children: /* @__PURE__ */ jsx(NumField, {
720
- value: max,
721
- onChange: (v) => updateAttributes({ max: v })
722
- })
723
- }),
724
- /* @__PURE__ */ jsx(ConfigRow, {
725
- label: "start",
726
- children: /* @__PURE__ */ jsx(NumField, {
727
- value: start,
728
- onChange: (v) => updateAttributes({ start: v })
729
- })
730
- }),
731
- /* @__PURE__ */ jsx(ConfigRow, {
732
- label: "target",
733
- children: /* @__PURE__ */ jsx(NumField, {
734
- value: target ?? 0,
735
- onChange: (v) => updateAttributes({ target: v })
736
- })
737
- })
738
- ] }), widget] });
739
- }
740
- });
741
- const MysteryBucketBlock = defineBlock({
742
- key: "mystery-bucket",
743
- tag: "MysteryBucket",
744
- void: true,
745
- label: "Mystery bucket (weigh the unknown)",
746
- description: "Essentials opener, add unit weights until a balance is level to discover the hidden weight. No symbols.",
747
- category: "interactive",
748
- schema: z.object({
749
- bucketWeight: z.number().default(5),
750
- bucketCount: z.number().default(1),
751
- maxWeights: z.number().default(12),
752
- start: z.number().default(0)
753
- }),
754
- Component: ({ attributes, mode, updateAttributes }) => {
755
- const { bucketWeight = 5, bucketCount = 1, maxWeights = 12, start = 0 } = attributes;
756
- const widget = /* @__PURE__ */ jsx(MysteryBucketLab, {
757
- bucketWeight,
758
- bucketCount,
759
- maxWeights,
760
- start
761
- });
762
- if (mode !== "editing" || !updateAttributes) return widget;
763
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
764
- /* @__PURE__ */ jsx(ConfigRow, {
765
- label: "weight each",
766
- children: /* @__PURE__ */ jsx(NumField, {
767
- value: bucketWeight,
768
- onChange: (v) => updateAttributes({ bucketWeight: v })
769
- })
770
- }),
771
- /* @__PURE__ */ jsx(ConfigRow, {
772
- label: "buckets",
773
- children: /* @__PURE__ */ jsx(NumField, {
774
- value: bucketCount,
775
- onChange: (v) => updateAttributes({ bucketCount: v })
776
- })
777
- }),
778
- /* @__PURE__ */ jsx(ConfigRow, {
779
- label: "max weights",
780
- children: /* @__PURE__ */ jsx(NumField, {
781
- value: maxWeights,
782
- onChange: (v) => updateAttributes({ maxWeights: v })
783
- })
784
- }),
785
- /* @__PURE__ */ jsx(ConfigRow, {
786
- label: "start at",
787
- children: /* @__PURE__ */ jsx(NumField, {
788
- value: start,
789
- onChange: (v) => updateAttributes({ start: v })
790
- })
791
- })
792
- ] }), widget] });
793
- }
794
- });
795
- const BalanceAlgebraBlock = defineBlock({
796
- key: "balance-algebra",
797
- tag: "BalanceAlgebra",
798
- void: true,
799
- label: "Balance scale (algebra)",
800
- description: "Drag x to balance aΒ·x + b = c, learners solve a linear equation by balancing the scale.",
801
- category: "interactive",
802
- schema: z.object({
803
- coef: z.number().default(2),
804
- addend: z.number().default(1),
805
- rhs: z.number().default(7),
806
- answer: z.number().default(3),
807
- controlId: z.string().optional()
808
- }),
809
- Component: ({ attributes, mode, updateAttributes }) => {
810
- const { coef = 2, addend = 1, rhs = 7, answer = 3 } = attributes;
811
- const widget = /* @__PURE__ */ jsx(BalanceAlgebraLab, {
812
- coef,
813
- addend,
814
- rhs,
815
- answer,
816
- controlId: attributes.controlId
817
- });
818
- if (mode !== "editing" || !updateAttributes) return widget;
819
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
820
- /* @__PURE__ */ jsx(ConfigRow, {
821
- label: "coefficient a",
822
- children: /* @__PURE__ */ jsx(NumField, {
823
- value: coef,
824
- onChange: (v) => updateAttributes({ coef: v })
825
- })
826
- }),
827
- /* @__PURE__ */ jsx(ConfigRow, {
828
- label: "addend b",
829
- children: /* @__PURE__ */ jsx(NumField, {
830
- value: addend,
831
- onChange: (v) => updateAttributes({ addend: v })
832
- })
833
- }),
834
- /* @__PURE__ */ jsx(ConfigRow, {
835
- label: "right side c",
836
- children: /* @__PURE__ */ jsx(NumField, {
837
- value: rhs,
838
- onChange: (v) => updateAttributes({ rhs: v })
839
- })
840
- }),
841
- /* @__PURE__ */ jsx(ConfigRow, {
842
- label: "answer x",
843
- children: /* @__PURE__ */ jsx(NumField, {
844
- value: answer,
845
- onChange: (v) => updateAttributes({ answer: v })
846
- })
847
- })
848
- ] }), widget] });
849
- }
850
- });
851
- const VertexParabolaBlock = defineBlock({
852
- key: "vertex-parabola",
853
- tag: "VertexParabola",
854
- void: true,
855
- label: "Parabola (drag the vertex)",
856
- description: "Drag the vertex of y = a(xβˆ’h)Β² + k; the curve + equation update live.",
857
- category: "interactive",
858
- schema: z.object({ a: z.number().default(1) }),
859
- Component: ({ attributes, mode, updateAttributes }) => {
860
- const { a = 1 } = attributes;
861
- const widget = /* @__PURE__ */ jsx(VertexParabolaLab, { a });
862
- if (mode !== "editing" || !updateAttributes) return widget;
863
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(ConfigPanel, { children: /* @__PURE__ */ jsx(ConfigRow, {
864
- label: "stretch a",
865
- children: /* @__PURE__ */ jsx(NumField, {
866
- value: a,
867
- onChange: (v) => updateAttributes({ a: v })
868
- })
869
- }) }), widget] });
870
- }
871
- });
872
- const AreaModelBlock = defineBlock({
873
- key: "area-model",
874
- tag: "AreaModel",
875
- void: true,
876
- label: "Area model (algebra tiles)",
877
- description: "(x+a)(x+b) as a partitioned rectangle, EXPAND (drag x) or FACTOR (find a, b).",
878
- category: "interactive",
879
- schema: z.object({
880
- a: z.number().default(3),
881
- b: z.number().default(2),
882
- mode: z.enum(["expand", "factor"]).default("expand"),
883
- controlId: z.string().optional()
884
- }),
885
- Component: ({ attributes, mode, updateAttributes }) => {
886
- const { a = 3, b = 2, mode: m = "expand" } = attributes;
887
- const widget = /* @__PURE__ */ jsx(AreaModelLab, {
888
- a,
889
- b,
890
- mode: m,
891
- controlId: attributes.controlId
892
- });
893
- if (mode !== "editing" || !updateAttributes) return widget;
894
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
895
- /* @__PURE__ */ jsx(ConfigRow, {
896
- label: "a in (x+a)",
897
- children: /* @__PURE__ */ jsx(NumField, {
898
- value: a,
899
- onChange: (v) => updateAttributes({ a: v })
900
- })
901
- }),
902
- /* @__PURE__ */ jsx(ConfigRow, {
903
- label: "b in (x+b)",
904
- children: /* @__PURE__ */ jsx(NumField, {
905
- value: b,
906
- onChange: (v) => updateAttributes({ b: v })
907
- })
908
- }),
909
- /* @__PURE__ */ jsxs(ConfigRow, {
910
- label: "mode",
911
- children: [/* @__PURE__ */ jsx(ChipToggle, {
912
- active: m !== "factor",
913
- onClick: () => updateAttributes({ mode: "expand" }),
914
- children: "expand"
915
- }), /* @__PURE__ */ jsx(ChipToggle, {
916
- active: m === "factor",
917
- onClick: () => updateAttributes({ mode: "factor" }),
918
- children: "factor"
919
- })]
920
- })
921
- ] }), widget] });
922
- }
923
- });
924
- const GrowingPatternBlock = defineBlock({
925
- key: "growing-pattern",
926
- tag: "GrowingPattern",
927
- void: true,
928
- label: "Pattern β†’ formula",
929
- description: "A figure grows by aΒ·n + b; learners find the rule (hidden predict row forces extrapolation).",
930
- category: "interactive",
931
- schema: z.object({
932
- a: z.number().default(2),
933
- b: z.number().default(3),
934
- steps: z.number().default(4),
935
- controlId: z.string().optional()
936
- }),
937
- Component: ({ attributes, mode, updateAttributes }) => {
938
- const { a = 2, b = 3, steps = 4 } = attributes;
939
- const widget = /* @__PURE__ */ jsx(GrowingPatternLab, {
940
- a,
941
- b,
942
- steps,
943
- controlId: attributes.controlId
944
- });
945
- if (mode !== "editing" || !updateAttributes) return widget;
946
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
947
- /* @__PURE__ */ jsx(ConfigRow, {
948
- label: "per step a",
949
- children: /* @__PURE__ */ jsx(NumField, {
950
- value: a,
951
- onChange: (v) => updateAttributes({ a: v })
952
- })
953
- }),
954
- /* @__PURE__ */ jsx(ConfigRow, {
955
- label: "constant b",
956
- children: /* @__PURE__ */ jsx(NumField, {
957
- value: b,
958
- onChange: (v) => updateAttributes({ b: v })
959
- })
960
- }),
961
- /* @__PURE__ */ jsx(ConfigRow, {
962
- label: "figures shown",
963
- children: /* @__PURE__ */ jsx(NumField, {
964
- value: steps,
965
- onChange: (v) => updateAttributes({ steps: v })
966
- })
967
- })
968
- ] }), widget] });
969
- }
970
- });
971
- const answerSchema = z.union([z.object({
972
- kind: z.literal("number"),
973
- value: z.number(),
974
- tol: z.number().optional()
975
- }), z.object({
976
- kind: z.literal("expression"),
977
- value: z.string()
978
- })]);
979
- const askSchema = z.object({
980
- prompt: z.string(),
981
- answer: answerSchema,
982
- placeholder: z.string().optional()
983
- });
984
- const deriveSchema = z.object({
985
- kind: z.enum([
986
- "intersections",
987
- "roots",
988
- "tangent",
989
- "normal",
990
- "area"
991
- ]),
992
- of: z.union([z.number(), z.tuple([z.number(), z.number()])]).optional(),
993
- at: z.union([z.number(), z.string()]).optional(),
994
- between: z.tuple([z.number(), z.number()]).optional(),
995
- from: z.union([z.number(), z.string()]).optional(),
996
- to: z.union([z.number(), z.string()]).optional(),
997
- label: z.string().optional()
998
- });
999
- const DERIVE_KINDS = [
1000
- "intersections",
1001
- "roots",
1002
- "tangent",
1003
- "normal",
1004
- "area"
1005
- ];
1006
- /** Shared "ask + check" authoring row, used by the engine and representation blocks. */
1007
- function AskEditor({ ask, onChange }) {
1008
- if (!ask) return /* @__PURE__ */ jsx(SmallButton, {
1009
- onClick: () => onChange({
1010
- prompt: "",
1011
- answer: {
1012
- kind: "number",
1013
- value: 0
1014
- }
1015
- }),
1016
- children: "+ question (checked answer)"
1017
- });
1018
- const isNum = ask.answer.kind === "number";
1019
- const setAns = (patch) => onChange({
1020
- ...ask,
1021
- answer: {
1022
- ...ask.answer,
1023
- ...patch
1024
- }
1025
- });
1026
- return /* @__PURE__ */ jsxs("div", {
1027
- className: "space-y-1.5",
1028
- children: [
1029
- /* @__PURE__ */ jsx("span", {
1030
- className: "font-medium text-muted-foreground",
1031
- children: "Question (graded)"
1032
- }),
1033
- /* @__PURE__ */ jsx(ConfigRow, {
1034
- label: "Prompt",
1035
- children: /* @__PURE__ */ jsx(TextField, {
1036
- value: ask.prompt,
1037
- onChange: (v) => onChange({
1038
- ...ask,
1039
- prompt: v
1040
- }),
1041
- className: "flex-1"
1042
- })
1043
- }),
1044
- /* @__PURE__ */ jsxs(ConfigRow, {
1045
- label: "Answer is",
1046
- children: [/* @__PURE__ */ jsx(ChipToggle, {
1047
- active: isNum,
1048
- onClick: () => setAns({
1049
- kind: "number",
1050
- value: typeof ask.answer.value === "number" ? ask.answer.value : 0
1051
- }),
1052
- children: "a number"
1053
- }), /* @__PURE__ */ jsx(ChipToggle, {
1054
- active: !isNum,
1055
- onClick: () => setAns({
1056
- kind: "expression",
1057
- value: String(ask.answer.value ?? "")
1058
- }),
1059
- children: "an expression"
1060
- })]
1061
- }),
1062
- /* @__PURE__ */ jsxs(ConfigRow, {
1063
- label: "Correct value",
1064
- children: [
1065
- isNum ? /* @__PURE__ */ jsx(NumField, {
1066
- value: Number(ask.answer.value) || 0,
1067
- onChange: (v) => setAns({ value: v })
1068
- }) : /* @__PURE__ */ jsx(TextField, {
1069
- value: String(ask.answer.value ?? ""),
1070
- mono: true,
1071
- placeholder: "6*x - 9",
1072
- onChange: (v) => setAns({ value: v }),
1073
- className: "flex-1"
1074
- }),
1075
- isNum && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
1076
- className: "text-muted-foreground",
1077
- children: "Β± tol"
1078
- }), /* @__PURE__ */ jsx(NumField, {
1079
- value: ask.answer.tol ?? .01,
1080
- onChange: (v) => setAns({ tol: v })
1081
- })] }),
1082
- /* @__PURE__ */ jsx(SmallButton, {
1083
- tone: "danger",
1084
- onClick: () => onChange(void 0),
1085
- children: "remove"
1086
- })
1087
- ]
1088
- })
1089
- ]
1090
- });
1091
- }
1092
- const labChoiceSchema = z.object({
1093
- value: z.string(),
1094
- label: z.string()
1095
- });
1096
- const labAskSchema = z.object({
1097
- prompt: z.string(),
1098
- placeholder: z.string().optional(),
1099
- answer: answerSchema.optional(),
1100
- choices: z.array(labChoiceSchema).optional(),
1101
- correct: z.string().optional(),
1102
- explain: z.string().optional()
1103
- });
1104
- const CHOICE_LETTERS = [
1105
- "a",
1106
- "b",
1107
- "c",
1108
- "d",
1109
- "e",
1110
- "f"
1111
- ];
1112
- /** Author a graded question as a typed answer (number/expression) OR multiple choice. */
1113
- function LabAskEditor({ ask, onChange }) {
1114
- if (!ask) return /* @__PURE__ */ jsxs("div", {
1115
- className: "flex flex-wrap gap-1.5",
1116
- children: [/* @__PURE__ */ jsx(SmallButton, {
1117
- onClick: () => onChange({
1118
- prompt: "",
1119
- answer: {
1120
- kind: "number",
1121
- value: 0
1122
- }
1123
- }),
1124
- children: "+ typed question"
1125
- }), /* @__PURE__ */ jsx(SmallButton, {
1126
- onClick: () => onChange({
1127
- prompt: "",
1128
- choices: [{
1129
- value: "a",
1130
- label: ""
1131
- }, {
1132
- value: "b",
1133
- label: ""
1134
- }],
1135
- correct: "a"
1136
- }),
1137
- children: "+ multiple choice"
1138
- })]
1139
- });
1140
- const isMcq = Array.isArray(ask.choices);
1141
- const isNum = ask.answer?.kind !== "expression";
1142
- const setAns = (patch) => onChange({
1143
- ...ask,
1144
- answer: {
1145
- ...ask.answer ?? {
1146
- kind: "number",
1147
- value: 0
1148
- },
1149
- ...patch
1150
- }
1151
- });
1152
- const choices = ask.choices ?? [];
1153
- const setChoice = (i, patch) => onChange({
1154
- ...ask,
1155
- choices: choices.map((c, j) => j === i ? {
1156
- ...c,
1157
- ...patch
1158
- } : c)
1159
- });
1160
- return /* @__PURE__ */ jsxs("div", {
1161
- className: "space-y-1.5",
1162
- children: [
1163
- /* @__PURE__ */ jsxs("div", {
1164
- className: "flex items-center justify-between",
1165
- children: [/* @__PURE__ */ jsx("span", {
1166
- className: "font-medium text-muted-foreground",
1167
- children: "Question (graded)"
1168
- }), /* @__PURE__ */ jsxs("div", {
1169
- className: "flex gap-1.5",
1170
- children: [
1171
- /* @__PURE__ */ jsx(ChipToggle, {
1172
- active: !isMcq,
1173
- onClick: () => onChange({
1174
- prompt: ask.prompt,
1175
- placeholder: ask.placeholder,
1176
- answer: ask.answer ?? {
1177
- kind: "number",
1178
- value: 0
1179
- }
1180
- }),
1181
- children: "typed"
1182
- }),
1183
- /* @__PURE__ */ jsx(ChipToggle, {
1184
- active: isMcq,
1185
- onClick: () => onChange({
1186
- prompt: ask.prompt,
1187
- choices: choices.length ? choices : [{
1188
- value: "a",
1189
- label: ""
1190
- }, {
1191
- value: "b",
1192
- label: ""
1193
- }],
1194
- correct: ask.correct ?? "a"
1195
- }),
1196
- children: "multiple choice"
1197
- }),
1198
- /* @__PURE__ */ jsx(SmallButton, {
1199
- tone: "danger",
1200
- onClick: () => onChange(void 0),
1201
- children: "remove"
1202
- })
1203
- ]
1204
- })]
1205
- }),
1206
- /* @__PURE__ */ jsx(ConfigRow, {
1207
- label: "Prompt",
1208
- children: /* @__PURE__ */ jsx(TextField, {
1209
- value: ask.prompt,
1210
- onChange: (v) => onChange({
1211
- ...ask,
1212
- prompt: v
1213
- }),
1214
- className: "flex-1"
1215
- })
1216
- }),
1217
- isMcq ? /* @__PURE__ */ jsxs("div", {
1218
- className: "space-y-1.5",
1219
- children: [
1220
- /* @__PURE__ */ jsx("span", {
1221
- className: "text-muted-foreground",
1222
- children: "Options (tap βœ“ to mark the correct one)"
1223
- }),
1224
- choices.map((c, i) => /* @__PURE__ */ jsxs("div", {
1225
- className: "flex items-center gap-1.5",
1226
- children: [
1227
- /* @__PURE__ */ jsx(ChipToggle, {
1228
- active: ask.correct === c.value,
1229
- onClick: () => onChange({
1230
- ...ask,
1231
- correct: c.value
1232
- }),
1233
- children: "βœ“"
1234
- }),
1235
- /* @__PURE__ */ jsx(TextField, {
1236
- value: c.label,
1237
- placeholder: `option ${c.value}`,
1238
- onChange: (v) => setChoice(i, { label: v }),
1239
- className: "flex-1"
1240
- }),
1241
- choices.length > 2 && /* @__PURE__ */ jsx(SmallButton, {
1242
- tone: "danger",
1243
- onClick: () => onChange({
1244
- ...ask,
1245
- choices: choices.filter((_, j) => j !== i)
1246
- }),
1247
- children: "βœ•"
1248
- })
1249
- ]
1250
- }, i)),
1251
- /* @__PURE__ */ jsx("div", {
1252
- className: "flex flex-wrap gap-1.5",
1253
- children: /* @__PURE__ */ jsx(SmallButton, {
1254
- onClick: () => {
1255
- const v = CHOICE_LETTERS[choices.length] ?? String(choices.length);
1256
- onChange({
1257
- ...ask,
1258
- choices: [...choices, {
1259
- value: v,
1260
- label: ""
1261
- }]
1262
- });
1263
- },
1264
- children: "+ option"
1265
- })
1266
- }),
1267
- /* @__PURE__ */ jsx(ConfigRow, {
1268
- label: "Explain",
1269
- children: /* @__PURE__ */ jsx(TextField, {
1270
- value: ask.explain ?? "",
1271
- placeholder: "shown when correct",
1272
- onChange: (v) => onChange({
1273
- ...ask,
1274
- explain: v
1275
- }),
1276
- className: "flex-1"
1277
- })
1278
- })
1279
- ]
1280
- }) : /* @__PURE__ */ jsxs(Fragment, { children: [
1281
- /* @__PURE__ */ jsxs(ConfigRow, {
1282
- label: "Answer is",
1283
- children: [/* @__PURE__ */ jsx(ChipToggle, {
1284
- active: isNum,
1285
- onClick: () => setAns({
1286
- kind: "number",
1287
- value: typeof ask.answer?.value === "number" ? ask.answer.value : 0
1288
- }),
1289
- children: "a number"
1290
- }), /* @__PURE__ */ jsx(ChipToggle, {
1291
- active: !isNum,
1292
- onClick: () => setAns({
1293
- kind: "expression",
1294
- value: String(ask.answer?.value ?? "")
1295
- }),
1296
- children: "an expression"
1297
- })]
1298
- }),
1299
- /* @__PURE__ */ jsxs(ConfigRow, {
1300
- label: "Correct value",
1301
- children: [isNum ? /* @__PURE__ */ jsx(NumField, {
1302
- value: Number(ask.answer?.value) || 0,
1303
- onChange: (v) => setAns({ value: v })
1304
- }) : /* @__PURE__ */ jsx(TextField, {
1305
- value: String(ask.answer?.value ?? ""),
1306
- mono: true,
1307
- placeholder: "-0.5*x + 5",
1308
- onChange: (v) => setAns({ value: v }),
1309
- className: "flex-1"
1310
- }), isNum && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
1311
- className: "text-muted-foreground",
1312
- children: "Β± tol"
1313
- }), /* @__PURE__ */ jsx(NumField, {
1314
- value: ask.answer?.tol ?? .01,
1315
- onChange: (v) => setAns({ tol: v })
1316
- })] })]
1317
- }),
1318
- /* @__PURE__ */ jsx(ConfigRow, {
1319
- label: "Hint",
1320
- children: /* @__PURE__ */ jsx(TextField, {
1321
- value: ask.placeholder ?? "",
1322
- placeholder: "placeholder e.g. y = ...",
1323
- onChange: (v) => onChange({
1324
- ...ask,
1325
- placeholder: v
1326
- }),
1327
- className: "flex-1"
1328
- })
1329
- })
1330
- ] })
1331
- ]
1332
- });
1333
- }
1334
- const InteractiveProblemBlock = defineBlock({
1335
- key: "interactive-problem",
1336
- void: true,
1337
- label: "Interactive problem (engine)",
1338
- description: "Author equations + sliders, derive roots/intersections/tangent/normal/area, and grade a typed answer, no code.",
1339
- category: "interactive",
1340
- schema: z.object({
1341
- equations: z.array(equationSchema).optional(),
1342
- params: z.array(paramSchema).optional(),
1343
- xRange: z.tuple([z.number(), z.number()]).optional(),
1344
- yRange: z.union([z.tuple([z.number(), z.number()]), z.literal("auto")]).optional(),
1345
- derive: z.array(deriveSchema).optional(),
1346
- ask: askSchema.optional(),
1347
- title: z.string().optional(),
1348
- prompt: z.string().optional(),
1349
- activity: z.string().optional()
1350
- }),
1351
- Component: ({ attributes, mode, updateAttributes }) => {
1352
- const equations = asExprStrings(attributes.equations);
1353
- const params = asParams(attributes.params);
1354
- const xRange = attributes.xRange ?? [-6.5, 6.5];
1355
- const yRange = attributes.yRange ?? "auto";
1356
- const derive = Array.isArray(attributes.derive) ? attributes.derive : [];
1357
- const ask = attributes.ask;
1358
- const widget = /* @__PURE__ */ jsx(InteractiveProblem, {
1359
- equations,
1360
- params,
1361
- xRange,
1362
- yRange,
1363
- derive,
1364
- ask,
1365
- title: attributes.title ?? "Interactive problem",
1366
- prompt: attributes.prompt,
1367
- activity: attributes.activity ?? "interactive-problem"
1368
- });
1369
- if (mode !== "editing" || !updateAttributes) return widget;
1370
- const upd = updateAttributes;
1371
- const setEq = (i, v) => updateAttributes({ equations: equations.map((e, j) => j === i ? v : e) });
1372
- const setParam = (i, patch) => updateAttributes({ params: params.map((p, j) => j === i ? {
1373
- ...p,
1374
- ...patch
1375
- } : p) });
1376
- const setDerive = (i, patch) => upd({ derive: derive.map((d, j) => j === i ? {
1377
- ...d,
1378
- ...patch
1379
- } : d) });
1380
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
1381
- /* @__PURE__ */ jsx(ConfigRow, {
1382
- label: "Title",
1383
- children: /* @__PURE__ */ jsx(TextField, {
1384
- value: attributes.title ?? "",
1385
- placeholder: "Interactive problem",
1386
- onChange: (v) => updateAttributes({ title: v }),
1387
- className: "flex-1"
1388
- })
1389
- }),
1390
- /* @__PURE__ */ jsx(ConfigRow, {
1391
- label: "Prompt",
1392
- children: /* @__PURE__ */ jsx(TextField, {
1393
- value: attributes.prompt ?? "",
1394
- placeholder: "what the learner does",
1395
- onChange: (v) => updateAttributes({ prompt: v }),
1396
- className: "flex-1"
1397
- })
1398
- }),
1399
- /* @__PURE__ */ jsxs("div", {
1400
- className: "space-y-1.5",
1401
- children: [
1402
- /* @__PURE__ */ jsx("span", {
1403
- className: "font-medium text-muted-foreground",
1404
- children: "Equations (use x and your slider names)"
1405
- }),
1406
- equations.map((eq, i) => /* @__PURE__ */ jsxs("div", {
1407
- className: "flex items-center gap-2",
1408
- children: [
1409
- /* @__PURE__ */ jsxs("span", {
1410
- className: "font-mono text-muted-foreground",
1411
- children: [i, ": y ="]
1412
- }),
1413
- /* @__PURE__ */ jsx(TextField, {
1414
- value: eq,
1415
- mono: true,
1416
- placeholder: "abs(p*x - q)",
1417
- onChange: (v) => setEq(i, v),
1418
- className: "flex-1"
1419
- }),
1420
- equations.length > 1 && /* @__PURE__ */ jsx(SmallButton, {
1421
- tone: "danger",
1422
- onClick: () => updateAttributes({ equations: equations.filter((_, j) => j !== i) }),
1423
- children: "βœ•"
1424
- })
1425
- ]
1426
- }, i)),
1427
- /* @__PURE__ */ jsx(SmallButton, {
1428
- onClick: () => updateAttributes({ equations: [...equations, ""] }),
1429
- children: "+ equation"
1430
- })
1431
- ]
1432
- }),
1433
- /* @__PURE__ */ jsxs("div", {
1434
- className: "space-y-1.5",
1435
- children: [
1436
- /* @__PURE__ */ jsx("span", {
1437
- className: "font-medium text-muted-foreground",
1438
- children: "Sliders (learner-draggable)"
1439
- }),
1440
- params.map((p, i) => /* @__PURE__ */ jsxs("div", {
1441
- className: "flex flex-wrap items-center gap-1.5",
1442
- children: [
1443
- /* @__PURE__ */ jsx(TextField, {
1444
- value: p.name,
1445
- mono: true,
1446
- placeholder: "k",
1447
- onChange: (v) => setParam(i, { name: v }),
1448
- className: "w-14"
1449
- }),
1450
- /* @__PURE__ */ jsx("span", {
1451
- className: "text-muted-foreground",
1452
- children: "from"
1453
- }),
1454
- /* @__PURE__ */ jsx(NumField, {
1455
- value: p.min,
1456
- onChange: (v) => setParam(i, { min: v })
1457
- }),
1458
- /* @__PURE__ */ jsx("span", {
1459
- className: "text-muted-foreground",
1460
- children: "to"
1461
- }),
1462
- /* @__PURE__ */ jsx(NumField, {
1463
- value: p.max,
1464
- onChange: (v) => setParam(i, { max: v })
1465
- }),
1466
- /* @__PURE__ */ jsx("span", {
1467
- className: "text-muted-foreground",
1468
- children: "="
1469
- }),
1470
- /* @__PURE__ */ jsx(NumField, {
1471
- value: p.value,
1472
- onChange: (v) => setParam(i, { value: v })
1473
- }),
1474
- /* @__PURE__ */ jsx(SmallButton, {
1475
- tone: "danger",
1476
- onClick: () => updateAttributes({ params: params.filter((_, j) => j !== i) }),
1477
- children: "βœ•"
1478
- })
1479
- ]
1480
- }, i)),
1481
- /* @__PURE__ */ jsx(SmallButton, {
1482
- onClick: () => updateAttributes({ params: [...params, {
1483
- name: nextParamName(params),
1484
- min: 0,
1485
- max: 10,
1486
- value: 1,
1487
- step: 1
1488
- }] }),
1489
- children: "+ slider"
1490
- })
1491
- ]
1492
- }),
1493
- /* @__PURE__ */ jsxs("div", {
1494
- className: "space-y-1.5",
1495
- children: [
1496
- /* @__PURE__ */ jsx("span", {
1497
- className: "font-medium text-muted-foreground",
1498
- children: "Derive (computed + drawn live)"
1499
- }),
1500
- derive.map((d, i) => {
1501
- const kind = String(d.kind ?? "intersections");
1502
- const ofA = Array.isArray(d.of) ? Number(d.of[0]) : Number(d.of ?? 0);
1503
- const ofB = Array.isArray(d.of) ? Number(d.of[1] ?? 1) : 1;
1504
- return /* @__PURE__ */ jsxs("div", {
1505
- className: "flex flex-wrap items-center gap-1.5",
1506
- children: [
1507
- /* @__PURE__ */ jsx(SelectField, {
1508
- value: kind,
1509
- options: DERIVE_KINDS,
1510
- onChange: (v) => setDerive(i, { kind: v })
1511
- }),
1512
- kind === "intersections" && /* @__PURE__ */ jsxs(Fragment, { children: [
1513
- /* @__PURE__ */ jsx("span", {
1514
- className: "text-muted-foreground",
1515
- children: "of eq"
1516
- }),
1517
- /* @__PURE__ */ jsx(NumField, {
1518
- value: ofA,
1519
- onChange: (v) => setDerive(i, { of: [v, ofB] })
1520
- }),
1521
- /* @__PURE__ */ jsx("span", {
1522
- className: "text-muted-foreground",
1523
- children: "&"
1524
- }),
1525
- /* @__PURE__ */ jsx(NumField, {
1526
- value: ofB,
1527
- onChange: (v) => setDerive(i, { of: [ofA, v] })
1528
- })
1529
- ] }),
1530
- kind === "roots" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
1531
- className: "text-muted-foreground",
1532
- children: "of eq"
1533
- }), /* @__PURE__ */ jsx(NumField, {
1534
- value: Number(d.of ?? 0),
1535
- onChange: (v) => setDerive(i, { of: v })
1536
- })] }),
1537
- (kind === "tangent" || kind === "normal") && /* @__PURE__ */ jsxs(Fragment, { children: [
1538
- /* @__PURE__ */ jsx("span", {
1539
- className: "text-muted-foreground",
1540
- children: "of eq"
1541
- }),
1542
- /* @__PURE__ */ jsx(NumField, {
1543
- value: Number(d.of ?? 0),
1544
- onChange: (v) => setDerive(i, { of: v })
1545
- }),
1546
- /* @__PURE__ */ jsx("span", {
1547
- className: "text-muted-foreground",
1548
- children: "at x"
1549
- }),
1550
- /* @__PURE__ */ jsx(TextField, {
1551
- value: String(d.at ?? ""),
1552
- mono: true,
1553
- placeholder: "2 or a param",
1554
- onChange: (v) => setDerive(i, { at: /^-?\d*\.?\d+$/.test(v) ? Number(v) : v }),
1555
- className: "w-20"
1556
- })
1557
- ] }),
1558
- kind === "area" && /* @__PURE__ */ jsxs(Fragment, { children: [
1559
- /* @__PURE__ */ jsx("span", {
1560
- className: "text-muted-foreground",
1561
- children: "eqs"
1562
- }),
1563
- /* @__PURE__ */ jsx(NumField, {
1564
- value: Array.isArray(d.between) ? Number(d.between[0]) : 0,
1565
- onChange: (v) => setDerive(i, { between: [v, Array.isArray(d.between) ? Number(d.between[1] ?? 1) : 1] })
1566
- }),
1567
- /* @__PURE__ */ jsx(NumField, {
1568
- value: Array.isArray(d.between) ? Number(d.between[1] ?? 1) : 1,
1569
- onChange: (v) => setDerive(i, { between: [Array.isArray(d.between) ? Number(d.between[0]) : 0, v] })
1570
- })
1571
- ] }),
1572
- /* @__PURE__ */ jsx(SmallButton, {
1573
- tone: "danger",
1574
- onClick: () => upd({ derive: derive.filter((_, j) => j !== i) }),
1575
- children: "βœ•"
1576
- })
1577
- ]
1578
- }, i);
1579
- }),
1580
- /* @__PURE__ */ jsx(SmallButton, {
1581
- onClick: () => upd({ derive: [...derive, {
1582
- kind: "intersections",
1583
- of: [0, 1]
1584
- }] }),
1585
- children: "+ derive"
1586
- })
1587
- ]
1588
- }),
1589
- /* @__PURE__ */ jsxs(ConfigRow, {
1590
- label: "x window",
1591
- children: [
1592
- /* @__PURE__ */ jsx(NumField, {
1593
- value: xRange[0],
1594
- onChange: (v) => updateAttributes({ xRange: [v, xRange[1]] })
1595
- }),
1596
- /* @__PURE__ */ jsx("span", {
1597
- className: "text-muted-foreground",
1598
- children: "to"
1599
- }),
1600
- /* @__PURE__ */ jsx(NumField, {
1601
- value: xRange[1],
1602
- onChange: (v) => updateAttributes({ xRange: [xRange[0], v] })
1603
- })
1604
- ]
1605
- }),
1606
- /* @__PURE__ */ jsxs(ConfigRow, {
1607
- label: "y window",
1608
- children: [
1609
- /* @__PURE__ */ jsx(ChipToggle, {
1610
- active: yRange === "auto",
1611
- onClick: () => updateAttributes({ yRange: "auto" }),
1612
- children: "auto"
1613
- }),
1614
- /* @__PURE__ */ jsx(ChipToggle, {
1615
- active: yRange !== "auto",
1616
- onClick: () => updateAttributes({ yRange: yRange === "auto" ? [-10, 10] : yRange }),
1617
- children: "fixed"
1618
- }),
1619
- yRange !== "auto" && /* @__PURE__ */ jsxs(Fragment, { children: [
1620
- /* @__PURE__ */ jsx(NumField, {
1621
- value: yRange[0],
1622
- onChange: (v) => updateAttributes({ yRange: [v, yRange[1]] })
1623
- }),
1624
- /* @__PURE__ */ jsx("span", {
1625
- className: "text-muted-foreground",
1626
- children: "to"
1627
- }),
1628
- /* @__PURE__ */ jsx(NumField, {
1629
- value: yRange[1],
1630
- onChange: (v) => updateAttributes({ yRange: [yRange[0], v] })
1631
- })
1632
- ] })
1633
- ]
1634
- }),
1635
- /* @__PURE__ */ jsx(AskEditor, {
1636
- ask,
1637
- onChange: (a) => upd({ ask: a })
1638
- })
1639
- ] }), widget] });
1640
- }
1641
- });
1642
- const TriangleTrigBlock = defineBlock({
1643
- key: "triangle-trig",
1644
- void: true,
1645
- label: "Triangle trig (elevation/depression)",
1646
- description: "A right triangle for elevation/depression: give an angle + one side, solve the rest, grade a typed answer.",
1647
- category: "interactive",
1648
- schema: z.object({
1649
- angleDeg: z.number().optional(),
1650
- leg: z.number().optional(),
1651
- legKind: z.enum(["opposite", "adjacent"]).optional(),
1652
- mode: z.enum([
1653
- "elevation",
1654
- "depression",
1655
- "plain"
1656
- ]).optional(),
1657
- labels: z.object({
1658
- opposite: z.string().optional(),
1659
- adjacent: z.string().optional(),
1660
- hypotenuse: z.string().optional(),
1661
- angle: z.string().optional()
1662
- }).optional(),
1663
- drive: z.array(z.enum(["angle", "leg"])).optional(),
1664
- ask: askSchema.optional(),
1665
- title: z.string().optional(),
1666
- prompt: z.string().optional(),
1667
- activity: z.string().optional()
1668
- }),
1669
- Component: ({ attributes, mode, updateAttributes }) => {
1670
- const a = attributes;
1671
- const drive = Array.isArray(a.drive) ? a.drive : ["angle"];
1672
- const labels = a.labels ?? {};
1673
- const ask = attributes.ask;
1674
- const widget = /* @__PURE__ */ jsx(TriangleTrig, {
1675
- ...a,
1676
- drive,
1677
- ask
1678
- });
1679
- if (mode !== "editing" || !updateAttributes) return widget;
1680
- const upd = updateAttributes;
1681
- const toggleDrive = (k) => updateAttributes({ drive: drive.includes(k) ? drive.filter((d) => d !== k) : [...drive, k] });
1682
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
1683
- /* @__PURE__ */ jsx(ConfigRow, {
1684
- label: "Title",
1685
- children: /* @__PURE__ */ jsx(TextField, {
1686
- value: a.title ?? "",
1687
- placeholder: "Angle of depression…",
1688
- onChange: (v) => updateAttributes({ title: v }),
1689
- className: "flex-1"
1690
- })
1691
- }),
1692
- /* @__PURE__ */ jsx(ConfigRow, {
1693
- label: "Angle ΞΈ (Β°)",
1694
- children: /* @__PURE__ */ jsx(NumField, {
1695
- value: a.angleDeg ?? 31,
1696
- onChange: (v) => updateAttributes({ angleDeg: v })
1697
- })
1698
- }),
1699
- /* @__PURE__ */ jsxs(ConfigRow, {
1700
- label: "Given leg",
1701
- children: [/* @__PURE__ */ jsx(NumField, {
1702
- value: a.leg ?? 15,
1703
- onChange: (v) => updateAttributes({ leg: v })
1704
- }), /* @__PURE__ */ jsx(SelectField, {
1705
- value: a.legKind ?? "opposite",
1706
- options: ["opposite", "adjacent"],
1707
- onChange: (v) => upd({ legKind: v })
1708
- })]
1709
- }),
1710
- /* @__PURE__ */ jsx(ConfigRow, {
1711
- label: "Framing",
1712
- children: /* @__PURE__ */ jsx(SelectField, {
1713
- value: a.mode ?? "depression",
1714
- options: [
1715
- "depression",
1716
- "elevation",
1717
- "plain"
1718
- ],
1719
- onChange: (v) => upd({ mode: v })
1720
- })
1721
- }),
1722
- /* @__PURE__ */ jsxs(ConfigRow, {
1723
- label: "Labels",
1724
- children: [/* @__PURE__ */ jsx(TextField, {
1725
- value: labels.opposite ?? "",
1726
- placeholder: "opposite",
1727
- onChange: (v) => updateAttributes({ labels: {
1728
- ...labels,
1729
- opposite: v
1730
- } }),
1731
- className: "w-24"
1732
- }), /* @__PURE__ */ jsx(TextField, {
1733
- value: labels.adjacent ?? "",
1734
- placeholder: "adjacent",
1735
- onChange: (v) => updateAttributes({ labels: {
1736
- ...labels,
1737
- adjacent: v
1738
- } }),
1739
- className: "w-24"
1740
- })]
1741
- }),
1742
- /* @__PURE__ */ jsxs(ConfigRow, {
1743
- label: "Draggable",
1744
- children: [/* @__PURE__ */ jsx(ChipToggle, {
1745
- active: drive.includes("angle"),
1746
- onClick: () => toggleDrive("angle"),
1747
- children: "angle"
1748
- }), /* @__PURE__ */ jsx(ChipToggle, {
1749
- active: drive.includes("leg"),
1750
- onClick: () => toggleDrive("leg"),
1751
- children: "given leg"
1752
- })]
1753
- }),
1754
- /* @__PURE__ */ jsx(AskEditor, {
1755
- ask,
1756
- onChange: (a2) => upd({ ask: a2 })
1757
- })
1758
- ] }), widget] });
1759
- }
1760
- });
1761
- const pointSchema = z.object({
1762
- x: z.number(),
1763
- y: z.number()
1764
- });
1765
- const StraightLineBlock = defineBlock({
1766
- key: "straight-line",
1767
- tag: "StraightLine",
1768
- void: true,
1769
- label: "Straight line (y = mx + c, parallel/βŠ₯, intercepts)",
1770
- description: "Drag points/intercepts to build a line; covers gradient–intercept, two-point, intercept form, and parallel/perpendicular. Optional graded answer.",
1771
- category: "interactive",
1772
- schema: z.object({
1773
- mode: z.enum([
1774
- "two-point",
1775
- "gradient-intercept",
1776
- "intercept-form",
1777
- "parallel",
1778
- "perpendicular"
1779
- ]).optional(),
1780
- pointA: pointSchema.optional(),
1781
- pointB: pointSchema.optional(),
1782
- given: z.object({
1783
- m: z.number(),
1784
- c: z.number()
1785
- }).optional(),
1786
- through: pointSchema.optional(),
1787
- showDistance: z.boolean().optional(),
1788
- snap: z.number().optional(),
1789
- title: z.string().optional(),
1790
- prompt: z.string().optional(),
1791
- ask: labAskSchema.optional(),
1792
- activity: z.string().optional()
1793
- }),
1794
- Component: ({ attributes, mode, updateAttributes }) => {
1795
- const a = attributes;
1796
- const ask = attributes.ask;
1797
- const m = a.mode ?? "two-point";
1798
- const given = a.given ?? {
1799
- m: .5,
1800
- c: 2
1801
- };
1802
- const widget = /* @__PURE__ */ jsx(StraightLineLab, { ...a });
1803
- if (mode !== "editing" || !updateAttributes) return widget;
1804
- const upd = updateAttributes;
1805
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
1806
- /* @__PURE__ */ jsx(ConfigRow, {
1807
- label: "Title",
1808
- children: /* @__PURE__ */ jsx(TextField, {
1809
- value: a.title ?? "",
1810
- placeholder: "The straight line",
1811
- onChange: (v) => updateAttributes({ title: v }),
1812
- className: "flex-1"
1813
- })
1814
- }),
1815
- /* @__PURE__ */ jsx(ConfigRow, {
1816
- label: "Form",
1817
- children: /* @__PURE__ */ jsx(SelectField, {
1818
- value: m,
1819
- options: [
1820
- "two-point",
1821
- "gradient-intercept",
1822
- "intercept-form",
1823
- "parallel",
1824
- "perpendicular"
1825
- ],
1826
- onChange: (v) => upd({ mode: v })
1827
- })
1828
- }),
1829
- (m === "parallel" || m === "perpendicular") && /* @__PURE__ */ jsxs(ConfigRow, {
1830
- label: "Given line y =",
1831
- children: [
1832
- /* @__PURE__ */ jsx(NumField, {
1833
- value: given.m,
1834
- onChange: (v) => upd({ given: {
1835
- ...given,
1836
- m: v
1837
- } })
1838
- }),
1839
- /* @__PURE__ */ jsx("span", {
1840
- className: "text-muted-foreground",
1841
- children: "x +"
1842
- }),
1843
- /* @__PURE__ */ jsx(NumField, {
1844
- value: given.c,
1845
- onChange: (v) => upd({ given: {
1846
- ...given,
1847
- c: v
1848
- } })
1849
- })
1850
- ]
1851
- }),
1852
- m === "two-point" && /* @__PURE__ */ jsx(ConfigRow, {
1853
- label: "Extras",
1854
- children: /* @__PURE__ */ jsx(ChipToggle, {
1855
- active: !!a.showDistance,
1856
- onClick: () => upd({ showDistance: !a.showDistance }),
1857
- children: "show |AB| + midpoint"
1858
- })
1859
- }),
1860
- /* @__PURE__ */ jsx(ConfigRow, {
1861
- label: "Snap",
1862
- children: /* @__PURE__ */ jsx(NumField, {
1863
- value: a.snap ?? 1,
1864
- onChange: (v) => updateAttributes({ snap: v })
1865
- })
1866
- }),
1867
- /* @__PURE__ */ jsx(LabAskEditor, {
1868
- ask,
1869
- onChange: (a2) => upd({ ask: a2 })
1870
- })
1871
- ] }), widget] });
1872
- }
1873
- });
1874
- const CircleBlock = defineBlock({
1875
- key: "circle-geometry",
1876
- tag: "CircleLab",
1877
- void: true,
1878
- label: "Circle ((xβˆ’a)Β² + (yβˆ’b)Β² = rΒ², tangent)",
1879
- description: "Drag the centre and rim; live standard + expanded equation, optional tangent (βŠ₯ to the radius). Optional graded answer.",
1880
- category: "interactive",
1881
- schema: z.object({
1882
- center: pointSchema.optional(),
1883
- radius: z.number().optional(),
1884
- showTangent: z.boolean().optional(),
1885
- showExpanded: z.boolean().optional(),
1886
- tangentAngleDeg: z.number().optional(),
1887
- snap: z.number().optional(),
1888
- title: z.string().optional(),
1889
- prompt: z.string().optional(),
1890
- ask: labAskSchema.optional(),
1891
- activity: z.string().optional()
1892
- }),
1893
- Component: ({ attributes, mode, updateAttributes }) => {
1894
- const a = attributes;
1895
- const ask = attributes.ask;
1896
- const widget = /* @__PURE__ */ jsx(CircleLab, { ...a });
1897
- if (mode !== "editing" || !updateAttributes) return widget;
1898
- const upd = updateAttributes;
1899
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
1900
- /* @__PURE__ */ jsx(ConfigRow, {
1901
- label: "Title",
1902
- children: /* @__PURE__ */ jsx(TextField, {
1903
- value: a.title ?? "",
1904
- placeholder: "The circle",
1905
- onChange: (v) => updateAttributes({ title: v }),
1906
- className: "flex-1"
1907
- })
1908
- }),
1909
- /* @__PURE__ */ jsx(ConfigRow, {
1910
- label: "Radius",
1911
- children: /* @__PURE__ */ jsx(NumField, {
1912
- value: a.radius ?? 4,
1913
- onChange: (v) => updateAttributes({ radius: v })
1914
- })
1915
- }),
1916
- /* @__PURE__ */ jsxs(ConfigRow, {
1917
- label: "Show",
1918
- children: [/* @__PURE__ */ jsx(ChipToggle, {
1919
- active: !!a.showExpanded,
1920
- onClick: () => upd({ showExpanded: !a.showExpanded }),
1921
- children: "expanded form"
1922
- }), /* @__PURE__ */ jsx(ChipToggle, {
1923
- active: !!a.showTangent,
1924
- onClick: () => upd({ showTangent: !a.showTangent }),
1925
- children: "tangent"
1926
- })]
1927
- }),
1928
- /* @__PURE__ */ jsx(ConfigRow, {
1929
- label: "Snap",
1930
- children: /* @__PURE__ */ jsx(NumField, {
1931
- value: a.snap ?? 1,
1932
- onChange: (v) => updateAttributes({ snap: v })
1933
- })
1934
- }),
1935
- /* @__PURE__ */ jsx(LabAskEditor, {
1936
- ask,
1937
- onChange: (a2) => upd({ ask: a2 })
1938
- })
1939
- ] }), widget] });
1940
- }
1941
- });
1942
- const ConicBlock = defineBlock({
1943
- key: "conic",
1944
- tag: "ConicLab",
1945
- void: true,
1946
- label: "Conic (parabola / ellipse / hyperbola / reciprocal)",
1947
- description: "Drag a parabola (yΒ²=4ax, focus+directrix), an ellipse (xΒ²/aΒ²+yΒ²/bΒ²=1, foci), a hyperbola (xΒ²/aΒ²βˆ’yΒ²/bΒ²=1, asymptotes), or the reciprocal xy=c. Optional graded answer.",
1948
- category: "interactive",
1949
- schema: z.object({
1950
- kind: z.enum([
1951
- "parabola",
1952
- "ellipse",
1953
- "hyperbola",
1954
- "rectangular"
1955
- ]).optional(),
1956
- a: z.number().optional(),
1957
- b: z.number().optional(),
1958
- c: z.number().optional(),
1959
- showFocusDirectrix: z.boolean().optional(),
1960
- showAsymptotes: z.boolean().optional(),
1961
- snap: z.number().optional(),
1962
- title: z.string().optional(),
1963
- prompt: z.string().optional(),
1964
- ask: labAskSchema.optional(),
1965
- activity: z.string().optional()
1966
- }),
1967
- Component: ({ attributes, mode, updateAttributes }) => {
1968
- const a = attributes;
1969
- const ask = attributes.ask;
1970
- const k = a.kind ?? "parabola";
1971
- const widget = /* @__PURE__ */ jsx(ConicLab, { ...a });
1972
- if (mode !== "editing" || !updateAttributes) return widget;
1973
- const upd = updateAttributes;
1974
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
1975
- /* @__PURE__ */ jsx(ConfigRow, {
1976
- label: "Title",
1977
- children: /* @__PURE__ */ jsx(TextField, {
1978
- value: a.title ?? "",
1979
- placeholder: "The parabola",
1980
- onChange: (v) => updateAttributes({ title: v }),
1981
- className: "flex-1"
1982
- })
1983
- }),
1984
- /* @__PURE__ */ jsx(ConfigRow, {
1985
- label: "Curve",
1986
- children: /* @__PURE__ */ jsx(SelectField, {
1987
- value: k,
1988
- options: [
1989
- "parabola",
1990
- "ellipse",
1991
- "hyperbola",
1992
- "rectangular"
1993
- ],
1994
- onChange: (v) => upd({ kind: v })
1995
- })
1996
- }),
1997
- k === "parabola" && /* @__PURE__ */ jsx(ConfigRow, {
1998
- label: "a",
1999
- children: /* @__PURE__ */ jsx(NumField, {
2000
- value: a.a ?? 1,
2001
- onChange: (v) => updateAttributes({ a: v })
2002
- })
2003
- }),
2004
- k === "ellipse" && /* @__PURE__ */ jsxs(ConfigRow, {
2005
- label: "a, b",
2006
- children: [/* @__PURE__ */ jsx(NumField, {
2007
- value: a.a ?? 4,
2008
- onChange: (v) => updateAttributes({ a: v })
2009
- }), /* @__PURE__ */ jsx(NumField, {
2010
- value: a.b ?? 2.5,
2011
- onChange: (v) => updateAttributes({ b: v })
2012
- })]
2013
- }),
2014
- k === "hyperbola" && /* @__PURE__ */ jsxs(ConfigRow, {
2015
- label: "a, b",
2016
- children: [/* @__PURE__ */ jsx(NumField, {
2017
- value: a.a ?? 2,
2018
- onChange: (v) => updateAttributes({ a: v })
2019
- }), /* @__PURE__ */ jsx(NumField, {
2020
- value: a.b ?? 1.5,
2021
- onChange: (v) => updateAttributes({ b: v })
2022
- })]
2023
- }),
2024
- k === "rectangular" && /* @__PURE__ */ jsx(ConfigRow, {
2025
- label: "c",
2026
- children: /* @__PURE__ */ jsx(NumField, {
2027
- value: a.c ?? 6,
2028
- onChange: (v) => updateAttributes({ c: v })
2029
- })
2030
- }),
2031
- /* @__PURE__ */ jsx(ConfigRow, {
2032
- label: "Snap",
2033
- children: /* @__PURE__ */ jsx(NumField, {
2034
- value: a.snap ?? 1,
2035
- onChange: (v) => updateAttributes({ snap: v })
2036
- })
2037
- }),
2038
- /* @__PURE__ */ jsx(LabAskEditor, {
2039
- ask,
2040
- onChange: (a2) => upd({ ask: a2 })
2041
- })
2042
- ] }), widget] });
2043
- }
2044
- });
2045
- const DomainRangeBlock = defineBlock({
2046
- key: "domain-range",
2047
- tag: "DomainRange",
2048
- void: true,
2049
- label: "Domain & range (the two shadows)",
2050
- description: "Type any f(x); the curve casts a domain shadow (x-axis) and range shadow (y-axis). Drag the input probe: green = accepted, red = undefined. Teaches every domain type.",
2051
- category: "interactive",
2052
- schema: z.object({
2053
- equation: z.string().optional(),
2054
- xRange: z.tuple([z.number(), z.number()]).optional(),
2055
- restrict: z.tuple([z.number(), z.number()]).optional(),
2056
- probe: z.number().optional(),
2057
- title: z.string().optional(),
2058
- prompt: z.string().optional(),
2059
- ask: labAskSchema.optional(),
2060
- activity: z.string().optional()
2061
- }),
2062
- Component: ({ attributes, mode, updateAttributes }) => {
2063
- const a = attributes;
2064
- const ask = attributes.ask;
2065
- const xR = a.xRange ?? [-6, 6];
2066
- const restricted = Array.isArray(a.restrict);
2067
- const widget = /* @__PURE__ */ jsx(DomainRangeLab, { ...a });
2068
- if (mode !== "editing" || !updateAttributes) return widget;
2069
- const upd = updateAttributes;
2070
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2071
- /* @__PURE__ */ jsx(ConfigRow, {
2072
- label: "Title",
2073
- children: /* @__PURE__ */ jsx(TextField, {
2074
- value: a.title ?? "",
2075
- placeholder: "Domain & range",
2076
- onChange: (v) => updateAttributes({ title: v }),
2077
- className: "flex-1"
2078
- })
2079
- }),
2080
- /* @__PURE__ */ jsx(ConfigRow, {
2081
- label: "f(x) =",
2082
- children: /* @__PURE__ */ jsx(TextField, {
2083
- value: a.equation ?? "",
2084
- mono: true,
2085
- placeholder: "sqrt(9 - x^2)",
2086
- onChange: (v) => updateAttributes({ equation: v }),
2087
- className: "flex-1"
2088
- })
2089
- }),
2090
- /* @__PURE__ */ jsxs(ConfigRow, {
2091
- label: "x window",
2092
- children: [
2093
- /* @__PURE__ */ jsx(NumField, {
2094
- value: xR[0],
2095
- onChange: (v) => updateAttributes({ xRange: [v, xR[1]] })
2096
- }),
2097
- /* @__PURE__ */ jsx("span", {
2098
- className: "text-muted-foreground",
2099
- children: "to"
2100
- }),
2101
- /* @__PURE__ */ jsx(NumField, {
2102
- value: xR[1],
2103
- onChange: (v) => updateAttributes({ xRange: [xR[0], v] })
2104
- })
2105
- ]
2106
- }),
2107
- /* @__PURE__ */ jsxs(ConfigRow, {
2108
- label: "Restrict domain",
2109
- children: [
2110
- /* @__PURE__ */ jsx(ChipToggle, {
2111
- active: !restricted,
2112
- onClick: () => upd({ restrict: void 0 }),
2113
- children: "none"
2114
- }),
2115
- /* @__PURE__ */ jsx(ChipToggle, {
2116
- active: restricted,
2117
- onClick: () => upd({ restrict: a.restrict ?? [-2, 2] }),
2118
- children: "interval"
2119
- }),
2120
- restricted && /* @__PURE__ */ jsxs(Fragment, { children: [
2121
- /* @__PURE__ */ jsx(NumField, {
2122
- value: a.restrict[0],
2123
- onChange: (v) => upd({ restrict: [v, a.restrict[1]] })
2124
- }),
2125
- /* @__PURE__ */ jsx("span", {
2126
- className: "text-muted-foreground",
2127
- children: "to"
2128
- }),
2129
- /* @__PURE__ */ jsx(NumField, {
2130
- value: a.restrict[1],
2131
- onChange: (v) => upd({ restrict: [a.restrict[0], v] })
2132
- })
2133
- ] })
2134
- ]
2135
- }),
2136
- /* @__PURE__ */ jsx(LabAskEditor, {
2137
- ask,
2138
- onChange: (a2) => upd({ ask: a2 })
2139
- })
2140
- ] }), widget] });
2141
- }
2142
- });
2143
- const LinearModelBlock = defineBlock({
2144
- key: "linear-model",
2145
- tag: "LinearModel",
2146
- void: true,
2147
- label: "Proportion / rate (marbles β†’ volume)",
2148
- description: "A concrete scene (a beaker filling with marbles) linked to a graph: drag the point to predict the value at the next input. Discover y = rateΒ·x + base from data. Optional graded follow-up.",
2149
- category: "interactive",
2150
- schema: z.object({
2151
- slope: z.number().default(5),
2152
- intercept: z.number().default(10),
2153
- predictX: z.number().default(2),
2154
- xMax: z.number().default(6),
2155
- yMax: z.number().default(40),
2156
- yStep: z.number().default(5),
2157
- xLabel: z.string().default("Marbles"),
2158
- yLabel: z.string().default("Volume"),
2159
- unit: z.string().default("mL"),
2160
- scene: z.string().default("vessel"),
2161
- vesselObjects: z.boolean().default(true),
2162
- vesselBinds: z.enum(["guess", "truth"]).default("guess"),
2163
- objectLabel: z.string().optional(),
2164
- title: z.string().optional(),
2165
- prompt: z.string().optional(),
2166
- ask: labAskSchema.optional(),
2167
- activity: z.string().optional()
2168
- }),
2169
- Component: ({ attributes, mode, updateAttributes }) => {
2170
- const a = attributes;
2171
- const ask = attributes.ask;
2172
- const predictX = a.predictX ?? 2;
2173
- const given = Array.from({ length: Math.max(1, predictX) }, (_, i) => i);
2174
- const widget = /* @__PURE__ */ jsx(LinearModelLab, {
2175
- ...a,
2176
- predictX,
2177
- given
2178
- });
2179
- if (mode !== "editing" || !updateAttributes) return widget;
2180
- const upd = updateAttributes;
2181
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2182
- /* @__PURE__ */ jsx(ConfigRow, {
2183
- label: "Title",
2184
- children: /* @__PURE__ */ jsx(TextField, {
2185
- value: a.title ?? "",
2186
- placeholder: "Find the volume",
2187
- onChange: (v) => updateAttributes({ title: v }),
2188
- className: "flex-1"
2189
- })
2190
- }),
2191
- /* @__PURE__ */ jsxs(ConfigRow, {
2192
- label: "Rule: y =",
2193
- children: [
2194
- /* @__PURE__ */ jsx(NumField, {
2195
- value: a.slope ?? 5,
2196
- onChange: (v) => updateAttributes({ slope: v })
2197
- }),
2198
- /* @__PURE__ */ jsx("span", {
2199
- className: "text-muted-foreground",
2200
- children: "Β· x +"
2201
- }),
2202
- /* @__PURE__ */ jsx(NumField, {
2203
- value: a.intercept ?? 10,
2204
- onChange: (v) => updateAttributes({ intercept: v })
2205
- })
2206
- ]
2207
- }),
2208
- /* @__PURE__ */ jsx(ConfigRow, {
2209
- label: "Predict at x =",
2210
- children: /* @__PURE__ */ jsx(NumField, {
2211
- value: predictX,
2212
- onChange: (v) => updateAttributes({ predictX: v })
2213
- })
2214
- }),
2215
- /* @__PURE__ */ jsxs(ConfigRow, {
2216
- label: "Axis labels",
2217
- children: [/* @__PURE__ */ jsx(TextField, {
2218
- value: a.xLabel ?? "Marbles",
2219
- onChange: (v) => updateAttributes({ xLabel: v }),
2220
- className: "w-28"
2221
- }), /* @__PURE__ */ jsx(TextField, {
2222
- value: a.yLabel ?? "Volume",
2223
- onChange: (v) => updateAttributes({ yLabel: v }),
2224
- className: "w-28"
2225
- })]
2226
- }),
2227
- /* @__PURE__ */ jsxs(ConfigRow, {
2228
- label: "x / y max",
2229
- children: [/* @__PURE__ */ jsx(NumField, {
2230
- value: a.xMax ?? 6,
2231
- onChange: (v) => updateAttributes({ xMax: v })
2232
- }), /* @__PURE__ */ jsx(NumField, {
2233
- value: a.yMax ?? 40,
2234
- onChange: (v) => updateAttributes({ yMax: v })
2235
- })]
2236
- }),
2237
- /* @__PURE__ */ jsxs(ConfigRow, {
2238
- label: "y step / unit",
2239
- children: [/* @__PURE__ */ jsx(NumField, {
2240
- value: a.yStep ?? 5,
2241
- onChange: (v) => updateAttributes({ yStep: v })
2242
- }), /* @__PURE__ */ jsx(TextField, {
2243
- value: a.unit ?? "mL",
2244
- onChange: (v) => updateAttributes({ unit: v }),
2245
- className: "w-20"
2246
- })]
2247
- }),
2248
- /* @__PURE__ */ jsx(ConfigRow, {
2249
- label: "Concrete scene",
2250
- children: /* @__PURE__ */ jsx(SelectField, {
2251
- value: a.scene ?? "vessel",
2252
- options: levelSceneOptions(),
2253
- onChange: (v) => upd({ scene: v })
2254
- })
2255
- }),
2256
- (a.scene ?? "vessel") === "vessel" && /* @__PURE__ */ jsxs(ConfigRow, {
2257
- label: "Drop objects in",
2258
- children: [/* @__PURE__ */ jsx(ChipToggle, {
2259
- active: a.vesselObjects !== false,
2260
- onClick: () => updateAttributes({ vesselObjects: !(a.vesselObjects !== false) }),
2261
- children: a.vesselObjects !== false ? "objects (marbles)" : "just liquid"
2262
- }), a.vesselObjects !== false && /* @__PURE__ */ jsx(TextField, {
2263
- value: a.objectLabel ?? "",
2264
- placeholder: "object word e.g. marbles",
2265
- onChange: (v) => updateAttributes({ objectLabel: v }),
2266
- className: "w-36"
2267
- })]
2268
- }),
2269
- /* @__PURE__ */ jsx(ConfigRow, {
2270
- label: "Twin level follows",
2271
- children: /* @__PURE__ */ jsx(ChipToggle, {
2272
- active: (a.vesselBinds ?? "guess") === "guess",
2273
- onClick: () => updateAttributes({ vesselBinds: (a.vesselBinds ?? "guess") === "guess" ? "truth" : "guess" }),
2274
- children: (a.vesselBinds ?? "guess") === "guess" ? "your drag (rises & falls live)" : "the real lab level (you match it)"
2275
- })
2276
- }),
2277
- /* @__PURE__ */ jsx(LabAskEditor, {
2278
- ask,
2279
- onChange: (a2) => upd({ ask: a2 })
2280
- })
2281
- ] }), widget] });
2282
- }
2283
- });
2284
- const SequencePredictBlock = defineBlock({
2285
- key: "sequence-predict",
2286
- tag: "SequencePredict",
2287
- void: true,
2288
- label: "Exponential / sequence (watch it grow)",
2289
- description: "A count shown as a growing crowd of dots (3 β†’ 6 β†’ 12, new ones lit up); the learner tap-fills the hidden terms. Geometric (Γ—ratio) or arithmetic (+difference). The \"joke that doubles\" lesson.",
2290
- category: "interactive",
2291
- schema: z.object({
2292
- start: z.number().default(3),
2293
- rule: z.enum(["geometric", "arithmetic"]).default("geometric"),
2294
- factor: z.number().default(2),
2295
- shown: z.number().default(1),
2296
- predict: z.number().default(2),
2297
- stepLabel: z.string().default("Day"),
2298
- highlightNew: z.boolean().default(true),
2299
- scene: z.string().default("cluster"),
2300
- title: z.string().optional(),
2301
- prompt: z.string().optional(),
2302
- activity: z.string().optional()
2303
- }),
2304
- Component: ({ attributes, mode, updateAttributes }) => {
2305
- const a = attributes;
2306
- const r = a.rule ?? "geometric";
2307
- const widget = /* @__PURE__ */ jsx(SequencePredict, { ...a });
2308
- if (mode !== "editing" || !updateAttributes) return widget;
2309
- const upd = updateAttributes;
2310
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2311
- /* @__PURE__ */ jsx(ConfigRow, {
2312
- label: "Title",
2313
- children: /* @__PURE__ */ jsx(TextField, {
2314
- value: a.title ?? "",
2315
- placeholder: "How does it grow?",
2316
- onChange: (v) => updateAttributes({ title: v }),
2317
- className: "flex-1"
2318
- })
2319
- }),
2320
- /* @__PURE__ */ jsx(ConfigRow, {
2321
- label: "Story / prompt",
2322
- children: /* @__PURE__ */ jsx(TextField, {
2323
- value: a.prompt ?? "",
2324
- placeholder: "Each day the number doubles.",
2325
- onChange: (v) => updateAttributes({ prompt: v }),
2326
- className: "flex-1"
2327
- })
2328
- }),
2329
- /* @__PURE__ */ jsx(ConfigRow, {
2330
- label: "Start value",
2331
- children: /* @__PURE__ */ jsx(NumField, {
2332
- value: a.start ?? 3,
2333
- onChange: (v) => updateAttributes({ start: v })
2334
- })
2335
- }),
2336
- /* @__PURE__ */ jsxs(ConfigRow, {
2337
- label: "Rule",
2338
- children: [
2339
- /* @__PURE__ */ jsx(SelectField, {
2340
- value: r,
2341
- options: ["geometric", "arithmetic"],
2342
- onChange: (v) => upd({ rule: v })
2343
- }),
2344
- /* @__PURE__ */ jsx("span", {
2345
- className: "text-muted-foreground",
2346
- children: r === "geometric" ? "Γ— by" : "+ by"
2347
- }),
2348
- /* @__PURE__ */ jsx(NumField, {
2349
- value: a.factor ?? 2,
2350
- onChange: (v) => updateAttributes({ factor: v })
2351
- })
2352
- ]
2353
- }),
2354
- /* @__PURE__ */ jsxs(ConfigRow, {
2355
- label: "Shown / predict",
2356
- children: [/* @__PURE__ */ jsx(NumField, {
2357
- value: a.shown ?? 1,
2358
- onChange: (v) => updateAttributes({ shown: v })
2359
- }), /* @__PURE__ */ jsx(NumField, {
2360
- value: a.predict ?? 2,
2361
- onChange: (v) => updateAttributes({ predict: v })
2362
- })]
2363
- }),
2364
- /* @__PURE__ */ jsx(ConfigRow, {
2365
- label: "Step label",
2366
- children: /* @__PURE__ */ jsx(TextField, {
2367
- value: a.stepLabel ?? "Day",
2368
- onChange: (v) => updateAttributes({ stepLabel: v }),
2369
- className: "w-28"
2370
- })
2371
- }),
2372
- /* @__PURE__ */ jsx(ConfigRow, {
2373
- label: "Count scene",
2374
- children: /* @__PURE__ */ jsx(SelectField, {
2375
- value: a.scene ?? "cluster",
2376
- options: countSceneOptions(),
2377
- onChange: (v) => upd({ scene: v })
2378
- })
2379
- }),
2380
- /* @__PURE__ */ jsx(ConfigRow, {
2381
- label: "Highlight new",
2382
- children: /* @__PURE__ */ jsx(ChipToggle, {
2383
- active: a.highlightNew !== false,
2384
- onClick: () => updateAttributes({ highlightNew: !(a.highlightNew !== false) }),
2385
- children: "light up added"
2386
- })
2387
- })
2388
- ] }), widget] });
2389
- }
2390
- });
2391
- const PercentBarBlock = labBlock({
2392
- key: "percent-bar",
2393
- label: "Percentage bar",
2394
- description: "A bar is the whole (100%); drag the fill to a target percent and read both the percent and the amount (percent Γ— whole). Author any analogy via whole + unit + an optional segment breakdown.",
2395
- schema: z.object({
2396
- whole: z.number().default(100),
2397
- unit: z.string().default(""),
2398
- target: z.number().optional(),
2399
- start: z.number().default(0),
2400
- snapPct: z.number().default(5),
2401
- showValue: z.boolean().default(true),
2402
- referenceLabel: z.string().optional(),
2403
- segments: z.array(z.object({
2404
- frac: z.number(),
2405
- label: z.string().optional(),
2406
- color: z.string().optional()
2407
- })).optional(),
2408
- scene: z.enum([
2409
- "none",
2410
- "pie",
2411
- "battery",
2412
- "jar",
2413
- "balloon",
2414
- "thermometer"
2415
- ]).default("none"),
2416
- title: z.string().optional(),
2417
- prompt: z.string().optional()
2418
- }),
2419
- Component: (a) => /* @__PURE__ */ jsx(PercentBarLab, { ...a })
2420
- });
2421
- const FractionBarBlock = labBlock({
2422
- key: "fraction-bar",
2423
- label: "Fraction strip",
2424
- description: "A strip cut into equal parts; drag to shade k/n. Reads as fraction, decimal, percent and (with a whole) a quantity. An optional compare strip shows the equivalent fraction.",
2425
- schema: z.object({
2426
- denom: z.number().default(4),
2427
- num: z.number().default(0),
2428
- target: z.number().optional(),
2429
- whole: z.number().optional(),
2430
- unit: z.string().default(""),
2431
- compareDenom: z.number().optional(),
2432
- showEquiv: z.boolean().default(true),
2433
- scene: z.enum([
2434
- "none",
2435
- "pie",
2436
- "battery",
2437
- "jar",
2438
- "balloon",
2439
- "thermometer"
2440
- ]).default("none"),
2441
- title: z.string().optional(),
2442
- prompt: z.string().optional()
2443
- }),
2444
- Component: (a) => /* @__PURE__ */ jsx(FractionBarLab, { ...a })
2445
- });
2446
- const RatioShareBlock = labBlock({
2447
- key: "ratio-share",
2448
- label: "Share in a ratio",
2449
- description: "Split a quantity in the ratio a:b by dragging one divider. Reads back the amounts and the simplified ratio; any equivalent split (40:60 = 2:3) solves it.",
2450
- schema: z.object({
2451
- a: z.number().default(2),
2452
- b: z.number().default(3),
2453
- total: z.number().default(100),
2454
- unit: z.string().default(""),
2455
- labelA: z.string().default("A"),
2456
- labelB: z.string().default("B"),
2457
- step: z.number().default(1),
2458
- scene: z.enum([
2459
- "none",
2460
- "pie",
2461
- "battery",
2462
- "jar",
2463
- "balloon",
2464
- "thermometer"
2465
- ]).default("none"),
2466
- title: z.string().optional(),
2467
- prompt: z.string().optional()
2468
- }),
2469
- Component: (a) => /* @__PURE__ */ jsx(RatioShareLab, { ...a })
2470
- });
2471
- const ComplexPlaneBlock = labBlock({
2472
- key: "complex-plane",
2473
- label: "Complex plane (Argand)",
2474
- description: "Drag a + bi on the Argand plane: read the modulus and argument (deg & rad). Modes: point, multiply (Γ—i rotates 90Β°), power (De Moivre spiral), or roots (the nth-roots of unity 1, i, βˆ’1, βˆ’i, Ο‰).",
2475
- schema: z.object({
2476
- start: z.object({
2477
- re: z.number(),
2478
- im: z.number()
2479
- }).optional(),
2480
- mode: z.enum([
2481
- "point",
2482
- "multiply",
2483
- "power",
2484
- "roots"
2485
- ]).default("point"),
2486
- rootsN: z.number().default(4),
2487
- powerN: z.number().default(3),
2488
- snap: z.number().default(1),
2489
- range: z.number().default(6),
2490
- target: z.object({
2491
- re: z.number(),
2492
- im: z.number()
2493
- }).optional(),
2494
- title: z.string().optional(),
2495
- prompt: z.string().optional()
2496
- }),
2497
- Component: (a) => /* @__PURE__ */ jsx(ComplexPlaneLab, { ...a })
2498
- });
2499
- const TrigSignsBlock = labBlock({
2500
- key: "trig-signs",
2501
- label: "Unit circle β€” signs (CAST)",
2502
- description: "Drag the angle on the unit circle: the quadrant lights up with its CAST letter (which of sin/cos/tan are +), cos and sin draw green/red by sign, and special angles show their exact value (Β½, √3⁄2 …).",
2503
- schema: z.object({
2504
- startDeg: z.number().default(30),
2505
- snapDeg: z.number().default(15),
2506
- targetDeg: z.number().optional(),
2507
- title: z.string().optional(),
2508
- prompt: z.string().optional()
2509
- }),
2510
- Component: (a) => /* @__PURE__ */ jsx(TrigSignsLab, { ...a })
2511
- });
2512
- const PolynomialSolverBlock = labBlock({
2513
- key: "polynomial-solver",
2514
- label: "Polynomial solver (factor / solve, step by step)",
2515
- description: "Type a polynomial in x; the engine factors it or solves =0 and shows the working (split the middle term; factor theorem for higher degree). Any-degree roots incl. complex, client-side.",
2516
- schema: z.object({
2517
- expr: z.string().default("x^2 + 5x + 6"),
2518
- mode: z.enum(["factor", "solve"]).default("factor"),
2519
- editable: z.boolean().default(true),
2520
- title: z.string().optional(),
2521
- prompt: z.string().optional()
2522
- }),
2523
- Component: (a) => /* @__PURE__ */ jsx(PolynomialSolverLab, { ...a })
2524
- });
2525
- const RateMachineBlock = labBlock({
2526
- key: "rate-machine",
2527
- label: "Proportion machine (drag the count, it scales)",
2528
- description: "Count-driven concrete β†’ graph: drag the input up and down; objects drop into a vessel, the liquid level rises by the same rate each step, and a point rides up the line leaving a dot at every whole step. Proportionality you scrub. Skinnable (battery, jar, savings) and an optional \"set it to N\" goal.",
2529
- schema: z.object({
2530
- rate: z.number().default(5),
2531
- base: z.number().default(0),
2532
- maxCount: z.number().default(6),
2533
- startCount: z.number().default(1),
2534
- yMax: z.number().default(40),
2535
- yStep: z.number().default(5),
2536
- xLabel: z.string().default("Items"),
2537
- yLabel: z.string().default("Cost"),
2538
- unit: z.string().default("$"),
2539
- itemLabel: z.string().optional(),
2540
- scene: z.string().default("vessel"),
2541
- showObjects: z.boolean().default(true),
2542
- target: z.number().optional(),
2543
- title: z.string().optional(),
2544
- prompt: z.string().optional()
2545
- }),
2546
- Component: (a) => /* @__PURE__ */ jsx(RateMachineLab, { ...a })
2547
- });
2548
- const GeoTransformBlock = defineBlock({
2549
- key: "geometry-transform",
2550
- tag: "GeoTransform",
2551
- void: true,
2552
- label: "Transformations (translate / reflect / rotate / enlarge)",
2553
- description: "Send a shape onto ghost targets by filling the transform from a tile tray; on a correct fill the shape flies to the targets. One lab, four transformation types.",
2554
- category: "interactive",
2555
- schema: z.object({
2556
- kind: z.enum([
2557
- "translate",
2558
- "reflect",
2559
- "rotate",
2560
- "enlarge"
2561
- ]).default("translate"),
2562
- byX: z.number().default(5),
2563
- byY: z.number().default(1),
2564
- axis: z.enum([
2565
- "x",
2566
- "y",
2567
- "y=x",
2568
- "y=-x"
2569
- ]).default("y"),
2570
- deg: z.number().default(90),
2571
- k: z.number().default(2),
2572
- title: z.string().optional(),
2573
- prompt: z.string().optional(),
2574
- activity: z.string().optional()
2575
- }),
2576
- Component: ({ attributes, mode, updateAttributes }) => {
2577
- const a = attributes;
2578
- const kind = a.kind ?? "translate";
2579
- const widget = /* @__PURE__ */ jsx(TransformLab, {
2580
- transform: kind === "translate" ? {
2581
- kind,
2582
- by: {
2583
- x: a.byX ?? 5,
2584
- y: a.byY ?? 1
2585
- }
2586
- } : kind === "reflect" ? {
2587
- kind,
2588
- axis: a.axis ?? "y"
2589
- } : kind === "rotate" ? {
2590
- kind,
2591
- deg: a.deg ?? 90,
2592
- about: {
2593
- x: 0,
2594
- y: 0
2595
- }
2596
- } : {
2597
- kind: "enlarge",
2598
- k: a.k ?? 2,
2599
- about: {
2600
- x: 0,
2601
- y: 0
2602
- }
2603
- },
2604
- title: a.title,
2605
- prompt: a.prompt,
2606
- activity: attributes.activity
2607
- });
2608
- if (mode !== "editing" || !updateAttributes) return widget;
2609
- const upd = updateAttributes;
2610
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2611
- /* @__PURE__ */ jsx(ConfigRow, {
2612
- label: "Title",
2613
- children: /* @__PURE__ */ jsx(TextField, {
2614
- value: a.title ?? "",
2615
- placeholder: "Transformations",
2616
- onChange: (v) => updateAttributes({ title: v }),
2617
- className: "flex-1"
2618
- })
2619
- }),
2620
- /* @__PURE__ */ jsx(ConfigRow, {
2621
- label: "Type",
2622
- children: /* @__PURE__ */ jsx(SelectField, {
2623
- value: kind,
2624
- options: [
2625
- "translate",
2626
- "reflect",
2627
- "rotate",
2628
- "enlarge"
2629
- ],
2630
- onChange: (v) => upd({ kind: v })
2631
- })
2632
- }),
2633
- kind === "translate" && /* @__PURE__ */ jsxs(ConfigRow, {
2634
- label: "by (",
2635
- children: [
2636
- /* @__PURE__ */ jsx(NumField, {
2637
- value: a.byX ?? 5,
2638
- onChange: (v) => updateAttributes({ byX: v })
2639
- }),
2640
- /* @__PURE__ */ jsx("span", {
2641
- className: "text-muted-foreground",
2642
- children: ","
2643
- }),
2644
- /* @__PURE__ */ jsx(NumField, {
2645
- value: a.byY ?? 1,
2646
- onChange: (v) => updateAttributes({ byY: v })
2647
- }),
2648
- /* @__PURE__ */ jsx("span", {
2649
- className: "text-muted-foreground",
2650
- children: ")"
2651
- })
2652
- ]
2653
- }),
2654
- kind === "reflect" && /* @__PURE__ */ jsx(ConfigRow, {
2655
- label: "Mirror line",
2656
- children: /* @__PURE__ */ jsx(SelectField, {
2657
- value: a.axis ?? "y",
2658
- options: [
2659
- "x",
2660
- "y",
2661
- "y=x",
2662
- "y=-x"
2663
- ],
2664
- onChange: (v) => upd({ axis: v })
2665
- })
2666
- }),
2667
- kind === "rotate" && /* @__PURE__ */ jsx(ConfigRow, {
2668
- label: "Angle (Β° anticlockwise)",
2669
- children: /* @__PURE__ */ jsx(SelectField, {
2670
- value: String(a.deg ?? 90),
2671
- options: [
2672
- "90",
2673
- "180",
2674
- "270"
2675
- ],
2676
- onChange: (v) => updateAttributes({ deg: Number(v) })
2677
- })
2678
- }),
2679
- kind === "enlarge" && /* @__PURE__ */ jsx(ConfigRow, {
2680
- label: "Scale factor",
2681
- children: /* @__PURE__ */ jsx(SelectField, {
2682
- value: String(a.k ?? 2),
2683
- options: [
2684
- "2",
2685
- "3",
2686
- "4"
2687
- ],
2688
- onChange: (v) => updateAttributes({ k: Number(v) })
2689
- })
2690
- })
2691
- ] }), widget] });
2692
- }
2693
- });
2694
- const receiptItemSchema = z.object({
2695
- qty: z.number(),
2696
- name: z.string(),
2697
- unit: z.number()
2698
- });
2699
- const ReceiptBlock = defineBlock({
2700
- key: "receipt-totals",
2701
- tag: "ReceiptTotals",
2702
- void: true,
2703
- label: "Receipt totals (qty Γ— price)",
2704
- description: "A shop receipt where the learner tap-fills the total items and total cost; classic \"summed the prices, forgot the quantity\" distractors. Multiplicative + additive reasoning grounded in a real bill.",
2705
- category: "interactive",
2706
- schema: z.object({
2707
- store: z.string().default("Half Foods"),
2708
- currency: z.string().default("$"),
2709
- items: z.array(receiptItemSchema).optional(),
2710
- askItems: z.boolean().default(true),
2711
- askCost: z.boolean().default(true),
2712
- title: z.string().optional(),
2713
- prompt: z.string().optional(),
2714
- activity: z.string().optional()
2715
- }),
2716
- Component: ({ attributes, mode, updateAttributes }) => {
2717
- const a = attributes;
2718
- const items = Array.isArray(a.items) && a.items.length ? a.items : void 0;
2719
- const widget = /* @__PURE__ */ jsx(ReceiptLab, {
2720
- store: a.store,
2721
- currency: a.currency,
2722
- items,
2723
- ask: {
2724
- items: a.askItems !== false,
2725
- cost: a.askCost !== false
2726
- },
2727
- title: a.title,
2728
- prompt: a.prompt,
2729
- activity: attributes.activity
2730
- });
2731
- if (mode !== "editing" || !updateAttributes) return widget;
2732
- const list = items ?? [{
2733
- qty: 6,
2734
- name: "Pineapples",
2735
- unit: 5
2736
- }, {
2737
- qty: 3,
2738
- name: "Mangoes",
2739
- unit: 2
2740
- }];
2741
- const setItem = (i, patch) => updateAttributes({ items: list.map((it, j) => j === i ? {
2742
- ...it,
2743
- ...patch
2744
- } : it) });
2745
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2746
- /* @__PURE__ */ jsx(ConfigRow, {
2747
- label: "Store",
2748
- children: /* @__PURE__ */ jsx(TextField, {
2749
- value: a.store ?? "Half Foods",
2750
- onChange: (v) => updateAttributes({ store: v }),
2751
- className: "flex-1"
2752
- })
2753
- }),
2754
- /* @__PURE__ */ jsx(ConfigRow, {
2755
- label: "Currency",
2756
- children: /* @__PURE__ */ jsx(TextField, {
2757
- value: a.currency ?? "$",
2758
- onChange: (v) => updateAttributes({ currency: v }),
2759
- className: "w-16"
2760
- })
2761
- }),
2762
- /* @__PURE__ */ jsxs("div", {
2763
- className: "space-y-1.5",
2764
- children: [
2765
- /* @__PURE__ */ jsx("span", {
2766
- className: "font-medium text-muted-foreground",
2767
- children: "Line items (qty Γ— name @ price)"
2768
- }),
2769
- list.map((it, i) => /* @__PURE__ */ jsxs("div", {
2770
- className: "flex flex-wrap items-center gap-1.5",
2771
- children: [
2772
- /* @__PURE__ */ jsx(NumField, {
2773
- value: it.qty,
2774
- onChange: (v) => setItem(i, { qty: v })
2775
- }),
2776
- /* @__PURE__ */ jsx(TextField, {
2777
- value: it.name,
2778
- placeholder: "Pineapples",
2779
- onChange: (v) => setItem(i, { name: v }),
2780
- className: "w-32"
2781
- }),
2782
- /* @__PURE__ */ jsx("span", {
2783
- className: "text-muted-foreground",
2784
- children: "@"
2785
- }),
2786
- /* @__PURE__ */ jsx(NumField, {
2787
- value: it.unit,
2788
- onChange: (v) => setItem(i, { unit: v })
2789
- }),
2790
- list.length > 1 && /* @__PURE__ */ jsx(SmallButton, {
2791
- tone: "danger",
2792
- onClick: () => updateAttributes({ items: list.filter((_, j) => j !== i) }),
2793
- children: "βœ•"
2794
- })
2795
- ]
2796
- }, i)),
2797
- /* @__PURE__ */ jsx(SmallButton, {
2798
- onClick: () => updateAttributes({ items: [...list, {
2799
- qty: 1,
2800
- name: "",
2801
- unit: 1
2802
- }] }),
2803
- children: "+ item"
2804
- })
2805
- ]
2806
- }),
2807
- /* @__PURE__ */ jsxs(ConfigRow, {
2808
- label: "Ask for",
2809
- children: [/* @__PURE__ */ jsx(ChipToggle, {
2810
- active: a.askItems !== false,
2811
- onClick: () => updateAttributes({ askItems: !(a.askItems !== false) }),
2812
- children: "total items"
2813
- }), /* @__PURE__ */ jsx(ChipToggle, {
2814
- active: a.askCost !== false,
2815
- onClick: () => updateAttributes({ askCost: !(a.askCost !== false) }),
2816
- children: "total cost"
2817
- })]
2818
- })
2819
- ] }), widget] });
2820
- }
2821
- });
2822
- const SystemSolveBlock = defineBlock({
2823
- key: "system-solve",
2824
- tag: "SystemSolve",
2825
- void: true,
2826
- label: "System of equations (two clues, by elimination)",
2827
- description: "Two unknowns, two clues, solved by elimination (not just the graph crossing). Swappable concrete scene: a shop receipt, a bucket balance, or algebra tiles. Creators theme the same maths any way.",
2828
- category: "interactive",
2829
- schema: z.object({
2830
- scene: z.string().default("receipt"),
2831
- symA: z.string().default("🍍"),
2832
- labelA: z.string().default("Pineapple"),
2833
- answerA: z.number().default(5),
2834
- symB: z.string().default("πŸ₯­"),
2835
- labelB: z.string().default("Mango"),
2836
- answerB: z.number().default(2),
2837
- a0: z.number().default(2),
2838
- b0: z.number().default(1),
2839
- a1: z.number().default(1),
2840
- b1: z.number().default(1),
2841
- currency: z.string().optional(),
2842
- unit: z.string().optional(),
2843
- store: z.string().optional(),
2844
- title: z.string().optional(),
2845
- prompt: z.string().optional(),
2846
- activity: z.string().optional()
2847
- }),
2848
- Component: ({ attributes, mode, updateAttributes }) => {
2849
- const a = attributes;
2850
- const num = (k, d) => typeof a[k] === "number" ? a[k] : d;
2851
- const str = (k, d) => typeof a[k] === "string" ? a[k] : d;
2852
- const scene = str("scene", "receipt");
2853
- const widget = /* @__PURE__ */ jsx(SystemSolveLab, {
2854
- scene,
2855
- unknowns: [{
2856
- sym: str("symA", "🍍"),
2857
- label: str("labelA", "Pineapple"),
2858
- color: "var(--stage-warn)",
2859
- answer: num("answerA", 5)
2860
- }, {
2861
- sym: str("symB", "πŸ₯­"),
2862
- label: str("labelB", "Mango"),
2863
- color: "var(--stage-good)",
2864
- answer: num("answerB", 2)
2865
- }],
2866
- clues: [{ coeffs: [num("a0", 2), num("b0", 1)] }, { coeffs: [num("a1", 1), num("b1", 1)] }],
2867
- currency: a.currency,
2868
- unit: a.unit,
2869
- store: a.store,
2870
- title: a.title,
2871
- prompt: a.prompt,
2872
- activity: a.activity
2873
- });
2874
- if (mode !== "editing" || !updateAttributes) return widget;
2875
- return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(ConfigPanel, { children: [
2876
- /* @__PURE__ */ jsx(ConfigRow, {
2877
- label: "Title",
2878
- children: /* @__PURE__ */ jsx(TextField, {
2879
- value: str("title", ""),
2880
- placeholder: "Two clues, two unknowns",
2881
- onChange: (v) => updateAttributes({ title: v }),
2882
- className: "flex-1"
2883
- })
2884
- }),
2885
- /* @__PURE__ */ jsx(ConfigRow, {
2886
- label: "Scene",
2887
- children: /* @__PURE__ */ jsx(SelectField, {
2888
- value: scene,
2889
- options: clueSceneOptions(),
2890
- onChange: (v) => updateAttributes({ scene: v })
2891
- })
2892
- }),
2893
- /* @__PURE__ */ jsxs(ConfigRow, {
2894
- label: "Item A",
2895
- children: [
2896
- /* @__PURE__ */ jsx(TextField, {
2897
- value: str("symA", "🍍"),
2898
- onChange: (v) => updateAttributes({ symA: v }),
2899
- className: "w-16"
2900
- }),
2901
- /* @__PURE__ */ jsx(TextField, {
2902
- value: str("labelA", "Pineapple"),
2903
- onChange: (v) => updateAttributes({ labelA: v }),
2904
- className: "w-28"
2905
- }),
2906
- /* @__PURE__ */ jsx("span", {
2907
- className: "text-muted-foreground",
2908
- children: "="
2909
- }),
2910
- /* @__PURE__ */ jsx(NumField, {
2911
- value: num("answerA", 5),
2912
- onChange: (v) => updateAttributes({ answerA: v })
2913
- })
2914
- ]
2915
- }),
2916
- /* @__PURE__ */ jsxs(ConfigRow, {
2917
- label: "Item B",
2918
- children: [
2919
- /* @__PURE__ */ jsx(TextField, {
2920
- value: str("symB", "πŸ₯­"),
2921
- onChange: (v) => updateAttributes({ symB: v }),
2922
- className: "w-16"
2923
- }),
2924
- /* @__PURE__ */ jsx(TextField, {
2925
- value: str("labelB", "Mango"),
2926
- onChange: (v) => updateAttributes({ labelB: v }),
2927
- className: "w-28"
2928
- }),
2929
- /* @__PURE__ */ jsx("span", {
2930
- className: "text-muted-foreground",
2931
- children: "="
2932
- }),
2933
- /* @__PURE__ */ jsx(NumField, {
2934
- value: num("answerB", 2),
2935
- onChange: (v) => updateAttributes({ answerB: v })
2936
- })
2937
- ]
2938
- }),
2939
- /* @__PURE__ */ jsxs(ConfigRow, {
2940
- label: "Clue 1",
2941
- children: [
2942
- /* @__PURE__ */ jsx(NumField, {
2943
- value: num("a0", 2),
2944
- onChange: (v) => updateAttributes({ a0: v })
2945
- }),
2946
- /* @__PURE__ */ jsx("span", {
2947
- className: "text-muted-foreground",
2948
- children: "A +"
2949
- }),
2950
- /* @__PURE__ */ jsx(NumField, {
2951
- value: num("b0", 1),
2952
- onChange: (v) => updateAttributes({ b0: v })
2953
- }),
2954
- /* @__PURE__ */ jsx("span", {
2955
- className: "text-muted-foreground",
2956
- children: "B"
2957
- })
2958
- ]
2959
- }),
2960
- /* @__PURE__ */ jsxs(ConfigRow, {
2961
- label: "Clue 2",
2962
- children: [
2963
- /* @__PURE__ */ jsx(NumField, {
2964
- value: num("a1", 1),
2965
- onChange: (v) => updateAttributes({ a1: v })
2966
- }),
2967
- /* @__PURE__ */ jsx("span", {
2968
- className: "text-muted-foreground",
2969
- children: "A +"
2970
- }),
2971
- /* @__PURE__ */ jsx(NumField, {
2972
- value: num("b1", 1),
2973
- onChange: (v) => updateAttributes({ b1: v })
2974
- }),
2975
- /* @__PURE__ */ jsx("span", {
2976
- className: "text-muted-foreground",
2977
- children: "B"
2978
- })
2979
- ]
2980
- })
2981
- ] }), widget] });
2982
- }
2983
- });
2984
- function customSceneSpec(a) {
2985
- const name = typeof a.name === "string" && a.name.trim() || "custom";
2986
- const label = typeof a.label === "string" && a.label.trim() ? a.label : void 0;
2987
- const v = a.variant;
2988
- if (v === "icons") return {
2989
- name,
2990
- label,
2991
- kind: "level",
2992
- icon: a.icon || "⭐",
2993
- slots: Number(a.slots) || 5
2994
- };
2995
- if (v === "shape") return {
2996
- name,
2997
- label,
2998
- kind: "level",
2999
- shape: a.shape || "box",
3000
- color: a.color || "#7c83ff"
3001
- };
3002
- return {
3003
- name,
3004
- label,
3005
- kind: "count",
3006
- icon: a.icon || "πŸ”΅"
3007
- };
3008
- }
3009
- function customSceneAttrs(s) {
3010
- if (s.kind === "count") return {
3011
- name: s.name,
3012
- label: s.label ?? "",
3013
- variant: "count",
3014
- icon: s.icon
3015
- };
3016
- if ("icon" in s) return {
3017
- name: s.name,
3018
- label: s.label ?? "",
3019
- variant: "icons",
3020
- icon: s.icon,
3021
- slots: s.slots ?? 5
3022
- };
3023
- return {
3024
- name: s.name,
3025
- label: s.label ?? "",
3026
- variant: "shape",
3027
- shape: s.shape,
3028
- color: s.color ?? "#7c83ff"
3029
- };
3030
- }
3031
- const CustomSceneBlock = defineBlock({
3032
- key: "custom-scene",
3033
- tag: "CustomScene",
3034
- void: true,
3035
- label: "Custom scene (no-code lab skin)",
3036
- description: "Invent a new lab skin from a form (an emoji or a shape) β€” no code. Place it ABOVE a lab and pick the new scene by name in that lab.",
3037
- category: "interactive",
3038
- schema: z.object({
3039
- name: z.string().default("custom"),
3040
- label: z.string().optional(),
3041
- variant: z.enum([
3042
- "count",
3043
- "icons",
3044
- "shape"
3045
- ]).default("count"),
3046
- icon: z.string().default("πŸ”΅"),
3047
- slots: z.number().default(5),
3048
- shape: z.enum([
3049
- "box",
3050
- "cup",
3051
- "circle"
3052
- ]).default("box"),
3053
- color: z.string().default("#7c83ff")
3054
- }),
3055
- Component: ({ attributes, mode, updateAttributes }) => {
3056
- const spec = customSceneSpec(attributes);
3057
- registerDataScene(spec);
3058
- if (mode !== "editing" || !updateAttributes) return /* @__PURE__ */ jsxs("div", {
3059
- className: "not-prose",
3060
- style: {
3061
- padding: "8px 12px",
3062
- borderRadius: 8,
3063
- fontSize: 13,
3064
- color: "var(--stage-good)",
3065
- border: "1px solid var(--stage-good)"
3066
- },
3067
- children: [
3068
- "βœ“ Scene β€œ",
3069
- spec.name,
3070
- "” is ready β€” choose it in a lab’s scene list below."
3071
- ]
3072
- });
3073
- return /* @__PURE__ */ jsxs("div", {
3074
- style: {
3075
- display: "grid",
3076
- gap: 8
3077
- },
3078
- children: [/* @__PURE__ */ jsx(SceneStudio, {
3079
- spec,
3080
- onChange: (s) => updateAttributes(customSceneAttrs(s))
3081
- }), /* @__PURE__ */ jsxs("p", {
3082
- style: {
3083
- fontSize: 12,
3084
- color: "var(--stage-muted)",
3085
- margin: 0
3086
- },
3087
- children: [
3088
- "Tip: put this above a lab, then pick β€œ",
3089
- spec.name,
3090
- "” in that lab’s scene dropdown."
3091
- ]
3092
- })]
3093
- });
3094
- }
3095
- });
3096
- /** All math labs blocks, spread into a host's `defineBlock` list. */
3097
- const mathBlocks = [
3098
- TrigExplorerBlock,
3099
- GraphBlock,
3100
- PercentBarBlock,
3101
- FractionBarBlock,
3102
- RatioShareBlock,
3103
- ComplexPlaneBlock,
3104
- TrigSignsBlock,
3105
- PolynomialSolverBlock,
3106
- DerivativeExplorerBlock,
3107
- GradientDescentBlock,
3108
- IntegralExplorerBlock,
3109
- LimitExplorerBlock,
3110
- DerivationBlock,
3111
- LinearSystemBlock,
3112
- NumberLineBlock,
3113
- MysteryBucketBlock,
3114
- BalanceAlgebraBlock,
3115
- VertexParabolaBlock,
3116
- AreaModelBlock,
3117
- GrowingPatternBlock,
3118
- InteractiveProblemBlock,
3119
- TriangleTrigBlock,
3120
- StraightLineBlock,
3121
- CircleBlock,
3122
- ConicBlock,
3123
- DomainRangeBlock,
3124
- LinearModelBlock,
3125
- RateMachineBlock,
3126
- SequencePredictBlock,
3127
- GeoTransformBlock,
3128
- ReceiptBlock,
3129
- SystemSolveBlock,
3130
- CustomSceneBlock
3131
- ];
3132
- /** The MDX tag β†’ component render map slice for the math domain. */
3133
- const mathComponents = {
3134
- MysteryBucket: MysteryBucketLab,
3135
- NumberLine: NumberLineLab,
3136
- LinearSystem: LinearSystemView,
3137
- BalanceAlgebra: BalanceAlgebraLab,
3138
- VertexParabola: VertexParabolaLab,
3139
- AreaModel: AreaModelLab,
3140
- GrowingPattern: GrowingPatternLab,
3141
- FunctionMachine: FunctionMachineLab,
3142
- Graph: Grapher,
3143
- DerivativeExplorer,
3144
- IntegralExplorer,
3145
- LimitExplorer,
3146
- GradientDescent,
3147
- Derivation,
3148
- TrigExplorer,
3149
- InteractiveProblem,
3150
- TriangleTrig,
3151
- StraightLine: StraightLineLab,
3152
- CircleLab,
3153
- ConicLab,
3154
- DomainRange: DomainRangeLab,
3155
- LinearModel: LinearModelLab,
3156
- RateMachine: RateMachineLab,
3157
- SequencePredict,
3158
- PercentBar: PercentBarLab,
3159
- FractionBar: FractionBarLab,
3160
- RatioShare: RatioShareLab,
3161
- ComplexPlane: ComplexPlaneLab,
3162
- TrigSigns: TrigSignsLab,
3163
- PolynomialSolver: PolynomialSolverLab,
3164
- GeoTransform: TransformLab,
3165
- ReceiptTotals: ReceiptLab,
3166
- SystemSolve: SystemSolveLab
3167
- };
3168
-
3169
- //#endregion
3170
- export { AreaModelBlock, BalanceAlgebraBlock, CircleBlock, ComplexPlaneBlock, ConicBlock, CustomSceneBlock, DerivationBlock, DerivativeExplorerBlock, DomainRangeBlock, FractionBarBlock, GeoTransformBlock, GradientDescentBlock, GraphBlock, GrowingPatternBlock, IntegralExplorerBlock, InteractiveProblemBlock, LimitExplorerBlock, LinearModelBlock, LinearSystemBlock, LinearSystemView, MysteryBucketBlock, NumberLineBlock, PercentBarBlock, PolynomialSolverBlock, RateMachineBlock, RatioShareBlock, ReceiptBlock, SequencePredictBlock, StraightLineBlock, SystemSolveBlock, TriangleTrigBlock, TrigExplorerBlock, TrigSignsBlock, VertexParabolaBlock, mathBlocks, mathComponents };